diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/.nojekyll @@ -0,0 +1 @@ + diff --git a/404.html b/404.html new file mode 100644 index 000000000..6801d8c0a --- /dev/null +++ b/404.html @@ -0,0 +1,51 @@ + + + + + + + + + + Fast Request + + + + + +
跳至主要內容

404

页面不存在

我们是怎么来到这儿的?

+ + + diff --git a/4399029f43684ace83716b195277c9c9.txt b/4399029f43684ace83716b195277c9c9.txt new file mode 100644 index 000000000..9b2913b29 --- /dev/null +++ b/4399029f43684ace83716b195277c9c9.txt @@ -0,0 +1 @@ +4399029f43684ace83716b195277c9c9 \ No newline at end of file diff --git a/CNAME b/CNAME new file mode 100644 index 000000000..0f640317c --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +api-buddy.com diff --git a/assets/404.html-6uJtO3BE.js b/assets/404.html-6uJtO3BE.js new file mode 100644 index 000000000..f5a5ed13f --- /dev/null +++ b/assets/404.html-6uJtO3BE.js @@ -0,0 +1 @@ +import{_ as t,o as e,c as o,a as n}from"./app-8OZtYazS.js";const a={},r=n("p",null,"404 Not Found",-1),c=[r];function s(p,i){return e(),o("div",null,c)}const d=t(a,[["render",s],["__file","404.html.vue"]]),m=JSON.parse('{"path":"/404.html","title":"","lang":"zh-CN","frontmatter":{"layout":"NotFound","description":"404 Not Found ","head":[["meta",{"property":"og:url","content":"https://api-buddy.com/404.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:description","content":"404 Not Found "}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"\\",\\"description\\":\\"404 Not Found \\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0.01,"words":3},"filePathRelative":null,"autoDesc":true}');export{d as comp,m as data}; diff --git a/assets/accountLicense-k-i236gs.js b/assets/accountLicense-k-i236gs.js new file mode 100644 index 000000000..10126e170 --- /dev/null +++ b/assets/accountLicense-k-i236gs.js @@ -0,0 +1 @@ +const s="/img/buy/step1.png",o="/img/buy/step2.png",t="/img/buy/step3.png",p="/img/buy/step4.png",n="/img/buy/step5.png",i="/img/buy/offlineCodeDownload.png",g="/img/buy/offline.png",_="/img/buy/accountLicense.png";export{s as _,o as a,t as b,p as c,n as d,i as e,g as f,_ as g}; diff --git a/assets/activity.html-Fv0Y2aRo.js b/assets/activity.html-Fv0Y2aRo.js new file mode 100644 index 000000000..5e9b1d59a --- /dev/null +++ b/assets/activity.html-Fv0Y2aRo.js @@ -0,0 +1 @@ +import{_ as o,r as l,o as c,c as s,a as t,d as i,b as e,e as r}from"./app-8OZtYazS.js";const p="/img/bilibili/20230524.jpg",d="/img/activity/20221024.png",m="/img/activity/20221024-1.png",h="/img/activity/activity1.png",g={},_=t("h2",{id:"_20231205",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#_20231205"},[t("span",null,"20231205")])],-1),u=t("p",null,[i("B站粉丝突破"),t("strong",null,"1000"),i(",我决定抽个奖,感谢开发者的支持。"),t("mark",null,"关注+点赞+留言"),i("下方视频,进行抽奖,赠送1年license,已购买的开发者可以延长插件license到期时间1年")],-1),y={href:"https://api-buddy.com/guide/activity.html#_20231205",target:"_blank",rel:"noopener noreferrer"},b={href:"https://api-buddy.com/guide/activity.html",target:"_blank",rel:"noopener noreferrer"},v=t("p",null,"规则如下:",-1),f=t("ol",null,[t("li",null,"预期抽出3个幸运开发者,如果点赞和留言多考虑增加"),t("li",null,"抽奖规则会去除重复UID,刷评论无效"),t("li",null,"抽奖公布时间12月27号,结果以直播或者录制视频的形式反馈。"),t("li",null,[t("mark",null,"未点赞或关注作者视为放弃")])],-1),B=r('

20230524

使用答疑,欢迎提出问题,还有免费 License 赠送

使用答疑

20221024

微信参与抽奖 1 年 license 8 名,半年 license 15 名

活动 1

',10);function k(x,j){const a=l("ExternalLinkIcon"),n=l("BiliBili");return c(),s("div",null,[_,u,t("p",null,[i("官网: "),t("a",y,[i("https://api-buddy.com/guide/activity.html#_20231205"),e(a)])]),t("p",null,[i("抽奖程序:"),t("a",b,[i("https://injectrl.github.io/BiliCLOnline/"),e(a)])]),v,f,e(n,{bvid:"BV1Ju4y1A7Qi",ratio:5/4}),B])}const N=o(g,[["render",k],["__file","activity.html.vue"]]),T=JSON.parse('{"path":"/guide/activity.html","title":"活动","lang":"zh-CN","frontmatter":{"title":"活动","icon":"activity","description":"20231205 B站粉丝突破1000,我决定抽个奖,感谢开发者的支持。关注+点赞+留言下方视频,进行抽奖,赠送1年license,已购买的开发者可以延长插件license到期时间1年 官网: https://api-buddy.com/guide/activity.html#_20231205 抽奖程序:https://injectrl.github...","head":[["meta",{"property":"og:url","content":"https://api-buddy.com/guide/activity.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"活动"}],["meta",{"property":"og:description","content":"20231205 B站粉丝突破1000,我决定抽个奖,感谢开发者的支持。关注+点赞+留言下方视频,进行抽奖,赠送1年license,已购买的开发者可以延长插件license到期时间1年 官网: https://api-buddy.com/guide/activity.html#_20231205 抽奖程序:https://injectrl.github..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/bilibili/20230524.jpg"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"活动"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"活动\\",\\"image\\":[\\"https://api-buddy.com/img/bilibili/20230524.jpg\\",\\"https://api-buddy.com/img/activity/20221024.png\\",\\"https://api-buddy.com/img/activity/20221024-1.png\\",\\"https://api-buddy.com/img/activity/activity1.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"20231205","slug":"_20231205","link":"#_20231205","children":[]},{"level":2,"title":"20230524","slug":"_20230524","link":"#_20230524","children":[]},{"level":2,"title":"20221024","slug":"_20221024","link":"#_20221024","children":[]},{"level":2,"title":"活动 1","slug":"活动-1","link":"#活动-1","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.11,"words":332},"filePathRelative":"guide/activity.md","localizedDate":"2024年5月31日","autoDesc":true}');export{N as comp,T as data}; diff --git a/assets/addLibrary-m3-5pdM8.js b/assets/addLibrary-m3-5pdM8.js new file mode 100644 index 000000000..96761c2ed --- /dev/null +++ b/assets/addLibrary-m3-5pdM8.js @@ -0,0 +1 @@ +const r="/img/2024.1.5/addLibrary.png";export{r as _}; diff --git a/assets/ai-budej5Oc.js b/assets/ai-budej5Oc.js new file mode 100644 index 000000000..bcc61f380 --- /dev/null +++ b/assets/ai-budej5Oc.js @@ -0,0 +1 @@ +const i="/img/2024.1.4/ai.png";export{i as _}; diff --git a/assets/ai.html-QWgQCY0N.js b/assets/ai.html-QWgQCY0N.js new file mode 100644 index 000000000..a5eda5b52 --- /dev/null +++ b/assets/ai.html-QWgQCY0N.js @@ -0,0 +1,10 @@ +import{_ as d}from"./ai-budej5Oc.js";import{_ as m}from"./aiPromptTrigger-m_dWR5W3.js";import{_,r as s,o as g,c as h,a as e,d as t,b as o,w as a,e as c}from"./app-8OZtYazS.js";const u="/img/features/aiPromptExample.png",A="/img/2024.1.3/aiManagenemt.png",y={},f=e("h1",{id:"ai",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#ai"},[e("span",null,"AI")])],-1),x=c('

1.功能

AI

为了将 AI 的回复更加精准,我们将 AI 的 设置更加精细化,加入了3个维度,加入了概述提问范例提问范例结果。此设计即让 AI 先训练一次问答,从而使得结果更加符合预期

我们可以在概述中尽量表述问题的各种可能,并在提问范例提问范例结果中给于概述中描述的样本。

以下是一个让 AI 帮忙优化 JSON 报文的指令案例

',5),I=e("div",{class:"language-text","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`你是一位优秀的 JSON 处理程序。每当用户向您发送 JSON 时,您都应该以固定的 JSON 格式响应用户,并根据 +JSON 键的含义将 JSON 字段中的值替换为人类可读的内容。您只需修改 JSON 中的值,而无需更改其结构。 +`)])],-1),v=e("div",{class:"language-text","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`{"id":1,"title":"title_ahska","simpleDesc":"simpleDesc_ohga1","content":"content_yujga"} +`)])],-1),b=e("div",{class:"language-text","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`{ + "id": 1, + "title": "哈利·波特与魔法石", + "simpleDesc": "哈利·波特在霍格沃茨魔法学校展开惊心动魄的冒险,揭开危险的秘密并拯救有益的世界。" +} + +`)])],-1),k=c('

提示

编辑器中选中的值需要用 ${SELECTION} 来替换,完整例子如下。

${SELECTION} 可以通过指令设置框中的{}图标快速生成

2. Api key 获取与配置

',3),N={href:"https://platform.openai.com/docs/api-reference/chat",target:"_blank",rel:"noopener noreferrer"},O={href:"https://codegeex.cn/",target:"_blank",rel:"noopener noreferrer"},S=e("li",null,"Custom OpenAI 即私有化部署的 OpenAI 服务,参考第 1 种方式获取 Api key",-1),T=e("p",null,[e("img",{src:A,alt:"",loading:"lazy"})],-1),C=e("h2",{id:"_3-触发-ai-指令",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_3-触发-ai-指令"},[e("span",null,"3. 触发 AI 指令")])],-1),J=e("p",null,[e("img",{src:m,alt:"",loading:"lazy"})],-1),E=e("p",null,"选中编辑器中的内容以后,再点击指令。",-1);function z(w,B){const r=s("Badge"),p=s("CodeTabs"),l=s("ExternalLinkIcon");return g(),h("div",null,[f,e("p",null,[t("版本要求: "),o(r,{text:"2024.1.4+"})]),x,o(p,{id:"21",data:[{id:"概述"},{id:"提问范例"},{id:"提问范例结果"}]},{title0:a(({value:i,isActive:n})=>[t("概述")]),title1:a(({value:i,isActive:n})=>[t("提问范例")]),title2:a(({value:i,isActive:n})=>[t("提问范例结果")]),tab0:a(({value:i,isActive:n})=>[I]),tab1:a(({value:i,isActive:n})=>[v]),tab2:a(({value:i,isActive:n})=>[b]),_:1}),k,e("ol",null,[e("li",null,[e("a",N,[t("OpenAI"),o(l)]),t(" 需要在生成后粘贴进 Api key 输入框")]),e("li",null,[e("a",O,[t("CodeGeeX"),o(l)]),t(" 只需要点击 Get api key 登录后即可自动补全")]),S]),T,C,J,E])}const V=_(y,[["render",z],["__file","ai.html.vue"]]),q=JSON.parse('{"path":"/guide/features/ai.html","title":"AI","lang":"zh-CN","frontmatter":{"description":"AI 版本要求: 1.功能 AI 为了将 AI 的回复更加精准,我们将 AI 的 设置更加精细化,加入了3个维度,加入了概述、提问范例、提问范例结果。此设计即让 AI 先训练一次问答,从而使得结果更加符合预期 我们可以在概述中尽量表述问题的各种可能,并在提问范例和提问范例结果中给于概述中描述的样本。 以下是一个让 AI 帮忙优化 JSON 报文的指令案...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/ai.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/ai.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"AI"}],["meta",{"property":"og:description","content":"AI 版本要求: 1.功能 AI 为了将 AI 的回复更加精准,我们将 AI 的 设置更加精细化,加入了3个维度,加入了概述、提问范例、提问范例结果。此设计即让 AI 先训练一次问答,从而使得结果更加符合预期 我们可以在概述中尽量表述问题的各种可能,并在提问范例和提问范例结果中给于概述中描述的样本。 以下是一个让 AI 帮忙优化 JSON 报文的指令案..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2024.1.4/ai.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"AI"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"AI\\",\\"image\\":[\\"https://api-buddy.com/img/2024.1.4/ai.png\\",\\"https://api-buddy.com/img/features/aiPromptExample.png\\",\\"https://api-buddy.com/img/2024.1.3/aiManagenemt.png\\",\\"https://api-buddy.com/img/features/aiPromptTrigger.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"1.功能","slug":"_1-功能","link":"#_1-功能","children":[]},{"level":2,"title":"2. Api key 获取与配置","slug":"_2-api-key-获取与配置","link":"#_2-api-key-获取与配置","children":[]},{"level":2,"title":"3. 触发 AI 指令","slug":"_3-触发-ai-指令","link":"#_3-触发-ai-指令","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.45,"words":436},"filePathRelative":"guide/features/ai.md","localizedDate":"2024年5月31日","autoDesc":true}');export{V as comp,q as data}; diff --git a/assets/ai.html-bCaeFn90.js b/assets/ai.html-bCaeFn90.js new file mode 100644 index 000000000..e571c9ed2 --- /dev/null +++ b/assets/ai.html-bCaeFn90.js @@ -0,0 +1,11 @@ +import{_ as d}from"./ai_en-t8P83za6.js";import{_ as m}from"./aiPromptTrigger-m_dWR5W3.js";import{_ as u,r as i,o as g,c as h,a as e,d as t,b as s,w as a,e as l}from"./app-8OZtYazS.js";const _="/img/features/aiPromptExample_en.png",y="/img/2024.1.3/aiManagenemt_en.png",f={},k=e("h1",{id:"ai",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#ai"},[e("span",null,"AI")])],-1),x=l('

1. Introduce

AI

In order to make AI's responses more accurate, we have made AI settings more refined and added 3 dimensions: SummaryExample questionExample question's answer. This design allows the AI to train a question and answer session so that the results are more in line with expectations.

We can try to express various possibilities of the question in the Summary, and the give an example in Example question and Example question's answer.

The following is a case of using AI to help optimize JSON messages

',5),v=e("div",{class:"language-text","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`You are an excellent JSON handler. Whenever a user sends you a JSON, you should respond to +the user in a fixed JSON formatand replace the values in the JSON fields with +human-readable content according to the meaning of the JSON keys. You will only modify +the values in the JSON without changing its structure. +`)])],-1),A=e("div",{class:"language-json","data-ext":"json","data-title":"json"},[e("pre",{class:"language-json"},[e("code",null,[e("span",{class:"token punctuation"},"{"),t(),e("span",{class:"token property"},'"id"'),e("span",{class:"token operator"},":"),t(),e("span",{class:"token number"},"1"),e("span",{class:"token punctuation"},","),t(),e("span",{class:"token property"},'"title"'),e("span",{class:"token operator"},":"),t(),e("span",{class:"token string"},'"title_ahska"'),e("span",{class:"token punctuation"},","),t(),e("span",{class:"token property"},'"simpleDesc"'),e("span",{class:"token operator"},":"),t(),e("span",{class:"token string"},'"simpleDesc_ohga1"'),t(),e("span",{class:"token punctuation"},"}"),t(` +`)])])],-1),I=e("div",{class:"language-json","data-ext":"json","data-title":"json"},[e("pre",{class:"language-json"},[e("code",null,[e("span",{class:"token punctuation"},"{"),t(` + `),e("span",{class:"token property"},'"id"'),e("span",{class:"token operator"},":"),t(),e("span",{class:"token number"},"1"),e("span",{class:"token punctuation"},","),t(` + `),e("span",{class:"token property"},'"title"'),e("span",{class:"token operator"},":"),t(),e("span",{class:"token string"},`"Harry Potter and the Philosopher's Stone"`),e("span",{class:"token punctuation"},","),t(` + `),e("span",{class:"token property"},'"simpleDesc"'),e("span",{class:"token operator"},":"),t(),e("span",{class:"token string"},'"Join Harry Potter on a thrilling adventure at Hogwarts School of Witchcraft and Wizardry as he uncovers dangerous secrets and saves the rewarding world."'),t(` +`),e("span",{class:"token punctuation"},"}"),t(` +`)])])],-1),b=l('

Tips

The value selected in the editor needs to be replaced with ${SELECTION}. The complete example is as following.

${SELECTION} can be quickly generated through the {} icon in the editor.

2. Api key configuration

',3),w={href:"https://platform.openai.com/docs/api-reference/chat",target:"_blank",rel:"noopener noreferrer"},E={href:"https://codegeex.cn/",target:"_blank",rel:"noopener noreferrer"},S=e("code",null,"Get api key",-1),q=e("li",null,"Custom OpenAI refer to the first method to obtain the API key.",-1),T=e("p",null,[e("img",{src:y,alt:"",loading:"lazy"})],-1),N=e("h2",{id:"_3-trigger-ai-prompt",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_3-trigger-ai-prompt"},[e("span",null,"3. Trigger AI prompt")])],-1),O=e("p",null,[e("img",{src:m,alt:"",loading:"lazy"})],-1),j=e("p",null,"After selecting the content in the editor, click the prompt line.",-1);function z(C,J){const p=i("Badge"),c=i("CodeTabs"),r=i("ExternalLinkIcon");return g(),h("div",null,[k,e("p",null,[t("Version required: "),s(p,{text:"2024.1.4+"})]),x,s(c,{id:"21",data:[{id:"Summary"},{id:"Example question"},{id:"Example question's answer"}]},{title0:a(({value:n,isActive:o})=>[t("Summary")]),title1:a(({value:n,isActive:o})=>[t("Example question")]),title2:a(({value:n,isActive:o})=>[t("Example question's answer")]),tab0:a(({value:n,isActive:o})=>[v]),tab1:a(({value:n,isActive:o})=>[A]),tab2:a(({value:n,isActive:o})=>[I]),_:1}),b,e("ol",null,[e("li",null,[e("a",w,[t("OpenAI"),s(r)]),t(" needs to be pasted into the Api key field after generation in web page.")]),e("li",null,[e("a",E,[t("CodeGeeX"),s(r)]),t(" need to click "),S,t(" and log in. Plugin will complete the api key automatically.")]),q]),T,N,O,j])}const D=u(f,[["render",z],["__file","ai.html.vue"]]),L=JSON.parse(`{"path":"/en/guide/features/ai.html","title":"AI","lang":"en-US","frontmatter":{"description":"AI Version required: 1. Introduce AI In order to make AI's responses more accurate, we have made AI settings more refined and added 3 dimensions: Summary、Example question、Exampl...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/ai.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/ai.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"AI"}],["meta",{"property":"og:description","content":"AI Version required: 1. Introduce AI In order to make AI's responses more accurate, we have made AI settings more refined and added 3 dimensions: Summary、Example question、Exampl..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2024.1.4/ai_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"AI"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"AI\\",\\"image\\":[\\"https://api-buddy.com/img/2024.1.4/ai_en.png\\",\\"https://api-buddy.com/img/features/aiPromptExample_en.png\\",\\"https://api-buddy.com/img/2024.1.3/aiManagenemt_en.png\\",\\"https://api-buddy.com/img/features/aiPromptTrigger.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"1. Introduce","slug":"_1-introduce","link":"#_1-introduce","children":[]},{"level":2,"title":"2. Api key configuration","slug":"_2-api-key-configuration","link":"#_2-api-key-configuration","children":[]},{"level":2,"title":"3. Trigger AI prompt","slug":"_3-trigger-ai-prompt","link":"#_3-trigger-ai-prompt","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.06,"words":317},"filePathRelative":"en/guide/features/ai.md","localizedDate":"May 31, 2024","autoDesc":true}`);export{D as comp,L as data}; diff --git a/assets/aiPromptTrigger-m_dWR5W3.js b/assets/aiPromptTrigger-m_dWR5W3.js new file mode 100644 index 000000000..18402bb7e --- /dev/null +++ b/assets/aiPromptTrigger-m_dWR5W3.js @@ -0,0 +1 @@ +const r="/img/features/aiPromptTrigger.png";export{r as _}; diff --git a/assets/ai_en-t8P83za6.js b/assets/ai_en-t8P83za6.js new file mode 100644 index 000000000..26252ecd2 --- /dev/null +++ b/assets/ai_en-t8P83za6.js @@ -0,0 +1 @@ +const _="/img/2024.1.4/ai_en.png";export{_}; diff --git a/assets/annualReport-psTx-0KB.js b/assets/annualReport-psTx-0KB.js new file mode 100644 index 000000000..11ac91d7c --- /dev/null +++ b/assets/annualReport-psTx-0KB.js @@ -0,0 +1 @@ +const n="/img/2023.1.2/annualReport.png";export{n as _}; diff --git a/assets/annualReport.html-f9Bx9rF-.js b/assets/annualReport.html-f9Bx9rF-.js new file mode 100644 index 000000000..366ab51c6 --- /dev/null +++ b/assets/annualReport.html-f9Bx9rF-.js @@ -0,0 +1 @@ +import{_ as p}from"./annualReport_en-i0ch6itR.js";import{_ as i,r as t,o as l,c,a as e,d as a,b as n}from"./app-8OZtYazS.js";const s={},m=e("h1",{id:"annual-report",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#annual-report"},[e("span",null,"Annual report")])],-1),d=e("p",null,[e("img",{src:p,alt:"annualReport",loading:"lazy"})],-1);function u(g,h){const o=t("Badge"),r=t("ColorIcon");return l(),c("div",null,[m,e("p",null,[a("Version required: "),n(o,{text:"2023.1.2"})]),n(r,{icon:"analyseNew"}),a("Statistics of the operation data over the years."),d])}const f=i(s,[["render",u],["__file","annualReport.html.vue"]]),R=JSON.parse('{"path":"/en/guide/features/annualReport.html","title":"Annual report","lang":"en-US","frontmatter":{"description":"Annual report Version required: ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/annualReport.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/annualReport.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Annual report"}],["meta",{"property":"og:description","content":"Annual report Version required: "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.1.2/annualReport_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Annual report"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Annual report\\",\\"image\\":[\\"https://api-buddy.com/img/2023.1.2/annualReport_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.07,"words":22},"filePathRelative":"en/guide/features/annualReport.md","localizedDate":"May 31, 2024","autoDesc":true}');export{f as comp,R as data}; diff --git a/assets/annualReport.html-n4KDAGRz.js b/assets/annualReport.html-n4KDAGRz.js new file mode 100644 index 000000000..a9e3fec09 --- /dev/null +++ b/assets/annualReport.html-n4KDAGRz.js @@ -0,0 +1 @@ +import{_ as c}from"./annualReport-psTx-0KB.js";import{_ as i,r as a,o as p,c as l,a as e,d as t,b as o}from"./app-8OZtYazS.js";const m={},s=e("h1",{id:"年度报告",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#年度报告"},[e("span",null,"年度报告")])],-1),d=e("strong",null,"PK",-1),u=e("p",null,[e("img",{src:c,alt:"annualReport",loading:"lazy"})],-1);function g(_,h){const n=a("Badge"),r=a("ColorIcon");return p(),l("div",null,[s,e("p",null,[t("版本要求: "),o(n,{text:"2023.1.2"})]),o(r,{icon:"analyseNew"}),t("统计了历年操作的数据,你是否要来"),d,t("一把。此处省略 1 个狗头"),u])}const R=i(m,[["render",g],["__file","annualReport.html.vue"]]),b=JSON.parse('{"path":"/guide/features/annualReport.html","title":"年度报告","lang":"zh-CN","frontmatter":{"description":"年度报告 版本要求: ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/annualReport.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/annualReport.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"年度报告"}],["meta",{"property":"og:description","content":"年度报告 版本要求: "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.1.2/annualReport.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"年度报告"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"年度报告\\",\\"image\\":[\\"https://api-buddy.com/img/2023.1.2/annualReport.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.15,"words":44},"filePathRelative":"guide/features/annualReport.md","localizedDate":"2024年5月31日","autoDesc":true}');export{R as comp,b as data}; diff --git a/assets/annualReport_en-i0ch6itR.js b/assets/annualReport_en-i0ch6itR.js new file mode 100644 index 000000000..65cba5293 --- /dev/null +++ b/assets/annualReport_en-i0ch6itR.js @@ -0,0 +1 @@ +const n="/img/2023.1.2/annualReport_en.png";export{n as _}; diff --git a/assets/apiAssociation.html--ecGnu0q.js b/assets/apiAssociation.html--ecGnu0q.js new file mode 100644 index 000000000..1be03288f --- /dev/null +++ b/assets/apiAssociation.html--ecGnu0q.js @@ -0,0 +1 @@ +import{_ as i}from"./apiGroup-QroA2f5e.js";import{_ as p}from"./moduleSearch-vDt27hRI.js";import{_ as r,r as n,o as m,c as s,a as e,d as o,b as a,e as c}from"./app-8OZtYazS.js";const l={},d=e("h1",{id:"api-分组自动关联",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#api-分组自动关联"},[e("span",null,"API 分组自动关联")])],-1),u=c('

api 分组是为了将保存的 api 保存到不同分组以便区分不同的 api,当处于多模块的项目情况下,支持扫描项目中的 module,并且快速得将 module 添加到分组中,这种方式会将分组添加到 root 下

v2.1.2 保存 api 的时候自动创建 module group

apiGroup

特别说明

  1. 如果没有创建 module 分组,那么保存请求的时候会将保存的请求放入 Default Group
  2. 如果创建 module 分组,那么保存请求的时候会自动根据当前 API 所处于的 module 自动归类到对应的 Module Group
  3. 当然你可以通过拉拽的方式自行移动 API 到对应的更小的 group,并不冲突

模块支持快速搜索(光标焦点放在列表上输入关键字即可)

moduleSearch

',6);function g(h,_){const t=n("Badge");return m(),s("div",null,[d,e("p",null,[o("版本要求: "),a(t,{text:"2.0.6"}),o(),a(t,{text:"废弃"})]),u])}const P=r(l,[["render",g],["__file","apiAssociation.html.vue"]]),v=JSON.parse('{"path":"/guide/features/apiAssociation.html","title":"API 分组自动关联","lang":"zh-CN","frontmatter":{"description":"API 分组自动关联 版本要求: api 分组是为了将保存的 api 保存到不同分组以便区分不同的 api,当处于多模块的项目情况下,支持扫描项目中的 module,并且快速得将 module 添加到分组中,这种方式会将分组添加到 root 下 v2.1.2 保存 api 的时候自动创建 module group apiGroup 特别说明 如果没有创...","head":[["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/apiAssociation.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"API 分组自动关联"}],["meta",{"property":"og:description","content":"API 分组自动关联 版本要求: api 分组是为了将保存的 api 保存到不同分组以便区分不同的 api,当处于多模块的项目情况下,支持扫描项目中的 module,并且快速得将 module 添加到分组中,这种方式会将分组添加到 root 下 v2.1.2 保存 api 的时候自动创建 module group apiGroup 特别说明 如果没有创..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/apiGroup.gif"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"API 分组自动关联"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"API 分组自动关联\\",\\"image\\":[\\"https://api-buddy.com/img/apiGroup.gif\\",\\"https://api-buddy.com/img/moduleSearch.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.8,"words":239},"filePathRelative":"guide/features/apiAssociation.md","localizedDate":"2024年5月31日","autoDesc":true}');export{P as comp,v as data}; diff --git a/assets/apiCommentPreview.html-O0zPtZXm.js b/assets/apiCommentPreview.html-O0zPtZXm.js new file mode 100644 index 000000000..c779193d2 --- /dev/null +++ b/assets/apiCommentPreview.html-O0zPtZXm.js @@ -0,0 +1 @@ +import{_ as o,a,b as n}from"./showCommentInNavigate-eoTLjphJ.js";import{_ as m,r as i,o as r,c as s,a as e,d as p,b as c}from"./app-8OZtYazS.js";const l={},d=e("h1",{id:"api-注释预览",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#api-注释预览"},[e("span",null,"Api 注释预览")])],-1),g=e("p",null,[e("img",{src:o,alt:"showCommentConfig",loading:"lazy"}),e("img",{src:a,alt:"showCommentInClass",loading:"lazy"}),e("img",{src:n,alt:"showCommentInNavigate",loading:"lazy"})],-1);function h(u,C){const t=i("Badge");return r(),s("div",null,[d,e("p",null,[p("版本要求: "),c(t,{text:"2022.2.6"})]),g])}const y=m(l,[["render",h],["__file","apiCommentPreview.html.vue"]]),w=JSON.parse('{"path":"/guide/features/apiCommentPreview.html","title":"Api 注释预览","lang":"zh-CN","frontmatter":{"description":"Api 注释预览 版本要求: showCommentConfig showCommentInClass showCommentInNavigate ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/apiCommentPreview.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/apiCommentPreview.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Api 注释预览"}],["meta",{"property":"og:description","content":"Api 注释预览 版本要求: showCommentConfig showCommentInClass showCommentInNavigate "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.6/showCommentConfig.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Api 注释预览"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Api 注释预览\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.6/showCommentConfig.png\\",\\"https://api-buddy.com/img/2022.2.6/showCommentInClass.png\\",\\"https://api-buddy.com/img/2022.2.6/showCommentInNavigate.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.06,"words":19},"filePathRelative":"guide/features/apiCommentPreview.md","localizedDate":"2024年5月31日","autoDesc":true}');export{y as comp,w as data}; diff --git a/assets/apiCommentPreview.html-VjF9ie8p.js b/assets/apiCommentPreview.html-VjF9ie8p.js new file mode 100644 index 000000000..51d6987ef --- /dev/null +++ b/assets/apiCommentPreview.html-VjF9ie8p.js @@ -0,0 +1 @@ +import{_ as o,a,b as n}from"./showCommentInNavigate-eoTLjphJ.js";import{_ as m,r as i,o as r,c as p,a as e,d as s,b as c}from"./app-8OZtYazS.js";const d={},l=e("h1",{id:"api-comment-preview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#api-comment-preview"},[e("span",null,"Api comment preview")])],-1),g=e("p",null,[e("img",{src:o,alt:"showCommentConfig",loading:"lazy"}),e("img",{src:a,alt:"showCommentInClass",loading:"lazy"}),e("img",{src:n,alt:"showCommentInNavigate",loading:"lazy"})],-1);function h(u,w){const t=i("Badge");return r(),p("div",null,[l,e("p",null,[s("Version required: "),c(t,{text:"2022.2.6"})]),g])}const y=m(d,[["render",h],["__file","apiCommentPreview.html.vue"]]),f=JSON.parse('{"path":"/en/guide/features/apiCommentPreview.html","title":"Api comment preview","lang":"en-US","frontmatter":{"description":"Api comment preview Version required: showCommentConfig showCommentInClass showCommentInNavigate ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/apiCommentPreview.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/apiCommentPreview.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Api comment preview"}],["meta",{"property":"og:description","content":"Api comment preview Version required: showCommentConfig showCommentInClass showCommentInNavigate "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.6/showCommentConfig.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Api comment preview"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Api comment preview\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.6/showCommentConfig.png\\",\\"https://api-buddy.com/img/2022.2.6/showCommentInClass.png\\",\\"https://api-buddy.com/img/2022.2.6/showCommentInNavigate.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.05,"words":15},"filePathRelative":"en/guide/features/apiCommentPreview.md","localizedDate":"May 31, 2024","autoDesc":true}');export{y as comp,f as data}; diff --git a/assets/apiDocExample-I6FA1jbR.js b/assets/apiDocExample-I6FA1jbR.js new file mode 100644 index 000000000..ba2d32363 --- /dev/null +++ b/assets/apiDocExample-I6FA1jbR.js @@ -0,0 +1 @@ +const p="/img/apiDocExample.png";export{p as _}; diff --git a/assets/apiDocSync.html-OZncUaKF.js b/assets/apiDocSync.html-OZncUaKF.js new file mode 100644 index 000000000..3d90ee7c8 --- /dev/null +++ b/assets/apiDocSync.html-OZncUaKF.js @@ -0,0 +1,4 @@ +import{_ as r,b as c,c as s,a as l}from"./gitlabToken-Y8YtQVim.js";import{_ as p,r as i,o as d,c as h,a as e,d as t,b as n,e as m}from"./app-8OZtYazS.js";const u="/img/2022.2.7/apiSyncSetting_en.png",g={},y=e("h1",{id:"api-document-sync",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#api-document-sync"},[e("span",null,"API document sync")])],-1),f=e("h2",{id:"introduction",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#introduction"},[e("span",null,"Introduction")])],-1),b=m('

apiSync

Attention

Configuration

apiSyncSetting

Note: The naming policy determines the name of the file synchronized to the cloud. The file name comes from the Javadoc or Swagger method naming annotation. If JavaDoc is checked, please ensure that the naming of the Javadoc and Swagger method must be short. Otherwise, the file name in the cloud will be very long. In this case, consider checking the method name to synchronize.

Token

When checking the permissions, you must ensure that the minimum permissions are checked to support the API sync and that the token is within the valid time frame.

Github:must check 'repo'
+Gitlab:must check 'api'
+Gitee:must check 'projects'
+

githubToken

gitlabToken

giteeToken

',12);function k(_,I){const a=i("Badge"),o=i("ColorIcon");return d(),h("div",null,[y,e("p",null,[t("Version required: "),n(a,{text:"2022.2.7+"})]),f,e("p",null,[t("Used to synchronize API documents to "),n(o,{icon:"github"}),t(" Github、"),n(o,{icon:"gitee"}),t(" Gitee、"),n(o,{icon:"gitlab"}),t(" Gitlab, and generate online documents and share them with other partners.")]),b])}const v=p(g,[["render",k],["__file","apiDocSync.html.vue"]]),A=JSON.parse('{"path":"/en/guide/features/apiDocSync.html","title":"API document sync","lang":"en-US","frontmatter":{"description":"API document sync Version required: Introduction Used to synchronize API documents to apiSync Attention If there is no network in the intranet, please use self-host GitLab. GitL...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/apiDocSync.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/apiDocSync.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"API document sync"}],["meta",{"property":"og:description","content":"API document sync Version required: Introduction Used to synchronize API documents to apiSync Attention If there is no network in the intranet, please use self-host GitLab. GitL..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.7/apiSync.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"API document sync"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"API document sync\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.7/apiSync.png\\",\\"https://api-buddy.com/img/2022.2.7/apiSyncSetting_en.png \\\\\\"Config\\\\\\"\\",\\"https://api-buddy.com/img/2022.2.7/githubToken.png \\\\\\"Github token\\\\\\"\\",\\"https://api-buddy.com/img/2022.2.7/gitlabToken.png \\\\\\"Gitlab token\\\\\\"\\",\\"https://api-buddy.com/img/2022.2.7/giteeToken.png \\\\\\"Gitee token\\\\\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Introduction","slug":"introduction","link":"#introduction","children":[]},{"level":2,"title":"Attention","slug":"attention","link":"#attention","children":[]},{"level":2,"title":"Configuration","slug":"configuration","link":"#configuration","children":[]},{"level":2,"title":"Token","slug":"token","link":"#token","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.87,"words":261},"filePathRelative":"en/guide/features/apiDocSync.md","localizedDate":"May 31, 2024","autoDesc":true}');export{v as comp,A as data}; diff --git a/assets/apiDocSync.html-_v3-zlQ3.js b/assets/apiDocSync.html-_v3-zlQ3.js new file mode 100644 index 000000000..e567458a4 --- /dev/null +++ b/assets/apiDocSync.html-_v3-zlQ3.js @@ -0,0 +1 @@ +import{_ as l,a as c,b as p,c as r}from"./gitlabToken-Y8YtQVim.js";import{_ as s,r as n,o as d,c as m,a as e,d as t,b as a,e as g}from"./app-8OZtYazS.js";const h="/img/2022.2.7/apiSyncSetting.png",u={},y=e("h1",{id:"api-文档同步",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#api-文档同步"},[e("span",null,"API 文档同步")])],-1),b=e("h2",{id:"介绍",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#介绍"},[e("span",null,"介绍")])],-1),_=g('

apiSync

注意点

配置介绍

apiSyncSetting

注意点: 命名策略决定了同步至云端的文件名称,文件名称来自 Javadoc 或者 Swagger 方法命名注解,如果勾选使用 javadoc,请确保 Javadoc 和 Swagger 方法命名一定要简短, 否则云端的文件名会非常长,这种情况下考虑勾选方法名来同步。

Token

生成的 token 需要勾选对应的最小权限来支持 api 同步,同时需要确保 token 在有时间效期内

giteeToken

githubToken

gitlabToken

',12);function k(f,S){const o=n("Badge"),i=n("ColorIcon");return d(),m("div",null,[y,e("p",null,[t("版本要求: "),a(o,{text:"2022.2.7+"})]),b,e("p",null,[t("用于将 API 文档同步至"),a(i,{icon:"github"}),t(" Github、"),a(i,{icon:"gitee"}),t(" Gitee、"),a(i,{icon:"gitlab"}),t(" Gitlab, 生成在线文档,分享给其他的小伙伴看。")]),_])}const G=s(u,[["render",k],["__file","apiDocSync.html.vue"]]),I=JSON.parse('{"path":"/guide/features/apiDocSync.html","title":"API 文档同步","lang":"zh-CN","frontmatter":{"description":"API 文档同步 版本要求: 介绍 用于将 API 文档同步至 apiSync 注意点 内网无网络情况下请用私有域名 gitlab,gitlab 只支持 v4 不支持其他版本,不行考虑升级 如果配置后的仓库在云端不存在,则默认创建私有的仓库 项目访问 404 了,解决办法是分享的时候需要将仓库设置为 public 或者将小伙伴拉至仓库成为某一个成员 一...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/apiDocSync.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/apiDocSync.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"API 文档同步"}],["meta",{"property":"og:description","content":"API 文档同步 版本要求: 介绍 用于将 API 文档同步至 apiSync 注意点 内网无网络情况下请用私有域名 gitlab,gitlab 只支持 v4 不支持其他版本,不行考虑升级 如果配置后的仓库在云端不存在,则默认创建私有的仓库 项目访问 404 了,解决办法是分享的时候需要将仓库设置为 public 或者将小伙伴拉至仓库成为某一个成员 一..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.7/apiSync.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"API 文档同步"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"API 文档同步\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.7/apiSync.png\\",\\"https://api-buddy.com/img/2022.2.7/apiSyncSetting.png \\\\\\"同步配置\\\\\\"\\",\\"https://api-buddy.com/img/2022.2.7/giteeToken.png \\\\\\"Gitee token\\\\\\"\\",\\"https://api-buddy.com/img/2022.2.7/githubToken.png \\\\\\"Github token\\\\\\"\\",\\"https://api-buddy.com/img/2022.2.7/gitlabToken.png \\\\\\"Gitlab token\\\\\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"介绍","slug":"介绍","link":"#介绍","children":[]},{"level":2,"title":"注意点","slug":"注意点","link":"#注意点","children":[]},{"level":2,"title":"配置介绍","slug":"配置介绍","link":"#配置介绍","children":[]},{"level":2,"title":"Token","slug":"token","link":"#token","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.24,"words":371},"filePathRelative":"guide/features/apiDocSync.md","localizedDate":"2024年5月31日","autoDesc":true}');export{G as comp,I as data}; diff --git a/assets/apiGroup-QroA2f5e.js b/assets/apiGroup-QroA2f5e.js new file mode 100644 index 000000000..98dd7804e --- /dev/null +++ b/assets/apiGroup-QroA2f5e.js @@ -0,0 +1 @@ +const i="/img/apiGroup.gif";export{i as _}; diff --git a/assets/apiGroup.html-1PW0gdb7.js b/assets/apiGroup.html-1PW0gdb7.js new file mode 100644 index 000000000..54ecfe2a2 --- /dev/null +++ b/assets/apiGroup.html-1PW0gdb7.js @@ -0,0 +1 @@ +import{_ as i}from"./groupSave_en-p1Ro7kOp.js";import{_ as p,r as a,o as s,c,a as e,d as t,b as o}from"./app-8OZtYazS.js";const l="/img/2022.2.1/apiParamGroup_en.png",u={},m=e("h1",{id:"api-group",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#api-group"},[e("span",null,"API group")])],-1),g=e("p",null,"Purpose: Save parameters of different combinations under one API",-1),d=e("div",{class:"hint-container tip"},[e("p",{class:"hint-container-title"},"Tips"),e("p",null,"The original save operation will be classified into the Default group by default==.")],-1),h=e("p",null,[e("img",{src:i,alt:"groupSave",title:"Group Save",loading:"lazy"})],-1),_=e("p",null,[e("strong",null,"Toggle parameter")],-1),f=e("p",null,[e("img",{src:l,alt:"apiParamGroup",title:"Switch group",loading:"lazy"})],-1);function y(v,P){const n=a("Badge"),r=a("ColorIcon");return s(),c("div",null,[m,e("p",null,[t("Version required: "),o(n,{text:"2022.2.1"})]),g,e("p",null,[t("How to: After entering the parameters, click Save group param request. "),o(r,{icon:"saveGroup"})]),d,h,_,e("p",null,[t("The following is the query of the book list in 3 languages. Click "),o(r,{icon:"apiParamGroupNew"}),t(" to toggle")]),f])}const b=p(u,[["render",y],["__file","apiGroup.html.vue"]]),A=JSON.parse('{"path":"/en/guide/features/apiGroup.html","title":"API group","lang":"en-US","frontmatter":{"description":"API group Version required: Purpose: Save parameters of different combinations under one API How to: After entering the parameters, click Save group param request. Tips The orig...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/apiGroup.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/apiGroup.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"API group"}],["meta",{"property":"og:description","content":"API group Version required: Purpose: Save parameters of different combinations under one API How to: After entering the parameters, click Save group param request. Tips The orig..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.1/groupSave_en.png \\"Group Save\\""}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"API group"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"API group\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.1/groupSave_en.png \\\\\\"Group Save\\\\\\"\\",\\"https://api-buddy.com/img/2022.2.1/apiParamGroup_en.png \\\\\\"Switch group\\\\\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.25,"words":76},"filePathRelative":"en/guide/features/apiGroup.md","localizedDate":"May 31, 2024","autoDesc":true}');export{b as comp,A as data}; diff --git a/assets/apiGroup.html-sw6EBA6N.js b/assets/apiGroup.html-sw6EBA6N.js new file mode 100644 index 000000000..84d4df21d --- /dev/null +++ b/assets/apiGroup.html-sw6EBA6N.js @@ -0,0 +1 @@ +import{_ as p}from"./groupSave-Vif2yElp.js";import{_ as c,r as a,o as l,c as s,a as e,d as t,b as o}from"./app-8OZtYazS.js";const m="/img/2022.2.1/apiParamGroup.png",d={},u=e("h1",{id:"api-分组",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#api-分组"},[e("span",null,"API 分组")])],-1),_=e("p",null,"目的:一个 API 下保存不同组合的参数",-1),g={href:"https://www.bilibili.com/video/BV1zU4y1S7pC?share_source=copy_web&vd_source=c46db3e7c134b1948dabbea9717a72ac",target:"_blank",rel:"noopener noreferrer"},h=e("em",null,"B 站教程",-1),f=e("div",{class:"hint-container tip"},[e("p",{class:"hint-container-title"},"提示"),e("p",null,"原保存操作将默认归类到 Default 分组")],-1),y=e("p",null,[e("img",{src:p,alt:"groupSave",title:"保存分组",loading:"lazy"})],-1),b=e("p",null,[e("strong",null,"切换参数")],-1),P=e("p",null,[e("img",{src:m,alt:"apiParamGroup",title:"切换分组",loading:"lazy"})],-1);function I(v,G){const r=a("Badge"),i=a("ExternalLinkIcon"),n=a("ColorIcon");return l(),s("div",null,[u,e("p",null,[t("版本要求: "),o(r,{text:"2022.2.1"})]),_,e("p",null,[e("a",g,[h,o(i)])]),e("p",null,[t("如何操作:输入参数后点击分组请求保存"),o(n,{icon:"saveGroup"})]),f,y,b,e("p",null,[t("以下是 book 列表 3 种语言的查询,点击"),o(n,{icon:"apiParamGroupNew"}),t("进行切换")]),P])}const x=c(d,[["render",I],["__file","apiGroup.html.vue"]]),B=JSON.parse('{"path":"/guide/features/apiGroup.html","title":"API 分组","lang":"zh-CN","frontmatter":{"description":"API 分组 版本要求: 目的:一个 API 下保存不同组合的参数 B 站教程 如何操作:输入参数后点击分组请求保存 提示 原保存操作将默认归类到 Default 分组 groupSave 切换参数 以下是 book 列表 3 种语言的查询,点击 apiParamGroup ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/apiGroup.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/apiGroup.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"API 分组"}],["meta",{"property":"og:description","content":"API 分组 版本要求: 目的:一个 API 下保存不同组合的参数 B 站教程 如何操作:输入参数后点击分组请求保存 提示 原保存操作将默认归类到 Default 分组 groupSave 切换参数 以下是 book 列表 3 种语言的查询,点击 apiParamGroup "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.1/groupSave.png \\"保存分组\\""}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"API 分组"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"API 分组\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.1/groupSave.png \\\\\\"保存分组\\\\\\"\\",\\"https://api-buddy.com/img/2022.2.1/apiParamGroup.png \\\\\\"切换分组\\\\\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.37,"words":112},"filePathRelative":"guide/features/apiGroup.md","localizedDate":"2024年5月31日","autoDesc":true}');export{x as comp,B as data}; diff --git a/assets/apiImportExport.html-8BYE1RGq.js b/assets/apiImportExport.html-8BYE1RGq.js new file mode 100644 index 000000000..2f9fbf67f --- /dev/null +++ b/assets/apiImportExport.html-8BYE1RGq.js @@ -0,0 +1 @@ +import{_ as i}from"./exportImportApis-cRKbjcMp.js";import{_ as r,r as n,o as l,c as s,a as t,d as o,b as a}from"./app-8OZtYazS.js";const p={},m=t("h1",{id:"apis-导入导出",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#apis-导入导出"},[t("span",null,"APIs 导入导出")])],-1),c=t("p",null,"利用该功能,你可以非常方便得将自己已有的 APIs 分享给别的开发者,或者导入到其他设备上的 IDEA。",-1),d=t("div",{class:"hint-container caution"},[t("p",{class:"hint-container-title"},"注意点"),t("ul",null,[t("li",null,[t("p",null,"导出的时候会新增一个名为 fastRequestCollection.xml 的 xml 文件,你不能重命名它, 默认导出到当前项目路径下。")]),t("li",null,[t("p",null,"导入的时候会做默认备份,并且会在.idea 文件夹下生成一个名为 fastRequestCollection-yyyyMMddHHmmssSSS.xml 的文件, 如果是导入误操作,可以通过导入它来还原。")]),t("li",null,[t("p",null,"如果 fastRequestCollection.xml 不可见,点击 file->Reload All from Disk 来强制刷新。")])])],-1),u=t("p",null,[t("img",{src:i,alt:"exportImportApis",loading:"lazy"})],-1);function g(h,_){const e=n("Badge");return l(),s("div",null,[m,t("p",null,[o("版本要求: "),a(e,{text:"2022.1.4.0"}),o(),a(e,{text:"废弃",type:"danger"})]),c,d,u])}const y=r(p,[["render",g],["__file","apiImportExport.html.vue"]]),I=JSON.parse('{"path":"/guide/features/apiImportExport.html","title":"APIs 导入导出","lang":"zh-CN","frontmatter":{"description":"APIs 导入导出 版本要求: 利用该功能,你可以非常方便得将自己已有的 APIs 分享给别的开发者,或者导入到其他设备上的 IDEA。 注意点 导出的时候会新增一个名为 fastRequestCollection.xml 的 xml 文件,你不能重命名它, 默认导出到当前项目路径下。 导入的时候会做默认备份,并且会在.idea 文件夹下生成一个名为 ...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/apiImportExport.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/apiImportExport.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"APIs 导入导出"}],["meta",{"property":"og:description","content":"APIs 导入导出 版本要求: 利用该功能,你可以非常方便得将自己已有的 APIs 分享给别的开发者,或者导入到其他设备上的 IDEA。 注意点 导出的时候会新增一个名为 fastRequestCollection.xml 的 xml 文件,你不能重命名它, 默认导出到当前项目路径下。 导入的时候会做默认备份,并且会在.idea 文件夹下生成一个名为 ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/exportImportApis.gif"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"APIs 导入导出"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"APIs 导入导出\\",\\"image\\":[\\"https://api-buddy.com/img/exportImportApis.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.56,"words":169},"filePathRelative":"guide/features/apiImportExport.md","localizedDate":"2024年5月31日","autoDesc":true}');export{y as comp,I as data}; diff --git a/assets/apiImportExport.html-TO0c3Lia.js b/assets/apiImportExport.html-TO0c3Lia.js new file mode 100644 index 000000000..1c2320a7f --- /dev/null +++ b/assets/apiImportExport.html-TO0c3Lia.js @@ -0,0 +1 @@ +import{_ as r}from"./exportImportApis-cRKbjcMp.js";import{_ as n,r as a,o as p,c as s,a as e,d as o,b as i}from"./app-8OZtYazS.js";const l={},m=e("h1",{id:"apis-import-and-export",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#apis-import-and-export"},[e("span",null,"APIs import and export")])],-1),d=e("p",null,"Using this function, you can easily share your existing APIs with other developers or import them to IDEA on other devices.",-1),c=e("div",{class:"hint-container caution"},[e("p",{class:"hint-container-title"},"Attention"),e("ul",null,[e("li",null,[e("p",null,"A new file named fastRequestCollection.xml will be added when exporting. You should not rename it. The plugin will export it to the current project path by default.")]),e("li",null,[e("p",null,"When importing, it will do a default backup and generate a file named fastRequestCollection-yyyyMMddHHmmssSSS.xml under the .idea folder. If fastRequestCollection.xml is imported by mistake, it can be restored by importing it.")]),e("li",null,[e("p",null,"Click file->Reload All from Disk to force a refresh to get fastRequestCollection.xml if it is not visible.")])])],-1),u=e("p",null,[e("img",{src:r,alt:"exportImportApis",loading:"lazy"})],-1);function h(g,f){const t=a("Badge");return p(),s("div",null,[m,e("p",null,[o("Version Required: "),i(t,{text:"2022.1.4"}),o(),i(t,{text:"Deprecated",type:"danger"})]),d,c,u])}const _=n(l,[["render",h],["__file","apiImportExport.html.vue"]]),A=JSON.parse('{"path":"/en/guide/features/apiImportExport.html","title":"APIs import and export","lang":"en-US","frontmatter":{"description":"APIs import and export Version Required: Using this function, you can easily share your existing APIs with other developers or import them to IDEA on other devices. Attention A ...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/apiImportExport.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/apiImportExport.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"APIs import and export"}],["meta",{"property":"og:description","content":"APIs import and export Version Required: Using this function, you can easily share your existing APIs with other developers or import them to IDEA on other devices. Attention A ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/exportImportApis.gif"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"APIs import and export"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"APIs import and export\\",\\"image\\":[\\"https://api-buddy.com/img/exportImportApis.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.39,"words":118},"filePathRelative":"en/guide/features/apiImportExport.md","localizedDate":"May 31, 2024","autoDesc":true}');export{_ as comp,A as data}; diff --git a/assets/apiList.html-FNisDg_V.js b/assets/apiList.html-FNisDg_V.js new file mode 100644 index 000000000..d4d5655be --- /dev/null +++ b/assets/apiList.html-FNisDg_V.js @@ -0,0 +1 @@ +import{_ as e}from"./apis_hd-xmI1Um5u.js";import{_ as t}from"./apiManager-Ha0ZoLBL.js";import{_ as a,o as i,c as o,e as n}from"./app-8OZtYazS.js";const r={},p=n('

API 列表

API 列表 name 取值:

  1. 如果方法使用了 swagger 的 @io.swagger.annotations.ApiOperation ,则取该注解的 value
  2. 如果没有 swagger 直接修饰,则取方法的 javaDoc 描述
  3. 如果以上都没有则返回 New Request

API 的 name 值支持修改。

api

apiManager

',4),s=[p];function c(m,l){return i(),o("div",null,s)}const u=a(r,[["render",c],["__file","apiList.html.vue"]]),_=JSON.parse('{"path":"/guide/features/apiList.html","title":"API 列表","lang":"zh-CN","frontmatter":{"description":"API 列表 API 列表 name 取值: 如果方法使用了 swagger 的 @io.swagger.annotations.ApiOperation ,则取该注解的 value 值 如果没有 swagger 直接修饰,则取方法的 javaDoc 描述 如果以上都没有则返回 New Request API 的 name 值支持修改。 api api...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/apiList.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/apiList.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"API 列表"}],["meta",{"property":"og:description","content":"API 列表 API 列表 name 取值: 如果方法使用了 swagger 的 @io.swagger.annotations.ApiOperation ,则取该注解的 value 值 如果没有 swagger 直接修饰,则取方法的 javaDoc 描述 如果以上都没有则返回 New Request API 的 name 值支持修改。 api api..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/apis_hd.png \\"API列表\\""}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"API 列表"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"API 列表\\",\\"image\\":[\\"https://api-buddy.com/img/apis_hd.png \\\\\\"API列表\\\\\\"\\",\\"https://api-buddy.com/img/apiManager.png \\\\\\"API管理\\\\\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.26,"words":78},"filePathRelative":"guide/features/apiList.md","localizedDate":"2024年5月31日","autoDesc":true}');export{u as comp,_ as data}; diff --git a/assets/apiList.html-iMbpQCtB.js b/assets/apiList.html-iMbpQCtB.js new file mode 100644 index 000000000..2c313a18c --- /dev/null +++ b/assets/apiList.html-iMbpQCtB.js @@ -0,0 +1 @@ +import{_ as t}from"./apiManager_en-7v6YIpNl.js";import{_ as e,o as a,c as n,e as i}from"./app-8OZtYazS.js";const o="/img/apis_hd_en.png",s={},r=i('

API list

API name value calculate:

  1. If the method uses swagger annotation @io.swagger.annotations.ApiOperation, then take the value of the annotation
  2. If there is no swagger annotation, then take the java Doc description of the method.
  3. If the two above do not match, return New Request.

API name value supports modification.

apis

apiManager

',4),p=[r];function l(c,m){return a(),n("div",null,p)}const h=e(s,[["render",l],["__file","apiList.html.vue"]]),u=JSON.parse('{"path":"/en/guide/features/apiList.html","title":"API list","lang":"en-US","frontmatter":{"description":"API list API name value calculate: If the method uses swagger annotation @io.swagger.annotations.ApiOperation, then take the value of the annotation If there is no swagger annot...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/apiList.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/apiList.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"API list"}],["meta",{"property":"og:description","content":"API list API name value calculate: If the method uses swagger annotation @io.swagger.annotations.ApiOperation, then take the value of the annotation If there is no swagger annot..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/apis_hd_en.png \\"APIs\\""}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"API list"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"API list\\",\\"image\\":[\\"https://api-buddy.com/img/apis_hd_en.png \\\\\\"APIs\\\\\\"\\",\\"https://api-buddy.com/img/apiManager_en.png \\\\\\"APIs manager\\\\\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.21,"words":62},"filePathRelative":"en/guide/features/apiList.md","localizedDate":"May 31, 2024","autoDesc":true}');export{h as comp,u as data}; diff --git a/assets/apiManager-Ha0ZoLBL.js b/assets/apiManager-Ha0ZoLBL.js new file mode 100644 index 000000000..87ee175d0 --- /dev/null +++ b/assets/apiManager-Ha0ZoLBL.js @@ -0,0 +1 @@ +const a="/img/apiManager.png";export{a as _}; diff --git a/assets/apiManager_en-7v6YIpNl.js b/assets/apiManager_en-7v6YIpNl.js new file mode 100644 index 000000000..6e27689ec --- /dev/null +++ b/assets/apiManager_en-7v6YIpNl.js @@ -0,0 +1 @@ +const a="/img/apiManager_en.png";export{a as _}; diff --git a/assets/apiNavigateTree.html-RHQgtl5s.js b/assets/apiNavigateTree.html-RHQgtl5s.js new file mode 100644 index 000000000..76b21c272 --- /dev/null +++ b/assets/apiNavigateTree.html-RHQgtl5s.js @@ -0,0 +1 @@ +import{_ as a}from"./apinav-gngrTEBb.js";import{_ as o,r,o as i,c as n,a as e,d as l,b as s}from"./app-8OZtYazS.js";const p={},c=e("h1",{id:"api-navigate-tree",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#api-navigate-tree"},[e("span",null,"API navigate tree")])],-1),d=e("div",{class:"hint-container tip"},[e("p",{class:"hint-container-title"},"Tips"),e("ol",null,[e("li",null,[e("p",null,"Select the tree, enter keywords, and press Enter again or double-click the left mouse button to locate the API.")]),e("li",null,[e("p",null,"Hover the mouse to display the doc of the API.")]),e("li",null,[e("p",null,"The API Navigate tree is lazy loaded by default, you need to click the refresh button, and every time you add an API, you also need to refresh to get it.")]),e("li",null,[e("p",null,"Lazy loading helps to speed up idea startup.")])])],-1),m=e("p",null,[e("img",{src:a,alt:"apinavi",loading:"lazy"})],-1);function u(g,h){const t=r("Badge");return i(),n("div",null,[c,e("p",null,[l("Version required: "),s(t,{text:"2.0.7"})]),d,m])}const _=o(p,[["render",u],["__file","apiNavigateTree.html.vue"]]),f=JSON.parse('{"path":"/en/guide/features/apiNavigateTree.html","title":"API navigate tree","lang":"en-US","frontmatter":{"description":"API navigate tree Version required: Tips Select the tree, enter keywords, and press Enter again or double-click the left mouse button to locate the API. Hover the mouse to displ...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/apiNavigateTree.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/apiNavigateTree.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"API navigate tree"}],["meta",{"property":"og:description","content":"API navigate tree Version required: Tips Select the tree, enter keywords, and press Enter again or double-click the left mouse button to locate the API. Hover the mouse to displ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/apinav.gif"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"API navigate tree"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"API navigate tree\\",\\"image\\":[\\"https://api-buddy.com/img/apinav.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.28,"words":85},"filePathRelative":"en/guide/features/apiNavigateTree.md","localizedDate":"May 31, 2024","autoDesc":true}');export{_ as comp,f as data}; diff --git a/assets/apiNavigateTree.html-wkCLDYwJ.js b/assets/apiNavigateTree.html-wkCLDYwJ.js new file mode 100644 index 000000000..1086b0c0c --- /dev/null +++ b/assets/apiNavigateTree.html-wkCLDYwJ.js @@ -0,0 +1 @@ +import{_ as a}from"./apinav-gngrTEBb.js";import{_ as i,r as o,o as n,c as r,a as e,d as p,b as l}from"./app-8OZtYazS.js";const c={},s=e("h1",{id:"api-导航树",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#api-导航树"},[e("span",null,"API 导航树")])],-1),m=e("div",{class:"hint-container tip"},[e("p",{class:"hint-container-title"},"提示"),e("ol",null,[e("li",null,[e("p",null,"选中树输入关键字,再按回车或者鼠标左键双击即可定位到 API")]),e("li",null,[e("p",null,"悬浮鼠标显示 api 的 doc")]),e("li",null,[e("p",null,"API Navigate 树需要点击刷新按钮,同样每次新增了 API 你也需要刷新才能得到")])])],-1),d=e("p",null,[e("img",{src:a,alt:"apinavi",loading:"lazy"})],-1);function g(u,h){const t=o("Badge");return n(),r("div",null,[s,e("p",null,[p("版本要求: "),l(t,{text:"2.0.7"})]),m,d])}const v=i(c,[["render",g],["__file","apiNavigateTree.html.vue"]]),y=JSON.parse('{"path":"/guide/features/apiNavigateTree.html","title":"API 导航树","lang":"zh-CN","frontmatter":{"description":"API 导航树 版本要求: 提示 选中树输入关键字,再按回车或者鼠标左键双击即可定位到 API 悬浮鼠标显示 api 的 doc API Navigate 树需要点击刷新按钮,同样每次新增了 API 你也需要刷新才能得到 apinavi ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/apiNavigateTree.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/apiNavigateTree.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"API 导航树"}],["meta",{"property":"og:description","content":"API 导航树 版本要求: 提示 选中树输入关键字,再按回车或者鼠标左键双击即可定位到 API 悬浮鼠标显示 api 的 doc API Navigate 树需要点击刷新按钮,同样每次新增了 API 你也需要刷新才能得到 apinavi "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/apinav.gif"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"API 导航树"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"API 导航树\\",\\"image\\":[\\"https://api-buddy.com/img/apinav.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.27,"words":82},"filePathRelative":"guide/features/apiNavigateTree.md","localizedDate":"2024年5月31日","autoDesc":true}');export{v as comp,y as data}; diff --git a/assets/apiPreview-TsYf71lp.js b/assets/apiPreview-TsYf71lp.js new file mode 100644 index 000000000..80480e7c3 --- /dev/null +++ b/assets/apiPreview-TsYf71lp.js @@ -0,0 +1 @@ +const i="/img/apiPreview.gif";export{i as _}; diff --git a/assets/apiPreview.html-YLc87oA-.js b/assets/apiPreview.html-YLc87oA-.js new file mode 100644 index 000000000..d46ba591c --- /dev/null +++ b/assets/apiPreview.html-YLc87oA-.js @@ -0,0 +1 @@ +import{_ as o}from"./apiPreview-TsYf71lp.js";import{_ as a,r as i,o as r,c as n,a as e,d as c,b as l}from"./app-8OZtYazS.js";const p={},s=e("h1",{id:"api-list-preview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#api-list-preview"},[e("span",null,"API list preview")])],-1),d=e("ol",null,[e("li",null,"Focus the dialog box, enter a keyword and you can quickly search based on the path keyword of the API."),e("li",null,"Double-click the entry to jump to the code location of the method.")],-1),m=e("p",null,[e("img",{src:o,alt:"apiDocExample",loading:"lazy"})],-1);function h(u,g){const t=i("Badge");return r(),n("div",null,[s,e("p",null,[c("Version required: "),l(t,{text:"2022.1.5"})]),d,m])}const w=a(p,[["render",h],["__file","apiPreview.html.vue"]]),f=JSON.parse('{"path":"/en/guide/features/apiPreview.html","title":"API list preview","lang":"en-US","frontmatter":{"description":"API list preview Version required: Focus the dialog box, enter a keyword and you can quickly search based on the path keyword of the API. Double-click the entry to jump to the c...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/apiPreview.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/apiPreview.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"API list preview"}],["meta",{"property":"og:description","content":"API list preview Version required: Focus the dialog box, enter a keyword and you can quickly search based on the path keyword of the API. Double-click the entry to jump to the c..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/apiPreview.gif"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"API list preview"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"API list preview\\",\\"image\\":[\\"https://api-buddy.com/img/apiPreview.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.15,"words":46},"filePathRelative":"en/guide/features/apiPreview.md","localizedDate":"May 31, 2024","autoDesc":true}');export{w as comp,f as data}; diff --git a/assets/apiPreview.html-modtWLsy.js b/assets/apiPreview.html-modtWLsy.js new file mode 100644 index 000000000..cbc8c9705 --- /dev/null +++ b/assets/apiPreview.html-modtWLsy.js @@ -0,0 +1 @@ +import{_ as a}from"./apiPreview-TsYf71lp.js";import{_ as o,r as i,o as r,c as n,a as e,d as p,b as c}from"./app-8OZtYazS.js";const m={},l=e("h1",{id:"api-一览表预览",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#api-一览表预览"},[e("span",null,"API 一览表预览")])],-1),s=e("ol",null,[e("li",null,"聚焦窗口后输入关键字,根据 API 的路径关键字可以快速搜索"),e("li",null,"双击条目即可跳转到方法所在代码位置")],-1),d=e("p",null,[e("img",{src:a,alt:"apiDocExample",loading:"lazy"})],-1);function u(g,h){const t=i("Badge");return r(),n("div",null,[l,e("p",null,[p("版本要求: "),c(t,{text:"2022.1.5"})]),s,d])}const y=o(m,[["render",u],["__file","apiPreview.html.vue"]]),P=JSON.parse('{"path":"/guide/features/apiPreview.html","title":"API 一览表预览","lang":"zh-CN","frontmatter":{"description":"API 一览表预览 版本要求: 聚焦窗口后输入关键字,根据 API 的路径关键字可以快速搜索 双击条目即可跳转到方法所在代码位置 apiDocExample ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/apiPreview.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/apiPreview.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"API 一览表预览"}],["meta",{"property":"og:description","content":"API 一览表预览 版本要求: 聚焦窗口后输入关键字,根据 API 的路径关键字可以快速搜索 双击条目即可跳转到方法所在代码位置 apiDocExample "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/apiPreview.gif"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"API 一览表预览"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"API 一览表预览\\",\\"image\\":[\\"https://api-buddy.com/img/apiPreview.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.2,"words":60},"filePathRelative":"guide/features/apiPreview.md","localizedDate":"2024年5月31日","autoDesc":true}');export{y as comp,P as data}; diff --git a/assets/apiToDoc.html-l25xBp-b.js b/assets/apiToDoc.html-l25xBp-b.js new file mode 100644 index 000000000..358238add --- /dev/null +++ b/assets/apiToDoc.html-l25xBp-b.js @@ -0,0 +1 @@ +import{_ as o}from"./shareApi-uRFN2kOm.js";import{_ as a}from"./apiDocExample-I6FA1jbR.js";import{_ as n,r,o as p,c as i,a as e,d as c,b as s}from"./app-8OZtYazS.js";const m={},l=e("h1",{id:"api-生成文档",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#api-生成文档"},[e("span",null,"API 生成文档")])],-1),d=e("p",null,"请注意 word 形式的 API 内部采用 html 来实现的,所以不要觉得奇怪,导出就行。",-1),h=e("p",null,"Response Example 需要运行你的 API 后才会被显示",-1),u=e("p",null,[e("img",{src:o,alt:"shareDocButton",loading:"lazy"})],-1),g=e("p",null,[e("img",{src:a,alt:"apiDocExample",loading:"lazy"})],-1);function _(y,f){const t=r("Badge");return p(),i("div",null,[l,e("p",null,[c("版本要求: "),s(t,{text:"2022.1.5"})]),d,h,u,g])}const P=n(m,[["render",_],["__file","apiToDoc.html.vue"]]),I=JSON.parse('{"path":"/guide/features/apiToDoc.html","title":"API 生成文档","lang":"zh-CN","frontmatter":{"description":"API 生成文档 版本要求: 请注意 word 形式的 API 内部采用 html 来实现的,所以不要觉得奇怪,导出就行。 Response Example 需要运行你的 API 后才会被显示 shareDocButton apiDocExample ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/apiToDoc.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/apiToDoc.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"API 生成文档"}],["meta",{"property":"og:description","content":"API 生成文档 版本要求: 请注意 word 形式的 API 内部采用 html 来实现的,所以不要觉得奇怪,导出就行。 Response Example 需要运行你的 API 后才会被显示 shareDocButton apiDocExample "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/shareApi.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"API 生成文档"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"API 生成文档\\",\\"image\\":[\\"https://api-buddy.com/img/shareApi.png\\",\\"https://api-buddy.com/img/apiDocExample.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.2,"words":61},"filePathRelative":"guide/features/apiToDoc.md","localizedDate":"2024年5月31日","autoDesc":true}');export{P as comp,I as data}; diff --git a/assets/apiToDoc.html-qDMokp8P.js b/assets/apiToDoc.html-qDMokp8P.js new file mode 100644 index 000000000..1cc1900ca --- /dev/null +++ b/assets/apiToDoc.html-qDMokp8P.js @@ -0,0 +1 @@ +import{_ as n}from"./shareApi_en-cvbZZWPP.js";import{_ as a}from"./apiDocExample-I6FA1jbR.js";import{_ as r,r as i,o as s,c as m,a as e,d as t,b as p}from"./app-8OZtYazS.js";const c={},d=e("h1",{id:"api-to-document",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#api-to-document"},[e("span",null,"API to document")])],-1),l=e("p",null,[t("Please note that the API in "),e("code",null,"word"),t(" form is implemented in Html, so don't feel strange. Just export it.")],-1),u=e("p",null,"Response Example requires running your API to be displayed.",-1),g=e("p",null,[e("img",{src:n,alt:"shareDocButton",loading:"lazy"})],-1),h=e("p",null,[e("img",{src:a,alt:"apiDocExample",loading:"lazy"})],-1);function _(y,f){const o=i("Badge");return s(),m("div",null,[d,e("p",null,[t("Version required: "),p(o,{text:"2022.1.5+"})]),l,u,g,h])}const I=r(c,[["render",_],["__file","apiToDoc.html.vue"]]),T=JSON.parse(`{"path":"/en/guide/features/apiToDoc.html","title":"API to document","lang":"en-US","frontmatter":{"description":"API to document Version required: Please note that the API in word form is implemented in Html, so don't feel strange. Just export it. Response Example requires running your API...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/apiToDoc.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/apiToDoc.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"API to document"}],["meta",{"property":"og:description","content":"API to document Version required: Please note that the API in word form is implemented in Html, so don't feel strange. Just export it. Response Example requires running your API..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/shareApi_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"API to document"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"API to document\\",\\"image\\":[\\"https://api-buddy.com/img/shareApi_en.png\\",\\"https://api-buddy.com/img/apiDocExample.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.14,"words":42},"filePathRelative":"en/guide/features/apiToDoc.md","localizedDate":"May 31, 2024","autoDesc":true}`);export{I as comp,T as data}; diff --git a/assets/apiToPostman.html-KaBGvCwi.js b/assets/apiToPostman.html-KaBGvCwi.js new file mode 100644 index 000000000..7383a2edc --- /dev/null +++ b/assets/apiToPostman.html-KaBGvCwi.js @@ -0,0 +1 @@ +import{_ as e}from"./export2postman-dEAWnBlR.js";import{_ as o,o as a,c as n,a as t}from"./app-8OZtYazS.js";const r={},p=t("h1",{id:"apis-export-to-postman",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#apis-export-to-postman"},[t("span",null,"APIs export to Postman")])],-1),s=t("p",null,[t("img",{src:e,alt:"export2postman",loading:"lazy"})],-1),m=[p,s];function i(c,d){return a(),n("div",null,m)}const h=o(r,[["render",i],["__file","apiToPostman.html.vue"]]),u=JSON.parse('{"path":"/en/guide/features/apiToPostman.html","title":"APIs export to Postman","lang":"en-US","frontmatter":{"description":"APIs export to Postman export2postman ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/apiToPostman.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/apiToPostman.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"APIs export to Postman"}],["meta",{"property":"og:description","content":"APIs export to Postman export2postman "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/export2postman.gif"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"APIs export to Postman"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"APIs export to Postman\\",\\"image\\":[\\"https://api-buddy.com/img/export2postman.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.02,"words":6},"filePathRelative":"en/guide/features/apiToPostman.md","localizedDate":"May 31, 2024","autoDesc":true}');export{h as comp,u as data}; diff --git a/assets/apiToPostman.html-xOpoh0Kq.js b/assets/apiToPostman.html-xOpoh0Kq.js new file mode 100644 index 000000000..7a056b89a --- /dev/null +++ b/assets/apiToPostman.html-xOpoh0Kq.js @@ -0,0 +1 @@ +import{_ as e}from"./export2postman-dEAWnBlR.js";import{_ as a,o,c as n,a as t}from"./app-8OZtYazS.js";const r={},m=t("h1",{id:"api-导出到-postman",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#api-导出到-postman"},[t("span",null,"API 导出到 Postman")])],-1),i=t("p",null,[t("img",{src:e,alt:"export2postman",loading:"lazy"})],-1),s=[m,i];function p(c,d){return o(),n("div",null,s)}const h=a(r,[["render",p],["__file","apiToPostman.html.vue"]]),u=JSON.parse('{"path":"/guide/features/apiToPostman.html","title":"API 导出到 Postman","lang":"zh-CN","frontmatter":{"description":"API 导出到 Postman export2postman ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/apiToPostman.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/apiToPostman.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"API 导出到 Postman"}],["meta",{"property":"og:description","content":"API 导出到 Postman export2postman "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/export2postman.gif"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"API 导出到 Postman"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"API 导出到 Postman\\",\\"image\\":[\\"https://api-buddy.com/img/export2postman.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.02,"words":7},"filePathRelative":"guide/features/apiToPostman.md","localizedDate":"2024年5月31日","autoDesc":true}');export{h as comp,u as data}; diff --git a/assets/apifox.html-ZrsXqK4W.js b/assets/apifox.html-ZrsXqK4W.js new file mode 100644 index 000000000..ded285633 --- /dev/null +++ b/assets/apifox.html-ZrsXqK4W.js @@ -0,0 +1 @@ +import{_ as n,r as a,o as i,c as o,a as e,d as r,b as p,e as c}from"./app-8OZtYazS.js";const s="/img/2024.1.4/apifoxIntegration_en.png",g="/img/features/apifoxGenerateApikey_en.png",l="/img/features/apifoxConfigProject_en.png",d="/img/features/apifoxSyncEnvironment_en.png",m="/img/features/apifoxSyncApi_en.png",f={},h=e("h1",{id:"apifox-integration",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#apifox-integration"},[e("span",null,"Apifox integration")])],-1),u=c('

apifoxIntegration

1. API access token configuration

apifoxGenerateApikey

Setting path: Avatar -> Account Setting-> API Access Token

Expiration

Note that after the validity period of the Api key, the plugin's Apifox synchronization function will no longer work, so it is recommended to check no Expriation when creating the Api Access token.

2. Mapping project

apifoxConfigProject

After we have correctly set the Api access token, we need to make a mapping association between the IDEA project and the Apifox project. Click to refresh the project. When the project is loaded, click on the team option and check the target project.

3. Environment sync

apifoxSyncEnvironment

Environment sync function will synchronize all domain names, variables, and global parameters of the project to Apifox as service parameters, variables, and global parameters. It is recommended to execute this step before API sync

4. API sync

apifoxSyncApi

To synchronize the API, you need to save the API first. It can be triggered manually or automatically. For automatic triggering, you need to check the Sync after save option in the Apifox sync setting.

',14);function y(_,x){const t=a("Badge");return i(),o("div",null,[h,e("p",null,[r("Version required: "),p(t,{text:"2024.1.4+"})]),u])}const k=n(f,[["render",y],["__file","apifox.html.vue"]]),v=JSON.parse('{"path":"/en/guide/features/apifox.html","title":"Apifox integration","lang":"en-US","frontmatter":{"description":"Apifox integration Version required: apifoxIntegration 1. API access token configuration apifoxGenerateApikey Setting path: Avatar -> Account Setting-> API Access Token。 Expirat...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/apifox.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/apifox.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Apifox integration"}],["meta",{"property":"og:description","content":"Apifox integration Version required: apifoxIntegration 1. API access token configuration apifoxGenerateApikey Setting path: Avatar -> Account Setting-> API Access Token。 Expirat..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2024.1.4/apifoxIntegration_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Apifox integration"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Apifox integration\\",\\"image\\":[\\"https://api-buddy.com/img/2024.1.4/apifoxIntegration_en.png\\",\\"https://api-buddy.com/img/features/apifoxGenerateApikey_en.png\\",\\"https://api-buddy.com/img/features/apifoxConfigProject_en.png\\",\\"https://api-buddy.com/img/features/apifoxSyncEnvironment_en.png\\",\\"https://api-buddy.com/img/features/apifoxSyncApi_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"1. API access token configuration","slug":"_1-api-access-token-configuration","link":"#_1-api-access-token-configuration","children":[]},{"level":2,"title":"2. Mapping project","slug":"_2-mapping-project","link":"#_2-mapping-project","children":[]},{"level":2,"title":"3. Environment sync","slug":"_3-environment-sync","link":"#_3-environment-sync","children":[]},{"level":2,"title":"4. API sync","slug":"_4-api-sync","link":"#_4-api-sync","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.63,"words":189},"filePathRelative":"en/guide/features/apifox.md","localizedDate":"May 31, 2024","autoDesc":true}');export{k as comp,v as data}; diff --git a/assets/apifox.html-abXN2YzN.js b/assets/apifox.html-abXN2YzN.js new file mode 100644 index 000000000..d88de2a19 --- /dev/null +++ b/assets/apifox.html-abXN2YzN.js @@ -0,0 +1 @@ +import{_ as p,r as i,o as r,c as s,a as e,d as t,b as a,e as c}from"./app-8OZtYazS.js";const l="/img/2024.1.4/apifoxIntegration.png",d="/img/features/apifoxGenerateApikey.png",m="/img/features/apifoxConfigProject.png",f="/img/features/apifoxSyncEnvironment.png",g="/img/features/apifoxSyncApi.png",h={},_=e("h1",{id:"apifox-集成",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#apifox-集成"},[e("span",null,"Apifox 集成")])],-1),x=e("p",null,[e("img",{src:l,alt:"apifoxIntegration",loading:"lazy"})],-1),A=e("h2",{id:"_1-配置-api-access-token",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-配置-api-access-token"},[e("span",null,"1. 配置 API access token")])],-1),u=e("p",null,[e("img",{src:d,alt:"apifoxGenerateApikey",loading:"lazy"})],-1),y={href:"https://apifox.com/help/openapi",target:"_blank",rel:"noopener noreferrer"},k=e("code",null,"头像-账号设置- API 访问令牌",-1),I=c('

有效期

需要注意的是,过了 Api access token的有效期,插件关于 Apifox 同步的功能将全部失效,所以建议在创建 Api access token 的时候设置为无限期

2. 映射项目

apifoxConfigProject

当我们正确设置好 Api access token 之后,需要对 IDEA 项目与 Apifox 的项目进行一个映射关联,点击刷新项目,当项目加载完毕以后,点开团队选项,勾选对应的项目即可。

3. 同步 Environment

apifoxSyncEnvironment

同步 Environment 会将项目的不同环境的域名、变量、全局参数全部同步至 Apifox,作为 Apifox 的服务参数、变量以及全局参数。这一步建议放在 API 同步之前先执行

4. 同步 API

apifoxSyncApi

同步 API 需要先将 API 进行保存,可以手动触发,也可以自动触发,自动触发需要在 Apifox 同步设置中勾选保存 API 后同步 Apifox选项。

5.视频教程

',11),P={href:"https://www.bilibili.com/video/BV1pM4m1Q7c5",target:"_blank",rel:"noopener noreferrer"};function v(b,E){const o=i("Badge"),n=i("ExternalLinkIcon");return r(),s("div",null,[_,e("p",null,[t("版本要求: "),a(o,{text:"2024.1.4+"})]),x,A,u,e("p",null,[t("参考 Apifox 官方文档 "),e("a",y,[t("Apifox 开放 API"),a(n)]),t(", 获取 API access token 的功能路径:"),k,t("。")]),I,e("p",null,[e("a",P,[t("Bilibili视频教程"),a(n)])])])}const z=p(h,[["render",v],["__file","apifox.html.vue"]]),B=JSON.parse('{"path":"/guide/features/apifox.html","title":"Apifox 集成","lang":"zh-CN","frontmatter":{"description":"Apifox 集成 版本要求: apifoxIntegration 1. 配置 API access token apifoxGenerateApikey 参考 Apifox 官方文档 Apifox 开放 API, 获取 API access token 的功能路径:头像-账号设置- API 访问令牌。 有效期 需要注意的是,过了 Api access...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/apifox.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/apifox.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Apifox 集成"}],["meta",{"property":"og:description","content":"Apifox 集成 版本要求: apifoxIntegration 1. 配置 API access token apifoxGenerateApikey 参考 Apifox 官方文档 Apifox 开放 API, 获取 API access token 的功能路径:头像-账号设置- API 访问令牌。 有效期 需要注意的是,过了 Api access..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2024.1.4/apifoxIntegration.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Apifox 集成"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Apifox 集成\\",\\"image\\":[\\"https://api-buddy.com/img/2024.1.4/apifoxIntegration.png\\",\\"https://api-buddy.com/img/features/apifoxGenerateApikey.png\\",\\"https://api-buddy.com/img/features/apifoxConfigProject.png\\",\\"https://api-buddy.com/img/features/apifoxSyncEnvironment.png\\",\\"https://api-buddy.com/img/features/apifoxSyncApi.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"1. 配置 API access token","slug":"_1-配置-api-access-token","link":"#_1-配置-api-access-token","children":[]},{"level":2,"title":"2. 映射项目","slug":"_2-映射项目","link":"#_2-映射项目","children":[]},{"level":2,"title":"3. 同步 Environment","slug":"_3-同步-environment","link":"#_3-同步-environment","children":[]},{"level":2,"title":"4. 同步 API","slug":"_4-同步-api","link":"#_4-同步-api","children":[]},{"level":2,"title":"5.视频教程","slug":"_5-视频教程","link":"#_5-视频教程","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.03,"words":308},"filePathRelative":"guide/features/apifox.md","localizedDate":"2024年5月31日","autoDesc":true}');export{z as comp,B as data}; diff --git a/assets/apinav-gngrTEBb.js b/assets/apinav-gngrTEBb.js new file mode 100644 index 000000000..d205fa6bc --- /dev/null +++ b/assets/apinav-gngrTEBb.js @@ -0,0 +1 @@ +const i="/img/apinav.gif";export{i as _}; diff --git a/assets/apis_hd-xmI1Um5u.js b/assets/apis_hd-xmI1Um5u.js new file mode 100644 index 000000000..094ecaa1e --- /dev/null +++ b/assets/apis_hd-xmI1Um5u.js @@ -0,0 +1 @@ +const p="/img/apis_hd.png";export{p as _}; diff --git a/assets/app-8OZtYazS.js b/assets/app-8OZtYazS.js new file mode 100644 index 000000000..29bcfd440 --- /dev/null +++ b/assets/app-8OZtYazS.js @@ -0,0 +1,57 @@ +/** +* @vue/shared v3.4.15 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function ga(e,t){const n=new Set(e.split(","));return t?r=>n.has(r.toLowerCase()):r=>n.has(r)}const Ee={},En=[],ut=()=>{},Tu=()=>!1,fr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),_a=e=>e.startsWith("onUpdate:"),Re=Object.assign,ya=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Su=Object.prototype.hasOwnProperty,ue=(e,t)=>Su.call(e,t),te=Array.isArray,Un=e=>Zr(e)==="[object Map]",Lu=e=>Zr(e)==="[object Set]",re=e=>typeof e=="function",Oe=e=>typeof e=="string",Qr=e=>typeof e=="symbol",Se=e=>e!==null&&typeof e=="object",xl=e=>(Se(e)||re(e))&&re(e.then)&&re(e.catch),Au=Object.prototype.toString,Zr=e=>Au.call(e),Cu=e=>Zr(e).slice(8,-1),ku=e=>Zr(e)==="[object Object]",ba=e=>Oe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Wn=ga(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),eo=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Iu=/-(\w)/g,Ze=eo(e=>e.replace(Iu,(t,n)=>n?n.toUpperCase():"")),Pu=/\B([A-Z])/g,On=eo(e=>e.replace(Pu,"-$1").toLowerCase()),Dn=eo(e=>e.charAt(0).toUpperCase()+e.slice(1)),wo=eo(e=>e?`on${Dn(e)}`:""),Kt=(e,t)=>!Object.is(e,t),Eo=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},xu=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ru=e=>{const t=Oe(e)?Number(e):NaN;return isNaN(t)?e:t};let li;const Rl=()=>li||(li=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function to(e){if(te(e)){const t={};for(let n=0;n{if(n){const r=n.split(Du);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function no(e){let t="";if(Oe(e))t=e;else if(te(e))for(let n=0;n=2))break}this._dirtyLevel<2&&(this._dirtyLevel=0),hn()}return this._dirtyLevel>=2}set dirty(t){this._dirtyLevel=t?2:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=Wt,n=sn;try{return Wt=!0,sn=this,this._runnings++,si(this),this.fn()}finally{ci(this),this._runnings--,sn=n,Wt=t}}stop(){var t;this.active&&(si(this),ci(this),(t=this.onStop)==null||t.call(this),this.active=!1)}}function ju(e){return e.value}function si(e){e._trackId++,e._depsLength=0}function ci(e){if(e.deps&&e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},Br=new WeakMap,cn=Symbol(""),Wo=Symbol("");function et(e,t,n){if(Wt&&sn){let r=Br.get(e);r||Br.set(e,r=new Map);let o=r.get(n);o||r.set(n,o=Bl(()=>r.delete(n))),Vl(sn,o)}}function xt(e,t,n,r,o,a){const i=Br.get(e);if(!i)return;let l=[];if(t==="clear")l=[...i.values()];else if(n==="length"&&te(e)){const c=Number(r);i.forEach((s,u)=>{(u==="length"||!Qr(u)&&u>=c)&&l.push(s)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":te(e)?ba(n)&&l.push(i.get("length")):(l.push(i.get(cn)),Un(e)&&l.push(i.get(Wo)));break;case"delete":te(e)||(l.push(i.get(cn)),Un(e)&&l.push(i.get(Wo)));break;case"set":Un(e)&&l.push(i.get(cn));break}Ea();for(const c of l)c&&$l(c,2);Ta()}function zu(e,t){var n;return(n=Br.get(e))==null?void 0:n.get(t)}const qu=ga("__proto__,__v_isRef,__isVue"),Fl=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Qr)),ui=Uu();function Uu(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=se(this);for(let a=0,i=this.length;a{e[t]=function(...n){pn(),Ea();const r=se(this)[t].apply(this,n);return Ta(),hn(),r}}),e}function Wu(e){const t=se(this);return et(t,"has",e),t.hasOwnProperty(e)}class jl{constructor(t=!1,n=!1){this._isReadonly=t,this._shallow=n}get(t,n,r){const o=this._isReadonly,a=this._shallow;if(n==="__v_isReactive")return!o;if(n==="__v_isReadonly")return o;if(n==="__v_isShallow")return a;if(n==="__v_raw")return r===(o?a?ad:Wl:a?Ul:ql).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=te(t);if(!o){if(i&&ue(ui,n))return Reflect.get(ui,n,r);if(n==="hasOwnProperty")return Wu}const l=Reflect.get(t,n,r);return(Qr(n)?Fl.has(n):qu(n))||(o||et(t,"get",n),a)?l:$e(l)?i&&ba(n)?l:l.value:Se(l)?o?Mn(l):at(l):l}}class zl extends jl{constructor(t=!1){super(!1,t)}set(t,n,r,o){let a=t[n];if(!this._shallow){const c=Cn(a);if(!Fr(r)&&!Cn(r)&&(a=se(a),r=se(r)),!te(t)&&$e(a)&&!$e(r))return c?!1:(a.value=r,!0)}const i=te(t)&&ba(n)?Number(n)e,ro=e=>Reflect.getPrototypeOf(e);function Tr(e,t,n=!1,r=!1){e=e.__v_raw;const o=se(e),a=se(t);n||(Kt(t,a)&&et(o,"get",t),et(o,"get",a));const{has:i}=ro(o),l=r?Sa:n?Ca:nr;if(i.call(o,t))return l(e.get(t));if(i.call(o,a))return l(e.get(a));e!==o&&e.get(t)}function Sr(e,t=!1){const n=this.__v_raw,r=se(n),o=se(e);return t||(Kt(e,o)&&et(r,"has",e),et(r,"has",o)),e===o?n.has(e):n.has(e)||n.has(o)}function Lr(e,t=!1){return e=e.__v_raw,!t&&et(se(e),"iterate",cn),Reflect.get(e,"size",e)}function di(e){e=se(e);const t=se(this);return ro(t).has.call(t,e)||(t.add(e),xt(t,"add",e,e)),this}function fi(e,t){t=se(t);const n=se(this),{has:r,get:o}=ro(n);let a=r.call(n,e);a||(e=se(e),a=r.call(n,e));const i=o.call(n,e);return n.set(e,t),a?Kt(t,i)&&xt(n,"set",e,t):xt(n,"add",e,t),this}function pi(e){const t=se(this),{has:n,get:r}=ro(t);let o=n.call(t,e);o||(e=se(e),o=n.call(t,e)),r&&r.call(t,e);const a=t.delete(e);return o&&xt(t,"delete",e,void 0),a}function hi(){const e=se(this),t=e.size!==0,n=e.clear();return t&&xt(e,"clear",void 0,void 0),n}function Ar(e,t){return function(r,o){const a=this,i=a.__v_raw,l=se(i),c=t?Sa:e?Ca:nr;return!e&&et(l,"iterate",cn),i.forEach((s,u)=>r.call(o,c(s),c(u),a))}}function Cr(e,t,n){return function(...r){const o=this.__v_raw,a=se(o),i=Un(a),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,s=o[e](...r),u=n?Sa:t?Ca:nr;return!t&&et(a,"iterate",c?Wo:cn),{next(){const{value:f,done:p}=s.next();return p?{value:f,done:p}:{value:l?[u(f[0]),u(f[1])]:u(f),done:p}},[Symbol.iterator](){return this}}}}function Mt(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Xu(){const e={get(a){return Tr(this,a)},get size(){return Lr(this)},has:Sr,add:di,set:fi,delete:pi,clear:hi,forEach:Ar(!1,!1)},t={get(a){return Tr(this,a,!1,!0)},get size(){return Lr(this)},has:Sr,add:di,set:fi,delete:pi,clear:hi,forEach:Ar(!1,!0)},n={get(a){return Tr(this,a,!0)},get size(){return Lr(this,!0)},has(a){return Sr.call(this,a,!0)},add:Mt("add"),set:Mt("set"),delete:Mt("delete"),clear:Mt("clear"),forEach:Ar(!0,!1)},r={get(a){return Tr(this,a,!0,!0)},get size(){return Lr(this,!0)},has(a){return Sr.call(this,a,!0)},add:Mt("add"),set:Mt("set"),delete:Mt("delete"),clear:Mt("clear"),forEach:Ar(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=Cr(a,!1,!1),n[a]=Cr(a,!0,!1),t[a]=Cr(a,!1,!0),r[a]=Cr(a,!0,!0)}),[e,n,t,r]}const[Qu,Zu,ed,td]=Xu();function La(e,t){const n=t?e?td:ed:e?Zu:Qu;return(r,o,a)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?r:Reflect.get(ue(n,o)&&o in r?n:r,o,a)}const nd={get:La(!1,!1)},rd={get:La(!1,!0)},od={get:La(!0,!1)},ql=new WeakMap,Ul=new WeakMap,Wl=new WeakMap,ad=new WeakMap;function id(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ld(e){return e.__v_skip||!Object.isExtensible(e)?0:id(Cu(e))}function at(e){return Cn(e)?e:Aa(e,!1,Ku,nd,ql)}function Gl(e){return Aa(e,!1,Ju,rd,Ul)}function Mn(e){return Aa(e,!0,Yu,od,Wl)}function Aa(e,t,n,r,o){if(!Se(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=o.get(e);if(a)return a;const i=ld(e);if(i===0)return e;const l=new Proxy(e,i===2?r:n);return o.set(e,l),l}function Tn(e){return Cn(e)?Tn(e.__v_raw):!!(e&&e.__v_isReactive)}function Cn(e){return!!(e&&e.__v_isReadonly)}function Fr(e){return!!(e&&e.__v_isShallow)}function Kl(e){return Tn(e)||Cn(e)}function se(e){const t=e&&e.__v_raw;return t?se(t):e}function Yl(e){return Hr(e,"__v_skip",!0),e}const nr=e=>Se(e)?at(e):e,Ca=e=>Se(e)?Mn(e):e;class Jl{constructor(t,n,r,o){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new wa(()=>t(this._value),()=>Gn(this,1),()=>this.dep&&Hl(this.dep)),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=r}get value(){const t=se(this);return(!t._cacheable||t.effect.dirty)&&Kt(t._value,t._value=t.effect.run())&&Gn(t,2),ka(t),t.effect._dirtyLevel>=1&&Gn(t,1),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function sd(e,t,n=!1){let r,o;const a=re(e);return a?(r=e,o=ut):(r=e.get,o=e.set),new Jl(r,o,a||!o,n)}function ka(e){Wt&&sn&&(e=se(e),Vl(sn,e.dep||(e.dep=Bl(()=>e.dep=void 0,e instanceof Jl?e:void 0))))}function Gn(e,t=2,n){e=se(e);const r=e.dep;r&&$l(r,t)}function $e(e){return!!(e&&e.__v_isRef===!0)}function j(e){return Xl(e,!1)}function Be(e){return Xl(e,!0)}function Xl(e,t){return $e(e)?e:new cd(e,t)}class cd{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:se(t),this._value=n?t:nr(t)}get value(){return ka(this),this._value}set value(t){const n=this.__v_isShallow||Fr(t)||Cn(t);t=n?t:se(t),Kt(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:nr(t),Gn(this,2))}}function Ce(e){return $e(e)?e.value:e}const ud={get:(e,t,n)=>Ce(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const o=e[t];return $e(o)&&!$e(n)?(o.value=n,!0):Reflect.set(e,t,n,r)}};function Ql(e){return Tn(e)?e:new Proxy(e,ud)}class dd{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>ka(this),()=>Gn(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function Zl(e){return new dd(e)}class fd{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return zu(se(this._object),this._key)}}class pd{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function oo(e,t,n){return $e(e)?e:re(e)?new pd(e):Se(e)&&arguments.length>1?hd(e,t,n):j(e)}function hd(e,t,n){const r=e[t];return $e(r)?r:new fd(e,t,n)}/** +* @vue/runtime-core v3.4.15 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Gt(e,t,n,r){let o;try{o=r?e(...r):e()}catch(a){pr(a,t,n)}return o}function ft(e,t,n,r){if(re(e)){const a=Gt(e,t,n,r);return a&&xl(a)&&a.catch(i=>{pr(i,t,n)}),a}const o=[];for(let a=0;a>>1,o=je[r],a=or(o);aEt&&je.splice(t,1)}function _d(e){te(e)?Sn.push(...e):(!Ft||!Ft.includes(e,e.allowRecurse?rn+1:rn))&&Sn.push(e),ts()}function mi(e,t,n=rr?Et+1:0){for(;nor(n)-or(r));if(Sn.length=0,Ft){Ft.push(...t);return}for(Ft=t,rn=0;rne.id==null?1/0:e.id,yd=(e,t)=>{const n=or(e)-or(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function ns(e){Go=!1,rr=!0,je.sort(yd);try{for(Et=0;EtOe(v)?v.trim():v)),f&&(o=n.map(xu))}let l,c=r[l=wo(t)]||r[l=wo(Ze(t))];!c&&a&&(c=r[l=wo(On(t))]),c&&ft(c,e,6,o);const s=r[l+"Once"];if(s){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,ft(s,e,6,o)}}function rs(e,t,n=!1){const r=t.emitsCache,o=r.get(e);if(o!==void 0)return o;const a=e.emits;let i={},l=!1;if(!re(e)){const c=s=>{const u=rs(s,t,!0);u&&(l=!0,Re(i,u))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!a&&!l?(Se(e)&&r.set(e,null),null):(te(a)?a.forEach(c=>i[c]=null):Re(i,a),Se(e)&&r.set(e,i),i)}function io(e,t){return!e||!fr(t)?!1:(t=t.slice(2).replace(/Once$/,""),ue(e,t[0].toLowerCase()+t.slice(1))||ue(e,On(t))||ue(e,t))}let dt=null,os=null;function zr(e){const t=dt;return dt=e,os=e&&e.type.__scopeId||null,t}function un(e,t=dt,n){if(!t||e._n)return e;const r=(...o)=>{r._d&&Ci(-1);const a=zr(t);let i;try{i=e(...o)}finally{zr(a),r._d&&Ci(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function To(e){const{type:t,vnode:n,proxy:r,withProxy:o,props:a,propsOptions:[i],slots:l,attrs:c,emit:s,render:u,renderCache:f,data:p,setupState:v,ctx:_,inheritAttrs:T}=e;let E,g;const k=zr(e);try{if(n.shapeFlag&4){const L=o||r,M=L;E=vt(u.call(M,L,f,a,v,p,_)),g=c}else{const L=t;E=vt(L.length>1?L(a,{attrs:c,slots:l,emit:s}):L(a,null)),g=t.props?c:wd(c)}}catch(L){Xn.length=0,pr(L,e,1),E=Te(At)}let y=E;if(g&&T!==!1){const L=Object.keys(g),{shapeFlag:M}=y;L.length&&M&7&&(i&&L.some(_a)&&(g=Ed(g,i)),y=Ct(y,g))}return n.dirs&&(y=Ct(y),y.dirs=y.dirs?y.dirs.concat(n.dirs):n.dirs),n.transition&&(y.transition=n.transition),E=y,zr(k),E}const wd=e=>{let t;for(const n in e)(n==="class"||n==="style"||fr(n))&&((t||(t={}))[n]=e[n]);return t},Ed=(e,t)=>{const n={};for(const r in e)(!_a(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Td(e,t,n){const{props:r,children:o,component:a}=e,{props:i,children:l,patchFlag:c}=t,s=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?vi(r,i,s):!!i;if(c&8){const u=t.dynamicProps;for(let f=0;fe.__isSuspense;function is(e,t){t&&t.pendingBranch?te(e)?t.effects.push(...e):t.effects.push(e):_d(e)}const kd=Symbol.for("v-scx"),Id=()=>oe(kd);function ls(e,t){return Pa(e,null,t)}const kr={};function ae(e,t,n){return Pa(e,t,n)}function Pa(e,t,{immediate:n,deep:r,flush:o,once:a,onTrack:i,onTrigger:l}=Ee){if(t&&a){const S=t;t=(...q)=>{S(...q),M()}}const c=Ve,s=S=>r===!0?S:_n(S,r===!1?1:void 0);let u,f=!1,p=!1;if($e(e)?(u=()=>e.value,f=Fr(e)):Tn(e)?(u=()=>s(e),f=!0):te(e)?(p=!0,f=e.some(S=>Tn(S)||Fr(S)),u=()=>e.map(S=>{if($e(S))return S.value;if(Tn(S))return s(S);if(re(S))return Gt(S,c,2)})):re(e)?t?u=()=>Gt(e,c,2):u=()=>(v&&v(),ft(e,c,3,[_])):u=ut,t&&r){const S=u;u=()=>_n(S())}let v,_=S=>{v=y.onStop=()=>{Gt(S,c,4),v=y.onStop=void 0}},T;if(gr)if(_=ut,t?n&&ft(t,c,3,[u(),p?[]:void 0,_]):u(),o==="sync"){const S=Id();T=S.__watcherHandles||(S.__watcherHandles=[])}else return ut;let E=p?new Array(e.length).fill(kr):kr;const g=()=>{if(!(!y.active||!y.dirty))if(t){const S=y.run();(r||f||(p?S.some((q,H)=>Kt(q,E[H])):Kt(S,E)))&&(v&&v(),ft(t,c,3,[S,E===kr?void 0:p&&E[0]===kr?[]:E,_]),E=S)}else y.run()};g.allowRecurse=!!t;let k;o==="sync"?k=g:o==="post"?k=()=>Xe(g,c&&c.suspense):(g.pre=!0,c&&(g.id=c.uid),k=()=>ao(g));const y=new wa(u,ut,k),L=Dl(),M=()=>{y.stop(),L&&ya(L.effects,y)};return t?n?g():E=y.run():o==="post"?Xe(y.run.bind(y),c&&c.suspense):y.run(),T&&T.push(M),M}function Pd(e,t,n){const r=this.proxy,o=Oe(e)?e.includes(".")?ss(r,e):()=>r[e]:e.bind(r,r);let a;re(t)?a=t:(a=t.handler,n=t);const i=vr(this),l=Pa(o,a.bind(r),n);return i(),l}function ss(e,t){const n=t.split(".");return()=>{let r=e;for(let o=0;o0){if(n>=t)return e;n++}if(r=r||new Set,r.has(e))return e;if(r.add(e),$e(e))_n(e.value,t,n,r);else if(te(e))for(let o=0;o{_n(o,t,n,r)});else if(ku(e))for(const o in e)_n(e[o],t,n,r);return e}function wt(e,t,n,r){const o=e.dirs,a=t&&t.dirs;for(let i=0;i{e.isMounted=!0}),Ra(()=>{e.isUnmounting=!0}),e}const lt=[Function,Array],us={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:lt,onEnter:lt,onAfterEnter:lt,onEnterCancelled:lt,onBeforeLeave:lt,onLeave:lt,onAfterLeave:lt,onLeaveCancelled:lt,onBeforeAppear:lt,onAppear:lt,onAfterAppear:lt,onAppearCancelled:lt},xd={name:"BaseTransition",props:us,setup(e,{slots:t}){const n=Nn(),r=cs();let o;return()=>{const a=t.default&&xa(t.default(),!0);if(!a||!a.length)return;let i=a[0];if(a.length>1){for(const T of a)if(T.type!==At){i=T;break}}const l=se(e),{mode:c}=l;if(r.isLeaving)return So(i);const s=_i(i);if(!s)return So(i);const u=ar(s,l,r,n);ir(s,u);const f=n.subTree,p=f&&_i(f);let v=!1;const{getTransitionKey:_}=s.type;if(_){const T=_();o===void 0?o=T:T!==o&&(o=T,v=!0)}if(p&&p.type!==At&&(!on(s,p)||v)){const T=ar(p,l,r,n);if(ir(p,T),c==="out-in")return r.isLeaving=!0,T.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},So(i);c==="in-out"&&s.type!==At&&(T.delayLeave=(E,g,k)=>{const y=ds(r,p);y[String(p.key)]=p,E[jt]=()=>{g(),E[jt]=void 0,delete u.delayedLeave},u.delayedLeave=k})}return i}}},Rd=xd;function ds(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function ar(e,t,n,r){const{appear:o,mode:a,persisted:i=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:s,onEnterCancelled:u,onBeforeLeave:f,onLeave:p,onAfterLeave:v,onLeaveCancelled:_,onBeforeAppear:T,onAppear:E,onAfterAppear:g,onAppearCancelled:k}=t,y=String(e.key),L=ds(n,e),M=(H,R)=>{H&&ft(H,r,9,R)},S=(H,R)=>{const V=R[1];M(H,R),te(H)?H.every(J=>J.length<=1)&&V():H.length<=1&&V()},q={mode:a,persisted:i,beforeEnter(H){let R=l;if(!n.isMounted)if(o)R=T||l;else return;H[jt]&&H[jt](!0);const V=L[y];V&&on(e,V)&&V.el[jt]&&V.el[jt](),M(R,[H])},enter(H){let R=c,V=s,J=u;if(!n.isMounted)if(o)R=E||c,V=g||s,J=k||u;else return;let N=!1;const Q=H[Ir]=me=>{N||(N=!0,me?M(J,[H]):M(V,[H]),q.delayedLeave&&q.delayedLeave(),H[Ir]=void 0)};R?S(R,[H,Q]):Q()},leave(H,R){const V=String(e.key);if(H[Ir]&&H[Ir](!0),n.isUnmounting)return R();M(f,[H]);let J=!1;const N=H[jt]=Q=>{J||(J=!0,R(),Q?M(_,[H]):M(v,[H]),H[jt]=void 0,L[V]===e&&delete L[V])};L[V]=e,p?S(p,[H,N]):N()},clone(H){return ar(H,t,n,r)}};return q}function So(e){if(hr(e))return e=Ct(e),e.children=null,e}function _i(e){return hr(e)?e.children?e.children[0]:void 0:e}function ir(e,t){e.shapeFlag&6&&e.component?ir(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function xa(e,t=!1,n){let r=[],o=0;for(let a=0;a1)for(let a=0;a!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function Od(e){re(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:o=200,timeout:a,suspensible:i=!0,onError:l}=e;let c=null,s,u=0;const f=()=>(u++,c=null,p()),p=()=>{let v;return c||(v=c=t().catch(_=>{if(_=_ instanceof Error?_:new Error(String(_)),l)return new Promise((T,E)=>{l(_,()=>T(f()),()=>E(_),u+1)});throw _}).then(_=>v!==c&&c?c:(_&&(_.__esModule||_[Symbol.toStringTag]==="Module")&&(_=_.default),s=_,_)))};return U({name:"AsyncComponentWrapper",__asyncLoader:p,get __asyncResolved(){return s},setup(){const v=Ve;if(s)return()=>Lo(s,v);const _=k=>{c=null,pr(k,v,13,!r)};if(i&&v.suspense||gr)return p().then(k=>()=>Lo(k,v)).catch(k=>(_(k),()=>r?Te(r,{error:k}):null));const T=j(!1),E=j(),g=j(!!o);return o&&setTimeout(()=>{g.value=!1},o),a!=null&&setTimeout(()=>{if(!T.value&&!E.value){const k=new Error(`Async component timed out after ${a}ms.`);_(k),E.value=k}},a),p().then(()=>{T.value=!0,v.parent&&hr(v.parent.vnode)&&(v.parent.effect.dirty=!0,ao(v.parent.update))}).catch(k=>{_(k),E.value=k}),()=>{if(T.value&&s)return Lo(s,v);if(E.value&&r)return Te(r,{error:E.value});if(n&&!g.value)return Te(n)}}})}function Lo(e,t){const{ref:n,props:r,children:o,ce:a}=t.vnode,i=Te(e,r,o);return i.ref=n,i.ce=a,delete t.vnode.ce,i}const hr=e=>e.type.__isKeepAlive;function Dd(e,t){fs(e,"a",t)}function Md(e,t){fs(e,"da",t)}function fs(e,t,n=Ve){const r=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(lo(t,r,n),n){let o=n.parent;for(;o&&o.parent;)hr(o.parent.vnode)&&Nd(r,t,n,o),o=o.parent}}function Nd(e,t,n,r){const o=lo(t,e,r,!0);mr(()=>{ya(r[t],o)},n)}function lo(e,t,n=Ve,r=!1){if(n){const o=n[e]||(n[e]=[]),a=t.__weh||(t.__weh=(...i)=>{if(n.isUnmounted)return;pn();const l=vr(n),c=ft(t,n,e,i);return l(),hn(),c});return r?o.unshift(a):o.push(a),a}}const Ot=e=>(t,n=Ve)=>(!gr||e==="sp")&&lo(e,(...r)=>t(...r),n),Vd=Ot("bm"),he=Ot("m"),$d=Ot("bu"),ps=Ot("u"),Ra=Ot("bum"),mr=Ot("um"),Hd=Ot("sp"),Bd=Ot("rtg"),Fd=Ot("rtc");function jd(e,t=Ve){lo("ec",e,t)}function zd(e,t,n,r){let o;const a=n&&n[r];if(te(e)||Oe(e)){o=new Array(e.length);for(let i=0,l=e.length;it(i,l,void 0,a&&a[l]));else{const i=Object.keys(e);o=new Array(i.length);for(let l=0,c=i.length;l{const a=r.fn(...o);return a&&(a.key=r.key),a}:r.fn)}return e}const Ko=e=>e?ks(e)?Na(e)||e.proxy:Ko(e.parent):null,Yn=Re(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ko(e.parent),$root:e=>Ko(e.root),$emit:e=>e.emit,$options:e=>Oa(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,ao(e.update)}),$nextTick:e=>e.n||(e.n=Jt.bind(e.proxy)),$watch:e=>Pd.bind(e)}),Ao=(e,t)=>e!==Ee&&!e.__isScriptSetup&&ue(e,t),Ud={get({_:e},t){const{ctx:n,setupState:r,data:o,props:a,accessCache:i,type:l,appContext:c}=e;let s;if(t[0]!=="$"){const v=i[t];if(v!==void 0)switch(v){case 1:return r[t];case 2:return o[t];case 4:return n[t];case 3:return a[t]}else{if(Ao(r,t))return i[t]=1,r[t];if(o!==Ee&&ue(o,t))return i[t]=2,o[t];if((s=e.propsOptions[0])&&ue(s,t))return i[t]=3,a[t];if(n!==Ee&&ue(n,t))return i[t]=4,n[t];Yo&&(i[t]=0)}}const u=Yn[t];let f,p;if(u)return t==="$attrs"&&et(e,"get",t),u(e);if((f=l.__cssModules)&&(f=f[t]))return f;if(n!==Ee&&ue(n,t))return i[t]=4,n[t];if(p=c.config.globalProperties,ue(p,t))return p[t]},set({_:e},t,n){const{data:r,setupState:o,ctx:a}=e;return Ao(o,t)?(o[t]=n,!0):r!==Ee&&ue(r,t)?(r[t]=n,!0):ue(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:o,propsOptions:a}},i){let l;return!!n[i]||e!==Ee&&ue(e,i)||Ao(t,i)||(l=a[0])&&ue(l,i)||ue(r,i)||ue(Yn,i)||ue(o.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ue(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function yi(e){return te(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Yo=!0;function Wd(e){const t=Oa(e),n=e.proxy,r=e.ctx;Yo=!1,t.beforeCreate&&bi(t.beforeCreate,e,"bc");const{data:o,computed:a,methods:i,watch:l,provide:c,inject:s,created:u,beforeMount:f,mounted:p,beforeUpdate:v,updated:_,activated:T,deactivated:E,beforeDestroy:g,beforeUnmount:k,destroyed:y,unmounted:L,render:M,renderTracked:S,renderTriggered:q,errorCaptured:H,serverPrefetch:R,expose:V,inheritAttrs:J,components:N,directives:Q,filters:me}=t;if(s&&Gd(s,r,null),i)for(const ee in i){const K=i[ee];re(K)&&(r[ee]=K.bind(n))}if(o){const ee=o.call(n,n);Se(ee)&&(e.data=at(ee))}if(Yo=!0,a)for(const ee in a){const K=a[ee],Le=re(K)?K.bind(n,n):re(K.get)?K.get.bind(n,n):ut,tt=!re(K)&&re(K.set)?K.set.bind(n):ut,qe=I({get:Le,set:tt});Object.defineProperty(r,ee,{enumerable:!0,configurable:!0,get:()=>qe.value,set:_e=>qe.value=_e})}if(l)for(const ee in l)hs(l[ee],r,n,ee);if(c){const ee=re(c)?c.call(n):c;Reflect.ownKeys(ee).forEach(K=>{We(K,ee[K])})}u&&bi(u,e,"c");function G(ee,K){te(K)?K.forEach(Le=>ee(Le.bind(n))):K&&ee(K.bind(n))}if(G(Vd,f),G(he,p),G($d,v),G(ps,_),G(Dd,T),G(Md,E),G(jd,H),G(Fd,S),G(Bd,q),G(Ra,k),G(mr,L),G(Hd,R),te(V))if(V.length){const ee=e.exposed||(e.exposed={});V.forEach(K=>{Object.defineProperty(ee,K,{get:()=>n[K],set:Le=>n[K]=Le})})}else e.exposed||(e.exposed={});M&&e.render===ut&&(e.render=M),J!=null&&(e.inheritAttrs=J),N&&(e.components=N),Q&&(e.directives=Q)}function Gd(e,t,n=ut){te(e)&&(e=Jo(e));for(const r in e){const o=e[r];let a;Se(o)?"default"in o?a=oe(o.from||r,o.default,!0):a=oe(o.from||r):a=oe(o),$e(a)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>a.value,set:i=>a.value=i}):t[r]=a}}function bi(e,t,n){ft(te(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function hs(e,t,n,r){const o=r.includes(".")?ss(n,r):()=>n[r];if(Oe(e)){const a=t[e];re(a)&&ae(o,a)}else if(re(e))ae(o,e.bind(n));else if(Se(e))if(te(e))e.forEach(a=>hs(a,t,n,r));else{const a=re(e.handler)?e.handler.bind(n):t[e.handler];re(a)&&ae(o,a,e)}}function Oa(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:o,optionsCache:a,config:{optionMergeStrategies:i}}=e.appContext,l=a.get(t);let c;return l?c=l:!o.length&&!n&&!r?c=t:(c={},o.length&&o.forEach(s=>qr(c,s,i,!0)),qr(c,t,i)),Se(t)&&a.set(t,c),c}function qr(e,t,n,r=!1){const{mixins:o,extends:a}=t;a&&qr(e,a,n,!0),o&&o.forEach(i=>qr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Kd[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Kd={data:wi,props:Ei,emits:Ei,methods:qn,computed:qn,beforeCreate:Ue,created:Ue,beforeMount:Ue,mounted:Ue,beforeUpdate:Ue,updated:Ue,beforeDestroy:Ue,beforeUnmount:Ue,destroyed:Ue,unmounted:Ue,activated:Ue,deactivated:Ue,errorCaptured:Ue,serverPrefetch:Ue,components:qn,directives:qn,watch:Jd,provide:wi,inject:Yd};function wi(e,t){return t?e?function(){return Re(re(e)?e.call(this,this):e,re(t)?t.call(this,this):t)}:t:e}function Yd(e,t){return qn(Jo(e),Jo(t))}function Jo(e){if(te(e)){const t={};for(let n=0;n1)return n&&re(t)?t.call(r&&r.proxy):t}}function Zd(e,t,n,r=!1){const o={},a={};Hr(a,so,1),e.propsDefaults=Object.create(null),vs(e,t,o,a);for(const i in e.propsOptions[0])i in o||(o[i]=void 0);n?e.props=r?o:Gl(o):e.type.props?e.props=o:e.props=a,e.attrs=a}function ef(e,t,n,r){const{props:o,attrs:a,vnode:{patchFlag:i}}=e,l=se(o),[c]=e.propsOptions;let s=!1;if((r||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let f=0;f{c=!0;const[p,v]=gs(f,t,!0);Re(i,p),v&&l.push(...v)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!a&&!c)return Se(e)&&r.set(e,En),En;if(te(a))for(let u=0;u-1,v[1]=T<0||_-1||ue(v,"default"))&&l.push(f)}}}const s=[i,l];return Se(e)&&r.set(e,s),s}function Ti(e){return e[0]!=="$"}function Si(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function Li(e,t){return Si(e)===Si(t)}function Ai(e,t){return te(t)?t.findIndex(n=>Li(n,e)):re(t)&&Li(t,e)?0:-1}const _s=e=>e[0]==="_"||e==="$stable",Da=e=>te(e)?e.map(vt):[vt(e)],tf=(e,t,n)=>{if(t._n)return t;const r=un((...o)=>Da(t(...o)),n);return r._c=!1,r},ys=(e,t,n)=>{const r=e._ctx;for(const o in e){if(_s(o))continue;const a=e[o];if(re(a))t[o]=tf(o,a,r);else if(a!=null){const i=Da(a);t[o]=()=>i}}},bs=(e,t)=>{const n=Da(t);e.slots.default=()=>n},nf=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=se(t),Hr(t,"_",n)):ys(t,e.slots={})}else e.slots={},t&&bs(e,t);Hr(e.slots,so,1)},rf=(e,t,n)=>{const{vnode:r,slots:o}=e;let a=!0,i=Ee;if(r.shapeFlag&32){const l=t._;l?n&&l===1?a=!1:(Re(o,t),!n&&l===1&&delete o._):(a=!t.$stable,ys(t,o)),i=t}else t&&(bs(e,t),i={default:1});if(a)for(const l in o)!_s(l)&&i[l]==null&&delete o[l]};function Wr(e,t,n,r,o=!1){if(te(e)){e.forEach((p,v)=>Wr(p,t&&(te(t)?t[v]:t),n,r,o));return}if(Kn(r)&&!o)return;const a=r.shapeFlag&4?Na(r.component)||r.component.proxy:r.el,i=o?null:a,{i:l,r:c}=e,s=t&&t.r,u=l.refs===Ee?l.refs={}:l.refs,f=l.setupState;if(s!=null&&s!==c&&(Oe(s)?(u[s]=null,ue(f,s)&&(f[s]=null)):$e(s)&&(s.value=null)),re(c))Gt(c,l,12,[i,u]);else{const p=Oe(c),v=$e(c),_=e.f;if(p||v){const T=()=>{if(_){const E=p?ue(f,c)?f[c]:u[c]:c.value;o?te(E)&&ya(E,a):te(E)?E.includes(a)||E.push(a):p?(u[c]=[a],ue(f,c)&&(f[c]=u[c])):(c.value=[a],e.k&&(u[e.k]=c.value))}else p?(u[c]=i,ue(f,c)&&(f[c]=i)):v&&(c.value=i,e.k&&(u[e.k]=i))};o||_?T():(T.id=-1,Xe(T,n))}}}let Nt=!1;const of=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",af=e=>e.namespaceURI.includes("MathML"),Pr=e=>{if(of(e))return"svg";if(af(e))return"mathml"},xr=e=>e.nodeType===8;function lf(e){const{mt:t,p:n,o:{patchProp:r,createText:o,nextSibling:a,parentNode:i,remove:l,insert:c,createComment:s}}=e,u=(y,L)=>{if(!L.hasChildNodes()){n(null,y,L),jr(),L._vnode=y;return}Nt=!1,f(L.firstChild,y,null,null,null),jr(),L._vnode=y,Nt&&console.error("Hydration completed but contains mismatches.")},f=(y,L,M,S,q,H=!1)=>{const R=xr(y)&&y.data==="[",V=()=>T(y,L,M,S,q,R),{type:J,ref:N,shapeFlag:Q,patchFlag:me}=L;let ge=y.nodeType;L.el=y,me===-2&&(H=!1,L.dynamicChildren=null);let G=null;switch(J){case kn:ge!==3?L.children===""?(c(L.el=o(""),i(y),y),G=y):G=V():(y.data!==L.children&&(Nt=!0,y.data=L.children),G=a(y));break;case At:k(y)?(G=a(y),g(L.el=y.content.firstChild,y,M)):ge!==8||R?G=V():G=a(y);break;case Jn:if(R&&(y=a(y),ge=y.nodeType),ge===1||ge===3){G=y;const ee=!L.children.length;for(let K=0;K{H=H||!!L.dynamicChildren;const{type:R,props:V,patchFlag:J,shapeFlag:N,dirs:Q,transition:me}=L,ge=R==="input"||R==="option";if(ge||J!==-1){Q&&wt(L,null,M,"created");let G=!1;if(k(y)){G=ws(S,me)&&M&&M.vnode.props&&M.vnode.props.appear;const K=y.content.firstChild;G&&me.beforeEnter(K),g(K,y,M),L.el=y=K}if(N&16&&!(V&&(V.innerHTML||V.textContent))){let K=v(y.firstChild,L,y,M,S,q,H);for(;K;){Nt=!0;const Le=K;K=K.nextSibling,l(Le)}}else N&8&&y.textContent!==L.children&&(Nt=!0,y.textContent=L.children);if(V)if(ge||!H||J&48)for(const K in V)(ge&&(K.endsWith("value")||K==="indeterminate")||fr(K)&&!Wn(K)||K[0]===".")&&r(y,K,null,V[K],void 0,void 0,M);else V.onClick&&r(y,"onClick",null,V.onClick,void 0,void 0,M);let ee;(ee=V&&V.onVnodeBeforeMount)&&st(ee,M,L),Q&&wt(L,null,M,"beforeMount"),((ee=V&&V.onVnodeMounted)||Q||G)&&is(()=>{ee&&st(ee,M,L),G&&me.enter(y),Q&&wt(L,null,M,"mounted")},S)}return y.nextSibling},v=(y,L,M,S,q,H,R)=>{R=R||!!L.dynamicChildren;const V=L.children,J=V.length;for(let N=0;N{const{slotScopeIds:R}=L;R&&(q=q?q.concat(R):R);const V=i(y),J=v(a(y),L,V,M,S,q,H);return J&&xr(J)&&J.data==="]"?a(L.anchor=J):(Nt=!0,c(L.anchor=s("]"),V,J),J)},T=(y,L,M,S,q,H)=>{if(Nt=!0,L.el=null,H){const J=E(y);for(;;){const N=a(y);if(N&&N!==J)l(N);else break}}const R=a(y),V=i(y);return l(y),n(null,L,V,R,M,S,Pr(V),q),R},E=(y,L="[",M="]")=>{let S=0;for(;y;)if(y=a(y),y&&xr(y)&&(y.data===L&&S++,y.data===M)){if(S===0)return a(y);S--}return y},g=(y,L,M)=>{const S=L.parentNode;S&&S.replaceChild(y,L);let q=M;for(;q;)q.vnode.el===L&&(q.vnode.el=q.subTree.el=y),q=q.parent},k=y=>y.nodeType===1&&y.tagName.toLowerCase()==="template";return[u,f]}const Xe=is;function sf(e){return cf(e,lf)}function cf(e,t){const n=Rl();n.__VUE__=!0;const{insert:r,remove:o,patchProp:a,createElement:i,createText:l,createComment:c,setText:s,setElementText:u,parentNode:f,nextSibling:p,setScopeId:v=ut,insertStaticContent:_}=e,T=(m,h,w,A=null,C=null,D=null,F=void 0,O=null,$=!!h.dynamicChildren)=>{if(m===h)return;m&&!on(m,h)&&(A=P(m),_e(m,C,D,!0),m=null),h.patchFlag===-2&&($=!1,h.dynamicChildren=null);const{type:x,ref:W,shapeFlag:Z}=h;switch(x){case kn:E(m,h,w,A);break;case At:g(m,h,w,A);break;case Jn:m==null&&k(h,w,A,F);break;case Fe:N(m,h,w,A,C,D,F,O,$);break;default:Z&1?M(m,h,w,A,C,D,F,O,$):Z&6?Q(m,h,w,A,C,D,F,O,$):(Z&64||Z&128)&&x.process(m,h,w,A,C,D,F,O,$,Y)}W!=null&&C&&Wr(W,m&&m.ref,D,h||m,!h)},E=(m,h,w,A)=>{if(m==null)r(h.el=l(h.children),w,A);else{const C=h.el=m.el;h.children!==m.children&&s(C,h.children)}},g=(m,h,w,A)=>{m==null?r(h.el=c(h.children||""),w,A):h.el=m.el},k=(m,h,w,A)=>{[m.el,m.anchor]=_(m.children,h,w,A,m.el,m.anchor)},y=({el:m,anchor:h},w,A)=>{let C;for(;m&&m!==h;)C=p(m),r(m,w,A),m=C;r(h,w,A)},L=({el:m,anchor:h})=>{let w;for(;m&&m!==h;)w=p(m),o(m),m=w;o(h)},M=(m,h,w,A,C,D,F,O,$)=>{h.type==="svg"?F="svg":h.type==="math"&&(F="mathml"),m==null?S(h,w,A,C,D,F,O,$):R(m,h,C,D,F,O,$)},S=(m,h,w,A,C,D,F,O)=>{let $,x;const{props:W,shapeFlag:Z,transition:X,dirs:ne}=m;if($=m.el=i(m.type,D,W&&W.is,W),Z&8?u($,m.children):Z&16&&H(m.children,$,null,A,C,Co(m,D),F,O),ne&&wt(m,null,A,"created"),q($,m,m.scopeId,F,A),W){for(const pe in W)pe!=="value"&&!Wn(pe)&&a($,pe,null,W[pe],D,m.children,A,C,Ae);"value"in W&&a($,"value",null,W.value,D),(x=W.onVnodeBeforeMount)&&st(x,A,m)}ne&&wt(m,null,A,"beforeMount");const le=ws(C,X);le&&X.beforeEnter($),r($,h,w),((x=W&&W.onVnodeMounted)||le||ne)&&Xe(()=>{x&&st(x,A,m),le&&X.enter($),ne&&wt(m,null,A,"mounted")},C)},q=(m,h,w,A,C)=>{if(w&&v(m,w),A)for(let D=0;D{for(let x=$;x{const O=h.el=m.el;let{patchFlag:$,dynamicChildren:x,dirs:W}=h;$|=m.patchFlag&16;const Z=m.props||Ee,X=h.props||Ee;let ne;if(w&&tn(w,!1),(ne=X.onVnodeBeforeUpdate)&&st(ne,w,h,m),W&&wt(h,m,w,"beforeUpdate"),w&&tn(w,!0),x?V(m.dynamicChildren,x,O,w,A,Co(h,C),D):F||K(m,h,O,null,w,A,Co(h,C),D,!1),$>0){if($&16)J(O,h,Z,X,w,A,C);else if($&2&&Z.class!==X.class&&a(O,"class",null,X.class,C),$&4&&a(O,"style",Z.style,X.style,C),$&8){const le=h.dynamicProps;for(let pe=0;pe{ne&&st(ne,w,h,m),W&&wt(h,m,w,"updated")},A)},V=(m,h,w,A,C,D,F)=>{for(let O=0;O{if(w!==A){if(w!==Ee)for(const O in w)!Wn(O)&&!(O in A)&&a(m,O,w[O],null,F,h.children,C,D,Ae);for(const O in A){if(Wn(O))continue;const $=A[O],x=w[O];$!==x&&O!=="value"&&a(m,O,x,$,F,h.children,C,D,Ae)}"value"in A&&a(m,"value",w.value,A.value,F)}},N=(m,h,w,A,C,D,F,O,$)=>{const x=h.el=m?m.el:l(""),W=h.anchor=m?m.anchor:l("");let{patchFlag:Z,dynamicChildren:X,slotScopeIds:ne}=h;ne&&(O=O?O.concat(ne):ne),m==null?(r(x,w,A),r(W,w,A),H(h.children||[],w,W,C,D,F,O,$)):Z>0&&Z&64&&X&&m.dynamicChildren?(V(m.dynamicChildren,X,w,C,D,F,O),(h.key!=null||C&&h===C.subTree)&&Es(m,h,!0)):K(m,h,w,W,C,D,F,O,$)},Q=(m,h,w,A,C,D,F,O,$)=>{h.slotScopeIds=O,m==null?h.shapeFlag&512?C.ctx.activate(h,w,A,F,$):me(h,w,A,C,D,F,$):ge(m,h,$)},me=(m,h,w,A,C,D,F)=>{const O=m.component=_f(m,A,C);if(hr(m)&&(O.ctx.renderer=Y),yf(O),O.asyncDep){if(C&&C.registerDep(O,G),!m.el){const $=O.subTree=Te(At);g(null,$,h,w)}}else G(O,m,h,w,C,D,F)},ge=(m,h,w)=>{const A=h.component=m.component;if(Td(m,h,w))if(A.asyncDep&&!A.asyncResolved){ee(A,h,w);return}else A.next=h,gd(A.update),A.effect.dirty=!0,A.update();else h.el=m.el,A.vnode=h},G=(m,h,w,A,C,D,F)=>{const O=()=>{if(m.isMounted){let{next:W,bu:Z,u:X,parent:ne,vnode:le}=m;{const vn=Ts(m);if(vn){W&&(W.el=le.el,ee(m,W,F)),vn.asyncDep.then(()=>{m.isUnmounted||O()});return}}let pe=W,we;tn(m,!1),W?(W.el=le.el,ee(m,W,F)):W=le,Z&&Eo(Z),(we=W.props&&W.props.onVnodeBeforeUpdate)&&st(we,ne,W,le),tn(m,!0);const Ne=To(m),ht=m.subTree;m.subTree=Ne,T(ht,Ne,f(ht.el),P(ht),m,C,D),W.el=Ne.el,pe===null&&Sd(m,Ne.el),X&&Xe(X,C),(we=W.props&&W.props.onVnodeUpdated)&&Xe(()=>st(we,ne,W,le),C)}else{let W;const{el:Z,props:X}=h,{bm:ne,m:le,parent:pe}=m,we=Kn(h);if(tn(m,!1),ne&&Eo(ne),!we&&(W=X&&X.onVnodeBeforeMount)&&st(W,pe,h),tn(m,!0),Z&&de){const Ne=()=>{m.subTree=To(m),de(Z,m.subTree,m,C,null)};we?h.type.__asyncLoader().then(()=>!m.isUnmounted&&Ne()):Ne()}else{const Ne=m.subTree=To(m);T(null,Ne,w,A,m,C,D),h.el=Ne.el}if(le&&Xe(le,C),!we&&(W=X&&X.onVnodeMounted)){const Ne=h;Xe(()=>st(W,pe,Ne),C)}(h.shapeFlag&256||pe&&Kn(pe.vnode)&&pe.vnode.shapeFlag&256)&&m.a&&Xe(m.a,C),m.isMounted=!0,h=w=A=null}},$=m.effect=new wa(O,ut,()=>ao(x),m.scope),x=m.update=()=>{$.dirty&&$.run()};x.id=m.uid,tn(m,!0),x()},ee=(m,h,w)=>{h.component=m;const A=m.vnode.props;m.vnode=h,m.next=null,ef(m,h.props,A,w),rf(m,h.children,w),pn(),mi(m),hn()},K=(m,h,w,A,C,D,F,O,$=!1)=>{const x=m&&m.children,W=m?m.shapeFlag:0,Z=h.children,{patchFlag:X,shapeFlag:ne}=h;if(X>0){if(X&128){tt(x,Z,w,A,C,D,F,O,$);return}else if(X&256){Le(x,Z,w,A,C,D,F,O,$);return}}ne&8?(W&16&&Ae(x,C,D),Z!==x&&u(w,Z)):W&16?ne&16?tt(x,Z,w,A,C,D,F,O,$):Ae(x,C,D,!0):(W&8&&u(w,""),ne&16&&H(Z,w,A,C,D,F,O,$))},Le=(m,h,w,A,C,D,F,O,$)=>{m=m||En,h=h||En;const x=m.length,W=h.length,Z=Math.min(x,W);let X;for(X=0;XW?Ae(m,C,D,!0,!1,Z):H(h,w,A,C,D,F,O,$,Z)},tt=(m,h,w,A,C,D,F,O,$)=>{let x=0;const W=h.length;let Z=m.length-1,X=W-1;for(;x<=Z&&x<=X;){const ne=m[x],le=h[x]=$?zt(h[x]):vt(h[x]);if(on(ne,le))T(ne,le,w,null,C,D,F,O,$);else break;x++}for(;x<=Z&&x<=X;){const ne=m[Z],le=h[X]=$?zt(h[X]):vt(h[X]);if(on(ne,le))T(ne,le,w,null,C,D,F,O,$);else break;Z--,X--}if(x>Z){if(x<=X){const ne=X+1,le=neX)for(;x<=Z;)_e(m[x],C,D,!0),x++;else{const ne=x,le=x,pe=new Map;for(x=le;x<=X;x++){const nt=h[x]=$?zt(h[x]):vt(h[x]);nt.key!=null&&pe.set(nt.key,x)}let we,Ne=0;const ht=X-le+1;let vn=!1,oi=0;const Bn=new Array(ht);for(x=0;x=ht){_e(nt,C,D,!0);continue}let bt;if(nt.key!=null)bt=pe.get(nt.key);else for(we=le;we<=X;we++)if(Bn[we-le]===0&&on(nt,h[we])){bt=we;break}bt===void 0?_e(nt,C,D,!0):(Bn[bt-le]=x+1,bt>=oi?oi=bt:vn=!0,T(nt,h[bt],w,null,C,D,F,O,$),Ne++)}const ai=vn?uf(Bn):En;for(we=ai.length-1,x=ht-1;x>=0;x--){const nt=le+x,bt=h[nt],ii=nt+1{const{el:D,type:F,transition:O,children:$,shapeFlag:x}=m;if(x&6){qe(m.component.subTree,h,w,A);return}if(x&128){m.suspense.move(h,w,A);return}if(x&64){F.move(m,h,w,Y);return}if(F===Fe){r(D,h,w);for(let Z=0;Z<$.length;Z++)qe($[Z],h,w,A);r(m.anchor,h,w);return}if(F===Jn){y(m,h,w);return}if(A!==2&&x&1&&O)if(A===0)O.beforeEnter(D),r(D,h,w),Xe(()=>O.enter(D),C);else{const{leave:Z,delayLeave:X,afterLeave:ne}=O,le=()=>r(D,h,w),pe=()=>{Z(D,()=>{le(),ne&&ne()})};X?X(D,le,pe):pe()}else r(D,h,w)},_e=(m,h,w,A=!1,C=!1)=>{const{type:D,props:F,ref:O,children:$,dynamicChildren:x,shapeFlag:W,patchFlag:Z,dirs:X}=m;if(O!=null&&Wr(O,null,w,m,!0),W&256){h.ctx.deactivate(m);return}const ne=W&1&&X,le=!Kn(m);let pe;if(le&&(pe=F&&F.onVnodeBeforeUnmount)&&st(pe,h,m),W&6)Je(m.component,w,A);else{if(W&128){m.suspense.unmount(w,A);return}ne&&wt(m,null,h,"beforeUnmount"),W&64?m.type.remove(m,h,w,C,Y,A):x&&(D!==Fe||Z>0&&Z&64)?Ae(x,h,w,!1,!0):(D===Fe&&Z&384||!C&&W&16)&&Ae($,h,w),A&&Ie(m)}(le&&(pe=F&&F.onVnodeUnmounted)||ne)&&Xe(()=>{pe&&st(pe,h,m),ne&&wt(m,null,h,"unmounted")},w)},Ie=m=>{const{type:h,el:w,anchor:A,transition:C}=m;if(h===Fe){Ye(w,A);return}if(h===Jn){L(m);return}const D=()=>{o(w),C&&!C.persisted&&C.afterLeave&&C.afterLeave()};if(m.shapeFlag&1&&C&&!C.persisted){const{leave:F,delayLeave:O}=C,$=()=>F(w,D);O?O(m.el,D,$):$()}else D()},Ye=(m,h)=>{let w;for(;m!==h;)w=p(m),o(m),m=w;o(h)},Je=(m,h,w)=>{const{bum:A,scope:C,update:D,subTree:F,um:O}=m;A&&Eo(A),C.stop(),D&&(D.active=!1,_e(F,m,h,w)),O&&Xe(O,h),Xe(()=>{m.isUnmounted=!0},h),h&&h.pendingBranch&&!h.isUnmounted&&m.asyncDep&&!m.asyncResolved&&m.suspenseId===h.pendingId&&(h.deps--,h.deps===0&&h.resolve())},Ae=(m,h,w,A=!1,C=!1,D=0)=>{for(let F=D;Fm.shapeFlag&6?P(m.component.subTree):m.shapeFlag&128?m.suspense.next():p(m.anchor||m.el);let z=!1;const B=(m,h,w)=>{m==null?h._vnode&&_e(h._vnode,null,null,!0):T(h._vnode||null,m,h,null,null,null,w),z||(z=!0,mi(),jr(),z=!1),h._vnode=m},Y={p:T,um:_e,m:qe,r:Ie,mt:me,mc:H,pc:K,pbc:V,n:P,o:e};let ie,de;return t&&([ie,de]=t(Y)),{render:B,hydrate:ie,createApp:Qd(B,ie)}}function Co({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function tn({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ws(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Es(e,t,n=!1){const r=e.children,o=t.children;if(te(r)&&te(o))for(let a=0;a>1,e[n[l]]0&&(t[r]=n[a-1]),n[a]=r)}}for(a=n.length,i=n[a-1];a-- >0;)n[a]=i,i=t[i];return n}function Ts(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ts(t)}const df=e=>e.__isTeleport,Fe=Symbol.for("v-fgt"),kn=Symbol.for("v-txt"),At=Symbol.for("v-cmt"),Jn=Symbol.for("v-stc"),Xn=[];let gt=null;function an(e=!1){Xn.push(gt=e?null:[])}function ff(){Xn.pop(),gt=Xn[Xn.length-1]||null}let lr=1;function Ci(e){lr+=e}function Ss(e){return e.dynamicChildren=lr>0?gt||En:null,ff(),lr>0&>&>.push(e),e}function Ls(e,t,n,r,o,a){return Ss(sr(e,t,n,r,o,a,!0))}function Qn(e,t,n,r,o){return Ss(Te(e,t,n,r,o,!0))}function Qo(e){return e?e.__v_isVNode===!0:!1}function on(e,t){return e.type===t.type&&e.key===t.key}const so="__vInternal",As=({key:e})=>e??null,$r=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Oe(e)||$e(e)||re(e)?{i:dt,r:e,k:t,f:!!n}:e:null);function sr(e,t=null,n=null,r=0,o=null,a=e===Fe?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&As(t),ref:t&&$r(t),scopeId:os,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:dt};return l?(Ma(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=Oe(n)?8:16),lr>0&&!i&>&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&>.push(c),c}const Te=pf;function pf(e,t=null,n=null,r=0,o=null,a=!1){if((!e||e===Ld)&&(e=At),Qo(e)){const l=Ct(e,t,!0);return n&&Ma(l,n),lr>0&&!a&>&&(l.shapeFlag&6?gt[gt.indexOf(e)]=l:gt.push(l)),l.patchFlag|=-2,l}if(Sf(e)&&(e=e.__vccOpts),t){t=hf(t);let{class:l,style:c}=t;l&&!Oe(l)&&(t.class=no(l)),Se(c)&&(Kl(c)&&!te(c)&&(c=Re({},c)),t.style=to(c))}const i=Oe(e)?1:Cd(e)?128:df(e)?64:Se(e)?4:re(e)?2:0;return sr(e,t,n,r,o,i,a,!0)}function hf(e){return e?Kl(e)||so in e?Re({},e):e:null}function Ct(e,t,n=!1){const{props:r,ref:o,patchFlag:a,children:i}=e,l=t?mf(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&As(l),ref:t&&t.ref?n&&o?te(o)?o.concat($r(t)):[o,$r(t)]:$r(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Fe?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ct(e.ssContent),ssFallback:e.ssFallback&&Ct(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Cs(e=" ",t=0){return Te(kn,null,e,t)}function B1(e,t){const n=Te(Jn,null,e);return n.staticCount=t,n}function vt(e){return e==null||typeof e=="boolean"?Te(At):te(e)?Te(Fe,null,e.slice()):typeof e=="object"?zt(e):Te(kn,null,String(e))}function zt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ct(e)}function Ma(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(te(t))n=16;else if(typeof t=="object")if(r&65){const o=t.default;o&&(o._c&&(o._d=!1),Ma(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!(so in t)?t._ctx=dt:o===3&&dt&&(dt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else re(t)?(t={default:t,_ctx:dt},n=32):(t=String(t),r&64?(n=16,t=[Cs(t)]):n=8);e.children=t,e.shapeFlag|=n}function mf(...e){const t={};for(let n=0;nVe||dt;let Gr,Zo;{const e=Rl(),t=(n,r)=>{let o;return(o=e[n])||(o=e[n]=[]),o.push(r),a=>{o.length>1?o.forEach(i=>i(a)):o[0](a)}};Gr=t("__VUE_INSTANCE_SETTERS__",n=>Ve=n),Zo=t("__VUE_SSR_SETTERS__",n=>gr=n)}const vr=e=>{const t=Ve;return Gr(e),e.scope.on(),()=>{e.scope.off(),Gr(t)}},ki=()=>{Ve&&Ve.scope.off(),Gr(null)};function ks(e){return e.vnode.shapeFlag&4}let gr=!1;function yf(e,t=!1){t&&Zo(t);const{props:n,children:r}=e.vnode,o=ks(e);Zd(e,n,o,t),nf(e,r);const a=o?bf(e,t):void 0;return t&&Zo(!1),a}function bf(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Yl(new Proxy(e.ctx,Ud));const{setup:r}=n;if(r){const o=e.setupContext=r.length>1?Ef(e):null,a=vr(e);pn();const i=Gt(r,e,0,[e.props,o]);if(hn(),a(),xl(i)){if(i.then(ki,ki),t)return i.then(l=>{Ii(e,l,t)}).catch(l=>{pr(l,e,0)});e.asyncDep=i}else Ii(e,i,t)}else Is(e,t)}function Ii(e,t,n){re(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Se(t)&&(e.setupState=Ql(t)),Is(e,n)}let Pi;function Is(e,t,n){const r=e.type;if(!e.render){if(!t&&Pi&&!r.render){const o=r.template||Oa(e).template;if(o){const{isCustomElement:a,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,s=Re(Re({isCustomElement:a,delimiters:l},i),c);r.render=Pi(o,s)}}e.render=r.render||ut}{const o=vr(e);pn();try{Wd(e)}finally{hn(),o()}}}function wf(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return et(e,"get","$attrs"),t[n]}}))}function Ef(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return wf(e)},slots:e.slots,emit:e.emit,expose:t}}function Na(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Ql(Yl(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Yn)return Yn[n](e)},has(t,n){return n in t||n in Yn}}))}function Tf(e,t=!0){return re(e)?e.displayName||e.name:e.name||t&&e.__name}function Sf(e){return re(e)&&"__vccOpts"in e}const I=(e,t)=>sd(e,t,gr);function d(e,t,n){const r=arguments.length;return r===2?Se(t)&&!te(t)?Qo(t)?Te(e,null,[t]):Te(e,t):Te(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Qo(n)&&(n=[n]),Te(e,t,n))}const Lf="3.4.15";/** +* @vue/runtime-dom v3.4.15 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const Af="http://www.w3.org/2000/svg",Cf="http://www.w3.org/1998/Math/MathML",qt=typeof document<"u"?document:null,xi=qt&&qt.createElement("template"),kf={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t==="svg"?qt.createElementNS(Af,e):t==="mathml"?qt.createElementNS(Cf,e):qt.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>qt.createTextNode(e),createComment:e=>qt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>qt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,a){const i=n?n.previousSibling:t.lastChild;if(o&&(o===a||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===a||!(o=o.nextSibling)););else{xi.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const l=xi.content;if(r==="svg"||r==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Vt="transition",Fn="animation",In=Symbol("_vtc"),Yt=(e,{slots:t})=>d(Rd,xs(e),t);Yt.displayName="Transition";const Ps={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},If=Yt.props=Re({},us,Ps),nn=(e,t=[])=>{te(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ri=e=>e?te(e)?e.some(t=>t.length>1):e.length>1:!1;function xs(e){const t={};for(const N in e)N in Ps||(t[N]=e[N]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:a=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=a,appearActiveClass:s=i,appearToClass:u=l,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,_=Pf(o),T=_&&_[0],E=_&&_[1],{onBeforeEnter:g,onEnter:k,onEnterCancelled:y,onLeave:L,onLeaveCancelled:M,onBeforeAppear:S=g,onAppear:q=k,onAppearCancelled:H=y}=t,R=(N,Q,me)=>{Bt(N,Q?u:l),Bt(N,Q?s:i),me&&me()},V=(N,Q)=>{N._isLeaving=!1,Bt(N,f),Bt(N,v),Bt(N,p),Q&&Q()},J=N=>(Q,me)=>{const ge=N?q:k,G=()=>R(Q,N,me);nn(ge,[Q,G]),Oi(()=>{Bt(Q,N?c:a),It(Q,N?u:l),Ri(ge)||Di(Q,r,T,G)})};return Re(t,{onBeforeEnter(N){nn(g,[N]),It(N,a),It(N,i)},onBeforeAppear(N){nn(S,[N]),It(N,c),It(N,s)},onEnter:J(!1),onAppear:J(!0),onLeave(N,Q){N._isLeaving=!0;const me=()=>V(N,Q);It(N,f),Os(),It(N,p),Oi(()=>{N._isLeaving&&(Bt(N,f),It(N,v),Ri(L)||Di(N,r,E,me))}),nn(L,[N,me])},onEnterCancelled(N){R(N,!1),nn(y,[N])},onAppearCancelled(N){R(N,!0),nn(H,[N])},onLeaveCancelled(N){V(N),nn(M,[N])}})}function Pf(e){if(e==null)return null;if(Se(e))return[ko(e.enter),ko(e.leave)];{const t=ko(e);return[t,t]}}function ko(e){return Ru(e)}function It(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[In]||(e[In]=new Set)).add(t)}function Bt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[In];n&&(n.delete(t),n.size||(e[In]=void 0))}function Oi(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let xf=0;function Di(e,t,n,r){const o=e._endId=++xf,a=()=>{o===e._endId&&r()};if(n)return setTimeout(a,n);const{type:i,timeout:l,propCount:c}=Rs(e,t);if(!i)return r();const s=i+"end";let u=0;const f=()=>{e.removeEventListener(s,p),a()},p=v=>{v.target===e&&++u>=c&&f()};setTimeout(()=>{u(n[_]||"").split(", "),o=r(`${Vt}Delay`),a=r(`${Vt}Duration`),i=Mi(o,a),l=r(`${Fn}Delay`),c=r(`${Fn}Duration`),s=Mi(l,c);let u=null,f=0,p=0;t===Vt?i>0&&(u=Vt,f=i,p=a.length):t===Fn?s>0&&(u=Fn,f=s,p=c.length):(f=Math.max(i,s),u=f>0?i>s?Vt:Fn:null,p=u?u===Vt?a.length:c.length:0);const v=u===Vt&&/\b(transform|all)(,|$)/.test(r(`${Vt}Property`).toString());return{type:u,timeout:f,propCount:p,hasTransform:v}}function Mi(e,t){for(;e.lengthNi(n)+Ni(e[r])))}function Ni(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Os(){return document.body.offsetHeight}function Rf(e,t,n){const r=e[In];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Of=Symbol("_vod"),Df=Symbol("");function Mf(e,t,n){const r=e.style,o=r.display,a=Oe(n);if(n&&!a){if(t&&!Oe(t))for(const i in t)n[i]==null&&ea(r,i,"");for(const i in n)ea(r,i,n[i])}else if(a){if(t!==n){const i=r[Df];i&&(n+=";"+i),r.cssText=n}}else t&&e.removeAttribute("style");Of in e&&(r.display=o)}const Vi=/\s*!important$/;function ea(e,t,n){if(te(n))n.forEach(r=>ea(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Nf(e,t);Vi.test(n)?e.setProperty(On(r),n.replace(Vi,""),"important"):e[r]=n}}const $i=["Webkit","Moz","ms"],Io={};function Nf(e,t){const n=Io[t];if(n)return n;let r=Ze(t);if(r!=="filter"&&r in e)return Io[t]=r;r=Dn(r);for(let o=0;o<$i.length;o++){const a=$i[o]+r;if(a in e)return Io[t]=a}return t}const Hi="http://www.w3.org/1999/xlink";function Vf(e,t,n,r,o){if(r&&t.startsWith("xlink:"))n==null?e.removeAttributeNS(Hi,t.slice(6,t.length)):e.setAttributeNS(Hi,t,n);else{const a=$u(t);n==null||a&&!Ol(n)?e.removeAttribute(t):e.setAttribute(t,a?"":n)}}function $f(e,t,n,r,o,a,i){if(t==="innerHTML"||t==="textContent"){r&&i(r,o,a),e[t]=n??"";return}const l=e.tagName;if(t==="value"&&l!=="PROGRESS"&&!l.includes("-")){e._value=n;const s=l==="OPTION"?e.getAttribute("value"):e.value,u=n??"";s!==u&&(e.value=u),n==null&&e.removeAttribute(t);return}let c=!1;if(n===""||n==null){const s=typeof e[t];s==="boolean"?n=Ol(n):n==null&&s==="string"?(n="",c=!0):s==="number"&&(n=0,c=!0)}try{e[t]=n}catch{}c&&e.removeAttribute(t)}function Hf(e,t,n,r){e.addEventListener(t,n,r)}function Bf(e,t,n,r){e.removeEventListener(t,n,r)}const Bi=Symbol("_vei");function Ff(e,t,n,r,o=null){const a=e[Bi]||(e[Bi]={}),i=a[t];if(r&&i)i.value=r;else{const[l,c]=jf(t);if(r){const s=a[t]=Uf(r,o);Hf(e,l,s,c)}else i&&(Bf(e,l,i,c),a[t]=void 0)}}const Fi=/(?:Once|Passive|Capture)$/;function jf(e){let t;if(Fi.test(e)){t={};let r;for(;r=e.match(Fi);)e=e.slice(0,e.length-r[0].length),t[r[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):On(e.slice(2)),t]}let Po=0;const zf=Promise.resolve(),qf=()=>Po||(zf.then(()=>Po=0),Po=Date.now());function Uf(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;ft(Wf(r,n.value),t,5,[r])};return n.value=e,n.attached=qf(),n}function Wf(e,t){if(te(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const ji=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Gf=(e,t,n,r,o,a,i,l,c)=>{const s=o==="svg";t==="class"?Rf(e,r,s):t==="style"?Mf(e,n,r):fr(t)?_a(t)||Ff(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Kf(e,t,r,s))?$f(e,t,r,a,i,l,c):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Vf(e,t,r,s))};function Kf(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&ji(t)&&re(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return ji(t)&&Oe(n)?!1:t in e}const Ds=new WeakMap,Ms=new WeakMap,Kr=Symbol("_moveCb"),zi=Symbol("_enterCb"),Ns={name:"TransitionGroup",props:Re({},If,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Nn(),r=cs();let o,a;return ps(()=>{if(!o.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!Zf(o[0].el,n.vnode.el,i))return;o.forEach(Jf),o.forEach(Xf);const l=o.filter(Qf);Os(),l.forEach(c=>{const s=c.el,u=s.style;It(s,i),u.transform=u.webkitTransform=u.transitionDuration="";const f=s[Kr]=p=>{p&&p.target!==s||(!p||/transform$/.test(p.propertyName))&&(s.removeEventListener("transitionend",f),s[Kr]=null,Bt(s,i))};s.addEventListener("transitionend",f)})}),()=>{const i=se(e),l=xs(i);let c=i.tag||Fe;o=a,a=t.default?xa(t.default()):[];for(let s=0;sdelete e.mode;Ns.props;const Vs=Ns;function Jf(e){const t=e.el;t[Kr]&&t[Kr](),t[zi]&&t[zi]()}function Xf(e){Ms.set(e,e.el.getBoundingClientRect())}function Qf(e){const t=Ds.get(e),n=Ms.get(e),r=t.left-n.left,o=t.top-n.top;if(r||o){const a=e.el.style;return a.transform=a.webkitTransform=`translate(${r}px,${o}px)`,a.transitionDuration="0s",e}}function Zf(e,t,n){const r=e.cloneNode(),o=e[In];o&&o.forEach(l=>{l.split(/\s+/).forEach(c=>c&&r.classList.remove(c))}),n.split(/\s+/).forEach(l=>l&&r.classList.add(l)),r.style.display="none";const a=t.nodeType===1?t:t.parentNode;a.appendChild(r);const{hasTransform:i}=Rs(r);return a.removeChild(r),i}const ep=Re({patchProp:Gf},kf);let xo,qi=!1;function tp(){return xo=qi?xo:sf(ep),qi=!0,xo}const np=(...e)=>{const t=tp().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=op(r);if(o)return n(o,!0,rp(o))},t};function rp(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function op(e){return Oe(e)?document.querySelector(e):e}const ap="modulepreload",ip=function(e){return"/"+e},Ui={},b=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){const a=document.getElementsByTagName("link");o=Promise.all(n.map(i=>{if(i=ip(i),i in Ui)return;Ui[i]=!0;const l=i.endsWith(".css"),c=l?'[rel="stylesheet"]':"";if(!!r)for(let f=a.length-1;f>=0;f--){const p=a[f];if(p.href===i&&(!l||p.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${c}`))return;const u=document.createElement("link");if(u.rel=l?"stylesheet":ap,l||(u.as="script",u.crossOrigin=""),u.href=i,document.head.appendChild(u),l)return new Promise((f,p)=>{u.addEventListener("load",f),u.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${i}`)))})}))}return o.then(()=>t()).catch(a=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=a,window.dispatchEvent(i),!i.defaultPrevented)throw a})},lp=JSON.parse("{}"),sp=Object.fromEntries([["/",{loader:()=>b(()=>import("./index.html-T18qVkkc.js"),__vite__mapDeps([0,1,2])),meta:{y:"h",t:"Api Buddy",i:"restfulFastRequest"}}],["/en/",{loader:()=>b(()=>import("./index.html-LXY6EoJW.js"),__vite__mapDeps([3,2,4])),meta:{y:"h",t:"Api Buddy",i:"restfulFastRequest"}}],["/en/compare.snippet.html",{loader:()=>b(()=>import("./compare.snippet.html-yeBleQ9-.js"),__vite__mapDeps([])),meta:{y:"a",t:""}}],["/en/contact.snippet.html",{loader:()=>b(()=>import("./contact.snippet.html-m8cspllp.js"),__vite__mapDeps([5,2,4])),meta:{y:"a",t:""}}],["/guide/activity.html",{loader:()=>b(()=>import("./activity.html-Fv0Y2aRo.js"),__vite__mapDeps([])),meta:{y:"a",t:"活动",i:"activity"}}],["/guide/buy.html",{loader:()=>b(()=>import("./buy.html-0QOA6oRM.js"),__vite__mapDeps([6,7,1])),meta:{y:"a",t:"购买",i:"buy"}}],["/guide/concatGroup.html",{loader:()=>b(()=>import("./concatGroup.html-CxO0s7Lh.js"),__vite__mapDeps([8,1,9])),meta:{y:"a",t:"群聊",i:"contactGroup"}}],["/guide/eula.html",{loader:()=>b(()=>import("./eula.html-MHGcuP0Y.js"),__vite__mapDeps([])),meta:{y:"a",t:"EULA",i:"license"}}],["/guide/faq.html",{loader:()=>b(()=>import("./faq.html-uOOdmyZ0.js"),__vite__mapDeps([10,11,12,13])),meta:{y:"a",t:"FAQ",i:"faq"}}],["/guide/feature.html",{loader:()=>b(()=>import("./feature.html-4qjXMsJf.js"),__vite__mapDeps([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,13,40,41,42,43,44,45,46,47])),meta:{y:"a",t:"功能",i:"tools"}}],["/guide/history.html",{loader:()=>b(()=>import("./history.html-KDcCl6mr.js"),__vite__mapDeps([48,1,9,49,50,51,52,12,53,54,55,56,57,58,59,60,61,47,62,2,20,45,18,44,63,64,41,43,46,40,42,38,37,39,13,36,21,34,35,65,33,31,32])),meta:{y:"a",t:"最新变化",i:"changelog"}}],["/guide/install.html",{loader:()=>b(()=>import("./install.html-20W4_2hH.js"),__vite__mapDeps([66,67])),meta:{y:"a",t:"安装",i:"install-fill"}}],["/guide/introduce.html",{loader:()=>b(()=>import("./introduce.html-LNziiyTM.js"),__vite__mapDeps([68,1,2])),meta:{y:"a",t:"简介",i:"restfulFastRequest"}}],["/guide/java.html",{loader:()=>b(()=>import("./java.html-SnCg0bTN.js"),__vite__mapDeps([])),meta:{y:"a",t:"Java资源",i:"java"}}],["/guide/link.html",{loader:()=>b(()=>import("./link.html-2fy8-6lL.js"),__vite__mapDeps([])),meta:{y:"a",t:"友情链接",i:"youqinglianjie"}}],["/guide/priceAdjust.html",{loader:()=>b(()=>import("./priceAdjust.html-6mMtKJ6n.js"),__vite__mapDeps([])),meta:{y:"a",t:"价格调整",i:"restfulFastRequest"}}],["/guide/script.html",{loader:()=>b(()=>import("./script.html-GcLPwiv0.js"),__vite__mapDeps([69,62,50])),meta:{y:"a",t:"脚本",i:"code-box-fill"}}],["/guide/sponsor.html",{loader:()=>b(()=>import("./sponsor.html-3W8kBsh2.js"),__vite__mapDeps([])),meta:{y:"a",t:"赞助",i:"aixin"}}],["/guide/sponsorList.html",{loader:()=>b(()=>import("./sponsorList.html-IYHUNPKq.js"),__vite__mapDeps([])),meta:{y:"a",t:"赞助列表",i:"aixin"}}],["/guide/teachingVideo.html",{loader:()=>b(()=>import("./teachingVideo.html--Z7PwIhp.js"),__vite__mapDeps([])),meta:{y:"a",t:"视频教程",i:"bilibili"}}],["/guide/teamwork.html",{loader:()=>b(()=>import("./teamwork.html-Bmj5Ql1G.js"),__vite__mapDeps([70,56,71])),meta:{y:"a",t:"团队协作",i:"teamwork"}}],["/guide/versionCompare.html",{loader:()=>b(()=>import("./versionCompare.html-j1fFeGo4.js"),__vite__mapDeps([])),meta:{y:"a",t:"版本对比",i:"versionCompare"}}],["/guide/whatsnew.html",{loader:()=>b(()=>import("./whatsnew.html-kGsVOFAh.js"),__vite__mapDeps([72,1,2])),meta:{y:"a",t:"历史变更",i:"whats-new"}}],["/en/guide/buy.html",{loader:()=>b(()=>import("./buy.html-dM5GFkxl.js"),__vite__mapDeps([73,7])),meta:{y:"a",t:"Buy Plugin",i:"buy"}}],["/en/guide/concatGroup.html",{loader:()=>b(()=>import("./concatGroup.html-BU3ixvVv.js"),__vite__mapDeps([74,2,4])),meta:{y:"a",t:"Contacts",i:"contactGroup"}}],["/en/guide/eula.html",{loader:()=>b(()=>import("./eula.html-FzSaVQwE.js"),__vite__mapDeps([])),meta:{y:"a",t:"EULA",i:"license"}}],["/en/guide/faq.html",{loader:()=>b(()=>import("./faq.html-XFVMFog5.js"),__vite__mapDeps([75,11,76,13])),meta:{y:"a",t:"FAQ",i:"faq"}}],["/en/guide/feature.html",{loader:()=>b(()=>import("./feature.html-NH73gv6K.js"),__vite__mapDeps([77,15,78,17,18,19,79,21,22,80,24,25,26,81,28,82,83,84,32,34,35,36,37,85,39,13,40,86,42,43,44,45,46,47])),meta:{y:"a",t:"Features",i:"tools"}}],["/en/guide/history.html",{loader:()=>b(()=>import("./history.html-VQ_AlSYR.js"),__vite__mapDeps([87,4,2,49,88,89,76,53,54,90,56,91,92,59,60,61,47,93,79,45,18,44,25,26,86,43,46,40,42,85,37,39,13,36,21,34,35,65,84,32])),meta:{y:"a",t:"What's New",i:"changelog"}}],["/en/guide/install.html",{loader:()=>b(()=>import("./install.html-TZR57Mr7.js"),__vite__mapDeps([94,67])),meta:{y:"a",t:"Install",i:"install-fill"}}],["/en/guide/introduce.html",{loader:()=>b(()=>import("./introduce.html-l5-OctNt.js"),__vite__mapDeps([])),meta:{y:"a",t:"Introduction",i:"restfulFastRequest"}}],["/en/guide/priceAdjust.html",{loader:()=>b(()=>import("./priceAdjust.html-4b3AAlY7.js"),__vite__mapDeps([])),meta:{y:"a",t:"Price adjust",i:"restfulFastRequest"}}],["/en/guide/script.html",{loader:()=>b(()=>import("./script.html-OECdru8Y.js"),__vite__mapDeps([95,93,50])),meta:{y:"a",t:"Script",i:"code-box-fill"}}],["/en/guide/teamwork.html",{loader:()=>b(()=>import("./teamwork.html-ps0XRtYl.js"),__vite__mapDeps([96,56,71])),meta:{y:"a",t:"Teamwork",i:"teamwork"}}],["/en/guide/versionCompare.html",{loader:()=>b(()=>import("./versionCompare.html-dy0-Xjyz.js"),__vite__mapDeps([])),meta:{y:"a",t:"Version compare",i:"versionCompare"}}],["/en/guide/whatsnew.html",{loader:()=>b(()=>import("./whatsnew.html-PscUMwPB.js"),__vite__mapDeps([97,4,2])),meta:{y:"a",t:"History changes",i:"whats-new"}}],["/guide/getstarted/dataMapping.html",{loader:()=>b(()=>import("./dataMapping.html-6Wo7G1QZ.js"),__vite__mapDeps([])),meta:{y:"a",t:"类型映射",i:"dataMapping"}}],["/guide/getstarted/icon.html",{loader:()=>b(()=>import("./icon.html-OIsm6Oa2.js"),__vite__mapDeps([98,99])),meta:{y:"a",t:"类型 Icon 映射",i:"discoverfill"}}],["/guide/getstarted/otherConfig.html",{loader:()=>b(()=>import("./otherConfig.html-DsFJKYCa.js"),__vite__mapDeps([])),meta:{y:"a",t:"其他配置",i:"others1"}}],["/guide/getstarted/projectEnv.html",{loader:()=>b(()=>import("./projectEnv.html-rIQ0C5Vw.js"),__vite__mapDeps([100,65])),meta:{y:"a",t:"项目/环境/域名",i:"config2"}}],["/guide/getstarted/shortcut.html",{loader:()=>b(()=>import("./shortcut.html-0quKoOk9.js"),__vite__mapDeps([101,102])),meta:{y:"a",t:"快捷键",i:"shortcut-fill"}}],["/guide/getstarted/start.html",{loader:()=>b(()=>import("./start.html-m7-l0v8E.js"),__vite__mapDeps([103,104,1,2])),meta:{y:"a",t:"快速开始",i:"start1"}}],["/guide/getstarted/stringGenerationStrategy.html",{loader:()=>b(()=>import("./stringGenerationStrategy.html-WC-AH9Sy.js"),__vite__mapDeps([])),meta:{y:"a",t:"String 生成策略",i:"codestring"}}],["/guide/features/",{loader:()=>b(()=>import("./index.html-rfOehzxC.js"),__vite__mapDeps([105,53])),meta:{y:"a",t:"功能列表",i:"featuresNew"}}],["/guide/features/ai.html",{loader:()=>b(()=>import("./ai.html-QWgQCY0N.js"),__vite__mapDeps([106,51,107])),meta:{y:"a",t:"AI"}}],["/guide/features/annualReport.html",{loader:()=>b(()=>import("./annualReport.html-n4KDAGRz.js"),__vite__mapDeps([108,57])),meta:{y:"a",t:"年度报告"}}],["/guide/features/apiAssociation.html",{loader:()=>b(()=>import("./apiAssociation.html--ecGnu0q.js"),__vite__mapDeps([109,31,32])),meta:{y:"a",t:"API 分组自动关联"}}],["/guide/features/apiCommentPreview.html",{loader:()=>b(()=>import("./apiCommentPreview.html-O0zPtZXm.js"),__vite__mapDeps([110,47])),meta:{y:"a",t:"Api 注释预览"}}],["/guide/features/apiDocSync.html",{loader:()=>b(()=>import("./apiDocSync.html-_v3-zlQ3.js"),__vite__mapDeps([111,112])),meta:{y:"a",t:"API 文档同步"}}],["/guide/features/apiGroup.html",{loader:()=>b(()=>import("./apiGroup.html-sw6EBA6N.js"),__vite__mapDeps([113,63])),meta:{y:"a",t:"API 分组"}}],["/guide/features/apiImportExport.html",{loader:()=>b(()=>import("./apiImportExport.html-8BYE1RGq.js"),__vite__mapDeps([114,36])),meta:{y:"a",t:"APIs 导入导出"}}],["/guide/features/apiList.html",{loader:()=>b(()=>import("./apiList.html-FNisDg_V.js"),__vite__mapDeps([115,22,23])),meta:{y:"a",t:"API 列表"}}],["/guide/features/apiNavigateTree.html",{loader:()=>b(()=>import("./apiNavigateTree.html-wkCLDYwJ.js"),__vite__mapDeps([116,34])),meta:{y:"a",t:"API 导航树"}}],["/guide/features/apiPreview.html",{loader:()=>b(()=>import("./apiPreview.html-modtWLsy.js"),__vite__mapDeps([117,13])),meta:{y:"a",t:"API 一览表预览"}}],["/guide/features/apiToDoc.html",{loader:()=>b(()=>import("./apiToDoc.html-l25xBp-b.js"),__vite__mapDeps([118,38,39])),meta:{y:"a",t:"API 生成文档"}}],["/guide/features/apiToPostman.html",{loader:()=>b(()=>import("./apiToPostman.html-xOpoh0Kq.js"),__vite__mapDeps([119,21])),meta:{y:"a",t:"API 导出到 Postman"}}],["/guide/features/apifox.html",{loader:()=>b(()=>import("./apifox.html-abXN2YzN.js"),__vite__mapDeps([])),meta:{y:"a",t:"Apifox 集成"}}],["/guide/features/autoDescription.html",{loader:()=>b(()=>import("./autoDescription.html-w-PU9cdB.js"),__vite__mapDeps([120,37])),meta:{y:"a",t:"API 自动生成注释"}}],["/guide/features/autoDomain.html",{loader:()=>b(()=>import("./autoDomain.html-xxeP_XtU.js"),__vite__mapDeps([])),meta:{y:"a",t:"自动域名"}}],["/guide/features/basicAuth.html",{loader:()=>b(()=>import("./basicAuth.html-1cgnvvSy.js"),__vite__mapDeps([121,122])),meta:{y:"a",t:"Basic auth"}}],["/guide/features/batchExportApiDoc.html",{loader:()=>b(()=>import("./batchExportApiDoc.html-0RigdmWN.js"),__vite__mapDeps([123,44])),meta:{y:"a",t:"批量导出 API 文档"}}],["/guide/features/bulkEdit.html",{loader:()=>b(()=>import("./bulkEdit.html-1dc3Snf5.js"),__vite__mapDeps([124,55])),meta:{y:"a",t:"Headers批量编辑"}}],["/guide/features/clear.html",{loader:()=>b(()=>import("./clear.html-xWGlbH8o.js"),__vite__mapDeps([125,61])),meta:{y:"a",t:"Clear"}}],["/guide/features/commonHeader.html",{loader:()=>b(()=>import("./commonHeader.html-B63z18ER.js"),__vite__mapDeps([126,59])),meta:{y:"a",t:"常用头参数"}}],["/guide/features/copyCurl.html",{loader:()=>b(()=>import("./copyCurl.html-wtwTglSy.js"),__vite__mapDeps([127,128,29])),meta:{y:"a",t:"CURL 拷贝"}}],["/guide/features/copyUrl.html",{loader:()=>b(()=>import("./copyUrl.html-rmfO_xxT.js"),__vite__mapDeps([129,45])),meta:{y:"a",t:"一键拷贝 Url"}}],["/guide/features/curlImport.html",{loader:()=>b(()=>import("./curlImport.html-k7NyonBw.js"),__vite__mapDeps([130,41])),meta:{y:"a",t:"cURL 导入"}}],["/guide/features/customToolbar.html",{loader:()=>b(()=>import("./customToolbar.html-o6nDZEqa.js"),__vite__mapDeps([131,52])),meta:{y:"a",t:"自定义工具栏"}}],["/guide/features/debugApi.html",{loader:()=>b(()=>import("./debugApi.html-UdGGuDcU.js"),__vite__mapDeps([132,17,16])),meta:{y:"a",t:"调试 API 发送请求"}}],["/guide/features/docAndContact.html",{loader:()=>b(()=>import("./docAndContact.html-dsx1ESAC.js"),__vite__mapDeps([])),meta:{y:"a",t:"文档/快速联系"}}],["/guide/features/downloadApi.html",{loader:()=>b(()=>import("./downloadApi.html-mMdCWhoo.js"),__vite__mapDeps([133,19])),meta:{y:"a",t:"下载文件"}}],["/guide/features/environment.html",{loader:()=>b(()=>import("./environment.html-zP3n6wrG.js"),__vite__mapDeps([134,135])),meta:{y:"a",t:"Environment",i:"environment"}}],["/guide/features/fullScreen.html",{loader:()=>b(()=>import("./fullScreen.html-w1sV3P66.js"),__vite__mapDeps([136,60])),meta:{y:"a",t:"全屏"}}],["/guide/features/function.html",{loader:()=>b(()=>import("./function.html-KTbJblbm.js"),__vite__mapDeps([])),meta:{y:"a",t:"函数"}}],["/guide/features/headerGroup.html",{loader:()=>b(()=>import("./headerGroup.html-SPKCPIV9.js"),__vite__mapDeps([137,138,35])),meta:{y:"a",t:"Headers 分组"}}],["/guide/features/headersGroup.html",{loader:()=>b(()=>import("./headersGroup.html-0bTk6nhh.js"),__vite__mapDeps([139,35])),meta:{y:"a",t:"Headers 分组"}}],["/guide/features/historyRequest.html",{loader:()=>b(()=>import("./historyRequest.html-09A8ToLV.js"),__vite__mapDeps([140,43])),meta:{y:"a",t:"历史请求预览"}}],["/guide/features/htmlPreview.html",{loader:()=>b(()=>import("./htmlPreview.html-yU2glsc2.js"),__vite__mapDeps([141,46])),meta:{y:"a",t:"Html 预览"}}],["/guide/features/jsonGrammarCheck.html",{loader:()=>b(()=>import("./jsonGrammarCheck.html-Lg2xnVy8.js"),__vite__mapDeps([142,33])),meta:{y:"a",t:"Json 语法检查"}}],["/guide/features/makeIconMove.html",{loader:()=>b(()=>import("./makeIconMove.html-il0Uypus.js"),__vite__mapDeps([143,15])),meta:{y:"a",t:"让图标动起来"}}],["/guide/features/markdownDocTemplateConfig.html",{loader:()=>b(()=>import("./markdownDocTemplateConfig.html-zPhrAMAq.js"),__vite__mapDeps([])),meta:{y:"a",t:"Markdown文档模板配置"}}],["/guide/features/navigateCurrentMethod.html",{loader:()=>b(()=>import("./navigateCurrentMethod.html-bXY0Elzw.js"),__vite__mapDeps([144,42])),meta:{y:"a",t:"当前方法定位"}}],["/guide/features/navigateCurrentMethodJson.html",{loader:()=>b(()=>import("./navigateCurrentMethodJson.html-IS3ATxu8.js"),__vite__mapDeps([145,146])),meta:{y:"a",t:"多窗口 Tab"}}],["/guide/features/parseStrategy.html",{loader:()=>b(()=>import("./parseStrategy.html-BeXXNMOW.js"),__vite__mapDeps([147,12])),meta:{y:"a",t:"字段解析"}}],["/guide/features/postmanSync.html",{loader:()=>b(()=>import("./postmanSync.html-1JRSAgGf.js"),__vite__mapDeps([148,149])),meta:{y:"a",t:"Postman 集成"}}],["/guide/features/projectConfigRefresh.html",{loader:()=>b(()=>import("./projectConfigRefresh.html-1hTjtLKu.js"),__vite__mapDeps([150,56])),meta:{y:"a",t:"项目配置刷新"}}],["/guide/features/projectLevelDomainConfig.html",{loader:()=>b(()=>import("./projectLevelDomainConfig.html-XKsM4IHF.js"),__vite__mapDeps([151,58])),meta:{y:"a",t:"Project 级别域名配置"}}],["/guide/features/projectValueConfig.html",{loader:()=>b(()=>import("./projectValueConfig.html-50BV-VJM.js"),__vite__mapDeps([152,40])),meta:{y:"a",t:"项目级别全局参数支持"}}],["/guide/features/quickAddHeader.html",{loader:()=>b(()=>import("./quickAddHeader.html-37imcXHe.js"),__vite__mapDeps([153,30])),meta:{y:"a",t:"快速添加 header"}}],["/guide/features/regenerate.html",{loader:()=>b(()=>import("./regenerate.html-5jSJw_Ij.js"),__vite__mapDeps([154,155,27])),meta:{y:"a",t:"重新生成请求"}}],["/guide/features/saveRequest.html",{loader:()=>b(()=>import("./saveRequest.html-2LK55CV1.js"),__vite__mapDeps([156,24])),meta:{y:"a",t:"保存请求"}}],["/guide/features/script.html",{loader:()=>b(()=>import("./script.html-7wvSZKVB.js"),__vite__mapDeps([157,20])),meta:{y:"a",t:"脚本"}}],["/guide/features/searchEveryWhere.html",{loader:()=>b(()=>import("./searchEveryWhere.html-AyFvK1hu.js"),__vite__mapDeps([158,54])),meta:{y:"a",t:"SearchEveryWhere"}}],["/guide/features/settingManager.html",{loader:()=>b(()=>import("./settingManager.html-pLB9xErd.js"),__vite__mapDeps([])),meta:{y:"a",t:"管理配置"}}],["/guide/features/shareApiDoc.html",{loader:()=>b(()=>import("./shareApiDoc.html-mH-GlHrT.js"),__vite__mapDeps([159,38,39])),meta:{y:"a",t:"API 文档分享"}}],["/guide/features/stopRequest.html",{loader:()=>b(()=>import("./stopRequest.html-HLWNv8yY.js"),__vite__mapDeps([160,161])),meta:{y:"a",t:"终止 API 请求功能"}}],["/guide/features/swaggerDefaultValueParse.html",{loader:()=>b(()=>import("./swaggerDefaultValueParse.html-EOQ16yAx.js"),__vite__mapDeps([])),meta:{y:"a",t:"Swagger 默认值"}}],["/guide/features/tempRequest.html",{loader:()=>b(()=>import("./tempRequest.html-d0W1Xrun.js"),__vite__mapDeps([162,64])),meta:{y:"a",t:"临时请求保存支持"}}],["/en/guide/features/",{loader:()=>b(()=>import("./index.html-9xUwsIHr.js"),__vite__mapDeps([])),meta:{y:"a",t:"Features",i:"featuresNew"}}],["/en/guide/features/ai.html",{loader:()=>b(()=>import("./ai.html-bCaeFn90.js"),__vite__mapDeps([163,88,107])),meta:{y:"a",t:"AI"}}],["/en/guide/features/annualReport.html",{loader:()=>b(()=>import("./annualReport.html-f9Bx9rF-.js"),__vite__mapDeps([164,91])),meta:{y:"a",t:"Annual report"}}],["/en/guide/features/apiCommentPreview.html",{loader:()=>b(()=>import("./apiCommentPreview.html-VjF9ie8p.js"),__vite__mapDeps([165,47])),meta:{y:"a",t:"Api comment preview"}}],["/en/guide/features/apiDocSync.html",{loader:()=>b(()=>import("./apiDocSync.html-OZncUaKF.js"),__vite__mapDeps([166,112])),meta:{y:"a",t:"API document sync"}}],["/en/guide/features/apiGroup.html",{loader:()=>b(()=>import("./apiGroup.html-1PW0gdb7.js"),__vite__mapDeps([167,25])),meta:{y:"a",t:"API group"}}],["/en/guide/features/apiImportExport.html",{loader:()=>b(()=>import("./apiImportExport.html-TO0c3Lia.js"),__vite__mapDeps([168,36])),meta:{y:"a",t:"APIs import and export"}}],["/en/guide/features/apiList.html",{loader:()=>b(()=>import("./apiList.html-iMbpQCtB.js"),__vite__mapDeps([169,80])),meta:{y:"a",t:"API list"}}],["/en/guide/features/apiNavigateTree.html",{loader:()=>b(()=>import("./apiNavigateTree.html-RHQgtl5s.js"),__vite__mapDeps([170,34])),meta:{y:"a",t:"API navigate tree"}}],["/en/guide/features/apiPreview.html",{loader:()=>b(()=>import("./apiPreview.html-YLc87oA-.js"),__vite__mapDeps([171,13])),meta:{y:"a",t:"API list preview"}}],["/en/guide/features/apiToDoc.html",{loader:()=>b(()=>import("./apiToDoc.html-qDMokp8P.js"),__vite__mapDeps([172,85,39])),meta:{y:"a",t:"API to document"}}],["/en/guide/features/apiToPostman.html",{loader:()=>b(()=>import("./apiToPostman.html-KaBGvCwi.js"),__vite__mapDeps([173,21])),meta:{y:"a",t:"APIs export to Postman"}}],["/en/guide/features/apifox.html",{loader:()=>b(()=>import("./apifox.html-ZrsXqK4W.js"),__vite__mapDeps([])),meta:{y:"a",t:"Apifox integration"}}],["/en/guide/features/autoDescription.html",{loader:()=>b(()=>import("./autoDescription.html-oVXwAAVJ.js"),__vite__mapDeps([174,37])),meta:{y:"a",t:"Auto Description"}}],["/en/guide/features/autoDomain.html",{loader:()=>b(()=>import("./autoDomain.html-KZYdhIIe.js"),__vite__mapDeps([])),meta:{y:"a",t:"Auto domain"}}],["/en/guide/features/basicAuth.html",{loader:()=>b(()=>import("./basicAuth.html-I7ObjiG4.js"),__vite__mapDeps([175,122])),meta:{y:"a",t:"Basic auth"}}],["/en/guide/features/batchExportApiDoc.html",{loader:()=>b(()=>import("./batchExportApiDoc.html-Bde8qF5F.js"),__vite__mapDeps([176,44])),meta:{y:"a",t:"Batch export API doc"}}],["/en/guide/features/bulkEdit.html",{loader:()=>b(()=>import("./bulkEdit.html-0JgZE661.js"),__vite__mapDeps([177,90])),meta:{y:"a",t:"Headers batch edit"}}],["/en/guide/features/clear.html",{loader:()=>b(()=>import("./clear.html-3xwO0JDb.js"),__vite__mapDeps([178,61])),meta:{y:"a",t:"Clear"}}],["/en/guide/features/commonHeader.html",{loader:()=>b(()=>import("./commonHeader.html-j4bLmx_u.js"),__vite__mapDeps([])),meta:{y:"a",t:"Common header"}}],["/en/guide/features/copyCurl.html",{loader:()=>b(()=>import("./copyCurl.html-8zDVfx_W.js"),__vite__mapDeps([179,128,82])),meta:{y:"a",t:"cURL copy"}}],["/en/guide/features/copyUrl.html",{loader:()=>b(()=>import("./copyUrl.html-iUzk2RXq.js"),__vite__mapDeps([180,45])),meta:{y:"a",t:"Single url copy"}}],["/en/guide/features/curlImport.html",{loader:()=>b(()=>import("./curlImport.html-VAxWJam1.js"),__vite__mapDeps([181,86])),meta:{y:"a",t:"cURL import"}}],["/en/guide/features/customToolbar.html",{loader:()=>b(()=>import("./customToolbar.html-WVxg8ImQ.js"),__vite__mapDeps([182,89])),meta:{y:"a",t:"Custom toolbar"}}],["/en/guide/features/debugApi.html",{loader:()=>b(()=>import("./debugApi.html-rCrLtinL.js"),__vite__mapDeps([183,17,78])),meta:{y:"a",t:"Debug API & send request"}}],["/en/guide/features/docAndContact.html",{loader:()=>b(()=>import("./docAndContact.html-u4yhE9iD.js"),__vite__mapDeps([])),meta:{y:"a",t:"Document / Contact"}}],["/en/guide/features/downloadApi.html",{loader:()=>b(()=>import("./downloadApi.html-bI_tIxKp.js"),__vite__mapDeps([184,19])),meta:{y:"a",t:"Download file"}}],["/en/guide/features/environment.html",{loader:()=>b(()=>import("./environment.html-jq3olPQe.js"),__vite__mapDeps([185,135])),meta:{y:"a",t:"Environment",i:"environment"}}],["/en/guide/features/fullScreen.html",{loader:()=>b(()=>import("./fullScreen.html-Eb53SqXM.js"),__vite__mapDeps([186,60])),meta:{y:"a",t:"Full screen"}}],["/en/guide/features/function.html",{loader:()=>b(()=>import("./function.html-Tz7dEZpY.js"),__vite__mapDeps([])),meta:{y:"a",t:"Function"}}],["/en/guide/features/headerGroup.html",{loader:()=>b(()=>import("./headerGroup.html-EjccUMr6.js"),__vite__mapDeps([187,138,35])),meta:{y:"a",t:"Headers group"}}],["/en/guide/features/historyRequest.html",{loader:()=>b(()=>import("./historyRequest.html-bPhmCsyX.js"),__vite__mapDeps([])),meta:{y:"a",t:"History request"}}],["/en/guide/features/htmlPreview.html",{loader:()=>b(()=>import("./htmlPreview.html-5mxNTly4.js"),__vite__mapDeps([188,46])),meta:{y:"a",t:"Html preview"}}],["/en/guide/features/jsonGrammarCheck.html",{loader:()=>b(()=>import("./jsonGrammarCheck.html-RiqZayH6.js"),__vite__mapDeps([189,33])),meta:{y:"a",t:"Json grammar check"}}],["/en/guide/features/makeIconMove.html",{loader:()=>b(()=>import("./makeIconMove.html--ClMbWen.js"),__vite__mapDeps([190,15])),meta:{y:"a",t:"Make icon move"}}],["/en/guide/features/markdownDocTemplateConfig.html",{loader:()=>b(()=>import("./markdownDocTemplateConfig.html-j_aHC_Cx.js"),__vite__mapDeps([])),meta:{y:"a",t:"Markdown doc template config"}}],["/en/guide/features/navigateCurrentMethod.html",{loader:()=>b(()=>import("./navigateCurrentMethod.html-g8mf6Xwm.js"),__vite__mapDeps([191,42])),meta:{y:"a",t:"Navigate to current method"}}],["/en/guide/features/navigateCurrentMethodJson.html",{loader:()=>b(()=>import("./navigateCurrentMethodJson.html-B-ShmjjD.js"),__vite__mapDeps([192,146])),meta:{y:"a",t:"Multi-tab window"}}],["/en/guide/features/parseStrategy.html",{loader:()=>b(()=>import("./parseStrategy.html-TKSY716z.js"),__vite__mapDeps([193,76])),meta:{y:"a",t:"Parse strategy"}}],["/en/guide/features/postmanSync.html",{loader:()=>b(()=>import("./postmanSync.html-6xCHyMus.js"),__vite__mapDeps([194,149])),meta:{y:"a",t:"Postman Sync"}}],["/en/guide/features/projectConfigRefresh.html",{loader:()=>b(()=>import("./projectConfigRefresh.html-XeZSUbCO.js"),__vite__mapDeps([195,56])),meta:{y:"a",t:"Project config refresh"}}],["/en/guide/features/projectLevelDomainConfig.html",{loader:()=>b(()=>import("./projectLevelDomainConfig.html-6T6LwMQL.js"),__vite__mapDeps([196,92])),meta:{y:"a",t:"Project-level domain config"}}],["/en/guide/features/projectValueConfig.html",{loader:()=>b(()=>import("./projectValueConfig.html-6_cGrtdG.js"),__vite__mapDeps([])),meta:{y:"a",t:"Project-level config"}}],["/en/guide/features/quickAddHeader.html",{loader:()=>b(()=>import("./quickAddHeader.html-7PSdbaaM.js"),__vite__mapDeps([197,83])),meta:{y:"a",t:"Quickly add header"}}],["/en/guide/features/regenerate.html",{loader:()=>b(()=>import("./regenerate.html-FlZ8jVW4.js"),__vite__mapDeps([198,155,81])),meta:{y:"a",t:"Re generate"}}],["/en/guide/features/saveRequest.html",{loader:()=>b(()=>import("./saveRequest.html-4vnnZwG8.js"),__vite__mapDeps([199,24])),meta:{y:"a",t:"Save request"}}],["/en/guide/features/script.html",{loader:()=>b(()=>import("./script.html-jhPE1GsP.js"),__vite__mapDeps([200,79])),meta:{y:"a",t:"Script"}}],["/en/guide/features/searchEveryWhere.html",{loader:()=>b(()=>import("./searchEveryWhere.html-te8aIUWf.js"),__vite__mapDeps([201,54])),meta:{y:"a",t:"SearchEveryWhere"}}],["/en/guide/features/settingManager.html",{loader:()=>b(()=>import("./settingManager.html-TZ2kSRsL.js"),__vite__mapDeps([])),meta:{y:"a",t:"Setting manager"}}],["/en/guide/features/shareApiDoc.html",{loader:()=>b(()=>import("./shareApiDoc.html-Z0PUP8x_.js"),__vite__mapDeps([202,85,39])),meta:{y:"a",t:"API document share"}}],["/en/guide/features/stopRequest.html",{loader:()=>b(()=>import("./stopRequest.html-RJ4b5d3A.js"),__vite__mapDeps([203,161])),meta:{y:"a",t:"Stop API request"}}],["/en/guide/features/swaggerDefaultValueParse.html",{loader:()=>b(()=>import("./swaggerDefaultValueParse.html-YDphGNQt.js"),__vite__mapDeps([])),meta:{y:"a",t:"Swagger default value"}}],["/en/guide/features/tempRequest.html",{loader:()=>b(()=>import("./tempRequest.html-nFfGSo9a.js"),__vite__mapDeps([204,26])),meta:{y:"a",t:"Temporary request"}}],["/en/guide/getstarted/dataMapping.html",{loader:()=>b(()=>import("./dataMapping.html-GD-HC1cD.js"),__vite__mapDeps([])),meta:{y:"a",t:"Data mapping",i:"dataMapping"}}],["/en/guide/getstarted/icon.html",{loader:()=>b(()=>import("./icon.html-U2bzJaU6.js"),__vite__mapDeps([205,99])),meta:{y:"a",t:"Icon and type mapping",i:"discoverfill"}}],["/en/guide/getstarted/otherConfig.html",{loader:()=>b(()=>import("./otherConfig.html-1LOsQQSL.js"),__vite__mapDeps([])),meta:{y:"a",t:"Other config",i:"others1"}}],["/en/guide/getstarted/projectEnv.html",{loader:()=>b(()=>import("./projectEnv.html-Mn9mwxfD.js"),__vite__mapDeps([206,65])),meta:{y:"a",t:"Project/Env/Domain",i:"config2"}}],["/en/guide/getstarted/shortcut.html",{loader:()=>b(()=>import("./shortcut.html-bCKldXkK.js"),__vite__mapDeps([207,102])),meta:{y:"a",t:"Shortcut",i:"shortcut-fill"}}],["/en/guide/getstarted/start.html",{loader:()=>b(()=>import("./start.html-wc2ASsKr.js"),__vite__mapDeps([208,104,4,2])),meta:{y:"a",t:"Get started",i:"start1"}}],["/en/guide/getstarted/stringGenerationStrategy.html",{loader:()=>b(()=>import("./stringGenerationStrategy.html-pOf0Hx5_.js"),__vite__mapDeps([])),meta:{y:"a",t:"String generation strategy",i:"codestring"}}],["/404.html",{loader:()=>b(()=>import("./404.html-6uJtO3BE.js"),__vite__mapDeps([])),meta:{y:"p",t:""}}],["/guide/",{loader:()=>b(()=>import("./index.html-whIE1SLb.js"),__vite__mapDeps([])),meta:{y:"p",t:"Guide"}}],["/en/guide/",{loader:()=>b(()=>import("./index.html-r-lGMhBe.js"),__vite__mapDeps([])),meta:{y:"p",t:"Guide"}}],["/guide/getstarted/",{loader:()=>b(()=>import("./index.html-iS-fSKEl.js"),__vite__mapDeps([])),meta:{y:"p",t:"Getstarted"}}],["/en/guide/getstarted/",{loader:()=>b(()=>import("./index.html-5LT6ElFO.js"),__vite__mapDeps([])),meta:{y:"p",t:"Getstarted"}}]]);var cp=["link","meta","script","style","noscript","template"],up=["title","base"],dp=([e,t,n])=>up.includes(e)?e:cp.includes(e)?e==="meta"&&t.name?`${e}.${t.name}`:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,Object.entries(t).map(([r,o])=>typeof o=="boolean"?o?[r,""]:null:[r,o]).filter(r=>r!=null).sort(([r],[o])=>r.localeCompare(o)),n]):null,fp=e=>{const t=new Set,n=[];return e.forEach(r=>{const o=dp(r);o&&!t.has(o)&&(t.add(o),n.push(r))}),n},pp=e=>e[0]==="/"?e:`/${e}`,$s=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,Xt=e=>/^(https?:)?\/\//.test(e),hp=/.md((\?|#).*)?$/,dn=(e,t="/")=>!!(Xt(e)||e.startsWith("/")&&!e.startsWith(t)&&!hp.test(e)),Hs=e=>/^[a-z][a-z0-9+.-]*:/.test(e),_r=e=>Object.prototype.toString.call(e)==="[object Object]",mp=e=>{const[t,...n]=e.split(/(\?|#)/);if(!t||t.endsWith("/"))return e;const r=n.length>0?n.join(""):"";let o=t.replace(/(^|\/)README.md$/i,"$1index.html");return o.endsWith(".md")?o=o.substring(0,o.length-3)+".html":o.endsWith(".html")||(o=o+".html"),o.endsWith("/index.html")?o.substring(0,o.length-10)+r:o+r},Va=e=>e[e.length-1]==="/"?e.slice(0,-1):e,Bs=e=>e[0]==="/"?e.slice(1):e,vp=(e,t)=>{const n=Object.keys(e).sort((r,o)=>{const a=o.split("/").length-r.split("/").length;return a!==0?a:o.length-r.length});for(const r of n)if(t.startsWith(r))return r;return"/"},Wi=(e,t="/")=>{const n=e.replace(/^(https?:)?\/\/[^/]*/,"");return n.startsWith(t)?`/${n.slice(t.length)}`:n},Pe=e=>typeof e=="string";/*! + * vue-router v4.2.5 + * (c) 2023 Eduardo San Martin Morote + * @license MIT + */const gn=typeof window<"u";function gp(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const fe=Object.assign;function Ro(e,t){const n={};for(const r in t){const o=t[r];n[r]=_t(o)?o.map(e):e(o)}return n}const Zn=()=>{},_t=Array.isArray,_p=/\/$/,yp=e=>e.replace(_p,"");function Oo(e,t,n="/"){let r,o={},a="",i="";const l=t.indexOf("#");let c=t.indexOf("?");return l=0&&(c=-1),c>-1&&(r=t.slice(0,c),a=t.slice(c+1,l>-1?l:t.length),o=e(a)),l>-1&&(r=r||t.slice(0,l),i=t.slice(l,t.length)),r=Tp(r??t,n),{fullPath:r+(a&&"?")+a+i,path:r,query:o,hash:i}}function bp(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Gi(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function wp(e,t,n){const r=t.matched.length-1,o=n.matched.length-1;return r>-1&&r===o&&Pn(t.matched[r],n.matched[o])&&Fs(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Pn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Fs(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!Ep(e[n],t[n]))return!1;return!0}function Ep(e,t){return _t(e)?Ki(e,t):_t(t)?Ki(t,e):e===t}function Ki(e,t){return _t(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Tp(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),o=r[r.length-1];(o===".."||o===".")&&r.push("");let a=n.length-1,i,l;for(i=0;i1&&a--;else break;return n.slice(0,a).join("/")+"/"+r.slice(i-(i===r.length?1:0)).join("/")}var cr;(function(e){e.pop="pop",e.push="push"})(cr||(cr={}));var er;(function(e){e.back="back",e.forward="forward",e.unknown=""})(er||(er={}));function Sp(e){if(!e)if(gn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),yp(e)}const Lp=/^[^#]+#/;function Ap(e,t){return e.replace(Lp,"#")+t}function Cp(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const co=()=>({left:window.pageXOffset,top:window.pageYOffset});function kp(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),o=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!o)return;t=Cp(o,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function Yi(e,t){return(history.state?history.state.position-t:-1)+e}const ta=new Map;function Ip(e,t){ta.set(e,t)}function Pp(e){const t=ta.get(e);return ta.delete(e),t}let xp=()=>location.protocol+"//"+location.host;function js(e,t){const{pathname:n,search:r,hash:o}=t,a=e.indexOf("#");if(a>-1){let l=o.includes(e.slice(a))?e.slice(a).length:1,c=o.slice(l);return c[0]!=="/"&&(c="/"+c),Gi(c,"")}return Gi(n,e)+r+o}function Rp(e,t,n,r){let o=[],a=[],i=null;const l=({state:p})=>{const v=js(e,location),_=n.value,T=t.value;let E=0;if(p){if(n.value=v,t.value=p,i&&i===_){i=null;return}E=T?p.position-T.position:0}else r(v);o.forEach(g=>{g(n.value,_,{delta:E,type:cr.pop,direction:E?E>0?er.forward:er.back:er.unknown})})};function c(){i=n.value}function s(p){o.push(p);const v=()=>{const _=o.indexOf(p);_>-1&&o.splice(_,1)};return a.push(v),v}function u(){const{history:p}=window;p.state&&p.replaceState(fe({},p.state,{scroll:co()}),"")}function f(){for(const p of a)p();a=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",u)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",u,{passive:!0}),{pauseListeners:c,listen:s,destroy:f}}function Ji(e,t,n,r=!1,o=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:o?co():null}}function Op(e){const{history:t,location:n}=window,r={value:js(e,n)},o={value:t.state};o.value||a(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(c,s,u){const f=e.indexOf("#"),p=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+c:xp()+e+c;try{t[u?"replaceState":"pushState"](s,"",p),o.value=s}catch(v){console.error(v),n[u?"replace":"assign"](p)}}function i(c,s){const u=fe({},t.state,Ji(o.value.back,c,o.value.forward,!0),s,{position:o.value.position});a(c,u,!0),r.value=c}function l(c,s){const u=fe({},o.value,t.state,{forward:c,scroll:co()});a(u.current,u,!0);const f=fe({},Ji(r.value,c,null),{position:u.position+1},s);a(c,f,!1),r.value=c}return{location:r,state:o,push:l,replace:i}}function Dp(e){e=Sp(e);const t=Op(e),n=Rp(e,t.state,t.location,t.replace);function r(a,i=!0){i||n.pauseListeners(),history.go(a)}const o=fe({location:"",base:e,go:r,createHref:Ap.bind(null,e)},t,n);return Object.defineProperty(o,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(o,"state",{enumerable:!0,get:()=>t.state.value}),o}function Mp(e){return typeof e=="string"||e&&typeof e=="object"}function zs(e){return typeof e=="string"||typeof e=="symbol"}const Pt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},qs=Symbol("");var Xi;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Xi||(Xi={}));function xn(e,t){return fe(new Error,{type:e,[qs]:!0},t)}function kt(e,t){return e instanceof Error&&qs in e&&(t==null||!!(e.type&t))}const Qi="[^/]+?",Np={sensitive:!1,strict:!1,start:!0,end:!0},Vp=/[.+*?^${}()[\]/\\]/g;function $p(e,t){const n=fe({},Np,t),r=[];let o=n.start?"^":"";const a=[];for(const s of e){const u=s.length?[]:[90];n.strict&&!s.length&&(o+="/");for(let f=0;ft.length?t.length===1&&t[0]===80?1:-1:0}function Bp(e,t){let n=0;const r=e.score,o=t.score;for(;n0&&t[t.length-1]<0}const Fp={type:0,value:""},jp=/[a-zA-Z0-9_]/;function zp(e){if(!e)return[[]];if(e==="/")return[[Fp]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(v){throw new Error(`ERR (${n})/"${s}": ${v}`)}let n=0,r=n;const o=[];let a;function i(){a&&o.push(a),a=[]}let l=0,c,s="",u="";function f(){s&&(n===0?a.push({type:0,value:s}):n===1||n===2||n===3?(a.length>1&&(c==="*"||c==="+")&&t(`A repeatable param (${s}) must be alone in its segment. eg: '/:ids+.`),a.push({type:1,value:s,regexp:u,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),s="")}function p(){s+=c}for(;l{i(k)}:Zn}function i(u){if(zs(u)){const f=r.get(u);f&&(r.delete(u),n.splice(n.indexOf(f),1),f.children.forEach(i),f.alias.forEach(i))}else{const f=n.indexOf(u);f>-1&&(n.splice(f,1),u.record.name&&r.delete(u.record.name),u.children.forEach(i),u.alias.forEach(i))}}function l(){return n}function c(u){let f=0;for(;f=0&&(u.record.path!==n[f].record.path||!Us(u,n[f]));)f++;n.splice(f,0,u),u.record.name&&!tl(u)&&r.set(u.record.name,u)}function s(u,f){let p,v={},_,T;if("name"in u&&u.name){if(p=r.get(u.name),!p)throw xn(1,{location:u});T=p.record.name,v=fe(el(f.params,p.keys.filter(k=>!k.optional).map(k=>k.name)),u.params&&el(u.params,p.keys.map(k=>k.name))),_=p.stringify(v)}else if("path"in u)_=u.path,p=n.find(k=>k.re.test(_)),p&&(v=p.parse(_),T=p.record.name);else{if(p=f.name?r.get(f.name):n.find(k=>k.re.test(f.path)),!p)throw xn(1,{location:u,currentLocation:f});T=p.record.name,v=fe({},f.params,u.params),_=p.stringify(v)}const E=[];let g=p;for(;g;)E.unshift(g.record),g=g.parent;return{name:T,path:_,params:v,matched:E,meta:Kp(E)}}return e.forEach(u=>a(u)),{addRoute:a,resolve:s,removeRoute:i,getRoutes:l,getRecordMatcher:o}}function el(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Wp(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:Gp(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function Gp(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function tl(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Kp(e){return e.reduce((t,n)=>fe(t,n.meta),{})}function nl(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function Us(e,t){return t.children.some(n=>n===e||Us(e,n))}const Ws=/#/g,Yp=/&/g,Jp=/\//g,Xp=/=/g,Qp=/\?/g,Gs=/\+/g,Zp=/%5B/g,eh=/%5D/g,Ks=/%5E/g,th=/%60/g,Ys=/%7B/g,nh=/%7C/g,Js=/%7D/g,rh=/%20/g;function $a(e){return encodeURI(""+e).replace(nh,"|").replace(Zp,"[").replace(eh,"]")}function oh(e){return $a(e).replace(Ys,"{").replace(Js,"}").replace(Ks,"^")}function na(e){return $a(e).replace(Gs,"%2B").replace(rh,"+").replace(Ws,"%23").replace(Yp,"%26").replace(th,"`").replace(Ys,"{").replace(Js,"}").replace(Ks,"^")}function ah(e){return na(e).replace(Xp,"%3D")}function ih(e){return $a(e).replace(Ws,"%23").replace(Qp,"%3F")}function lh(e){return e==null?"":ih(e).replace(Jp,"%2F")}function Yr(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function sh(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;oa&&na(a)):[r&&na(r)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+n,a!=null&&(t+="="+a))})}return t}function ch(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=_t(r)?r.map(o=>o==null?null:""+o):r==null?r:""+r)}return t}const uh=Symbol(""),ol=Symbol(""),uo=Symbol(""),Ha=Symbol(""),ra=Symbol("");function jn(){let e=[];function t(r){return e.push(r),()=>{const o=e.indexOf(r);o>-1&&e.splice(o,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Ut(e,t,n,r,o){const a=r&&(r.enterCallbacks[o]=r.enterCallbacks[o]||[]);return()=>new Promise((i,l)=>{const c=f=>{f===!1?l(xn(4,{from:n,to:t})):f instanceof Error?l(f):Mp(f)?l(xn(2,{from:t,to:f})):(a&&r.enterCallbacks[o]===a&&typeof f=="function"&&a.push(f),i())},s=e.call(r&&r.instances[o],t,n,c);let u=Promise.resolve(s);e.length<3&&(u=u.then(c)),u.catch(f=>l(f))})}function Do(e,t,n,r){const o=[];for(const a of e)for(const i in a.components){let l=a.components[i];if(!(t!=="beforeRouteEnter"&&!a.instances[i]))if(dh(l)){const s=(l.__vccOpts||l)[t];s&&o.push(Ut(s,n,r,a,i))}else{let c=l();o.push(()=>c.then(s=>{if(!s)return Promise.reject(new Error(`Couldn't resolve component "${i}" at "${a.path}"`));const u=gp(s)?s.default:s;a.components[i]=u;const p=(u.__vccOpts||u)[t];return p&&Ut(p,n,r,a,i)()}))}}return o}function dh(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function oa(e){const t=oe(uo),n=oe(Ha),r=I(()=>t.resolve(Ce(e.to))),o=I(()=>{const{matched:c}=r.value,{length:s}=c,u=c[s-1],f=n.matched;if(!u||!f.length)return-1;const p=f.findIndex(Pn.bind(null,u));if(p>-1)return p;const v=al(c[s-2]);return s>1&&al(u)===v&&f[f.length-1].path!==v?f.findIndex(Pn.bind(null,c[s-2])):p}),a=I(()=>o.value>-1&&mh(n.params,r.value.params)),i=I(()=>o.value>-1&&o.value===n.matched.length-1&&Fs(n.params,r.value.params));function l(c={}){return hh(c)?t[Ce(e.replace)?"replace":"push"](Ce(e.to)).catch(Zn):Promise.resolve()}return{route:r,href:I(()=>r.value.href),isActive:a,isExactActive:i,navigate:l}}const fh=U({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:oa,setup(e,{slots:t}){const n=at(oa(e)),{options:r}=oe(uo),o=I(()=>({[il(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[il(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const a=t.default&&t.default(n);return e.custom?a:d("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:o.value},a)}}}),ph=fh;function hh(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function mh(e,t){for(const n in t){const r=t[n],o=e[n];if(typeof r=="string"){if(r!==o)return!1}else if(!_t(o)||o.length!==r.length||r.some((a,i)=>a!==o[i]))return!1}return!0}function al(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const il=(e,t,n)=>e??t??n,vh=U({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=oe(ra),o=I(()=>e.route||r.value),a=oe(ol,0),i=I(()=>{let s=Ce(a);const{matched:u}=o.value;let f;for(;(f=u[s])&&!f.components;)s++;return s}),l=I(()=>o.value.matched[i.value]);We(ol,I(()=>i.value+1)),We(uh,l),We(ra,o);const c=j();return ae(()=>[c.value,l.value,e.name],([s,u,f],[p,v,_])=>{u&&(u.instances[f]=s,v&&v!==u&&s&&s===p&&(u.leaveGuards.size||(u.leaveGuards=v.leaveGuards),u.updateGuards.size||(u.updateGuards=v.updateGuards))),s&&u&&(!v||!Pn(u,v)||!p)&&(u.enterCallbacks[f]||[]).forEach(T=>T(s))},{flush:"post"}),()=>{const s=o.value,u=e.name,f=l.value,p=f&&f.components[u];if(!p)return ll(n.default,{Component:p,route:s});const v=f.props[u],_=v?v===!0?s.params:typeof v=="function"?v(s):v:null,E=d(p,fe({},_,t,{onVnodeUnmounted:g=>{g.component.isUnmounted&&(f.instances[u]=null)},ref:c}));return ll(n.default,{Component:E,route:s})||E}}});function ll(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const gh=vh;function _h(e){const t=Up(e.routes,e),n=e.parseQuery||sh,r=e.stringifyQuery||rl,o=e.history,a=jn(),i=jn(),l=jn(),c=Be(Pt);let s=Pt;gn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=Ro.bind(null,P=>""+P),f=Ro.bind(null,lh),p=Ro.bind(null,Yr);function v(P,z){let B,Y;return zs(P)?(B=t.getRecordMatcher(P),Y=z):Y=P,t.addRoute(Y,B)}function _(P){const z=t.getRecordMatcher(P);z&&t.removeRoute(z)}function T(){return t.getRoutes().map(P=>P.record)}function E(P){return!!t.getRecordMatcher(P)}function g(P,z){if(z=fe({},z||c.value),typeof P=="string"){const h=Oo(n,P,z.path),w=t.resolve({path:h.path},z),A=o.createHref(h.fullPath);return fe(h,w,{params:p(w.params),hash:Yr(h.hash),redirectedFrom:void 0,href:A})}let B;if("path"in P)B=fe({},P,{path:Oo(n,P.path,z.path).path});else{const h=fe({},P.params);for(const w in h)h[w]==null&&delete h[w];B=fe({},P,{params:f(h)}),z.params=f(z.params)}const Y=t.resolve(B,z),ie=P.hash||"";Y.params=u(p(Y.params));const de=bp(r,fe({},P,{hash:oh(ie),path:Y.path})),m=o.createHref(de);return fe({fullPath:de,hash:ie,query:r===rl?ch(P.query):P.query||{}},Y,{redirectedFrom:void 0,href:m})}function k(P){return typeof P=="string"?Oo(n,P,c.value.path):fe({},P)}function y(P,z){if(s!==P)return xn(8,{from:z,to:P})}function L(P){return q(P)}function M(P){return L(fe(k(P),{replace:!0}))}function S(P){const z=P.matched[P.matched.length-1];if(z&&z.redirect){const{redirect:B}=z;let Y=typeof B=="function"?B(P):B;return typeof Y=="string"&&(Y=Y.includes("?")||Y.includes("#")?Y=k(Y):{path:Y},Y.params={}),fe({query:P.query,hash:P.hash,params:"path"in Y?{}:P.params},Y)}}function q(P,z){const B=s=g(P),Y=c.value,ie=P.state,de=P.force,m=P.replace===!0,h=S(B);if(h)return q(fe(k(h),{state:typeof h=="object"?fe({},ie,h.state):ie,force:de,replace:m}),z||B);const w=B;w.redirectedFrom=z;let A;return!de&&wp(r,Y,B)&&(A=xn(16,{to:w,from:Y}),qe(Y,Y,!0,!1)),(A?Promise.resolve(A):V(w,Y)).catch(C=>kt(C)?kt(C,2)?C:tt(C):K(C,w,Y)).then(C=>{if(C){if(kt(C,2))return q(fe({replace:m},k(C.to),{state:typeof C.to=="object"?fe({},ie,C.to.state):ie,force:de}),z||w)}else C=N(w,Y,!0,m,ie);return J(w,Y,C),C})}function H(P,z){const B=y(P,z);return B?Promise.reject(B):Promise.resolve()}function R(P){const z=Ye.values().next().value;return z&&typeof z.runWithContext=="function"?z.runWithContext(P):P()}function V(P,z){let B;const[Y,ie,de]=yh(P,z);B=Do(Y.reverse(),"beforeRouteLeave",P,z);for(const h of Y)h.leaveGuards.forEach(w=>{B.push(Ut(w,P,z))});const m=H.bind(null,P,z);return B.push(m),Ae(B).then(()=>{B=[];for(const h of a.list())B.push(Ut(h,P,z));return B.push(m),Ae(B)}).then(()=>{B=Do(ie,"beforeRouteUpdate",P,z);for(const h of ie)h.updateGuards.forEach(w=>{B.push(Ut(w,P,z))});return B.push(m),Ae(B)}).then(()=>{B=[];for(const h of de)if(h.beforeEnter)if(_t(h.beforeEnter))for(const w of h.beforeEnter)B.push(Ut(w,P,z));else B.push(Ut(h.beforeEnter,P,z));return B.push(m),Ae(B)}).then(()=>(P.matched.forEach(h=>h.enterCallbacks={}),B=Do(de,"beforeRouteEnter",P,z),B.push(m),Ae(B))).then(()=>{B=[];for(const h of i.list())B.push(Ut(h,P,z));return B.push(m),Ae(B)}).catch(h=>kt(h,8)?h:Promise.reject(h))}function J(P,z,B){l.list().forEach(Y=>R(()=>Y(P,z,B)))}function N(P,z,B,Y,ie){const de=y(P,z);if(de)return de;const m=z===Pt,h=gn?history.state:{};B&&(Y||m?o.replace(P.fullPath,fe({scroll:m&&h&&h.scroll},ie)):o.push(P.fullPath,ie)),c.value=P,qe(P,z,B,m),tt()}let Q;function me(){Q||(Q=o.listen((P,z,B)=>{if(!Je.listening)return;const Y=g(P),ie=S(Y);if(ie){q(fe(ie,{replace:!0}),Y).catch(Zn);return}s=Y;const de=c.value;gn&&Ip(Yi(de.fullPath,B.delta),co()),V(Y,de).catch(m=>kt(m,12)?m:kt(m,2)?(q(m.to,Y).then(h=>{kt(h,20)&&!B.delta&&B.type===cr.pop&&o.go(-1,!1)}).catch(Zn),Promise.reject()):(B.delta&&o.go(-B.delta,!1),K(m,Y,de))).then(m=>{m=m||N(Y,de,!1),m&&(B.delta&&!kt(m,8)?o.go(-B.delta,!1):B.type===cr.pop&&kt(m,20)&&o.go(-1,!1)),J(Y,de,m)}).catch(Zn)}))}let ge=jn(),G=jn(),ee;function K(P,z,B){tt(P);const Y=G.list();return Y.length?Y.forEach(ie=>ie(P,z,B)):console.error(P),Promise.reject(P)}function Le(){return ee&&c.value!==Pt?Promise.resolve():new Promise((P,z)=>{ge.add([P,z])})}function tt(P){return ee||(ee=!P,me(),ge.list().forEach(([z,B])=>P?B(P):z()),ge.reset()),P}function qe(P,z,B,Y){const{scrollBehavior:ie}=e;if(!gn||!ie)return Promise.resolve();const de=!B&&Pp(Yi(P.fullPath,0))||(Y||!B)&&history.state&&history.state.scroll||null;return Jt().then(()=>ie(P,z,de)).then(m=>m&&kp(m)).catch(m=>K(m,P,z))}const _e=P=>o.go(P);let Ie;const Ye=new Set,Je={currentRoute:c,listening:!0,addRoute:v,removeRoute:_,hasRoute:E,getRoutes:T,resolve:g,options:e,push:L,replace:M,go:_e,back:()=>_e(-1),forward:()=>_e(1),beforeEach:a.add,beforeResolve:i.add,afterEach:l.add,onError:G.add,isReady:Le,install(P){const z=this;P.component("RouterLink",ph),P.component("RouterView",gh),P.config.globalProperties.$router=z,Object.defineProperty(P.config.globalProperties,"$route",{enumerable:!0,get:()=>Ce(c)}),gn&&!Ie&&c.value===Pt&&(Ie=!0,L(o.location).catch(ie=>{}));const B={};for(const ie in Pt)Object.defineProperty(B,ie,{get:()=>c.value[ie],enumerable:!0});P.provide(uo,z),P.provide(Ha,Gl(B)),P.provide(ra,c);const Y=P.unmount;Ye.add(P),P.unmount=function(){Ye.delete(P),Ye.size<1&&(s=Pt,Q&&Q(),Q=null,c.value=Pt,Ie=!1,ee=!1),Y()}}};function Ae(P){return P.reduce((z,B)=>z.then(()=>R(B)),Promise.resolve())}return Je}function yh(e,t){const n=[],r=[],o=[],a=Math.max(t.matched.length,e.matched.length);for(let i=0;iPn(s,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(s=>Pn(s,c))||o.push(c))}return[n,r,o]}function Dt(){return oe(uo)}function yt(){return oe(Ha)}const bh=JSON.parse(`{"base":"/","lang":"en-US","title":"Fast Request","description":"Intellij Restful Fast Request","head":[["script",{},"\\n (function() {\\n if (location.href.indexOf('gitee.io') > -1 || location.href.indexOf('sheng90.wang') > -1 || || location.href.indexOf('api-buddy.cn') > -1) {\\n window.location.href = 'https://api-buddy.com';\\n }\\n })();\\n "],["link",{"rel":"icon","href":"/img/fastRequest.svg"}],["script",{"src":"//at.alicdn.com/t/c/font_2601581_g29rpml51c7.js","async":true}],["script",{"src":"/js/gtag.js","async":true}],["script",{},"\\n window.dataLayer = window.dataLayer || [];\\n function gtag(){dataLayer.push(arguments);}\\n gtag('js', new Date());\\n gtag('config', 'G-Y8G30ZWCYE');\\n "]],"locales":{"/":{"lang":"zh-CN"},"/en/":{"lang":"en-US"}}}`);var wh=Symbol(""),Xs=Symbol(""),be=()=>{const e=oe(Xs);if(!e)throw new Error("pageData() is called without provider.");return e},Qs=Symbol(""),De=()=>{const e=oe(Qs);if(!e)throw new Error("usePageFrontmatter() is called without provider.");return e},Zs=Symbol(""),Eh=()=>{const e=oe(Zs);if(!e)throw new Error("usePageHead() is called without provider.");return e},Th=Symbol(""),ec=Symbol(""),Ba=()=>{const e=oe(ec);if(!e)throw new Error("usePageLang() is called without provider.");return e},tc=Symbol(""),Sh=()=>{const e=oe(tc);if(!e)throw new Error("usePageLayout() is called without provider.");return e},Fa=Symbol(""),Qt=()=>{const e=oe(Fa);if(!e)throw new Error("useRouteLocale() is called without provider.");return e},Lh=Be(lp),ur=Be(sp),nc=e=>{const t=mp(e);if(ur.value[t])return t;const n=encodeURI(t);return ur.value[n]?n:Lh.value[t]||t},fo=e=>{const t=nc(e),n=ur.value[t]??{...ur.value["/404.html"],notFound:!0};return{path:t,notFound:!1,...n}},rc=()=>ur,yn=Be(bh),oc=()=>yn,ac=Symbol(""),po=()=>{const e=oe(ac);if(!e)throw new Error("useSiteLocaleData() is called without provider.");return e},Ah=Symbol(""),ho=U({name:"ClientOnly",setup(e,t){const n=j(!1);return he(()=>{n.value=!0}),()=>{var r,o;return n.value?(o=(r=t.slots).default)==null?void 0:o.call(r):null}}}),ic=U({name:"Content",props:{path:{type:String,required:!1,default:""}},setup(e){const t=be(),n=I(()=>{const r=fo(e.path||t.value.path);return Od(()=>r.loader().then(({comp:o})=>o))});return()=>d(n.value)}}),it=(e={})=>e,He=e=>Xt(e)?e:`/${Bs(e)}`,Ch=e=>{if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget){const t=e.currentTarget.getAttribute("target");if(t!=null&&t.match(/\b_blank\b/i))return}return e.preventDefault(),!0}},Ke=({active:e=!1,activeClass:t="route-link-active",to:n,...r},{slots:o})=>{var l;const a=Dt(),i=He(nc(n));return d("a",{...r,class:["route-link",{[t]:e}],href:i,onClick:(c={})=>{Ch(c)?a.push(n).catch():Promise.resolve()}},(l=o.default)==null?void 0:l.call(o))};Ke.displayName="RouteLink";Ke.props={active:Boolean,activeClass:String,to:String};var kh="Layout",Ih="NotFound",$t=at({resolveLayouts:e=>e.reduce((t,n)=>({...t,...n.layouts}),{}),resolvePageFrontmatter:e=>e.frontmatter,resolvePageHead:(e,t,n)=>{const r=Pe(t.description)?t.description:n.description,o=[...Array.isArray(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:r}]];return fp(o)},resolvePageHeadTitle:(e,t)=>[e.title,t.title].filter(n=>!!n).join(" | "),resolvePageLang:(e,t)=>e.lang||t.lang||"en-US",resolvePageLayout:(e,t)=>{let n;if(e.path){const r=e.frontmatter.layout;Pe(r)?n=r:n=kh}else n=Ih;return t[n]},resolveRouteLocale:(e,t)=>vp(e,t),resolveSiteLocaleData:(e,t)=>{var n;return{...e,...e.locales[t],head:[...((n=e.locales[t])==null?void 0:n.head)??[],...e.head??[]]}}});const Ph={},Vn=e=>{const t=Qt();return I(()=>e[t.value]??{})},xh=()=>{const e=rc();return I(()=>Object.keys(e.value))};var Ge=Uint8Array,bn=Uint16Array,Rh=Int32Array,lc=new Ge([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),sc=new Ge([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Oh=new Ge([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),cc=function(e,t){for(var n=new bn(31),r=0;r<31;++r)n[r]=t+=1<>1|(ye&21845)<<1;Ht=(Ht&52428)>>2|(Ht&13107)<<2,Ht=(Ht&61680)>>4|(Ht&3855)<<4,aa[ye]=((Ht&65280)>>8|(Ht&255)<<8)>>1}var tr=function(e,t,n){for(var r=e.length,o=0,a=new bn(t);o>c]=s}else for(l=new bn(r),o=0;o>15-e[o]);return l},yr=new Ge(288);for(var ye=0;ye<144;++ye)yr[ye]=8;for(var ye=144;ye<256;++ye)yr[ye]=9;for(var ye=256;ye<280;++ye)yr[ye]=7;for(var ye=280;ye<288;++ye)yr[ye]=8;var fc=new Ge(32);for(var ye=0;ye<32;++ye)fc[ye]=5;var Vh=tr(yr,9,1),$h=tr(fc,5,1),Mo=function(e){for(var t=e[0],n=1;nt&&(t=e[n]);return t},mt=function(e,t,n){var r=t/8|0;return(e[r]|e[r+1]<<8)>>(t&7)&n},No=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},Hh=function(e){return(e+7)/8|0},ja=function(e,t,n){return(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new Ge(e.subarray(t,n))},Bh=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],ct=function(e,t,n){var r=new Error(t||Bh[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,ct),!n)throw r;return r},Fh=function(e,t,n,r){var o=e.length,a=r?r.length:0;if(!o||t.f&&!t.l)return n||new Ge(0);var i=!n,l=i||t.i!=2,c=t.i;i&&(n=new Ge(o*3));var s=function(ie){var de=n.length;if(ie>de){var m=new Ge(Math.max(de*2,ie));m.set(n),n=m}},u=t.f||0,f=t.p||0,p=t.b||0,v=t.l,_=t.d,T=t.m,E=t.n,g=o*8;do{if(!v){u=mt(e,f,1);var k=mt(e,f+1,3);if(f+=3,k)if(k==1)v=Vh,_=$h,T=9,E=5;else if(k==2){var S=mt(e,f,31)+257,q=mt(e,f+10,15)+4,H=S+mt(e,f+5,31)+1;f+=14;for(var R=new Ge(H),V=new Ge(19),J=0;J>4;if(y<16)R[J++]=y;else{var G=0,ee=0;for(y==16?(ee=3+mt(e,f,3),f+=2,G=R[J-1]):y==17?(ee=3+mt(e,f,7),f+=3):y==18&&(ee=11+mt(e,f,127),f+=7);ee--;)R[J++]=G}}var K=R.subarray(0,S),Le=R.subarray(S);T=Mo(K),E=Mo(Le),v=tr(K,T,1),_=tr(Le,E,1)}else ct(1);else{var y=Hh(f)+4,L=e[y-4]|e[y-3]<<8,M=y+L;if(M>o){c&&ct(0);break}l&&s(p+L),n.set(e.subarray(y,M),p),t.b=p+=L,t.p=f=M*8,t.f=u;continue}if(f>g){c&&ct(0);break}}l&&s(p+131072);for(var tt=(1<>4;if(f+=G&15,f>g){c&&ct(0);break}if(G||ct(2),Ie<256)n[p++]=Ie;else if(Ie==256){_e=f,v=null;break}else{var Ye=Ie-254;if(Ie>264){var J=Ie-257,Je=lc[J];Ye=mt(e,f,(1<>4;Ae||ct(3),f+=Ae&15;var Le=Nh[P];if(P>3){var Je=sc[P];Le+=No(e,f)&(1<g){c&&ct(0);break}l&&s(p+131072);var z=p+Ye;if(p>4>7||(e[0]<<8|e[1])%31)&&ct(6,"invalid zlib data"),(e[1]>>5&1)==+!t&&ct(6,"invalid zlib data: "+(e[1]&32?"need":"unexpected")+" dictionary"),(e[1]>>3&4)+2};function qh(e,t){return Fh(e.subarray(zh(e,t&&t.dictionary),-4),{i:2},t&&t.out,t&&t.dictionary)}var sl=typeof TextEncoder<"u"&&new TextEncoder,ia=typeof TextDecoder<"u"&&new TextDecoder,Uh=0;try{ia.decode(jh,{stream:!0}),Uh=1}catch{}var Wh=function(e){for(var t="",n=0;;){var r=e[n++],o=(r>127)+(r>223)+(r>239);if(n+o>e.length)return{s:t,r:ja(e,n-1)};o?o==3?(r=((r&15)<<18|(e[n++]&63)<<12|(e[n++]&63)<<6|e[n++]&63)-65536,t+=String.fromCharCode(55296|r>>10,56320|r&1023)):o&1?t+=String.fromCharCode((r&31)<<6|e[n++]&63):t+=String.fromCharCode((r&15)<<12|(e[n++]&63)<<6|e[n++]&63):t+=String.fromCharCode(r)}};function Gh(e,t){if(t){for(var n=new Ge(e.length),r=0;r>1)),i=0,l=function(u){a[i++]=u},r=0;ra.length){var c=new Ge(i+8+(o-r<<1));c.set(a),a=c}var s=e.charCodeAt(r);s<128||t?l(s):s<2048?(l(192|s>>6),l(128|s&63)):s>55295&&s<57344?(s=65536+(s&1047552)|e.charCodeAt(++r)&1023,l(240|s>>18),l(128|s>>12&63),l(128|s>>6&63),l(128|s&63)):(l(224|s>>12),l(128|s>>6&63),l(128|s&63))}return ja(a,0,i)}function Kh(e,t){if(t){for(var n="",r=0;r{const t=atob(e);return Kh(qh(Gh(t,!0)))},Jh=(e,t)=>{var r;const n=(r=(t==null?void 0:t._instance)||Nn())==null?void 0:r.appContext.components;return n?e in n||Ze(e)in n||Dn(Ze(e))in n:!1},Xh=e=>typeof e<"u",Vo=e=>typeof e=="number",la=Array.isArray,fn=(e,t)=>Pe(e)&&e.startsWith(t),Qh=(e,t)=>Pe(e)&&e.endsWith(t),mo=Object.entries,Zh=Object.fromEntries,$n=Object.keys,em=e=>{if(e){if(typeof e=="number")return new Date(e);const t=Date.parse(e.toString());if(!Number.isNaN(t))return new Date(t)}return null},vo=e=>fn(e,"/"),ke=({name:e="",color:t="currentColor"},{slots:n})=>{var r;return d("svg",{xmlns:"http://www.w3.org/2000/svg",class:["icon",`${e}-icon`],viewBox:"0 0 1024 1024",fill:t,"aria-label":`${e} icon`},(r=n.default)==null?void 0:r.call(n))};ke.displayName="IconBase";const za=({size:e=48,stroke:t=4,wrapper:n=!0,height:r=2*e})=>{const o=d("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,preserveAspectRatio:"xMidYMid",viewBox:"25 25 50 50"},[d("animateTransform",{attributeName:"transform",type:"rotate",dur:"2s",keyTimes:"0;1",repeatCount:"indefinite",values:"0;360"}),d("circle",{cx:"50",cy:"50",r:"20",fill:"none",stroke:"currentColor","stroke-width":t,"stroke-linecap":"round"},[d("animate",{attributeName:"stroke-dasharray",dur:"1.5s",keyTimes:"0;0.5;1",repeatCount:"indefinite",values:"1,200;90,200;1,200"}),d("animate",{attributeName:"stroke-dashoffset",dur:"1.5s",keyTimes:"0;0.5;1",repeatCount:"indefinite",values:"0;-35px;-125px"})])]);return n?d("div",{class:"loading-icon-wrapper",style:`display:flex;align-items:center;justify-content:center;height:${r}px`},o):o};za.displayName="LoadingIcon";const pc=(e,{slots:t})=>{var n;return(n=t.default)==null?void 0:n.call(t)},qa=()=>d(ke,{name:"github"},()=>d("path",{d:"M511.957 21.333C241.024 21.333 21.333 240.981 21.333 512c0 216.832 140.544 400.725 335.574 465.664 24.49 4.395 32.256-10.07 32.256-23.083 0-11.69.256-44.245 0-85.205-136.448 29.61-164.736-64.64-164.736-64.64-22.315-56.704-54.4-71.765-54.4-71.765-44.587-30.464 3.285-29.824 3.285-29.824 49.195 3.413 75.179 50.517 75.179 50.517 43.776 75.008 114.816 53.333 142.762 40.79 4.523-31.66 17.152-53.377 31.19-65.537-108.971-12.458-223.488-54.485-223.488-242.602 0-53.547 19.114-97.323 50.517-131.67-5.035-12.33-21.93-62.293 4.779-129.834 0 0 41.258-13.184 134.912 50.346a469.803 469.803 0 0 1 122.88-16.554c41.642.213 83.626 5.632 122.88 16.554 93.653-63.488 134.784-50.346 134.784-50.346 26.752 67.541 9.898 117.504 4.864 129.834 31.402 34.347 50.474 78.123 50.474 131.67 0 188.586-114.73 230.016-224.042 242.09 17.578 15.232 33.578 44.672 33.578 90.454v135.85c0 13.142 7.936 27.606 32.854 22.87C862.25 912.597 1002.667 728.747 1002.667 512c0-271.019-219.648-490.667-490.71-490.667z"}));qa.displayName="GitHubIcon";const Ua=()=>d(ke,{name:"gitlab"},()=>d("path",{d:"M229.333 78.688C223.52 62 199.895 62 193.895 78.688L87.958 406.438h247.5c-.188 0-106.125-327.75-106.125-327.75zM33.77 571.438c-4.875 15 .563 31.687 13.313 41.25l464.812 345L87.77 406.438zm301.5-165 176.813 551.25 176.812-551.25zm655.125 165-54-165-424.312 551.25 464.812-345c12.938-9.563 18.188-26.25 13.5-41.25zM830.27 78.688c-5.812-16.688-29.437-16.688-35.437 0l-106.125 327.75h247.5z"}));Ua.displayName="GitLabIcon";const Wa=()=>d(ke,{name:"gitee"},()=>d("path",{d:"M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm242.97-533.34H482.39a23.7 23.7 0 0 0-23.7 23.7l-.03 59.28c0 13.08 10.59 23.7 23.7 23.7h165.96a23.7 23.7 0 0 1 23.7 23.7v11.85a71.1 71.1 0 0 1-71.1 71.1H375.71a23.7 23.7 0 0 1-23.7-23.7V423.11a71.1 71.1 0 0 1 71.1-71.1h331.8a23.7 23.7 0 0 0 23.7-23.7l.06-59.25a23.73 23.73 0 0 0-23.7-23.73H423.11a177.78 177.78 0 0 0-177.78 177.75v331.83c0 13.08 10.62 23.7 23.7 23.7h349.62a159.99 159.99 0 0 0 159.99-159.99V482.33a23.7 23.7 0 0 0-23.7-23.7z"}));Wa.displayName="GiteeIcon";const Ga=()=>d(ke,{name:"bitbucket"},()=>d("path",{d:"M575.256 490.862c6.29 47.981-52.005 85.723-92.563 61.147-45.714-20.004-45.714-92.562-1.133-113.152 38.29-23.442 93.696 7.424 93.696 52.005zm63.451-11.996c-10.276-81.152-102.29-134.839-177.152-101.156-47.433 21.138-79.433 71.424-77.129 124.562 2.853 69.705 69.157 126.866 138.862 120.576S647.3 548.571 638.708 478.83zm136.558-309.723c-25.161-33.134-67.986-38.839-105.728-45.13-106.862-17.151-216.576-17.7-323.438 1.134-35.438 5.706-75.447 11.996-97.719 43.996 36.572 34.304 88.576 39.424 135.424 45.129 84.553 10.862 171.447 11.447 256 .585 47.433-5.705 99.987-10.276 135.424-45.714zm32.585 591.433c-16.018 55.99-6.839 131.438-66.304 163.986-102.29 56.576-226.304 62.867-338.87 42.862-59.43-10.862-129.135-29.696-161.72-85.723-14.3-54.858-23.442-110.848-32.585-166.84l3.438-9.142 10.276-5.157c170.277 112.567 408.576 112.567 579.438 0 26.844 8.01 6.84 40.558 6.29 60.014zm103.424-549.157c-19.42 125.148-41.728 249.71-63.415 374.272-6.29 36.572-41.728 57.162-71.424 72.558-106.862 53.724-231.424 62.866-348.562 50.286-79.433-8.558-160.585-29.696-225.134-79.433-30.28-23.443-30.28-63.415-35.986-97.134-20.005-117.138-42.862-234.277-57.161-352.585 6.839-51.42 64.585-73.728 107.447-89.71 57.16-21.138 118.272-30.866 178.87-36.571 129.134-12.58 261.157-8.01 386.304 28.562 44.581 13.13 92.563 31.415 122.844 69.705 13.714 17.7 9.143 40.01 6.29 60.014z"}));Ga.displayName="BitbucketIcon";const Ka=()=>d(ke,{name:"source"},()=>d("path",{d:"M601.92 475.2c0 76.428-8.91 83.754-28.512 99.594-14.652 11.88-43.956 14.058-78.012 16.434-18.81 1.386-40.392 2.97-62.172 6.534-18.612 2.97-36.432 9.306-53.064 17.424V299.772c37.818-21.978 63.36-62.766 63.36-109.692 0-69.894-56.826-126.72-126.72-126.72S190.08 120.186 190.08 190.08c0 46.926 25.542 87.714 63.36 109.692v414.216c-37.818 21.978-63.36 62.766-63.36 109.692 0 69.894 56.826 126.72 126.72 126.72s126.72-56.826 126.72-126.72c0-31.086-11.286-59.598-29.7-81.576 13.266-9.504 27.522-17.226 39.996-19.206 16.038-2.574 32.868-3.762 50.688-5.148 48.312-3.366 103.158-7.326 148.896-44.55 61.182-49.698 74.25-103.158 75.24-187.902V475.2h-126.72zM316.8 126.72c34.848 0 63.36 28.512 63.36 63.36s-28.512 63.36-63.36 63.36-63.36-28.512-63.36-63.36 28.512-63.36 63.36-63.36zm0 760.32c-34.848 0-63.36-28.512-63.36-63.36s28.512-63.36 63.36-63.36 63.36 28.512 63.36 63.36-28.512 63.36-63.36 63.36zM823.68 158.4h-95.04V63.36h-126.72v95.04h-95.04v126.72h95.04v95.04h126.72v-95.04h95.04z"}));Ka.displayName="SourceIcon";const ot=(e,t)=>{var r;const n=(r=(t==null?void 0:t._instance)||Nn())==null?void 0:r.appContext.components;return n?e in n||Ze(e)in n||Dn(Ze(e))in n:!1},hc=(e,t)=>{let n=1;for(let r=0;r>6;return n+=n<<3,n^=n>>11,n%t},mc=/#.*$/u,tm=e=>{const t=mc.exec(e);return t?t[0]:""},cl=e=>decodeURI(e).replace(mc,"").replace(/\/index\.html$/iu,"/").replace(/\.html$/iu,"").replace(/(README|index)?\.md$/iu,""),vc=(e,t)=>{if(!Xh(t))return!1;const n=cl(e.path),r=cl(t),o=tm(t);return o?o===e.hash&&(!r||n===r):n===r},nm=e=>Xt(e)?e:`https://github.com/${e}`,Ya=e=>!Xt(e)||/github\.com/.test(e)?"GitHub":/bitbucket\.org/.test(e)?"Bitbucket":/gitlab\.com/.test(e)?"GitLab":/gitee\.com/.test(e)?"Gitee":null;var rm=e=>Object.prototype.toString.call(e)==="[object Object]",dr=e=>typeof e=="string";const gc=Array.isArray,ul=e=>rm(e)&&dr(e.name),dl=(e,t=!1)=>e?gc(e)?e.map(n=>dr(n)?{name:n}:ul(n)?n:null).filter(n=>n!==null):dr(e)?[{name:e}]:ul(e)?[e]:(console.error(`Expect "author" to be \`AuthorInfo[] | AuthorInfo | string[] | string ${t?"":"| false"} | undefined\`, but got`,e),[]):[],_c=(e,t)=>{if(e){if(gc(e)&&e.every(dr))return e;if(dr(e))return[e];console.error(`Expect ${t||"value"} to be \`string[] | string | undefined\`, but got`,e)}return[]},om=e=>_c(e,"category"),am=e=>_c(e,"tag");function go(e,t){let n,r,o;const a=j(!0),i=()=>{a.value=!0,o()};ae(e,i,{flush:"sync"});const l=typeof t=="function"?t:t.get,c=typeof t=="function"?void 0:t.set,s=Zl((u,f)=>(r=u,o=f,{get(){return a.value&&(n=l(),a.value=!1),r(),n},set(p){c==null||c(p)}}));return Object.isExtensible(s)&&(s.trigger=i),s}function Zt(e){return Dl()?(Fu(e),!0):!1}function pt(e){return typeof e=="function"?e():Ce(e)}const br=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const im=Object.prototype.toString,lm=e=>im.call(e)==="[object Object]",Jr=()=>{},fl=sm();function sm(){var e,t;return br&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function yc(e,t){function n(...r){return new Promise((o,a)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(o).catch(a)})}return n}const bc=e=>e();function cm(e,t=!0,n=!0,r=!1){let o=0,a,i=!0,l=Jr,c;const s=()=>{a&&(clearTimeout(a),a=void 0,l(),l=Jr)};return f=>{const p=pt(e),v=Date.now()-o,_=()=>c=f();return s(),p<=0?(o=Date.now(),_()):(v>p&&(n||!i)?(o=Date.now(),_()):t&&(c=new Promise((T,E)=>{l=r?E:T,a=setTimeout(()=>{o=Date.now(),i=!0,T(_()),s()},Math.max(0,p-v))})),!n&&!a&&(a=setTimeout(()=>i=!0,p)),i=!1,c)}}function um(e=bc){const t=j(!0);function n(){t.value=!1}function r(){t.value=!0}const o=(...a)=>{t.value&&e(...a)};return{isActive:Mn(t),pause:n,resume:r,eventFilter:o}}function dm(e){let t;function n(){return t||(t=e()),t}return n.reset=async()=>{const r=t;t=void 0,r&&await r},n}function fm(e){return e||Nn()}function pm(...e){if(e.length!==1)return oo(...e);const t=e[0];return typeof t=="function"?Mn(Zl(()=>({get:t,set:Jr}))):j(t)}function hm(e,t=200,n=!1,r=!0,o=!1){return yc(cm(t,n,r,o),e)}function mm(e,t,n={}){const{eventFilter:r=bc,...o}=n;return ae(e,yc(r,t),o)}function vm(e,t,n={}){const{eventFilter:r,...o}=n,{eventFilter:a,pause:i,resume:l,isActive:c}=um(r);return{stop:mm(e,t,{...o,eventFilter:a}),pause:i,resume:l,isActive:c}}function _o(e,t=!0,n){fm()?he(e,n):t?e():Jt(e)}function gm(e,t,n={}){const{immediate:r=!0}=n,o=j(!1);let a=null;function i(){a&&(clearTimeout(a),a=null)}function l(){o.value=!1,i()}function c(...s){i(),o.value=!0,a=setTimeout(()=>{o.value=!1,a=null,e(...s)},pt(t))}return r&&(o.value=!0,br&&c()),Zt(l),{isPending:Mn(o),start:c,stop:l}}function pl(e=!1,t={}){const{truthyValue:n=!0,falsyValue:r=!1}=t,o=$e(e),a=j(e);function i(l){if(arguments.length)return a.value=l,a.value;{const c=pt(n);return a.value=a.value===c?pt(r):c,a.value}}return o?i:[a,i]}function St(e){var t;const n=pt(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Rt=br?window:void 0,wc=br?window.document:void 0,Ec=br?window.navigator:void 0;function Me(...e){let t,n,r,o;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,o]=e,t=Rt):[t,n,r,o]=e,!t)return Jr;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const a=[],i=()=>{a.forEach(u=>u()),a.length=0},l=(u,f,p,v)=>(u.addEventListener(f,p,v),()=>u.removeEventListener(f,p,v)),c=ae(()=>[St(t),pt(o)],([u,f])=>{if(i(),!u)return;const p=lm(f)?{...f}:f;a.push(...n.flatMap(v=>r.map(_=>l(u,v,_,p))))},{immediate:!0,flush:"post"}),s=()=>{c(),i()};return Zt(s),s}function _m(){const e=j(!1);return Nn()&&he(()=>{e.value=!0}),e}function Hn(e){const t=_m();return I(()=>(t.value,!!e()))}function Tc(e,t={}){const{window:n=Rt}=t,r=Hn(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const a=j(!1),i=s=>{a.value=s.matches},l=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",i):o.removeListener(i))},c=ls(()=>{r.value&&(l(),o=n.matchMedia(pt(e)),"addEventListener"in o?o.addEventListener("change",i):o.addListener(i),a.value=o.matches)});return Zt(()=>{c(),l(),o=void 0}),a}function hl(e,t={}){const{controls:n=!1,navigator:r=Ec}=t,o=Hn(()=>r&&"permissions"in r);let a;const i=typeof e=="string"?{name:e}:e,l=j(),c=()=>{a&&(l.value=a.state)},s=dm(async()=>{if(o.value){if(!a)try{a=await r.permissions.query(i),Me(a,"change",c),c()}catch{l.value="prompt"}return a}});return s(),n?{state:l,isSupported:o,query:s}:l}function ym(e={}){const{navigator:t=Ec,read:n=!1,source:r,copiedDuring:o=1500,legacy:a=!1}=e,i=Hn(()=>t&&"clipboard"in t),l=hl("clipboard-read"),c=hl("clipboard-write"),s=I(()=>i.value||a),u=j(""),f=j(!1),p=gm(()=>f.value=!1,o);function v(){i.value&&l.value!=="denied"?t.clipboard.readText().then(g=>{u.value=g}):u.value=E()}s.value&&n&&Me(["copy","cut"],v);async function _(g=pt(r)){s.value&&g!=null&&(i.value&&c.value!=="denied"?await t.clipboard.writeText(g):T(g),u.value=g,f.value=!0,p.start())}function T(g){const k=document.createElement("textarea");k.value=g??"",k.style.position="absolute",k.style.opacity="0",document.body.appendChild(k),k.select(),document.execCommand("copy"),k.remove()}function E(){var g,k,y;return(y=(k=(g=document==null?void 0:document.getSelection)==null?void 0:g.call(document))==null?void 0:k.toString())!=null?y:""}return{isSupported:s,text:u,copied:f,copy:_}}const Rr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Or="__vueuse_ssr_handlers__",bm=wm();function wm(){return Or in Rr||(Rr[Or]=Rr[Or]||{}),Rr[Or]}function Em(e,t){return bm[e]||t}function Tm(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Sm={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},ml="vueuse-storage";function Ja(e,t,n,r={}){var o;const{flush:a="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:s=!1,shallow:u,window:f=Rt,eventFilter:p,onError:v=R=>{console.error(R)},initOnMounted:_}=r,T=(u?Be:j)(typeof t=="function"?t():t);if(!n)try{n=Em("getDefaultStorage",()=>{var R;return(R=Rt)==null?void 0:R.localStorage})()}catch(R){v(R)}if(!n)return T;const E=pt(t),g=Tm(E),k=(o=r.serializer)!=null?o:Sm[g],{pause:y,resume:L}=vm(T,()=>M(T.value),{flush:a,deep:i,eventFilter:p});return f&&l&&_o(()=>{Me(f,"storage",H),Me(f,ml,q),_&&H()}),_||H(),T;function M(R){try{if(R==null)n.removeItem(e);else{const V=k.write(R),J=n.getItem(e);J!==V&&(n.setItem(e,V),f&&f.dispatchEvent(new CustomEvent(ml,{detail:{key:e,oldValue:J,newValue:V,storageArea:n}})))}}catch(V){v(V)}}function S(R){const V=R?R.newValue:n.getItem(e);if(V==null)return c&&E!=null&&n.setItem(e,k.write(E)),E;if(!R&&s){const J=k.read(V);return typeof s=="function"?s(J,E):g==="object"&&!Array.isArray(J)?{...E,...J}:J}else return typeof V!="string"?V:k.read(V)}function q(R){H(R.detail)}function H(R){if(!(R&&R.storageArea!==n)){if(R&&R.key==null){T.value=E;return}if(!(R&&R.key!==e)){y();try{(R==null?void 0:R.newValue)!==k.write(T.value)&&(T.value=S(R))}catch(V){v(V)}finally{R?Jt(L):L()}}}}}function Lm(e){return Tc("(prefers-color-scheme: dark)",e)}function Am(e,t,n={}){const{window:r=Rt,...o}=n;let a;const i=Hn(()=>r&&"MutationObserver"in r),l=()=>{a&&(a.disconnect(),a=void 0)},c=ae(()=>St(e),f=>{l(),i.value&&r&&f&&(a=new MutationObserver(t),a.observe(f,o))},{immediate:!0}),s=()=>a==null?void 0:a.takeRecords(),u=()=>{l(),c()};return Zt(u),{isSupported:i,stop:u,takeRecords:s}}function Cm(e,t,n={}){const{window:r=Rt,...o}=n;let a;const i=Hn(()=>r&&"ResizeObserver"in r),l=()=>{a&&(a.disconnect(),a=void 0)},c=I(()=>Array.isArray(e)?e.map(f=>St(f)):[St(e)]),s=ae(c,f=>{if(l(),i.value&&r){a=new ResizeObserver(t);for(const p of f)p&&a.observe(p,o)}},{immediate:!0,flush:"post",deep:!0}),u=()=>{l(),s()};return Zt(u),{isSupported:i,stop:u}}function km(e,t={width:0,height:0},n={}){const{window:r=Rt,box:o="content-box"}=n,a=I(()=>{var f,p;return(p=(f=St(e))==null?void 0:f.namespaceURI)==null?void 0:p.includes("svg")}),i=j(t.width),l=j(t.height),{stop:c}=Cm(e,([f])=>{const p=o==="border-box"?f.borderBoxSize:o==="content-box"?f.contentBoxSize:f.devicePixelContentBoxSize;if(r&&a.value){const v=St(e);if(v){const _=r.getComputedStyle(v);i.value=Number.parseFloat(_.width),l.value=Number.parseFloat(_.height)}}else if(p){const v=Array.isArray(p)?p:[p];i.value=v.reduce((_,{inlineSize:T})=>_+T,0),l.value=v.reduce((_,{blockSize:T})=>_+T,0)}else i.value=f.contentRect.width,l.value=f.contentRect.height},n);_o(()=>{const f=St(e);f&&(i.value="offsetWidth"in f?f.offsetWidth:t.width,l.value="offsetHeight"in f?f.offsetHeight:t.height)});const s=ae(()=>St(e),f=>{i.value=f?t.width:0,l.value=f?t.height:0});function u(){c(),s()}return{width:i,height:l,stop:u}}const vl=["fullscreenchange","webkitfullscreenchange","webkitendfullscreen","mozfullscreenchange","MSFullscreenChange"];function Xa(e,t={}){const{document:n=wc,autoExit:r=!1}=t,o=I(()=>{var g;return(g=St(e))!=null?g:n==null?void 0:n.querySelector("html")}),a=j(!1),i=I(()=>["requestFullscreen","webkitRequestFullscreen","webkitEnterFullscreen","webkitEnterFullScreen","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen"].find(g=>n&&g in n||o.value&&g in o.value)),l=I(()=>["exitFullscreen","webkitExitFullscreen","webkitExitFullScreen","webkitCancelFullScreen","mozCancelFullScreen","msExitFullscreen"].find(g=>n&&g in n||o.value&&g in o.value)),c=I(()=>["fullScreen","webkitIsFullScreen","webkitDisplayingFullscreen","mozFullScreen","msFullscreenElement"].find(g=>n&&g in n||o.value&&g in o.value)),s=["fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement"].find(g=>n&&g in n),u=Hn(()=>o.value&&n&&i.value!==void 0&&l.value!==void 0&&c.value!==void 0),f=()=>s?(n==null?void 0:n[s])===o.value:!1,p=()=>{if(c.value){if(n&&n[c.value]!=null)return n[c.value];{const g=o.value;if((g==null?void 0:g[c.value])!=null)return!!g[c.value]}}return!1};async function v(){if(!(!u.value||!a.value)){if(l.value)if((n==null?void 0:n[l.value])!=null)await n[l.value]();else{const g=o.value;(g==null?void 0:g[l.value])!=null&&await g[l.value]()}a.value=!1}}async function _(){if(!u.value||a.value)return;p()&&await v();const g=o.value;i.value&&(g==null?void 0:g[i.value])!=null&&(await g[i.value](),a.value=!0)}async function T(){await(a.value?v():_())}const E=()=>{const g=p();(!g||g&&f())&&(a.value=g)};return Me(n,vl,E,!1),Me(()=>St(o),vl,E,!1),r&&Zt(v),{isSupported:u,isFullscreen:a,enter:_,exit:v,toggle:T}}function $o(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Sc(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const Dr=new WeakMap;function Lc(e,t=!1){const n=j(t);let r=null,o;ae(pm(e),l=>{const c=$o(pt(l));if(c){const s=c;Dr.get(s)||Dr.set(s,o),n.value&&(s.style.overflow="hidden")}},{immediate:!0});const a=()=>{const l=$o(pt(e));!l||n.value||(fl&&(r=Me(l,"touchmove",c=>{Im(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},i=()=>{var l;const c=$o(pt(e));!c||!n.value||(fl&&(r==null||r()),c.style.overflow=(l=Dr.get(c))!=null?l:"",Dr.delete(c),n.value=!1)};return Zt(i),I({get(){return n.value},set(l){l?a():i()}})}let Pm=0;function xm(e,t={}){const n=j(!1),{document:r=wc,immediate:o=!0,manual:a=!1,id:i=`vueuse_styletag_${++Pm}`}=t,l=j(e);let c=()=>{};const s=()=>{if(!r)return;const f=r.getElementById(i)||r.createElement("style");f.isConnected||(f.id=i,t.media&&(f.media=t.media),r.head.appendChild(f)),!n.value&&(c=ae(l,p=>{f.textContent=p},{immediate:!0}),n.value=!0)},u=()=>{!r||!n.value||(c(),r.head.removeChild(r.getElementById(i)),n.value=!1)};return o&&!a&&_o(s),a||Zt(u),{id:i,css:l,unload:u,load:s,isLoaded:Mn(n)}}function Rm(e={}){const{window:t=Rt,behavior:n="auto"}=e;if(!t)return{x:j(0),y:j(0)};const r=j(t.scrollX),o=j(t.scrollY),a=I({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),i=I({get(){return o.value},set(l){scrollTo({top:l,behavior:n})}});return Me(t,"scroll",()=>{r.value=t.scrollX,o.value=t.scrollY},{capture:!1,passive:!0}),{x:a,y:i}}function Om(e={}){const{window:t=Rt,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:o=!0,includeScrollbar:a=!0}=e,i=j(n),l=j(r),c=()=>{t&&(a?(i.value=t.innerWidth,l.value=t.innerHeight):(i.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(c(),_o(c),Me("resize",c,{passive:!0}),o){const s=Tc("(orientation: portrait)");ae(s,()=>c())}return{width:i,height:l}}var Dm=U({name:"FontIcon",props:{icon:{type:String,default:""},color:{type:String,default:""},size:{type:[String,Number],default:""}},setup(e){const t=I(()=>{const r=["font-icon icon"],o=`iconfont icon-${e.icon}`;return r.push(o),r}),n=I(()=>{const r={};return e.color&&(r.color=e.color),e.size&&(r["font-size"]=Number.isNaN(Number(e.size))?e.size:`${e.size}px`),$n(r).length?r:null});return()=>e.icon?d("span",{key:e.icon,class:t.value,style:n.value}):null}});const Ac=({type:e="info",text:t="",vertical:n,color:r},{slots:o})=>{var a;return d("span",{class:["vp-badge",e,{diy:r}],style:{verticalAlign:n??!1,backgroundColor:r??!1}},((a=o.default)==null?void 0:a.call(o))||t)};Ac.displayName="Badge";const Mm="accelerometer; autoplay; clipboard-write; encrypted-media; fullscreen; gyroscope; picture-in-picture",gl=e=>Pe(e)?e:`${e}px`,Nm=(e,t=0)=>{const n=Be(),r=I(()=>gl(Ce(e.width)||"100%")),o=j("auto"),a=c=>{if(Pe(c)){const[s,u]=c.split(":"),f=Number(s)/Number(u);if(!Number.isNaN(f))return f}return typeof c=="number"?c:16/9},i=c=>{const s=Ce(e.height),u=a(Ce(e.ratio));return s?gl(s):`${Number(c)/u+Ce(t)}px`},l=()=>{n.value&&(o.value=i(n.value.clientWidth))};return he(()=>{l(),$e(t)&&ae(t,l),Me("orientationchange",l),Me("resize",l)}),{el:n,width:r,height:o,resize:l}},_l="https://player.bilibili.com/player.html";var Vm=U({name:"BiliBili",props:{bvid:{type:String,default:""},aid:{type:String,default:""},cid:{type:String,default:""},title:{type:String,default:"A BiliBili video"},page:{type:[String,Number],default:1},width:{type:[String,Number],default:"100%"},height:{type:[String,Number],default:void 0},ratio:{type:[String,Number],default:16/9},time:{type:[String,Number],default:0},autoplay:Boolean},setup(e){const{el:t,width:n,height:r,resize:o}=Nm(e),a=j(!1),i=I(()=>{const{aid:l,bvid:c,cid:s,autoplay:u,time:f,page:p}=e;return l&&s?`${_l}?aid=${l}&cid=${s}&t=${f}&autoplay=${u?1:0}&p=${p}`:c?`${_l}?bvid=${c}&t=${f}&autoplay=${u?1:0}`:null});return()=>i.value?[d("div",{class:"bilibili-desc"},d("a",{class:"sr-only",href:i.value},e.title)),d("iframe",{ref:t,src:i.value,title:e.title,class:"bilibili-iframe",allow:Mm,style:{width:n.value,height:a.value?r.value:0},onLoad:()=>{a.value=!0,o()}}),a.value?null:d(za)]:[]}}),$m={"/en/":{source:"Source"},"/":{source:"源代码"}},Hm=U({name:"SiteInfo",components:{BitbucketIcon:Ga,GiteeIcon:Wa,GitHubIcon:qa,GitLabIcon:Ua,SourceIcon:Ka},props:{name:{type:String,required:!0},desc:{type:String,default:""},logo:{type:String,default:""},url:{type:String,required:!0},preview:{type:String,required:!0},repo:{type:String,default:""}},setup(e){const t=Vn($m),n=I(()=>e.repo?Ya(e.repo):null);return()=>d("div",{class:"vp-site-info","data-name":e.name},[d("a",{class:"vp-site-info-navigator",title:e.name,href:e.url,target:"_blank"}),d("div",{class:"vp-site-info-preview",style:{background:`url(${He(e.preview)}) center/cover no-repeat`}}),d("div",{class:"vp-site-info-detail"},[e.logo?d("img",{class:"vp-site-info-logo",src:e.logo,alt:"",loading:"lazy","no-view":""}):null,d("div",{class:"vp-site-info-name"},e.name),d("div",{class:"vp-site-info-desc"},e.desc)]),e.repo?d("div",{class:"vp-site-info-source-wrapper"},d("a",{class:"vp-site-info-source",href:e.repo,"aria-label":t.value.source,"data-balloon-pos":"left",title:t.value.source,target:"_blank"},d(Lt(`${n.value}Icon`)))):null])}});const Cc=({title:e,desc:t="",logo:n,background:r,color:o,link:a})=>{const i=[n?d("img",{class:"vp-card-logo",src:He(n),loading:"lazy","no-view":""}):null,d("div",{class:"vp-card-content"},[d("div",{class:"vp-card-title",innerHTML:e}),d("hr"),d("div",{class:"vp-card-desc",innerHTML:t})])],l={};return r&&(l.background=r),o&&(l.color=o),a?dn(a)?d("a",{class:"vp-card",href:a,target:"_blank",style:l},i):d(Ke,{to:a,class:"vp-card",style:l},()=>i):d("div",{class:"vp-card",style:l},i)};Cc.displayName="VPCard";const kc=({title:e,content:t="",logo:n="",background:r="",color:o="",actions:a=[]})=>{const i={};return r&&(i.background=r),o&&(i.color=o),d("div",{class:"vp-banner",style:i},[n?d("img",{class:"vp-banner-logo",src:He(n),loading:"lazy","no-view":""}):null,d("div",{class:"vp-banner-body"},[d("div",{class:"vp-banner-title",innerHTML:e}),d("p",{class:"vp-banner-content",innerHTML:t}),d("div",{class:"vp-banner-actions"},[...a.map(({link:l,text:c,type:s="primary"})=>dn(l)?d("a",{class:["vp-banner-action",s],href:l,target:"_blank"},c):d(Ke,{class:["vp-banner-action",s],to:l},()=>c))])])])};kc.displayName="VPBanner";var Bm=U({name:"VidStack",props:{sources:{type:Array,default:()=>[]},tracks:{type:Array,default:()=>[]}},setup(e,{attrs:t}){return he(async()=>{await Promise.all([b(()=>import("./vidstack-player-FSWKbTeV.js"),__vite__mapDeps([209,210,211])),b(()=>import("./vidstack-player-layouts-LcQTAVd6.js"),__vite__mapDeps([212,210,213])),b(()=>import("./vidstack-player-ui-p9274UQD.js"),__vite__mapDeps([214,210,211,213]))])}),()=>d("media-player",t,[d("media-provider",[t.poster?d("media-poster",{class:"vds-poster",alt:t.alt||t.title}):null,e.sources.map(n=>_r(n)?d("source",n):d("source",{src:n})),e.tracks.map(n=>d("track",n))]),d("media-audio-layout"),d("media-video-layout",t)])}});const Ic=()=>d(ke,{name:"close"},()=>d("path",{d:"m925.468 822.294-303.27-310.288L925.51 201.674c34.683-27.842 38.3-75.802 8.122-107.217-30.135-31.37-82.733-34.259-117.408-6.463L512.001 399.257 207.777 87.993C173.1 60.197 120.504 63.087 90.369 94.456c-30.179 31.415-26.561 79.376 8.122 107.217L401.8 512.005l-303.27 310.29c-34.724 27.82-38.34 75.846-8.117 107.194 30.135 31.437 82.729 34.327 117.408 6.486L512 624.756l304.177 311.22c34.68 27.84 87.272 24.95 117.408-6.487 30.223-31.348 26.56-79.375-8.118-107.195z"}));Ic.displayName="CloseIcon";var Fm=U({name:"NoticeItem",props:{path:{type:String,default:""},match:{type:String,default:""},title:{type:String,required:!0},content:{type:String,required:!0},actions:{type:Array,default:()=>[]},noticeKey:{type:String,default:""},showOnce:Boolean,confirm:Boolean,fullscreen:Boolean},setup(e){const t=yt(),n=Dt(),r=j(!1),o=I(()=>e.noticeKey?`notice-${e.noticeKey}`:`${e.title}${e.content}`),a=I(()=>e.match?new RegExp(e.match).test(t.path):fn(t.path,e.path));he(()=>{const c=(e.showOnce?localStorage:sessionStorage).getItem(o.value);r.value=!c});const i=()=>{r.value=!1,(e.showOnce?localStorage:sessionStorage).setItem(o.value,"true")},l=c=>{c&&(vo(c)?n.push(c):Xt(c)&&window.open(c)),i()};return()=>d(Vs,{name:"notice-fade"},()=>a.value&&r.value?[e.fullscreen?d("div",{key:"mask",class:"vp-notice-mask",onClick:()=>{e.confirm||i()}}):null,d("div",{key:"popup",class:["vp-notice-wrapper",{fullscreen:e.fullscreen}]},[d("header",{class:"vp-notice-title"},[e.confirm?null:d(Ic,{onClick:()=>i()}),d("span",{innerHTML:e.title})]),d("div",{class:"vp-notice-content",innerHTML:e.content}),d("div",{class:"vp-notice-footer"},e.actions.map(({text:c,link:s,type:u=""})=>d("button",{type:"button",class:["vp-notice-footer-action",u],onClick:()=>l(s),innerHTML:c})))])]:[])}});const sa=({config:e})=>{const t=be(),n=e.find(r=>"match"in r?new RegExp(r.match).test(t.value.path):fn(t.value.path,r.path));return n?d(Fm,n):null};sa.displayName="Notice",sa.props={config:{type:Array,required:!0}};const jm=it({enhance:({app:e})=>{ot("FontIcon")||e.component("FontIcon",Dm),ot("Badge")||e.component("Badge",Ac),ot("BiliBili")||e.component("BiliBili",Vm),ot("SiteInfo")||e.component("SiteInfo",Hm),ot("VPCard")||e.component("VPCard",Cc),ot("VPBanner")||e.component("VPBanner",kc),ot("VidStack")||e.component("VidStack",Bm)},setup:()=>{xm(`@import url("//at.alicdn.com/t/c/font_2601581_g29rpml51c7.css"); +`)},rootComponents:[()=>d(sa,{config:[{noticeKey:"2024.1.6",path:"/en",title:"Coming in 2024.1.6",content:'
  • Multi tab support
',actions:[{text:"Learn more→",link:"/en/guide/history.html#_2024-1-3",type:"primary"}],showOnce:!0},{noticeKey:"2024.1.6",path:"/",title:"将在2024.1.6推出",content:'
  • 多 Tab 支持
',actions:[{text:"了解详情→",link:"/guide/history.html#_2024-1-6",type:"primary"}],showOnce:!0}]})]});function Pc(e,t,n){var r,o,a;t===void 0&&(t=50),n===void 0&&(n={});var i=(r=n.isImmediate)!=null&&r,l=(o=n.callback)!=null&&o,c=n.maxWait,s=Date.now(),u=[];function f(){if(c!==void 0){var v=Date.now()-s;if(v+t>=c)return c-v}return t}var p=function(){var v=[].slice.call(arguments),_=this;return new Promise(function(T,E){var g=i&&a===void 0;if(a!==void 0&&clearTimeout(a),a=setTimeout(function(){if(a=void 0,s=Date.now(),!i){var y=e.apply(_,v);l&&l(y),u.forEach(function(L){return(0,L.resolve)(y)}),u=[]}},f()),g){var k=e.apply(_,v);return l&&l(k),T(k)}u.push({resolve:T,reject:E})})};return p.cancel=function(v){a!==void 0&&clearTimeout(a),u.forEach(function(_){return(0,_.reject)(v)}),u=[]},p}const zm=({headerLinkSelector:e,headerAnchorSelector:t,delay:n,offset:r=5})=>{const o=Dt(),i=Pc(()=>{var T,E;const l=Math.max(window.scrollY,document.documentElement.scrollTop,document.body.scrollTop);if(Math.abs(l-0)p.some(k=>k.hash===g.hash));for(let g=0;g<_.length;g++){const k=_[g],y=_[g+1],L=l>=(((T=k.parentElement)==null?void 0:T.offsetTop)??0)-r,M=!y||l<(((E=y.parentElement)==null?void 0:E.offsetTop)??0)-r;if(!(L&&M))continue;const q=decodeURIComponent(o.currentRoute.value.hash),H=decodeURIComponent(k.hash);if(q===H)return;if(f){for(let R=g+1;R<_.length;R++)if(q===decodeURIComponent(_[R].hash))return}yl(o,H);return}},n);he(()=>{window.addEventListener("scroll",i)}),Ra(()=>{window.removeEventListener("scroll",i)})},yl=async(e,t)=>{const{scrollBehavior:n}=e.options;e.options.scrollBehavior=void 0,await e.replace({path:e.currentRoute.value.path,query:e.currentRoute.value.query,hash:t}).finally(()=>e.options.scrollBehavior=n)},qm=".vp-sidebar-link, .toc-link",Um=".header-anchor",Wm=200,Gm=5,Km=it({setup(){zm({headerLinkSelector:qm,headerAnchorSelector:Um,delay:Wm,offset:Gm})}});let xc=e=>Pe(e.title)?{title:e.title}:null;const Rc=Symbol(""),Ym=e=>{xc=e},Jm=()=>oe(Rc),Xm=e=>{e.provide(Rc,xc)};var Qm={"/en/":{title:"Catalog",empty:"No catalog"},"/":{title:"目录",empty:"暂无目录"}};const Zm=U({name:"Catalog",props:{base:{type:String,default:""},level:{type:Number,default:3},index:Boolean,hideHeading:Boolean},setup(e){const t=Jm(),n=Vn(Qm),r=be(),o=rc(),a=oc(),l=Be(mo(o.value).map(([s,{meta:u}])=>{const f=t(u);if(!f)return null;const p=s.split("/").length;return{level:Qh(s,"/")?p-2:p-1,base:s.replace(/\/[^/]+\/?$/,"/"),path:s,...f}}).filter(s=>_r(s)&&Pe(s.title))),c=I(()=>{const s=e.base?pp($s(e.base)):r.value.path.replace(/\/[^/]+$/,"/"),u=s.split("/").length-2,f=[];return l.value.filter(({level:p,path:v})=>{if(!fn(v,s)||v===s)return!1;if(s==="/"){const _=$n(a.value.locales).filter(T=>T!=="/");if(v==="/404.html"||_.some(T=>fn(v,T)))return!1}return p-u<=e.level}).sort(({title:p,level:v,order:_},{title:T,level:E,order:g})=>{const k=v-E;return k||(Vo(_)?Vo(g)?_>0?g>0?_-g:-1:g<0?_-g:1:_:Vo(g)?g:p.localeCompare(T))}).forEach(p=>{var T;const{base:v,level:_}=p;switch(_-u){case 1:{f.push(p);break}case 2:{const E=f.find(g=>g.path===v);E&&(E.children??(E.children=[])).push(p);break}default:{const E=f.find(g=>g.path===v.replace(/\/[^/]+\/$/,"/"));if(E){const g=(T=E.children)==null?void 0:T.find(k=>k.path===v);g&&(g.children??(g.children=[])).push(p)}}}}),f});return()=>{const s=c.value.some(u=>u.children);return d("div",{class:["vp-catalog-wrapper",{index:e.index}]},[e.hideHeading?null:d("h2",{class:"vp-catalog-main-title"},n.value.title),c.value.length?d(e.index?"ol":"ul",{class:["vp-catalogs",{deep:s}]},c.value.map(({children:u=[],title:f,path:p,content:v})=>{const _=d(Ke,{class:"vp-catalog-title",to:p},()=>v?d(v):f);return d("li",{class:"vp-catalog"},s?[d("h3",{id:f,class:["vp-catalog-child-title",{"has-children":u.length}]},[d("a",{href:`#${f}`,class:"vp-catalog-header-anchor","aria-hidden":!0},"#"),_]),u.length?d(e.index?"ol":"ul",{class:"vp-child-catalogs"},u.map(({children:T=[],content:E,path:g,title:k})=>d("li",{class:"vp-child-catalog"},[d("div",{class:["vp-catalog-sub-title",{"has-children":T.length}]},[d("a",{href:`#${k}`,class:"vp-catalog-header-anchor"},"#"),d(Ke,{class:"vp-catalog-title",to:g},()=>E?d(E):k)]),T.length?d(e.index?"ol":"div",{class:e.index?"vp-sub-catalogs":"vp-sub-catalogs-wrapper"},T.map(({content:y,path:L,title:M})=>e.index?d("li",{class:"vp-sub-catalog"},d(Ke,{to:L},()=>y?d(y):M)):d(Ke,{class:"vp-sub-catalog-link",to:L},()=>y?d(y):M))):null]))):null]:d("div",{class:"vp-catalog-child-title"},_))})):d("p",{class:"vp-empty-catalog"},n.value.empty)])}}}),ev=it({enhance:({app:e})=>{Xm(e),Jh("Catalog",e)||e.component("Catalog",Zm)}});var tv={"/en/":{backToTop:"Back to top"},"/":{backToTop:"返回顶部"}};const nv=U({name:"BackToTop",setup(e){const t=De(),n=Vn(tv),r=Be(),{height:o}=km(r),{height:a}=Om(),{y:i}=Rm(),l=I(()=>t.value.backToTop!==!1&&i.value>100),c=I(()=>i.value/(o.value-a.value)*100);return he(()=>{r.value=document.body}),()=>d(Yt,{name:"back-to-top"},()=>l.value?d("button",{type:"button",class:"vp-back-to-top-button","aria-label":n.value.backToTop,onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},[d("span",{class:"vp-scroll-progress",role:"progressbar","aria-labelledby":"loadinglabel","aria-valuenow":c.value},d("svg",d("circle",{cx:"50%",cy:"50%",style:{"stroke-dasharray":`calc(${Math.PI*c.value}% - ${4*Math.PI}px) calc(${Math.PI*100}% - ${4*Math.PI}px)`}}))),d("div",{class:"back-to-top-icon"})]):null)}}),rv=it({rootComponents:[nv]}),ov=d("svg",{class:"external-link-icon",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"},[d("path",{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}),d("polygon",{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"})]),Oc=U({name:"ExternalLinkIcon",props:{locales:{type:Object,required:!1,default:()=>({})}},setup(e){const t=Qt(),n=I(()=>e.locales[t.value]??{openInNewWindow:"open in new window"});return()=>d("span",[ov,d("span",{class:"external-link-icon-sr-only"},n.value.openInNewWindow)])}});var av={};const iv=av,lv=it({enhance({app:e}){e.component("ExternalLinkIcon",d(Oc,{locales:iv}))}});/** + * NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT + */const ce={settings:{minimum:.08,easing:"ease",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,barSelector:'[role="bar"]',parent:"body",template:'
'},status:null,set:e=>{const t=ce.isStarted();e=Ho(e,ce.settings.minimum,1),ce.status=e===1?null:e;const n=ce.render(!t),r=n.querySelector(ce.settings.barSelector),o=ce.settings.speed,a=ce.settings.easing;return n.offsetWidth,sv(i=>{Mr(r,{transform:"translate3d("+bl(e)+"%,0,0)",transition:"all "+o+"ms "+a}),e===1?(Mr(n,{transition:"none",opacity:"1"}),n.offsetWidth,setTimeout(function(){Mr(n,{transition:"all "+o+"ms linear",opacity:"0"}),setTimeout(function(){ce.remove(),i()},o)},o)):setTimeout(()=>i(),o)}),ce},isStarted:()=>typeof ce.status=="number",start:()=>{ce.status||ce.set(0);const e=()=>{setTimeout(()=>{ce.status&&(ce.trickle(),e())},ce.settings.trickleSpeed)};return ce.settings.trickle&&e(),ce},done:e=>!e&&!ce.status?ce:ce.inc(.3+.5*Math.random()).set(1),inc:e=>{let t=ce.status;return t?(typeof e!="number"&&(e=(1-t)*Ho(Math.random()*t,.1,.95)),t=Ho(t+e,0,.994),ce.set(t)):ce.start()},trickle:()=>ce.inc(Math.random()*ce.settings.trickleRate),render:e=>{if(ce.isRendered())return document.getElementById("nprogress");wl(document.documentElement,"nprogress-busy");const t=document.createElement("div");t.id="nprogress",t.innerHTML=ce.settings.template;const n=t.querySelector(ce.settings.barSelector),r=e?"-100":bl(ce.status||0),o=document.querySelector(ce.settings.parent);return Mr(n,{transition:"all 0 linear",transform:"translate3d("+r+"%,0,0)"}),o!==document.body&&wl(o,"nprogress-custom-parent"),o==null||o.appendChild(t),t},remove:()=>{El(document.documentElement,"nprogress-busy"),El(document.querySelector(ce.settings.parent),"nprogress-custom-parent");const e=document.getElementById("nprogress");e&&cv(e)},isRendered:()=>!!document.getElementById("nprogress")},Ho=(e,t,n)=>en?n:e,bl=e=>(-1+e)*100,sv=function(){const e=[];function t(){const n=e.shift();n&&n(t)}return function(n){e.push(n),e.length===1&&t()}}(),Mr=function(){const e=["Webkit","O","Moz","ms"],t={};function n(i){return i.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(l,c){return c.toUpperCase()})}function r(i){const l=document.body.style;if(i in l)return i;let c=e.length;const s=i.charAt(0).toUpperCase()+i.slice(1);let u;for(;c--;)if(u=e[c]+s,u in l)return u;return i}function o(i){return i=n(i),t[i]??(t[i]=r(i))}function a(i,l,c){l=o(l),i.style[l]=c}return function(i,l){for(const c in l){const s=l[c];s!==void 0&&Object.prototype.hasOwnProperty.call(l,c)&&a(i,c,s)}}}(),Dc=(e,t)=>(typeof e=="string"?e:Qa(e)).indexOf(" "+t+" ")>=0,wl=(e,t)=>{const n=Qa(e),r=n+t;Dc(n,t)||(e.className=r.substring(1))},El=(e,t)=>{const n=Qa(e);if(!Dc(e,t))return;const r=n.replace(" "+t+" "," ");e.className=r.substring(1,r.length-1)},Qa=e=>(" "+(e.className||"")+" ").replace(/\s+/gi," "),cv=e=>{e&&e.parentNode&&e.parentNode.removeChild(e)},uv=()=>{he(()=>{const e=Dt(),t=new Set;t.add(e.currentRoute.value.path),e.beforeEach(n=>{t.has(n.path)||ce.start()}),e.afterEach(n=>{t.add(n.path),ce.done()})})},dv=it({setup(){uv()}}),fv=JSON.parse(`{"encrypt":{},"logo":"/img/fastRequest.svg","repo":"https://github.com/dromara/fast-request","docsDir":"docs","docsBranch":"master","copyright":"Copyright © 2021-present Kings","displayFooter":true,"pageInfo":false,"fullscreen":true,"editLink":false,"contributors":false,"darkmode":"enable","locales":{"/en/":{"lang":"en-US","navbarLocales":{"langName":"English","selectLangAriaLabel":"Select language"},"metaLocales":{"author":"Author","date":"Writing Date","origin":"Original","views":"Page views","category":"Category","tag":"Tag","readingTime":"Reading Time","words":"Words","toc":"On This Page","prev":"Prev","next":"Next","lastUpdated":"Last update","contributors":"Contributors","editLink":"Edit this page","print":"Print"},"outlookLocales":{"themeColor":"Theme Color","darkmode":"Theme Mode","fullscreen":"Full Screen"},"routeLocales":{"skipToContent":"Skip to main content","notFoundTitle":"Page not found","notFoundMsg":["There’s nothing here.","How did we get here?","That’s a Four-Oh-Four.","Looks like we've got some broken links."],"back":"Go back","home":"Take me home","openInNewWindow":"Open in new window"},"navbar":[{"text":"Get start","link":"/en/guide/getstarted/start","icon":"start1"},{"text":"Features","link":"/en/guide/features/README.md","icon":"featuresNew"},{"text":"What's New","link":"/en/guide/history","icon":"changelog"},{"text":"Script","link":"/en/guide/script","icon":"code-box-fill"},{"text":"Buy","icon":"buy","children":["/en/guide/buy","/en/guide/versionCompare"]},{"text":"🔥 Teamwork","link":"/en/guide/teamwork"},{"text":"Contact us","icon":"team","link":"/en/guide/concatGroup"},{"text":"🎯 Faq","link":"/en/guide/faq"}],"sidebar":{"/en/":false,"/en/guide/":["introduce",{"text":"Getting started","icon":"leibie","prefix":"getstarted/","collapsible":true,"children":["start","projectEnv","dataMapping","stringGenerationStrategy","icon","otherConfig","shortcut"]},"install",{"text":"Features","icon":"featuresNew","prefix":"features/","link":"features/README.md","collapsible":true,"children":["makeIconMove","projectLevelDomainConfig","projectValueConfig","searchEveryWhere","apiGroup","debugApi","downloadApi","stopRequest","navigateCurrentMethod","saveRequest","tempRequest","apifox","postmanSync","regenerate","curlImport","copyCurl","copyUrl","apiDocSync","historyRequest","settingManager","fullScreen","annualReport","docAndContact","htmlPreview","swaggerDefaultValueParse","autoDescription","apiList","apiToPostman","apiImportExport","batchExportApiDoc","apiNavigateTree","apiPreview","apiCommentPreview","script","function","quickAddHeader","autoDomain","ai","headerGroup","bulkEdit","customToolbar","jsonGrammarCheck"]},"script","features/environment","history","teamwork","buy","versionCompare","concatGroup","faq","priceAdjust","eula","whatsnew","feature"]},"footer":"Theme by vuepress-theme-hope"},"/":{"lang":"zh-CN","navbarLocales":{"langName":"简体中文","selectLangAriaLabel":"选择语言"},"metaLocales":{"author":"作者","date":"写作日期","origin":"原创","views":"访问量","category":"分类","tag":"标签","readingTime":"阅读时间","words":"字数","toc":"此页内容","prev":"上一页","next":"下一页","lastUpdated":"上次编辑于","contributors":"贡献者","editLink":"编辑此页","print":"打印"},"outlookLocales":{"themeColor":"主题色","darkmode":"外观","fullscreen":"全屏"},"routeLocales":{"skipToContent":"跳至主要內容","notFoundTitle":"页面不存在","notFoundMsg":["这里什么也没有","我们是怎么来到这儿的?","这 是 四 零 四 !","看起来你访问了一个失效的链接"],"back":"返回上一页","home":"带我回家","openInNewWindow":"Open in new window"},"footer":"主题使用 vuepress-theme-hope","navbar":[{"text":"快速上手","link":"/guide/getstarted/start","icon":"start1"},{"text":"功能","link":"/guide/features/README.md","icon":"featuresNew"},{"text":"最新变化","link":"/guide/history","icon":"changelog"},{"text":"脚本","link":"/guide/script","icon":"code-box-fill"},{"text":"购买","icon":"buy","children":["/guide/buy","/guide/versionCompare"]},{"text":"视频教程","link":"/guide/teachingVideo","icon":"bilibili"},{"text":"🔥 团队协作","link":"/guide/teamwork"},{"text":"群聊","icon":"team","link":"/guide/concatGroup"},{"text":"🎯 FAQ","link":"/guide/faq"},{"text":"更多","children":["/guide/link","/guide/sponsorList","/guide/activity","/guide/java"]}],"sidebar":{"/en/":false,"/guide/":["introduce",{"text":"快速上手","icon":"leibie","prefix":"getstarted/","collapsible":true,"children":["start","projectEnv","dataMapping","stringGenerationStrategy","icon","otherConfig","shortcut"]},"install",{"text":"功能","icon":"featuresNew","prefix":"features/","collapsible":true,"link":"/guide/features/README.md","children":["makeIconMove","projectLevelDomainConfig","projectValueConfig","searchEveryWhere","apiGroup","debugApi","downloadApi","stopRequest","navigateCurrentMethod","saveRequest","tempRequest","apifox","postmanSync","regenerate","curlImport","copyCurl","copyUrl","apiDocSync","historyRequest","settingManager","fullScreen","annualReport","docAndContact","htmlPreview","swaggerDefaultValueParse","autoDescription","apiList","apiToPostman","apiImportExport","batchExportApiDoc","apiNavigateTree","apiPreview","apiCommentPreview","script","function","quickAddHeader","autoDomain","ai","headerGroup","bulkEdit","customToolbar","jsonGrammarCheck"]},"script","features/environment","history","teamwork","buy","versionCompare","concatGroup","teachingVideo","faq","eula","priceAdjust","sponsorList","activity","link","whatsnew","feature"]}}}}`),pv=j(fv),Mc=()=>pv,Nc=Symbol(""),hv=()=>{const e=oe(Nc);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},mv=(e,t)=>{const{locales:n,...r}=e;return{...r,...n==null?void 0:n[t]}},vv=it({enhance({app:e}){const t=Mc(),n=e._context.provides[Fa],r=I(()=>mv(t.value,n.value));e.provide(Nc,r),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return r.value}}})}});var gv={"/en/":{copy:"Copy code",copied:"Copied"},"/":{copy:"复制代码",copied:"已复制"}},_v=['.theme-hope-content div[class*="language-"] pre'];const Bo=new Map,yv=/\b(?:Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini)/i,bv=()=>typeof window<"u"&&window.navigator&&"userAgent"in window.navigator&&yv.test(navigator.userAgent),wv=()=>{const{copy:e}=ym({legacy:!0}),t=Vn(gv),n=be(),r=i=>{if(!i.hasAttribute("copy-code-registered")){const l=document.createElement("button");l.type="button",l.classList.add("vp-copy-code-button"),l.innerHTML='
',l.setAttribute("aria-label",t.value.copy),l.setAttribute("data-copied",t.value.copied),i.parentElement&&i.parentElement.insertBefore(l,i),i.setAttribute("copy-code-registered","")}},o=()=>{Jt().then(()=>setTimeout(()=>{_v.forEach(i=>{document.querySelectorAll(i).forEach(r)})},800))},a=(i,l,c)=>{let{innerText:s=""}=l;/language-(shellscript|shell|bash|sh|zsh)/.test(i.classList.toString())&&(s=s.replace(/^ *(\$|>) /gm,"")),e(s).then(()=>{c.classList.add("copied"),clearTimeout(Bo.get(c));const u=setTimeout(()=>{c.classList.remove("copied"),c.blur(),Bo.delete(c)},2e3);Bo.set(c,u)})};he(()=>{const i=!bv()||!1;i&&o(),Me("click",l=>{const c=l.target;if(c.matches('div[class*="language-"] > button.copy')){const s=c.parentElement,u=c.nextElementSibling;u&&a(s,u,c)}else if(c.matches('div[class*="language-"] div.vp-copy-icon')){const s=c.parentElement,u=s.parentElement,f=s.nextElementSibling;f&&a(u,f,s)}}),ae(()=>n.value.path,()=>{i&&o()})})},Ev=it({setup:()=>{wv()}}),Tl=()=>{const e=document.documentElement;return e.classList.contains("dark")||e.getAttribute("data-theme")==="dark"},Tv=(e,t)=>t==="json"?JSON.parse(e):new Function(`let config,__chart_js_config__; +{ +${e} +__chart_js_config__=config; +} +return __chart_js_config__;`)();var Sv=U({name:"ChartJS",props:{config:{type:String,required:!0},id:{type:String,required:!0},title:{type:String,default:""},type:{type:String,default:"json"}},setup(e){const t=Be(),n=Be(),r=j(!1),o=j(!0),a=I(()=>Yh(e.config));let i=!1,l;const c=async s=>{const[{default:u}]=await Promise.all([b(()=>import("./auto-XYC5A0Ix.js"),__vite__mapDeps([])),i?Promise.resolve():(i=!0,new Promise(v=>setTimeout(v,800)))]);u.defaults.borderColor=s?"#ccc":"#36A2EB",u.defaults.color=s?"#fff":"#000",u.defaults.maintainAspectRatio=!1;const f=Tv(a.value,e.type),p=n.value.getContext("2d");l==null||l.destroy(),l=new u(p,f),o.value=!1};return he(()=>{r.value=Tl(),Am(document.documentElement,()=>{r.value=Tl()},{attributeFilter:["class","data-theme"],attributes:!0}),ae(r,s=>c(s),{immediate:!0})}),()=>[e.title?d("div",{class:"chartjs-title"},decodeURIComponent(e.title)):null,o.value?d(za,{class:"chartjs-loading",height:192}):null,d("div",{ref:t,class:"chartjs-wrapper",id:e.id,style:{display:o.value?"none":"block"}},d("canvas",{ref:n,height:400}))]}});const Nr=Ja("VUEPRESS_CODE_TAB_STORE",{});var Lv=U({name:"CodeTabs",props:{active:{type:Number,default:0},data:{type:Array,required:!0},id:{type:String,required:!0},tabId:{type:String,default:""}},slots:Object,setup(e,{slots:t}){const n=j(e.active),r=Be([]),o=()=>{e.tabId&&(Nr.value[e.tabId]=e.data[n.value].id)},a=(s=n.value)=>{n.value=s{n.value=s>0?s-1:r.value.length-1,r.value[n.value].focus()},l=(s,u)=>{s.key===" "||s.key==="Enter"?(s.preventDefault(),n.value=u):s.key==="ArrowRight"?(s.preventDefault(),a()):s.key==="ArrowLeft"&&(s.preventDefault(),i()),e.tabId&&(Nr.value[e.tabId]=e.data[n.value].id)},c=()=>{if(e.tabId){const s=e.data.findIndex(({id:u})=>Nr.value[e.tabId]===u);if(s!==-1)return s}return e.active};return he(()=>{n.value=c(),ae(()=>Nr.value[e.tabId],(s,u)=>{if(e.tabId&&s!==u){const f=e.data.findIndex(({id:p})=>p===s);f!==-1&&(n.value=f)}})}),()=>e.data.length?d("div",{class:"vp-code-tabs"},[d("div",{class:"vp-code-tabs-nav",role:"tablist"},e.data.map(({id:s},u)=>{const f=u===n.value;return d("button",{type:"button",ref:p=>{p&&(r.value[u]=p)},class:["vp-code-tab-nav",{active:f}],role:"tab","aria-controls":`codetab-${e.id}-${u}`,"aria-selected":f,onClick:()=>{n.value=u,o()},onKeydown:p=>l(p,u)},t[`title${u}`]({value:s,isActive:f}))})),e.data.map(({id:s},u)=>{const f=u===n.value;return d("div",{class:["vp-code-tab",{active:f}],id:`codetab-${e.id}-${u}`,role:"tabpanel","aria-expanded":f},[d("div",{class:"vp-code-tab-title"},t[`title${u}`]({value:s,isActive:f})),t[`tab${u}`]({value:s,isActive:f})])})]):null}});const Av=()=>{Me("beforeprint",()=>{document.querySelectorAll("details").forEach(e=>{e.open=!0})})},Fo=Ja("VUEPRESS_TAB_STORE",{});var Cv=U({name:"Tabs",props:{active:{type:Number,default:0},data:{type:Array,required:!0},id:{type:String,required:!0},tabId:{type:String,default:""}},slots:Object,setup(e,{slots:t}){const n=j(e.active),r=Be([]),o=()=>{e.tabId&&(Fo.value[e.tabId]=e.data[n.value].id)},a=(s=n.value)=>{n.value=s{n.value=s>0?s-1:r.value.length-1,r.value[n.value].focus()},l=(s,u)=>{s.key===" "||s.key==="Enter"?(s.preventDefault(),n.value=u):s.key==="ArrowRight"?(s.preventDefault(),a()):s.key==="ArrowLeft"&&(s.preventDefault(),i()),o()},c=()=>{if(e.tabId){const s=e.data.findIndex(({id:u})=>Fo.value[e.tabId]===u);if(s!==-1)return s}return e.active};return he(()=>{n.value=c(),ae(()=>Fo.value[e.tabId],(s,u)=>{if(e.tabId&&s!==u){const f=e.data.findIndex(({id:p})=>p===s);f!==-1&&(n.value=f)}})}),()=>e.data.length?d("div",{class:"vp-tabs"},[d("div",{class:"vp-tabs-nav",role:"tablist"},e.data.map(({id:s},u)=>{const f=u===n.value;return d("button",{type:"button",ref:p=>{p&&(r.value[u]=p)},class:["vp-tab-nav",{active:f}],role:"tab","aria-controls":`tab-${e.id}-${u}`,"aria-selected":f,onClick:()=>{n.value=u,o()},onKeydown:p=>l(p,u)},t[`title${u}`]({value:s,isActive:f}))})),e.data.map(({id:s},u)=>{const f=u===n.value;return d("div",{class:["vp-tab",{active:f}],id:`tab-${e.id}-${u}`,role:"tabpanel","aria-expanded":f},[d("div",{class:"vp-tab-title"},t[`title${u}`]({value:s,isActive:f})),t[`tab${u}`]({value:s,isActive:f})])})]):null}});const kv=it({enhance:({app:e})=>{e.component("ChartJS",Sv),e.component("CodeTabs",Lv),e.component("Tabs",Cv)},setup:()=>{Av()}});let Iv={};const Vc=Symbol(""),Pv=()=>oe(Vc),xv=e=>{e.provide(Vc,Iv)};var Rv={"/en/":{closeTitle:"Close",downloadTitle:"Download Image",fullscreenTitle:"Switch to full screen",zoomTitle:"Zoom in/out",arrowPrevTitle:"Prev (Arrow Left)",arrowNextTitle:"Next (Arrow Right)"},"/":{closeTitle:"关闭",downloadTitle:"下载图片",fullscreenTitle:"切换全屏",zoomTitle:"缩放",arrowPrevTitle:"上一个 (左箭头)",arrowNextTitle:"下一个 (右箭头)"}};const Ov=".theme-hope-content :not(a) > img:not([no-view])",Dv=Rv,Mv=800,Nv='
',Vv=e=>Pe(e)?Array.from(document.querySelectorAll(e)):e.map(t=>Array.from(document.querySelectorAll(t))).flat(),$c=e=>new Promise((t,n)=>{e.complete?t({type:"image",element:e,src:e.src,width:e.naturalWidth,height:e.naturalHeight,alt:e.alt,msrc:e.src}):(e.onload=()=>t($c(e)),e.onerror=r=>n(r))}),$v=()=>{const e=Vn(Dv),t=De(),n=be(),{isSupported:r,toggle:o}=Xa(),a=Pv();let i;const l=I(()=>t.value.photoSwipe===!1?!1:t.value.photoSwipe||Ov),c=u=>{u.on("uiRegister",()=>{r&&u.ui.registerElement({name:"fullscreen",order:7,isButton:!0,html:'',onClick:()=>{o()}}),u.ui.registerElement({name:"download",order:8,isButton:!0,tagName:"a",html:{isCustomSVG:!0,inner:'',outlineID:"pswp__icn-download"},onInit:(f,p)=>{f.setAttribute("download",""),f.setAttribute("target","_blank"),f.setAttribute("rel","noopener"),p.on("change",()=>{f.setAttribute("href",p.currSlide.data.src)})}}),u.ui.registerElement({name:"bulletsIndicator",className:"photo-swipe-bullets-indicator",appendTo:"wrapper",onInit:(f,p)=>{const v=[];let _=-1;for(let T=0;T{p.goTo(v.indexOf(g.target))},v.push(E),f.appendChild(E)}p.on("change",()=>{_>=0&&v[_].classList.remove("active"),v[p.currIndex].classList.add("active"),_=p.currIndex})}})})},s=async()=>{if(l.value)return Promise.all([b(()=>import("./photoswipe.esm-08_zHRDQ.js"),__vite__mapDeps([])),Jt().then(()=>new Promise(u=>setTimeout(u,Mv)).then(()=>Vv(l.value)))]).then(([{default:u},f])=>{const p=f.map(v=>({html:Nv,element:v,msrc:v.src}));f.forEach((v,_)=>{const T=()=>{i=new u({preloaderDelay:0,showHideAnimationType:"zoom",...e.value,...a,dataSource:p,index:_,closeOnVerticalDrag:!0,wheelToZoom:!1}),c(i),i.addFilter("thumbEl",()=>v),i.addFilter("placeholderSrc",()=>v.src),i.init()};v.style.cursor="zoom-in",v.addEventListener("click",()=>{T()}),v.addEventListener("keypress",({key:E})=>{E==="Enter"&&T()})}),f.forEach((v,_)=>{$c(v).then(T=>{p.splice(_,1,T),i==null||i.refreshSlideContent(_)})})})};he(()=>{Me("wheel",()=>{i==null||i.close()}),ae(()=>n.value.path,s,{immediate:!0})})};var Hv=it({enhance:({app:e})=>{xv(e)},setup:()=>{$v()}});const Bv=e=>{const t=Me("keydown",n=>{const r=n.key==="k"&&(n.ctrlKey||n.metaKey);!(n.key==="/")&&!r||(n.preventDefault(),e(),t())})},Fv=e=>e.button===1||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey,jv=()=>{const e=Dt();return{hitComponent:({hit:t,children:n})=>({type:"a",ref:void 0,constructor:void 0,key:void 0,props:{href:t.url,onClick:r=>{Fv(r)||(r.preventDefault(),e.push(Wi(t.url,"/")))},children:n},__v:null}),navigator:{navigate:({itemUrl:t})=>{e.push(Wi(t,"/"))}},transformSearchClient:t=>{const n=Pc(t.search,500);return{...t,search:async(...r)=>n(...r)}}}},zv=(e=[],t)=>[`lang:${t}`,...Array.isArray(e)?e:[e]],qv=({buttonText:e="Search",buttonAriaLabel:t=e}={})=>``,Uv=16,Hc=()=>{if(document.querySelector(".DocSearch-Modal"))return;const e=new Event("keydown");e.key="k",e.metaKey=!0,window.dispatchEvent(e),setTimeout(Hc,Uv)},Wv=e=>{const t="algolia-preconnect";(window.requestIdleCallback||setTimeout)(()=>{if(document.head.querySelector(`#${t}`))return;const r=document.createElement("link");r.id=t,r.rel="preconnect",r.href=`https://${e}-dsn.algolia.net`,r.crossOrigin="",document.head.appendChild(r)})};var Gv={locales:{"/en/":{placeholder:"Search docs",translations:{button:{buttonText:"Search docs"}}}},appId:"6CYP6DKPIT",apiKey:"35f9f152a5203e42231a73eb0de1546d",indexName:"api-buddy"};const Kv=Gv;b(()=>import("./style-w40geAFS.js"),__vite__mapDeps([])),b(()=>import("./docsearch-w40geAFS.js"),__vite__mapDeps([]));const Yv=U({name:"Docsearch",props:{containerId:{type:String,required:!1,default:"docsearch-container"},options:{type:Object,required:!1,default:()=>Kv}},setup(e){const t=jv(),n=Ba(),r=Qt(),o=j(!1),a=j(!1),i=I(()=>{var s;return{...e.options,...(s=e.options.locales)==null?void 0:s[r.value]}}),l=async()=>{var u;const{default:s}=await b(()=>import("./index-QOy62Fup.js"),__vite__mapDeps([]));s({...t,...i.value,container:`#${e.containerId}`,searchParameters:{...i.value.searchParameters,facetFilters:zv((u=i.value.searchParameters)==null?void 0:u.facetFilters,n.value)}}),o.value=!0},c=()=>{a.value||o.value||(a.value=!0,l(),Hc(),ae(r,l))};return Bv(c),he(()=>Wv(i.value.appId)),()=>{var s;return[d("div",{id:e.containerId,style:{display:o.value?"block":"none"}}),o.value?null:d("div",{onClick:c,innerHTML:qv((s=i.value.translations)==null?void 0:s.button)})]}}}),Jv=it({enhance({app:e}){e.component("Docsearch",Yv)}}),ze=e=>{const{icon:t="",color:n,size:r}=e,o=n||r?{}:null;return n&&(o.color=n),r&&(o.height=Number.isNaN(Number(r))?r:`${r}px`),Xt(t)?d("img",{class:"icon",src:t,alt:"","no-view":"",style:o}):vo(t)?d("img",{class:"icon",src:He(t),alt:"","aria-hidden":"","no-view":"",style:o}):d(Lt("FontIcon"),e)};ze.displayName="HopeIcon";const Xv=()=>{const e=Dt(),t=yt();return n=>{if(n)if(vo(n))t.path!==n&&e.push(n);else if(Hs(n))window&&window.open(n);else{const r=t.path.slice(0,t.path.lastIndexOf("/"));e.push(`${r}/${encodeURI(n)}`)}}},Bc=()=>{const e=be();return I(()=>e.value.readingTime??null)},Qv=(e,t)=>{const{minutes:n,words:r}=e,{less1Minute:o,word:a,time:i}=t;return{time:n<1?o:i.replace("$time",Math.round(n).toString()),words:a.replace("$word",r.toString())}};var Sl={"/en/":{word:"About $word words",less1Minute:"Less than 1 minute",time:"About $time min"},"/":{word:"约 $word 字",less1Minute:"小于 1 分钟",time:"大约 $time 分钟"}};const Ll={words:"",time:""},ca=typeof Sl>"u"?null:Sl,Zv=()=>ca?Vn(ca):I(()=>null),eg=()=>{if(typeof ca>"u")return I(()=>Ll);const e=Bc(),t=Zv();return I(()=>e.value&&t.value?Qv(e.value,t.value):Ll)},mn=()=>Mc(),ve=()=>hv(),wr=()=>{const e=mn();return I(()=>!!e.value.pure)},Fc=()=>{const e=ve(),t=De();return I(()=>{const{author:n}=t.value;return n?dl(n):n===!1?[]:dl(e.value.author,!1)})},tg=()=>{const e=De();return I(()=>om(e.value.category).map(t=>({name:t,path:""})))},ng=()=>{const e=De();return I(()=>am(e.value.tag).map(t=>({name:t,path:""})))},rg=()=>{const e=De(),t=be();return I(()=>{const n=em(e.value.date);if(n)return n;const{createdTime:r}=t.value.git||{};return r?new Date(r):null})},og=()=>{const e=ve(),t=be(),n=De(),r=Fc(),o=tg(),a=ng(),i=rg(),l=Bc(),c=eg(),s=I(()=>({author:r.value,category:o.value,date:i.value,localizedDate:t.value.localizedDate,tag:a.value,isOriginal:n.value.isOriginal||!1,readingTime:l.value,readingTimeLocale:c.value,pageview:"pageview"in n.value?n.value.pageview:!0})),u=I(()=>"pageInfo"in n.value?n.value.pageInfo:"pageInfo"in e.value?e.value.pageInfo:null);return{info:s,items:u}};let jo=null,zn=null;const ag={wait:()=>jo,pending:()=>{jo=new Promise(e=>{zn=e})},resolve:()=>{zn==null||zn(),jo=null,zn=null}},jc=()=>ag,ig="719px",lg="1440px",sg="true",Za={mobileBreakPoint:ig,pcBreakPoint:lg,enableThemeColor:sg,"theme-1":"#07c3f2","theme-2":"#fc801d","theme-3":"#087cfa","theme-4":"#fe2857"},{mobileBreakPoint:cg,pcBreakPoint:ug}=Za,Al=e=>e.endsWith("px")?Number(e.slice(0,-2)):null,ei=()=>{const e=j(!1),t=j(!1),n=()=>{e.value=window.innerWidth<=(Al(cg)??719),t.value=window.innerWidth>=(Al(ug)??1440)};return he(()=>{n(),Me("resize",n,!1),Me("orientationchange",n,!1)}),{isMobile:e,isPC:t}},zc=Symbol(""),Er=()=>{const e=oe(zc);if(!e)throw new Error("useDarkmode() is called without provider.");return e},dg=e=>{const t=mn(),n=Lm(),r=I(()=>t.value.darkmode||"switch"),o=Ja("vuepress-theme-hope-scheme","auto"),a=I(()=>{const l=r.value;return l==="disable"?!1:l==="enable"?!0:l==="auto"?n.value:l==="toggle"?o.value==="dark":o.value==="dark"||o.value==="auto"&&n.value}),i=I(()=>{const l=r.value;return l==="switch"||l==="toggle"});e.provide(zc,{canToggle:i,config:r,isDarkmode:a,status:o}),Object.defineProperties(e.config.globalProperties,{$isDarkmode:{get:()=>a.value}})},fg=()=>{const{config:e,isDarkmode:t,status:n}=Er();ls(()=>{e.value==="disable"?n.value="light":e.value==="enable"?n.value="dark":e.value==="toggle"&&n.value==="auto"&&(n.value="light")}),he(()=>{ae(t,r=>document.documentElement.setAttribute("data-theme",r?"dark":"light"),{immediate:!0})})},Qe=U({name:"AutoLink",inheritAttrs:!1,props:{config:{type:Object,required:!0},exact:Boolean,noExternalLinkIcon:Boolean},emits:["focusout"],slots:Object,setup(e,{attrs:t,emit:n,slots:r}){const o=yt(),a=oc(),i=oo(e,"config"),l=I(()=>Xt(i.value.link)),c=I(()=>!l.value&&Hs(i.value.link)),s=I(()=>i.value.target||(l.value?"_blank":void 0)),u=I(()=>s.value==="_blank"),f=I(()=>!l.value&&!c.value&&!u.value),p=I(()=>i.value.rel||(u.value?"noopener noreferrer":null)),v=I(()=>i.value.ariaLabel||i.value.text),_=I(()=>{if(e.exact)return!1;const E=$n(a.value.locales);return E.length?E.every(g=>g!==i.value.link):i.value.link!=="/"}),T=I(()=>f.value?i.value.activeMatch?new RegExp(i.value.activeMatch,"u").test(o.path):_.value?fn(o.path,i.value.link):o.path===i.value.link:!1);return()=>{const{before:E,after:g,default:k}=r,{text:y,icon:L,link:M}=i.value;return f.value?d(Ke,{to:M,"aria-label":v.value,...t,class:["nav-link",{active:T.value},t.class],onFocusout:()=>n("focusout")},()=>k?k():[E?E():d(ze,{icon:L}),y,g==null?void 0:g()]):d("a",{href:M,rel:p.value,target:s.value,"aria-label":v.value,...t,class:["nav-link",t.class],onFocusout:()=>n("focusout")},k?k():[E?E():d(ze,{icon:L}),y,e.noExternalLinkIcon?null:d(Oc),g==null?void 0:g()])}}}),Rn=(e,t,n=!1)=>"activeMatch"in t?new RegExp(t.activeMatch,"u").test(e.path):vc(e,t.link)?!0:t.children&&!n?t.children.some(r=>Rn(e,r)):!1,qc=(e,t)=>t.type==="group"?t.children.some(n=>n.type==="group"?qc(e,n):n.type==="page"&&Rn(e,n,!0))||"prefix"in t&&vc(e,t.prefix):!1,Uc=(e,t)=>Pe(e.link)?d(Qe,{...t,config:e}):d("p",t,[d(ze,{icon:e.icon}),e.text]),Wc=e=>{const t=yt();return e?d("ul",{class:"vp-sidebar-sub-headers"},e.map(n=>d("li",{class:"vp-sidebar-sub-header"},[Uc(n,{class:["vp-sidebar-link","vp-heading",{active:Rn(t,n,!0)}]}),Wc(n.children)]))):null},ti={},pg=(e,t)=>{const n=e.replace(t,"/").split("/"),r=[];let o=Va(t);return n.forEach((a,i)=>{i!==n.length-1?(o+=`${a}/`,r.push({link:o,name:a||"Home"})):a!==""&&(o+=a,r.push({link:o,name:a}))}),r};var Tt;(function(e){e.type="y",e.title="t",e.shortTitle="s",e.icon="i",e.author="a",e.date="d",e.localizedDate="l",e.category="c",e.tag="g",e.isEncrypted="n",e.isOriginal="o",e.readingTime="r",e.excerpt="e",e.sticky="u",e.cover="v",e.index="I",e.order="O"})(Tt||(Tt={}));var Cl;(function(e){e.article="a",e.home="h",e.slide="s",e.page="p"})(Cl||(Cl={}));const ln=(e="",t="")=>vo(t)?t:`${$s(e)}${t}`,Ln=(e,t=!1)=>{const{meta:n,path:r}=fo(e);return n?{text:!t&&n[Tt.shortTitle]?n[Tt.shortTitle]:n[Tt.title]||r,link:r,...n[Tt.icon]?{icon:n[Tt.icon]}:{}}:{text:r,link:r}},yo=(e,t,n)=>n>0?t.map(r=>({type:"heading",text:r.title,link:`${e.path}#${r.slug}`,children:yo(e,r.children,n-1)})):[],ua=({config:e,page:t,headerDepth:n,prefix:r=""})=>{const o=(a,i=r)=>{var c;const l=Pe(a)?Ln(ln(i,a)):a.link?{...a,...dn(a.link)?{}:{link:Ln(ln(i,a.link)).link}}:a;if("children"in l){const s=ln(i,l.prefix),u=l.children==="structure"?ti[s]:l.children;return{type:"group",...l,prefix:s,children:u.map(f=>o(f,s))}}return{type:"page",...l,children:l.link===t.path?yo(t,((c=t.headers[0])==null?void 0:c.level)===1?t.headers[0].children:t.headers,n):[]}};return e.map(a=>o(a))},hg=({config:e,page:t,headerDepth:n})=>{const r=$n(e).sort((o,a)=>a.length-o.length);for(const o of r)if(fn(decodeURI(t.path),o)){const a=e[o];return a?ua({config:a==="structure"?ti[o]:a==="heading"?yo(t,t.headers,n):a,page:t,headerDepth:n,prefix:o}):[]}return console.warn(`${t.path} is missing sidebar config.`),[]},mg=({config:e,routeLocale:t,page:n,headerDepth:r})=>e==="heading"?yo(n,n.headers,r):e==="structure"?ua({config:ti[t],page:n,headerDepth:r,prefix:t}):la(e)?ua({config:e,page:n,headerDepth:r}):_r(e)?hg({config:e,page:n,headerDepth:r}):[],Gc=Symbol(""),vg=()=>{const e=De(),t=ve(),n=be(),r=Qt(),o=I(()=>e.value.home?!1:e.value.sidebar??t.value.sidebar??"structure"),a=I(()=>e.value.headerDepth??t.value.headerDepth??2),i=go(()=>[o.value,a.value,n.value.path,null],()=>mg({config:o.value,routeLocale:r.value,page:n.value,headerDepth:a.value}));We(Gc,i)},ni=()=>{const e=oe(Gc);if(!e)throw new Error("useSidebarItems() is called without provider.");return e},gg=U({name:"PageFooter",setup(){const e=mn(),t=ve(),n=De(),r=Fc(),o=I(()=>{const{copyright:s,footer:u}=n.value;return u!==!1&&!!(s||u||t.value.displayFooter)}),a=I(()=>{const{footer:s}=n.value;return s===!1?!1:Pe(s)?s:t.value.footer||""}),i=I(()=>r.value.map(({name:s})=>s).join(", ")),l=s=>`Copyright © ${new Date().getFullYear()} ${i.value} ${s?`${s} Licensed`:""}`,c=I(()=>{const{copyright:s,license:u=""}=n.value,{license:f}=e.value,{copyright:p}=t.value;return s??(u?l(u):Pe(p)?p:i.value||f?l(f):!1)});return()=>o.value?d("footer",{class:"vp-footer-wrapper"},[a.value?d("div",{class:"vp-footer",innerHTML:a.value}):null,c.value?d("div",{class:"vp-copyright",innerHTML:c.value}):null]):null}}),kl=()=>null,Kc=U({name:"NavbarDropdownLink",props:{config:{type:Object,required:!0}},slots:Object,setup(e,{slots:t}){const n=be(),r=oo(e,"config"),o=I(()=>r.value.ariaLabel||r.value.text),a=j(!1);ae(()=>n.value.path,()=>{a.value=!1});const i=l=>{l.detail===0&&(a.value=!a.value)};return()=>{var l;return d("div",{class:["dropdown-wrapper",{open:a.value}]},[d("button",{type:"button",class:"dropdown-title","aria-label":o.value,onClick:i},[((l=t.title)==null?void 0:l.call(t))||d("span",{class:"title"},[d(ze,{icon:r.value.icon}),e.config.text]),d("span",{class:"arrow"}),d("ul",{class:"nav-dropdown"},r.value.children.map((c,s)=>{const u=s===r.value.children.length-1;return d("li",{class:"dropdown-item"},"children"in c?[d("h4",{class:"dropdown-subtitle"},c.link?d(Qe,{config:c,onFocusout:()=>{c.children.length===0&&u&&(a.value=!1)}}):d("span",c.text)),d("ul",{class:"dropdown-subitem-wrapper"},c.children.map((f,p)=>d("li",{class:"dropdown-subitem"},d(Qe,{config:f,onFocusout:()=>{p===c.children.length-1&&u&&(a.value=!1)}}))))]:d(Qe,{config:c,onFocusout:()=>{u&&(a.value=!1)}}))}))])])}}}),Yc=()=>d(ke,{name:"i18n"},()=>[d("path",{d:"M379.392 460.8 494.08 575.488l-42.496 102.4L307.2 532.48 138.24 701.44l-71.68-72.704L234.496 460.8l-45.056-45.056c-27.136-27.136-51.2-66.56-66.56-108.544h112.64c7.68 14.336 16.896 27.136 26.112 35.84l45.568 46.08 45.056-45.056C382.976 312.32 409.6 247.808 409.6 204.8H0V102.4h256V0h102.4v102.4h256v102.4H512c0 70.144-37.888 161.28-87.04 210.944L378.88 460.8zM576 870.4 512 1024H409.6l256-614.4H768l256 614.4H921.6l-64-153.6H576zM618.496 768h196.608L716.8 532.48 618.496 768z"})]);Yc.displayName="I18nIcon";const Jc=(e,t="")=>Pe(e)?Ln(ln(t,e)):"children"in e?{...e,...e.link&&!dn(e.link)?Ln(ln(t,e.link)):{},children:e.children.map(n=>Jc(n,ln(t,e.prefix)))}:{...e,link:dn(e.link)?e.link:Ln(ln(t,e.link)).link},Xc=()=>{const e=ve(),t=()=>(e.value.navbar||[]).map(r=>Jc(r)),n=go(()=>e.value.navbar,()=>t());return console.log(n.value),n},_g=()=>{const e=xh(),t=yt(),n=Qt(),r=po(),o=mn(),a=ve();return go(()=>t.path,()=>{const i=$n(r.value.locales),l=mo(o.value.extraLocales??{});if(i.length<2&&!l.length)return null;const{path:c,fullPath:s}=t,{navbarLocales:u}=a.value;return{text:"",ariaLabel:u==null?void 0:u.selectLangAriaLabel,children:[...i.map(p=>{var k,y,L;const v=((k=r.value.locales)==null?void 0:k[p])??{},_=((y=o.value.locales)==null?void 0:y[p])??{},T=v.lang||"",E=((L=_.navbarLocales)==null?void 0:L.langName)??T;let g;if(T===r.value.lang)g=c;else{const M=c.replace(n.value,p);g=e.value.some(S=>S===M)?s.replace(c,M):_.home??p}return{text:E,link:g}}),...l.map(([p,v])=>({text:p,link:v.replace(":route",t.path.replace(n.value,""))}))]}})},yg=()=>{const e=ve(),t=I(()=>e.value.repo||null),n=I(()=>t.value?nm(t.value):null),r=I(()=>t.value?Ya(t.value):null),o=I(()=>n.value?e.value.repoLabel??(r.value===null?"Source":r.value):null);return I(()=>!n.value||!o.value||e.value.repoDisplay===!1?null:{type:r.value||"Source",label:o.value,link:n.value})},bg=U({name:"LanguageDropdown",setup(){const e=_g();return()=>e.value?d("div",{class:"nav-item"},d(Kc,{class:"i18n-dropdown",config:e.value},{title:()=>{var t;return d(Yc,{"aria-label":(t=e.value)==null?void 0:t.ariaLabel,style:{width:"1rem",height:"1rem",verticalAlign:"middle"}})}})):null}}),wg=U({name:"NavScreenDropdown",props:{config:{type:Object,required:!0}},setup(e){const t=be(),n=oo(e,"config"),r=I(()=>n.value.ariaLabel||n.value.text),o=j(!1);ae(()=>t.value.path,()=>{o.value=!1});const a=(i,l)=>l[l.length-1]===i;return()=>[d("button",{type:"button",class:["nav-screen-dropdown-title",{active:o.value}],"aria-label":r.value,onClick:()=>{o.value=!o.value}},[d("span",{class:"title"},[d(ze,{icon:n.value.icon}),e.config.text]),d("span",{class:["arrow",o.value?"down":"end"]})]),d("ul",{class:["nav-screen-dropdown",{hide:!o.value}]},n.value.children.map(i=>d("li",{class:"dropdown-item"},"children"in i?[d("h4",{class:"dropdown-subtitle"},i.link?d(Qe,{config:i,onFocusout:()=>{a(i,n.value.children)&&i.children.length===0&&(o.value=!1)}}):d("span",i.text)),d("ul",{class:"dropdown-subitem-wrapper"},i.children.map(l=>d("li",{class:"dropdown-subitem"},d(Qe,{config:l,onFocusout:()=>{a(l,i.children)&&a(i,n.value.children)&&(o.value=!1)}}))))]:d(Qe,{config:i,onFocusout:()=>{a(i,n.value.children)&&(o.value=!1)}}))))]}}),Eg=U({name:"NavScreenLinks",setup(){const e=Xc();return()=>e.value.length?d("nav",{class:"nav-screen-links"},e.value.map(t=>d("div",{class:"navbar-links-item"},"children"in t?d(wg,{config:t}):d(Qe,{config:t})))):null}}),Qc=()=>d(ke,{name:"dark"},()=>d("path",{d:"M524.8 938.667h-4.267a439.893 439.893 0 0 1-313.173-134.4 446.293 446.293 0 0 1-11.093-597.334A432.213 432.213 0 0 1 366.933 90.027a42.667 42.667 0 0 1 45.227 9.386 42.667 42.667 0 0 1 10.24 42.667 358.4 358.4 0 0 0 82.773 375.893 361.387 361.387 0 0 0 376.747 82.774 42.667 42.667 0 0 1 54.187 55.04 433.493 433.493 0 0 1-99.84 154.88 438.613 438.613 0 0 1-311.467 128z"}));Qc.displayName="DarkIcon";const Zc=()=>d(ke,{name:"light"},()=>d("path",{d:"M952 552h-80a40 40 0 0 1 0-80h80a40 40 0 0 1 0 80zM801.88 280.08a41 41 0 0 1-57.96-57.96l57.96-58a41.04 41.04 0 0 1 58 58l-58 57.96zM512 752a240 240 0 1 1 0-480 240 240 0 0 1 0 480zm0-560a40 40 0 0 1-40-40V72a40 40 0 0 1 80 0v80a40 40 0 0 1-40 40zm-289.88 88.08-58-57.96a41.04 41.04 0 0 1 58-58l57.96 58a41 41 0 0 1-57.96 57.96zM192 512a40 40 0 0 1-40 40H72a40 40 0 0 1 0-80h80a40 40 0 0 1 40 40zm30.12 231.92a41 41 0 0 1 57.96 57.96l-57.96 58a41.04 41.04 0 0 1-58-58l58-57.96zM512 832a40 40 0 0 1 40 40v80a40 40 0 0 1-80 0v-80a40 40 0 0 1 40-40zm289.88-88.08 58 57.96a41.04 41.04 0 0 1-58 58l-57.96-58a41 41 0 0 1 57.96-57.96z"}));Zc.displayName="LightIcon";const eu=()=>d(ke,{name:"auto"},()=>d("path",{d:"M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm0-840c-198.78 0-360 161.22-360 360 0 198.84 161.22 360 360 360s360-161.16 360-360c0-198.78-161.22-360-360-360zm0 660V212c165.72 0 300 134.34 300 300 0 165.72-134.28 300-300 300z"}));eu.displayName="AutoIcon";const tu=()=>d(ke,{name:"enter-fullscreen"},()=>d("path",{d:"M762.773 90.24h-497.28c-96.106 0-174.4 78.293-174.4 174.4v497.28c0 96.107 78.294 174.4 174.4 174.4h497.28c96.107 0 175.04-78.293 174.4-174.4V264.64c0-96.213-78.186-174.4-174.4-174.4zm-387.2 761.173H215.04c-21.867 0-40.427-17.92-41.067-41.066V649.92c0-22.507 17.92-40.427 40.427-40.427 11.307 0 21.227 4.694 28.48 11.947 7.253 7.253 11.947 17.92 11.947 28.48v62.293l145.28-145.28c15.893-15.893 41.813-15.893 57.706 0 15.894 15.894 15.894 41.814 0 57.707l-145.28 145.28h62.294c22.506 0 40.426 17.92 40.426 40.427s-17.173 41.066-39.68 41.066zM650.24 165.76h160.427c21.866 0 40.426 17.92 41.066 41.067v160.426c0 22.507-17.92 40.427-40.426 40.427-11.307 0-21.227-4.693-28.48-11.947-7.254-7.253-11.947-17.92-11.947-28.48v-62.186L625.6 450.347c-15.893 15.893-41.813 15.893-57.707 0-15.893-15.894-15.893-41.814 0-57.707l145.28-145.28H650.88c-22.507 0-40.427-17.92-40.427-40.427s17.174-41.173 39.787-41.173z"}));tu.displayName="EnterFullScreenIcon";const nu=()=>d(ke,{name:"cancel-fullscreen"},()=>d("path",{d:"M778.468 78.62H247.922c-102.514 0-186.027 83.513-186.027 186.027V795.08c0 102.514 83.513 186.027 186.027 186.027h530.432c102.514 0 186.71-83.513 186.026-186.027V264.647C964.494 162.02 880.981 78.62 778.468 78.62zM250.88 574.35h171.122c23.324 0 43.122 19.115 43.804 43.805v171.121c0 24.008-19.114 43.122-43.122 43.122-12.06 0-22.641-5.006-30.378-12.743s-12.743-19.115-12.743-30.379V722.83L224.597 877.91c-16.953 16.952-44.6 16.952-61.553 0-16.953-16.954-16.953-44.602 0-61.554L318.009 661.39h-66.446c-24.007 0-43.122-19.114-43.122-43.122 0-24.12 18.432-43.918 42.439-43.918zm521.899-98.873H601.657c-23.325 0-43.122-19.114-43.805-43.804V260.55c0-24.007 19.115-43.122 43.122-43.122 12.06 0 22.642 5.007 30.379 12.743s12.743 19.115 12.743 30.38v66.445l154.965-154.965c16.953-16.953 44.601-16.953 61.554 0 16.953 16.953 16.953 44.6 0 61.554L705.536 388.55h66.446c24.007 0 43.122 19.115 43.122 43.122.114 24.007-18.318 43.804-42.325 43.804z"}));nu.displayName="CancelFullScreenIcon";const ru=()=>d(ke,{name:"outlook"},()=>[d("path",{d:"M224 800c0 9.6 3.2 44.8 6.4 54.4 6.4 48-48 76.8-48 76.8s80 41.6 147.2 0 134.4-134.4 38.4-195.2c-22.4-12.8-41.6-19.2-57.6-19.2C259.2 716.8 227.2 761.6 224 800zM560 675.2l-32 51.2c-51.2 51.2-83.2 32-83.2 32 25.6 67.2 0 112-12.8 128 25.6 6.4 51.2 9.6 80 9.6 54.4 0 102.4-9.6 150.4-32l0 0c3.2 0 3.2-3.2 3.2-3.2 22.4-16 12.8-35.2 6.4-44.8-9.6-12.8-12.8-25.6-12.8-41.6 0-54.4 60.8-99.2 137.6-99.2 6.4 0 12.8 0 22.4 0 12.8 0 38.4 9.6 48-25.6 0-3.2 0-3.2 3.2-6.4 0-3.2 3.2-6.4 3.2-6.4 6.4-16 6.4-16 6.4-19.2 9.6-35.2 16-73.6 16-115.2 0-105.6-41.6-198.4-108.8-268.8C704 396.8 560 675.2 560 675.2zM224 419.2c0-28.8 22.4-51.2 51.2-51.2 28.8 0 51.2 22.4 51.2 51.2 0 28.8-22.4 51.2-51.2 51.2C246.4 470.4 224 448 224 419.2zM320 284.8c0-22.4 19.2-41.6 41.6-41.6 22.4 0 41.6 19.2 41.6 41.6 0 22.4-19.2 41.6-41.6 41.6C339.2 326.4 320 307.2 320 284.8zM457.6 208c0-12.8 12.8-25.6 25.6-25.6 12.8 0 25.6 12.8 25.6 25.6 0 12.8-12.8 25.6-25.6 25.6C470.4 233.6 457.6 220.8 457.6 208zM128 505.6C128 592 153.6 672 201.6 736c28.8-60.8 112-60.8 124.8-60.8-16-51.2 16-99.2 16-99.2l316.8-422.4c-48-19.2-99.2-32-150.4-32C297.6 118.4 128 291.2 128 505.6zM764.8 86.4c-22.4 19.2-390.4 518.4-390.4 518.4-22.4 28.8-12.8 76.8 22.4 99.2l9.6 6.4c35.2 22.4 80 12.8 99.2-25.6 0 0 6.4-12.8 9.6-19.2 54.4-105.6 275.2-524.8 288-553.6 6.4-19.2-3.2-32-19.2-32C777.6 76.8 771.2 80 764.8 86.4z"})]);ru.displayName="OutlookIcon";const ou=U({name:"AppearanceSwitch",setup(){const{config:e,isDarkmode:t,status:n}=Er(),r=wr(),o=()=>{e.value==="switch"?n.value={light:"dark",dark:"auto",auto:"light"}[n.value]:n.value=n.value==="light"?"dark":"light"},a=async i=>{if(!(document.startViewTransition&&!window.matchMedia("(prefers-reduced-motion: reduce)").matches&&!r.value)||!i){o();return}const c=i.clientX,s=i.clientY,u=Math.hypot(Math.max(c,innerWidth-c),Math.max(s,innerHeight-s)),f=t.value;await document.startViewTransition(async()=>{o(),await Jt()}).ready,t.value!==f&&document.documentElement.animate({clipPath:t.value?[`circle(${u}px at ${c}px ${s}px)`,`circle(0px at ${c}px ${s}px)`]:[`circle(0px at ${c}px ${s}px)`,`circle(${u}px at ${c}px ${s}px)`]},{duration:400,pseudoElement:t.value?"::view-transition-old(root)":"::view-transition-new(root)"})};return()=>d("button",{type:"button",id:"appearance-switch",onClick:a},[d(eu,{style:{display:n.value==="auto"?"block":"none"}}),d(Qc,{style:{display:n.value==="dark"?"block":"none"}}),d(Zc,{style:{display:n.value==="light"?"block":"none"}})])}}),Tg=U({name:"AppearanceMode",setup(){const e=ve(),{canToggle:t}=Er(),n=I(()=>e.value.outlookLocales.darkmode);return()=>t.value?d("div",{class:"appearance-wrapper"},[d("label",{class:"appearance-title",for:"appearance-switch"},n.value),d(ou)]):null}}),zo="VUEPRESS_THEME_COLOR",Sg=U({name:"ThemeColorPicker",props:{themeColor:{type:Object,required:!0}},setup(e){const t=(n="")=>{const r=document.documentElement.classList,o=$n(e.themeColor);if(!n){localStorage.removeItem(zo),r.remove(...o);return}r.remove(...o.filter(a=>a!==n)),r.add(n),localStorage.setItem(zo,n)};return he(()=>{const n=localStorage.getItem(zo);n&&t(n)}),()=>d("ul",{id:"theme-color-picker"},[d("li",d("span",{class:"theme-color",onClick:()=>t()})),mo(e.themeColor).map(([n,r])=>d("li",d("span",{style:{background:r},onClick:()=>t(n)})))])}}),An=Za.enableThemeColor==="true",Lg=An?Zh(mo(Za).filter(([e])=>e.startsWith("theme-"))):{},Ag=U({name:"ThemeColor",setup(){const e=ve(),t=I(()=>e.value.outlookLocales.themeColor);return()=>An?d("div",{class:"theme-color-wrapper"},[d("label",{class:"theme-color-title",for:"theme-color-picker"},t.value),d(Sg,{themeColor:Lg})]):null}}),au=U({name:"ToggleFullScreenButton",setup(){const e=ve(),{isSupported:t,isFullscreen:n,toggle:r}=Xa(),o=I(()=>e.value.outlookLocales.fullscreen);return()=>t?d("div",{class:"full-screen-wrapper"},[d("label",{class:"full-screen-title",for:"full-screen-switch"},o.value),d("button",{type:"button",id:"full-screen-switch",class:"full-screen",ariaPressed:n.value,onClick:()=>r()},n.value?d(nu):d(tu))]):null}}),iu=U({name:"OutlookSettings",setup(){const e=mn(),t=wr(),n=I(()=>!t.value&&e.value.fullscreen);return()=>d(ho,()=>[An?d(Ag):null,d(Tg),n.value?d(au):null])}}),Cg=U({name:"NavScreen",props:{show:Boolean},emits:["close"],slots:Object,setup(e,{emit:t,slots:n}){const r=be(),{isMobile:o}=ei(),a=Be(),i=Lc(a);return he(()=>{a.value=document.body,ae(o,l=>{!l&&e.show&&(i.value=!1,t("close"))}),ae(()=>r.value.path,()=>{i.value=!1,t("close")})}),mr(()=>{i.value=!1}),()=>d(Yt,{name:"fade",onEnter:()=>{i.value=!0},onAfterLeave:()=>{i.value=!1}},()=>{var l,c;return e.show?d("div",{id:"nav-screen"},d("div",{class:"vp-nav-screen-container"},[(l=n.before)==null?void 0:l.call(n),d(Eg),d("div",{class:"vp-outlook-wrapper"},d(iu)),(c=n.after)==null?void 0:c.call(n)])):null})}}),kg=U({name:"NavbarBrand",setup(){const e=Qt(),t=po(),n=ve(),r=I(()=>n.value.home||e.value),o=I(()=>t.value.title),a=I(()=>n.value.navTitle??o.value),i=I(()=>n.value.logo?He(n.value.logo):null),l=I(()=>n.value.logoDark?He(n.value.logoDark):null);return()=>d(Ke,{to:r.value,class:"vp-brand"},()=>[i.value?d("img",{class:["vp-nav-logo",{light:!!l.value}],src:i.value,alt:""}):null,l.value?d("img",{class:["vp-nav-logo dark"],src:l.value,alt:""}):null,a.value?d("span",{class:["vp-site-name",{"hide-in-pad":i.value&&n.value.hideSiteNameOnMobile!==!1}]},a.value):null])}}),Ig=U({name:"NavbarLinks",setup(){const e=Xc();return()=>e.value.length?d("nav",{class:"vp-nav-links"},e.value.map(t=>d("div",{class:"nav-item hide-in-mobile"},"children"in t?d(Kc,{config:t}):d(Qe,{config:t})))):null}}),Pg=U({name:"RepoLink",components:{BitbucketIcon:Ga,GiteeIcon:Wa,GitHubIcon:qa,GitLabIcon:Ua,SourceIcon:Ka},setup(){const e=yg();return()=>e.value?d("div",{class:"nav-item vp-repo"},d("a",{class:"vp-repo-link",href:e.value.link,target:"_blank",rel:"noopener noreferrer","aria-label":e.value.label},d(Lt(`${e.value.type}Icon`),{style:{width:"1.25rem",height:"1.25rem",verticalAlign:"middle"}}))):null}}),lu=({active:e=!1},{emit:t})=>d("button",{type:"button",class:["vp-toggle-navbar-button",{"is-active":e}],"aria-label":"Toggle Navbar","aria-expanded":e,"aria-controls":"nav-screen",onClick:()=>t("toggle")},d("span",[d("span",{class:"vp-top"}),d("span",{class:"vp-middle"}),d("span",{class:"vp-bottom"})]));lu.displayName="ToggleNavbarButton";const ri=(e,{emit:t})=>d("button",{type:"button",class:"vp-toggle-sidebar-button",title:"Toggle Sidebar",onClick:()=>t("toggle")},d("span",{class:"icon"}));ri.displayName="ToggleSidebarButton";ri.emits=["toggle"];const xg=U({name:"OutlookButton",setup(){const{isSupported:e}=Xa(),t=mn(),n=wr(),r=be(),{canToggle:o}=Er(),a=j(!1),i=I(()=>!n.value&&t.value.fullscreen&&e);return ae(()=>r.value.path,()=>{a.value=!1}),()=>o.value||i.value||An?d("div",{class:"nav-item hide-in-mobile"},o.value&&!i.value&&!An?d(ou):i.value&&!o.value&&!An?d(au):d("button",{type:"button",class:["outlook-button",{open:a.value}],tabindex:"-1","aria-hidden":!0},[d(ru),d("div",{class:"outlook-dropdown"},d(iu))])):null}}),Rg=U({name:"NavBar",emits:["toggleSidebar"],slots:Object,setup(e,{emit:t,slots:n}){const r=ve(),{isMobile:o}=ei(),a=j(!1),i=I(()=>{const{navbarAutoHide:u="mobile"}=r.value;return u!=="none"&&(u==="always"||o.value)}),l=I(()=>r.value.navbarLayout||{start:["Brand"],center:["Links"],end:["Language","Repo","Outlook","Search"]}),c={Brand:kg,Language:bg,Links:Ig,Repo:Pg,Outlook:xg,Search:ot("Docsearch")?Lt("Docsearch"):ot("SearchBox")?Lt("SearchBox"):kl},s=u=>c[u]??(ot(u)?Lt(u):kl);return()=>{var u,f,p,v,_,T;return[d("header",{id:"navbar",class:["vp-navbar",{"auto-hide":i.value,"hide-icon":r.value.navbarIcon===!1}]},[d("div",{class:"vp-navbar-start"},[d(ri,{onToggle:()=>{a.value&&(a.value=!1),t("toggleSidebar")}}),(u=n.startBefore)==null?void 0:u.call(n),(l.value.start||[]).map(E=>d(s(E))),(f=n.startAfter)==null?void 0:f.call(n)]),d("div",{class:"vp-navbar-center"},[(p=n.centerBefore)==null?void 0:p.call(n),(l.value.center||[]).map(E=>d(s(E))),(v=n.centerAfter)==null?void 0:v.call(n)]),d("div",{class:"vp-navbar-end"},[(_=n.endBefore)==null?void 0:_.call(n),(l.value.end||[]).map(E=>d(s(E))),(T=n.endAfter)==null?void 0:T.call(n),d(lu,{active:a.value,onToggle:()=>{a.value=!a.value}})])]),d(Cg,{show:a.value,onClose:()=>{a.value=!1}},{before:()=>{var E;return(E=n.screenTop)==null?void 0:E.call(n)},after:()=>{var E;return(E=n.screenBottom)==null?void 0:E.call(n)}})]}}}),Og=U({name:"SidebarChild",props:{config:{type:Object,required:!0}},setup(e){const t=yt();return()=>[Uc(e.config,{class:["vp-sidebar-link",`vp-sidebar-${e.config.type}`,{active:Rn(t,e.config,!0)}],exact:!0}),Wc(e.config.children)]}}),Dg=U({name:"SidebarGroup",props:{config:{type:Object,required:!0},open:{type:Boolean,required:!0}},emits:["toggle"],setup(e,{emit:t}){const n=yt(),r=I(()=>Rn(n,e.config)),o=I(()=>Rn(n,e.config,!0));return()=>{const{collapsible:a,children:i=[],icon:l,prefix:c,link:s,text:u}=e.config;return d("section",{class:"vp-sidebar-group"},[d(a?"button":"p",{class:["vp-sidebar-heading",{clickable:a||s,exact:o.value,active:r.value}],...a?{type:"button",onClick:()=>t("toggle"),onKeydown:f=>{f.key==="Enter"&&t("toggle")}}:{}},[d(ze,{icon:l}),s?d(Qe,{class:"vp-sidebar-title",config:{text:u,link:s},noExternalLinkIcon:!0}):d("span",{class:"vp-sidebar-title"},u),a?d("span",{class:["vp-arrow",e.open?"down":"end"]}):null]),e.open||!a?d(su,{key:c,config:i}):null])}}}),su=U({name:"SidebarLinks",props:{config:{type:Array,required:!0}},setup(e){const t=yt(),n=j(-1),r=o=>{n.value=o===n.value?-1:o};return ae(()=>t.path,()=>{const o=e.config.findIndex(a=>qc(t,a));n.value=o},{immediate:!0,flush:"post"}),()=>d("ul",{class:"vp-sidebar-links"},e.config.map((o,a)=>d("li",o.type==="group"?d(Dg,{config:o,open:a===n.value,onToggle:()=>r(a)}):d(Og,{config:o}))))}}),Mg=U({name:"SideBar",slots:Object,setup(e,{slots:t}){const n=yt(),r=ve(),o=ni(),a=Be();return he(()=>{ae(()=>n.hash,i=>{const l=document.querySelector(`.vp-sidebar a.vp-sidebar-link[href="${n.path}${i}"]`);if(!l)return;const{top:c,height:s}=a.value.getBoundingClientRect(),{top:u,height:f}=l.getBoundingClientRect();uc+s&&l.scrollIntoView(!1)},{immediate:!0})}),()=>{var i,l,c;return d("aside",{ref:a,id:"sidebar",class:["vp-sidebar",{"hide-icon":r.value.sidebarIcon===!1}]},[(i=t.top)==null?void 0:i.call(t),((l=t.default)==null?void 0:l.call(t))||d(su,{config:o.value}),(c=t.bottom)==null?void 0:c.call(t)])}}}),cu=U({name:"CommonWrapper",props:{containerClass:{type:String,default:""},noNavbar:Boolean,noSidebar:Boolean,noToc:Boolean},slots:Object,setup(e,{slots:t}){const n=Dt(),r=be(),o=De(),a=ve(),{isMobile:i,isPC:l}=ei(),[c,s]=pl(!1),[u,f]=pl(!1),p=ni(),v=j(!1),_=I(()=>e.noNavbar||o.value.navbar===!1||a.value.navbar===!1?!1:!!(r.value.title||a.value.logo||a.value.repo||a.value.navbar)),T=I(()=>e.noSidebar?!1:o.value.sidebar!==!1&&p.value.length!==0&&!o.value.home),E=I(()=>e.noToc||o.value.home?!1:o.value.toc||a.value.toc!==!1&&o.value.toc!==!1),g={x:0,y:0},k=S=>{g.x=S.changedTouches[0].clientX,g.y=S.changedTouches[0].clientY},y=S=>{const q=S.changedTouches[0].clientX-g.x,H=S.changedTouches[0].clientY-g.y;Math.abs(q)>Math.abs(H)*1.5&&Math.abs(q)>40&&(q>0&&g.x<=80?s(!0):s(!1))},L=()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;let M=0;return Me("scroll",hm(()=>{const S=L();S<=58||S{S||s(!1)}),he(()=>{const S=Lc(document.body);ae(c,H=>{S.value=H});const q=n.afterEach(()=>{s(!1)});mr(()=>{S.value=!1,q()})}),()=>d(ot("GlobalEncrypt")?Lt("GlobalEncrypt"):pc,()=>d("div",{class:["theme-container",{"no-navbar":!_.value,"no-sidebar":!T.value&&!(t.sidebar||t.sidebarTop||t.sidebarBottom),"has-toc":E.value,"hide-navbar":v.value,"sidebar-collapsed":!i.value&&!l.value&&u.value,"sidebar-open":i.value&&c.value},e.containerClass,o.value.containerClass||""],onTouchStart:k,onTouchEnd:y},[_.value?d(Rg,{onToggleSidebar:()=>s()},{startBefore:()=>{var S;return(S=t.navbarStartBefore)==null?void 0:S.call(t)},startAfter:()=>{var S;return(S=t.navbarStartAfter)==null?void 0:S.call(t)},centerBefore:()=>{var S;return(S=t.navbarCenterBefore)==null?void 0:S.call(t)},centerAfter:()=>{var S;return(S=t.navbarCenterAfter)==null?void 0:S.call(t)},endBefore:()=>{var S;return(S=t.navbarEndBefore)==null?void 0:S.call(t)},endAfter:()=>{var S;return(S=t.navbarEndAfter)==null?void 0:S.call(t)},screenTop:()=>{var S;return(S=t.navScreenTop)==null?void 0:S.call(t)},screenBottom:()=>{var S;return(S=t.navScreenBottom)==null?void 0:S.call(t)}}):null,d(Yt,{name:"fade"},()=>c.value?d("div",{class:"vp-sidebar-mask",onClick:()=>s(!1)}):null),d(Yt,{name:"fade"},()=>i.value?null:d("div",{class:"toggle-sidebar-wrapper",onClick:()=>f()},d("span",{class:["arrow",u.value?"end":"start"]}))),d(Mg,{},{...t.sidebar?{default:()=>t.sidebar()}:{},top:()=>{var S;return(S=t.sidebarTop)==null?void 0:S.call(t)},bottom:()=>{var S;return(S=t.sidebarBottom)==null?void 0:S.call(t)}}),t.default(),d(gg)]))}}),da=(e,{slots:t})=>{var f,p;const{bgImage:n,bgImageDark:r,bgImageStyle:o,color:a,description:i,image:l,imageDark:c,header:s,features:u=[]}=e;return d("div",{class:"vp-feature-wrapper"},[n?d("div",{class:["vp-feature-bg",{light:r}],style:[{"background-image":`url(${n})`},o]}):null,r?d("div",{class:"vp-feature-bg dark",style:[{"background-image":`url(${r})`},o]}):null,d("div",{class:"vp-feature",style:a?{color:a}:{}},[((f=t.image)==null?void 0:f.call(t,e))||[l?d("img",{class:["vp-feature-image",{light:c}],src:He(l),alt:""}):null,c?d("img",{class:"vp-feature-image dark",src:He(c),alt:""}):null],((p=t.info)==null?void 0:p.call(t,e))||[s?d("h2",{class:"vp-feature-header"},s):null,i?d("p",{class:"vp-feature-description",innerHTML:i}):null],u.length?d("div",{class:"vp-features"},u.map(({icon:v,title:_,details:T,link:E})=>{const g=[d("h3",{class:"vp-feature-title"},[d(ze,{icon:v}),d("span",{innerHTML:_})]),d("p",{class:"vp-feature-details",innerHTML:T})];return E?dn(E)?d("a",{class:"vp-feature-item link",href:E,"aria-label":_,target:"_blank"},g):d(Ke,{class:"vp-feature-item link",to:E,"aria-label":_},()=>g):d("div",{class:"vp-feature-item"},g)})):null])])};da.displayName="FeaturePanel";const wn=U({name:"DropTransition",props:{type:{type:String,default:"single"},delay:{type:Number,default:0},duration:{type:Number,default:.25},appear:Boolean},slots:Object,setup(e,{slots:t}){const n=o=>{o.style.transition=`transform ${e.duration}s ease-in-out ${e.delay}s, opacity ${e.duration}s ease-in-out ${e.delay}s`,o.style.transform="translateY(-20px)",o.style.opacity="0"},r=o=>{o.style.transform="translateY(0)",o.style.opacity="1"};return()=>d(e.type==="single"?Yt:Vs,{name:"drop",appear:e.appear,onAppear:n,onAfterAppear:r,onEnter:n,onAfterEnter:r,onBeforeLeave:n},()=>t.default())}}),Ng=U({name:"HeroInfo",slots:Object,setup(e,{slots:t}){const n=De(),r=po(),o=I(()=>n.value.heroFullScreen??!1),a=I(()=>{const{heroText:s,tagline:u}=n.value;return{text:s??r.value.title??"Hello",tagline:u??r.value.description??"",isFullScreen:o.value}}),i=I(()=>{const{heroText:s,heroImage:u,heroImageDark:f,heroAlt:p,heroImageStyle:v}=n.value;return{image:u?He(u):null,imageDark:f?He(f):null,heroStyle:v,alt:p||s||"",isFullScreen:o.value}}),l=I(()=>{const{bgImage:s,bgImageDark:u,bgImageStyle:f}=n.value;return{image:Pe(s)?He(s):null,imageDark:Pe(u)?He(u):null,bgStyle:f,isFullScreen:o.value}}),c=I(()=>n.value.actions??[]);return()=>{var s,u,f;return d("header",{class:["vp-hero-info-wrapper",{fullscreen:o.value}]},[((s=t.heroBg)==null?void 0:s.call(t,l.value))||[l.value.image?d("div",{class:["vp-hero-mask",{light:l.value.imageDark}],style:[{"background-image":`url(${l.value.image})`},l.value.bgStyle]}):null,l.value.imageDark?d("div",{class:"vp-hero-mask dark",style:[{"background-image":`url(${l.value.imageDark})`},l.value.bgStyle]}):null],d("div",{class:"vp-hero-info"},[((u=t.heroImage)==null?void 0:u.call(t,i.value))||d(wn,{appear:!0,type:"group"},()=>[i.value.image?d("img",{key:"light",class:["vp-hero-image",{light:i.value.imageDark}],style:i.value.heroStyle,src:i.value.image,alt:i.value.alt}):null,i.value.imageDark?d("img",{key:"dark",class:"vp-hero-image dark",style:i.value.heroStyle,src:i.value.imageDark,alt:i.value.alt}):null]),((f=t.heroInfo)==null?void 0:f.call(t,a.value))??d("div",{class:"vp-hero-infos"},[a.value.text?d(wn,{appear:!0,delay:.04},()=>d("h1",{id:"main-title"},a.value.text)):null,a.value.tagline?d(wn,{appear:!0,delay:.08},()=>d("p",{id:"main-description",innerHTML:a.value.tagline})):null,c.value.length?d(wn,{appear:!0,delay:.12},()=>d("p",{class:"vp-hero-actions"},c.value.map(p=>d(Qe,{class:["vp-hero-action",p.type||"default"],config:p,noExternalLinkIcon:!0},p.icon?{before:()=>d(ze,{icon:p.icon})}:{})))):null])])])}}}),uu=(e,{slots:t})=>{var p,v,_;const{bgImage:n,bgImageDark:r,bgImageStyle:o,color:a,description:i,image:l,imageDark:c,header:s,highlights:u=[],type:f="un-order"}=e;return d("div",{class:"vp-highlight-wrapper",style:a?{color:a}:{}},[n?d("div",{class:["vp-highlight-bg",{light:r}],style:[{"background-image":`url(${n})`},o]}):null,r?d("div",{class:"vp-highlight-bg dark",style:[{"background-image":`url(${r})`},o]}):null,d("div",{class:"vp-highlight"},[((p=t.image)==null?void 0:p.call(t,e))||[l?d("img",{class:["vp-highlight-image",{light:c}],src:He(l),alt:""}):null,c?d("img",{class:"vp-highlight-image dark",src:He(c),alt:""}):null],((v=t.info)==null?void 0:v.call(t,e))||[d("div",{class:"vp-highlight-info-wrapper"},d("div",{class:"vp-highlight-info"},[s?d("h2",{class:"vp-highlight-header",innerHTML:s}):null,i?d("p",{class:"vp-highlight-description",innerHTML:i}):null,((_=t.highlights)==null?void 0:_.call(t,u))||d(f==="order"?"ol":f==="no-order"?"dl":"ul",{class:"vp-highlights"},u.map(({icon:T,title:E,details:g,link:k})=>{const y=[d(f==="no-order"?"dt":"h3",{class:"vp-highlight-title"},[T?d(ze,{class:"vp-highlight-icon",icon:T}):null,d("span",{innerHTML:E})]),g?d(f==="no-order"?"dd":"p",{class:"vp-highlight-details",innerHTML:g}):null];return d(f==="no-order"?"div":"li",{class:["vp-highlight-item-wrapper",{link:k}]},k?dn(k)?d("a",{class:"vp-highlight-item link",href:k,"aria-label":E,target:"_blank"},y):d(Ke,{class:"vp-highlight-item link",to:k,"aria-label":E},()=>y):d("div",{class:"vp-highlight-item"},y))}))]))]])])};uu.displayName="HighlightPanel";const bo=({custom:e})=>d(ic,{class:["theme-hope-content",{custom:e}]});bo.displayName="MarkdownContent";bo.props={custom:Boolean};const Vg=U({name:"HomePage",slots:Object,setup(e,{slots:t}){const n=wr(),r=De(),o=I(()=>{const{features:i}=r.value;return la(i)?i:null}),a=I(()=>{const{highlights:i}=r.value;return la(i)?i:null});return()=>{var i,l,c,s;return d("main",{id:"main-content",class:["vp-project-home ",{pure:n.value}],"aria-labelledby":r.value.heroText===null?"":"main-title"},[(i=t.top)==null?void 0:i.call(t),d(Ng),((l=a.value)==null?void 0:l.map(u=>"features"in u?d(da,u):d(uu,u)))||(o.value?d(wn,{appear:!0,delay:.24},()=>d(da,{features:o.value})):null),(c=t.center)==null?void 0:c.call(t),d(wn,{appear:!0,delay:.32},()=>d(bo)),(s=t.bottom)==null?void 0:s.call(t)])}}}),$g=U({name:"BreadCrumb",setup(){const e=be(),t=Qt(),n=De(),r=ve(),o=Be([]),a=I(()=>(n.value.breadcrumb||n.value.breadcrumb!==!1&&r.value.breadcrumb!==!1)&&o.value.length>1),i=I(()=>n.value.breadcrumbIcon||n.value.breadcrumbIcon!==!1&&r.value.breadcrumbIcon!==!1),l=()=>{const c=pg(e.value.path,t.value).map(({link:s,name:u})=>{const{path:f,meta:p}=fo(s);return p?{title:p[Tt.shortTitle]||p[Tt.title]||u,icon:p[Tt.icon],path:f}:null}).filter(s=>s!==null);c.length>1&&(o.value=c)};return he(()=>{ae(()=>e.value.path,l,{immediate:!0})}),()=>d("nav",{class:["vp-breadcrumb",{disable:!a.value}]},a.value?d("ol",{vocab:"https://schema.org/",typeof:"BreadcrumbList"},o.value.map((c,s)=>d("li",{class:{"is-active":o.value.length-1===s},property:"itemListElement",typeof:"ListItem"},[d(Ke,{to:c.path,property:"item",typeof:"WebPage"},()=>[i.value?d(ze,{icon:c.icon}):null,d("span",{property:"name"},c.title||"Unknown")]),d("meta",{property:"position",content:s+1})]))):[])}}),Il=e=>e===!1||_r(e)?e:Pe(e)?Ln(e,!0):null,fa=(e,t,n)=>{const r=e.findIndex(o=>o.link===t);if(r!==-1){const o=e[r+n];return o!=null&&o.link?o:null}for(const o of e)if(o.children){const a=fa(o.children,t,n);if(a)return a}return null},Hg=U({name:"PageNav",setup(){const e=ve(),t=De(),n=ni(),r=be(),o=Xv(),a=I(()=>{const l=Il(t.value.prev);return l===!1?null:l||(e.value.prevLink===!1?null:fa(n.value,r.value.path,-1))}),i=I(()=>{const l=Il(t.value.next);return l===!1?null:l||(e.value.nextLink===!1?null:fa(n.value,r.value.path,1))});return Me("keydown",l=>{l.altKey&&(l.key==="ArrowRight"?i.value&&(o(i.value.link),l.preventDefault()):l.key==="ArrowLeft"&&a.value&&(o(a.value.link),l.preventDefault()))}),()=>a.value||i.value?d("nav",{class:"vp-page-nav"},[a.value?d(Qe,{class:"prev",config:a.value},()=>{var l,c;return[d("div",{class:"hint"},[d("span",{class:"arrow start"}),e.value.metaLocales.prev]),d("div",{class:"link"},[d(ze,{icon:(l=a.value)==null?void 0:l.icon}),(c=a.value)==null?void 0:c.text])]}):null,i.value?d(Qe,{class:"next",config:i.value},()=>{var l,c;return[d("div",{class:"hint"},[e.value.metaLocales.next,d("span",{class:"arrow end"})]),d("div",{class:"link"},[(l=i.value)==null?void 0:l.text,d(ze,{icon:(c=i.value)==null?void 0:c.icon})])]}):null]):null}}),du=()=>d(ke,{name:"author"},()=>d("path",{d:"M649.6 633.6c86.4-48 147.2-144 147.2-249.6 0-160-128-288-288-288s-288 128-288 288c0 108.8 57.6 201.6 147.2 249.6-121.6 48-214.4 153.6-240 288-3.2 9.6 0 19.2 6.4 25.6 3.2 9.6 12.8 12.8 22.4 12.8h704c9.6 0 19.2-3.2 25.6-12.8 6.4-6.4 9.6-16 6.4-25.6-25.6-134.4-121.6-240-243.2-288z"}));du.displayName="AuthorIcon";const fu=()=>d(ke,{name:"calendar"},()=>d("path",{d:"M716.4 110.137c0-18.753-14.72-33.473-33.472-33.473-18.753 0-33.473 14.72-33.473 33.473v33.473h66.993v-33.473zm-334.87 0c0-18.753-14.72-33.473-33.473-33.473s-33.52 14.72-33.52 33.473v33.473h66.993v-33.473zm468.81 33.52H716.4v100.465c0 18.753-14.72 33.473-33.472 33.473a33.145 33.145 0 01-33.473-33.473V143.657H381.53v100.465c0 18.753-14.72 33.473-33.473 33.473a33.145 33.145 0 01-33.473-33.473V143.657H180.6A134.314 134.314 0 0046.66 277.595v535.756A134.314 134.314 0 00180.6 947.289h669.74a134.36 134.36 0 00133.94-133.938V277.595a134.314 134.314 0 00-133.94-133.938zm33.473 267.877H147.126a33.145 33.145 0 01-33.473-33.473c0-18.752 14.72-33.473 33.473-33.473h736.687c18.752 0 33.472 14.72 33.472 33.473a33.145 33.145 0 01-33.472 33.473z"}));fu.displayName="CalendarIcon";const pu=()=>d(ke,{name:"category"},()=>d("path",{d:"M148.41 106.992h282.176c22.263 0 40.31 18.048 40.31 40.31V429.48c0 22.263-18.047 40.31-40.31 40.31H148.41c-22.263 0-40.311-18.047-40.311-40.31V147.302c0-22.263 18.048-40.31 40.311-40.31zM147.556 553.478H429.73c22.263 0 40.311 18.048 40.311 40.31v282.176c0 22.263-18.048 40.312-40.31 40.312H147.555c-22.263 0-40.311-18.049-40.311-40.312V593.79c0-22.263 18.048-40.311 40.31-40.311zM593.927 106.992h282.176c22.263 0 40.31 18.048 40.31 40.31V429.48c0 22.263-18.047 40.31-40.31 40.31H593.927c-22.263 0-40.311-18.047-40.311-40.31V147.302c0-22.263 18.048-40.31 40.31-40.31zM730.22 920.502H623.926c-40.925 0-74.22-33.388-74.22-74.425V623.992c0-41.038 33.387-74.424 74.425-74.424h222.085c41.038 0 74.424 33.226 74.424 74.067v114.233c0 10.244-8.304 18.548-18.547 18.548s-18.548-8.304-18.548-18.548V623.635c0-20.388-16.746-36.974-37.33-36.974H624.13c-20.585 0-37.331 16.747-37.331 37.33v222.086c0 20.585 16.654 37.331 37.126 37.331H730.22c10.243 0 18.547 8.304 18.547 18.547 0 10.244-8.304 18.547-18.547 18.547z"}));pu.displayName="CategoryIcon";const hu=()=>d(ke,{name:"print"},()=>d("path",{d:"M819.2 364.8h-44.8V128c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v236.8h-44.8C145.067 364.8 96 413.867 96 473.6v192c0 59.733 49.067 108.8 108.8 108.8h44.8V896c0 17.067 14.933 32 32 32h460.8c17.067 0 32-14.933 32-32V774.4h44.8c59.733 0 108.8-49.067 108.8-108.8v-192c0-59.733-49.067-108.8-108.8-108.8zM313.6 160h396.8v204.8H313.6V160zm396.8 704H313.6V620.8h396.8V864zM864 665.6c0 25.6-19.2 44.8-44.8 44.8h-44.8V588.8c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v121.6h-44.8c-25.6 0-44.8-19.2-44.8-44.8v-192c0-25.6 19.2-44.8 44.8-44.8h614.4c25.6 0 44.8 19.2 44.8 44.8v192z"}));hu.displayName="PrintIcon";const mu=()=>d(ke,{name:"tag"},()=>d("path",{d:"M939.902 458.563L910.17 144.567c-1.507-16.272-14.465-29.13-30.737-30.737L565.438 84.098h-.402c-3.215 0-5.726 1.005-7.634 2.913l-470.39 470.39a10.004 10.004 0 000 14.164l365.423 365.424c1.909 1.908 4.42 2.913 7.132 2.913s5.223-1.005 7.132-2.913l470.39-470.39c2.01-2.11 3.014-5.023 2.813-8.036zm-240.067-72.121c-35.458 0-64.286-28.828-64.286-64.286s28.828-64.285 64.286-64.285 64.286 28.828 64.286 64.285-28.829 64.286-64.286 64.286z"}));mu.displayName="TagIcon";const vu=()=>d(ke,{name:"timer"},()=>d("path",{d:"M799.387 122.15c4.402-2.978 7.38-7.897 7.38-13.463v-1.165c0-8.933-7.38-16.312-16.312-16.312H256.33c-8.933 0-16.311 7.38-16.311 16.312v1.165c0 5.825 2.977 10.874 7.637 13.592 4.143 194.44 97.22 354.963 220.201 392.763-122.204 37.542-214.893 196.511-220.2 389.397-4.661 5.049-7.638 11.651-7.638 19.03v5.825h566.49v-5.825c0-7.379-2.849-13.981-7.509-18.9-5.049-193.016-97.867-351.985-220.2-389.527 123.24-37.67 216.446-198.453 220.588-392.892zM531.16 450.445v352.632c117.674 1.553 211.787 40.778 211.787 88.676H304.097c0-48.286 95.149-87.382 213.728-88.676V450.445c-93.077-3.107-167.901-81.297-167.901-177.093 0-8.803 6.99-15.793 15.793-15.793 8.803 0 15.794 6.99 15.794 15.793 0 80.261 63.69 145.635 142.01 145.635s142.011-65.374 142.011-145.635c0-8.803 6.99-15.793 15.794-15.793s15.793 6.99 15.793 15.793c0 95.019-73.789 172.82-165.96 177.093z"}));vu.displayName="TimerIcon";const gu=()=>d(ke,{name:"word"},()=>[d("path",{d:"M518.217 432.64V73.143A73.143 73.143 0 01603.43 1.097a512 512 0 01419.474 419.474 73.143 73.143 0 01-72.046 85.212H591.36a73.143 73.143 0 01-73.143-73.143z"}),d("path",{d:"M493.714 566.857h340.297a73.143 73.143 0 0173.143 85.577A457.143 457.143 0 11371.566 117.76a73.143 73.143 0 0185.577 73.143v339.383a36.571 36.571 0 0036.571 36.571z"})]);gu.displayName="WordIcon";const en=()=>{const e=ve();return I(()=>e.value.metaLocales)},Bg={GitHub:":repo/edit/:branch/:path",GitLab:":repo/-/edit/:branch/:path",Gitee:":repo/edit/:branch/:path",Bitbucket:":repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default"},Fg=({docsRepo:e,docsBranch:t,docsDir:n,filePathRelative:r,editLinkPattern:o})=>{if(!r)return null;const a=Ya(e);let i;return o?i=o:a!==null&&(i=Bg[a]),i?i.replace(/:repo/u,Xt(e)?e:`https://github.com/${e}`).replace(/:branch/u,t).replace(/:path/u,Bs(`${Va(n)}/${r}`)):null},jg=()=>{const e=ve(),t=be(),n=De();return I(()=>{const{repo:r,docsRepo:o=r,docsBranch:a="main",docsDir:i="",editLink:l,editLinkPattern:c=""}=e.value;if(!(n.value.editLink??l??!0)||!o)return null;const u=Fg({docsRepo:o,docsBranch:a,docsDir:i,editLinkPattern:c,filePathRelative:t.value.filePathRelative});return u?{text:e.value.metaLocales.editLink,link:u}:null})},zg=()=>{const e=po(),t=ve(),n=be(),r=De();return I(()=>{var i,l;return!(r.value.lastUpdated??t.value.lastUpdated??!0)||!((i=n.value.git)!=null&&i.updatedTime)?null:new Date((l=n.value.git)==null?void 0:l.updatedTime).toLocaleString(e.value.lang)})},qg=()=>{const e=ve(),t=be(),n=De();return I(()=>{var o;return n.value.contributors??e.value.contributors??!0?((o=t.value.git)==null?void 0:o.contributors)??null:null})},Ug=U({name:"AuthorInfo",inheritAttrs:!1,props:{author:{type:Array,required:!0},pure:Boolean},setup(e){const t=en();return()=>e.author.length?d("span",{class:"page-author-info","aria-label":`${t.value.author}${e.pure?"":"🖊"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(du),d("span",e.author.map(n=>n.url?d("a",{class:"page-author-item",href:n.url,target:"_blank",rel:"noopener noreferrer"},n.name):d("span",{class:"page-author-item"},n.name))),d("span",{property:"author",content:e.author.map(n=>n.name).join(", ")})]):null}}),Wg=U({name:"CategoryInfo",inheritAttrs:!1,props:{category:{type:Array,required:!0},pure:Boolean},setup(e){const t=Dt(),n=be(),r=en(),o=(a,i="")=>{i&&n.value.path!==i&&(a.preventDefault(),t.push(i))};return()=>e.category.length?d("span",{class:"page-category-info","aria-label":`${r.value.category}${e.pure?"":"🌈"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(pu),e.category.map(({name:a,path:i})=>d("span",{class:["page-category-item",{[`category${hc(a,9)}`]:!e.pure,clickable:i}],role:i?"navigation":"",onClick:l=>o(l,i)},a)),d("meta",{property:"articleSection",content:e.category.map(({name:a})=>a).join(",")})]):null}}),Gg=U({name:"DateInfo",inheritAttrs:!1,props:{date:{type:Object,default:null},localizedDate:{type:String,default:""},pure:Boolean},setup(e){const t=Ba(),n=en();return()=>e.date?d("span",{class:"page-date-info","aria-label":`${n.value.date}${e.pure?"":"📅"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(fu),d("span",d(ho,()=>e.localizedDate||e.date.toLocaleDateString(t.value))),d("meta",{property:"datePublished",content:e.date.toISOString()||""})]):null}}),Kg=U({name:"OriginalInfo",inheritAttrs:!1,props:{isOriginal:Boolean},setup(e){const t=en();return()=>e.isOriginal?d("span",{class:"page-original-info"},t.value.origin):null}}),Yg=U({name:"ReadingTimeInfo",inheritAttrs:!1,props:{readingTime:{type:Object,default:()=>null},readingTimeLocale:{type:Object,default:()=>null},pure:Boolean},setup(e){const t=en(),n=I(()=>{if(!e.readingTime)return null;const{minutes:r}=e.readingTime;return r<1?"PT1M":`PT${Math.round(r)}M`});return()=>{var r,o;return(r=e.readingTimeLocale)!=null&&r.time?d("span",{class:"page-reading-time-info","aria-label":`${t.value.readingTime}${e.pure?"":"⌛"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(vu),d("span",(o=e.readingTimeLocale)==null?void 0:o.time),d("meta",{property:"timeRequired",content:n.value})]):null}}}),Jg=U({name:"TagInfo",inheritAttrs:!1,props:{tag:{type:Array,default:()=>[]},pure:Boolean},setup(e){const t=Dt(),n=be(),r=en(),o=(a,i="")=>{i&&n.value.path!==i&&(a.preventDefault(),t.push(i))};return()=>e.tag.length?d("span",{class:"page-tag-info","aria-label":`${r.value.tag}${e.pure?"":"🏷"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(mu),e.tag.map(({name:a,path:i})=>d("span",{class:["page-tag-item",{[`tag${hc(a,9)}`]:!e.pure,clickable:i}],role:i?"navigation":"",onClick:l=>o(l,i)},a)),d("meta",{property:"keywords",content:e.tag.map(({name:a})=>a).join(",")})]):null}}),Xg=U({name:"ReadTimeInfo",inheritAttrs:!1,props:{readingTime:{type:Object,default:()=>null},readingTimeLocale:{type:Object,default:()=>null},pure:Boolean},setup(e){const t=en();return()=>{var n,r,o;return(n=e.readingTimeLocale)!=null&&n.words?d("span",{class:"page-word-info","aria-label":`${t.value.words}${e.pure?"":"🔠"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(gu),d("span",(r=e.readingTimeLocale)==null?void 0:r.words),d("meta",{property:"wordCount",content:(o=e.readingTime)==null?void 0:o.words})]):null}}}),Qg=U({name:"PageInfo",components:{AuthorInfo:Ug,CategoryInfo:Wg,DateInfo:Gg,OriginalInfo:Kg,PageViewInfo:()=>null,ReadingTimeInfo:Yg,TagInfo:Jg,WordInfo:Xg},props:{items:{type:[Array,Boolean],default:()=>["Author","Original","Date","PageView","ReadingTime","Category","Tag"]},info:{type:Object,required:!0}},setup(e){const t=wr();return()=>e.items?d("div",{class:"page-info"},e.items.map(n=>d(Lt(`${n}Info`),{...e.info,pure:t.value}))):null}}),Zg=U({name:"PageTitle",setup(){const e=be(),t=De(),n=ve(),{info:r,items:o}=og();return()=>d("div",{class:"vp-page-title"},[d("h1",[n.value.titleIcon===!1?null:d(ze,{icon:t.value.icon}),e.value.title]),d(Qg,{info:r.value,...o.value===null?{}:{items:o.value}}),d("hr")])}}),_u=()=>d(ke,{name:"edit"},()=>[d("path",{d:"M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"}),d("path",{d:"M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"})]);_u.displayName="EditIcon";const e1=U({name:"PageMeta",setup(){const e=ve(),t=jg(),n=zg(),r=qg();return()=>{const{metaLocales:o}=e.value;return d("footer",{class:"page-meta"},[t.value?d("div",{class:"meta-item edit-link"},d(Qe,{class:"label",config:t.value},{before:()=>d(_u)})):null,d("div",{class:"meta-item git-info"},[n.value?d("div",{class:"update-time"},[d("span",{class:"label"},`${o.lastUpdated}: `),d(ho,()=>d("span",{class:"info"},n.value))]):null,r.value&&r.value.length?d("div",{class:"contributors"},[d("span",{class:"label"},`${o.contributors}: `),r.value.map(({email:a,name:i},l)=>[d("span",{class:"contributor",title:`email: ${a}`},i),l!==r.value.length-1?",":""])]):null])])}}}),t1=U({name:"PrintButton",setup(){const e=mn(),t=ve();return()=>e.value.print===!1?null:d("button",{type:"button",class:"print-button",title:t.value.metaLocales.print,onClick:()=>{window.print()}},d(hu))}}),n1=({title:e,level:t,slug:n})=>d(Ke,{to:`#${n}`,class:["toc-link",`level${t}`]},()=>e),pa=(e,t)=>{const n=yt();return e.length&&t>0?d("ul",{class:"toc-list"},e.map(r=>{const o=pa(r.children,t-1);return[d("li",{class:["toc-item",{active:n.hash===`#${r.slug}`}]},n1(r)),o?d("li",o):null]})):null},r1=U({name:"TOC",props:{items:{type:Array,default:()=>[]},headerDepth:{type:Number,default:2}},slots:Object,setup(e,{slots:t}){const n=yt(),r=be(),o=en(),a=Be(),i=j("-1.7rem"),l=s=>{var u;(u=a.value)==null||u.scrollTo({top:s,behavior:"smooth"})},c=()=>{if(a.value){const s=document.querySelector(".toc-item.active");s?i.value=`${s.getBoundingClientRect().top-a.value.getBoundingClientRect().top+a.value.scrollTop}px`:i.value="-1.7rem"}else i.value="-1.7rem"};return he(()=>{ae(()=>n.hash,s=>{if(a.value){const u=document.querySelector(`#toc a.toc-link[href$="${s}"]`);if(!u)return;const{top:f,height:p}=a.value.getBoundingClientRect(),{top:v,height:_}=u.getBoundingClientRect();vf+p&&l(a.value.scrollTop+v+_-f-p)}}),ae(()=>n.fullPath,c,{flush:"post",immediate:!0})}),()=>{var u,f;const s=e.items.length?pa(e.items,e.headerDepth):r.value.headers?pa(r.value.headers,e.headerDepth):null;return s?d("div",{class:"toc-place-holder"},[d("aside",{id:"toc"},[(u=t.before)==null?void 0:u.call(t),d("div",{class:"toc-header"},[o.value.toc,d(t1)]),d("div",{class:"toc-wrapper",ref:a},[s,d("div",{class:"toc-marker",style:{top:i.value}})]),(f=t.after)==null?void 0:f.call(t)])]):null}}}),o1=U({name:"NormalPage",slots:Object,setup(e,{slots:t}){const n=De(),{isDarkmode:r}=Er(),o=ve(),a=I(()=>n.value.toc||n.value.toc!==!1&&o.value.toc!==!1);return()=>d("main",{id:"main-content",class:"vp-page"},d(ot("LocalEncrypt")?Lt("LocalEncrypt"):pc,()=>{var i,l,c,s;return[(i=t.top)==null?void 0:i.call(t),n.value.cover?d("div",{class:"page-cover"},d("img",{src:He(n.value.cover),alt:"","no-view":""})):null,d($g),d(Zg),a.value?d(r1,{headerDepth:n.value.headerDepth??o.value.headerDepth??2},{before:()=>{var u;return(u=t.tocBefore)==null?void 0:u.call(t)},after:()=>{var u;return(u=t.tocAfter)==null?void 0:u.call(t)}}):null,(l=t.contentBefore)==null?void 0:l.call(t),d(bo),(c=t.contentAfter)==null?void 0:c.call(t),d(e1),d(Hg),ot("CommentService")?d(Lt("CommentService"),{darkmode:r.value}):null,(s=t.bottom)==null?void 0:s.call(t)]}))}}),yu=U({name:"SkipLink",props:{content:{type:String,default:"main-content"}},setup(e){const t=be(),n=ve(),r=Be(),o=({target:a})=>{const i=document.querySelector(a.hash);if(i){const l=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",l)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",l),i.focus(),window.scrollTo(0,0)}};return he(()=>{ae(()=>t.value.path,()=>r.value.focus())}),()=>[d("span",{ref:r,tabindex:"-1"}),d("a",{href:`#${e.content}`,class:"vp-skip-link sr-only",onClick:o},n.value.routeLocales.skipToContent)]}}),a1=U({name:"FadeSlideY",slots:Object,setup(e,{slots:t}){const{resolve:n,pending:r}=jc();return()=>d(Yt,{name:"fade-slide-y",mode:"out-in",onBeforeEnter:n,onBeforeLeave:r},()=>{var o;return(o=t.default)==null?void 0:o.call(t)})}}),i1=["innerHTML"],l1=U({__name:"Layout",setup(e){const t=be(),n=De(),r=[` + + `,` + + `,` + + `,` + + `],o=j("");function a(i){for(var l=i.length,c,s;l>0;)c=Math.floor(Math.random()*l),s=i[l-1],i[l-1]=i[c],i[c]=s,l--;return i}return ae(()=>t.value.path,()=>{if(t.value.path.startsWith("/en/")){o.value="";return}a(r),o.value=`
+${r.slice(0,4).join(` + `)} +
+ + + 成为赞助商 + +
+`}),(i,l)=>(an(),Ls(Fe,null,[Te(Ce(yu)),Te(Ce(cu),null,qd({default:un(()=>[Ce(n).home?(an(),Qn(Ce(Vg),{key:0})):(an(),Qn(Ce(a1),{key:1},{default:un(()=>[(an(),Qn(Ce(o1),{key:Ce(t).path}))]),_:1}))]),_:2},[Ce(n).home?void 0:{name:"sidebarTop",fn:un(()=>[sr("div",{innerHTML:o.value},null,8,i1)]),key:"0"}]),1024)],64))}}),bu=(e,t)=>{const n=e.__vccOpts||e;for(const[r,o]of t)n[r]=o;return n},s1=bu(l1,[["__file","Layout.vue"]]),c1=U({name:"NotFoundHint",setup(){const e=ve(),t=()=>{const n=e.value.routeLocales.notFoundMsg;return n[Math.floor(Math.random()*n.length)]};return()=>d("div",{class:"not-found-hint"},[d("p",{class:"error-code"},"404"),d("h1",{class:"error-title"},e.value.routeLocales.notFoundTitle),d("p",{class:"error-hint"},t())])}}),u1=U({name:"NotFound",slots:Object,setup(e,{slots:t}){const n=Qt(),r=ve(),{navigate:o}=oa({to:r.value.home??n.value});return()=>[d(yu),d(cu,{noSidebar:!0},()=>{var a;return d("main",{id:"main-content",class:"vp-page not-found"},((a=t.default)==null?void 0:a.call(t))||[d(c1),d("div",{class:"actions"},[d("button",{type:"button",class:"action-button",onClick:()=>{window.history.go(-1)}},r.value.routeLocales.back),d("button",{type:"button",class:"action-button",onClick:()=>o()},r.value.routeLocales.home)])])})]}});Ym(e=>{const t=e.t,n=e.I!==!1,r=e.i;return n?{title:t,content:r?()=>[d(ze,{icon:r}),t]:null,order:e.O,index:e.I}:null});const d1=it({enhance:({app:e,router:t})=>{const{scrollBehavior:n}=t.options;t.options.scrollBehavior=async(...r)=>(await jc().wait(),n(...r)),dg(e),e.component("HopeIcon",ze)},setup:()=>{fg(),vg()},layouts:{Layout:s1,NotFound:u1}}),f1=({icon:e})=>d("svg",{class:"icon svg-icon","aria-hidden":"true"},d("use",{"xlink:href":`#icon-${e}`}));/** + * Vue 3 Carousel 0.3.1 + * (c) 2023 + * @license MIT + */const xe={itemsToShow:1,itemsToScroll:1,modelValue:0,transition:300,autoplay:0,snapAlign:"center",wrapAround:!1,throttle:16,pauseAutoplayOnHover:!1,mouseDrag:!0,touchDrag:!0,dir:"ltr",breakpoints:void 0,i18n:{ariaNextSlide:"Navigate to next slide",ariaPreviousSlide:"Navigate to previous slide",ariaNavigateToSlide:"Navigate to slide {slideNumber}",ariaGallery:"Gallery",itemXofY:"Item {currentSlide} of {slidesCount}",iconArrowUp:"Arrow pointing upwards",iconArrowDown:"Arrow pointing downwards",iconArrowRight:"Arrow pointing to the right",iconArrowLeft:"Arrow pointing to the left"}},Pl={itemsToShow:{default:xe.itemsToShow,type:Number},itemsToScroll:{default:xe.itemsToScroll,type:Number},wrapAround:{default:xe.wrapAround,type:Boolean},throttle:{default:xe.throttle,type:Number},snapAlign:{default:xe.snapAlign,validator(e){return["start","end","center","center-even","center-odd"].includes(e)}},transition:{default:xe.transition,type:Number},breakpoints:{default:xe.breakpoints,type:Object},autoplay:{default:xe.autoplay,type:Number},pauseAutoplayOnHover:{default:xe.pauseAutoplayOnHover,type:Boolean},modelValue:{default:void 0,type:Number},mouseDrag:{default:xe.mouseDrag,type:Boolean},touchDrag:{default:xe.touchDrag,type:Boolean},dir:{default:xe.dir,validator(e){return["rtl","ltr"].includes(e)}},i18n:{default:xe.i18n,type:Object},settings:{default(){return{}},type:Object}};function p1({config:e,slidesCount:t}){const{snapAlign:n,wrapAround:r,itemsToShow:o=1}=e;if(r)return Math.max(t-1,0);let a;switch(n){case"start":a=t-o;break;case"end":a=t-1;break;case"center":case"center-odd":a=t-Math.ceil((o-.5)/2);break;case"center-even":a=t-Math.ceil(o/2);break;default:a=0;break}return Math.max(a,0)}function h1({config:e,slidesCount:t}){const{wrapAround:n,snapAlign:r,itemsToShow:o=1}=e;let a=0;if(n||o>t)return a;switch(r){case"start":a=0;break;case"end":a=o-1;break;case"center":case"center-odd":a=Math.floor((o-1)/2);break;case"center-even":a=Math.floor((o-2)/2);break;default:a=0;break}return a}function ha({val:e,max:t,min:n}){return t{var r;return n.type===Fe?[...t,...wu(n.children)]:((r=n.type)===null||r===void 0?void 0:r.name)==="CarouselSlide"?[...t,n]:t},[]):[]}function Xr({val:e,max:t,min:n=0}){return e>t?Xr({val:e-(t+1),max:t,min:n}):en=!1,t))}:e}function g1(e,t){let n;return function(...r){n&&clearTimeout(n),n=setTimeout(()=>{e(...r),n=null},t)}}function Eu(e="",t={}){return Object.entries(t).reduce((n,[r,o])=>n.replace(`{${r}}`,String(o)),e)}var _1=U({name:"ARIA",setup(){const e=oe("config",at(Object.assign({},xe))),t=oe("currentSlide",j(0)),n=oe("slidesCount",j(0));return()=>d("div",{class:["carousel__liveregion","carousel__sr-only"],"aria-live":"polite","aria-atomic":"true"},Eu(e.i18n.itemXofY,{currentSlide:t.value+1,slidesCount:n.value}))}}),y1=U({name:"Carousel",props:Pl,setup(e,{slots:t,emit:n,expose:r}){var o;const a=j(null),i=j([]),l=j(0),c=j(0),s=at(Object.assign({},xe));let u=Object.assign({},xe),f;const p=j((o=e.modelValue)!==null&&o!==void 0?o:0),v=j(0),_=j(0),T=j(0),E=j(0);let g,k;We("config",s),We("slidesCount",c),We("currentSlide",p),We("maxSlide",T),We("minSlide",E),We("slideWidth",l);function y(){f=Object.assign({},e.breakpoints),u=Object.assign(Object.assign(Object.assign({},u),e),{i18n:Object.assign(Object.assign({},u.i18n),e.i18n),breakpoints:void 0}),M(u)}function L(){if(!f||!Object.keys(f).length)return;const h=Object.keys(f).map(A=>Number(A)).sort((A,C)=>+C-+A);let w=Object.assign({},u);h.some(A=>{const C=window.matchMedia(`(min-width: ${A}px)`).matches;return C&&(w=Object.assign(Object.assign({},w),f[A])),C}),M(w)}function M(h){Object.entries(h).forEach(([w,A])=>s[w]=A)}const S=g1(()=>{L(),q()},16);function q(){if(!a.value)return;const h=a.value.getBoundingClientRect();l.value=h.width/s.itemsToShow}function H(){c.value<=0||(_.value=Math.ceil((c.value-1)/2),T.value=p1({config:s,slidesCount:c.value}),E.value=h1({config:s,slidesCount:c.value}),s.wrapAround||(p.value=ha({val:p.value,max:T.value,min:E.value})))}he(()=>{Jt(()=>q()),setTimeout(()=>q(),1e3),L(),tt(),window.addEventListener("resize",S,{passive:!0}),n("init")}),mr(()=>{k&&clearTimeout(k),g&&clearInterval(g),window.removeEventListener("resize",S,{passive:!0})});let R=!1;const V={x:0,y:0},J={x:0,y:0},N=at({x:0,y:0}),Q=j(!1),me=j(!1),ge=()=>{Q.value=!0},G=()=>{Q.value=!1};function ee(h){["INPUT","TEXTAREA","SELECT"].includes(h.target.tagName)||(R=h.type==="touchstart",R||h.preventDefault(),!(!R&&h.button!==0||_e.value)&&(V.x=R?h.touches[0].clientX:h.clientX,V.y=R?h.touches[0].clientY:h.clientY,document.addEventListener(R?"touchmove":"mousemove",K,!0),document.addEventListener(R?"touchend":"mouseup",Le,!0)))}const K=v1(h=>{me.value=!0,J.x=R?h.touches[0].clientX:h.clientX,J.y=R?h.touches[0].clientY:h.clientY;const w=J.x-V.x,A=J.y-V.y;N.y=A,N.x=w},s.throttle);function Le(){const h=s.dir==="rtl"?-1:1,w=Math.sign(N.x)*.4,A=Math.round(N.x/l.value+w)*h;if(A&&!R){const C=D=>{D.stopPropagation(),window.removeEventListener("click",C,!0)};window.addEventListener("click",C,!0)}Ie(p.value-A),N.x=0,N.y=0,me.value=!1,document.removeEventListener(R?"touchmove":"mousemove",K,!0),document.removeEventListener(R?"touchend":"mouseup",Le,!0)}function tt(){!s.autoplay||s.autoplay<=0||(g=setInterval(()=>{s.pauseAutoplayOnHover&&Q.value||Ye()},s.autoplay))}function qe(){g&&(clearInterval(g),g=null),tt()}const _e=j(!1);function Ie(h){const w=s.wrapAround?h:ha({val:h,max:T.value,min:E.value});p.value===w||_e.value||(n("slide-start",{slidingToIndex:h,currentSlideIndex:p.value,prevSlideIndex:v.value,slidesCount:c.value}),_e.value=!0,v.value=p.value,p.value=w,k=setTimeout(()=>{if(s.wrapAround){const A=Xr({val:w,max:T.value,min:0});A!==p.value&&(p.value=A,n("loop",{currentSlideIndex:p.value,slidingToIndex:h}))}n("update:modelValue",p.value),n("slide-end",{currentSlideIndex:p.value,prevSlideIndex:v.value,slidesCount:c.value}),_e.value=!1,qe()},s.transition))}function Ye(){Ie(p.value+s.itemsToScroll)}function Je(){Ie(p.value-s.itemsToScroll)}const Ae={slideTo:Ie,next:Ye,prev:Je};We("nav",Ae),We("isSliding",_e);const P=I(()=>m1({config:s,currentSlide:p.value,slidesCount:c.value}));We("slidesToScroll",P);const z=I(()=>{const h=s.dir==="rtl"?-1:1,w=P.value*l.value*h;return{transform:`translateX(${N.x-w}px)`,transition:`${_e.value?s.transition:0}ms`,margin:s.wrapAround?`0 -${c.value*l.value}px`:"",width:"100%"}});function B(){y(),L(),H(),q(),qe()}Object.keys(Pl).forEach(h=>{["modelValue"].includes(h)||ae(()=>e[h],B)}),ae(()=>e.modelValue,h=>{h!==p.value&&Ie(Number(h))}),ae(c,H),n("before-init"),y();const Y={config:s,slidesCount:c,slideWidth:l,next:Ye,prev:Je,slideTo:Ie,currentSlide:p,maxSlide:T,minSlide:E,middleSlide:_};r({updateBreakpointsConfigs:L,updateSlidesData:H,updateSlideWidth:q,initDefaultConfigs:y,restartCarousel:B,slideTo:Ie,next:Ye,prev:Je,nav:Ae,data:Y});const ie=t.default||t.slides,de=t.addons,m=at(Y);return()=>{const h=wu(ie==null?void 0:ie(m)),w=(de==null?void 0:de(m))||[];h.forEach((F,O)=>F.props.index=O);let A=h;if(s.wrapAround){const F=h.map(($,x)=>Ct($,{index:-h.length+x,isClone:!0,key:`clone-before-${x}`})),O=h.map(($,x)=>Ct($,{index:h.length+x,isClone:!0,key:`clone-after-${x}`}));A=[...F,...h,...O]}i.value=h,c.value=Math.max(h.length,1);const C=d("ol",{class:"carousel__track",style:z.value,onMousedownCapture:s.mouseDrag?ee:null,onTouchstartPassiveCapture:s.touchDrag?ee:null},A),D=d("div",{class:"carousel__viewport"},C);return d("section",{ref:a,class:{carousel:!0,"is-sliding":_e.value,"is-dragging":me.value,"is-hover":Q.value,"carousel--rtl":s.dir==="rtl"},dir:s.dir,"aria-label":s.i18n.ariaGallery,tabindex:"0",onMouseenter:ge,onMouseleave:G},[D,w,d(_1)])}}}),ma;(function(e){e.arrowUp="arrowUp",e.arrowDown="arrowDown",e.arrowRight="arrowRight",e.arrowLeft="arrowLeft"})(ma||(ma={}));const b1={arrowUp:"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z",arrowDown:"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z",arrowRight:"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z",arrowLeft:"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z"};function w1(e){return e in ma}const va=e=>{const t=oe("config",at(Object.assign({},xe))),n=String(e.name),r=`icon${n.charAt(0).toUpperCase()+n.slice(1)}`;if(!n||typeof n!="string"||!w1(n))return;const o=b1[n],a=d("path",{d:o}),i=t.i18n[r]||e.title||n,l=d("title",i);return d("svg",{class:"carousel__icon",viewBox:"0 0 24 24",role:"img","aria-label":i},[l,a])};va.props={name:String,title:String};const E1=(e,{slots:t,attrs:n})=>{const{next:r,prev:o}=t||{},a=oe("config",at(Object.assign({},xe))),i=oe("maxSlide",j(1)),l=oe("minSlide",j(1)),c=oe("currentSlide",j(1)),s=oe("nav",{}),{dir:u,wrapAround:f,i18n:p}=a,v=u==="rtl",_=d("button",{type:"button",class:["carousel__prev",!f&&c.value<=l.value&&"carousel__prev--disabled",n==null?void 0:n.class],"aria-label":p.ariaPreviousSlide,onClick:s.prev},(o==null?void 0:o())||d(va,{name:v?"arrowRight":"arrowLeft"})),T=d("button",{type:"button",class:["carousel__next",!f&&c.value>=i.value&&"carousel__next--disabled",n==null?void 0:n.class],"aria-label":p.ariaNextSlide,onClick:s.next},(r==null?void 0:r())||d(va,{name:v?"arrowLeft":"arrowRight"}));return[_,T]},T1=()=>{const e=oe("config",at(Object.assign({},xe))),t=oe("maxSlide",j(1)),n=oe("minSlide",j(1)),r=oe("currentSlide",j(1)),o=oe("nav",{}),a=l=>Xr({val:r.value,max:t.value,min:0})===l,i=[];for(let l=n.value;lo.slideTo(l)}),s=d("li",{class:"carousel__pagination-item",key:l},c);i.push(s)}return d("ol",{class:"carousel__pagination"},i)};var S1=U({name:"CarouselSlide",props:{index:{type:Number,default:1},isClone:{type:Boolean,default:!1}},setup(e,{slots:t}){const n=oe("config",at(Object.assign({},xe))),r=oe("currentSlide",j(0)),o=oe("slidesToScroll",j(0)),a=oe("isSliding",j(!1)),i=()=>e.index===r.value,l=()=>e.index===r.value-1,c=()=>e.index===r.value+1,s=()=>{const u=Math.floor(o.value),f=Math.ceil(o.value+n.itemsToShow-1);return e.index>=u&&e.index<=f};return()=>{var u;return d("li",{style:{width:`${100/n.itemsToShow}%`},class:{carousel__slide:!0,"carousel__slide--clone":e.isClone,"carousel__slide--visible":s(),"carousel__slide--active":i(),"carousel__slide--prev":l(),"carousel__slide--next":c(),"carousel__slide--sliding":a.value},"aria-hidden":!s()},(u=t.default)===null||u===void 0?void 0:u.call(t))}}});const L1={class:"carousel__item"},A1=["src"],C1=U({__name:"MyCarousel",props:{imgList:{type:Array,required:!0,validator:e=>e.every(t=>typeof t=="string")}},setup(e){return(t,n)=>(an(),Qn(Ce(y1),null,{addons:un(()=>[Te(Ce(E1)),Te(Ce(T1))]),default:un(()=>[(an(!0),Ls(Fe,null,zd(e.imgList,r=>(an(),Qn(Ce(S1),{key:r},{default:un(()=>[sr("div",L1,[sr("img",{src:r,loading:"lazy"},null,8,A1)])]),_:2},1024))),128))]),_:1}))}}),k1=bu(C1,[["__file","MyCarousel.vue"]]),I1=it({enhance:({app:e})=>{e.component("ColorIcon",f1),e.component("MyCarousel",k1)}}),Vr=[Ph,jm,Km,ev,rv,lv,dv,vv,Ev,kv,Hv,Jv,d1,I1];var P1=Dp,x1=()=>{const e=_h({history:P1(Va("/")),routes:[{name:"vuepress-route",path:"/:catchAll(.*)",components:{}}],scrollBehavior:(t,n,r)=>r||(t.hash?{el:t.hash}:{top:0})});return e.beforeResolve(async(t,n)=>{if(t.path!==n.path||n===Pt){const r=fo(t.path);if(r.path!==t.path)return r.path;const o=await r.loader();t.meta={...r.meta,_data:o.data}}}),e},R1=e=>{e.component("ClientOnly",ho),e.component("Content",ic),e.component("RouteLink",Ke)},O1=(e,t,n)=>{const r=I(()=>t.currentRoute.value.path),o=go(r,()=>t.currentRoute.value.meta._data),a=I(()=>$t.resolveLayouts(n)),i=I(()=>$t.resolveRouteLocale(yn.value.locales,r.value)),l=I(()=>$t.resolveSiteLocaleData(yn.value,i.value)),c=I(()=>$t.resolvePageFrontmatter(o.value)),s=I(()=>$t.resolvePageHeadTitle(o.value,l.value)),u=I(()=>$t.resolvePageHead(s.value,c.value,l.value)),f=I(()=>$t.resolvePageLang(o.value,l.value)),p=I(()=>$t.resolvePageLayout(o.value,a.value));return e.provide(wh,a),e.provide(Xs,o),e.provide(Qs,c),e.provide(Th,s),e.provide(Zs,u),e.provide(ec,f),e.provide(tc,p),e.provide(Fa,i),e.provide(ac,l),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get:()=>c.value},$head:{get:()=>u.value},$headTitle:{get:()=>s.value},$lang:{get:()=>f.value},$page:{get:()=>o.value},$routeLocale:{get:()=>i.value},$site:{get:()=>yn.value},$siteLocale:{get:()=>l.value},$withBase:{get:()=>He}}),{layouts:a,pageData:o,pageFrontmatter:c,pageHead:u,pageHeadTitle:s,pageLang:f,pageLayout:p,routeLocale:i,siteData:yn,siteLocaleData:l}},D1=()=>{const e=Eh(),t=Ba();let n=[];const r=()=>{e.value.forEach(i=>{const l=M1(i);l&&n.push(l)})},o=()=>{const i=[];return e.value.forEach(l=>{const c=N1(l);c&&i.push(c)}),i},a=()=>{document.documentElement.lang=t.value;const i=o();n.forEach((l,c)=>{const s=i.findIndex(u=>l.isEqualNode(u));s===-1?(l.remove(),delete n[c]):i.splice(s,1)}),i.forEach(l=>document.head.appendChild(l)),n=[...n.filter(l=>!!l),...i]};We(Ah,a),he(()=>{r(),ae(e,a,{immediate:!1})})},M1=([e,t,n=""])=>{const r=Object.entries(t).map(([l,c])=>Pe(c)?`[${l}=${JSON.stringify(c)}]`:c===!0?`[${l}]`:"").join(""),o=`head > ${e}${r}`;return Array.from(document.querySelectorAll(o)).find(l=>l.innerText===n)||null},N1=([e,t,n])=>{if(!Pe(e))return null;const r=document.createElement(e);return _r(t)&&Object.entries(t).forEach(([o,a])=>{Pe(a)?r.setAttribute(o,a):a===!0&&r.setAttribute(o,"")}),Pe(n)&&r.appendChild(document.createTextNode(n)),r},V1=np,$1=async()=>{var n;const e=V1({name:"Vuepress",setup(){var a;D1();for(const i of Vr)(a=i.setup)==null||a.call(i);const r=Vr.flatMap(({rootComponents:i=[]})=>i.map(l=>d(l))),o=Sh();return()=>[d(o.value),r]}}),t=x1();R1(e),O1(e,t,Vr);for(const r of Vr)await((n=r.enhance)==null?void 0:n.call(r,{app:e,router:t,siteData:yn}));return e.use(t),{app:e,router:t}};$1().then(({app:e,router:t})=>{t.isReady().then(()=>{e.mount("#app")})});export{Fe as F,bu as _,sr as a,Te as b,Ls as c,$1 as createVueApp,Cs as d,B1 as e,zd as f,Qn as g,hf as h,b as i,mf as m,H1 as n,an as o,Lt as r,un as w}; +function __vite__mapDeps(indexes) { + if (!__vite__mapDeps.viteFileDeps) { + __vite__mapDeps.viteFileDeps = ["assets/index.html-T18qVkkc.js","assets/wechatGroup-zkZOzzsF.js","assets/twitter-vJUFHWuk.js","assets/index.html-LXY6EoJW.js","assets/slack-roTTHLlw.js","assets/contact.snippet.html-m8cspllp.js","assets/buy.html-0QOA6oRM.js","assets/accountLicense-k-i236gs.js","assets/concatGroup.html-CxO0s7Lh.js","assets/pluginDevelopGroup-jTY5h0OX.js","assets/faq.html-uOOdmyZ0.js","assets/showToolbar-1uOrduVA.js","assets/ignoreFiled-6BsUexZN.js","assets/apiPreview-TsYf71lp.js","assets/feature.html-4qjXMsJf.js","assets/newLogoConfig-lemSO0qb.js","assets/example-rxjYHypU.js","assets/sendRequest-nhTc-dPg.js","assets/stopApi-fM6h6OKl.js","assets/downloadFile-lDoHpXkf.js","assets/scriptModule-qWOTuHgm.js","assets/export2postman-dEAWnBlR.js","assets/apis_hd-xmI1Um5u.js","assets/apiManager-Ha0ZoLBL.js","assets/saveRequest-0-01KgNg.js","assets/groupSave_en-p1Ro7kOp.js","assets/tempSave_en-UAfESuzh.js","assets/regenerate-9LByprDy.js","assets/curl_dark-QQY3Pwtw.js","assets/curl-bEDrqTL_.js","assets/fastAddToken-UQ7yKUMu.js","assets/apiGroup-QroA2f5e.js","assets/moduleSearch-vDt27hRI.js","assets/json-Eu6ts4pk.js","assets/apinav-gngrTEBb.js","assets/headerSwitch-6dFu89NK.js","assets/exportImportApis-cRKbjcMp.js","assets/paramDescription-tGSx8XCt.js","assets/shareApi-uRFN2kOm.js","assets/apiDocExample-I6FA1jbR.js","assets/projectConfigParam-_5a22Qyh.js","assets/importByCurl-5n26pegp.js","assets/navigate2CurrentMethod-91w29pZx.js","assets/history-jJ_6Nu4h.js","assets/batchExportApiDoc-XZ7l86Mn.js","assets/copyUrl-qs4zOYAL.js","assets/rawHtmlPreview-k0XMOGO2.js","assets/showCommentInNavigate-eoTLjphJ.js","assets/history.html-KDcCl6mr.js","assets/jaxrs-QTJkfshC.js","assets/addLibrary-m3-5pdM8.js","assets/ai-budej5Oc.js","assets/customToolbar-pc3yDPUI.js","assets/toolwindowNew-QF7S_oTa.js","assets/searchEveryWhere-Eoz90lA4.js","assets/batchEdit-_t2hwcoO.js","assets/refreshProjectConfig-nDUALD3E.js","assets/annualReport-psTx-0KB.js","assets/projectLevelDomainDialog-8sRek__q.js","assets/commonHeader-O9g0FG--.js","assets/fullScreen-iCOWJbp4.js","assets/clear-qHRgcLZS.js","assets/console-yl_t699w.js","assets/groupSave-Vif2yElp.js","assets/tempSave-uWqV754c.js","assets/dropdownEnv-bZEd9SOg.js","assets/install.html-20W4_2hH.js","assets/installLocal-HOv7vxnK.js","assets/introduce.html-LNziiyTM.js","assets/script.html-GcLPwiv0.js","assets/teamwork.html-Bmj5Ql1G.js","assets/transferData-jb4lwMnv.js","assets/whatsnew.html-kGsVOFAh.js","assets/buy.html-dM5GFkxl.js","assets/concatGroup.html-BU3ixvVv.js","assets/faq.html-XFVMFog5.js","assets/ignoreFiled_en-EyuGDq4I.js","assets/feature.html-NH73gv6K.js","assets/example_en-QCKO58IT.js","assets/scriptModule_en-G44xzFgb.js","assets/apiManager_en-7v6YIpNl.js","assets/regenerate_en-GXnWqO8I.js","assets/curl_en-lEPOcEvC.js","assets/fastAddToken_en-dl409Ccq.js","assets/json_en-sK6ZBB_5.js","assets/shareApi_en-cvbZZWPP.js","assets/importByCurl_en-3-Qsaakd.js","assets/history.html-VQ_AlSYR.js","assets/ai_en-t8P83za6.js","assets/customToolbar_en-uL7XCggb.js","assets/batchEdit_en-t1SH_gNl.js","assets/annualReport_en-i0ch6itR.js","assets/projectLevelDomainDialog_en-qTkkzDKU.js","assets/console_en-BWfI2C_a.js","assets/install.html-TZR57Mr7.js","assets/script.html-OECdru8Y.js","assets/teamwork.html-ps0XRtYl.js","assets/whatsnew.html-PscUMwPB.js","assets/icon.html-OIsm6Oa2.js","assets/file-DiiNDLTi.js","assets/projectEnv.html-rIQ0C5Vw.js","assets/shortcut.html-0quKoOk9.js","assets/shortcut-JpCYMtUj.js","assets/start.html-m7-l0v8E.js","assets/start-njriv0pV.js","assets/index.html-rfOehzxC.js","assets/ai.html-QWgQCY0N.js","assets/aiPromptTrigger-m_dWR5W3.js","assets/annualReport.html-n4KDAGRz.js","assets/apiAssociation.html--ecGnu0q.js","assets/apiCommentPreview.html-O0zPtZXm.js","assets/apiDocSync.html-_v3-zlQ3.js","assets/gitlabToken-Y8YtQVim.js","assets/apiGroup.html-sw6EBA6N.js","assets/apiImportExport.html-8BYE1RGq.js","assets/apiList.html-FNisDg_V.js","assets/apiNavigateTree.html-wkCLDYwJ.js","assets/apiPreview.html-modtWLsy.js","assets/apiToDoc.html-l25xBp-b.js","assets/apiToPostman.html-xOpoh0Kq.js","assets/autoDescription.html-w-PU9cdB.js","assets/basicAuth.html-1cgnvvSy.js","assets/basicAuth-7MWcKYfl.js","assets/batchExportApiDoc.html-0RigdmWN.js","assets/bulkEdit.html-1dc3Snf5.js","assets/clear.html-xWGlbH8o.js","assets/commonHeader.html-B63z18ER.js","assets/copyCurl.html-wtwTglSy.js","assets/curlCopyNew-s9EU22-f.js","assets/copyUrl.html-rmfO_xxT.js","assets/curlImport.html-k7NyonBw.js","assets/customToolbar.html-o6nDZEqa.js","assets/debugApi.html-UdGGuDcU.js","assets/downloadApi.html-mMdCWhoo.js","assets/environment.html-zP3n6wrG.js","assets/chooseEnvironmentVariable-IX_CYJqC.js","assets/fullScreen.html-w1sV3P66.js","assets/headerGroup.html-SPKCPIV9.js","assets/headerGroup-qNWSBGgF.js","assets/headersGroup.html-0bTk6nhh.js","assets/historyRequest.html-09A8ToLV.js","assets/htmlPreview.html-yU2glsc2.js","assets/jsonGrammarCheck.html-Lg2xnVy8.js","assets/makeIconMove.html-il0Uypus.js","assets/navigateCurrentMethod.html-bXY0Elzw.js","assets/navigateCurrentMethodJson.html-IS3ATxu8.js","assets/openInTabAction-S_wGJ0wq.js","assets/parseStrategy.html-BeXXNMOW.js","assets/postmanSync.html-1JRSAgGf.js","assets/postmanScript-vSQGq89I.js","assets/projectConfigRefresh.html-1hTjtLKu.js","assets/projectLevelDomainConfig.html-XKsM4IHF.js","assets/projectValueConfig.html-50BV-VJM.js","assets/quickAddHeader.html-37imcXHe.js","assets/regenerate.html-5jSJw_Ij.js","assets/regenerateNew-G3I8FY4Q.js","assets/saveRequest.html-2LK55CV1.js","assets/script.html-7wvSZKVB.js","assets/searchEveryWhere.html-AyFvK1hu.js","assets/shareApiDoc.html-mH-GlHrT.js","assets/stopRequest.html-HLWNv8yY.js","assets/stopApi-j-lQpiZm.js","assets/tempRequest.html-d0W1Xrun.js","assets/ai.html-bCaeFn90.js","assets/annualReport.html-f9Bx9rF-.js","assets/apiCommentPreview.html-VjF9ie8p.js","assets/apiDocSync.html-OZncUaKF.js","assets/apiGroup.html-1PW0gdb7.js","assets/apiImportExport.html-TO0c3Lia.js","assets/apiList.html-iMbpQCtB.js","assets/apiNavigateTree.html-RHQgtl5s.js","assets/apiPreview.html-YLc87oA-.js","assets/apiToDoc.html-qDMokp8P.js","assets/apiToPostman.html-KaBGvCwi.js","assets/autoDescription.html-oVXwAAVJ.js","assets/basicAuth.html-I7ObjiG4.js","assets/batchExportApiDoc.html-Bde8qF5F.js","assets/bulkEdit.html-0JgZE661.js","assets/clear.html-3xwO0JDb.js","assets/copyCurl.html-8zDVfx_W.js","assets/copyUrl.html-iUzk2RXq.js","assets/curlImport.html-VAxWJam1.js","assets/customToolbar.html-WVxg8ImQ.js","assets/debugApi.html-rCrLtinL.js","assets/downloadApi.html-bI_tIxKp.js","assets/environment.html-jq3olPQe.js","assets/fullScreen.html-Eb53SqXM.js","assets/headerGroup.html-EjccUMr6.js","assets/htmlPreview.html-5mxNTly4.js","assets/jsonGrammarCheck.html-RiqZayH6.js","assets/makeIconMove.html--ClMbWen.js","assets/navigateCurrentMethod.html-g8mf6Xwm.js","assets/navigateCurrentMethodJson.html-B-ShmjjD.js","assets/parseStrategy.html-TKSY716z.js","assets/postmanSync.html-6xCHyMus.js","assets/projectConfigRefresh.html-XeZSUbCO.js","assets/projectLevelDomainConfig.html-6T6LwMQL.js","assets/quickAddHeader.html-7PSdbaaM.js","assets/regenerate.html-FlZ8jVW4.js","assets/saveRequest.html-4vnnZwG8.js","assets/script.html-jhPE1GsP.js","assets/searchEveryWhere.html-te8aIUWf.js","assets/shareApiDoc.html-Z0PUP8x_.js","assets/stopRequest.html-RJ4b5d3A.js","assets/tempRequest.html-nFfGSo9a.js","assets/icon.html-U2bzJaU6.js","assets/projectEnv.html-Mn9mwxfD.js","assets/shortcut.html-bCKldXkK.js","assets/start.html-wc2ASsKr.js","assets/vidstack-player-FSWKbTeV.js","assets/vidstack-CSaHpIQV-AmLqxEmn.js","assets/vidstack-CpPO9Fgt-6z3IyZQH.js","assets/vidstack-player-layouts-LcQTAVd6.js","assets/vidstack-rsZGrNIW-cbZ7VXwC.js","assets/vidstack-player-ui-p9274UQD.js"] + } + return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) +} diff --git a/assets/auto-XYC5A0Ix.js b/assets/auto-XYC5A0Ix.js new file mode 100644 index 000000000..11e05395d --- /dev/null +++ b/assets/auto-XYC5A0Ix.js @@ -0,0 +1,18 @@ +var xo=Object.defineProperty;var _o=(i,t,e)=>t in i?xo(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var M=(i,t,e)=>(_o(i,typeof t!="symbol"?t+"":t,e),e);/*! + * @kurkle/color v0.3.2 + * https://github.com/kurkle/color#readme + * (c) 2023 Jukka Kurkela + * Released under the MIT License + */function ye(i){return i+.5|0}const xt=(i,t,e)=>Math.max(Math.min(i,e),t);function ee(i){return xt(ye(i*2.55),0,255)}function Mt(i){return xt(ye(i*255),0,255)}function ft(i){return xt(ye(i/2.55)/100,0,1)}function Zi(i){return xt(ye(i*100),0,100)}const it={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},xi=[..."0123456789ABCDEF"],yo=i=>xi[i&15],vo=i=>xi[(i&240)>>4]+xi[i&15],we=i=>(i&240)>>4===(i&15),Mo=i=>we(i.r)&&we(i.g)&&we(i.b)&&we(i.a);function ko(i){var t=i.length,e;return i[0]==="#"&&(t===4||t===5?e={r:255&it[i[1]]*17,g:255&it[i[2]]*17,b:255&it[i[3]]*17,a:t===5?it[i[4]]*17:255}:(t===7||t===9)&&(e={r:it[i[1]]<<4|it[i[2]],g:it[i[3]]<<4|it[i[4]],b:it[i[5]]<<4|it[i[6]],a:t===9?it[i[7]]<<4|it[i[8]]:255})),e}const wo=(i,t)=>i<255?t(i):"";function So(i){var t=Mo(i)?yo:vo;return i?"#"+t(i.r)+t(i.g)+t(i.b)+wo(i.a,t):void 0}const Po=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function vn(i,t,e){const s=t*Math.min(e,1-e),n=(o,a=(o+i/30)%12)=>e-s*Math.max(Math.min(a-3,9-a,1),-1);return[n(0),n(8),n(4)]}function Do(i,t,e){const s=(n,o=(n+i/60)%6)=>e-e*t*Math.max(Math.min(o,4-o,1),0);return[s(5),s(3),s(1)]}function Oo(i,t,e){const s=vn(i,1,.5);let n;for(t+e>1&&(n=1/(t+e),t*=n,e*=n),n=0;n<3;n++)s[n]*=1-t-e,s[n]+=t;return s}function Co(i,t,e,s,n){return i===n?(t-e)/s+(t.5?h/(2-o-a):h/(o+a),l=Co(e,s,n,h,o),l=l*60+.5),[l|0,c||0,r]}function Fi(i,t,e,s){return(Array.isArray(t)?i(t[0],t[1],t[2]):i(t,e,s)).map(Mt)}function Ii(i,t,e){return Fi(vn,i,t,e)}function Ao(i,t,e){return Fi(Oo,i,t,e)}function To(i,t,e){return Fi(Do,i,t,e)}function Mn(i){return(i%360+360)%360}function Lo(i){const t=Po.exec(i);let e=255,s;if(!t)return;t[5]!==s&&(e=t[6]?ee(+t[5]):Mt(+t[5]));const n=Mn(+t[2]),o=+t[3]/100,a=+t[4]/100;return t[1]==="hwb"?s=Ao(n,o,a):t[1]==="hsv"?s=To(n,o,a):s=Ii(n,o,a),{r:s[0],g:s[1],b:s[2],a:e}}function Ro(i,t){var e=Ei(i);e[0]=Mn(e[0]+t),e=Ii(e),i.r=e[0],i.g=e[1],i.b=e[2]}function Eo(i){if(!i)return;const t=Ei(i),e=t[0],s=Zi(t[1]),n=Zi(t[2]);return i.a<255?`hsla(${e}, ${s}%, ${n}%, ${ft(i.a)})`:`hsl(${e}, ${s}%, ${n}%)`}const Ji={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},Qi={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function Fo(){const i={},t=Object.keys(Qi),e=Object.keys(Ji);let s,n,o,a,r;for(s=0;s>16&255,o>>8&255,o&255]}return i}let Se;function Io(i){Se||(Se=Fo(),Se.transparent=[0,0,0,0]);const t=Se[i.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:t.length===4?t[3]:255}}const zo=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function Bo(i){const t=zo.exec(i);let e=255,s,n,o;if(t){if(t[7]!==s){const a=+t[7];e=t[8]?ee(a):xt(a*255,0,255)}return s=+t[1],n=+t[3],o=+t[5],s=255&(t[2]?ee(s):xt(s,0,255)),n=255&(t[4]?ee(n):xt(n,0,255)),o=255&(t[6]?ee(o):xt(o,0,255)),{r:s,g:n,b:o,a:e}}}function Vo(i){return i&&(i.a<255?`rgba(${i.r}, ${i.g}, ${i.b}, ${ft(i.a)})`:`rgb(${i.r}, ${i.g}, ${i.b})`)}const ai=i=>i<=.0031308?i*12.92:Math.pow(i,1/2.4)*1.055-.055,Ht=i=>i<=.04045?i/12.92:Math.pow((i+.055)/1.055,2.4);function Wo(i,t,e){const s=Ht(ft(i.r)),n=Ht(ft(i.g)),o=Ht(ft(i.b));return{r:Mt(ai(s+e*(Ht(ft(t.r))-s))),g:Mt(ai(n+e*(Ht(ft(t.g))-n))),b:Mt(ai(o+e*(Ht(ft(t.b))-o))),a:i.a+e*(t.a-i.a)}}function Pe(i,t,e){if(i){let s=Ei(i);s[t]=Math.max(0,Math.min(s[t]+s[t]*e,t===0?360:1)),s=Ii(s),i.r=s[0],i.g=s[1],i.b=s[2]}}function kn(i,t){return i&&Object.assign(t||{},i)}function ts(i){var t={r:0,g:0,b:0,a:255};return Array.isArray(i)?i.length>=3&&(t={r:i[0],g:i[1],b:i[2],a:255},i.length>3&&(t.a=Mt(i[3]))):(t=kn(i,{r:0,g:0,b:0,a:1}),t.a=Mt(t.a)),t}function No(i){return i.charAt(0)==="r"?Bo(i):Lo(i)}class ue{constructor(t){if(t instanceof ue)return t;const e=typeof t;let s;e==="object"?s=ts(t):e==="string"&&(s=ko(t)||Io(t)||No(t)),this._rgb=s,this._valid=!!s}get valid(){return this._valid}get rgb(){var t=kn(this._rgb);return t&&(t.a=ft(t.a)),t}set rgb(t){this._rgb=ts(t)}rgbString(){return this._valid?Vo(this._rgb):void 0}hexString(){return this._valid?So(this._rgb):void 0}hslString(){return this._valid?Eo(this._rgb):void 0}mix(t,e){if(t){const s=this.rgb,n=t.rgb;let o;const a=e===o?.5:e,r=2*a-1,l=s.a-n.a,c=((r*l===-1?r:(r+l)/(1+r*l))+1)/2;o=1-c,s.r=255&c*s.r+o*n.r+.5,s.g=255&c*s.g+o*n.g+.5,s.b=255&c*s.b+o*n.b+.5,s.a=a*s.a+(1-a)*n.a,this.rgb=s}return this}interpolate(t,e){return t&&(this._rgb=Wo(this._rgb,t._rgb,e)),this}clone(){return new ue(this.rgb)}alpha(t){return this._rgb.a=Mt(t),this}clearer(t){const e=this._rgb;return e.a*=1-t,this}greyscale(){const t=this._rgb,e=ye(t.r*.3+t.g*.59+t.b*.11);return t.r=t.g=t.b=e,this}opaquer(t){const e=this._rgb;return e.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return Pe(this._rgb,2,t),this}darken(t){return Pe(this._rgb,2,-t),this}saturate(t){return Pe(this._rgb,1,t),this}desaturate(t){return Pe(this._rgb,1,-t),this}rotate(t){return Ro(this._rgb,t),this}}/*! + * Chart.js v4.4.1 + * https://www.chartjs.org + * (c) 2023 Chart.js Contributors + * Released under the MIT License + */function ht(){}const Ho=(()=>{let i=0;return()=>i++})();function L(i){return i===null||typeof i>"u"}function I(i){if(Array.isArray&&Array.isArray(i))return!0;const t=Object.prototype.toString.call(i);return t.slice(0,7)==="[object"&&t.slice(-6)==="Array]"}function A(i){return i!==null&&Object.prototype.toString.call(i)==="[object Object]"}function W(i){return(typeof i=="number"||i instanceof Number)&&isFinite(+i)}function tt(i,t){return W(i)?i:t}function D(i,t){return typeof i>"u"?t:i}const jo=(i,t)=>typeof i=="string"&&i.endsWith("%")?parseFloat(i)/100:+i/t,wn=(i,t)=>typeof i=="string"&&i.endsWith("%")?parseFloat(i)/100*t:+i;function F(i,t,e){if(i&&typeof i.call=="function")return i.apply(e,t)}function R(i,t,e,s){let n,o,a;if(I(i))if(o=i.length,s)for(n=o-1;n>=0;n--)t.call(e,i[n],n);else for(n=0;ni,x:i=>i.x,y:i=>i.y};function Xo(i){const t=i.split("."),e=[];let s="";for(const n of t)s+=n,s.endsWith("\\")?s=s.slice(0,-1)+".":(e.push(s),s="");return e}function Uo(i){const t=Xo(i);return e=>{for(const s of t){if(s==="")break;e=e&&e[s]}return e}}function kt(i,t){return(es[t]||(es[t]=Uo(t)))(i)}function zi(i){return i.charAt(0).toUpperCase()+i.slice(1)}const ge=i=>typeof i<"u",wt=i=>typeof i=="function",is=(i,t)=>{if(i.size!==t.size)return!1;for(const e of i)if(!t.has(e))return!1;return!0};function Ko(i){return i.type==="mouseup"||i.type==="click"||i.type==="contextmenu"}const B=Math.PI,z=2*B,qo=z+B,qe=Number.POSITIVE_INFINITY,Go=B/180,j=B/2,Ot=B/4,ss=B*2/3,_t=Math.log10,ct=Math.sign;function le(i,t,e){return Math.abs(i-t)n-o).pop(),t}function Yt(i){return!isNaN(parseFloat(i))&&isFinite(i)}function Jo(i,t){const e=Math.round(i);return e-t<=i&&e+t>=i}function Pn(i,t,e){let s,n,o;for(s=0,n=i.length;sl&&c=Math.min(t,e)-s&&i<=Math.max(t,e)+s}function Vi(i,t,e){e=e||(a=>i[a]1;)o=n+s>>1,e(o)?n=o:s=o;return{lo:n,hi:s}}const pt=(i,t,e,s)=>Vi(i,e,s?n=>{const o=i[n][t];return oi[n][t]Vi(i,e,s=>i[s][t]>=e);function ia(i,t,e){let s=0,n=i.length;for(;ss&&i[n-1]>e;)n--;return s>0||n{const s="_onData"+zi(e),n=i[e];Object.defineProperty(i,e,{configurable:!0,enumerable:!1,value(...o){const a=n.apply(this,o);return i._chartjs.listeners.forEach(r=>{typeof r[s]=="function"&&r[s](...o)}),a}})})}function as(i,t){const e=i._chartjs;if(!e)return;const s=e.listeners,n=s.indexOf(t);n!==-1&&s.splice(n,1),!(s.length>0)&&(On.forEach(o=>{delete i[o]}),delete i._chartjs)}function Cn(i){const t=new Set(i);return t.size===i.length?i:Array.from(t)}const An=function(){return typeof window>"u"?function(i){return i()}:window.requestAnimationFrame}();function Tn(i,t){let e=[],s=!1;return function(...n){e=n,s||(s=!0,An.call(window,()=>{s=!1,i.apply(t,e)}))}}function na(i,t){let e;return function(...s){return t?(clearTimeout(e),e=setTimeout(i,t,s)):i.apply(this,s),t}}const Wi=i=>i==="start"?"left":i==="end"?"right":"center",K=(i,t,e)=>i==="start"?t:i==="end"?e:(t+e)/2,oa=(i,t,e,s)=>i===(s?"left":"right")?e:i==="center"?(t+e)/2:t;function Ln(i,t,e){const s=t.length;let n=0,o=s;if(i._sorted){const{iScale:a,_parsed:r}=i,l=a.axis,{min:c,max:h,minDefined:d,maxDefined:u}=a.getUserBounds();d&&(n=Y(Math.min(pt(r,l,c).lo,e?s:pt(t,l,a.getPixelForValue(c)).lo),0,s-1)),u?o=Y(Math.max(pt(r,a.axis,h,!0).hi+1,e?0:pt(t,l,a.getPixelForValue(h),!0).hi+1),n,s)-n:o=s-n}return{start:n,count:o}}function Rn(i){const{xScale:t,yScale:e,_scaleRanges:s}=i,n={xmin:t.min,xmax:t.max,ymin:e.min,ymax:e.max};if(!s)return i._scaleRanges=n,!0;const o=s.xmin!==t.min||s.xmax!==t.max||s.ymin!==e.min||s.ymax!==e.max;return Object.assign(s,n),o}const De=i=>i===0||i===1,rs=(i,t,e)=>-(Math.pow(2,10*(i-=1))*Math.sin((i-t)*z/e)),ls=(i,t,e)=>Math.pow(2,-10*i)*Math.sin((i-t)*z/e)+1,ce={linear:i=>i,easeInQuad:i=>i*i,easeOutQuad:i=>-i*(i-2),easeInOutQuad:i=>(i/=.5)<1?.5*i*i:-.5*(--i*(i-2)-1),easeInCubic:i=>i*i*i,easeOutCubic:i=>(i-=1)*i*i+1,easeInOutCubic:i=>(i/=.5)<1?.5*i*i*i:.5*((i-=2)*i*i+2),easeInQuart:i=>i*i*i*i,easeOutQuart:i=>-((i-=1)*i*i*i-1),easeInOutQuart:i=>(i/=.5)<1?.5*i*i*i*i:-.5*((i-=2)*i*i*i-2),easeInQuint:i=>i*i*i*i*i,easeOutQuint:i=>(i-=1)*i*i*i*i+1,easeInOutQuint:i=>(i/=.5)<1?.5*i*i*i*i*i:.5*((i-=2)*i*i*i*i+2),easeInSine:i=>-Math.cos(i*j)+1,easeOutSine:i=>Math.sin(i*j),easeInOutSine:i=>-.5*(Math.cos(B*i)-1),easeInExpo:i=>i===0?0:Math.pow(2,10*(i-1)),easeOutExpo:i=>i===1?1:-Math.pow(2,-10*i)+1,easeInOutExpo:i=>De(i)?i:i<.5?.5*Math.pow(2,10*(i*2-1)):.5*(-Math.pow(2,-10*(i*2-1))+2),easeInCirc:i=>i>=1?i:-(Math.sqrt(1-i*i)-1),easeOutCirc:i=>Math.sqrt(1-(i-=1)*i),easeInOutCirc:i=>(i/=.5)<1?-.5*(Math.sqrt(1-i*i)-1):.5*(Math.sqrt(1-(i-=2)*i)+1),easeInElastic:i=>De(i)?i:rs(i,.075,.3),easeOutElastic:i=>De(i)?i:ls(i,.075,.3),easeInOutElastic(i){return De(i)?i:i<.5?.5*rs(i*2,.1125,.45):.5+.5*ls(i*2-1,.1125,.45)},easeInBack(i){return i*i*((1.70158+1)*i-1.70158)},easeOutBack(i){return(i-=1)*i*((1.70158+1)*i+1.70158)+1},easeInOutBack(i){let t=1.70158;return(i/=.5)<1?.5*(i*i*(((t*=1.525)+1)*i-t)):.5*((i-=2)*i*(((t*=1.525)+1)*i+t)+2)},easeInBounce:i=>1-ce.easeOutBounce(1-i),easeOutBounce(i){return i<1/2.75?7.5625*i*i:i<2/2.75?7.5625*(i-=1.5/2.75)*i+.75:i<2.5/2.75?7.5625*(i-=2.25/2.75)*i+.9375:7.5625*(i-=2.625/2.75)*i+.984375},easeInOutBounce:i=>i<.5?ce.easeInBounce(i*2)*.5:ce.easeOutBounce(i*2-1)*.5+.5};function Ni(i){if(i&&typeof i=="object"){const t=i.toString();return t==="[object CanvasPattern]"||t==="[object CanvasGradient]"}return!1}function cs(i){return Ni(i)?i:new ue(i)}function ri(i){return Ni(i)?i:new ue(i).saturate(.5).darken(.1).hexString()}const aa=["x","y","borderWidth","radius","tension"],ra=["color","borderColor","backgroundColor"];function la(i){i.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),i.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:t=>t!=="onProgress"&&t!=="onComplete"&&t!=="fn"}),i.set("animations",{colors:{type:"color",properties:ra},numbers:{type:"number",properties:aa}}),i.describe("animations",{_fallback:"animation"}),i.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>t|0}}}})}function ca(i){i.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})}const hs=new Map;function ha(i,t){t=t||{};const e=i+JSON.stringify(t);let s=hs.get(e);return s||(s=new Intl.NumberFormat(i,t),hs.set(e,s)),s}function ve(i,t,e){return ha(t,e).format(i)}const En={values(i){return I(i)?i:""+i},numeric(i,t,e){if(i===0)return"0";const s=this.chart.options.locale;let n,o=i;if(e.length>1){const c=Math.max(Math.abs(e[0].value),Math.abs(e[e.length-1].value));(c<1e-4||c>1e15)&&(n="scientific"),o=da(i,e)}const a=_t(Math.abs(o)),r=isNaN(a)?1:Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:n,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(l,this.options.ticks.format),ve(i,s,l)},logarithmic(i,t,e){if(i===0)return"0";const s=e[t].significand||i/Math.pow(10,Math.floor(_t(i)));return[1,2,3,5,10,15].includes(s)||t>.8*e.length?En.numeric.call(this,i,t,e):""}};function da(i,t){let e=t.length>3?t[2].value-t[1].value:t[1].value-t[0].value;return Math.abs(e)>=1&&i!==Math.floor(i)&&(e=i-Math.floor(i)),e}var ei={formatters:En};function ua(i){i.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(t,e)=>e.lineWidth,tickColor:(t,e)=>e.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:ei.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),i.route("scale.ticks","color","","color"),i.route("scale.grid","color","","borderColor"),i.route("scale.border","color","","borderColor"),i.route("scale.title","color","","color"),i.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&t!=="callback"&&t!=="parser",_indexable:t=>t!=="borderDash"&&t!=="tickBorderDash"&&t!=="dash"}),i.describe("scales",{_fallback:"scale"}),i.describe("scale.ticks",{_scriptable:t=>t!=="backdropPadding"&&t!=="callback",_indexable:t=>t!=="backdropPadding"})}const zt=Object.create(null),yi=Object.create(null);function he(i,t){if(!t)return i;const e=t.split(".");for(let s=0,n=e.length;ss.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(s,n)=>ri(n.backgroundColor),this.hoverBorderColor=(s,n)=>ri(n.borderColor),this.hoverColor=(s,n)=>ri(n.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t),this.apply(e)}set(t,e){return li(this,t,e)}get(t){return he(this,t)}describe(t,e){return li(yi,t,e)}override(t,e){return li(zt,t,e)}route(t,e,s,n){const o=he(this,t),a=he(this,s),r="_"+e;Object.defineProperties(o,{[r]:{value:o[e],writable:!0},[e]:{enumerable:!0,get(){const l=this[r],c=a[n];return A(l)?Object.assign({},c,l):D(l,c)},set(l){this[r]=l}}})}apply(t){t.forEach(e=>e(this))}}var N=new fa({_scriptable:i=>!i.startsWith("on"),_indexable:i=>i!=="events",hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[la,ca,ua]);function ga(i){return!i||L(i.size)||L(i.family)?null:(i.style?i.style+" ":"")+(i.weight?i.weight+" ":"")+i.size+"px "+i.family}function Ge(i,t,e,s,n){let o=t[n];return o||(o=t[n]=i.measureText(n).width,e.push(n)),o>s&&(s=o),s}function pa(i,t,e,s){s=s||{};let n=s.data=s.data||{},o=s.garbageCollect=s.garbageCollect||[];s.font!==t&&(n=s.data={},o=s.garbageCollect=[],s.font=t),i.save(),i.font=t;let a=0;const r=e.length;let l,c,h,d,u;for(l=0;le.length){for(l=0;l0&&i.stroke()}}function mt(i,t,e){return e=e||.5,!t||i&&i.x>t.left-e&&i.xt.top-e&&i.y0&&o.strokeColor!=="";let l,c;for(i.save(),i.font=n.string,xa(i,o),l=0;l+i||0;function Hi(i,t){const e={},s=A(t),n=s?Object.keys(t):t,o=A(i)?s?a=>D(i[a],i[t[a]]):a=>i[a]:()=>i;for(const a of n)e[a]=wa(o(a));return e}function In(i){return Hi(i,{top:"y",right:"x",bottom:"y",left:"x"})}function Ft(i){return Hi(i,["topLeft","topRight","bottomLeft","bottomRight"])}function G(i){const t=In(i);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function $(i,t){i=i||{},t=t||N.font;let e=D(i.size,t.size);typeof e=="string"&&(e=parseInt(e,10));let s=D(i.style,t.style);s&&!(""+s).match(Ma)&&(console.warn('Invalid font style specified: "'+s+'"'),s=void 0);const n={family:D(i.family,t.family),lineHeight:ka(D(i.lineHeight,t.lineHeight),e),size:e,style:s,weight:D(i.weight,t.weight),string:""};return n.string=ga(n),n}function ie(i,t,e,s){let n=!0,o,a,r;for(o=0,a=i.length;oe&&r===0?0:r+l;return{min:a(s,-Math.abs(o)),max:a(n,o)}}function St(i,t){return Object.assign(Object.create(i),t)}function ji(i,t=[""],e,s,n=()=>i[0]){const o=e||i;typeof s>"u"&&(s=Wn("_fallback",i));const a={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:i,_rootScopes:o,_fallback:s,_getTarget:n,override:r=>ji([r,...i],t,o,s)};return new Proxy(a,{deleteProperty(r,l){return delete r[l],delete r._keys,delete i[0][l],!0},get(r,l){return Bn(r,l,()=>Ra(l,t,i,r))},getOwnPropertyDescriptor(r,l){return Reflect.getOwnPropertyDescriptor(r._scopes[0],l)},getPrototypeOf(){return Reflect.getPrototypeOf(i[0])},has(r,l){return fs(r).includes(l)},ownKeys(r){return fs(r)},set(r,l,c){const h=r._storage||(r._storage=n());return r[l]=h[l]=c,delete r._keys,!0}})}function Xt(i,t,e,s){const n={_cacheable:!1,_proxy:i,_context:t,_subProxy:e,_stack:new Set,_descriptors:zn(i,s),setContext:o=>Xt(i,o,e,s),override:o=>Xt(i.override(o),t,e,s)};return new Proxy(n,{deleteProperty(o,a){return delete o[a],delete i[a],!0},get(o,a,r){return Bn(o,a,()=>Da(o,a,r))},getOwnPropertyDescriptor(o,a){return o._descriptors.allKeys?Reflect.has(i,a)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(i,a)},getPrototypeOf(){return Reflect.getPrototypeOf(i)},has(o,a){return Reflect.has(i,a)},ownKeys(){return Reflect.ownKeys(i)},set(o,a,r){return i[a]=r,delete o[a],!0}})}function zn(i,t={scriptable:!0,indexable:!0}){const{_scriptable:e=t.scriptable,_indexable:s=t.indexable,_allKeys:n=t.allKeys}=i;return{allKeys:n,scriptable:e,indexable:s,isScriptable:wt(e)?e:()=>e,isIndexable:wt(s)?s:()=>s}}const Pa=(i,t)=>i?i+zi(t):t,$i=(i,t)=>A(t)&&i!=="adapters"&&(Object.getPrototypeOf(t)===null||t.constructor===Object);function Bn(i,t,e){if(Object.prototype.hasOwnProperty.call(i,t))return i[t];const s=e();return i[t]=s,s}function Da(i,t,e){const{_proxy:s,_context:n,_subProxy:o,_descriptors:a}=i;let r=s[t];return wt(r)&&a.isScriptable(t)&&(r=Oa(t,r,i,e)),I(r)&&r.length&&(r=Ca(t,r,i,a.isIndexable)),$i(t,r)&&(r=Xt(r,n,o&&o[t],a)),r}function Oa(i,t,e,s){const{_proxy:n,_context:o,_subProxy:a,_stack:r}=e;if(r.has(i))throw new Error("Recursion detected: "+Array.from(r).join("->")+"->"+i);r.add(i);let l=t(o,a||s);return r.delete(i),$i(i,l)&&(l=Yi(n._scopes,n,i,l)),l}function Ca(i,t,e,s){const{_proxy:n,_context:o,_subProxy:a,_descriptors:r}=e;if(typeof o.index<"u"&&s(i))return t[o.index%t.length];if(A(t[0])){const l=t,c=n._scopes.filter(h=>h!==l);t=[];for(const h of l){const d=Yi(c,n,i,h);t.push(Xt(d,o,a&&a[i],r))}}return t}function Vn(i,t,e){return wt(i)?i(t,e):i}const Aa=(i,t)=>i===!0?t:typeof i=="string"?kt(t,i):void 0;function Ta(i,t,e,s,n){for(const o of t){const a=Aa(e,o);if(a){i.add(a);const r=Vn(a._fallback,e,n);if(typeof r<"u"&&r!==e&&r!==s)return r}else if(a===!1&&typeof s<"u"&&e!==s)return null}return!1}function Yi(i,t,e,s){const n=t._rootScopes,o=Vn(t._fallback,e,s),a=[...i,...n],r=new Set;r.add(s);let l=us(r,a,e,o||e,s);return l===null||typeof o<"u"&&o!==e&&(l=us(r,a,o,l,s),l===null)?!1:ji(Array.from(r),[""],n,o,()=>La(t,e,s))}function us(i,t,e,s,n){for(;e;)e=Ta(i,t,e,s,n);return e}function La(i,t,e){const s=i._getTarget();t in s||(s[t]={});const n=s[t];return I(n)&&A(e)?e:n||{}}function Ra(i,t,e,s){let n;for(const o of t)if(n=Wn(Pa(o,i),e),typeof n<"u")return $i(i,n)?Yi(e,s,i,n):n}function Wn(i,t){for(const e of t){if(!e)continue;const s=e[i];if(typeof s<"u")return s}}function fs(i){let t=i._keys;return t||(t=i._keys=Ea(i._scopes)),t}function Ea(i){const t=new Set;for(const e of i)for(const s of Object.keys(e).filter(n=>!n.startsWith("_")))t.add(s);return Array.from(t)}function Nn(i,t,e,s){const{iScale:n}=i,{key:o="r"}=this._parsing,a=new Array(s);let r,l,c,h;for(r=0,l=s;rti==="x"?"y":"x";function Ia(i,t,e,s){const n=i.skip?t:i,o=t,a=e.skip?t:e,r=_i(o,n),l=_i(a,o);let c=r/(r+l),h=l/(r+l);c=isNaN(c)?0:c,h=isNaN(h)?0:h;const d=s*c,u=s*h;return{previous:{x:o.x-d*(a.x-n.x),y:o.y-d*(a.y-n.y)},next:{x:o.x+u*(a.x-n.x),y:o.y+u*(a.y-n.y)}}}function za(i,t,e){const s=i.length;let n,o,a,r,l,c=Ut(i,0);for(let h=0;h!c.skip)),t.cubicInterpolationMode==="monotone")Va(i,n);else{let c=s?i[i.length-1]:i[0];for(o=0,a=i.length;oi.ownerDocument.defaultView.getComputedStyle(i,null);function Ha(i,t){return ni(i).getPropertyValue(t)}const ja=["top","right","bottom","left"];function It(i,t,e){const s={};e=e?"-"+e:"";for(let n=0;n<4;n++){const o=ja[n];s[o]=parseFloat(i[t+"-"+o+e])||0}return s.width=s.left+s.right,s.height=s.top+s.bottom,s}const $a=(i,t,e)=>(i>0||t>0)&&(!e||!e.shadowRoot);function Ya(i,t){const e=i.touches,s=e&&e.length?e[0]:i,{offsetX:n,offsetY:o}=s;let a=!1,r,l;if($a(n,o,i.target))r=n,l=o;else{const c=t.getBoundingClientRect();r=s.clientX-c.left,l=s.clientY-c.top,a=!0}return{x:r,y:l,box:a}}function Lt(i,t){if("native"in i)return i;const{canvas:e,currentDevicePixelRatio:s}=t,n=ni(e),o=n.boxSizing==="border-box",a=It(n,"padding"),r=It(n,"border","width"),{x:l,y:c,box:h}=Ya(i,e),d=a.left+(h&&r.left),u=a.top+(h&&r.top);let{width:f,height:g}=t;return o&&(f-=a.width+r.width,g-=a.height+r.height),{x:Math.round((l-d)/f*e.width/s),y:Math.round((c-u)/g*e.height/s)}}function Xa(i,t,e){let s,n;if(t===void 0||e===void 0){const o=Ui(i);if(!o)t=i.clientWidth,e=i.clientHeight;else{const a=o.getBoundingClientRect(),r=ni(o),l=It(r,"border","width"),c=It(r,"padding");t=a.width-c.width-l.width,e=a.height-c.height-l.height,s=Ze(r.maxWidth,o,"clientWidth"),n=Ze(r.maxHeight,o,"clientHeight")}}return{width:t,height:e,maxWidth:s||qe,maxHeight:n||qe}}const Ce=i=>Math.round(i*10)/10;function Ua(i,t,e,s){const n=ni(i),o=It(n,"margin"),a=Ze(n.maxWidth,i,"clientWidth")||qe,r=Ze(n.maxHeight,i,"clientHeight")||qe,l=Xa(i,t,e);let{width:c,height:h}=l;if(n.boxSizing==="content-box"){const u=It(n,"border","width"),f=It(n,"padding");c-=f.width+u.width,h-=f.height+u.height}return c=Math.max(0,c-o.width),h=Math.max(0,s?c/s:h-o.height),c=Ce(Math.min(c,a,l.maxWidth)),h=Ce(Math.min(h,r,l.maxHeight)),c&&!h&&(h=Ce(c/2)),(t!==void 0||e!==void 0)&&s&&l.height&&h>l.height&&(h=l.height,c=Ce(Math.floor(h*s))),{width:c,height:h}}function gs(i,t,e){const s=t||1,n=Math.floor(i.height*s),o=Math.floor(i.width*s);i.height=Math.floor(i.height),i.width=Math.floor(i.width);const a=i.canvas;return a.style&&(e||!a.style.height&&!a.style.width)&&(a.style.height=`${i.height}px`,a.style.width=`${i.width}px`),i.currentDevicePixelRatio!==s||a.height!==n||a.width!==o?(i.currentDevicePixelRatio=s,a.height=n,a.width=o,i.ctx.setTransform(s,0,0,s,0,0),!0):!1}const Ka=function(){let i=!1;try{const t={get passive(){return i=!0,!1}};Xi()&&(window.addEventListener("test",null,t),window.removeEventListener("test",null,t))}catch{}return i}();function ps(i,t){const e=Ha(i,t),s=e&&e.match(/^(\d+)(\.\d+)?px$/);return s?+s[1]:void 0}function Rt(i,t,e,s){return{x:i.x+e*(t.x-i.x),y:i.y+e*(t.y-i.y)}}function qa(i,t,e,s){return{x:i.x+e*(t.x-i.x),y:s==="middle"?e<.5?i.y:t.y:s==="after"?e<1?i.y:t.y:e>0?t.y:i.y}}function Ga(i,t,e,s){const n={x:i.cp2x,y:i.cp2y},o={x:t.cp1x,y:t.cp1y},a=Rt(i,n,e),r=Rt(n,o,e),l=Rt(o,t,e),c=Rt(a,r,e),h=Rt(r,l,e);return Rt(c,h,e)}const Za=function(i,t){return{x(e){return i+i+t-e},setWidth(e){t=e},textAlign(e){return e==="center"?e:e==="right"?"left":"right"},xPlus(e,s){return e-s},leftForLtr(e,s){return e-s}}},Ja=function(){return{x(i){return i},setWidth(i){},textAlign(i){return i},xPlus(i,t){return i+t},leftForLtr(i,t){return i}}};function $t(i,t,e){return i?Za(t,e):Ja()}function jn(i,t){let e,s;(t==="ltr"||t==="rtl")&&(e=i.canvas.style,s=[e.getPropertyValue("direction"),e.getPropertyPriority("direction")],e.setProperty("direction",t,"important"),i.prevTextDirection=s)}function $n(i,t){t!==void 0&&(delete i.prevTextDirection,i.canvas.style.setProperty("direction",t[0],t[1]))}function Yn(i){return i==="angle"?{between:pe,compare:Qo,normalize:et}:{between:gt,compare:(t,e)=>t-e,normalize:t=>t}}function ms({start:i,end:t,count:e,loop:s,style:n}){return{start:i%e,end:t%e,loop:s&&(t-i+1)%e===0,style:n}}function Qa(i,t,e){const{property:s,start:n,end:o}=e,{between:a,normalize:r}=Yn(s),l=t.length;let{start:c,end:h,loop:d}=i,u,f;if(d){for(c+=l,h+=l,u=0,f=l;ul(n,v,b)&&r(n,v)!==0,_=()=>r(o,b)===0||l(o,v,b),k=()=>p||y(),w=()=>!p||_();for(let S=h,P=h;S<=d;++S)x=t[S%a],!x.skip&&(b=c(x[s]),b!==v&&(p=l(b,n,o),m===null&&k()&&(m=r(b,n)===0?S:P),m!==null&&w()&&(g.push(ms({start:m,end:S,loop:u,count:a,style:f})),m=null),P=S,v=b));return m!==null&&g.push(ms({start:m,end:d,loop:u,count:a,style:f})),g}function Un(i,t){const e=[],s=i.segments;for(let n=0;nn&&i[o%t].skip;)o--;return o%=t,{start:n,end:o}}function er(i,t,e,s){const n=i.length,o=[];let a=t,r=i[t],l;for(l=t+1;l<=e;++l){const c=i[l%n];c.skip||c.stop?r.skip||(s=!1,o.push({start:t%n,end:(l-1)%n,loop:s}),t=a=c.stop?l:null):(a=l,r.skip&&(t=l)),r=c}return a!==null&&o.push({start:t%n,end:a%n,loop:s}),o}function ir(i,t){const e=i.points,s=i.options.spanGaps,n=e.length;if(!n)return[];const o=!!i._loop,{start:a,end:r}=tr(e,n,o,s);if(s===!0)return bs(i,[{start:a,end:r,loop:o}],e,t);const l=rr({chart:t,initial:e.initial,numSteps:a,currentStep:Math.min(s-e.start,a)}))}_refresh(){this._request||(this._running=!0,this._request=An.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(t=Date.now()){let e=0;this._charts.forEach((s,n)=>{if(!s.running||!s.items.length)return;const o=s.items;let a=o.length-1,r=!1,l;for(;a>=0;--a)l=o[a],l._active?(l._total>s.duration&&(s.duration=l._total),l.tick(t),r=!0):(o[a]=o[o.length-1],o.pop());r&&(n.draw(),this._notify(n,s,t,"progress")),o.length||(s.running=!1,this._notify(n,s,t,"complete"),s.initial=!1),e+=o.length}),this._lastDate=t,e===0&&(this._running=!1)}_getAnims(t){const e=this._charts;let s=e.get(t);return s||(s={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,s)),s}listen(t,e,s){this._getAnims(t).listeners[e].push(s)}add(t,e){!e||!e.length||this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce((s,n)=>Math.max(s,n._duration),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!(!e||!e.running||!e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const s=e.items;let n=s.length-1;for(;n>=0;--n)s[n].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}var dt=new or;const _s="transparent",ar={boolean(i,t,e){return e>.5?t:i},color(i,t,e){const s=cs(i||_s),n=s.valid&&cs(t||_s);return n&&n.valid?n.mix(s,e).hexString():t},number(i,t,e){return i+(t-i)*e}};class rr{constructor(t,e,s,n){const o=e[s];n=ie([t.to,n,o,t.from]);const a=ie([t.from,o,n]);this._active=!0,this._fn=t.fn||ar[t.type||typeof a],this._easing=ce[t.easing]||ce.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=s,this._from=a,this._to=n,this._promises=void 0}active(){return this._active}update(t,e,s){if(this._active){this._notify(!1);const n=this._target[this._prop],o=s-this._start,a=this._duration-o;this._start=s,this._duration=Math.floor(Math.max(a,t.duration)),this._total+=o,this._loop=!!t.loop,this._to=ie([t.to,e,n,t.from]),this._from=ie([t.from,n,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,s=this._duration,n=this._prop,o=this._from,a=this._loop,r=this._to;let l;if(this._active=o!==r&&(a||e1?2-l:l,l=this._easing(Math.min(1,Math.max(0,l))),this._target[n]=this._fn(o,r,l)}wait(){const t=this._promises||(this._promises=[]);return new Promise((e,s)=>{t.push({res:e,rej:s})})}_notify(t){const e=t?"res":"rej",s=this._promises||[];for(let n=0;n{const o=t[n];if(!A(o))return;const a={};for(const r of e)a[r]=o[r];(I(o.properties)&&o.properties||[n]).forEach(r=>{(r===n||!s.has(r))&&s.set(r,a)})})}_animateOptions(t,e){const s=e.options,n=cr(t,s);if(!n)return[];const o=this._createAnimations(n,s);return s.$shared&&lr(t.options.$animations,s).then(()=>{t.options=s},()=>{}),o}_createAnimations(t,e){const s=this._properties,n=[],o=t.$animations||(t.$animations={}),a=Object.keys(e),r=Date.now();let l;for(l=a.length-1;l>=0;--l){const c=a[l];if(c.charAt(0)==="$")continue;if(c==="options"){n.push(...this._animateOptions(t,e));continue}const h=e[c];let d=o[c];const u=s.get(c);if(d)if(u&&d.active()){d.update(u,h,r);continue}else d.cancel();if(!u||!u.duration){t[c]=h;continue}o[c]=d=new rr(u,t,c,h),n.push(d)}return n}update(t,e){if(this._properties.size===0){Object.assign(t,e);return}const s=this._createAnimations(t,e);if(s.length)return dt.add(this._chart,s),!0}}function lr(i,t){const e=[],s=Object.keys(t);for(let n=0;n0||!e&&o<0)return n.index}return null}function ws(i,t){const{chart:e,_cachedMeta:s}=i,n=e._stacks||(e._stacks={}),{iScale:o,vScale:a,index:r}=s,l=o.axis,c=a.axis,h=fr(o,a,s),d=t.length;let u;for(let f=0;fe[s].axis===t).shift()}function mr(i,t){return St(i,{active:!1,dataset:void 0,datasetIndex:t,index:t,mode:"default",type:"dataset"})}function br(i,t,e){return St(i,{active:!1,dataIndex:t,parsed:void 0,raw:void 0,element:e,index:t,mode:"default",type:"data"})}function Gt(i,t){const e=i.controller.index,s=i.vScale&&i.vScale.axis;if(s){t=t||i._parsed;for(const n of t){const o=n._stacks;if(!o||o[s]===void 0||o[s][e]===void 0)return;delete o[s][e],o[s]._visualValues!==void 0&&o[s]._visualValues[e]!==void 0&&delete o[s]._visualValues[e]}}}const hi=i=>i==="reset"||i==="none",Ss=(i,t)=>t?i:Object.assign({},i),xr=(i,t,e)=>i&&!t.hidden&&t._stacked&&{keys:qn(e,!0),values:null};class ot{constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=Ms(t.vScale,t),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(t){this.index!==t&&Gt(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,s=this.getDataset(),n=(d,u,f,g)=>d==="x"?u:d==="r"?g:f,o=e.xAxisID=D(s.xAxisID,ci(t,"x")),a=e.yAxisID=D(s.yAxisID,ci(t,"y")),r=e.rAxisID=D(s.rAxisID,ci(t,"r")),l=e.indexAxis,c=e.iAxisID=n(l,o,a,r),h=e.vAxisID=n(l,a,o,r);e.xScale=this.getScaleForId(o),e.yScale=this.getScaleForId(a),e.rScale=this.getScaleForId(r),e.iScale=this.getScaleForId(c),e.vScale=this.getScaleForId(h)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&as(this._data,this),t._stacked&&Gt(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),s=this._data;if(A(e))this._data=ur(e);else if(s!==e){if(s){as(s,this);const n=this._cachedMeta;Gt(n),n._parsed=[]}e&&Object.isExtensible(e)&&sa(e,this),this._syncList=[],this._data=e}}addElements(){const t=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(t.dataset=new this.datasetElementType)}buildOrUpdateElements(t){const e=this._cachedMeta,s=this.getDataset();let n=!1;this._dataCheck();const o=e._stacked;e._stacked=Ms(e.vScale,e),e.stack!==s.stack&&(n=!0,Gt(e),e.stack=s.stack),this._resyncElements(t),(n||o!==e._stacked)&&ws(this,e._parsed)}configure(){const t=this.chart.config,e=t.datasetScopeKeys(this._type),s=t.getOptionScopes(this.getDataset(),e,!0);this.options=t.createResolver(s,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(t,e){const{_cachedMeta:s,_data:n}=this,{iScale:o,_stacked:a}=s,r=o.axis;let l=t===0&&e===n.length?!0:s._sorted,c=t>0&&s._parsed[t-1],h,d,u;if(this._parsing===!1)s._parsed=n,s._sorted=!0,u=n;else{I(n[t])?u=this.parseArrayData(s,n,t,e):A(n[t])?u=this.parseObjectData(s,n,t,e):u=this.parsePrimitiveData(s,n,t,e);const f=()=>d[r]===null||c&&d[r]p||d=0;--u)if(!g()){this.updateRangeFromParsed(c,t,f,l);break}}return c}getAllParsedValues(t){const e=this._cachedMeta._parsed,s=[];let n,o,a;for(n=0,o=e.length;n=0&&tthis.getContext(s,n,e),p=c.resolveNamedOptions(u,f,g,d);return p.$shared&&(p.$shared=l,o[a]=Object.freeze(Ss(p,l))),p}_resolveAnimations(t,e,s){const n=this.chart,o=this._cachedDataOpts,a=`animation-${e}`,r=o[a];if(r)return r;let l;if(n.options.animation!==!1){const h=this.chart.config,d=h.datasetAnimationScopeKeys(this._type,e),u=h.getOptionScopes(this.getDataset(),d);l=h.createResolver(u,this.getContext(t,s,e))}const c=new Kn(n,l&&l.animations);return l&&l._cacheable&&(o[a]=Object.freeze(c)),c}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||hi(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){const s=this.resolveDataElementOptions(t,e),n=this._sharedOptions,o=this.getSharedOptions(s),a=this.includeOptions(e,o)||o!==n;return this.updateSharedOptions(o,e,s),{sharedOptions:o,includeOptions:a}}updateElement(t,e,s,n){hi(n)?Object.assign(t,s):this._resolveAnimations(e,n).update(t,s)}updateSharedOptions(t,e,s){t&&!hi(e)&&this._resolveAnimations(void 0,e).update(t,s)}_setStyle(t,e,s,n){t.active=n;const o=this.getStyle(e,n);this._resolveAnimations(e,s,n).update(t,{options:!n&&this.getSharedOptions(o)||o})}removeHoverStyle(t,e,s){this._setStyle(t,s,"active",!1)}setHoverStyle(t,e,s){this._setStyle(t,s,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const e=this._data,s=this._cachedMeta.data;for(const[r,l,c]of this._syncList)this[r](l,c);this._syncList=[];const n=s.length,o=e.length,a=Math.min(o,n);a&&this.parse(0,a),o>n?this._insertElements(n,o-n,t):o{for(c.length+=e,r=c.length-1;r>=a;r--)c[r]=c[r-e]};for(l(o),r=t;rn-o))}return i._cache.$bar}function yr(i){const t=i.iScale,e=_r(t,i.type);let s=t._length,n,o,a,r;const l=()=>{a===32767||a===-32768||(ge(r)&&(s=Math.min(s,Math.abs(a-r)||s)),r=a)};for(n=0,o=e.length;n0?n[i-1]:null,r=iMath.abs(r)&&(l=r,c=a),t[e.axis]=c,t._custom={barStart:l,barEnd:c,start:n,end:o,min:a,max:r}}function Gn(i,t,e,s){return I(i)?kr(i,t,e,s):t[e.axis]=e.parse(i,s),t}function Ps(i,t,e,s){const n=i.iScale,o=i.vScale,a=n.getLabels(),r=n===o,l=[];let c,h,d,u;for(c=e,h=e+s;c=e?1:-1)}function Sr(i){let t,e,s,n,o;return i.horizontal?(t=i.base>i.x,e="left",s="right"):(t=i.basel.controller.options.grouped),o=s.options.stacked,a=[],r=l=>{const c=l.controller.getParsed(e),h=c&&c[l.vScale.axis];if(L(h)||isNaN(h))return!0};for(const l of n)if(!(e!==void 0&&r(l))&&((o===!1||a.indexOf(l.stack)===-1||o===void 0&&l.stack===void 0)&&a.push(l.stack),l.index===t))break;return a.length||a.push(void 0),a}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,e,s){const n=this._getStacks(t,s),o=e!==void 0?n.indexOf(e):-1;return o===-1?n.length-1:o}_getRuler(){const t=this.options,e=this._cachedMeta,s=e.iScale,n=[];let o,a;for(o=0,a=e.data.length;o=0;--s)e=Math.max(e,t[s].size(this.resolveDataElementOptions(s))/2);return e>0&&e}getLabelAndValue(t){const e=this._cachedMeta,s=this.chart.data.labels||[],{xScale:n,yScale:o}=e,a=this.getParsed(t),r=n.getLabelForValue(a.x),l=o.getLabelForValue(a.y),c=a._custom;return{label:s[t]||"",value:"("+r+", "+l+(c?", "+c:"")+")"}}update(t){const e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,s,n){const o=n==="reset",{iScale:a,vScale:r}=this._cachedMeta,{sharedOptions:l,includeOptions:c}=this._getSharedOptions(e,n),h=a.axis,d=r.axis;for(let u=e;upe(v,r,l,!0)?1:Math.max(y,y*e,_,_*e),g=(v,y,_)=>pe(v,r,l,!0)?-1:Math.min(y,y*e,_,_*e),p=f(0,c,d),m=f(j,h,u),b=g(B,c,d),x=g(B+j,h,u);s=(p-b)/2,n=(m-x)/2,o=-(p+b)/2,a=-(m+x)/2}return{ratioX:s,ratioY:n,offsetX:o,offsetY:a}}class Et extends ot{constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){const s=this.getDataset().data,n=this._cachedMeta;if(this._parsing===!1)n._parsed=s;else{let o=l=>+s[l];if(A(s[t])){const{key:l="value"}=this._parsing;o=c=>+kt(s[c],l)}let a,r;for(a=t,r=t+e;a0&&!isNaN(t)?z*(Math.abs(t)/e):0}getLabelAndValue(t){const e=this._cachedMeta,s=this.chart,n=s.data.labels||[],o=ve(e._parsed[t],s.options.locale);return{label:n[t]||"",value:o}}getMaxBorderWidth(t){let e=0;const s=this.chart;let n,o,a,r,l;if(!t){for(n=0,o=s.data.datasets.length;nt!=="spacing",_indexable:t=>t!=="spacing"&&!t.startsWith("borderDash")&&!t.startsWith("hoverBorderDash")}),M(Et,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:s,color:n}}=t.legend.options;return e.labels.map((o,a)=>{const l=t.getDatasetMeta(0).controller.getStyle(a);return{text:o,fillStyle:l.backgroundColor,strokeStyle:l.borderColor,fontColor:n,lineWidth:l.borderWidth,pointStyle:s,hidden:!t.getDataVisibility(a),index:a}})}return[]}},onClick(t,e,s){s.chart.toggleDataVisibility(e.index),s.chart.update()}}}});class We extends ot{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const e=this._cachedMeta,{dataset:s,data:n=[],_dataset:o}=e,a=this.chart._animationsDisabled;let{start:r,count:l}=Ln(e,n,a);this._drawStart=r,this._drawCount=l,Rn(e)&&(r=0,l=n.length),s._chart=this.chart,s._datasetIndex=this.index,s._decimated=!!o._decimated,s.points=n;const c=this.resolveDatasetElementOptions(t);this.options.showLine||(c.borderWidth=0),c.segment=this.options.segment,this.updateElement(s,void 0,{animated:!a,options:c},t),this.updateElements(n,r,l,t)}updateElements(t,e,s,n){const o=n==="reset",{iScale:a,vScale:r,_stacked:l,_dataset:c}=this._cachedMeta,{sharedOptions:h,includeOptions:d}=this._getSharedOptions(e,n),u=a.axis,f=r.axis,{spanGaps:g,segment:p}=this.options,m=Yt(g)?g:Number.POSITIVE_INFINITY,b=this.chart._animationsDisabled||o||n==="none",x=e+s,v=t.length;let y=e>0&&this.getParsed(e-1);for(let _=0;_=x){w.skip=!0;continue}const S=this.getParsed(_),P=L(S[f]),O=w[u]=a.getPixelForValue(S[u],_),C=w[f]=o||P?r.getBasePixel():r.getPixelForValue(l?this.applyStack(r,S,l):S[f],_);w.skip=isNaN(O)||isNaN(C)||P,w.stop=_>0&&Math.abs(S[u]-y[u])>m,p&&(w.parsed=S,w.raw=c.data[_]),d&&(w.options=h||this.resolveDataElementOptions(_,k.active?"active":n)),b||this.updateElement(k,_,w,n),y=S}}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,s=e.options&&e.options.borderWidth||0,n=t.data||[];if(!n.length)return s;const o=n[0].size(this.resolveDataElementOptions(0)),a=n[n.length-1].size(this.resolveDataElementOptions(n.length-1));return Math.max(s,o,a)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}M(We,"id","line"),M(We,"defaults",{datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1}),M(We,"overrides",{scales:{_index_:{type:"category"},_value_:{type:"linear"}}});class de extends ot{constructor(t,e){super(t,e),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){const e=this._cachedMeta,s=this.chart,n=s.data.labels||[],o=ve(e._parsed[t].r,s.options.locale);return{label:n[t]||"",value:o}}parseObjectData(t,e,s,n){return Nn.bind(this)(t,e,s,n)}update(t){const e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}getMinMax(){const t=this._cachedMeta,e={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach((s,n)=>{const o=this.getParsed(n).r;!isNaN(o)&&this.chart.getDataVisibility(n)&&(oe.max&&(e.max=o))}),e}_updateRadius(){const t=this.chart,e=t.chartArea,s=t.options,n=Math.min(e.right-e.left,e.bottom-e.top),o=Math.max(n/2,0),a=Math.max(s.cutoutPercentage?o/100*s.cutoutPercentage:1,0),r=(o-a)/t.getVisibleDatasetCount();this.outerRadius=o-r*this.index,this.innerRadius=this.outerRadius-r}updateElements(t,e,s,n){const o=n==="reset",a=this.chart,l=a.options.animation,c=this._cachedMeta.rScale,h=c.xCenter,d=c.yCenter,u=c.getIndexAngle(0)-.5*B;let f=u,g;const p=360/this.countVisibleElements();for(g=0;g{!isNaN(this.getParsed(n).r)&&this.chart.getDataVisibility(n)&&e++}),e}_computeAngle(t,e,s){return this.chart.getDataVisibility(t)?nt(this.resolveDataElementOptions(t,e).angle||s):0}}M(de,"id","polarArea"),M(de,"defaults",{dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0}),M(de,"overrides",{aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:s,color:n}}=t.legend.options;return e.labels.map((o,a)=>{const l=t.getDatasetMeta(0).controller.getStyle(a);return{text:o,fillStyle:l.backgroundColor,strokeStyle:l.borderColor,fontColor:n,lineWidth:l.borderWidth,pointStyle:s,hidden:!t.getDataVisibility(a),index:a}})}return[]}},onClick(t,e,s){s.chart.toggleDataVisibility(e.index),s.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}});class Mi extends Et{}M(Mi,"id","pie"),M(Mi,"defaults",{cutout:0,rotation:0,circumference:360,radius:"100%"});class Ne extends ot{getLabelAndValue(t){const e=this._cachedMeta.vScale,s=this.getParsed(t);return{label:e.getLabels()[t],value:""+e.getLabelForValue(s[e.axis])}}parseObjectData(t,e,s,n){return Nn.bind(this)(t,e,s,n)}update(t){const e=this._cachedMeta,s=e.dataset,n=e.data||[],o=e.iScale.getLabels();if(s.points=n,t!=="resize"){const a=this.resolveDatasetElementOptions(t);this.options.showLine||(a.borderWidth=0);const r={_loop:!0,_fullLoop:o.length===n.length,options:a};this.updateElement(s,void 0,r,t)}this.updateElements(n,0,n.length,t)}updateElements(t,e,s,n){const o=this._cachedMeta.rScale,a=n==="reset";for(let r=e;r0&&this.getParsed(e-1);for(let y=e;y0&&Math.abs(k[f]-v[f])>b,m&&(w.parsed=k,w.raw=c.data[y]),u&&(w.options=d||this.resolveDataElementOptions(y,_.active?"active":n)),x||this.updateElement(_,y,w,n),v=k}this.updateSharedOptions(d,n,h)}getMaxOverflow(){const t=this._cachedMeta,e=t.data||[];if(!this.options.showLine){let r=0;for(let l=e.length-1;l>=0;--l)r=Math.max(r,e[l].size(this.resolveDataElementOptions(l))/2);return r>0&&r}const s=t.dataset,n=s.options&&s.options.borderWidth||0;if(!e.length)return n;const o=e[0].size(this.resolveDataElementOptions(0)),a=e[e.length-1].size(this.resolveDataElementOptions(e.length-1));return Math.max(n,o,a)/2}}M(He,"id","scatter"),M(He,"defaults",{datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1}),M(He,"overrides",{interaction:{mode:"point"},scales:{x:{type:"linear"},y:{type:"linear"}}});var Ar=Object.freeze({__proto__:null,BarController:Be,BubbleController:Ve,DoughnutController:Et,LineController:We,PieController:Mi,PolarAreaController:de,RadarController:Ne,ScatterController:He});function At(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class Ki{constructor(t){M(this,"options");this.options=t||{}}static override(t){Object.assign(Ki.prototype,t)}init(){}formats(){return At()}parse(){return At()}format(){return At()}add(){return At()}diff(){return At()}startOf(){return At()}endOf(){return At()}}var Tr={_date:Ki};function Lr(i,t,e,s){const{controller:n,data:o,_sorted:a}=i,r=n._cachedMeta.iScale;if(r&&t===r.axis&&t!=="r"&&a&&o.length){const l=r._reversePixels?ea:pt;if(s){if(n._sharedOptions){const c=o[0],h=typeof c.getRange=="function"&&c.getRange(t);if(h){const d=l(o,t,e-h),u=l(o,t,e+h);return{lo:d.lo,hi:u.hi}}}}else return l(o,t,e)}return{lo:0,hi:o.length-1}}function Me(i,t,e,s,n){const o=i.getSortedVisibleDatasetMetas(),a=e[t];for(let r=0,l=o.length;r{l[a](t[e],n)&&(o.push({element:l,datasetIndex:c,index:h}),r=r||l.inRange(t.x,t.y,n))}),s&&!r?[]:o}var Ir={evaluateInteractionItems:Me,modes:{index(i,t,e,s){const n=Lt(t,i),o=e.axis||"x",a=e.includeInvisible||!1,r=e.intersect?ui(i,n,o,s,a):fi(i,n,o,!1,s,a),l=[];return r.length?(i.getSortedVisibleDatasetMetas().forEach(c=>{const h=r[0].index,d=c.data[h];d&&!d.skip&&l.push({element:d,datasetIndex:c.index,index:h})}),l):[]},dataset(i,t,e,s){const n=Lt(t,i),o=e.axis||"xy",a=e.includeInvisible||!1;let r=e.intersect?ui(i,n,o,s,a):fi(i,n,o,!1,s,a);if(r.length>0){const l=r[0].datasetIndex,c=i.getDatasetMeta(l).data;r=[];for(let h=0;he.pos===t)}function As(i,t){return i.filter(e=>Zn.indexOf(e.pos)===-1&&e.box.axis===t)}function Jt(i,t){return i.sort((e,s)=>{const n=t?s:e,o=t?e:s;return n.weight===o.weight?n.index-o.index:n.weight-o.weight})}function zr(i){const t=[];let e,s,n,o,a,r;for(e=0,s=(i||[]).length;ec.box.fullSize),!0),s=Jt(Zt(t,"left"),!0),n=Jt(Zt(t,"right")),o=Jt(Zt(t,"top"),!0),a=Jt(Zt(t,"bottom")),r=As(t,"x"),l=As(t,"y");return{fullSize:e,leftAndTop:s.concat(o),rightAndBottom:n.concat(l).concat(a).concat(r),chartArea:Zt(t,"chartArea"),vertical:s.concat(n).concat(l),horizontal:o.concat(a).concat(r)}}function Ts(i,t,e,s){return Math.max(i[e],t[e])+Math.max(i[s],t[s])}function Jn(i,t){i.top=Math.max(i.top,t.top),i.left=Math.max(i.left,t.left),i.bottom=Math.max(i.bottom,t.bottom),i.right=Math.max(i.right,t.right)}function Nr(i,t,e,s){const{pos:n,box:o}=e,a=i.maxPadding;if(!A(n)){e.size&&(i[n]-=e.size);const d=s[e.stack]||{size:0,count:1};d.size=Math.max(d.size,e.horizontal?o.height:o.width),e.size=d.size/d.count,i[n]+=e.size}o.getPadding&&Jn(a,o.getPadding());const r=Math.max(0,t.outerWidth-Ts(a,i,"left","right")),l=Math.max(0,t.outerHeight-Ts(a,i,"top","bottom")),c=r!==i.w,h=l!==i.h;return i.w=r,i.h=l,e.horizontal?{same:c,other:h}:{same:h,other:c}}function Hr(i){const t=i.maxPadding;function e(s){const n=Math.max(t[s]-i[s],0);return i[s]+=n,n}i.y+=e("top"),i.x+=e("left"),e("right"),e("bottom")}function jr(i,t){const e=t.maxPadding;function s(n){const o={left:0,top:0,right:0,bottom:0};return n.forEach(a=>{o[a]=Math.max(t[a],e[a])}),o}return s(i?["left","right"]:["top","bottom"])}function se(i,t,e,s){const n=[];let o,a,r,l,c,h;for(o=0,a=i.length,c=0;o{typeof p.beforeLayout=="function"&&p.beforeLayout()});const h=l.reduce((p,m)=>m.box.options&&m.box.options.display===!1?p:p+1,0)||1,d=Object.freeze({outerWidth:t,outerHeight:e,padding:n,availableWidth:o,availableHeight:a,vBoxMaxWidth:o/2/h,hBoxMaxHeight:a/2}),u=Object.assign({},n);Jn(u,G(s));const f=Object.assign({maxPadding:u,w:o,h:a,x:n.left,y:n.top},n),g=Vr(l.concat(c),d);se(r.fullSize,f,d,g),se(l,f,d,g),se(c,f,d,g)&&se(l,f,d,g),Hr(f),Ls(r.leftAndTop,f,d,g),f.x+=f.w,f.y+=f.h,Ls(r.rightAndBottom,f,d,g),i.chartArea={left:f.left,top:f.top,right:f.left+f.w,bottom:f.top+f.h,height:f.h,width:f.w},R(r.chartArea,p=>{const m=p.box;Object.assign(m,i.chartArea),m.update(f.w,f.h,{left:0,top:0,right:0,bottom:0})})}};class Qn{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,s){}removeEventListener(t,e,s){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,s,n){return e=Math.max(0,e||t.width),s=s||t.height,{width:e,height:Math.max(0,n?Math.floor(e/n):s)}}isAttached(t){return!0}updateConfig(t){}}class $r extends Qn{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const je="$chartjs",Yr={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},Rs=i=>i===null||i==="";function Xr(i,t){const e=i.style,s=i.getAttribute("height"),n=i.getAttribute("width");if(i[je]={initial:{height:s,width:n,style:{display:e.display,height:e.height,width:e.width}}},e.display=e.display||"block",e.boxSizing=e.boxSizing||"border-box",Rs(n)){const o=ps(i,"width");o!==void 0&&(i.width=o)}if(Rs(s))if(i.style.height==="")i.height=i.width/(t||2);else{const o=ps(i,"height");o!==void 0&&(i.height=o)}return i}const to=Ka?{passive:!0}:!1;function Ur(i,t,e){i.addEventListener(t,e,to)}function Kr(i,t,e){i.canvas.removeEventListener(t,e,to)}function qr(i,t){const e=Yr[i.type]||i.type,{x:s,y:n}=Lt(i,t);return{type:e,chart:t,native:i,x:s!==void 0?s:null,y:n!==void 0?n:null}}function Je(i,t){for(const e of i)if(e===t||e.contains(t))return!0}function Gr(i,t,e){const s=i.canvas,n=new MutationObserver(o=>{let a=!1;for(const r of o)a=a||Je(r.addedNodes,s),a=a&&!Je(r.removedNodes,s);a&&e()});return n.observe(document,{childList:!0,subtree:!0}),n}function Zr(i,t,e){const s=i.canvas,n=new MutationObserver(o=>{let a=!1;for(const r of o)a=a||Je(r.removedNodes,s),a=a&&!Je(r.addedNodes,s);a&&e()});return n.observe(document,{childList:!0,subtree:!0}),n}const be=new Map;let Es=0;function eo(){const i=window.devicePixelRatio;i!==Es&&(Es=i,be.forEach((t,e)=>{e.currentDevicePixelRatio!==i&&t()}))}function Jr(i,t){be.size||window.addEventListener("resize",eo),be.set(i,t)}function Qr(i){be.delete(i),be.size||window.removeEventListener("resize",eo)}function tl(i,t,e){const s=i.canvas,n=s&&Ui(s);if(!n)return;const o=Tn((r,l)=>{const c=n.clientWidth;e(r,l),c{const l=r[0],c=l.contentRect.width,h=l.contentRect.height;c===0&&h===0||o(c,h)});return a.observe(n),Jr(i,o),a}function gi(i,t,e){e&&e.disconnect(),t==="resize"&&Qr(i)}function el(i,t,e){const s=i.canvas,n=Tn(o=>{i.ctx!==null&&e(qr(o,i))},i);return Ur(s,t,n),n}class il extends Qn{acquireContext(t,e){const s=t&&t.getContext&&t.getContext("2d");return s&&s.canvas===t?(Xr(t,e),s):null}releaseContext(t){const e=t.canvas;if(!e[je])return!1;const s=e[je].initial;["height","width"].forEach(o=>{const a=s[o];L(a)?e.removeAttribute(o):e.setAttribute(o,a)});const n=s.style||{};return Object.keys(n).forEach(o=>{e.style[o]=n[o]}),e.width=e.width,delete e[je],!0}addEventListener(t,e,s){this.removeEventListener(t,e);const n=t.$proxies||(t.$proxies={}),a={attach:Gr,detach:Zr,resize:tl}[e]||el;n[e]=a(t,e,s)}removeEventListener(t,e){const s=t.$proxies||(t.$proxies={}),n=s[e];if(!n)return;({attach:gi,detach:gi,resize:gi}[e]||Kr)(t,e,n),s[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,s,n){return Ua(t,e,s,n)}isAttached(t){const e=Ui(t);return!!(e&&e.isConnected)}}function sl(i){return!Xi()||typeof OffscreenCanvas<"u"&&i instanceof OffscreenCanvas?$r:il}class at{constructor(){M(this,"x");M(this,"y");M(this,"active",!1);M(this,"options");M(this,"$animations")}tooltipPosition(t){const{x:e,y:s}=this.getProps(["x","y"],t);return{x:e,y:s}}hasValue(){return Yt(this.x)&&Yt(this.y)}getProps(t,e){const s=this.$animations;if(!e||!s)return this;const n={};return t.forEach(o=>{n[o]=s[o]&&s[o].active()?s[o]._to:this[o]}),n}}M(at,"defaults",{}),M(at,"defaultRoutes");function nl(i,t){const e=i.options.ticks,s=ol(i),n=Math.min(e.maxTicksLimit||s,s),o=e.major.enabled?rl(t):[],a=o.length,r=o[0],l=o[a-1],c=[];if(a>n)return ll(t,c,o,a/n),c;const h=al(o,t,n);if(a>0){let d,u;const f=a>1?Math.round((l-r)/(a-1)):null;for(Te(t,c,h,L(f)?0:r-f,r),d=0,u=a-1;dn)return l}return Math.max(n,1)}function rl(i){const t=[];let e,s;for(e=0,s=i.length;ei==="left"?"right":i==="right"?"left":i,Fs=(i,t,e)=>t==="top"||t==="left"?i[t]+e:i[t]-e,Is=(i,t)=>Math.min(t||i,i);function zs(i,t){const e=[],s=i.length/t,n=i.length;let o=0;for(;oa+r)))return l}function ul(i,t){R(i,e=>{const s=e.gc,n=s.length/2;let o;if(n>t){for(o=0;os?s:e,s=n&&e>s?e:s,{min:tt(e,tt(s,e)),max:tt(s,tt(e,s))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}getLabelItems(t=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(t))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){F(this.options.beforeUpdate,[this])}update(t,e,s){const{beginAtZero:n,grace:o,ticks:a}=this.options,r=a.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=s=Object.assign({left:0,right:0,top:0,bottom:0},s),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+s.left+s.right:this.height+s.top+s.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=Sa(this,o,n),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const l=r=o||s<=1||!this.isHorizontal()){this.labelRotation=n;return}const h=this._getLabelSizes(),d=h.widest.width,u=h.highest.height,f=Y(this.chart.width-d,0,this.maxWidth);r=t.offset?this.maxWidth/s:f/(s-1),d+6>r&&(r=f/(s-(t.offset?.5:1)),l=this.maxHeight-Qt(t.grid)-e.padding-Bs(t.title,this.chart.options.font),c=Math.sqrt(d*d+u*u),a=Bi(Math.min(Math.asin(Y((h.highest.height+6)/r,-1,1)),Math.asin(Y(l/c,-1,1))-Math.asin(Y(u/c,-1,1)))),a=Math.max(n,Math.min(o,a))),this.labelRotation=a}afterCalculateLabelRotation(){F(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){F(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:s,title:n,grid:o}}=this,a=this._isVisible(),r=this.isHorizontal();if(a){const l=Bs(n,e.options.font);if(r?(t.width=this.maxWidth,t.height=Qt(o)+l):(t.height=this.maxHeight,t.width=Qt(o)+l),s.display&&this.ticks.length){const{first:c,last:h,widest:d,highest:u}=this._getLabelSizes(),f=s.padding*2,g=nt(this.labelRotation),p=Math.cos(g),m=Math.sin(g);if(r){const b=s.mirror?0:m*d.width+p*u.height;t.height=Math.min(this.maxHeight,t.height+b+f)}else{const b=s.mirror?0:p*d.width+m*u.height;t.width=Math.min(this.maxWidth,t.width+b+f)}this._calculatePadding(c,h,m,p)}}this._handleMargins(),r?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,s,n){const{ticks:{align:o,padding:a},position:r}=this.options,l=this.labelRotation!==0,c=r!=="top"&&this.axis==="x";if(this.isHorizontal()){const h=this.getPixelForTick(0)-this.left,d=this.right-this.getPixelForTick(this.ticks.length-1);let u=0,f=0;l?c?(u=n*t.width,f=s*e.height):(u=s*t.height,f=n*e.width):o==="start"?f=e.width:o==="end"?u=t.width:o!=="inner"&&(u=t.width/2,f=e.width/2),this.paddingLeft=Math.max((u-h+a)*this.width/(this.width-h),0),this.paddingRight=Math.max((f-d+a)*this.width/(this.width-d),0)}else{let h=e.height/2,d=t.height/2;o==="start"?(h=0,d=t.height):o==="end"&&(h=e.height,d=0),this.paddingTop=h+a,this.paddingBottom=d+a}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){F(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return e==="top"||e==="bottom"||t==="x"}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){this.beforeTickToLabelConversion(),this.generateTickLabels(t);let e,s;for(e=0,s=t.length;e({width:a[P]||0,height:r[P]||0});return{first:S(0),last:S(e-1),widest:S(k),highest:S(w),widths:a,heights:r}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return ta(this._alignToPixels?Ct(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&tr*n?r/s:l/n:l*n0}_computeGridLineItems(t){const e=this.axis,s=this.chart,n=this.options,{grid:o,position:a,border:r}=n,l=o.offset,c=this.isHorizontal(),d=this.ticks.length+(l?1:0),u=Qt(o),f=[],g=r.setContext(this.getContext()),p=g.display?g.width:0,m=p/2,b=function(V){return Ct(s,V,p)};let x,v,y,_,k,w,S,P,O,C,T,X;if(a==="top")x=b(this.bottom),w=this.bottom-u,P=x-m,C=b(t.top)+m,X=t.bottom;else if(a==="bottom")x=b(this.top),C=t.top,X=b(t.bottom)-m,w=x+m,P=this.top+u;else if(a==="left")x=b(this.right),k=this.right-u,S=x-m,O=b(t.left)+m,T=t.right;else if(a==="right")x=b(this.left),O=t.left,T=b(t.right)-m,k=x+m,S=this.left+u;else if(e==="x"){if(a==="center")x=b((t.top+t.bottom)/2+.5);else if(A(a)){const V=Object.keys(a)[0],H=a[V];x=b(this.chart.scales[V].getPixelForValue(H))}C=t.top,X=t.bottom,w=x+m,P=w+u}else if(e==="y"){if(a==="center")x=b((t.left+t.right)/2);else if(A(a)){const V=Object.keys(a)[0],H=a[V];x=b(this.chart.scales[V].getPixelForValue(H))}k=x-m,S=k-u,O=t.left,T=t.right}const Q=D(n.ticks.maxTicksLimit,d),E=Math.max(1,Math.ceil(d/Q));for(v=0;v0&&(Dt-=Pt/2);break}ke={left:Dt,top:qt,width:Pt+Nt.width,height:Kt+Nt.height,color:E.backdropColor}}m.push({label:y,font:P,textOffset:T,options:{rotation:p,color:H,strokeColor:st,strokeWidth:U,textAlign:Wt,textBaseline:X,translation:[_,k],backdrop:ke}})}return m}_getXAxisLabelAlignment(){const{position:t,ticks:e}=this.options;if(-nt(this.labelRotation))return t==="top"?"left":"right";let n="center";return e.align==="start"?n="left":e.align==="end"?n="right":e.align==="inner"&&(n="inner"),n}_getYAxisLabelAlignment(t){const{position:e,ticks:{crossAlign:s,mirror:n,padding:o}}=this.options,a=this._getLabelSizes(),r=t+o,l=a.widest.width;let c,h;return e==="left"?n?(h=this.right+o,s==="near"?c="left":s==="center"?(c="center",h+=l/2):(c="right",h+=l)):(h=this.right-r,s==="near"?c="right":s==="center"?(c="center",h-=l/2):(c="left",h=this.left)):e==="right"?n?(h=this.left+o,s==="near"?c="right":s==="center"?(c="center",h-=l/2):(c="left",h-=l)):(h=this.left+r,s==="near"?c="left":s==="center"?(c="center",h+=l/2):(c="right",h=this.right)):c="right",{textAlign:c,x:h}}_computeLabelArea(){if(this.options.ticks.mirror)return;const t=this.chart,e=this.options.position;if(e==="left"||e==="right")return{top:0,left:this.left,bottom:t.height,right:this.right};if(e==="top"||e==="bottom")return{top:this.top,left:0,bottom:this.bottom,right:t.width}}drawBackground(){const{ctx:t,options:{backgroundColor:e},left:s,top:n,width:o,height:a}=this;e&&(t.save(),t.fillStyle=e,t.fillRect(s,n,o,a),t.restore())}getLineWidthForValue(t){const e=this.options.grid;if(!this._isVisible()||!e.display)return 0;const n=this.ticks.findIndex(o=>o.value===t);return n>=0?e.setContext(this.getContext(n)).lineWidth:0}drawGrid(t){const e=this.options.grid,s=this.ctx,n=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let o,a;const r=(l,c,h)=>{!h.width||!h.color||(s.save(),s.lineWidth=h.width,s.strokeStyle=h.color,s.setLineDash(h.borderDash||[]),s.lineDashOffset=h.borderDashOffset,s.beginPath(),s.moveTo(l.x,l.y),s.lineTo(c.x,c.y),s.stroke(),s.restore())};if(e.display)for(o=0,a=n.length;o{this.draw(o)}}]:[{z:s,draw:o=>{this.drawBackground(),this.drawGrid(o),this.drawTitle()}},{z:n,draw:()=>{this.drawBorder()}},{z:e,draw:o=>{this.drawLabels(o)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),s=this.axis+"AxisID",n=[];let o,a;for(o=0,a=e.length;o{const s=e.split("."),n=s.pop(),o=[i].concat(s).join("."),a=t[e].split("."),r=a.pop(),l=a.join(".");N.route(o,n,l,r)})}function _l(i){return"id"in i&&"defaults"in i}class yl{constructor(){this.controllers=new Le(ot,"datasets",!0),this.elements=new Le(at,"elements"),this.plugins=new Le(Object,"plugins"),this.scales=new Le(Vt,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,s){[...e].forEach(n=>{const o=s||this._getRegistryForType(n);s||o.isForType(n)||o===this.plugins&&n.id?this._exec(t,o,n):R(n,a=>{const r=s||this._getRegistryForType(a);this._exec(t,r,a)})})}_exec(t,e,s){const n=zi(t);F(s["before"+n],[],s),e[t](s),F(s["after"+n],[],s)}_getRegistryForType(t){for(let e=0;eo.filter(r=>!a.some(l=>r.plugin.id===l.plugin.id));this._notify(n(e,s),t,"stop"),this._notify(n(s,e),t,"start")}}function Ml(i){const t={},e=[],s=Object.keys(lt.plugins.items);for(let o=0;o1&&Vs(i[0].toLowerCase());if(s)return s}throw new Error(`Cannot determine type of '${i}' axis. Please provide 'axis' or 'position' option.`)}function Ws(i,t,e){if(e[t+"AxisID"]===i)return{axis:t}}function Cl(i,t){if(t.data&&t.data.datasets){const e=t.data.datasets.filter(s=>s.xAxisID===i||s.yAxisID===i);if(e.length)return Ws(i,"x",e[0])||Ws(i,"y",e[0])}return{}}function Al(i,t){const e=zt[i.type]||{scales:{}},s=t.scales||{},n=ki(i.type,t),o=Object.create(null);return Object.keys(s).forEach(a=>{const r=s[a];if(!A(r))return console.error(`Invalid scale configuration for scale: ${a}`);if(r._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${a}`);const l=wi(a,r,Cl(a,i),N.scales[r.type]),c=Dl(l,n),h=e.scales||{};o[a]=re(Object.create(null),[{axis:l},r,h[l],h[c]])}),i.data.datasets.forEach(a=>{const r=a.type||i.type,l=a.indexAxis||ki(r,t),h=(zt[r]||{}).scales||{};Object.keys(h).forEach(d=>{const u=Pl(d,l),f=a[u+"AxisID"]||u;o[f]=o[f]||Object.create(null),re(o[f],[{axis:u},s[f],h[d]])})}),Object.keys(o).forEach(a=>{const r=o[a];re(r,[N.scales[r.type],N.scale])}),o}function io(i){const t=i.options||(i.options={});t.plugins=D(t.plugins,{}),t.scales=Al(i,t)}function so(i){return i=i||{},i.datasets=i.datasets||[],i.labels=i.labels||[],i}function Tl(i){return i=i||{},i.data=so(i.data),io(i),i}const Ns=new Map,no=new Set;function Re(i,t){let e=Ns.get(i);return e||(e=t(),Ns.set(i,e),no.add(e)),e}const te=(i,t,e)=>{const s=kt(t,e);s!==void 0&&i.add(s)};class Ll{constructor(t){this._config=Tl(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=so(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),io(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return Re(t,()=>[[`datasets.${t}`,""]])}datasetAnimationScopeKeys(t,e){return Re(`${t}.transition.${e}`,()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]])}datasetElementScopeKeys(t,e){return Re(`${t}-${e}`,()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]])}pluginScopeKeys(t){const e=t.id,s=this.type;return Re(`${s}-plugin-${e}`,()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]])}_cachedScopes(t,e){const s=this._scopeCache;let n=s.get(t);return(!n||e)&&(n=new Map,s.set(t,n)),n}getOptionScopes(t,e,s){const{options:n,type:o}=this,a=this._cachedScopes(t,s),r=a.get(e);if(r)return r;const l=new Set;e.forEach(h=>{t&&(l.add(t),h.forEach(d=>te(l,t,d))),h.forEach(d=>te(l,n,d)),h.forEach(d=>te(l,zt[o]||{},d)),h.forEach(d=>te(l,N,d)),h.forEach(d=>te(l,yi,d))});const c=Array.from(l);return c.length===0&&c.push(Object.create(null)),no.has(e)&&a.set(e,c),c}chartOptionScopes(){const{options:t,type:e}=this;return[t,zt[e]||{},N.datasets[e]||{},{type:e},N,yi]}resolveNamedOptions(t,e,s,n=[""]){const o={$shared:!0},{resolver:a,subPrefixes:r}=Hs(this._resolverCache,t,n);let l=a;if(El(a,e)){o.$shared=!1,s=wt(s)?s():s;const c=this.createResolver(t,s,r);l=Xt(a,s,c)}for(const c of e)o[c]=l[c];return o}createResolver(t,e,s=[""],n){const{resolver:o}=Hs(this._resolverCache,t,s);return A(e)?Xt(o,e,void 0,n):o}}function Hs(i,t,e){let s=i.get(t);s||(s=new Map,i.set(t,s));const n=e.join();let o=s.get(n);return o||(o={resolver:ji(t,e),subPrefixes:e.filter(r=>!r.toLowerCase().includes("hover"))},s.set(n,o)),o}const Rl=i=>A(i)&&Object.getOwnPropertyNames(i).some(t=>wt(i[t]));function El(i,t){const{isScriptable:e,isIndexable:s}=zn(i);for(const n of t){const o=e(n),a=s(n),r=(a||o)&&i[n];if(o&&(wt(r)||Rl(r))||a&&I(r))return!0}return!1}var Fl="4.4.1";const Il=["top","bottom","left","right","chartArea"];function js(i,t){return i==="top"||i==="bottom"||Il.indexOf(i)===-1&&t==="x"}function $s(i,t){return function(e,s){return e[i]===s[i]?e[t]-s[t]:e[i]-s[i]}}function Ys(i){const t=i.chart,e=t.options.animation;t.notifyPlugins("afterRender"),F(e&&e.onComplete,[i],t)}function zl(i){const t=i.chart,e=t.options.animation;F(e&&e.onProgress,[i],t)}function oo(i){return Xi()&&typeof i=="string"?i=document.getElementById(i):i&&i.length&&(i=i[0]),i&&i.canvas&&(i=i.canvas),i}const $e={},Xs=i=>{const t=oo(i);return Object.values($e).filter(e=>e.canvas===t).pop()};function Bl(i,t,e){const s=Object.keys(i);for(const n of s){const o=+n;if(o>=t){const a=i[n];delete i[n],(e>0||o>t)&&(i[o+e]=a)}}}function Vl(i,t,e,s){return!e||i.type==="mouseout"?null:s?t:i}function Ee(i,t,e){return i.options.clip?i[e]:t[e]}function Wl(i,t){const{xScale:e,yScale:s}=i;return e&&s?{left:Ee(e,t,"left"),right:Ee(e,t,"right"),top:Ee(s,t,"top"),bottom:Ee(s,t,"bottom")}:t}class bt{static register(...t){lt.add(...t),Us()}static unregister(...t){lt.remove(...t),Us()}constructor(t,e){const s=this.config=new Ll(e),n=oo(t),o=Xs(n);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const a=s.createResolver(s.chartOptionScopes(),this.getContext());this.platform=new(s.platform||sl(n)),this.platform.updateConfig(s);const r=this.platform.acquireContext(n,a.aspectRatio),l=r&&r.canvas,c=l&&l.height,h=l&&l.width;if(this.id=Ho(),this.ctx=r,this.canvas=l,this.width=h,this.height=c,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new vl,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=na(d=>this.update(d),a.resizeDelay||0),this._dataChanges=[],$e[this.id]=this,!r||!l){console.error("Failed to create chart: can't acquire context from the given item");return}dt.listen(this,"complete",Ys),dt.listen(this,"progress",zl),this._initialize(),this.attached&&this.update()}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:s,height:n,_aspectRatio:o}=this;return L(t)?e&&o?o:n?s/n:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}get registry(){return lt}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():gs(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return ds(this.canvas,this.ctx),this}stop(){return dt.stop(this),this}resize(t,e){dt.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const s=this.options,n=this.canvas,o=s.maintainAspectRatio&&this.aspectRatio,a=this.platform.getMaximumSize(n,t,e,o),r=s.devicePixelRatio||this.platform.getDevicePixelRatio(),l=this.width?"resize":"attach";this.width=a.width,this.height=a.height,this._aspectRatio=this.aspectRatio,gs(this,r,!0)&&(this.notifyPlugins("resize",{size:a}),F(s.onResize,[this,a],this),this.attached&&this._doResize(l)&&this.render())}ensureScalesHaveIDs(){const e=this.options.scales||{};R(e,(s,n)=>{s.id=n})}buildOrUpdateScales(){const t=this.options,e=t.scales,s=this.scales,n=Object.keys(s).reduce((a,r)=>(a[r]=!1,a),{});let o=[];e&&(o=o.concat(Object.keys(e).map(a=>{const r=e[a],l=wi(a,r),c=l==="r",h=l==="x";return{options:r,dposition:c?"chartArea":h?"bottom":"left",dtype:c?"radialLinear":h?"category":"linear"}}))),R(o,a=>{const r=a.options,l=r.id,c=wi(l,r),h=D(r.type,a.dtype);(r.position===void 0||js(r.position,c)!==js(a.dposition))&&(r.position=a.dposition),n[l]=!0;let d=null;if(l in s&&s[l].type===h)d=s[l];else{const u=lt.getScale(h);d=new u({id:l,type:h,ctx:this.ctx,chart:this}),s[d.id]=d}d.init(r,t)}),R(n,(a,r)=>{a||delete s[r]}),R(s,a=>{q.configure(this,a,a.options),q.addBox(this,a)})}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,s=t.length;if(t.sort((n,o)=>n.index-o.index),s>e){for(let n=e;ne.length&&delete this._stacks,t.forEach((s,n)=>{e.filter(o=>o===s._dataset).length===0&&this._destroyDatasetMeta(n)})}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let s,n;for(this._removeUnreferencedMetasets(),s=0,n=e.length;s{this.getDatasetMeta(e).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const s=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),n=this._animationsDisabled=!s.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0})===!1)return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let a=0;for(let c=0,h=this.data.datasets.length;c{c.reset()}),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort($s("z","_idx"));const{_active:r,_lastEvent:l}=this;l?this._eventHandler(l,!0):r.length&&this._updateHoverStyles(r,r,!0),this.render()}_updateScales(){R(this.scales,t=>{q.removeBox(this,t)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),s=new Set(t.events);(!is(e,s)||!!this._responsiveListeners!==t.responsive)&&(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:s,start:n,count:o}of e){const a=s==="_removeElements"?-o:o;Bl(t,n,a)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,s=o=>new Set(t.filter(a=>a[0]===o).map((a,r)=>r+","+a.splice(1).join(","))),n=s(0);for(let o=1;oo.split(",")).map(o=>({method:o[1],start:+o[2],count:+o[3]}))}_updateLayout(t){if(this.notifyPlugins("beforeLayout",{cancelable:!0})===!1)return;q.update(this,this.width,this.height,t);const e=this.chartArea,s=e.width<=0||e.height<=0;this._layers=[],R(this.boxes,n=>{s&&n.position==="chartArea"||(n.configure&&n.configure(),this._layers.push(...n._layers()))},this),this._layers.forEach((n,o)=>{n._idx=o}),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})!==!1){for(let e=0,s=this.data.datasets.length;e=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,s=t._clip,n=!s.disabled,o=Wl(t,this.chartArea),a={meta:t,index:t.index,cancelable:!0};this.notifyPlugins("beforeDatasetDraw",a)!==!1&&(n&&ii(e,{left:s.left===!1?0:o.left-s.left,right:s.right===!1?this.width:o.right+s.right,top:s.top===!1?0:o.top-s.top,bottom:s.bottom===!1?this.height:o.bottom+s.bottom}),t.controller.draw(),n&&si(e),a.cancelable=!1,this.notifyPlugins("afterDatasetDraw",a))}isPointInArea(t){return mt(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,s,n){const o=Ir.modes[e];return typeof o=="function"?o(this,t,s,n):[]}getDatasetMeta(t){const e=this.data.datasets[t],s=this._metasets;let n=s.filter(o=>o&&o._dataset===e).pop();return n||(n={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},s.push(n)),n}getContext(){return this.$context||(this.$context=St(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const s=this.getDatasetMeta(t);return typeof s.hidden=="boolean"?!s.hidden:!e.hidden}setDatasetVisibility(t,e){const s=this.getDatasetMeta(t);s.hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,s){const n=s?"show":"hide",o=this.getDatasetMeta(t),a=o.controller._resolveAnimations(void 0,n);ge(e)?(o.data[e].hidden=!s,this.update()):(this.setDatasetVisibility(t,s),a.update(o,{visible:s}),this.update(r=>r.datasetIndex===t?n:void 0))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),dt.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,o,a),t[o]=a},n=(o,a,r)=>{o.offsetX=a,o.offsetY=r,this._eventHandler(o)};R(this.options.events,o=>s(o,n))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,s=(l,c)=>{e.addEventListener(this,l,c),t[l]=c},n=(l,c)=>{t[l]&&(e.removeEventListener(this,l,c),delete t[l])},o=(l,c)=>{this.canvas&&this.resize(l,c)};let a;const r=()=>{n("attach",r),this.attached=!0,this.resize(),s("resize",o),s("detach",a)};a=()=>{this.attached=!1,n("resize",o),this._stop(),this._resize(0,0),s("attach",r)},e.isAttached(this.canvas)?r():a()}unbindEvents(){R(this._listeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._listeners={},R(this._responsiveListeners,(t,e)=>{this.platform.removeEventListener(this,e,t)}),this._responsiveListeners=void 0}updateHoverStyle(t,e,s){const n=s?"set":"remove";let o,a,r,l;for(e==="dataset"&&(o=this.getDatasetMeta(t[0].datasetIndex),o.controller["_"+n+"DatasetHoverStyle"]()),r=0,l=t.length;r{const r=this.getDatasetMeta(o);if(!r)throw new Error("No dataset found at index "+o);return{datasetIndex:o,element:r.data[a],index:a}});!Ue(s,e)&&(this._active=s,this._lastEvent=null,this._updateHoverStyles(s,e))}notifyPlugins(t,e,s){return this._plugins.notify(this,t,e,s)}isPluginEnabled(t){return this._plugins._cache.filter(e=>e.plugin.id===t).length===1}_updateHoverStyles(t,e,s){const n=this.options.hover,o=(l,c)=>l.filter(h=>!c.some(d=>h.datasetIndex===d.datasetIndex&&h.index===d.index)),a=o(e,t),r=s?t:o(t,e);a.length&&this.updateHoverStyle(a,n.mode,!1),r.length&&n.mode&&this.updateHoverStyle(r,n.mode,!0)}_eventHandler(t,e){const s={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},n=a=>(a.options.events||this.options.events).includes(t.native.type);if(this.notifyPlugins("beforeEvent",s,n)===!1)return;const o=this._handleEvent(t,e,s.inChartArea);return s.cancelable=!1,this.notifyPlugins("afterEvent",s,n),(o||s.changed)&&this.render(),this}_handleEvent(t,e,s){const{_active:n=[],options:o}=this,a=e,r=this._getActiveElements(t,n,s,a),l=Ko(t),c=Vl(t,this._lastEvent,s,l);s&&(this._lastEvent=null,F(o.onHover,[t,r,this],this),l&&F(o.onClick,[t,r,this],this));const h=!Ue(r,n);return(h||e)&&(this._active=r,this._updateHoverStyles(r,n,e)),this._lastEvent=c,h}_getActiveElements(t,e,s,n){if(t.type==="mouseout")return[];if(!s)return e;const o=this.options.hover;return this.getElementsAtEventForMode(t,o.mode,o,n)}}M(bt,"defaults",N),M(bt,"instances",$e),M(bt,"overrides",zt),M(bt,"registry",lt),M(bt,"version",Fl),M(bt,"getChart",Xs);function Us(){return R(bt.instances,i=>i._plugins.invalidate())}function Nl(i,t,e){const{startAngle:s,pixelMargin:n,x:o,y:a,outerRadius:r,innerRadius:l}=t;let c=n/r;i.beginPath(),i.arc(o,a,r,s-c,e+c),l>n?(c=n/l,i.arc(o,a,l,e+c,s-c,!0)):i.arc(o,a,n,e+j,s-j),i.closePath(),i.clip()}function Hl(i){return Hi(i,["outerStart","outerEnd","innerStart","innerEnd"])}function jl(i,t,e,s){const n=Hl(i.options.borderRadius),o=(e-t)/2,a=Math.min(o,s*t/2),r=l=>{const c=(e-Math.min(o,l))*s/2;return Y(l,0,Math.min(o,c))};return{outerStart:r(n.outerStart),outerEnd:r(n.outerEnd),innerStart:Y(n.innerStart,0,a),innerEnd:Y(n.innerEnd,0,a)}}function jt(i,t,e,s){return{x:e+i*Math.cos(t),y:s+i*Math.sin(t)}}function Qe(i,t,e,s,n,o){const{x:a,y:r,startAngle:l,pixelMargin:c,innerRadius:h}=t,d=Math.max(t.outerRadius+s+e-c,0),u=h>0?h+s+e+c:0;let f=0;const g=n-l;if(s){const E=h>0?h-s:0,V=d>0?d-s:0,H=(E+V)/2,st=H!==0?g*H/(H+s):g;f=(g-st)/2}const p=Math.max(.001,g*d-e/B)/d,m=(g-p)/2,b=l+m+f,x=n-m-f,{outerStart:v,outerEnd:y,innerStart:_,innerEnd:k}=jl(t,u,d,x-b),w=d-v,S=d-y,P=b+v/w,O=x-y/S,C=u+_,T=u+k,X=b+_/C,Q=x-k/T;if(i.beginPath(),o){const E=(P+O)/2;if(i.arc(a,r,d,P,E),i.arc(a,r,d,E,O),y>0){const U=jt(S,O,a,r);i.arc(U.x,U.y,y,O,x+j)}const V=jt(T,x,a,r);if(i.lineTo(V.x,V.y),k>0){const U=jt(T,Q,a,r);i.arc(U.x,U.y,k,x+j,Q+Math.PI)}const H=(x-k/u+(b+_/u))/2;if(i.arc(a,r,u,x-k/u,H,!0),i.arc(a,r,u,H,b+_/u,!0),_>0){const U=jt(C,X,a,r);i.arc(U.x,U.y,_,X+Math.PI,b-j)}const st=jt(w,b,a,r);if(i.lineTo(st.x,st.y),v>0){const U=jt(w,P,a,r);i.arc(U.x,U.y,v,b-j,P)}}else{i.moveTo(a,r);const E=Math.cos(P)*d+a,V=Math.sin(P)*d+r;i.lineTo(E,V);const H=Math.cos(O)*d+a,st=Math.sin(O)*d+r;i.lineTo(H,st)}i.closePath()}function $l(i,t,e,s,n){const{fullCircles:o,startAngle:a,circumference:r}=t;let l=t.endAngle;if(o){Qe(i,t,e,s,l,n);for(let c=0;c=z||pe(a,l,c),m=gt(r,h+f,d+f);return p&&m}getCenterPoint(e){const{x:s,y:n,startAngle:o,endAngle:a,innerRadius:r,outerRadius:l}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],e),{offset:c,spacing:h}=this.options,d=(o+a)/2,u=(r+l+h+c)/2;return{x:s+Math.cos(d)*u,y:n+Math.sin(d)*u}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){const{options:s,circumference:n}=this,o=(s.offset||0)/4,a=(s.spacing||0)/2,r=s.circular;if(this.pixelMargin=s.borderAlign==="inner"?.33:0,this.fullCircles=n>z?Math.floor(n/z):0,n===0||this.innerRadius<0||this.outerRadius<0)return;e.save();const l=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(l)*o,Math.sin(l)*o);const c=1-Math.sin(Math.min(B,n||0)),h=o*c;e.fillStyle=s.backgroundColor,e.strokeStyle=s.borderColor,$l(e,this,h,a,r),Yl(e,this,h,a,r),e.restore()}}M(ne,"id","arc"),M(ne,"defaults",{borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0}),M(ne,"defaultRoutes",{backgroundColor:"backgroundColor"}),M(ne,"descriptors",{_scriptable:!0,_indexable:e=>e!=="borderDash"});function ao(i,t,e=t){i.lineCap=D(e.borderCapStyle,t.borderCapStyle),i.setLineDash(D(e.borderDash,t.borderDash)),i.lineDashOffset=D(e.borderDashOffset,t.borderDashOffset),i.lineJoin=D(e.borderJoinStyle,t.borderJoinStyle),i.lineWidth=D(e.borderWidth,t.borderWidth),i.strokeStyle=D(e.borderColor,t.borderColor)}function Xl(i,t,e){i.lineTo(e.x,e.y)}function Ul(i){return i.stepped?ma:i.tension||i.cubicInterpolationMode==="monotone"?ba:Xl}function ro(i,t,e={}){const s=i.length,{start:n=0,end:o=s-1}=e,{start:a,end:r}=t,l=Math.max(n,a),c=Math.min(o,r),h=nr&&o>r;return{count:s,start:l,loop:t.loop,ilen:c(a+(c?r-y:y))%o,v=()=>{p!==m&&(i.lineTo(h,m),i.lineTo(h,p),i.lineTo(h,b))};for(l&&(f=n[x(0)],i.moveTo(f.x,f.y)),u=0;u<=r;++u){if(f=n[x(u)],f.skip)continue;const y=f.x,_=f.y,k=y|0;k===g?(_m&&(m=_),h=(d*h+y)/++d):(v(),i.lineTo(y,_),g=k,d=0,p=m=_),b=_}v()}function Si(i){const t=i.options,e=t.borderDash&&t.borderDash.length;return!i._decimated&&!i._loop&&!t.tension&&t.cubicInterpolationMode!=="monotone"&&!t.stepped&&!e?ql:Kl}function Gl(i){return i.stepped?qa:i.tension||i.cubicInterpolationMode==="monotone"?Ga:Rt}function Zl(i,t,e,s){let n=t._path;n||(n=t._path=new Path2D,t.path(n,e,s)&&n.closePath()),ao(i,t.options),i.stroke(n)}function Jl(i,t,e,s){const{segments:n,options:o}=t,a=Si(t);for(const r of n)ao(i,o,r.style),i.beginPath(),a(i,t,r,{start:e,end:e+s-1})&&i.closePath(),i.stroke()}const Ql=typeof Path2D=="function";function tc(i,t,e,s){Ql&&!t.options.segment?Zl(i,t,e,s):Jl(i,t,e,s)}class yt extends at{constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const s=this.options;if((s.tension||s.cubicInterpolationMode==="monotone")&&!s.stepped&&!this._pointsUpdated){const n=s.spanGaps?this._loop:this._fullLoop;Na(this._points,s,t,n,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=ir(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,s=t.length;return s&&e[t[s-1].end]}interpolate(t,e){const s=this.options,n=t[e],o=this.points,a=Un(this,{property:e,start:n,end:n});if(!a.length)return;const r=[],l=Gl(s);let c,h;for(c=0,h=a.length;ct!=="borderDash"&&t!=="fill"});function Ks(i,t,e,s){const n=i.options,{[e]:o}=i.getProps([e],s);return Math.abs(t-o)i.replace("rgb(","rgba(").replace(")",", 0.5)"));function co(i){return Pi[i%Pi.length]}function ho(i){return qs[i%qs.length]}function rc(i,t){return i.borderColor=co(t),i.backgroundColor=ho(t),++t}function lc(i,t){return i.backgroundColor=i.data.map(()=>co(t++)),t}function cc(i,t){return i.backgroundColor=i.data.map(()=>ho(t++)),t}function hc(i){let t=0;return(e,s)=>{const n=i.getDatasetMeta(s).controller;n instanceof Et?t=lc(e,t):n instanceof de?t=cc(e,t):n&&(t=rc(e,t))}}function Gs(i){let t;for(t in i)if(i[t].borderColor||i[t].backgroundColor)return!0;return!1}function dc(i){return i&&(i.borderColor||i.backgroundColor)}var uc={id:"colors",defaults:{enabled:!0,forceOverride:!1},beforeLayout(i,t,e){if(!e.enabled)return;const{data:{datasets:s},options:n}=i.config,{elements:o}=n;if(!e.forceOverride&&(Gs(s)||dc(n)||o&&Gs(o)))return;const a=hc(i);s.forEach(a)}};function fc(i,t,e,s,n){const o=n.samples||s;if(o>=e)return i.slice(t,t+e);const a=[],r=(e-2)/(o-2);let l=0;const c=t+e-1;let h=t,d,u,f,g,p;for(a[l++]=i[h],d=0;df&&(f=g,u=i[x],p=x);a[l++]=u,h=p}return a[l++]=i[c],a}function gc(i,t,e,s){let n=0,o=0,a,r,l,c,h,d,u,f,g,p;const m=[],b=t+e-1,x=i[t].x,y=i[b].x-x;for(a=t;ap&&(p=c,u=a),n=(o*n+r.x)/++o;else{const k=a-1;if(!L(d)&&!L(u)){const w=Math.min(d,u),S=Math.max(d,u);w!==f&&w!==k&&m.push({...i[w],x:n}),S!==f&&S!==k&&m.push({...i[S],x:n})}a>0&&k!==f&&m.push(i[k]),m.push(r),h=_,o=0,g=p=c,d=u=f=a}}return m}function uo(i){if(i._decimated){const t=i._data;delete i._decimated,delete i._data,Object.defineProperty(i,"data",{configurable:!0,enumerable:!0,writable:!0,value:t})}}function Zs(i){i.data.datasets.forEach(t=>{uo(t)})}function pc(i,t){const e=t.length;let s=0,n;const{iScale:o}=i,{min:a,max:r,minDefined:l,maxDefined:c}=o.getUserBounds();return l&&(s=Y(pt(t,o.axis,a).lo,0,e-1)),c?n=Y(pt(t,o.axis,r).hi+1,s,e)-s:n=e-s,{start:s,count:n}}var mc={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(i,t,e)=>{if(!e.enabled){Zs(i);return}const s=i.width;i.data.datasets.forEach((n,o)=>{const{_data:a,indexAxis:r}=n,l=i.getDatasetMeta(o),c=a||n.data;if(ie([r,i.options.indexAxis])==="y"||!l.controller.supportsDecimation)return;const h=i.scales[l.xAxisID];if(h.type!=="linear"&&h.type!=="time"||i.options.parsing)return;let{start:d,count:u}=pc(l,c);const f=e.threshold||4*s;if(u<=f){uo(n);return}L(a)&&(n._data=c,delete n.data,Object.defineProperty(n,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(p){this._data=p}}));let g;switch(e.algorithm){case"lttb":g=fc(c,d,u,s,e);break;case"min-max":g=gc(c,d,u,s);break;default:throw new Error(`Unsupported decimation algorithm '${e.algorithm}'`)}n._decimated=g})},destroy(i){Zs(i)}};function bc(i,t,e){const s=i.segments,n=i.points,o=t.points,a=[];for(const r of s){let{start:l,end:c}=r;c=qi(l,c,n);const h=Di(e,n[l],n[c],r.loop);if(!t.segments){a.push({source:r,target:h,start:n[l],end:n[c]});continue}const d=Un(t,h);for(const u of d){const f=Di(e,o[u.start],o[u.end],u.loop),g=Xn(r,n,f);for(const p of g)a.push({source:p,target:u,start:{[e]:Js(h,f,"start",Math.max)},end:{[e]:Js(h,f,"end",Math.min)}})}}return a}function Di(i,t,e,s){if(s)return;let n=t[i],o=e[i];return i==="angle"&&(n=et(n),o=et(o)),{property:i,start:n,end:o}}function xc(i,t){const{x:e=null,y:s=null}=i||{},n=t.points,o=[];return t.segments.forEach(({start:a,end:r})=>{r=qi(a,r,n);const l=n[a],c=n[r];s!==null?(o.push({x:l.x,y:s}),o.push({x:c.x,y:s})):e!==null&&(o.push({x:e,y:l.y}),o.push({x:e,y:c.y}))}),o}function qi(i,t,e){for(;t>i;t--){const s=e[t];if(!isNaN(s.x)&&!isNaN(s.y))break}return t}function Js(i,t,e,s){return i&&t?s(i[e],t[e]):i?i[e]:t?t[e]:0}function fo(i,t){let e=[],s=!1;return I(i)?(s=!0,e=i):e=xc(i,t),e.length?new yt({points:e,options:{tension:0},_loop:s,_fullLoop:s}):null}function Qs(i){return i&&i.fill!==!1}function _c(i,t,e){let n=i[t].fill;const o=[t];let a;if(!e)return n;for(;n!==!1&&o.indexOf(n)===-1;){if(!W(n))return n;if(a=i[n],!a)return!1;if(a.visible)return n;o.push(n),n=a.fill}return!1}function yc(i,t,e){const s=wc(i);if(A(s))return isNaN(s.value)?!1:s;let n=parseFloat(s);return W(n)&&Math.floor(n)===n?vc(s[0],t,n,e):["origin","start","end","stack","shape"].indexOf(s)>=0&&s}function vc(i,t,e,s){return(i==="-"||i==="+")&&(e=t+e),e===t||e<0||e>=s?!1:e}function Mc(i,t){let e=null;return i==="start"?e=t.bottom:i==="end"?e=t.top:A(i)?e=t.getPixelForValue(i.value):t.getBasePixel&&(e=t.getBasePixel()),e}function kc(i,t,e){let s;return i==="start"?s=e:i==="end"?s=t.options.reverse?t.min:t.max:A(i)?s=i.value:s=t.getBaseValue(),s}function wc(i){const t=i.options,e=t.fill;let s=D(e&&e.target,e);return s===void 0&&(s=!!t.backgroundColor),s===!1||s===null?!1:s===!0?"origin":s}function Sc(i){const{scale:t,index:e,line:s}=i,n=[],o=s.segments,a=s.points,r=Pc(t,e);r.push(fo({x:null,y:t.bottom},s));for(let l=0;l=0;--a){const r=n[a].$filler;r&&(r.line.updateControlPoints(o,r.axis),s&&r.fill&&bi(i.ctx,r,o))}},beforeDatasetsDraw(i,t,e){if(e.drawTime!=="beforeDatasetsDraw")return;const s=i.getSortedVisibleDatasetMetas();for(let n=s.length-1;n>=0;--n){const o=s[n].$filler;Qs(o)&&bi(i.ctx,o,i.chartArea)}},beforeDatasetDraw(i,t,e){const s=t.meta.$filler;!Qs(s)||e.drawTime!=="beforeDatasetDraw"||bi(i.ctx,s,i.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const nn=(i,t)=>{let{boxHeight:e=t,boxWidth:s=t}=i;return i.usePointStyle&&(e=Math.min(e,t),s=i.pointStyleWidth||Math.min(s,t)),{boxWidth:s,boxHeight:e,itemHeight:Math.max(t,e)}},zc=(i,t)=>i!==null&&t!==null&&i.datasetIndex===t.datasetIndex&&i.index===t.index;class on extends at{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,s){this.maxWidth=t,this.maxHeight=e,this._margins=s,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=F(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter(s=>t.filter(s,this.chart.data))),t.sort&&(e=e.sort((s,n)=>t.sort(s,n,this.chart.data))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display){this.width=this.height=0;return}const s=t.labels,n=$(s.font),o=n.size,a=this._computeTitleHeight(),{boxWidth:r,itemHeight:l}=nn(s,o);let c,h;e.font=n.string,this.isHorizontal()?(c=this.maxWidth,h=this._fitRows(a,o,r,l)+10):(h=this.maxHeight,c=this._fitCols(a,n,r,l)+10),this.width=Math.min(c,t.maxWidth||this.maxWidth),this.height=Math.min(h,t.maxHeight||this.maxHeight)}_fitRows(t,e,s,n){const{ctx:o,maxWidth:a,options:{labels:{padding:r}}}=this,l=this.legendHitBoxes=[],c=this.lineWidths=[0],h=n+r;let d=t;o.textAlign="left",o.textBaseline="middle";let u=-1,f=-h;return this.legendItems.forEach((g,p)=>{const m=s+e/2+o.measureText(g.text).width;(p===0||c[c.length-1]+m+2*r>a)&&(d+=h,c[c.length-(p>0?0:1)]=0,f+=h,u++),l[p]={left:0,top:f,row:u,width:m,height:n},c[c.length-1]+=m+r}),d}_fitCols(t,e,s,n){const{ctx:o,maxHeight:a,options:{labels:{padding:r}}}=this,l=this.legendHitBoxes=[],c=this.columnSizes=[],h=a-t;let d=r,u=0,f=0,g=0,p=0;return this.legendItems.forEach((m,b)=>{const{itemWidth:x,itemHeight:v}=Bc(s,e,o,m,n);b>0&&f+v+2*r>h&&(d+=u+r,c.push({width:u,height:f}),g+=u+r,p++,u=f=0),l[b]={left:g,top:f,col:p,width:x,height:v},u=Math.max(u,x),f+=v+r}),d+=u,c.push({width:u,height:f}),d}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:s,labels:{padding:n},rtl:o}}=this,a=$t(o,this.left,this.width);if(this.isHorizontal()){let r=0,l=K(s,this.left+n,this.right-this.lineWidths[r]);for(const c of e)r!==c.row&&(r=c.row,l=K(s,this.left+n,this.right-this.lineWidths[r])),c.top+=this.top+t+n,c.left=a.leftForLtr(a.x(l),c.width),l+=c.width+n}else{let r=0,l=K(s,this.top+t+n,this.bottom-this.columnSizes[r].height);for(const c of e)c.col!==r&&(r=c.col,l=K(s,this.top+t+n,this.bottom-this.columnSizes[r].height)),c.top=l,c.left+=this.left+n,c.left=a.leftForLtr(a.x(c.left),c.width),l+=c.height+n}}isHorizontal(){return this.options.position==="top"||this.options.position==="bottom"}draw(){if(this.options.display){const t=this.ctx;ii(t,this),this._draw(),si(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:s,ctx:n}=this,{align:o,labels:a}=t,r=N.color,l=$t(t.rtl,this.left,this.width),c=$(a.font),{padding:h}=a,d=c.size,u=d/2;let f;this.drawTitle(),n.textAlign=l.textAlign("left"),n.textBaseline="middle",n.lineWidth=.5,n.font=c.string;const{boxWidth:g,boxHeight:p,itemHeight:m}=nn(a,d),b=function(k,w,S){if(isNaN(g)||g<=0||isNaN(p)||p<0)return;n.save();const P=D(S.lineWidth,1);if(n.fillStyle=D(S.fillStyle,r),n.lineCap=D(S.lineCap,"butt"),n.lineDashOffset=D(S.lineDashOffset,0),n.lineJoin=D(S.lineJoin,"miter"),n.lineWidth=P,n.strokeStyle=D(S.strokeStyle,r),n.setLineDash(D(S.lineDash,[])),a.usePointStyle){const O={radius:p*Math.SQRT2/2,pointStyle:S.pointStyle,rotation:S.rotation,borderWidth:P},C=l.xPlus(k,g/2),T=w+u;Fn(n,O,C,T,a.pointStyleWidth&&g)}else{const O=w+Math.max((d-p)/2,0),C=l.leftForLtr(k,g),T=Ft(S.borderRadius);n.beginPath(),Object.values(T).some(X=>X!==0)?me(n,{x:C,y:O,w:g,h:p,radius:T}):n.rect(C,O,g,p),n.fill(),P!==0&&n.stroke()}n.restore()},x=function(k,w,S){Bt(n,S.text,k,w+m/2,c,{strikethrough:S.hidden,textAlign:l.textAlign(S.textAlign)})},v=this.isHorizontal(),y=this._computeTitleHeight();v?f={x:K(o,this.left+h,this.right-s[0]),y:this.top+h+y,line:0}:f={x:this.left+h,y:K(o,this.top+y+h,this.bottom-e[0].height),line:0},jn(this.ctx,t.textDirection);const _=m+h;this.legendItems.forEach((k,w)=>{n.strokeStyle=k.fontColor,n.fillStyle=k.fontColor;const S=n.measureText(k.text).width,P=l.textAlign(k.textAlign||(k.textAlign=a.textAlign)),O=g+u+S;let C=f.x,T=f.y;l.setWidth(this.width),v?w>0&&C+O+h>this.right&&(T=f.y+=_,f.line++,C=f.x=K(o,this.left+h,this.right-s[f.line])):w>0&&T+_>this.bottom&&(C=f.x=C+e[f.line].width+h,f.line++,T=f.y=K(o,this.top+y+h,this.bottom-e[f.line].height));const X=l.x(C);if(b(X,T,k),C=oa(P,C+g+u,v?C+O:this.right,t.rtl),x(l.x(C),T,k),v)f.x+=O+h;else if(typeof k.text!="string"){const Q=c.lineHeight;f.y+=po(k,Q)+h}else f.y+=_}),$n(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,s=$(e.font),n=G(e.padding);if(!e.display)return;const o=$t(t.rtl,this.left,this.width),a=this.ctx,r=e.position,l=s.size/2,c=n.top+l;let h,d=this.left,u=this.width;if(this.isHorizontal())u=Math.max(...this.lineWidths),h=this.top+c,d=K(t.align,d,this.right-u);else{const g=this.columnSizes.reduce((p,m)=>Math.max(p,m.height),0);h=c+K(t.align,this.top,this.bottom-g-t.labels.padding-this._computeTitleHeight())}const f=K(r,d,d+u);a.textAlign=o.textAlign(Wi(r)),a.textBaseline="middle",a.strokeStyle=e.color,a.fillStyle=e.color,a.font=s.string,Bt(a,e.text,f,h,s)}_computeTitleHeight(){const t=this.options.title,e=$(t.font),s=G(t.padding);return t.display?e.lineHeight+s.height:0}_getLegendItemAt(t,e){let s,n,o;if(gt(t,this.left,this.right)&>(e,this.top,this.bottom)){for(o=this.legendHitBoxes,s=0;so.length>a.length?o:a)),t+e.size/2+s.measureText(n).width}function Wc(i,t,e){let s=i;return typeof t.text!="string"&&(s=po(t,e)),s}function po(i,t){const e=i.text?i.text.length:0;return t*e}function Nc(i,t){return!!((i==="mousemove"||i==="mouseout")&&(t.onHover||t.onLeave)||t.onClick&&(i==="click"||i==="mouseup"))}var Hc={id:"legend",_element:on,start(i,t,e){const s=i.legend=new on({ctx:i.ctx,options:e,chart:i});q.configure(i,s,e),q.addBox(i,s)},stop(i){q.removeBox(i,i.legend),delete i.legend},beforeUpdate(i,t,e){const s=i.legend;q.configure(i,s,e),s.options=e},afterUpdate(i){const t=i.legend;t.buildLabels(),t.adjustHitBoxes()},afterEvent(i,t){t.replay||i.legend.handleEvent(t.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(i,t,e){const s=t.datasetIndex,n=e.chart;n.isDatasetVisible(s)?(n.hide(s),t.hidden=!0):(n.show(s),t.hidden=!1)},onHover:null,onLeave:null,labels:{color:i=>i.chart.options.color,boxWidth:40,padding:10,generateLabels(i){const t=i.data.datasets,{labels:{usePointStyle:e,pointStyle:s,textAlign:n,color:o,useBorderRadius:a,borderRadius:r}}=i.legend.options;return i._getSortedDatasetMetas().map(l=>{const c=l.controller.getStyle(e?0:void 0),h=G(c.borderWidth);return{text:t[l.index].label,fillStyle:c.backgroundColor,fontColor:o,hidden:!l.visible,lineCap:c.borderCapStyle,lineDash:c.borderDash,lineDashOffset:c.borderDashOffset,lineJoin:c.borderJoinStyle,lineWidth:(h.width+h.height)/4,strokeStyle:c.borderColor,pointStyle:s||c.pointStyle,rotation:c.rotation,textAlign:n||c.textAlign,borderRadius:a&&(r||c.borderRadius),datasetIndex:l.index}},this)}},title:{color:i=>i.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:i=>!i.startsWith("on"),labels:{_scriptable:i=>!["generateLabels","filter","sort"].includes(i)}}};class Gi extends at{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){const s=this.options;if(this.left=0,this.top=0,!s.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=t,this.height=this.bottom=e;const n=I(s.text)?s.text.length:1;this._padding=G(s.padding);const o=n*$(s.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const t=this.options.position;return t==="top"||t==="bottom"}_drawArgs(t){const{top:e,left:s,bottom:n,right:o,options:a}=this,r=a.align;let l=0,c,h,d;return this.isHorizontal()?(h=K(r,s,o),d=e+t,c=o-s):(a.position==="left"?(h=s+t,d=K(r,n,e),l=B*-.5):(h=o-t,d=K(r,e,n),l=B*.5),c=n-e),{titleX:h,titleY:d,maxWidth:c,rotation:l}}draw(){const t=this.ctx,e=this.options;if(!e.display)return;const s=$(e.font),o=s.lineHeight/2+this._padding.top,{titleX:a,titleY:r,maxWidth:l,rotation:c}=this._drawArgs(o);Bt(t,e.text,0,0,s,{color:e.color,maxWidth:l,rotation:c,textAlign:Wi(e.align),textBaseline:"middle",translation:[a,r]})}}function jc(i,t){const e=new Gi({ctx:i.ctx,options:t,chart:i});q.configure(i,e,t),q.addBox(i,e),i.titleBlock=e}var $c={id:"title",_element:Gi,start(i,t,e){jc(i,e)},stop(i){const t=i.titleBlock;q.removeBox(i,t),delete i.titleBlock},beforeUpdate(i,t,e){const s=i.titleBlock;q.configure(i,s,e),s.options=e},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const Fe=new WeakMap;var Yc={id:"subtitle",start(i,t,e){const s=new Gi({ctx:i.ctx,options:e,chart:i});q.configure(i,s,e),q.addBox(i,s),Fe.set(i,s)},stop(i){q.removeBox(i,Fe.get(i)),Fe.delete(i)},beforeUpdate(i,t,e){const s=Fe.get(i);q.configure(i,s,e),s.options=e},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const oe={average(i){if(!i.length)return!1;let t,e,s=0,n=0,o=0;for(t=0,e=i.length;t-1?i.split(` +`):i}function Xc(i,t){const{element:e,datasetIndex:s,index:n}=t,o=i.getDatasetMeta(s).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:i,label:a,parsed:o.getParsed(n),raw:i.data.datasets[s].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:s,element:e}}function an(i,t){const e=i.chart.ctx,{body:s,footer:n,title:o}=i,{boxWidth:a,boxHeight:r}=t,l=$(t.bodyFont),c=$(t.titleFont),h=$(t.footerFont),d=o.length,u=n.length,f=s.length,g=G(t.padding);let p=g.height,m=0,b=s.reduce((y,_)=>y+_.before.length+_.lines.length+_.after.length,0);if(b+=i.beforeBody.length+i.afterBody.length,d&&(p+=d*c.lineHeight+(d-1)*t.titleSpacing+t.titleMarginBottom),b){const y=t.displayColors?Math.max(r,l.lineHeight):l.lineHeight;p+=f*y+(b-f)*l.lineHeight+(b-1)*t.bodySpacing}u&&(p+=t.footerMarginTop+u*h.lineHeight+(u-1)*t.footerSpacing);let x=0;const v=function(y){m=Math.max(m,e.measureText(y).width+x)};return e.save(),e.font=c.string,R(i.title,v),e.font=l.string,R(i.beforeBody.concat(i.afterBody),v),x=t.displayColors?a+2+t.boxPadding:0,R(s,y=>{R(y.before,v),R(y.lines,v),R(y.after,v)}),x=0,e.font=h.string,R(i.footer,v),e.restore(),m+=g.width,{width:m,height:p}}function Uc(i,t){const{y:e,height:s}=t;return ei.height-s/2?"bottom":"center"}function Kc(i,t,e,s){const{x:n,width:o}=s,a=e.caretSize+e.caretPadding;if(i==="left"&&n+o+a>t.width||i==="right"&&n-o-a<0)return!0}function qc(i,t,e,s){const{x:n,width:o}=e,{width:a,chartArea:{left:r,right:l}}=i;let c="center";return s==="center"?c=n<=(r+l)/2?"left":"right":n<=o/2?c="left":n>=a-o/2&&(c="right"),Kc(c,i,t,e)&&(c="center"),c}function rn(i,t,e){const s=e.yAlign||t.yAlign||Uc(i,e);return{xAlign:e.xAlign||t.xAlign||qc(i,t,e,s),yAlign:s}}function Gc(i,t){let{x:e,width:s}=i;return t==="right"?e-=s:t==="center"&&(e-=s/2),e}function Zc(i,t,e){let{y:s,height:n}=i;return t==="top"?s+=e:t==="bottom"?s-=n+e:s-=n/2,s}function ln(i,t,e,s){const{caretSize:n,caretPadding:o,cornerRadius:a}=i,{xAlign:r,yAlign:l}=e,c=n+o,{topLeft:h,topRight:d,bottomLeft:u,bottomRight:f}=Ft(a);let g=Gc(t,r);const p=Zc(t,l,c);return l==="center"?r==="left"?g+=c:r==="right"&&(g-=c):r==="left"?g-=Math.max(h,u)+n:r==="right"&&(g+=Math.max(d,f)+n),{x:Y(g,0,s.width-t.width),y:Y(p,0,s.height-t.height)}}function Ie(i,t,e){const s=G(e.padding);return t==="center"?i.x+i.width/2:t==="right"?i.x+i.width-s.right:i.x+s.left}function cn(i){return rt([],ut(i))}function Jc(i,t,e){return St(i,{tooltip:t,tooltipItems:e,type:"tooltip"})}function hn(i,t){const e=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return e?i.override(e):i}const mo={beforeTitle:ht,title(i){if(i.length>0){const t=i[0],e=t.chart.data.labels,s=e?e.length:0;if(this&&this.options&&this.options.mode==="dataset")return t.dataset.label||"";if(t.label)return t.label;if(s>0&&t.dataIndex"u"?mo[t].call(e,s):n}class Oi extends at{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const e=this.chart,s=this.options.setContext(this.getContext()),n=s.enabled&&e.options.animation&&s.animations,o=new Kn(this.chart,n);return n._cacheable&&(this._cachedAnimations=Object.freeze(o)),o}getContext(){return this.$context||(this.$context=Jc(this.chart.getContext(),this,this._tooltipItems))}getTitle(t,e){const{callbacks:s}=e,n=Z(s,"beforeTitle",this,t),o=Z(s,"title",this,t),a=Z(s,"afterTitle",this,t);let r=[];return r=rt(r,ut(n)),r=rt(r,ut(o)),r=rt(r,ut(a)),r}getBeforeBody(t,e){return cn(Z(e.callbacks,"beforeBody",this,t))}getBody(t,e){const{callbacks:s}=e,n=[];return R(t,o=>{const a={before:[],lines:[],after:[]},r=hn(s,o);rt(a.before,ut(Z(r,"beforeLabel",this,o))),rt(a.lines,Z(r,"label",this,o)),rt(a.after,ut(Z(r,"afterLabel",this,o))),n.push(a)}),n}getAfterBody(t,e){return cn(Z(e.callbacks,"afterBody",this,t))}getFooter(t,e){const{callbacks:s}=e,n=Z(s,"beforeFooter",this,t),o=Z(s,"footer",this,t),a=Z(s,"afterFooter",this,t);let r=[];return r=rt(r,ut(n)),r=rt(r,ut(o)),r=rt(r,ut(a)),r}_createItems(t){const e=this._active,s=this.chart.data,n=[],o=[],a=[];let r=[],l,c;for(l=0,c=e.length;lt.filter(h,d,u,s))),t.itemSort&&(r=r.sort((h,d)=>t.itemSort(h,d,s))),R(r,h=>{const d=hn(t.callbacks,h);n.push(Z(d,"labelColor",this,h)),o.push(Z(d,"labelPointStyle",this,h)),a.push(Z(d,"labelTextColor",this,h))}),this.labelColors=n,this.labelPointStyles=o,this.labelTextColors=a,this.dataPoints=r,r}update(t,e){const s=this.options.setContext(this.getContext()),n=this._active;let o,a=[];if(!n.length)this.opacity!==0&&(o={opacity:0});else{const r=oe[s.position].call(this,n,this._eventPosition);a=this._createItems(s),this.title=this.getTitle(a,s),this.beforeBody=this.getBeforeBody(a,s),this.body=this.getBody(a,s),this.afterBody=this.getAfterBody(a,s),this.footer=this.getFooter(a,s);const l=this._size=an(this,s),c=Object.assign({},r,l),h=rn(this.chart,s,c),d=ln(s,c,h,this.chart);this.xAlign=h.xAlign,this.yAlign=h.yAlign,o={opacity:1,x:d.x,y:d.y,width:l.width,height:l.height,caretX:r.x,caretY:r.y}}this._tooltipItems=a,this.$context=void 0,o&&this._resolveAnimations().update(this,o),t&&s.external&&s.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,s,n){const o=this.getCaretPosition(t,s,n);e.lineTo(o.x1,o.y1),e.lineTo(o.x2,o.y2),e.lineTo(o.x3,o.y3)}getCaretPosition(t,e,s){const{xAlign:n,yAlign:o}=this,{caretSize:a,cornerRadius:r}=s,{topLeft:l,topRight:c,bottomLeft:h,bottomRight:d}=Ft(r),{x:u,y:f}=t,{width:g,height:p}=e;let m,b,x,v,y,_;return o==="center"?(y=f+p/2,n==="left"?(m=u,b=m-a,v=y+a,_=y-a):(m=u+g,b=m+a,v=y-a,_=y+a),x=m):(n==="left"?b=u+Math.max(l,h)+a:n==="right"?b=u+g-Math.max(c,d)-a:b=this.caretX,o==="top"?(v=f,y=v-a,m=b-a,x=b+a):(v=f+p,y=v+a,m=b+a,x=b-a),_=v),{x1:m,x2:b,x3:x,y1:v,y2:y,y3:_}}drawTitle(t,e,s){const n=this.title,o=n.length;let a,r,l;if(o){const c=$t(s.rtl,this.x,this.width);for(t.x=Ie(this,s.titleAlign,s),e.textAlign=c.textAlign(s.titleAlign),e.textBaseline="middle",a=$(s.titleFont),r=s.titleSpacing,e.fillStyle=s.titleColor,e.font=a.string,l=0;lx!==0)?(t.beginPath(),t.fillStyle=o.multiKeyBackground,me(t,{x:p,y:g,w:c,h:l,radius:b}),t.fill(),t.stroke(),t.fillStyle=a.backgroundColor,t.beginPath(),me(t,{x:m,y:g+1,w:c-2,h:l-2,radius:b}),t.fill()):(t.fillStyle=o.multiKeyBackground,t.fillRect(p,g,c,l),t.strokeRect(p,g,c,l),t.fillStyle=a.backgroundColor,t.fillRect(m,g+1,c-2,l-2))}t.fillStyle=this.labelTextColors[s]}drawBody(t,e,s){const{body:n}=this,{bodySpacing:o,bodyAlign:a,displayColors:r,boxHeight:l,boxWidth:c,boxPadding:h}=s,d=$(s.bodyFont);let u=d.lineHeight,f=0;const g=$t(s.rtl,this.x,this.width),p=function(S){e.fillText(S,g.x(t.x+f),t.y+u/2),t.y+=u+o},m=g.textAlign(a);let b,x,v,y,_,k,w;for(e.textAlign=a,e.textBaseline="middle",e.font=d.string,t.x=Ie(this,m,s),e.fillStyle=s.bodyColor,R(this.beforeBody,p),f=r&&m!=="right"?a==="center"?c/2+h:c+2+h:0,y=0,k=n.length;y0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,s=this.$animations,n=s&&s.x,o=s&&s.y;if(n||o){const a=oe[t.position].call(this,this._active,this._eventPosition);if(!a)return;const r=this._size=an(this,t),l=Object.assign({},a,this._size),c=rn(e,t,l),h=ln(t,l,c,e);(n._to!==h.x||o._to!==h.y)&&(this.xAlign=c.xAlign,this.yAlign=c.yAlign,this.width=r.width,this.height=r.height,this.caretX=a.x,this.caretY=a.y,this._resolveAnimations().update(this,h))}}_willRender(){return!!this.opacity}draw(t){const e=this.options.setContext(this.getContext());let s=this.opacity;if(!s)return;this._updateAnimationTarget(e);const n={width:this.width,height:this.height},o={x:this.x,y:this.y};s=Math.abs(s)<.001?0:s;const a=G(e.padding),r=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&r&&(t.save(),t.globalAlpha=s,this.drawBackground(o,t,n,e),jn(t,e.textDirection),o.y+=a.top,this.drawTitle(o,t,e),this.drawBody(o,t,e),this.drawFooter(o,t,e),$n(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const s=this._active,n=t.map(({datasetIndex:r,index:l})=>{const c=this.chart.getDatasetMeta(r);if(!c)throw new Error("Cannot find a dataset at index "+r);return{datasetIndex:r,element:c.data[l],index:l}}),o=!Ue(s,n),a=this._positionChanged(n,e);(o||a)&&(this._active=n,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,s=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const n=this.options,o=this._active||[],a=this._getActiveElements(t,o,e,s),r=this._positionChanged(a,t),l=e||!Ue(a,o)||r;return l&&(this._active=a,(n.enabled||n.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),l}_getActiveElements(t,e,s,n){const o=this.options;if(t.type==="mouseout")return[];if(!n)return e.filter(r=>this.chart.data.datasets[r.datasetIndex]&&this.chart.getDatasetMeta(r.datasetIndex).controller.getParsed(r.index)!==void 0);const a=this.chart.getElementsAtEventForMode(t,o.mode,o,s);return o.reverse&&a.reverse(),a}_positionChanged(t,e){const{caretX:s,caretY:n,options:o}=this,a=oe[o.position].call(this,t,e);return a!==!1&&(s!==a.x||n!==a.y)}}M(Oi,"positioners",oe);var Qc={id:"tooltip",_element:Oi,positioners:oe,afterInit(i,t,e){e&&(i.tooltip=new Oi({chart:i,options:e}))},beforeUpdate(i,t,e){i.tooltip&&i.tooltip.initialize(e)},reset(i,t,e){i.tooltip&&i.tooltip.initialize(e)},afterDraw(i){const t=i.tooltip;if(t&&t._willRender()){const e={tooltip:t};if(i.notifyPlugins("beforeTooltipDraw",{...e,cancelable:!0})===!1)return;t.draw(i.ctx),i.notifyPlugins("afterTooltipDraw",e)}},afterEvent(i,t){if(i.tooltip){const e=t.replay;i.tooltip.handleEvent(t.event,e,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(i,t)=>t.bodyFont.size,boxWidth:(i,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:mo},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:i=>i!=="filter"&&i!=="itemSort"&&i!=="external",_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},th=Object.freeze({__proto__:null,Colors:uc,Decimation:mc,Filler:Ic,Legend:Hc,SubTitle:Yc,Title:$c,Tooltip:Qc});const eh=(i,t,e,s)=>(typeof t=="string"?(e=i.push(t)-1,s.unshift({index:e,label:t})):isNaN(t)&&(e=null),e);function ih(i,t,e,s){const n=i.indexOf(t);if(n===-1)return eh(i,t,e,s);const o=i.lastIndexOf(t);return n!==o?e:n}const sh=(i,t)=>i===null?null:Y(Math.round(i),0,t);function dn(i){const t=this.getLabels();return i>=0&&ie.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}M(Ci,"id","category"),M(Ci,"defaults",{ticks:{callback:dn}});function nh(i,t){const e=[],{bounds:n,step:o,min:a,max:r,precision:l,count:c,maxTicks:h,maxDigits:d,includeBounds:u}=i,f=o||1,g=h-1,{min:p,max:m}=t,b=!L(a),x=!L(r),v=!L(c),y=(m-p)/(d+1);let _=ns((m-p)/g/f)*f,k,w,S,P;if(_<1e-14&&!b&&!x)return[{value:p},{value:m}];P=Math.ceil(m/_)-Math.floor(p/_),P>g&&(_=ns(P*_/g/f)*f),L(l)||(k=Math.pow(10,l),_=Math.ceil(_*k)/k),n==="ticks"?(w=Math.floor(p/_)*_,S=Math.ceil(m/_)*_):(w=p,S=m),b&&x&&o&&Jo((r-a)/o,_/1e3)?(P=Math.round(Math.min((r-a)/_,h)),_=(r-a)/P,w=a,S=r):v?(w=b?a:w,S=x?r:S,P=c-1,_=(S-w)/P):(P=(S-w)/_,le(P,Math.round(P),_/1e3)?P=Math.round(P):P=Math.ceil(P));const O=Math.max(os(_),os(w));k=Math.pow(10,L(l)?O:l),w=Math.round(w*k)/k,S=Math.round(S*k)/k;let C=0;for(b&&(u&&w!==a?(e.push({value:a}),wr)break;e.push({value:T})}return x&&u&&S!==r?e.length&&le(e[e.length-1].value,r,un(r,y,i))?e[e.length-1].value=r:e.push({value:r}):(!x||S===r)&&e.push({value:S}),e}function un(i,t,{horizontal:e,minRotation:s}){const n=nt(s),o=(e?Math.sin(n):Math.cos(n))||.001,a=.75*t*(""+i).length;return Math.min(t/o,a)}class ti extends Vt{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,e){return L(t)||(typeof t=="number"||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:e,maxDefined:s}=this.getUserBounds();let{min:n,max:o}=this;const a=l=>n=e?n:l,r=l=>o=s?o:l;if(t){const l=ct(n),c=ct(o);l<0&&c<0?r(0):l>0&&c>0&&a(0)}if(n===o){let l=o===0?1:Math.abs(o*.05);r(o+l),t||a(n-l)}this.min=n,this.max=o}getTickLimit(){const t=this.options.ticks;let{maxTicksLimit:e,stepSize:s}=t,n;return s?(n=Math.ceil(this.max/s)-Math.floor(this.min/s)+1,n>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${n} ticks. Limiting to 1000.`),n=1e3)):(n=this.computeTickLimit(),e=e||11),e&&(n=Math.min(e,n)),n}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let s=this.getTickLimit();s=Math.max(2,s);const n={maxTicks:s,bounds:t.bounds,min:t.min,max:t.max,precision:e.precision,step:e.stepSize,count:e.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:e.minRotation||0,includeBounds:e.includeBounds!==!1},o=this._range||this,a=nh(n,o);return t.bounds==="ticks"&&Pn(a,this,"value"),t.reverse?(a.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),a}configure(){const t=this.ticks;let e=this.min,s=this.max;if(super.configure(),this.options.offset&&t.length){const n=(s-e)/Math.max(t.length-1,1)/2;e-=n,s+=n}this._startValue=e,this._endValue=s,this._valueRange=s-e}getLabelForValue(t){return ve(t,this.chart.options.locale,this.options.ticks.format)}}class Ai extends ti{determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=W(t)?t:0,this.max=W(e)?e:1,this.handleTickRangeOptions()}computeTickLimit(){const t=this.isHorizontal(),e=t?this.width:this.height,s=nt(this.options.ticks.minRotation),n=(t?Math.sin(s):Math.cos(s))||.001,o=this._resolveTickFontOptions(0);return Math.ceil(e/Math.min(40,o.lineHeight/n))}getPixelForValue(t){return t===null?NaN:this.getPixelForDecimal((t-this._startValue)/this._valueRange)}getValueForPixel(t){return this._startValue+this.getDecimalForPixel(t)*this._valueRange}}M(Ai,"id","linear"),M(Ai,"defaults",{ticks:{callback:ei.formatters.numeric}});const xe=i=>Math.floor(_t(i)),Tt=(i,t)=>Math.pow(10,xe(i)+t);function fn(i){return i/Math.pow(10,xe(i))===1}function gn(i,t,e){const s=Math.pow(10,e),n=Math.floor(i/s);return Math.ceil(t/s)-n}function oh(i,t){const e=t-i;let s=xe(e);for(;gn(i,t,s)>10;)s++;for(;gn(i,t,s)<10;)s--;return Math.min(s,xe(i))}function ah(i,{min:t,max:e}){t=tt(i.min,t);const s=[],n=xe(t);let o=oh(t,e),a=o<0?Math.pow(10,Math.abs(o)):1;const r=Math.pow(10,o),l=n>o?Math.pow(10,n):0,c=Math.round((t-l)*a)/a,h=Math.floor((t-l)/r/10)*r*10;let d=Math.floor((c-h)/Math.pow(10,o)),u=tt(i.min,Math.round((l+h+d*Math.pow(10,o))*a)/a);for(;u=10?d=d<15?15:20:d++,d>=20&&(o++,d=2,a=o>=0?1:a),u=Math.round((l+h+d*Math.pow(10,o))*a)/a;const f=tt(i.max,u);return s.push({value:f,major:fn(f),significand:d}),s}class Ti extends Vt{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(t,e){const s=ti.prototype.parse.apply(this,[t,e]);if(s===0){this._zero=!0;return}return W(s)&&s>0?s:null}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=W(t)?Math.max(0,t):null,this.max=W(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!W(this._userMin)&&(this.min=t===Tt(this.min,0)?Tt(this.min,-1):Tt(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let s=this.min,n=this.max;const o=r=>s=t?s:r,a=r=>n=e?n:r;s===n&&(s<=0?(o(1),a(10)):(o(Tt(s,-1)),a(Tt(n,1)))),s<=0&&o(Tt(n,-1)),n<=0&&a(Tt(s,1)),this.min=s,this.max=n}buildTicks(){const t=this.options,e={min:this._userMin,max:this._userMax},s=ah(e,this);return t.bounds==="ticks"&&Pn(s,this,"value"),t.reverse?(s.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),s}getLabelForValue(t){return t===void 0?"0":ve(t,this.chart.options.locale,this.options.ticks.format)}configure(){const t=this.min;super.configure(),this._startValue=_t(t),this._valueRange=_t(this.max)-_t(t)}getPixelForValue(t){return(t===void 0||t===0)&&(t=this.min),t===null||isNaN(t)?NaN:this.getPixelForDecimal(t===this.min?0:(_t(t)-this._startValue)/this._valueRange)}getValueForPixel(t){const e=this.getDecimalForPixel(t);return Math.pow(10,this._startValue+e*this._valueRange)}}M(Ti,"id","logarithmic"),M(Ti,"defaults",{ticks:{callback:ei.formatters.logarithmic,major:{enabled:!0}}});function Li(i){const t=i.ticks;if(t.display&&i.display){const e=G(t.backdropPadding);return D(t.font&&t.font.size,N.font.size)+e.height}return 0}function rh(i,t,e){return e=I(e)?e:[e],{w:pa(i,t.string,e),h:e.length*t.lineHeight}}function pn(i,t,e,s,n){return i===s||i===n?{start:t-e/2,end:t+e/2}:in?{start:t-e,end:t}:{start:t,end:t+e}}function lh(i){const t={l:i.left+i._padding.left,r:i.right-i._padding.right,t:i.top+i._padding.top,b:i.bottom-i._padding.bottom},e=Object.assign({},t),s=[],n=[],o=i._pointLabels.length,a=i.options.pointLabels,r=a.centerPointLabels?B/o:0;for(let l=0;lt.r&&(r=(s.end-t.r)/o,i.r=Math.max(i.r,t.r+r)),n.startt.b&&(l=(n.end-t.b)/a,i.b=Math.max(i.b,t.b+l))}function hh(i,t,e){const s=i.drawingArea,{extra:n,additionalAngle:o,padding:a,size:r}=e,l=i.getPointPosition(t,s+n+a,o),c=Math.round(Bi(et(l.angle+j))),h=ph(l.y,r.h,c),d=fh(c),u=gh(l.x,r.w,d);return{visible:!0,x:l.x,y:h,textAlign:d,left:u,top:h,right:u+r.w,bottom:h+r.h}}function dh(i,t){if(!t)return!0;const{left:e,top:s,right:n,bottom:o}=i;return!(mt({x:e,y:s},t)||mt({x:e,y:o},t)||mt({x:n,y:s},t)||mt({x:n,y:o},t))}function uh(i,t,e){const s=[],n=i._pointLabels.length,o=i.options,{centerPointLabels:a,display:r}=o.pointLabels,l={extra:Li(o)/2,additionalAngle:a?B/n:0};let c;for(let h=0;h270||e<90)&&(i-=t),i}function mh(i,t,e){const{left:s,top:n,right:o,bottom:a}=e,{backdropColor:r}=t;if(!L(r)){const l=Ft(t.borderRadius),c=G(t.backdropPadding);i.fillStyle=r;const h=s-c.left,d=n-c.top,u=o-s+c.width,f=a-n+c.height;Object.values(l).some(g=>g!==0)?(i.beginPath(),me(i,{x:h,y:d,w:u,h:f,radius:l}),i.fill()):i.fillRect(h,d,u,f)}}function bh(i,t){const{ctx:e,options:{pointLabels:s}}=i;for(let n=t-1;n>=0;n--){const o=i._pointLabelItems[n];if(!o.visible)continue;const a=s.setContext(i.getPointLabelContext(n));mh(e,a,o);const r=$(a.font),{x:l,y:c,textAlign:h}=o;Bt(e,i._pointLabels[n],l,c+r.lineHeight/2,r,{color:a.color,textAlign:h,textBaseline:"middle"})}}function bo(i,t,e,s){const{ctx:n}=i;if(e)n.arc(i.xCenter,i.yCenter,t,0,z);else{let o=i.getPointPosition(0,t);n.moveTo(o.x,o.y);for(let a=1;a{const n=F(this.options.pointLabels.callback,[e,s],this);return n||n===0?n:""}).filter((e,s)=>this.chart.getDataVisibility(s))}fit(){const t=this.options;t.display&&t.pointLabels.display?lh(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,s,n){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((s-n)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,s,n))}getIndexAngle(t){const e=z/(this._pointLabels.length||1),s=this.options.startAngle||0;return et(t*e+nt(s))}getDistanceFromCenterForValue(t){if(L(t))return NaN;const e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(L(t))return NaN;const e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&t{if(d!==0){l=this.getDistanceFromCenterForValue(h.value);const u=this.getContext(d),f=n.setContext(u),g=o.setContext(u);xh(this,f,l,a,g)}}),s.display){for(t.save(),r=a-1;r>=0;r--){const h=s.setContext(this.getPointLabelContext(r)),{color:d,lineWidth:u}=h;!u||!d||(t.lineWidth=u,t.strokeStyle=d,t.setLineDash(h.borderDash),t.lineDashOffset=h.borderDashOffset,l=this.getDistanceFromCenterForValue(e.ticks.reverse?this.min:this.max),c=this.getPointPosition(r,l),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(c.x,c.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,e=this.options,s=e.ticks;if(!s.display)return;const n=this.getIndexAngle(0);let o,a;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(n),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach((r,l)=>{if(l===0&&!e.reverse)return;const c=s.setContext(this.getContext(l)),h=$(c.font);if(o=this.getDistanceFromCenterForValue(this.ticks[l].value),c.showLabelBackdrop){t.font=h.string,a=t.measureText(r.label).width,t.fillStyle=c.backdropColor;const d=G(c.backdropPadding);t.fillRect(-a/2-d.left,-o-h.size/2-d.top,a+d.width,h.size+d.height)}Bt(t,r.label,0,-o,h,{color:c.color,strokeColor:c.textStrokeColor,strokeWidth:c.textStrokeWidth})}),t.restore()}drawTitle(){}}M(ae,"id","radialLinear"),M(ae,"defaults",{display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:ei.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback(t){return t},padding:5,centerPointLabels:!1}}),M(ae,"defaultRoutes",{"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"}),M(ae,"descriptors",{angleLines:{_fallback:"grid"}});const oi={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},J=Object.keys(oi);function mn(i,t){return i-t}function bn(i,t){if(L(t))return null;const e=i._adapter,{parser:s,round:n,isoWeekday:o}=i._parseOpts;let a=t;return typeof s=="function"&&(a=s(a)),W(a)||(a=typeof s=="string"?e.parse(a,s):e.parse(a)),a===null?null:(n&&(a=n==="week"&&(Yt(o)||o===!0)?e.startOf(a,"isoWeek",o):e.startOf(a,n)),+a)}function xn(i,t,e,s){const n=J.length;for(let o=J.indexOf(i);o=J.indexOf(e);o--){const a=J[o];if(oi[a].common&&i._adapter.diff(n,s,a)>=t-1)return a}return J[e?J.indexOf(e):0]}function vh(i){for(let t=J.indexOf(i)+1,e=J.length;t=t?e[s]:e[n];i[o]=!0}}function Mh(i,t,e,s){const n=i._adapter,o=+n.startOf(t[0].value,s),a=t[t.length-1].value;let r,l;for(r=o;r<=a;r=+n.add(r,1,s))l=e[r],l>=0&&(t[l].major=!0);return t}function yn(i,t,e){const s=[],n={},o=t.length;let a,r;for(a=0;a+t.value))}initOffsets(t=[]){let e=0,s=0,n,o;this.options.offset&&t.length&&(n=this.getDecimalForValue(t[0]),t.length===1?e=1-n:e=(this.getDecimalForValue(t[1])-n)/2,o=this.getDecimalForValue(t[t.length-1]),t.length===1?s=o:s=(o-this.getDecimalForValue(t[t.length-2]))/2);const a=t.length<3?.5:.25;e=Y(e,0,a),s=Y(s,0,a),this._offsets={start:e,end:s,factor:1/(e+1+s)}}_generate(){const t=this._adapter,e=this.min,s=this.max,n=this.options,o=n.time,a=o.unit||xn(o.minUnit,e,s,this._getLabelCapacity(e)),r=D(n.ticks.stepSize,1),l=a==="week"?o.isoWeekday:!1,c=Yt(l)||l===!0,h={};let d=e,u,f;if(c&&(d=+t.startOf(d,"isoWeek",l)),d=+t.startOf(d,c?"day":a),t.diff(s,e,a)>1e5*r)throw new Error(e+" and "+s+" are too far apart with stepSize of "+r+" "+a);const g=n.ticks.source==="data"&&this.getDataTimestamps();for(u=d,f=0;u+p)}getLabelForValue(t){const e=this._adapter,s=this.options.time;return s.tooltipFormat?e.format(t,s.tooltipFormat):e.format(t,s.displayFormats.datetime)}format(t,e){const n=this.options.time.displayFormats,o=this._unit,a=e||n[o];return this._adapter.format(t,a)}_tickFormatFunction(t,e,s,n){const o=this.options,a=o.ticks.callback;if(a)return F(a,[t,e,s],this);const r=o.time.displayFormats,l=this._unit,c=this._majorUnit,h=l&&r[l],d=c&&r[c],u=s[e],f=c&&d&&u&&u.major;return this._adapter.format(t,n||(f?d:h))}generateTickLabels(t){let e,s,n;for(e=0,s=t.length;e0?r:1}getDataTimestamps(){let t=this._cache.data||[],e,s;if(t.length)return t;const n=this.getMatchingVisibleMetas();if(this._normalized&&n.length)return this._cache.data=n[0].controller.getAllParsedValues(this);for(e=0,s=n.length;e=i[s].pos&&t<=i[n].pos&&({lo:s,hi:n}=pt(i,"pos",t)),{pos:o,time:r}=i[s],{pos:a,time:l}=i[n]):(t>=i[s].time&&t<=i[n].time&&({lo:s,hi:n}=pt(i,"time",t)),{time:o,pos:r}=i[s],{time:a,pos:l}=i[n]);const c=a-o;return c?r+(l-r)*(t-o)/c:r}class Ri extends _e{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=ze(e,this.min),this._tableRange=ze(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:e,max:s}=this,n=[],o=[];let a,r,l,c,h;for(a=0,r=t.length;a=e&&c<=s&&n.push(c);if(n.length<2)return[{time:e,pos:0},{time:s,pos:1}];for(a=0,r=n.length;an-o)}_getTimestampsForTable(){let t=this._cache.all||[];if(t.length)return t;const e=this.getDataTimestamps(),s=this.getLabelTimestamps();return e.length&&s.length?t=this.normalize(e.concat(s)):t=e.length?e:s,t=this._cache.all=t,t}getDecimalForValue(t){return(ze(this._table,t)-this._minPos)/this._tableRange}getValueForPixel(t){const e=this._offsets,s=this.getDecimalForPixel(t)/e.factor-e.end;return ze(this._table,s*this._tableRange+this._minPos,!0)}}M(Ri,"id","timeseries"),M(Ri,"defaults",_e.defaults);var kh=Object.freeze({__proto__:null,CategoryScale:Ci,LinearScale:Ai,LogarithmicScale:Ti,RadialLinearScale:ae,TimeScale:_e,TimeSeriesScale:Ri});const wh=[Ar,ac,th,kh];bt.register(...wh);export{rr as Animation,Kn as Animations,ne as ArcElement,Be as BarController,Xe as BarElement,Qn as BasePlatform,$r as BasicPlatform,Ve as BubbleController,Ci as CategoryScale,bt as Chart,uc as Colors,ot as DatasetController,mc as Decimation,il as DomPlatform,Et as DoughnutController,at as Element,Ic as Filler,Ir as Interaction,Hc as Legend,We as LineController,yt as LineElement,Ai as LinearScale,Ti as LogarithmicScale,Mi as PieController,Ye as PointElement,de as PolarAreaController,Ne as RadarController,ae as RadialLinearScale,Vt as Scale,He as ScatterController,Yc as SubTitle,ei as Ticks,_e as TimeScale,Ri as TimeSeriesScale,$c as Title,Qc as Tooltip,Tr as _adapters,sl as _detectPlatform,dt as animator,Ar as controllers,bt as default,N as defaults,ac as elements,q as layouts,th as plugins,wh as registerables,lt as registry,kh as scales}; diff --git a/assets/autoDescription.html-oVXwAAVJ.js b/assets/autoDescription.html-oVXwAAVJ.js new file mode 100644 index 000000000..45f2696d6 --- /dev/null +++ b/assets/autoDescription.html-oVXwAAVJ.js @@ -0,0 +1 @@ +import{_ as i}from"./paramDescription-tGSx8XCt.js";import{_ as a,r as n,o as r,c as s,a as e,d as t,b as c}from"./app-8OZtYazS.js";const p={},d=e("h1",{id:"auto-description",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#auto-description"},[e("span",null,"Auto Description")])],-1),m=e("p",null,[t("Field description needs to conform to standard JavaDoc. Please use"),e("code",null,"/**some description*/"),t(".")],-1),l=e("p",null,"You can hide or show descriptions by toggle click.",-1),u=e("p",null,[e("img",{src:i,alt:"paramDescription",loading:"lazy"})],-1);function g(h,_){const o=n("Badge");return r(),s("div",null,[d,e("p",null,[t("Version required: "),c(o,{text:"2022.1.5"})]),m,l,u])}const D=a(p,[["render",g],["__file","autoDescription.html.vue"]]),b=JSON.parse('{"path":"/en/guide/features/autoDescription.html","title":"Auto Description","lang":"en-US","frontmatter":{"description":"Auto Description Version required: Field description needs to conform to standard JavaDoc. Please use/**some description*/. You can hide or show descriptions by toggle click. pa...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/autoDescription.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/autoDescription.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Auto Description"}],["meta",{"property":"og:description","content":"Auto Description Version required: Field description needs to conform to standard JavaDoc. Please use/**some description*/. You can hide or show descriptions by toggle click. pa..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/paramDescription.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Auto Description"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Auto Description\\",\\"image\\":[\\"https://api-buddy.com/img/paramDescription.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.11,"words":34},"filePathRelative":"en/guide/features/autoDescription.md","localizedDate":"May 31, 2024","autoDesc":true}');export{D as comp,b as data}; diff --git a/assets/autoDescription.html-w-PU9cdB.js b/assets/autoDescription.html-w-PU9cdB.js new file mode 100644 index 000000000..1c677a117 --- /dev/null +++ b/assets/autoDescription.html-w-PU9cdB.js @@ -0,0 +1 @@ +import{_ as o}from"./paramDescription-tGSx8XCt.js";import{_ as i,r,o as n,c as p,a as e,d as t,b as c}from"./app-8OZtYazS.js";const s={},m=e("h1",{id:"api-自动生成注释",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#api-自动生成注释"},[e("span",null,"API 自动生成注释")])],-1),l=e("p",null,[t("字段注释需要符合标准注释规范,使用"),e("code",null,"/**描述*/"),t("。")],-1),d=e("p",null,"可以通过点击隐藏或显示 Description。",-1),u=e("p",null,[e("img",{src:o,alt:"paramDescription",loading:"lazy"})],-1);function g(h,_){const a=r("Badge");return n(),p("div",null,[m,e("p",null,[t("版本要求: "),c(a,{text:"2022.1.5"})]),l,d,u])}const D=i(s,[["render",g],["__file","autoDescription.html.vue"]]),A=JSON.parse('{"path":"/guide/features/autoDescription.html","title":"API 自动生成注释","lang":"zh-CN","frontmatter":{"description":"API 自动生成注释 版本要求: 字段注释需要符合标准注释规范,使用/**描述*/。 可以通过点击隐藏或显示 Description。 paramDescription ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/autoDescription.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/autoDescription.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"API 自动生成注释"}],["meta",{"property":"og:description","content":"API 自动生成注释 版本要求: 字段注释需要符合标准注释规范,使用/**描述*/。 可以通过点击隐藏或显示 Description。 paramDescription "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/paramDescription.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"API 自动生成注释"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"API 自动生成注释\\",\\"image\\":[\\"https://api-buddy.com/img/paramDescription.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.16,"words":49},"filePathRelative":"guide/features/autoDescription.md","localizedDate":"2024年5月31日","autoDesc":true}');export{D as comp,A as data}; diff --git a/assets/autoDomain.html-KZYdhIIe.js b/assets/autoDomain.html-KZYdhIIe.js new file mode 100644 index 000000000..a51d121d8 --- /dev/null +++ b/assets/autoDomain.html-KZYdhIIe.js @@ -0,0 +1 @@ +import{_ as r,r as a,o as c,c as l,a as e,d as o,b as t,e as d}from"./app-8OZtYazS.js";const s="/img/2023.1.4/autoDomain_en.png",m={},p=e("h1",{id:"auto-domain",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#auto-domain"},[e("span",null,"Auto domain")])],-1),h=e("h2",{id:"trigger-point",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#trigger-point"},[e("span",null,"Trigger point")])],-1),u=e("h2",{id:"project-name",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#project-name"},[e("span",null,"Project name")])],-1),g=e("p",null,[o("The project name is taken from the api "),e("code",null,"module name")],-1),f=e("code",null,"Module-1",-1),_=e("code",null,"Module-2",-1),y=e("code",null,"Module-1",-1),v=e("code",null,"Module-2",-1),b=d('

It is recommended not to manually add the project name later because the plugin cannot find the mapping relationship, which may easily result in using the domain name of Module-1 instead of the domain name of Module-2 when saving the API of Module-2.

Therefore, another benefit of auto domain name is the automatic switching of API domain names. If it does not exist, it will be automatically generated. If there is a need for improvement, developers only need to modify the domain name value! The plugin will automatically adapt!

Configuration file parsing logic

  1. Read application.yml or bootstrap.yml. If the configuration server.port or server.servlet.context-path can be found, take the configuration.
  2. If the above configuration files cannot find server.port or server.servlet.context-path, read spring.profiles.active as the variable env. Then look for application-env.yml or bootstrap-env.yml to find the configuration server.port or server.servlet.context-path.
  3. The logic for properties files is similar.
  4. If the above configurations cannot be found, use port=8080, context-path=/.
  5. The project name is taken from the module name.
  6. spring.profiles.active does not support Maven variables parse, for example spring.profiles.active=@active.env@.

Config switch

autoDomain

',6);function k(w,x){const i=a("Badge"),n=a("ColorIcon");return c(),l("div",null,[p,e("p",null,[o("Version required: "),t(i,{text:"2023.1.4"})]),h,e("p",null,[o("When clicking "),t(n,{icon:"restfulFastRequest"}),o(" on the left side of the method, if no domain is configured, it will be automatically created.")]),u,g,e("p",null,[o("Why? For example, there are two modules' APIs under the project, "),f,o(" and "),_,o(". If the domain name value of "),y,o(" is already stored and when clicking the "),t(n,{icon:"restfulFastRequest"}),o(" on the left of the API method under "),v,o(", the old version cannot automatically switch the project name.")]),b])}const j=r(m,[["render",k],["__file","autoDomain.html.vue"]]),I=JSON.parse(`{"path":"/en/guide/features/autoDomain.html","title":"Auto domain","lang":"en-US","frontmatter":{"description":"Auto domain Version required: Trigger point When clicking Project name The project name is taken from the api module name Why? For example, there are two modules' APIs under the...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/autoDomain.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/autoDomain.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Auto domain"}],["meta",{"property":"og:description","content":"Auto domain Version required: Trigger point When clicking Project name The project name is taken from the api module name Why? For example, there are two modules' APIs under the..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.1.4/autoDomain_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Auto domain"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Auto domain\\",\\"image\\":[\\"https://api-buddy.com/img/2023.1.4/autoDomain_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Trigger point","slug":"trigger-point","link":"#trigger-point","children":[]},{"level":2,"title":"Project name","slug":"project-name","link":"#project-name","children":[]},{"level":2,"title":"Configuration file parsing logic","slug":"configuration-file-parsing-logic","link":"#configuration-file-parsing-logic","children":[]},{"level":2,"title":"Config switch","slug":"config-switch","link":"#config-switch","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.01,"words":304},"filePathRelative":"en/guide/features/autoDomain.md","localizedDate":"May 31, 2024","autoDesc":true}`);export{j as comp,I as data}; diff --git a/assets/autoDomain.html-xxeP_XtU.js b/assets/autoDomain.html-xxeP_XtU.js new file mode 100644 index 000000000..862ea5f98 --- /dev/null +++ b/assets/autoDomain.html-xxeP_XtU.js @@ -0,0 +1 @@ +import{_ as c,r as n,o as i,c as r,a as e,d as t,b as o,e as d}from"./app-8OZtYazS.js";const s="/img/2023.1.4/autoDomain.png",p={},m=e("h1",{id:"自动域名",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#自动域名"},[e("span",null,"自动域名")])],-1),u=e("h2",{id:"触发点",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#触发点"},[e("span",null,"触发点")])],-1),h=e("h2",{id:"项目名取值",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#项目名取值"},[e("span",null,"项目名取值")])],-1),_=e("p",null,"自动生成的配置项目名取自当前 API 的模块名。",-1),g=e("code",null,"Module-1",-1),f=e("code",null,"Module-2",-1),v=e("code",null,"Module-1",-1),y=e("code",null,"Module-2",-1),I=e("strong",null,"老版本",-1),M=d('

建议后期不要手动添加项目名,因为插件无法找到映射关系,这容易导致 API 保存的时候本该是用Module-2的域名,结果用了Module-1的域名。

所以自动域名的另外一个好使是API 域名的自动切换,如果没有则自动生成,如果有需改改进,开发者只需要修改域名值即可!插件将自动适配!

配置文件解析逻辑

  1. 读取application.yml或者bootstrap.yml。如果找到配置server.port或者server.servlet.context-path,则取该配置。
  2. 如果以上配置文件无法找到server.port或者server.servlet.context-path,则读取spring.profiles.active,作为变量env。接着寻找application-env.yml或者bootstrap-env.yml,寻找配置server.port或者server.servlet.context-path
  3. properties 文件逻辑类似
  4. 以上配置无法找到则port=8080,context-path=/
  5. 项目名称取自模块名
  6. spring.profiles.active不支持 Maven 变量读取解析,例如spring.profiles.active=@active.env@
  7. 针对历史已保存的 api,插件不做自动域名处理;针对新的 API,如果开关开启,将自动创建域名

配置开关

autoDomain

',6);function x(A,P){const l=n("Badge"),a=n("ColorIcon");return i(),r("div",null,[m,e("p",null,[t("版本要求: "),o(l,{text:"2023.1.4"})]),u,e("p",null,[t("方法左侧点击"),o(a,{icon:"restfulFastRequest"}),t("的时候,如果没有配置域名,则自动创建一个。")]),h,_,e("p",null,[t("为什么呢?因为比方说项目下有 2 个模块"),g,t("、"),f,t("的 API,如果"),v,t("的域名已存储,在"),y,t("下的 API 点击方法左侧点击"),o(a,{icon:"restfulFastRequest"}),t("的时候, "),I,t("做不到自动切换项目名。")]),M])}const D=c(p,[["render",x],["__file","autoDomain.html.vue"]]),k=JSON.parse('{"path":"/guide/features/autoDomain.html","title":"自动域名","lang":"zh-CN","frontmatter":{"description":"自动域名 版本要求: 触发点 方法左侧点击 项目名取值 自动生成的配置项目名取自当前 API 的模块名。 为什么呢?因为比方说项目下有 2 个模块Module-1、Module-2的 API,如果Module-1的域名已存储,在Module-2下的 API 点击方法左侧点击 建议后期不要手动添加项目名,因为插件无法找到映射关系,这容易导致 API 保存...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/autoDomain.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/autoDomain.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"自动域名"}],["meta",{"property":"og:description","content":"自动域名 版本要求: 触发点 方法左侧点击 项目名取值 自动生成的配置项目名取自当前 API 的模块名。 为什么呢?因为比方说项目下有 2 个模块Module-1、Module-2的 API,如果Module-1的域名已存储,在Module-2下的 API 点击方法左侧点击 建议后期不要手动添加项目名,因为插件无法找到映射关系,这容易导致 API 保存..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.1.4/autoDomain.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"自动域名"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"自动域名\\",\\"image\\":[\\"https://api-buddy.com/img/2023.1.4/autoDomain.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"触发点","slug":"触发点","link":"#触发点","children":[]},{"level":2,"title":"项目名取值","slug":"项目名取值","link":"#项目名取值","children":[]},{"level":2,"title":"配置文件解析逻辑","slug":"配置文件解析逻辑","link":"#配置文件解析逻辑","children":[]},{"level":2,"title":"配置开关","slug":"配置开关","link":"#配置开关","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.39,"words":416},"filePathRelative":"guide/features/autoDomain.md","localizedDate":"2024年5月31日","autoDesc":true}');export{D as comp,k as data}; diff --git a/assets/basicAuth-7MWcKYfl.js b/assets/basicAuth-7MWcKYfl.js new file mode 100644 index 000000000..0ee4c9d08 --- /dev/null +++ b/assets/basicAuth-7MWcKYfl.js @@ -0,0 +1 @@ +const s="/img/basicAuth.png";export{s as _}; diff --git a/assets/basicAuth.html-1cgnvvSy.js b/assets/basicAuth.html-1cgnvvSy.js new file mode 100644 index 000000000..69d5ca523 --- /dev/null +++ b/assets/basicAuth.html-1cgnvvSy.js @@ -0,0 +1 @@ +import{_ as e}from"./basicAuth-7MWcKYfl.js";import{_ as a,o as i,c as o,a as t}from"./app-8OZtYazS.js";const c={},s=t("h1",{id:"basic-auth",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#basic-auth"},[t("span",null,"Basic auth")])],-1),r=t("p",null,"功能: 用 Basic auth 的形式往 Headers 添加 Authorization 头",-1),n=t("p",null,[t("img",{src:e,alt:"basicAuth",loading:"lazy"})],-1),h=[s,r,n];function m(u,p){return i(),o("div",null,h)}const g=a(c,[["render",m],["__file","basicAuth.html.vue"]]),_=JSON.parse('{"path":"/guide/features/basicAuth.html","title":"Basic auth","lang":"zh-CN","frontmatter":{"description":"Basic auth 功能: 用 Basic auth 的形式往 Headers 添加 Authorization 头 basicAuth ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/basicAuth.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/basicAuth.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Basic auth"}],["meta",{"property":"og:description","content":"Basic auth 功能: 用 Basic auth 的形式往 Headers 添加 Authorization 头 basicAuth "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/basicAuth.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Basic auth"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Basic auth\\",\\"image\\":[\\"https://api-buddy.com/img/basicAuth.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.06,"words":18},"filePathRelative":"guide/features/basicAuth.md","localizedDate":"2024年5月31日","autoDesc":true}');export{g as comp,_ as data}; diff --git a/assets/basicAuth.html-I7ObjiG4.js b/assets/basicAuth.html-I7ObjiG4.js new file mode 100644 index 000000000..efc114eaf --- /dev/null +++ b/assets/basicAuth.html-I7ObjiG4.js @@ -0,0 +1 @@ +import{_ as e}from"./basicAuth-7MWcKYfl.js";import{_ as a,o as i,c as o,a as t}from"./app-8OZtYazS.js";const n={},c=t("h1",{id:"basic-auth",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#basic-auth"},[t("span",null,"Basic auth")])],-1),r=t("p",null,"Function: Adds an Authorization header to Headers in the form of a Basic auth",-1),s=t("p",null,[t("img",{src:e,alt:"basicAuth",loading:"lazy"})],-1),h=[c,r,s];function m(d,u){return i(),o("div",null,h)}const g=a(n,[["render",m],["__file","basicAuth.html.vue"]]),_=JSON.parse('{"path":"/en/guide/features/basicAuth.html","title":"Basic auth","lang":"en-US","frontmatter":{"description":"Basic auth Function: Adds an Authorization header to Headers in the form of a Basic auth basicAuth ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/basicAuth.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/basicAuth.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Basic auth"}],["meta",{"property":"og:description","content":"Basic auth Function: Adds an Authorization header to Headers in the form of a Basic auth basicAuth "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/basicAuth.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Basic auth"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Basic auth\\",\\"image\\":[\\"https://api-buddy.com/img/basicAuth.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.06,"words":18},"filePathRelative":"en/guide/features/basicAuth.md","localizedDate":"May 31, 2024","autoDesc":true}');export{g as comp,_ as data}; diff --git a/assets/batchEdit-_t2hwcoO.js b/assets/batchEdit-_t2hwcoO.js new file mode 100644 index 000000000..b85bd6b3a --- /dev/null +++ b/assets/batchEdit-_t2hwcoO.js @@ -0,0 +1 @@ +const t="/img/2023.1.6/batchEdit.png";export{t as _}; diff --git a/assets/batchEdit_en-t1SH_gNl.js b/assets/batchEdit_en-t1SH_gNl.js new file mode 100644 index 000000000..94a59f7ae --- /dev/null +++ b/assets/batchEdit_en-t1SH_gNl.js @@ -0,0 +1 @@ +const t="/img/2023.1.6/batchEdit_en.png";export{t as _}; diff --git a/assets/batchExportApiDoc-XZ7l86Mn.js b/assets/batchExportApiDoc-XZ7l86Mn.js new file mode 100644 index 000000000..1ba1fee26 --- /dev/null +++ b/assets/batchExportApiDoc-XZ7l86Mn.js @@ -0,0 +1 @@ +const o="/img/2022.2.2/batchExportApiDoc.png";export{o as _}; diff --git a/assets/batchExportApiDoc.html-0RigdmWN.js b/assets/batchExportApiDoc.html-0RigdmWN.js new file mode 100644 index 000000000..557b56663 --- /dev/null +++ b/assets/batchExportApiDoc.html-0RigdmWN.js @@ -0,0 +1 @@ +import{_ as o}from"./batchExportApiDoc-XZ7l86Mn.js";import{_ as a,r,o as c,c as p,a as t,d as i,b as n}from"./app-8OZtYazS.js";const m={},s=t("h1",{id:"批量导出-api-文档",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#批量导出-api-文档"},[t("span",null,"批量导出 API 文档")])],-1),d=t("p",null,"选中对应的文件夹,即可导出文件夹下的所有 API。",-1),l=t("p",null,[t("img",{src:o,alt:"batchExportApiDoc",loading:"lazy"})],-1);function h(g,u){const e=r("Badge");return c(),p("div",null,[s,t("p",null,[i("版本要求: "),n(e,{text:"2022.2.2"})]),d,l])}const y=a(m,[["render",h],["__file","batchExportApiDoc.html.vue"]]),b=JSON.parse('{"path":"/guide/features/batchExportApiDoc.html","title":"批量导出 API 文档","lang":"zh-CN","frontmatter":{"description":"批量导出 API 文档 版本要求: 选中对应的文件夹,即可导出文件夹下的所有 API。 batchExportApiDoc ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/batchExportApiDoc.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/batchExportApiDoc.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"批量导出 API 文档"}],["meta",{"property":"og:description","content":"批量导出 API 文档 版本要求: 选中对应的文件夹,即可导出文件夹下的所有 API。 batchExportApiDoc "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.2/batchExportApiDoc.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"批量导出 API 文档"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"批量导出 API 文档\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.2/batchExportApiDoc.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.12,"words":37},"filePathRelative":"guide/features/batchExportApiDoc.md","localizedDate":"2024年5月31日","autoDesc":true}');export{y as comp,b as data}; diff --git a/assets/batchExportApiDoc.html-Bde8qF5F.js b/assets/batchExportApiDoc.html-Bde8qF5F.js new file mode 100644 index 000000000..9b3327481 --- /dev/null +++ b/assets/batchExportApiDoc.html-Bde8qF5F.js @@ -0,0 +1 @@ +import{_ as o}from"./batchExportApiDoc-XZ7l86Mn.js";import{_ as a,r,o as c,c as p,a as t,d as n,b as i}from"./app-8OZtYazS.js";const d={},s=t("h1",{id:"batch-export-api-doc",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#batch-export-api-doc"},[t("span",null,"Batch export API doc")])],-1),l=t("p",null,"Please select the corresponding folder to export all APIs under it.",-1),m=t("p",null,[t("img",{src:o,alt:"batchExportApiDoc",loading:"lazy"})],-1);function h(u,g){const e=r("Badge");return c(),p("div",null,[s,t("p",null,[n("Version required: "),i(e,{text:"2022.2.2"})]),l,m])}const A=a(d,[["render",h],["__file","batchExportApiDoc.html.vue"]]),f=JSON.parse('{"path":"/en/guide/features/batchExportApiDoc.html","title":"Batch export API doc","lang":"en-US","frontmatter":{"description":"Batch export API doc Version required: Please select the corresponding folder to export all APIs under it. batchExportApiDoc ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/batchExportApiDoc.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/batchExportApiDoc.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Batch export API doc"}],["meta",{"property":"og:description","content":"Batch export API doc Version required: Please select the corresponding folder to export all APIs under it. batchExportApiDoc "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.2/batchExportApiDoc.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Batch export API doc"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Batch export API doc\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.2/batchExportApiDoc.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.08,"words":23},"filePathRelative":"en/guide/features/batchExportApiDoc.md","localizedDate":"May 31, 2024","autoDesc":true}');export{A as comp,f as data}; diff --git a/assets/bulkEdit.html-0JgZE661.js b/assets/bulkEdit.html-0JgZE661.js new file mode 100644 index 000000000..5494b94be --- /dev/null +++ b/assets/bulkEdit.html-0JgZE661.js @@ -0,0 +1,4 @@ +import{_ as a}from"./batchEdit_en-t1SH_gNl.js";import{_ as r,r as i,o,c as n,a as e,d,b as s,e as c}from"./app-8OZtYazS.js";const p={},l=e("h1",{id:"headers-batch-edit",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#headers-batch-edit"},[e("span",null,"Headers batch edit")])],-1),m=c(`

This feature allows importing header parameters directly from the browser's copy for use in the plugin.

1.Rows are separated by new lines
+2.Keys and values are separated by :
+3.Prepend // to any row you want to add but keep disabled
+

batchEdit

',3);function h(u,g){const t=i("Badge");return o(),n("div",null,[l,e("p",null,[d("Version required: "),s(t,{text:"2023.1.6"})]),m])}const f=r(p,[["render",h],["__file","bulkEdit.html.vue"]]),_=JSON.parse(`{"path":"/en/guide/features/bulkEdit.html","title":"Headers batch edit","lang":"en-US","frontmatter":{"description":"Headers batch edit Version required: This feature allows importing header parameters directly from the browser's copy for use in the plugin. batchEdit ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/bulkEdit.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/bulkEdit.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Headers batch edit"}],["meta",{"property":"og:description","content":"Headers batch edit Version required: This feature allows importing header parameters directly from the browser's copy for use in the plugin. batchEdit "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.1.6/batchEdit_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Headers batch edit"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Headers batch edit\\",\\"image\\":[\\"https://api-buddy.com/img/2023.1.6/batchEdit_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.22,"words":67},"filePathRelative":"en/guide/features/bulkEdit.md","localizedDate":"May 31, 2024","autoDesc":true}`);export{f as comp,_ as data}; diff --git a/assets/bulkEdit.html-1dc3Snf5.js b/assets/bulkEdit.html-1dc3Snf5.js new file mode 100644 index 000000000..e99333f78 --- /dev/null +++ b/assets/bulkEdit.html-1dc3Snf5.js @@ -0,0 +1,4 @@ +import{_ as a}from"./batchEdit-_t2hwcoO.js";import{_ as r,r as o,o as i,c as n,a as e,d,b as s,e as c}from"./app-8OZtYazS.js";const l={},p=e("h1",{id:"headers批量编辑",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#headers批量编辑"},[e("span",null,"Headers批量编辑")])],-1),m=c(`

此功能可以实现从浏览器直接复制header参数导入到插件

1.每组数据用换行符分隔
+2.key和value用:分隔
+3.在要添加但保持禁用状态的键前面加//
+

batchEdit

',3);function u(h,g){const t=o("Badge");return i(),n("div",null,[p,e("p",null,[d("版本要求: "),s(t,{text:"2023.1.6"})]),m])}const b=r(l,[["render",u],["__file","bulkEdit.html.vue"]]),f=JSON.parse('{"path":"/guide/features/bulkEdit.html","title":"Headers批量编辑","lang":"zh-CN","frontmatter":{"description":"Headers批量编辑 版本要求: 此功能可以实现从浏览器直接复制header参数导入到插件 batchEdit ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/bulkEdit.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/bulkEdit.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Headers批量编辑"}],["meta",{"property":"og:description","content":"Headers批量编辑 版本要求: 此功能可以实现从浏览器直接复制header参数导入到插件 batchEdit "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.1.6/batchEdit.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Headers批量编辑"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Headers批量编辑\\",\\"image\\":[\\"https://api-buddy.com/img/2023.1.6/batchEdit.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.29,"words":88},"filePathRelative":"guide/features/bulkEdit.md","localizedDate":"2024年5月31日","autoDesc":true}');export{b as comp,f as data}; diff --git a/assets/buy.html-0QOA6oRM.js b/assets/buy.html-0QOA6oRM.js new file mode 100644 index 000000000..c7c5c35c1 --- /dev/null +++ b/assets/buy.html-0QOA6oRM.js @@ -0,0 +1 @@ +import{_ as l,a as o,b as r,c,d,e as m,f as u,g}from"./accountLicense-k-i236gs.js";import{_ as h}from"./wechatGroup-zkZOzzsF.js";import{_ as b,r as i,o as y,c as _,b as a,a as e,d as t,e as s}from"./app-8OZtYazS.js";const f="/img/buy/activate.png",k={},v=e("p",null,[e("strong",null,"购买分为 2 种方式")],-1),x={href:"https://account.jetbrains.com/licenses",target:"_blank",rel:"noopener noreferrer"},z=e("li",null,"邮件模式: 直接使用 email 邮箱接收 license",-1),S=e("p",null,[e("strong",null,"注册 jetbrains 账号购买方式可以方便后续找 license,且不容易丢失")],-1),j={href:"https://plugins.jetbrains.com/docs/marketplace/how-to-buy-a-plugin.html",target:"_blank",rel:"noopener noreferrer"},B=s('

Step0: 前往插件激活页面

点击激活插件,当然你也可以先免费试用插件 30 天,点击 start trial。

Step1: 点击 Buy license

Step2: 选择一个套餐点击 Buy

  • 套餐 1: 按月计费订阅
  • 套餐 2: 按年计费订阅(推荐)

Step3: 邮箱确认(非 jetbrains 账号方式购买)

如果您没有注册 jetbrains 账号并登录,则会进入此页面,这边需要输入接受 license 的邮箱地址 点击 next 进入购买确认页面

Step4: 填写信息并点击支付宝或者微信扫码付款

Step5: 填写 License 信息激活插件

在线激活

点击 help->Register Plugins...->Add New License

需要登录 Jetbrains 账号

离线激活

',19),T={href:"https://account.jetbrains.com/licenses",target:"_blank",rel:"noopener noreferrer"},q=s('

  • 2.在 Activation code 中输入激活码

Tips💡

License 信息

请妥善保存好您的激活码信息,不要泄露证书信息

如果您还有其他疑问,请加入群聊联系我 ↓↓↓

wechat group

入正

',8);function w(N,L){const p=i("Badge"),n=i("ExternalLinkIcon");return y(),_("div",null,[a(p,{text:"❤️插件的发展离不开各位开发者的支持,感谢您支持原创,支持正版️❤️",color:"pink",vertical:"middle"}),v,e("ul",null,[e("li",null,[t("账号模式: 注册 "),e("a",x,[t("jetbrains 账号"),a(n)]),t(" 购买(推荐)")]),z]),S,e("p",null,[t("请参考 JetBrains 提供的 "),e("a",j,[t("文档"),a(n)]),t(",也可以参考以下作者提供的几个步骤。")]),B,e("ul",null,[e("li",null,[t("1."),e("a",T,[t("下载离线激活码"),a(n)])])]),q])}const D=b(k,[["render",w],["__file","buy.html.vue"]]),E=JSON.parse('{"path":"/guide/buy.html","title":"购买","lang":"zh-CN","frontmatter":{"title":"购买","icon":"buy","description":"","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/buy.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/buy.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"购买"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/buy/activate.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"购买"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"购买\\",\\"image\\":[\\"https://api-buddy.com/img/buy/activate.png\\",\\"https://api-buddy.com/img/buy/step1.png\\",\\"https://api-buddy.com/img/buy/step2.png\\",\\"https://api-buddy.com/img/buy/step3.png\\",\\"https://api-buddy.com/img/buy/step4.png\\",\\"https://api-buddy.com/img/buy/step5.png\\",\\"https://api-buddy.com/img/buy/offlineCodeDownload.png\\",\\"https://api-buddy.com/img/buy/offline.png\\",\\"https://api-buddy.com/img/buy/accountLicense.png\\",\\"https://api-buddy.com/img/wechatGroup.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Step0: 前往插件激活页面","slug":"step0-前往插件激活页面","link":"#step0-前往插件激活页面","children":[]},{"level":2,"title":"Step1: 点击 Buy license","slug":"step1-点击-buy-license","link":"#step1-点击-buy-license","children":[]},{"level":2,"title":"Step2: 选择一个套餐点击 Buy","slug":"step2-选择一个套餐点击-buy","link":"#step2-选择一个套餐点击-buy","children":[]},{"level":2,"title":"Step3: 邮箱确认(非 jetbrains 账号方式购买)","slug":"step3-邮箱确认-非-jetbrains-账号方式购买","link":"#step3-邮箱确认-非-jetbrains-账号方式购买","children":[]},{"level":2,"title":"Step4: 填写信息并点击支付宝或者微信扫码付款","slug":"step4-填写信息并点击支付宝或者微信扫码付款","link":"#step4-填写信息并点击支付宝或者微信扫码付款","children":[]},{"level":2,"title":"Step5: 填写 License 信息激活插件","slug":"step5-填写-license-信息激活插件","link":"#step5-填写-license-信息激活插件","children":[]},{"level":2,"title":"Tips💡","slug":"tips💡","link":"#tips💡","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.41,"words":424},"filePathRelative":"guide/buy.md","localizedDate":"2024年5月31日","autoDesc":true}');export{D as comp,E as data}; diff --git a/assets/buy.html-dM5GFkxl.js b/assets/buy.html-dM5GFkxl.js new file mode 100644 index 000000000..19c591642 --- /dev/null +++ b/assets/buy.html-dM5GFkxl.js @@ -0,0 +1 @@ +import{_ as s,a as p,b as c,c as r,d,e as m,f as u,g as h}from"./accountLicense-k-i236gs.js";import{_ as g,r as n,o as y,c as f,b as a,a as e,d as t,e as o}from"./app-8OZtYazS.js";const _="/img/buy/activate_en.png",b={},k=e("p",null,[e("strong",null,"Two ways to buy")],-1),v={href:"https://account.jetbrains.com/licenses",target:"_blank",rel:"noopener noreferrer"},B=e("li",null,"Email mode: Receive the license directly by email",-1),x=e("p",null,[e("strong",null,"Registering a JetBrains account to purchase can facilitate the follow-up to find the license, and it is not easy to lose.")],-1),S={href:"https://plugins.jetbrains.com/docs/marketplace/how-to-buy-a-plugin.html",target:"_blank",rel:"noopener noreferrer"},T=o('

Step0: Go to the plugin activation page

Click Activate Plugin. Of course, you can also try the plugin first. It's free for 30 days. Please click start trial.

Step1: Click Buy license

step2: Choose a package

  • package 1: Monthly Subscription
  • package 2: Yearly Subscription(Recommended)

Step3: Email confirmation(Email mode)

If you have not registered a JetBrains account and logged in, you will enter this page, where you need to enter the email address that accepts the license. Click next to enter the purchase confirmation page.

Step4: Type in the information and pay

Step5: Type in the License information to activate the plugin

Online activation

Click help->Register Plugins...->Add New License

Log in to your JetBrains account.

Offline activation

',18),w={href:"https://account.jetbrains.com/licenses",target:"_blank",rel:"noopener noreferrer"},z=o('

  • 2.Enter the activation code in the Activation code

Buy

Tips💡

License info

Please keep your activation code information safe and do not leak the License information.

',6),q={href:"https://join.slack.com/t/restfulfastrequest/shared_invite/zt-1we57vum8-TALhTHI2uNmPF2bx1NDyWw",target:"_blank",rel:"noopener noreferrer"},P=e("img",{src:"https://img.shields.io/static/v1?label=Slack&message=Restful Fast Request&logo=slack&color=38B580",alt:"Slack",loading:"lazy"},null,-1);function R(C,L){const l=n("Badge"),i=n("ExternalLinkIcon");return y(),f("div",null,[a(l,{text:"❤️Thanks for supporting the original, support official edition.❤️",color:"pink",vertical:"middle"}),k,e("ul",null,[e("li",null,[t("Account mode: Management via "),e("a",v,[t("JetBrains Account"),a(i)]),t("(Recommend)")]),B]),x,e("p",null,[e("a",S,[t("Documentation"),a(i)]),t(" how to buy a plugin provided by JetBrains, or you can refer to the following steps.")]),T,e("ul",null,[e("li",null,[t("1."),e("a",w,[t("Download activation code"),a(i)])])]),z,e("p",null,[e("strong",null,[t("If you have some questions, please join "),e("a",q,[P,a(i)]),t(" and contact me")])])])}const j=g(b,[["render",R],["__file","buy.html.vue"]]),A=JSON.parse('{"path":"/en/guide/buy.html","title":"Buy Plugin","lang":"en-US","frontmatter":{"title":"Buy Plugin","icon":"buy","description":"","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/buy.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/buy.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Buy Plugin"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/buy/activate_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Buy Plugin"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Buy Plugin\\",\\"image\\":[\\"https://api-buddy.com/img/buy/activate_en.png\\",\\"https://api-buddy.com/img/buy/step1.png\\",\\"https://api-buddy.com/img/buy/step2.png\\",\\"https://api-buddy.com/img/buy/step3.png\\",\\"https://api-buddy.com/img/buy/step4.png\\",\\"https://api-buddy.com/img/buy/step5.png\\",\\"https://api-buddy.com/img/buy/offlineCodeDownload.png\\",\\"https://api-buddy.com/img/buy/offline.png\\",\\"https://api-buddy.com/img/buy/accountLicense.png\\",\\"https://img.shields.io/static/v1?label=Slack&message=Restful%20Fast%20Request&logo=slack&color=38B580\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Step0: Go to the plugin activation page","slug":"step0-go-to-the-plugin-activation-page","link":"#step0-go-to-the-plugin-activation-page","children":[]},{"level":2,"title":"Step1: Click Buy license","slug":"step1-click-buy-license","link":"#step1-click-buy-license","children":[]},{"level":2,"title":"step2: Choose a package","slug":"step2-choose-a-package","link":"#step2-choose-a-package","children":[]},{"level":2,"title":"Step3: Email confirmation(Email mode)","slug":"step3-email-confirmation-email-mode","link":"#step3-email-confirmation-email-mode","children":[]},{"level":2,"title":"Step4: Type in the information and pay","slug":"step4-type-in-the-information-and-pay","link":"#step4-type-in-the-information-and-pay","children":[]},{"level":2,"title":"Step5: Type in the License information to activate the plugin","slug":"step5-type-in-the-license-information-to-activate-the-plugin","link":"#step5-type-in-the-license-information-to-activate-the-plugin","children":[]},{"level":2,"title":"Tips💡","slug":"tips💡","link":"#tips💡","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1,"words":300},"filePathRelative":"en/guide/buy.md","localizedDate":"May 31, 2024","autoDesc":true}');export{j as comp,A as data}; diff --git a/assets/chooseEnvironmentVariable-IX_CYJqC.js b/assets/chooseEnvironmentVariable-IX_CYJqC.js new file mode 100644 index 000000000..cc8aad9e9 --- /dev/null +++ b/assets/chooseEnvironmentVariable-IX_CYJqC.js @@ -0,0 +1 @@ +const n="/img/2023.1.8/environment.png",o="/img/2023.1.8/useEnvironmentVariable.png",i="/img/2023.1.8/chooseEnvironmentVariable.png";export{n as _,o as a,i as b}; diff --git a/assets/clear-qHRgcLZS.js b/assets/clear-qHRgcLZS.js new file mode 100644 index 000000000..6885dab9d --- /dev/null +++ b/assets/clear-qHRgcLZS.js @@ -0,0 +1 @@ +const o="/img/2022.2.6/clear.png";export{o as _}; diff --git a/assets/clear.html-3xwO0JDb.js b/assets/clear.html-3xwO0JDb.js new file mode 100644 index 000000000..54ad600a9 --- /dev/null +++ b/assets/clear.html-3xwO0JDb.js @@ -0,0 +1 @@ +import{_ as a}from"./clear-qHRgcLZS.js";import{_ as r,r as n,o,c,a as e,d as i,b as l}from"./app-8OZtYazS.js";const s={},p=e("h1",{id:"clear",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#clear"},[e("span",null,"Clear")])],-1),m=e("p",null,"This function helps clear parameters and content in the field.",-1),d=e("p",null,[e("img",{src:a,alt:"clear",loading:"lazy"})],-1);function h(u,g){const t=n("Badge");return o(),c("div",null,[p,e("p",null,[i("Version required: "),l(t,{text:"2022.2.6"})]),m,d])}const y=r(s,[["render",h],["__file","clear.html.vue"]]),T=JSON.parse('{"path":"/en/guide/features/clear.html","title":"Clear","lang":"en-US","frontmatter":{"description":"Clear Version required: This function helps clear parameters and content in the field. clear ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/clear.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/clear.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Clear"}],["meta",{"property":"og:description","content":"Clear Version required: This function helps clear parameters and content in the field. clear "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.6/clear.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Clear"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Clear\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.6/clear.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.06,"words":19},"filePathRelative":"en/guide/features/clear.md","localizedDate":"May 31, 2024","autoDesc":true}');export{y as comp,T as data}; diff --git a/assets/clear.html-xWGlbH8o.js b/assets/clear.html-xWGlbH8o.js new file mode 100644 index 000000000..22135476c --- /dev/null +++ b/assets/clear.html-xWGlbH8o.js @@ -0,0 +1 @@ +import{_ as a}from"./clear-qHRgcLZS.js";import{_ as r,r as o,o as n,c,a as e,d as l,b as i}from"./app-8OZtYazS.js";const m={},p=e("h1",{id:"clear",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#clear"},[e("span",null,"Clear")])],-1),s=e("p",null,"此功能帮助清除参数和内容",-1),d=e("p",null,[e("img",{src:a,alt:"clear",loading:"lazy"})],-1);function g(u,h){const t=o("Badge");return n(),c("div",null,[p,e("p",null,[l("版本要求: "),i(t,{text:"2022.2.6"})]),s,d])}const f=r(m,[["render",g],["__file","clear.html.vue"]]),C=JSON.parse('{"path":"/guide/features/clear.html","title":"Clear","lang":"zh-CN","frontmatter":{"description":"Clear 版本要求: 此功能帮助清除参数和内容 clear ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/clear.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/clear.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Clear"}],["meta",{"property":"og:description","content":"Clear 版本要求: 此功能帮助清除参数和内容 clear "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.6/clear.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Clear"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Clear\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.6/clear.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.08,"words":23},"filePathRelative":"guide/features/clear.md","localizedDate":"2024年5月31日","autoDesc":true}');export{f as comp,C as data}; diff --git a/assets/commonHeader-O9g0FG--.js b/assets/commonHeader-O9g0FG--.js new file mode 100644 index 000000000..be02ad230 --- /dev/null +++ b/assets/commonHeader-O9g0FG--.js @@ -0,0 +1 @@ +const o="/img/2022.2.7/commonHeader.gif";export{o as _}; diff --git a/assets/commonHeader.html-B63z18ER.js b/assets/commonHeader.html-B63z18ER.js new file mode 100644 index 000000000..d42fb0ace --- /dev/null +++ b/assets/commonHeader.html-B63z18ER.js @@ -0,0 +1 @@ +import{_ as o}from"./commonHeader-O9g0FG--.js";import{_ as a,r,o as n,c as m,a as e,d as c,b as i}from"./app-8OZtYazS.js";const d={},s=e("h1",{id:"常用头参数",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#常用头参数"},[e("span",null,"常用头参数")])],-1),p=e("p",null,"此功能帮助快速添加一些比较常用的 Header 参数,支持多个选择后点击添加",-1),l=e("p",null,[e("img",{src:o,alt:"commonHeader",loading:"lazy"})],-1);function g(u,h){const t=r("Badge");return n(),m("div",null,[s,e("p",null,[c("版本要求: "),i(t,{text:"2022.2.7"})]),p,l])}const y=a(d,[["render",g],["__file","commonHeader.html.vue"]]),H=JSON.parse('{"path":"/guide/features/commonHeader.html","title":"常用头参数","lang":"zh-CN","frontmatter":{"description":"常用头参数 版本要求: 此功能帮助快速添加一些比较常用的 Header 参数,支持多个选择后点击添加 commonHeader ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/commonHeader.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/commonHeader.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"常用头参数"}],["meta",{"property":"og:description","content":"常用头参数 版本要求: 此功能帮助快速添加一些比较常用的 Header 参数,支持多个选择后点击添加 commonHeader "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.7/commonHeader.gif"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"常用头参数"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"常用头参数\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.7/commonHeader.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.15,"words":45},"filePathRelative":"guide/features/commonHeader.md","localizedDate":"2024年5月31日","autoDesc":true}');export{y as comp,H as data}; diff --git a/assets/commonHeader.html-j4bLmx_u.js b/assets/commonHeader.html-j4bLmx_u.js new file mode 100644 index 000000000..c8b7c55a5 --- /dev/null +++ b/assets/commonHeader.html-j4bLmx_u.js @@ -0,0 +1 @@ +import{_ as o,r as a,o as n,c as r,a as e,d as m,b as d}from"./app-8OZtYazS.js";const c="/img/2022.2.7/commonHeader_en.png",i={},s=e("h1",{id:"common-header",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#common-header"},[e("span",null,"Common header")])],-1),p=e("p",null,"This function helps to quickly add some standard Header parameters and supports multiple selections.",-1),l=e("p",null,[e("img",{src:c,alt:"commonHeader",loading:"lazy"})],-1);function u(h,g){const t=a("Badge");return n(),r("div",null,[s,e("p",null,[m("Version required: "),d(t,{text:"2022.2.7"})]),p,l])}const y=o(i,[["render",u],["__file","commonHeader.html.vue"]]),f=JSON.parse('{"path":"/en/guide/features/commonHeader.html","title":"Common header","lang":"en-US","frontmatter":{"description":"Common header Version required: This function helps to quickly add some standard Header parameters and supports multiple selections. commonHeader ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/commonHeader.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/commonHeader.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Common header"}],["meta",{"property":"og:description","content":"Common header Version required: This function helps to quickly add some standard Header parameters and supports multiple selections. commonHeader "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.7/commonHeader_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Common header"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Common header\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.7/commonHeader_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.08,"words":24},"filePathRelative":"en/guide/features/commonHeader.md","localizedDate":"May 31, 2024","autoDesc":true}');export{y as comp,f as data}; diff --git a/assets/compare.snippet.html-yeBleQ9-.js b/assets/compare.snippet.html-yeBleQ9-.js new file mode 100644 index 000000000..e46e8259b --- /dev/null +++ b/assets/compare.snippet.html-yeBleQ9-.js @@ -0,0 +1 @@ +import{_ as n,r as o,o as k,c as m,a as e,b as t,d as s,w as i,e as d}from"./app-8OZtYazS.js";const h={},r={class:"compare-wrapper",style:{display:"flex"}},b={class:"hint-container info",style:{"margin-right":"15px",width:"50%"}},_={class:"compare-title"},u=e("p",null,[e("strong",null,"Deeply optimized leading smart API debugging plugin")],-1),p={class:"task-list-container"},f=d('
  • ',5),g={class:"task-list-item"},x=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-5",checked:"checked",disabled:"disabled"},null,-1),y={class:"task-list-item-label",for:"task-item-5"},v={class:"task-list-item"},A=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-6",checked:"checked",disabled:"disabled"},null,-1),P={class:"task-list-item-label",for:"task-item-6"},I={class:"task-list-item"},w=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-7",checked:"checked",disabled:"disabled"},null,-1),q={class:"task-list-item-label",for:"task-item-7"},S={class:"task-list-item"},D=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-8",checked:"checked",disabled:"disabled"},null,-1),C={class:"task-list-item-label",for:"task-item-8"},F={class:"task-list-item"},R=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-9",checked:"checked",disabled:"disabled"},null,-1),N={class:"task-list-item-label",for:"task-item-9"},E={class:"task-list-item"},T=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-10",checked:"checked",disabled:"disabled"},null,-1),U={class:"task-list-item-label",for:"task-item-10"},B={class:"task-list-item"},V=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-11",checked:"checked",disabled:"disabled"},null,-1),j={class:"task-list-item-label",for:"task-item-11"},z={class:"task-list-item"},H=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-12",checked:"checked",disabled:"disabled"},null,-1),M={class:"task-list-item-label",for:"task-item-12"},L={class:"task-list-item"},W=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-13",checked:"checked",disabled:"disabled"},null,-1),G={class:"task-list-item-label",for:"task-item-13"},O={class:"task-list-item"},Z=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-14",checked:"checked",disabled:"disabled"},null,-1),J={class:"task-list-item-label",for:"task-item-14"},K={class:"task-list-item"},Y=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-15",checked:"checked",disabled:"disabled"},null,-1),Q={class:"task-list-item-label",for:"task-item-15"},X={class:"task-list-item"},$=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-16",checked:"checked",disabled:"disabled"},null,-1),ee={class:"task-list-item-label",for:"task-item-16"},te={class:"task-list-item"},se=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-17",checked:"checked",disabled:"disabled"},null,-1),ie={class:"task-list-item-label",for:"task-item-17"},le={class:"task-list-item"},ae=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-18",checked:"checked",disabled:"disabled"},null,-1),ce={class:"task-list-item-label",for:"task-item-18"},oe={class:"task-list-item"},de=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-19",checked:"checked",disabled:"disabled"},null,-1),ne={class:"task-list-item-label",for:"task-item-19"},ke={class:"task-list-item"},me=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-20",checked:"checked",disabled:"disabled"},null,-1),he={class:"task-list-item-label",for:"task-item-20"},re={class:"task-list-item"},be=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-21",checked:"checked",disabled:"disabled"},null,-1),_e={class:"task-list-item-label",for:"task-item-21"},ue={class:"task-list-item"},pe=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-22",checked:"checked",disabled:"disabled"},null,-1),fe={class:"task-list-item-label",for:"task-item-22"},ge={class:"task-list-item"},xe=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-23",checked:"checked",disabled:"disabled"},null,-1),ye={class:"task-list-item-label",for:"task-item-23"},ve={class:"task-list-item"},Ae=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-24",checked:"checked",disabled:"disabled"},null,-1),Pe={class:"task-list-item-label",for:"task-item-24"},Ie={class:"task-list-item"},we=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-25",checked:"checked",disabled:"disabled"},null,-1),qe={class:"task-list-item-label",for:"task-item-25"},Se={class:"task-list-item"},De=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-26",checked:"checked",disabled:"disabled"},null,-1),Ce={class:"task-list-item-label",for:"task-item-26"},Fe={class:"task-list-item"},Re=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-27",checked:"checked",disabled:"disabled"},null,-1),Ne={class:"task-list-item-label",for:"task-item-27"},Ee={class:"task-list-item"},Te=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-28",checked:"checked",disabled:"disabled"},null,-1),Ue={class:"task-list-item-label",for:"task-item-28"},Be={class:"task-list-item"},Ve=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-29",checked:"checked",disabled:"disabled"},null,-1),je={class:"task-list-item-label",for:"task-item-29"},ze={class:"task-list-item"},He=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-30",checked:"checked",disabled:"disabled"},null,-1),Me={class:"task-list-item-label",for:"task-item-30"},Le={class:"task-list-item"},We=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-31",checked:"checked",disabled:"disabled"},null,-1),Ge={class:"task-list-item-label",for:"task-item-31"},Oe={class:"task-list-item"},Ze=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-32",checked:"checked",disabled:"disabled"},null,-1),Je={class:"task-list-item-label",for:"task-item-32"},Ke={class:"task-list-item"},Ye=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-33",checked:"checked",disabled:"disabled"},null,-1),Qe={class:"task-list-item-label",for:"task-item-33"},Xe={class:"task-list-item"},$e=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-34",checked:"checked",disabled:"disabled"},null,-1),et={class:"task-list-item-label",for:"task-item-34"},tt={class:"hint-container tip",style:{"margin-left":"15px",width:"50%"}},st={class:"compare-title"},it=e("p",null,[e("strong",null,"Basic API debugging plugin")],-1),lt=d('
    ',1);function at(ct,ot){const l=o("ColorIcon"),c=o("Badge"),a=o("RouteLink");return k(),m("div",null,[e("div",r,[e("div",b,[e("div",_,[t(l,{icon:"restfulFastRequest"}),s("Paid Version ")]),u,t(c,{vertical:"baseline",color:"#FC801D"},{default:i(()=>[s("IDEA 2021.2")]),_:1}),t(c,{vertical:"baseline",color:"#21D789"},{default:i(()=>[s("Humanize")]),_:1}),t(c,{vertical:"baseline",color:"#FF318C"},{default:i(()=>[s("Advanced")]),_:1}),e("ul",p,[f,e("li",g,[x,e("label",y,[t(a,{to:"/en/guide/features/apiToPostman.html"},{default:i(()=>[t(l,{icon:"postman"}),s(" Export to Postman")]),_:1})])]),e("li",v,[A,e("label",P,[t(a,{to:"/en/guide/teamwork.html"},{default:i(()=>[t(l,{icon:"restfulFastRequest"}),s(" Team work support")]),_:1})])]),e("li",I,[w,e("label",q,[t(a,{to:"/en/guide/features/makeIconMove.html"},{default:i(()=>[t(l,{icon:"restfulFastRequest"}),s(" Funny icon")]),_:1})])]),e("li",S,[D,e("label",C,[t(a,{to:"/en/guide/features/script.html"},{default:i(()=>[t(l,{icon:"scriptNew"}),s(" Script")]),_:1})])]),e("li",F,[R,e("label",N,[t(a,{to:"/en/guide/features/ai.html"},{default:i(()=>[t(l,{icon:"openai"}),s(" OpenAI API Optimizing fields")]),_:1})])]),e("li",E,[T,e("label",U,[t(a,{to:"/en/guide/features/projectValueConfig.html"},{default:i(()=>[t(l,{icon:"quanjucanshu"}),s(" Project-level config")]),_:1})])]),e("li",B,[V,e("label",j,[t(a,{to:"/en/guide/features/environment.html"},{default:i(()=>[t(l,{icon:"environment"}),s(" Environment")]),_:1})])]),e("li",z,[H,e("label",M,[t(a,{to:"/en/guide/features/projectLevelDomainConfig.html"},{default:i(()=>[t(l,{icon:"domainConfigNew"}),s(" Yaml、Properties domain parse")]),_:1})])]),e("li",L,[W,e("label",G,[t(a,{to:"/en/guide/features/stopRequest.html"},{default:i(()=>[t(l,{icon:"stop"}),s(" Stop API request")]),_:1})])]),e("li",O,[Z,e("label",J,[t(a,{to:"/en/guide/features/navigateCurrentMethod.html"},{default:i(()=>[t(l,{icon:"localScope"}),s(" Navigate to current method")]),_:1})])]),e("li",K,[Y,e("label",Q,[t(a,{to:"/en/guide/features/apiGroup.html"},{default:i(()=>[t(l,{icon:"saveGroup"}),t(l,{icon:"apiParamGroupNew"}),s(" API grouping")]),_:1})])]),e("li",X,[$,e("label",ee,[t(a,{to:"/en/guide/features/tempRequest.html"},{default:i(()=>[t(l,{icon:"saveTemp"}),s(" Temporary request")]),_:1})])]),e("li",te,[se,e("label",ie,[t(a,{to:"/en/guide/features/clear.html"},{default:i(()=>[t(l,{icon:"clearNew"}),s(" Clear params")]),_:1})])]),e("li",le,[ae,e("label",ce,[t(a,{to:"/en/guide/features/clear.html"},{default:i(()=>[t(l,{icon:"import"}),s(" cURL import")]),_:1})])]),e("li",oe,[de,e("label",ne,[t(a,{to:"/en/guide/features/copyUrl.html"},{default:i(()=>[t(l,{icon:"urlCopy"}),s(" Url copy")]),_:1})])]),e("li",ke,[me,e("label",he,[t(a,{to:"/en/guide/features/historyRequest.html"},{default:i(()=>[t(l,{icon:"historyNew"}),s(" History request")]),_:1})])]),e("li",re,[be,e("label",_e,[t(a,{to:"/en/guide/features/apiDocSync.html"},{default:i(()=>[t(l,{icon:"github"}),t(l,{icon:"gitee"}),t(l,{icon:"gitlab"}),s(" API document sync")]),_:1})])]),e("li",ue,[pe,e("label",fe,[t(a,{to:"/en/guide/features/shareApiDoc.html"},{default:i(()=>[t(l,{icon:"markdown"}),s(" API document sharing")]),_:1})])]),e("li",ge,[xe,e("label",ye,[t(a,{to:"/en/guide/features/fullScreen.html"},{default:i(()=>[t(l,{icon:"fullScreen"}),s(" FullScreen")]),_:1})])]),e("li",ve,[Ae,e("label",Pe,[t(a,{to:"/en/guide/features/commonHeader.html"},{default:i(()=>[t(l,{icon:"commonHeaderNew"}),s(" Common header")]),_:1})])]),e("li",Ie,[we,e("label",qe,[t(a,{to:"/en/guide/features/htmlPreview.html"},{default:i(()=>[t(l,{icon:"chrome"}),s(" Html preview")]),_:1})])]),e("li",Se,[De,e("label",Ce,[t(a,{to:"/en/guide/features/apiImportExport.html"},{default:i(()=>[t(l,{icon:"export"}),s(" APIs import and export")]),_:1})])]),e("li",Fe,[Re,e("label",Ne,[t(a,{to:"/en/guide/features/batchExportApiDoc.html"},{default:i(()=>[t(l,{icon:"markdown"}),s(" Batch export API doc")]),_:1})])]),e("li",Ee,[Te,e("label",Ue,[t(a,{to:"/en/guide/features/swaggerDefaultValueParse.html"},{default:i(()=>[t(l,{icon:"swagger"}),s(" Swagger default value parsing support")]),_:1})])]),e("li",Be,[Ve,e("label",je,[t(a,{to:"/en/guide/features/autoDescription.html"},{default:i(()=>[t(l,{icon:"java"}),s(" Auto Description")]),_:1})])]),e("li",ze,[He,e("label",Me,[t(a,{to:"/en/guide/features/apiPreview.html"},{default:i(()=>[t(l,{icon:"restfulFastRequest"}),s(" API list preview<")]),_:1})])]),e("li",Le,[We,e("label",Ge,[t(a,{to:"/en/guide/features/apiCommentPreview.html"},{default:i(()=>[t(l,{icon:"class"}),s(" Api 注释预览")]),_:1})])]),e("li",Oe,[Ze,e("label",Je,[t(a,{to:"/en/guide/features/autoDomain.html"},{default:i(()=>[t(l,{icon:"restfulFastRequest"}),s(" Auto domain")]),_:1})])]),e("li",Ke,[Ye,e("label",Qe,[t(a,{to:"/en/guide/features/annualReport.html"},{default:i(()=>[t(l,{icon:"analyseNew"}),s(" Annual report")]),_:1})])]),e("li",Xe,[$e,e("label",et,[t(a,{to:"/en/guide/features/"},{default:i(()=>[s("More...")]),_:1})])])])]),e("div",tt,[e("div",st,[t(l,{icon:"restfulFastRequest1"}),s("Free version ")]),it,t(c,{vertical:"baseline",color:"#FE2857"},{default:i(()=>[s("IDEA 2020.3~2021.1.3")]),_:1}),t(c,{vertical:"baseline",color:"#07C3F2"},{default:i(()=>[s("Basic usage")]),_:1}),lt])])])}const nt=n(h,[["render",at],["__file","compare.snippet.html.vue"]]),kt=JSON.parse('{"path":"/en/compare.snippet.html","title":"","lang":"en-US","frontmatter":{"description":" Deeply optimized leading smart API debugging plugin API generation(user-friendly generation strategy) API manager SearchEveryWhere (Support api name query) cUrl copy API naviga...","head":[["meta",{"property":"og:url","content":"https://api-buddy.com/en/compare.snippet.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:description","content":" Deeply optimized leading smart API debugging plugin API generation(user-friendly generation strategy) API manager SearchEveryWhere (Support api name query) cUrl copy API naviga..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.37,"words":411},"filePathRelative":"en/compare.snippet.md","localizedDate":"May 31, 2024","autoDesc":true}');export{nt as comp,kt as data}; diff --git a/assets/concatGroup.html-BU3ixvVv.js b/assets/concatGroup.html-BU3ixvVv.js new file mode 100644 index 000000000..2ca069459 --- /dev/null +++ b/assets/concatGroup.html-BU3ixvVv.js @@ -0,0 +1 @@ +import{_ as a}from"./twitter-vJUFHWuk.js";import{_ as n}from"./slack-roTTHLlw.js";import{_ as l,r as s,o as r,c as i,a as t,b as o}from"./app-8OZtYazS.js";const c={},m=t("p",null,"Join and follow us to solve your question ❤️❤️❤️",-1),p={href:"https://twitter.com/FastRequest666",target:"_blank",rel:"noopener noreferrer"},d=t("img",{src:"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34",alt:"twitter",loading:"lazy"},null,-1),u={href:"https://join.slack.com/t/restfulfastrequest/shared_invite/zt-1we57vum8-TALhTHI2uNmPF2bx1NDyWw",target:"_blank",rel:"noopener noreferrer"},g=t("img",{src:"https://img.shields.io/static/v1?label=Slack&message=Restful Fast Request&logo=slack&color=38B580",alt:"Slack",loading:"lazy"},null,-1),h=t("tbody",null,[t("tr",null,[t("td",null,[t("img",{src:a,alt:"twitter",loading:"lazy"})]),t("td",null,[t("img",{src:n,alt:"telegram",loading:"lazy"})])])],-1);function _(y,f){const e=s("ExternalLinkIcon");return r(),i("div",null,[m,t("table",null,[t("thead",null,[t("tr",null,[t("th",null,[t("a",p,[d,o(e)])]),t("th",null,[t("a",u,[g,o(e)])])])]),h])])}const v=l(c,[["render",_],["__file","concatGroup.html.vue"]]),q=JSON.parse('{"path":"/en/guide/concatGroup.html","title":"Contacts","lang":"en-US","frontmatter":{"icon":"contactGroup","title":"Contacts","description":"Join and follow us to solve your question ❤️❤️❤️ ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/concatGroup.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/concatGroup.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Contacts"}],["meta",{"property":"og:description","content":"Join and follow us to solve your question ❤️❤️❤️ "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Contacts"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Contacts\\",\\"image\\":[\\"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34\\",\\"https://img.shields.io/static/v1?label=Slack&message=Restful%20Fast%20Request&logo=slack&color=38B580\\",\\"https://api-buddy.com/img/twitter.png\\",\\"https://api-buddy.com/img/slack.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.15,"words":46},"filePathRelative":"en/guide/concatGroup.md","localizedDate":"May 31, 2024","autoDesc":true}');export{v as comp,q as data}; diff --git a/assets/concatGroup.html-CxO0s7Lh.js b/assets/concatGroup.html-CxO0s7Lh.js new file mode 100644 index 000000000..77f8749a5 --- /dev/null +++ b/assets/concatGroup.html-CxO0s7Lh.js @@ -0,0 +1 @@ +import{_ as s}from"./wechatGroup-zkZOzzsF.js";import{_ as i}from"./pluginDevelopGroup-jTY5h0OX.js";import{_ as r,r as l,o as c,c as m,a as t,d as e,b as o,w as p}from"./app-8OZtYazS.js";const g={},d=t("strong",null,"加入微信群购买享折扣️",-1),h=t("li",null,"群里全都是 Javaer,经常会讨论一些技术问题,热点新闻,跳槽,吐槽等,可以帮助你学到一些东西。",-1),u=t("li",null,[e("如果群二维码"),t("strong",null,"过期"),e("请直接添加二维码下方作者微信")],-1),_={href:"https://join.slack.com/t/restfulfastrequest/shared_invite/zt-1we57vum8-TALhTHI2uNmPF2bx1NDyWw",target:"_blank",rel:"noopener noreferrer"},y=t("img",{src:"https://img.shields.io/static/v1?label=Slack&message=Restful Fast Request&logo=slack&color=38B580",alt:"Slack",loading:"lazy"},null,-1),f=t("thead",null,[t("tr",null,[t("th",{style:{"text-align":"center"}},[t("img",{src:"https://img.shields.io/static/v1?label=wechat&message=微信技术群&logo=wechat&color=07C160",alt:"微信技术群",loading:"lazy"})]),t("th",{style:{"text-align":"center"}},[t("img",{src:"https://img.shields.io/static/v1?label=wechat&message=插件开发技术群&logo=wechat&color=087CFA",alt:"插件开发技术群",loading:"lazy"})])])],-1),b=t("tr",null,[t("td",{style:{"text-align":"center"}},[t("img",{src:s,alt:"wechat group",loading:"lazy"})]),t("td",{style:{"text-align":"center"}},[t("img",{src:i,alt:"插件开发技术群",loading:"lazy"})])],-1),k=t("td",{style:{"text-align":"center"}},[e("如果扫码失败,请直接搜微信号"),t("mark",null,"FastRequest99")],-1),v={style:{"text-align":"center"}},w={href:"https://plugins.jetbrains.com/plugin/24920-iblog",target:"_blank",rel:"noopener noreferrer"},x={href:"https://plugins.jetbrains.com/plugin/24576-bean-assistant",target:"_blank",rel:"noopener noreferrer"},R=t("br",null,null,-1);function q(z,G){const n=l("RouteLink"),a=l("ExternalLinkIcon");return c(),m("div",null,[t("ol",null,[t("li",null,[d,e(", 教程已放群公告,不定期发放 license "),o(n,{to:"/guide/activity.html"},{default:p(()=>[e("福利")]),_:1}),e("以及活动通告")]),h,u]),t("p",null,[t("a",_,[y,o(a)])]),t("table",null,[f,t("tbody",null,[b,t("tr",null,[k,t("td",v,[e("开发出类似的"),t("a",w,[e("iBlog"),o(a)]),e("、"),t("a",x,[e("Bean Assistant"),o(a)]),R,e("的插件教学,如果你也想开发插件请进群")])])])])])}const F=r(g,[["render",q],["__file","concatGroup.html.vue"]]),N=JSON.parse('{"path":"/guide/concatGroup.html","title":"群聊","lang":"zh-CN","frontmatter":{"icon":"contactGroup","title":"群聊","description":" 加入微信群购买享折扣️, 教程已放群公告,不定期发放 license 以及活动通告 群里全都是 Javaer,经常会讨论一些技术问题,热点新闻,跳槽,吐槽等,可以帮助你学到一些东西。 如果群二维码过期请直接添加二维码下方作者微信 Slack ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/concatGroup.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/concatGroup.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"群聊"}],["meta",{"property":"og:description","content":" 加入微信群购买享折扣️, 教程已放群公告,不定期发放 license 以及活动通告 群里全都是 Javaer,经常会讨论一些技术问题,热点新闻,跳槽,吐槽等,可以帮助你学到一些东西。 如果群二维码过期请直接添加二维码下方作者微信 Slack "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://img.shields.io/static/v1?label=Slack&message=Restful%20Fast%20Request&logo=slack&color=38B580"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-07-28T13:56:12.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"群聊"}],["meta",{"property":"article:modified_time","content":"2024-07-28T13:56:12.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"群聊\\",\\"image\\":[\\"https://img.shields.io/static/v1?label=Slack&message=Restful%20Fast%20Request&logo=slack&color=38B580\\",\\"https://img.shields.io/static/v1?label=wechat&message=微信技术群&logo=wechat&color=07C160\\",\\"https://img.shields.io/static/v1?label=wechat&message=插件开发技术群&logo=wechat&color=087CFA\\",\\"https://api-buddy.com/img/wechatGroup.png\\",\\"https://api-buddy.com/img/pluginDevelopGroup.png\\"],\\"dateModified\\":\\"2024-07-28T13:56:12.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1722174972000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1},{"name":"kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.72,"words":217},"filePathRelative":"guide/concatGroup.md","localizedDate":"2024年5月31日","autoDesc":true}');export{F as comp,N as data}; diff --git a/assets/console-yl_t699w.js b/assets/console-yl_t699w.js new file mode 100644 index 000000000..64aa3ec5d --- /dev/null +++ b/assets/console-yl_t699w.js @@ -0,0 +1 @@ +const o="/img/2022.2.5/console.png";export{o as _}; diff --git a/assets/console_en-BWfI2C_a.js b/assets/console_en-BWfI2C_a.js new file mode 100644 index 000000000..dde44c521 --- /dev/null +++ b/assets/console_en-BWfI2C_a.js @@ -0,0 +1 @@ +const o="/img/2022.2.5/console_en.png";export{o as _}; diff --git a/assets/contact.snippet.html-m8cspllp.js b/assets/contact.snippet.html-m8cspllp.js new file mode 100644 index 000000000..cf38e631f --- /dev/null +++ b/assets/contact.snippet.html-m8cspllp.js @@ -0,0 +1 @@ +import{_ as a}from"./twitter-vJUFHWuk.js";import{_ as s}from"./slack-roTTHLlw.js";import{_ as n,r as l,o as i,c as r,a as t,b as o}from"./app-8OZtYazS.js";const c={},m=t("h2",{id:"🤝-contact-us",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#🤝-contact-us"},[t("span",null,"🤝 Contact us")])],-1),p=t("p",null,"Join and follow us to solve your question ❤️❤️❤️",-1),d={href:"https://twitter.com/FastRequest666",target:"_blank",rel:"noopener noreferrer"},u=t("img",{src:"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34",alt:"twitter",loading:"lazy"},null,-1),g={href:"https://join.slack.com/t/restfulfastrequest/shared_invite/zt-1we57vum8-TALhTHI2uNmPF2bx1NDyWw",target:"_blank",rel:"noopener noreferrer"},h=t("img",{src:"https://img.shields.io/static/v1?label=Slack&message=Restful Fast Request&logo=slack&color=38B580",alt:"Slack",loading:"lazy"},null,-1),_=t("tbody",null,[t("tr",null,[t("td",null,[t("img",{src:a,alt:"twitter",loading:"lazy"})]),t("td",null,[t("img",{src:s,alt:"telegram",loading:"lazy"})])])],-1);function y(f,w){const e=l("ExternalLinkIcon");return i(),r("div",null,[m,p,t("table",null,[t("thead",null,[t("tr",null,[t("th",null,[t("a",d,[u,o(e)])]),t("th",null,[t("a",g,[h,o(e)])])])]),_])])}const q=n(c,[["render",y],["__file","contact.snippet.html.vue"]]),F=JSON.parse('{"path":"/en/contact.snippet.html","title":"","lang":"en-US","frontmatter":{"description":"🤝 Contact us Join and follow us to solve your question ❤️❤️❤️ ","head":[["meta",{"property":"og:url","content":"https://api-buddy.com/en/contact.snippet.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:description","content":"🤝 Contact us Join and follow us to solve your question ❤️❤️❤️ "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"\\",\\"image\\":[\\"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34\\",\\"https://img.shields.io/static/v1?label=Slack&message=Restful%20Fast%20Request&logo=slack&color=38B580\\",\\"https://api-buddy.com/img/twitter.png\\",\\"https://api-buddy.com/img/slack.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"🤝 Contact us","slug":"🤝-contact-us","link":"#🤝-contact-us","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.15,"words":44},"filePathRelative":"en/contact.snippet.md","localizedDate":"May 31, 2024","autoDesc":true}');export{q as comp,F as data}; diff --git a/assets/copyCurl.html-8zDVfx_W.js b/assets/copyCurl.html-8zDVfx_W.js new file mode 100644 index 000000000..797900776 --- /dev/null +++ b/assets/copyCurl.html-8zDVfx_W.js @@ -0,0 +1 @@ +import{_ as n}from"./curlCopyNew-s9EU22-f.js";import{_ as p}from"./curl_en-lEPOcEvC.js";import{_ as i,r as a,o as l,c as m,a as e,d as t,b as o}from"./app-8OZtYazS.js";const s={},d=e("h1",{id:"curl-copy",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#curl-copy"},[e("span",null,"cURL copy")])],-1),u=e("p",null,[e("img",{src:n,alt:"curlCopyNew",loading:"lazy"})],-1),g=e("p",null,[e("img",{src:p,alt:"curl",loading:"lazy"})],-1);function y(h,_){const c=a("Badge"),r=a("ColorIcon");return l(),m("div",null,[d,e("p",null,[t("Version required: "),o(c,{text:"1.1.4"})]),e("p",null,[t("After generating the method URL and parameters, click on the toolbar "),o(r,{icon:"curl"}),t(" or "),o(r,{icon:"curl1"}),t(".")]),u,g])}const U=i(s,[["render",y],["__file","copyCurl.html.vue"]]),b=JSON.parse('{"path":"/en/guide/features/copyCurl.html","title":"cURL copy","lang":"en-US","frontmatter":{"description":"cURL copy Version required: After generating the method URL and parameters, click on the toolbar curlCopyNew curl ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/copyCurl.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/copyCurl.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"cURL copy"}],["meta",{"property":"og:description","content":"cURL copy Version required: After generating the method URL and parameters, click on the toolbar curlCopyNew curl "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/curlCopyNew.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"cURL copy"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"cURL copy\\",\\"image\\":[\\"https://api-buddy.com/img/curlCopyNew.png\\",\\"https://api-buddy.com/img/curl_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.11,"words":33},"filePathRelative":"en/guide/features/copyCurl.md","localizedDate":"May 31, 2024","autoDesc":true}');export{U as comp,b as data}; diff --git a/assets/copyCurl.html-wtwTglSy.js b/assets/copyCurl.html-wtwTglSy.js new file mode 100644 index 000000000..49ec61ecb --- /dev/null +++ b/assets/copyCurl.html-wtwTglSy.js @@ -0,0 +1 @@ +import{_ as n}from"./curlCopyNew-s9EU22-f.js";import{_ as l}from"./curl-bEDrqTL_.js";import{_ as p,r as a,o as i,c as m,a as e,d as t,b as o}from"./app-8OZtYazS.js";const s={},u=e("h1",{id:"curl-拷贝",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#curl-拷贝"},[e("span",null,"CURL 拷贝")])],-1),d=e("p",null,[e("img",{src:n,alt:"curlCopyNew",loading:"lazy"})],-1),g=e("p",null,[e("img",{src:l,alt:"curl",loading:"lazy"})],-1);function _(y,h){const c=a("Badge"),r=a("ColorIcon");return i(),m("div",null,[u,e("p",null,[t("版本要求: "),o(c,{text:"1.1.4"})]),e("p",null,[t("必须是先生成方法 url 及参数后,点击工具栏 "),o(r,{icon:"curl"}),t(" 或者"),o(r,{icon:"curl1"})]),d,g])}const R=p(s,[["render",_],["__file","copyCurl.html.vue"]]),b=JSON.parse('{"path":"/guide/features/copyCurl.html","title":"CURL 拷贝","lang":"zh-CN","frontmatter":{"description":"CURL 拷贝 版本要求: 必须是先生成方法 url 及参数后,点击工具栏 curlCopyNew curl ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/copyCurl.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/copyCurl.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"CURL 拷贝"}],["meta",{"property":"og:description","content":"CURL 拷贝 版本要求: 必须是先生成方法 url 及参数后,点击工具栏 curlCopyNew curl "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/curlCopyNew.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"CURL 拷贝"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"CURL 拷贝\\",\\"image\\":[\\"https://api-buddy.com/img/curlCopyNew.png\\",\\"https://api-buddy.com/img/curl.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.14,"words":43},"filePathRelative":"guide/features/copyCurl.md","localizedDate":"2024年5月31日","autoDesc":true}');export{R as comp,b as data}; diff --git a/assets/copyUrl-qs4zOYAL.js b/assets/copyUrl-qs4zOYAL.js new file mode 100644 index 000000000..92409679e --- /dev/null +++ b/assets/copyUrl-qs4zOYAL.js @@ -0,0 +1 @@ +const o="/img/2022.2.3/copyUrl.png";export{o as _}; diff --git a/assets/copyUrl.html-iUzk2RXq.js b/assets/copyUrl.html-iUzk2RXq.js new file mode 100644 index 000000000..8c2d1bcfe --- /dev/null +++ b/assets/copyUrl.html-iUzk2RXq.js @@ -0,0 +1 @@ +import{_ as o}from"./copyUrl-qs4zOYAL.js";import{_ as r,r as a,o as n,c,a as e,d as i,b as l}from"./app-8OZtYazS.js";const p={},m=e("h1",{id:"single-url-copy",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#single-url-copy"},[e("span",null,"Single url copy")])],-1),s=e("p",null,[e("img",{src:o,alt:"copyUrl",loading:"lazy"})],-1);function d(g,u){const t=a("Badge");return n(),c("div",null,[m,e("p",null,[i("Version required: "),l(t,{text:"2022.2.3"})]),s])}const _=r(p,[["render",d],["__file","copyUrl.html.vue"]]),f=JSON.parse('{"path":"/en/guide/features/copyUrl.html","title":"Single url copy","lang":"en-US","frontmatter":{"description":"Single url copy Version required: copyUrl ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/copyUrl.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/copyUrl.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Single url copy"}],["meta",{"property":"og:description","content":"Single url copy Version required: copyUrl "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.3/copyUrl.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Single url copy"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Single url copy\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.3/copyUrl.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.04,"words":11},"filePathRelative":"en/guide/features/copyUrl.md","localizedDate":"May 31, 2024","autoDesc":true}');export{_ as comp,f as data}; diff --git a/assets/copyUrl.html-rmfO_xxT.js b/assets/copyUrl.html-rmfO_xxT.js new file mode 100644 index 000000000..051c1044b --- /dev/null +++ b/assets/copyUrl.html-rmfO_xxT.js @@ -0,0 +1 @@ +import{_ as o}from"./copyUrl-qs4zOYAL.js";import{_ as r,r as a,o as n,c,a as e,d as l,b as p}from"./app-8OZtYazS.js";const i={},m=e("h1",{id:"一键拷贝-url",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#一键拷贝-url"},[e("span",null,"一键拷贝 Url")])],-1),s=e("p",null,[e("img",{src:o,alt:"copyUrl",loading:"lazy"})],-1);function d(g,u){const t=a("Badge");return n(),c("div",null,[m,e("p",null,[l("版本要求: "),p(t,{text:"2022.2.3"})]),s])}const _=r(i,[["render",d],["__file","copyUrl.html.vue"]]),U=JSON.parse('{"path":"/guide/features/copyUrl.html","title":"一键拷贝 Url","lang":"zh-CN","frontmatter":{"description":"一键拷贝 Url 版本要求: copyUrl ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/copyUrl.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/copyUrl.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"一键拷贝 Url"}],["meta",{"property":"og:description","content":"一键拷贝 Url 版本要求: copyUrl "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.3/copyUrl.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"一键拷贝 Url"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"一键拷贝 Url\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.3/copyUrl.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.05,"words":15},"filePathRelative":"guide/features/copyUrl.md","localizedDate":"2024年5月31日","autoDesc":true}');export{_ as comp,U as data}; diff --git a/assets/curl-bEDrqTL_.js b/assets/curl-bEDrqTL_.js new file mode 100644 index 000000000..8eca078a4 --- /dev/null +++ b/assets/curl-bEDrqTL_.js @@ -0,0 +1 @@ +const o="/img/curl.png";export{o as _}; diff --git a/assets/curlCopyNew-s9EU22-f.js b/assets/curlCopyNew-s9EU22-f.js new file mode 100644 index 000000000..b5a2621dc --- /dev/null +++ b/assets/curlCopyNew-s9EU22-f.js @@ -0,0 +1 @@ +const o="/img/curlCopyNew.png";export{o as _}; diff --git a/assets/curlImport.html-VAxWJam1.js b/assets/curlImport.html-VAxWJam1.js new file mode 100644 index 000000000..7164eed4c --- /dev/null +++ b/assets/curlImport.html-VAxWJam1.js @@ -0,0 +1 @@ +import{_ as o}from"./importByCurl_en-3-Qsaakd.js";import{_ as r,r as a,o as n,c as i,a as t,d as m,b as c}from"./app-8OZtYazS.js";const p="/img/2022.2.1/importByCurl_en.png",l={},s=t("h1",{id:"curl-import",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#curl-import"},[t("span",null,"cURL import")])],-1),d=t("div",{class:"hint-container caution"},[t("p",{class:"hint-container-title"},"Note"),t("p",null,"If you want to bind a method, you need to place the cursor on the method name.")],-1),u=t("p",null,[t("img",{src:p,alt:"importByCurl",loading:"lazy"})],-1),h=t("p",null,[t("img",{src:o,alt:"importByCurl",loading:"lazy"})],-1);function g(y,_){const e=a("Badge");return n(),i("div",null,[s,t("p",null,[m("Version required: "),c(e,{text:"2022.2.1"})]),d,u,h])}const C=r(l,[["render",g],["__file","curlImport.html.vue"]]),b=JSON.parse('{"path":"/en/guide/features/curlImport.html","title":"cURL import","lang":"en-US","frontmatter":{"description":"cURL import Version required: Note If you want to bind a method, you need to place the cursor on the method name. importByCurl importByCurl ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/curlImport.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/curlImport.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"cURL import"}],["meta",{"property":"og:description","content":"cURL import Version required: Note If you want to bind a method, you need to place the cursor on the method name. importByCurl importByCurl "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.1/importByCurl_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"cURL import"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"cURL import\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.1/importByCurl_en.png\\",\\"https://api-buddy.com/img/2022.2.1/importByCurl_en.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.1,"words":31},"filePathRelative":"en/guide/features/curlImport.md","localizedDate":"May 31, 2024","autoDesc":true}');export{C as comp,b as data}; diff --git a/assets/curlImport.html-k7NyonBw.js b/assets/curlImport.html-k7NyonBw.js new file mode 100644 index 000000000..e2a7347a5 --- /dev/null +++ b/assets/curlImport.html-k7NyonBw.js @@ -0,0 +1 @@ +import{_ as r}from"./importByCurl-5n26pegp.js";import{_ as o,r as a,o as n,c as i,a as t,d as m,b as c}from"./app-8OZtYazS.js";const p="/img/2022.2.1/importByCurl.png",l={},s=t("h1",{id:"curl-导入",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#curl-导入"},[t("span",null,"cURL 导入")])],-1),d=t("p",null,[t("img",{src:p,alt:"importByCurl",loading:"lazy"})],-1),u=t("p",null,[t("img",{src:r,alt:"importByCurl",loading:"lazy"})],-1),g=t("p",null,[t("mark",null,"请注意如果需要绑定方法,则需要将光标放置到方法名上")],-1);function _(h,y){const e=a("Badge");return n(),i("div",null,[s,t("p",null,[m("版本要求: "),c(e,{text:"2022.2.1"})]),d,u,g])}const C=o(l,[["render",_],["__file","curlImport.html.vue"]]),R=JSON.parse('{"path":"/guide/features/curlImport.html","title":"cURL 导入","lang":"zh-CN","frontmatter":{"description":"cURL 导入 版本要求: importByCurl importByCurl 请注意如果需要绑定方法,则需要将光标放置到方法名上 ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/curlImport.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/curlImport.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"cURL 导入"}],["meta",{"property":"og:description","content":"cURL 导入 版本要求: importByCurl importByCurl 请注意如果需要绑定方法,则需要将光标放置到方法名上 "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.1/importByCurl.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"cURL 导入"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"cURL 导入\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.1/importByCurl.png\\",\\"https://api-buddy.com/img/2022.2.1/importByCurl.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.13,"words":39},"filePathRelative":"guide/features/curlImport.md","localizedDate":"2024年5月31日","autoDesc":true}');export{C as comp,R as data}; diff --git a/assets/curl_dark-QQY3Pwtw.js b/assets/curl_dark-QQY3Pwtw.js new file mode 100644 index 000000000..f75a8ea9a --- /dev/null +++ b/assets/curl_dark-QQY3Pwtw.js @@ -0,0 +1 @@ +const o="/img/icon/curl_dark.svg";export{o as _}; diff --git a/assets/curl_en-lEPOcEvC.js b/assets/curl_en-lEPOcEvC.js new file mode 100644 index 000000000..aba845c4d --- /dev/null +++ b/assets/curl_en-lEPOcEvC.js @@ -0,0 +1 @@ +const _="/img/curl_en.png";export{_}; diff --git a/assets/customToolbar-pc3yDPUI.js b/assets/customToolbar-pc3yDPUI.js new file mode 100644 index 000000000..66e70f559 --- /dev/null +++ b/assets/customToolbar-pc3yDPUI.js @@ -0,0 +1 @@ +const o="/img/2024.1.2/customToolbar.png";export{o as _}; diff --git a/assets/customToolbar.html-WVxg8ImQ.js b/assets/customToolbar.html-WVxg8ImQ.js new file mode 100644 index 000000000..e4a3b77f6 --- /dev/null +++ b/assets/customToolbar.html-WVxg8ImQ.js @@ -0,0 +1 @@ +import{_ as o}from"./customToolbar_en-uL7XCggb.js";import{_ as a,r,o as n,c as s,a as t,d as i,b as c}from"./app-8OZtYazS.js";const m={},l=t("h1",{id:"custom-toolbar",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#custom-toolbar"},[t("span",null,"Custom toolbar")])],-1),u=t("p",null,[t("img",{src:o,alt:"customToolbar",loading:"lazy"})],-1),d=t("p",null,"Using the custom toolbar option, select the functionalities you want to use and hide other function buttons. Then restart IDEA.",-1);function p(h,g){const e=r("Badge");return n(),s("div",null,[l,t("p",null,[i("Version required: "),c(e,{text:"2024.2.1"})]),u,d])}const f=a(m,[["render",p],["__file","customToolbar.html.vue"]]),y=JSON.parse('{"path":"/en/guide/features/customToolbar.html","title":"Custom toolbar","lang":"en-US","frontmatter":{"description":"Custom toolbar Version required: customToolbar Using the custom toolbar option, select the functionalities you want to use and hide other function buttons. Then restart IDEA. ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/customToolbar.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/customToolbar.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Custom toolbar"}],["meta",{"property":"og:description","content":"Custom toolbar Version required: customToolbar Using the custom toolbar option, select the functionalities you want to use and hide other function buttons. Then restart IDEA. "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2024.1.2/customToolbar_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Custom toolbar"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Custom toolbar\\",\\"image\\":[\\"https://api-buddy.com/img/2024.1.2/customToolbar_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.1,"words":30},"filePathRelative":"en/guide/features/customToolbar.md","localizedDate":"May 31, 2024","autoDesc":true}');export{f as comp,y as data}; diff --git a/assets/customToolbar.html-o6nDZEqa.js b/assets/customToolbar.html-o6nDZEqa.js new file mode 100644 index 000000000..6da2bce8c --- /dev/null +++ b/assets/customToolbar.html-o6nDZEqa.js @@ -0,0 +1 @@ +import{_ as o}from"./customToolbar-pc3yDPUI.js";import{_ as a,r,o as n,c,a as t,d as m,b as s}from"./app-8OZtYazS.js";const i={},l=t("h1",{id:"自定义工具栏",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#自定义工具栏"},[t("span",null,"自定义工具栏")])],-1),p=t("p",null,[t("img",{src:o,alt:"customToolbar",loading:"lazy"})],-1),d=t("p",null,"使用自定义工具栏,选择自己需要使用的功能,将其他功能按钮进行隐藏,设置完成需要重启 IDEA",-1);function u(g,h){const e=r("Badge");return n(),c("div",null,[l,t("p",null,[m("版本要求: "),s(e,{text:"2024.2.1"})]),p,d])}const b=a(i,[["render",u],["__file","customToolbar.html.vue"]]),f=JSON.parse('{"path":"/guide/features/customToolbar.html","title":"自定义工具栏","lang":"zh-CN","frontmatter":{"description":"自定义工具栏 版本要求: customToolbar 使用自定义工具栏,选择自己需要使用的功能,将其他功能按钮进行隐藏,设置完成需要重启 IDEA ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/customToolbar.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/customToolbar.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"自定义工具栏"}],["meta",{"property":"og:description","content":"自定义工具栏 版本要求: customToolbar 使用自定义工具栏,选择自己需要使用的功能,将其他功能按钮进行隐藏,设置完成需要重启 IDEA "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2024.1.2/customToolbar.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"自定义工具栏"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"自定义工具栏\\",\\"image\\":[\\"https://api-buddy.com/img/2024.1.2/customToolbar.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.18,"words":55},"filePathRelative":"guide/features/customToolbar.md","localizedDate":"2024年5月31日","autoDesc":true}');export{b as comp,f as data}; diff --git a/assets/customToolbar_en-uL7XCggb.js b/assets/customToolbar_en-uL7XCggb.js new file mode 100644 index 000000000..6203305b1 --- /dev/null +++ b/assets/customToolbar_en-uL7XCggb.js @@ -0,0 +1 @@ +const o="/img/2024.1.2/customToolbar_en.png";export{o as _}; diff --git a/assets/dataMapping.html-6Wo7G1QZ.js b/assets/dataMapping.html-6Wo7G1QZ.js new file mode 100644 index 000000000..7c86b1def --- /dev/null +++ b/assets/dataMapping.html-6Wo7G1QZ.js @@ -0,0 +1,3 @@ +import{_ as a,o as t,c as e,e as n}from"./app-8OZtYazS.js";const p="/img/customDataMapping.png",s="/img/defaultDataMapping.png",o="/img/ignoreDataMapping.png",i={},c=n(`

    自定义类型映射

    场景: 分页实体类 com.baomidou.mybatisplus.extension.plugins.pagination.Page 中有 n 个属性,但是我只需要 sizecurrent

    自定义类型映射一共需要设置 2 个值,即解析的类型以及对应的模板值。

    Java Type 为对应的对象类型,必须是包含包名和类名

    com.baomidou.mybatisplus.extension.plugins.pagination.Page
    +

    Default value 必须是 JSON 格式

    { "size": 10"current": 1 }
    +

    custom data mapping

    默认类型映射

    该配置决定 Java 基础类型解析成对应的值,支持修改

    default data mapping

    忽略类型映射

    该配置决定对应的类是否解析,需要配置全路径(packageName+className)

    ignore data mapping

    ',14),r=[c];function l(d,g){return t(),e("div",null,r)}const u=a(i,[["render",l],["__file","dataMapping.html.vue"]]),h=JSON.parse('{"path":"/guide/getstarted/dataMapping.html","title":"类型映射","lang":"zh-CN","frontmatter":{"title":"类型映射","icon":"dataMapping","description":"自定义类型映射 场景: 分页实体类 com.baomidou.mybatisplus.extension.plugins.pagination.Page 中有 n 个属性,但是我只需要 size 和 current 自定义类型映射一共需要设置 2 个值,即解析的类型以及对应的模板值。 Java Type 为对应的对象类型,必须是包含包名和类名 Defa...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/getstarted/dataMapping.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/getstarted/dataMapping.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"类型映射"}],["meta",{"property":"og:description","content":"自定义类型映射 场景: 分页实体类 com.baomidou.mybatisplus.extension.plugins.pagination.Page 中有 n 个属性,但是我只需要 size 和 current 自定义类型映射一共需要设置 2 个值,即解析的类型以及对应的模板值。 Java Type 为对应的对象类型,必须是包含包名和类名 Defa..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/customDataMapping.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"类型映射"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"类型映射\\",\\"image\\":[\\"https://api-buddy.com/img/customDataMapping.png\\",\\"https://api-buddy.com/img/defaultDataMapping.png\\",\\"https://api-buddy.com/img/ignoreDataMapping.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"自定义类型映射","slug":"自定义类型映射","link":"#自定义类型映射","children":[]},{"level":2,"title":"默认类型映射","slug":"默认类型映射","link":"#默认类型映射","children":[]},{"level":2,"title":"忽略类型映射","slug":"忽略类型映射","link":"#忽略类型映射","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.56,"words":169},"filePathRelative":"guide/getstarted/dataMapping.md","localizedDate":"2024年5月31日","autoDesc":true}');export{u as comp,h as data}; diff --git a/assets/dataMapping.html-GD-HC1cD.js b/assets/dataMapping.html-GD-HC1cD.js new file mode 100644 index 000000000..aeea03fd4 --- /dev/null +++ b/assets/dataMapping.html-GD-HC1cD.js @@ -0,0 +1,3 @@ +import{_ as a,o as t,c as e,e as n}from"./app-8OZtYazS.js";const p="/img/customDataMapping_en.png",s="/img/defaultDataMapping_en.png",o="/img/ignoreDataMapping_en.png",i={},r=n(`

    Custom type mapping

    Scenes: there are 10 attributes in com.baomidou.mybatisplus.extension.plugins.pagination.Page, but we just need size and current property.

    A total of 2 values need to be set for custom type mapping.

    Java Type is the corresponding object type. It must contain the package name and class name.

    com.baomidou.mybatisplus.extension.plugins.pagination.Page
    +

    Default value must be in json format

    { "size": 10, "current": 1 }
    +

    Default type mapping

    This configuration determines that the basic java type will be resolved to the appropriate value, supporting modification.

    Ignore data mapping

    This configuration determines whether the corresponding class is resolved or not and requires full path of java class(packageName+className)

    ',14),c=[r];function l(g,m){return t(),e("div",null,c)}const u=a(i,[["render",l],["__file","dataMapping.html.vue"]]),h=JSON.parse('{"path":"/en/guide/getstarted/dataMapping.html","title":"Data mapping","lang":"en-US","frontmatter":{"title":"Data mapping","icon":"dataMapping","description":"Custom type mapping Scenes: there are 10 attributes in com.baomidou.mybatisplus.extension.plugins.pagination.Page, but we just need size and current property. A total of 2 value...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/getstarted/dataMapping.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/getstarted/dataMapping.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Data mapping"}],["meta",{"property":"og:description","content":"Custom type mapping Scenes: there are 10 attributes in com.baomidou.mybatisplus.extension.plugins.pagination.Page, but we just need size and current property. A total of 2 value..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/customDataMapping_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Data mapping"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Data mapping\\",\\"image\\":[\\"https://api-buddy.com/img/customDataMapping_en.png\\",\\"https://api-buddy.com/img/defaultDataMapping_en.png\\",\\"https://api-buddy.com/img/ignoreDataMapping_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Custom type mapping","slug":"custom-type-mapping","link":"#custom-type-mapping","children":[]},{"level":2,"title":"Default type mapping","slug":"default-type-mapping","link":"#default-type-mapping","children":[]},{"level":2,"title":"Ignore data mapping","slug":"ignore-data-mapping","link":"#ignore-data-mapping","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.37,"words":112},"filePathRelative":"en/guide/getstarted/dataMapping.md","localizedDate":"May 31, 2024","autoDesc":true}');export{u as comp,h as data}; diff --git a/assets/debugApi.html-UdGGuDcU.js b/assets/debugApi.html-UdGGuDcU.js new file mode 100644 index 000000000..ddf84b4e3 --- /dev/null +++ b/assets/debugApi.html-UdGGuDcU.js @@ -0,0 +1 @@ +import{_ as n}from"./sendRequest-nhTc-dPg.js";import{_ as i}from"./example-rxjYHypU.js";import{_ as r,r as s,o as p,c as m,a as e,d as a,b as o}from"./app-8OZtYazS.js";const c={},l=e("h1",{id:"调试-api-发送请求",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#调试-api-发送请求"},[e("span",null,"调试 API 发送请求")])],-1),d=e("p",null,[e("img",{src:n,alt:"sendRequest",loading:"lazy"})],-1),u=e("ul",null,[e("li",null,"老版本")],-1),g=e("p",null,[e("img",{src:i,alt:"example",loading:"lazy"})],-1);function _(h,f){const t=s("FontIcon");return p(),m("div",null,[l,e("p",null,[a("新版本中发送按钮在工具栏,左侧图标从"),o(t,{icon:"restfulFastRequest1"}),a("变为"),o(t,{icon:"restfulFastRequest"})]),d,u,g])}const q=r(c,[["render",_],["__file","debugApi.html.vue"]]),x=JSON.parse('{"path":"/guide/features/debugApi.html","title":"调试 API 发送请求","lang":"zh-CN","frontmatter":{"description":"调试 API 发送请求 新版本中发送按钮在工具栏,左侧图标从 sendRequest 老版本 example ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/debugApi.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/debugApi.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"调试 API 发送请求"}],["meta",{"property":"og:description","content":"调试 API 发送请求 新版本中发送按钮在工具栏,左侧图标从 sendRequest 老版本 example "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/sendRequest.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"调试 API 发送请求"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"调试 API 发送请求\\",\\"image\\":[\\"https://api-buddy.com/img/sendRequest.png\\",\\"https://api-buddy.com/img/example.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.14,"words":41},"filePathRelative":"guide/features/debugApi.md","localizedDate":"2024年5月31日","autoDesc":true}');export{q as comp,x as data}; diff --git a/assets/debugApi.html-rCrLtinL.js b/assets/debugApi.html-rCrLtinL.js new file mode 100644 index 000000000..ef3330cb0 --- /dev/null +++ b/assets/debugApi.html-rCrLtinL.js @@ -0,0 +1 @@ +import{_ as s}from"./sendRequest-nhTc-dPg.js";import{_ as a}from"./example_en-QCKO58IT.js";import{_ as i,r,o as d,c,a as e,d as n,b as o}from"./app-8OZtYazS.js";const l={},p=e("h1",{id:"debug-api-send-request",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#debug-api-send-request"},[e("span",null,"Debug API & send request")])],-1),m={class:"hint-container tip"},u=e("p",{class:"hint-container-title"},"Tips",-1),h=e("p",null,[e("img",{src:s,alt:"sendRequest",title:"New version",loading:"lazy"})],-1),g=e("blockquote",null,[e("p",null,"Old version")],-1),_=e("p",null,[e("img",{src:a,alt:"example",title:"Old version",loading:"lazy"})],-1);function b(f,y){const t=r("FontIcon");return d(),c("div",null,[p,e("div",m,[u,e("p",null,[n("In the new version, send button has moved to the toolbar, and the left icon has been changed from "),o(t,{icon:"restfulFastRequest1"}),n(" to "),o(t,{icon:"restfulFastRequest"})])]),h,g,_])}const I=i(l,[["render",b],["__file","debugApi.html.vue"]]),x=JSON.parse('{"path":"/en/guide/features/debugApi.html","title":"Debug API & send request","lang":"en-US","frontmatter":{"description":"Debug API & send request Tips In the new version, send button has moved to the toolbar, and the left icon has been changed from sendRequest Old version example ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/debugApi.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/debugApi.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Debug API & send request"}],["meta",{"property":"og:description","content":"Debug API & send request Tips In the new version, send button has moved to the toolbar, and the left icon has been changed from sendRequest Old version example "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/sendRequest.png \\"New version\\""}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Debug API & send request"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Debug API & send request\\",\\"image\\":[\\"https://api-buddy.com/img/sendRequest.png \\\\\\"New version\\\\\\"\\",\\"https://api-buddy.com/img/example_en.gif \\\\\\"Old version\\\\\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.14,"words":43},"filePathRelative":"en/guide/features/debugApi.md","localizedDate":"May 31, 2024","autoDesc":true}');export{I as comp,x as data}; diff --git a/assets/docAndContact.html-dsx1ESAC.js b/assets/docAndContact.html-dsx1ESAC.js new file mode 100644 index 000000000..8c60739d2 --- /dev/null +++ b/assets/docAndContact.html-dsx1ESAC.js @@ -0,0 +1 @@ +import{_ as a,r as c,o as r,c as i,a as t,b as o,d as n}from"./app-8OZtYazS.js";const d="/img/docAndContact.png",l={},m=t("h1",{id:"文档-快速联系",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#文档-快速联系"},[t("span",null,"文档/快速联系")])],-1),p=t("p",null,[t("img",{src:d,alt:"docAndContact",loading:"lazy"})],-1);function s(u,g){const e=c("ColorIcon");return r(),i("div",null,[m,t("ul",null,[t("li",null,[o(e,{icon:"doc1"}),n(" 快速打开文档功能页面,无需记忆")]),t("li",null,[o(e,{icon:"changelog"}),n(" 快速打开历史变更,无需记忆")]),t("li",null,[o(e,{icon:"weixin"}),n(" 快速添加作者微信,排查问题")]),t("li",null,[o(e,{icon:"twitter"}),n(" 快速关注作者推特")])]),p])}const _=a(l,[["render",s],["__file","docAndContact.html.vue"]]),y=JSON.parse('{"path":"/guide/features/docAndContact.html","title":"文档/快速联系","lang":"zh-CN","frontmatter":{"description":"文档/快速联系 docAndContact ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/docAndContact.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/docAndContact.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"文档/快速联系"}],["meta",{"property":"og:description","content":"文档/快速联系 docAndContact "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/docAndContact.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"文档/快速联系"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"文档/快速联系\\",\\"image\\":[\\"https://api-buddy.com/img/docAndContact.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.24,"words":71},"filePathRelative":"guide/features/docAndContact.md","localizedDate":"2024年5月31日","autoDesc":true}');export{_ as comp,y as data}; diff --git a/assets/docAndContact.html-u4yhE9iD.js b/assets/docAndContact.html-u4yhE9iD.js new file mode 100644 index 000000000..17a82d29d --- /dev/null +++ b/assets/docAndContact.html-u4yhE9iD.js @@ -0,0 +1 @@ +import{_ as a,r as c,o as r,c as i,a as t,b as o,d as n}from"./app-8OZtYazS.js";const d="/img/docAndContact_en.png",l={},m=t("h1",{id:"document-contact",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#document-contact"},[t("span",null,"Document / Contact")])],-1),p=t("p",null,[t("img",{src:d,alt:"docAndContact",loading:"lazy"})],-1);function s(u,g){const e=c("ColorIcon");return r(),i("div",null,[m,t("ul",null,[t("li",null,[o(e,{icon:"doc1"}),n(" Quickly open the document function page without memory.")]),t("li",null,[o(e,{icon:"changelog"}),n(" Quickly open historical changes without memory.")]),t("li",null,[o(e,{icon:"twitter"}),n(" Quick Follow Author Twitter.")]),t("li",null,[o(e,{icon:"telegram"}),n(" Quickly add Telegram and troubleshoot problems.")])]),p])}const _=a(l,[["render",s],["__file","docAndContact.html.vue"]]),y=JSON.parse('{"path":"/en/guide/features/docAndContact.html","title":"Document / Contact","lang":"en-US","frontmatter":{"description":"Document / Contact docAndContact ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/docAndContact.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/docAndContact.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Document / Contact"}],["meta",{"property":"og:description","content":"Document / Contact docAndContact "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/docAndContact_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Document / Contact"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Document / Contact\\",\\"image\\":[\\"https://api-buddy.com/img/docAndContact_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.15,"words":45},"filePathRelative":"en/guide/features/docAndContact.md","localizedDate":"May 31, 2024","autoDesc":true}');export{_ as comp,y as data}; diff --git a/assets/docsearch-w40geAFS.js b/assets/docsearch-w40geAFS.js new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/assets/docsearch-w40geAFS.js @@ -0,0 +1 @@ + diff --git a/assets/downloadApi.html-bI_tIxKp.js b/assets/downloadApi.html-bI_tIxKp.js new file mode 100644 index 000000000..fce558a46 --- /dev/null +++ b/assets/downloadApi.html-bI_tIxKp.js @@ -0,0 +1 @@ +import{_ as a}from"./downloadFile-lDoHpXkf.js";import{_ as n,r as d,o as l,c as i,a as e,d as t,b as r}from"./app-8OZtYazS.js";const c={},p=e("h1",{id:"download-file",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#download-file"},[e("span",null,"Download file")])],-1),m=e("code",null,"Send and download",-1),s=e("p",null,[e("img",{src:a,alt:"example_download",loading:"lazy"})],-1);function _(g,u){const o=d("ColorIcon");return l(),i("div",null,[p,e("p",null,[t("Click "),m,t(),r(o,{icon:"sendDownload"})]),s])}const w=n(c,[["render",_],["__file","downloadApi.html.vue"]]),y=JSON.parse('{"path":"/en/guide/features/downloadApi.html","title":"Download file","lang":"en-US","frontmatter":{"description":"Download file Click Send and download example_download ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/downloadApi.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/downloadApi.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Download file"}],["meta",{"property":"og:description","content":"Download file Click Send and download example_download "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/downloadFile.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Download file"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Download file\\",\\"image\\":[\\"https://api-buddy.com/img/downloadFile.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.04,"words":12},"filePathRelative":"en/guide/features/downloadApi.md","localizedDate":"May 31, 2024","autoDesc":true}');export{w as comp,y as data}; diff --git a/assets/downloadApi.html-mMdCWhoo.js b/assets/downloadApi.html-mMdCWhoo.js new file mode 100644 index 000000000..ab43ab1ee --- /dev/null +++ b/assets/downloadApi.html-mMdCWhoo.js @@ -0,0 +1 @@ +import{_ as o}from"./downloadFile-lDoHpXkf.js";import{_ as a,r as n,o as d,c as r,a as e,d as i,b as l}from"./app-8OZtYazS.js";const p={},c=e("h1",{id:"下载文件",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#下载文件"},[e("span",null,"下载文件")])],-1),m=e("p",null,[e("img",{src:o,alt:"example_download",loading:"lazy"})],-1);function s(g,u){const t=n("ColorIcon");return d(),r("div",null,[c,e("p",null,[i("点击 Send and download "),l(t,{icon:"sendDownloadNew"})]),m])}const w=a(p,[["render",s],["__file","downloadApi.html.vue"]]),y=JSON.parse('{"path":"/guide/features/downloadApi.html","title":"下载文件","lang":"zh-CN","frontmatter":{"description":"下载文件 点击 Send and download example_download ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/downloadApi.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/downloadApi.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"下载文件"}],["meta",{"property":"og:description","content":"下载文件 点击 Send and download example_download "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/downloadFile.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"下载文件"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"下载文件\\",\\"image\\":[\\"https://api-buddy.com/img/downloadFile.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.05,"words":15},"filePathRelative":"guide/features/downloadApi.md","localizedDate":"2024年5月31日","autoDesc":true}');export{w as comp,y as data}; diff --git a/assets/downloadFile-lDoHpXkf.js b/assets/downloadFile-lDoHpXkf.js new file mode 100644 index 000000000..f4133e73c --- /dev/null +++ b/assets/downloadFile-lDoHpXkf.js @@ -0,0 +1 @@ +const o="/img/downloadFile.png";export{o as _}; diff --git a/assets/dropdownEnv-bZEd9SOg.js b/assets/dropdownEnv-bZEd9SOg.js new file mode 100644 index 000000000..cac8a90e2 --- /dev/null +++ b/assets/dropdownEnv-bZEd9SOg.js @@ -0,0 +1 @@ +const o="/img/dropdownProject.png",n="/img/dropdownEnv.png";export{o as _,n as a}; diff --git a/assets/environment.html-jq3olPQe.js b/assets/environment.html-jq3olPQe.js new file mode 100644 index 000000000..de2c96e37 --- /dev/null +++ b/assets/environment.html-jq3olPQe.js @@ -0,0 +1 @@ +import{_ as s,a as c,b as p}from"./chooseEnvironmentVariable-IX_CYJqC.js";import{_ as m,r as n,o as d,c as u,a as t,d as e,b as i,w as h,e as a}from"./app-8OZtYazS.js";const g="/img/2023.1.8/environmentScript_en.png",v={},y=a('

    In Environment, you can store variables and use {{key}} to replace fixed or magic values elsewhere.

    You can use {{key}} in this places:

    • Url
    • Headers
    • Path Params
    • URL Params
    • Body
      • JSON
      • Form URL-Encoded
      • Multipart

    Define

    The Tab value of Environment is taken from the project domain config. Key needs to satisfy the regular expression ^[a-z A-Z_][a-z A-Z 0-9_]

    environment

    Tips

    After focusing on the table, you can enter the key value to quickly locate the rows

    Usage

    Enter {{key}}} directly in Value column to replace the fixed value or magic value, when value replaced, if the environment contains this key, it will be highlighted in green. The current Environment pop value can be displayed after 500 ms of mouse hovering.

    useEnvironmentVariable

    ',10),f=a('

    chooseEnvironmentVariable

    Tip

    After focusing on the table, you can enter the key value to quickly locate the rows

    Script

    ',3),_=t("p",null,[t("img",{src:g,alt:"environmentScript",loading:"lazy"})],-1);function b(k,E){const o=n("Badge"),r=n("ColorIcon"),l=n("RouteLink");return d(),u("div",null,[t("p",null,[e("Version required: "),i(o,{text:"2023.1.8"})]),y,t("p",null,[e("You can also select a single row and click "),i(r,{icon:"environment"}),e(" and select from the list.")]),f,t("p",null,[e("Please refer to "),i(l,{to:"/en/guide/script.html#demo"},{default:h(()=>[e("Script -> demo -> Set an Environment variable")]),_:1})]),_])}const S=m(v,[["render",b],["__file","environment.html.vue"]]),T=JSON.parse('{"path":"/en/guide/features/environment.html","title":"Environment","lang":"en-US","frontmatter":{"title":"Environment","icon":"environment","description":"Version required: In Environment, you can store variables and use {{key}} to replace fixed or magic values elsewhere. You can use {{key}} in this places: Url Headers Path Params...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/environment.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/environment.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Environment"}],["meta",{"property":"og:description","content":"Version required: In Environment, you can store variables and use {{key}} to replace fixed or magic values elsewhere. You can use {{key}} in this places: Url Headers Path Params..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.1.8/environment.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-06-22T09:44:26.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Environment"}],["meta",{"property":"article:modified_time","content":"2024-06-22T09:44:26.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Environment\\",\\"image\\":[\\"https://api-buddy.com/img/2023.1.8/environment.png\\",\\"https://api-buddy.com/img/2023.1.8/useEnvironmentVariable.png\\",\\"https://api-buddy.com/img/2023.1.8/chooseEnvironmentVariable.png\\",\\"https://api-buddy.com/img/2023.1.8/environmentScript_en.png\\"],\\"dateModified\\":\\"2024-06-22T09:44:26.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Define","slug":"define","link":"#define","children":[]},{"level":2,"title":"Usage","slug":"usage","link":"#usage","children":[]},{"level":2,"title":"Script","slug":"script","link":"#script","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1719049466000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1},{"name":"kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.64,"words":193},"filePathRelative":"en/guide/features/environment.md","localizedDate":"May 31, 2024","autoDesc":true}');export{S as comp,T as data}; diff --git a/assets/environment.html-zP3n6wrG.js b/assets/environment.html-zP3n6wrG.js new file mode 100644 index 000000000..8c578d982 --- /dev/null +++ b/assets/environment.html-zP3n6wrG.js @@ -0,0 +1 @@ +import{_ as m,a as c,b as s}from"./chooseEnvironmentVariable-IX_CYJqC.js";import{_ as p,r as n,o as d,c as h,a as t,d as e,b as o,w as u,e as i}from"./app-8OZtYazS.js";const g="/img/2023.1.8/environmentScript.png",v={},_=i('

    Environment中可以设置存储一些变量,并且在其他地方使用{{key}}来替换固定值或者魔法值。

    可以在以下场景中使用{{key}}

    • Url
    • Headers
    • Path Params
    • URL Params
    • Body
      • JSON
      • Form URL-Encoded
      • Multipart

    定义

    Environment的Tab值取自项目域名配置中的环境,key需要满足正则表达式^[a-zA-Z_$][a-zA-Z0-9_$]*$

    environment

    小技巧

    聚焦表格后,可以输入key值来快速定位行

    使用

    在Value中直接输入{{key}}来替换固定值或者魔法值,当替换后,如果Environment中包含此key则会绿色高亮。鼠标悬浮500ms后可以显示当前的Environment值

    useEnvironmentVariable

    ',10),y=t("strong",null,"单行",-1),E=i('

    chooseEnvironmentVariable

    小技巧

    聚焦表格后,可以输入key值来快速定位行

    脚本

    ',3),f=t("p",null,[t("img",{src:g,alt:"environmentScript",loading:"lazy"})],-1);function b(k,x){const a=n("Badge"),r=n("ColorIcon"),l=n("RouteLink");return d(),h("div",null,[t("p",null,[e("版本要求: "),o(a,{text:"2023.1.8"})]),_,t("p",null,[e("也可以选中"),y,e(",并点击"),o(r,{icon:"environment"}),e("从列表从选择。")]),E,t("p",null,[e("参考 "),o(l,{to:"/guide/script.html#demo"},{default:u(()=>[e("脚本 -> demo -> 设置一个Environment变量")]),_:1})]),f])}const R=p(v,[["render",b],["__file","environment.html.vue"]]),T=JSON.parse('{"path":"/guide/features/environment.html","title":"Environment","lang":"zh-CN","frontmatter":{"title":"Environment","icon":"environment","description":"版本要求: Environment中可以设置存储一些变量,并且在其他地方使用{{key}}来替换固定值或者魔法值。 可以在以下场景中使用{{key}} Url Headers Path Params URL Params Body JSON Form URL-Encoded Multipart 定义 Environment的Tab值取自项目域名配置中的...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/environment.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/environment.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Environment"}],["meta",{"property":"og:description","content":"版本要求: Environment中可以设置存储一些变量,并且在其他地方使用{{key}}来替换固定值或者魔法值。 可以在以下场景中使用{{key}} Url Headers Path Params URL Params Body JSON Form URL-Encoded Multipart 定义 Environment的Tab值取自项目域名配置中的..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.1.8/environment.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Environment"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Environment\\",\\"image\\":[\\"https://api-buddy.com/img/2023.1.8/environment.png\\",\\"https://api-buddy.com/img/2023.1.8/useEnvironmentVariable.png\\",\\"https://api-buddy.com/img/2023.1.8/chooseEnvironmentVariable.png\\",\\"https://api-buddy.com/img/2023.1.8/environmentScript.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"定义","slug":"定义","link":"#定义","children":[]},{"level":2,"title":"使用","slug":"使用","link":"#使用","children":[]},{"level":2,"title":"脚本","slug":"脚本","link":"#脚本","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.81,"words":243},"filePathRelative":"guide/features/environment.md","localizedDate":"2024年5月31日","autoDesc":true}');export{R as comp,T as data}; diff --git a/assets/errors-OgKIXfxL.js b/assets/errors-OgKIXfxL.js new file mode 100644 index 000000000..a1736c5ff --- /dev/null +++ b/assets/errors-OgKIXfxL.js @@ -0,0 +1 @@ +import{P as t,c as a}from"./prod-OBrTmKrB.js";import"./app-8OZtYazS.js";const s={p(){return new t({code:a.BadSignature,reason:"missing WEBVTT file header",line:1})},q(n,e){return new t({code:a.BadTimestamp,reason:`cue start timestamp \`${n}\` is invalid on line ${e}`,line:e})},r(n,e){return new t({code:a.BadTimestamp,reason:`cue end timestamp \`${n}\` is invalid on line ${e}`,line:e})},s(n,e,r){return new t({code:a.BadTimestamp,reason:`cue end timestamp \`${e}\` is greater than start \`${n}\` on line ${r}`,line:r})},w(n,e,r){return new t({code:a.BadSettingValue,reason:`invalid value for cue setting \`${n}\` on line ${r} (value: ${e})`,line:r})},v(n,e,r){return new t({code:a.UnknownSetting,reason:`unknown cue setting \`${n}\` on line ${r} (value: ${e})`,line:r})},u(n,e,r){return new t({code:a.BadSettingValue,reason:`invalid value for region setting \`${n}\` on line ${r} (value: ${e})`,line:r})},t(n,e,r){return new t({code:a.UnknownSetting,reason:`unknown region setting \`${n}\` on line ${r} (value: ${e})`,line:r})},N(n,e){return new t({code:a.BadFormat,reason:`format missing for \`${n}\` block on line ${e}`,line:e})}};export{s as ParseErrorBuilder}; diff --git a/assets/eula.html-FzSaVQwE.js b/assets/eula.html-FzSaVQwE.js new file mode 100644 index 000000000..e5b1975d8 --- /dev/null +++ b/assets/eula.html-FzSaVQwE.js @@ -0,0 +1 @@ +import{_ as e,o as t,c as r,e as a}from"./app-8OZtYazS.js";const o={},i=a('

    Restful Fast Request for JetBrains IDEs EULA

    Developer(s)” means DKingSoft.

    JetBrains” means JetBrains s.r.o. with its registered office at Na Hrebenech II 1718/10, Prague, 14000, Czech Republic, registered with the Commercial Register kept by the Municipal Court of Prague, Section C, file 86211, ID.Nr.: 265 02 275.

    JetBrains Affiliate” means the subsidiary and/or any associated companies of JetBrains.

    JetBrains Marketplace” means any platform operated by JetBrains or a JetBrains Affiliate on which JetBrains or a JetBrains Affiliate markets Plugins for JetBrains Products, including the website https://plugins.jetbrains.com and/or any other website or other platform, whether named JetBrains Marketplace, JetBrains Plugins Repository, or otherwise.

    JetBrains Product” means any software program or service made available by JetBrains.

    Plugin” means the Plugin for JetBrains Product that Developer makes available under this EULA.

    Plugin Information” means the following information and materials: (a) JetBrains Marketplace Plugin title, tags / category, name(s) of Developer(s), product description, icon, logo or banner images, and any other information related to Plugins; (b) the metadata, graphics, artwork, images, trademarks, trade names, logos and other descriptive or identifying information and materials associated with Developer or appears in connection with Plugin; and (c) in the case of cloud hosted Plugins, an XML/JSON descriptor of Plugin.

    Plugin Users” means users that are able to access and use Plugin concurrently.

    You” means an individual or an entity concluding this EULA.

    This EULA governs the terms of use of Plugin made available to You via JetBrains Marketplace. This EULA is entered into between You and Developer.

    If Plugin is a paid Plugin, you must ensure that the maximum number of Plugin Users does not exceed the number of Plugin Users for which you have purchased Plugin.

    You are authorized to use Plugin in accordance with its documentation provided by Developer and for the period of time specified by Developer.

    You are not permitted to:

    • Edit, alter, modify, adapt, translate or otherwise change the whole or any part of the Software nor permit the whole or any part of the Software to be combined with or become incorporated in any other software, nor decompile, disassemble or reverse engineer the Software or attempt to do any such things
    • Reproduce, copy, distribute, resell or otherwise use the Software for any commercial purpose
    • Allow any third party to use the Software on behalf of or for the benefit of any third party
    • Use the Software in any way which breaches any applicable local, national or international law
    • Use the Software for any purpose that DKingSoft considers is a breach of this EULA agreement

    Plugin is protected by copyright and other intellectual property laws and treaties. Developer or its licensors own all title, copyright and other intellectual property rights in Plugin.

    DKingSoft reserves the right to grant licences to use the Software to third parties.

    ALL PLUGINS ARE PROVIDED TO YOU ON AN ”AS IS” AND ”AS AVAILABLE” BASIS WITHOUT WARRANTIES. USE OF PLUGINS IS AT YOUR OWN RISK. DEVELOPER MAKES NO WARRANTY AS TO PLUGIN’S USE OR PERFORMANCE. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, DEVELOPER DISCLAIMS ALL OTHER WARRANTIES AND CONDITIONS, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, WITH REGARD TO PLUGINS, AND THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT SERVICES. DEVELOPER DOES NOT WARRANT THAT PLUGINS ARE ACCURATE, RELIABLE, OR CORRECT; THAT PLUGIN MEETS YOUR REQUIREMENTS; THAT PLUGINS WILL BE AVAILABLE AT ANY PARTICULAR TIME OR LOCATION, UNINTERRUPTED, OR SECURE; THAT ANY DEFECTS OR ERRORS WILL BE CORRECTED; OR THAT PLUGINS ARE FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS.

    IN NO EVENT WILL DEVELOPER BE LIABLE FOR ANY DIRECT OR INDIRECT COSTS, LOSSES, OR DAMAGES ASSOCIATED WITH THE USE OF DEVELOPER’S PLUGINS.

    DEVELOPER SHALL NOT BE LIABLE TO YOU FOR ANY LOST PROFITS OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED, AND IN NO EVENT WILL DEVELOPER’S AGGREGATE LIABILITY ARISING OUT OF OR RELATED TO THIS AGREEMENT OR THE USE OF PLUGIN EXCEED THE FEES WHICH YOU PAID VIA JETBRAINS PLUGIN MARKETPLACE SERVICE FOR PLUGINS IN THE THREE-MONTH PERIOD PRECEDING THE CLAIM. THIS LIMITATION WILL APPLY EVEN IF DEVELOPER HAS BEEN ADVISED OF THE POSSIBILITY OF THE LIABILITY EXCEEDING THE AMOUNT AND NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY. JETBRAINS’ LIABILITY IS EXCLUDED IN ITS ENTIRETY AS JETBRAINS IS NOT A PARTY TO THE CONTRACTUAL RELATIONSHIP BETWEEN DEVELOPER AND CUSTOMER.

    THIS EULA AGREEMENT, AND ANY DISPUTE ARISING OUT OF OR IN CONNECTION WITH THIS EULA AGREEMENT, SHALL BE GOVERNED BY AND CONSTRUED IN ACCORDANCE WITH THE LAWS.

    Update: 2022-08-20

    ',22),n=[i];function s(E,l){return t(),r("div",null,n)}const I=e(o,[["render",s],["__file","eula.html.vue"]]),A=JSON.parse('{"path":"/en/guide/eula.html","title":"EULA","lang":"en-US","frontmatter":{"title":"EULA","icon":"license","description":"Restful Fast Request for JetBrains IDEs EULA ”Developer(s)” means DKingSoft. ”JetBrains” means JetBrains s.r.o. with its registered office at Na Hrebenech II 1718/10, Prague, 14...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/eula.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/eula.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"EULA"}],["meta",{"property":"og:description","content":"Restful Fast Request for JetBrains IDEs EULA ”Developer(s)” means DKingSoft. ”JetBrains” means JetBrains s.r.o. with its registered office at Na Hrebenech II 1718/10, Prague, 14..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"EULA\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Restful Fast Request for JetBrains IDEs EULA","slug":"restful-fast-request-for-jetbrains-ides-eula","link":"#restful-fast-request-for-jetbrains-ides-eula","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":2.57,"words":772},"filePathRelative":"en/guide/eula.md","localizedDate":"May 31, 2024","autoDesc":true}');export{I as comp,A as data}; diff --git a/assets/eula.html-MHGcuP0Y.js b/assets/eula.html-MHGcuP0Y.js new file mode 100644 index 000000000..bf30cf673 --- /dev/null +++ b/assets/eula.html-MHGcuP0Y.js @@ -0,0 +1 @@ +import{_ as e,o as t,c as r,e as s}from"./app-8OZtYazS.js";const a={},n=s('

    Restful Fast Request for JetBrains IDEs EULA

    开发者”指 DKingSoft。

    JetBrains”是指 JetBrains sro,其注册办事处位于捷克共和国布拉格 Na Hrebenech II 1718/10,14000,在布拉格市法院保存的商业登记处注册,C 部分,文件 86211,ID.Nr.:265 02 275。

    JetBrains Affiliate”是指 JetBrains 的子公司和/或任何关联公司。

    JetBrains Marketplace”是指由 JetBrains 或 JetBrains 附属公司运营的任何平台,JetBrains 或 JetBrains 附属公司在其上销售 JetBrains 产品的插件,包括网站 https://plugins.jetbrains.com 和/或任何其他网站或其他平台,无论是命名为 JetBrains Marketplace、JetBrains Plugins Repository 或其他名称。

    JetBrains 产品”是指 JetBrains 提供的任何软件程序或服务。

    插件”是指开发人员根据本 EULA 提供的适用于 JetBrains 产品的插件。

    插件信息”是指以下信息和材料:(a) JetBrains Marketplace 插件标题、标签/类别、开发者名称、产品描述、图标、徽标或横幅图像,以及与插件相关的任何其他信息; (b) 与开发者相关或与插件相关的元数据、图形、艺术品、图像、商标、商品名称、徽标和其他描述性或识别信息和材料;(c) 在云托管插件的情况下,插件的 XML/JSON 描述符。

    插件用户”是指能够同时访问和使用插件的用户。

    ”是指签订本 EULA 的个人或实体。

    本 EULA 管辖通过 JetBrains Marketplace 向您提供的插件的使用条款。本 EULA 在您和开发者之间签订。

    本插件为付费插件(版本>=2022.1.4),您必须确保插件用户的最大数量不超过您为其购买插件的插件用户数量。

    您被授权根据开发者提供的文档并在开发者指定的期限内使用插件。

    您不得:

    • 编辑、更改、修改、改编、翻译或以其他方式更改本软件的全部或任何部分,不允许将本软件的全部或任何部分与任何其他软件组合或合并到任何其他软件中,也不得反编译、反汇编或反向工程软件或尝试做任何此类事情
    • 出于任何商业目的复制、复制、分发、转售或以其他方式使用本软件
    • 允许任何第三方代表任何第三方或为任何第三方的利益使用本软件
    • 以任何违反任何适用的当地、国家或国际法律的方式使用本软件
    • 将软件用于 DKingSoft 认为违反本 EULA 协议的任何目的

    插件受版权和其他知识产权法律和条约的保护。开发者或其许可方拥有插件中的所有所有权、版权和其他知识产权。

    DKingSoft 保留向第三方授予使用本软件的许可的权利。

    所有插件均按“原样”和“可用”提供给您,使用插件的风险由您自己承担。开发者对插件的使用或性能不做任何保证。在适用法律允许的最大范围内,开发商否认所有其他明示或默示的保证和条件,包括但不限于对适销性、特定用途的适用性、所有权和不侵权的默示保证插件,以及提供或未能提供支持服务。开发者不保证插件是准确、可靠或正确的;该插件满足您的要求;插件将在任何特定时间或地点可用,不间断或安全;将纠正任何缺陷或错误;或者插件没有病毒或其他有害成分。

    在任何情况下,开发者均不对与使用开发者插件相关的任何直接或间接成本、损失或损害负责。

    开发者不对您造成的任何利润损失或间接损害承担责任,无论是何种原因造成的,并且在任何情况下,开发者因本协议或使用插件而产生的或与之相关的总责任都不会超过您通过 JETBRAINS 插件市场服务支付的费用适用于索赔前三个月内的插件。即使开发商已被告知责任可能超过金额,并且任何有限补救措施的基本目的未能实现,此限制仍将适用。JETBRAINS 不承担全部责任,因为 JETBRAINS 不是开发者和客户之间合同关系的一方。

    本 EULA 协议以及由本 EULA 协议引起或与之相关的任何争议均应受法律管辖并按法律解释。

    更新时间: 2022-08-20

    ',22),i=[n];function o(p,l){return t(),r("div",null,i)}const u=e(a,[["render",o],["__file","eula.html.vue"]]),g=JSON.parse('{"path":"/guide/eula.html","title":"EULA","lang":"zh-CN","frontmatter":{"title":"EULA","icon":"license","description":"Restful Fast Request for JetBrains IDEs EULA “开发者”指 DKingSoft。 “JetBrains”是指 JetBrains sro,其注册办事处位于捷克共和国布拉格 Na Hrebenech II 1718/10,14000,在布拉格市法院保存的商业登记处注册,C 部分,文件 86211,ID.Nr.:...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/eula.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/eula.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"EULA"}],["meta",{"property":"og:description","content":"Restful Fast Request for JetBrains IDEs EULA “开发者”指 DKingSoft。 “JetBrains”是指 JetBrains sro,其注册办事处位于捷克共和国布拉格 Na Hrebenech II 1718/10,14000,在布拉格市法院保存的商业登记处注册,C 部分,文件 86211,ID.Nr.:..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"EULA\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Restful Fast Request for JetBrains IDEs EULA","slug":"restful-fast-request-for-jetbrains-ides-eula","link":"#restful-fast-request-for-jetbrains-ides-eula","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":3.9,"words":1171},"filePathRelative":"guide/eula.md","localizedDate":"2024年5月31日","autoDesc":true}');export{u as comp,g as data}; diff --git a/assets/example-rxjYHypU.js b/assets/example-rxjYHypU.js new file mode 100644 index 000000000..ed5351ca6 --- /dev/null +++ b/assets/example-rxjYHypU.js @@ -0,0 +1 @@ +const e="/img/example.gif";export{e as _}; diff --git a/assets/example_en-QCKO58IT.js b/assets/example_en-QCKO58IT.js new file mode 100644 index 000000000..913684ae0 --- /dev/null +++ b/assets/example_en-QCKO58IT.js @@ -0,0 +1 @@ +const e="/img/example_en.gif";export{e as _}; diff --git a/assets/export2postman-dEAWnBlR.js b/assets/export2postman-dEAWnBlR.js new file mode 100644 index 000000000..b485a1bca --- /dev/null +++ b/assets/export2postman-dEAWnBlR.js @@ -0,0 +1 @@ +const o="/img/export2postman.gif";export{o as _}; diff --git a/assets/exportImportApis-cRKbjcMp.js b/assets/exportImportApis-cRKbjcMp.js new file mode 100644 index 000000000..1a0efb023 --- /dev/null +++ b/assets/exportImportApis-cRKbjcMp.js @@ -0,0 +1 @@ +const o="/img/exportImportApis.gif";export{o as _}; diff --git a/assets/faq.html-XFVMFog5.js b/assets/faq.html-XFVMFog5.js new file mode 100644 index 000000000..48726daa8 --- /dev/null +++ b/assets/faq.html-XFVMFog5.js @@ -0,0 +1,71 @@ +import{_ as c,a as d,b as u,c as h,d as m}from"./showToolbar-1uOrduVA.js";import{_ as g}from"./ignoreFiled_en-EyuGDq4I.js";import{_ as f}from"./apiPreview-TsYf71lp.js";import{_ as k,r as p,o as v,c as b,a as e,b as t,d as n,w as a,e as i}from"./app-8OZtYazS.js";const y="/img/manageConfig_en.png",w="/img/faq/timeout_en.png",q="/img/skill/urlError_en.png",_={},x=e("p",null,"Keywords meaning",-1),S=e("hr",null,null,-1),A=e("p",null,"We will constantly update the problems encountered by developers and the corresponding solutions.",-1),C={class:"table-of-contents"},T=i('

    S: Slow operations are prohibited on EDT

    Slow operations are prohibited on EDT error.

    Fill into the keywords ide.slow.operations.assertion in SearchEveryWhere and uncheck them like following.

    slowOperationsConfig

    S: Send button is disabled, but there is no notification message

    You need to manually turn on the notification message. If notification messages are not turned on, many messages cannot be displayed, so IDEA's message notification settings need to be configured. Other situations are handled similarly.

    Go to Setting-> Appearance & Behavior->Nofications , check Display ballon notifications and Enable system notifications. If Fast Request is checked in Don't ask again nofications, this item needs to be removed.

    enableNotifications

    S: Timeout setting

    Default: 60 s

    Click the plug-in settings button Manage Configuration and set the values of Connect Timeout and Read Timeout.

    manageConfig

    timeout

    S: Quickly add domain

    ',14),Q=e("strong",null,"2023.1.1",-1),I=e("h2",{id:"s-apis-lost",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#s-apis-lost"},[e("span",null,"S: APIs lost")])],-1),j=e("p",null,"So sorry to inform you that installing the 2023.1.3 version of (have been hidden) will cause loss of historical APIs, and you will need to manually retrieve the data. Here's what you need to do:",-1),P={start:"0"},E=e("li",null,"Download 2023.1.3.2+ version of plugin",-1),R=e("li",null,[n('Go to the .idea directory in your project, right-click and click on "Local history", find the change log about '),e("code",null,".idea/FastRequestCollection.xml"),n(' (the title contains "Deleting"), and locate the last version. Copy the contents of this version and paste them into '),e("code",null,".idea/fastRequest/fastRequestCollection.xml")],-1),F=e("li",null,"Restart IntelliJ IDEA.",-1),D=e("p",null,[e("img",{src:c,alt:"dataTransfer20231",loading:"lazy"})],-1),z=e("h2",{id:"s-url-error",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#s-url-error"},[e("span",null,"S: Url error")])],-1),H=e("p",null,[e("img",{src:q,alt:"urlError",loading:"lazy"})],-1),U=i(`
    1. Configure the correct domain name and enable the 2 drop-down boxes for the project and environment
    2. Set the correct URL, for example, to replace the variable {id} on the URL, you can replace the variable in the Path Param tab

    S: How to ignore the field of the entity

    Way 1: Use one of the following 2 annotations.

    com.fasterxml.jackson.annotation.JsonIgnore
    +
    +com.alibaba.fastjson.annotation.JSONField(serialize = false)
    +

    Way 2: Add the static modifier to the field.

    Way 3: Add @fastRequestParseIgnore in comment

    /**
    + * xxx description
    + * @fastRequestParseIgnore
    + */
    +private String someIgnoreField;
    +

    Way 4: Ignore field name ignoreFiled

    Only need to add field names in the configuration to ignore target fields in the entity class.

    S: Quick locate

    After getting the focus of the window or pop-up box, enter the letters to position, then use the arrow or the arrow for jump position

    For example:

    apiDocExample

    S: Multi-file upload

    Enter multiple values and set the field type to file

    multiFileUpload

    S: Pass text/plain param in body

    Please add Content-Type: text/plain in the header

    ',18),B=e("code",null,"Common header",-1),W=e("h2",{id:"s-no-controller-how-to-send-a-request",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#s-no-controller-how-to-send-a-request"},[e("span",null,"S: No controller, how to send a request")])],-1),N=i(`

    S: Get code hints while writing scripts

    Copy the code and delete it after finish the script

    import cn.hutool.http.HttpUtil
    +
    +def request = HttpUtil.createGet("shouldremove")
    +def response = request.execute()
    +

    S: API doc sync

    `,4),G=e("p",null,"Recommendation: There is no need to create a repo in Github, Gitee, and Gitlab in advance. Plug-ins will automatically help create a repo. Developers only need to provide the repo name.",-1),O=e("h2",{id:"s-apis-echo",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#s-apis-echo"},[e("span",null,"S: APIs echo")])],-1),L=e("code",null,"save button",-1),V=i(`

    S: Best Visual Effects

    Adjust tool window width to 610+ pixel and will achieve the best visual effect

    Q: Header likes Origin not effect

    Because the restrictedHeaders strategy of sun.net.www.protocol.http.HttpURLConnection . If you want to use the following headers, you need to configure vm parameters for IDEA

    private static final String[] restrictedHeaders = {
    +        /* Restricted by XMLHttpRequest2 */
    +        //"Accept-Charset",
    +        //"Accept-Encoding",
    +        "Access-Control-Request-Headers",
    +        "Access-Control-Request-Method",
    +        "Connection", /* close is allowed */
    +        "Content-Length",
    +        //"Cookie",
    +        //"Cookie2",
    +        "Content-Transfer-Encoding",
    +        //"Date",
    +        //"Expect",
    +        "Host",
    +        "Keep-Alive",
    +        "Origin",
    +        // "Referer",
    +        // "TE",
    +        "Trailer",
    +        "Transfer-Encoding",
    +        "Upgrade",
    +        //"User-Agent",
    +        "Via"
    +    };
    +

    Click help->Edit Custom Vm Options...,add the following config in idea.vmoptions(linux) or idea64.exe.vmoptions(windows)

    -Dsun.net.http.allowRestrictedHeaders=true
    +

    Q: Response return Unexpected end of file from server

    1. Network connection was lost
    +2. The server decided to close the connection
    +3. Something in between the client and the server (nginx, router, etc) terminated the request
    +4. The server-side api requires a proxy but IDEA is not configured, especially for some intranet projects
    +

    How to set IDEA proxy: Setting-> Appearance & Behavior->System Settings->HTTP Proxy

    Q: Spring Get request with array/collection parameter reports 400 error

    For example Url = http://localhost:8081/test?a[0].b[0].token=xxx&a[0].b[0].name=yyy

    Add the following configuration:

    import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
    +import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
    +import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
    +import org.springframework.context.annotation.Bean;
    +import org.springframework.context.annotation.Configuration;
    +
    +@Configuration
    +public class WebConfig {
    +
    +    @Bean
    +    public ConfigurableServletWebServerFactory webServerFactory() {
    +        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
    +        factory.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> connector.setProperty("relaxedQueryChars", "|{}[]\\\\"));
    +        return factory;
    +    }
    +
    +}
    +

    Q: Action buttons are not visible

    Click Options and check Show Toolbar

    Q: Generate parameters、jump error

    A: Do not have methods with the same method name in the controller code

    Q: Left icon missing

    ',20),M=i(`

    A: Open config setting->Editor->Gutter icons->show gutter icon

    Q: After entering the parameters, the API call found that the parameters were invalid

    A: Plugin version less than 2022.2.3, when editing a value in the table, you need to click in the blank space after editing the value, then send the request. The bug has been fixed in the 2022.2.3+ version.

    Q: Why the plugin doesn't respond

    A: Please configure the relevant configuration according to the steps introduced in the first chapter first, and then click the icon.

    Q: Idea freezes after clicking the fastRequest icon

    A: :The entity class you designed is nested and recursive, the plugin does not support.

    public class A{
    +    private B b;
    +    private int xx;
    +}
    +public class B{
    +    private A a;
    +    private String xx;
    +}
    +

    If you don't need the B property in the above case, then you can manually add a static keywords to property B when generating

    public class A{
    +    private static B b;
    +    private int xx;
    +}
    +
    `,10);function K(J,Z){const l=p("Badge"),s=p("router-link"),o=p("ColorIcon"),r=p("RouteLink");return v(),b("div",null,[e("blockquote",null,[x,t(l,{text:"S: Skill",color:"#087CFA"}),n(),t(l,{text:"Q: Question",color:"#FE2857"}),n(),t(l,{text:"A: Answer",color:"#21D789"}),S,A]),e("nav",C,[e("ul",null,[e("li",null,[t(s,{to:"#s-slow-operations-are-prohibited-on-edt"},{default:a(()=>[n("S: Slow operations are prohibited on EDT")]),_:1})]),e("li",null,[t(s,{to:"#s-send-button-is-disabled-but-there-is-no-notification-message"},{default:a(()=>[n("S: Send button is disabled, but there is no notification message")]),_:1})]),e("li",null,[t(s,{to:"#s-timeout-setting"},{default:a(()=>[n("S: Timeout setting")]),_:1})]),e("li",null,[t(s,{to:"#s-quickly-add-domain"},{default:a(()=>[n("S: Quickly add domain")]),_:1})]),e("li",null,[t(s,{to:"#s-apis-lost"},{default:a(()=>[n("S: APIs lost")]),_:1})]),e("li",null,[t(s,{to:"#s-url-error"},{default:a(()=>[n("S: Url error")]),_:1})]),e("li",null,[t(s,{to:"#s-how-to-ignore-the-field-of-the-entity"},{default:a(()=>[n("S: How to ignore the field of the entity")]),_:1})]),e("li",null,[t(s,{to:"#s-quick-locate"},{default:a(()=>[n("S: Quick locate")]),_:1})]),e("li",null,[t(s,{to:"#s-multi-file-upload"},{default:a(()=>[n("S: Multi-file upload")]),_:1})]),e("li",null,[t(s,{to:"#s-pass-text-plain-param-in-body"},{default:a(()=>[n("S: Pass text/plain param in body")]),_:1})]),e("li",null,[t(s,{to:"#s-no-controller-how-to-send-a-request"},{default:a(()=>[n("S: No controller, how to send a request")]),_:1})]),e("li",null,[t(s,{to:"#s-get-code-hints-while-writing-scripts"},{default:a(()=>[n("S: Get code hints while writing scripts")]),_:1})]),e("li",null,[t(s,{to:"#s-api-doc-sync"},{default:a(()=>[n("S: API doc sync")]),_:1})]),e("li",null,[t(s,{to:"#s-apis-echo"},{default:a(()=>[n("S: APIs echo")]),_:1})]),e("li",null,[t(s,{to:"#s-best-visual-effects"},{default:a(()=>[n("S: Best Visual Effects")]),_:1})]),e("li",null,[t(s,{to:"#q-header-likes-origin-not-effect"},{default:a(()=>[n("Q: Header likes Origin not effect")]),_:1})]),e("li",null,[t(s,{to:"#q-response-return-unexpected-end-of-file-from-server"},{default:a(()=>[n("Q: Response return Unexpected end of file from server")]),_:1})]),e("li",null,[t(s,{to:"#q-spring-get-request-with-array-collection-parameter-reports-400-error"},{default:a(()=>[n("Q: Spring Get request with array/collection parameter reports 400 error")]),_:1})]),e("li",null,[t(s,{to:"#q-action-buttons-are-not-visible"},{default:a(()=>[n("Q: Action buttons are not visible")]),_:1})]),e("li",null,[t(s,{to:"#q-generate-parameters、jump-error"},{default:a(()=>[n("Q: Generate parameters、jump error")]),_:1})]),e("li",null,[t(s,{to:"#q-left-icon-missing"},{default:a(()=>[n("Q: Left icon missing")]),_:1})]),e("li",null,[t(s,{to:"#q-after-entering-the-parameters-the-api-call-found-that-the-parameters-were-invalid"},{default:a(()=>[n("Q: After entering the parameters, the API call found that the parameters were invalid")]),_:1})]),e("li",null,[t(s,{to:"#q-why-the-plugin-doesn-t-respond"},{default:a(()=>[n("Q: Why the plugin doesn't respond")]),_:1})]),e("li",null,[t(s,{to:"#q-idea-freezes-after-clicking-the-fastrequest-icon"},{default:a(()=>[n("Q: Idea freezes after clicking the fastRequest icon")]),_:1})])])]),T,e("p",null,[n("Please refer "),t(r,{to:"/en/guide/features/projectLevelDomainConfig.html"},{default:a(()=>[t(o,{icon:"domainConfig"}),n(" Project-level domain config")]),_:1}),n(" (Plugin version>="),Q,n(")")]),I,j,e("ol",P,[E,R,F,e("li",null,[n("Click on the icon "),t(o,{icon:"dataTransfer"}),n(" in the APIs tab and do transfer")])]),D,z,H,t(l,{text:"Solution",type:"tip"}),U,e("p",null,[n("Consider using add header by "),t(r,{to:"/en/guide/features/commonHeader.html"},{default:a(()=>[B]),_:1})]),W,e("p",null,[n("Refer to "),t(r,{to:"/en/guide/features/tempRequest.html"},{default:a(()=>[n("Temporary request")]),_:1})]),N,e("p",null,[n("When you modify your method, the API returned from the APIs list is the API saved before you update it. At this time, if you want to ensure that the online API document is your modified one, you need to click "),t(o,{icon:"saveNew"}),n("(save) or click "),t(o,{icon:"restfulFastRequest"}),n(" again and then sync api doc.")]),G,O,e("p",null,[n("For the saved API, you modify it again, and you need manually fill in the parameters and save "),t(o,{icon:"saveNew"}),n(" it. If you don't want the parameters you saved before at all, you can just click "),t(o,{icon:"regenerate"}),n("("),t(r,{to:"/guide/features/regenerate.html"},{default:a(()=>[n("Re generate")]),_:1}),n(").")]),e("blockquote",null,[e("p",null,[n("Please ensure that click "),L,n(),t(o,{icon:"saveNew"}),n(" every time you modify api params.")])]),V,e("p",null,[n("Left icon "),t(o,{icon:"restfulFastRequest"}),n(" missing.")]),M])}const ne=k(_,[["render",K],["__file","faq.html.vue"]]),te=JSON.parse(`{"path":"/en/guide/faq.html","title":"FAQ","lang":"en-US","frontmatter":{"title":"FAQ","icon":"faq","description":" Keywords meaning S: Slow operations are prohibited on EDT Slow operations are prohibited on EDT error. Fill into the keywords ide.slow.operations.assertion in SearchEveryWhere ...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/faq.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/faq.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"FAQ"}],["meta",{"property":"og:description","content":" Keywords meaning S: Slow operations are prohibited on EDT Slow operations are prohibited on EDT error. Fill into the keywords ide.slow.operations.assertion in SearchEveryWhere ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/faq/slowOperationsConfig.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"FAQ"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"FAQ\\",\\"image\\":[\\"https://api-buddy.com/img/faq/slowOperationsConfig.png\\",\\"https://api-buddy.com/img/faq/enableNotifications.png\\",\\"https://api-buddy.com/img/manageConfig_en.png\\",\\"https://api-buddy.com/img/faq/timeout_en.png\\",\\"https://api-buddy.com/img/faq/dataTransfer202313.png\\",\\"https://api-buddy.com/img/skill/urlError_en.png\\",\\"https://api-buddy.com/img/2024.1.1/ignoreFiled_en.png\\",\\"https://api-buddy.com/img/apiPreview.gif\\",\\"https://api-buddy.com/img/skill/multiFileUpload.png\\",\\"https://api-buddy.com/img/faq/showToolbar.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"S: Slow operations are prohibited on EDT","slug":"s-slow-operations-are-prohibited-on-edt","link":"#s-slow-operations-are-prohibited-on-edt","children":[]},{"level":2,"title":"S: Send button is disabled, but there is no notification message","slug":"s-send-button-is-disabled-but-there-is-no-notification-message","link":"#s-send-button-is-disabled-but-there-is-no-notification-message","children":[]},{"level":2,"title":"S: Timeout setting","slug":"s-timeout-setting","link":"#s-timeout-setting","children":[]},{"level":2,"title":"S: Quickly add domain","slug":"s-quickly-add-domain","link":"#s-quickly-add-domain","children":[]},{"level":2,"title":"S: APIs lost","slug":"s-apis-lost","link":"#s-apis-lost","children":[]},{"level":2,"title":"S: Url error","slug":"s-url-error","link":"#s-url-error","children":[]},{"level":2,"title":"S: How to ignore the field of the entity","slug":"s-how-to-ignore-the-field-of-the-entity","link":"#s-how-to-ignore-the-field-of-the-entity","children":[]},{"level":2,"title":"S: Quick locate","slug":"s-quick-locate","link":"#s-quick-locate","children":[]},{"level":2,"title":"S: Multi-file upload","slug":"s-multi-file-upload","link":"#s-multi-file-upload","children":[]},{"level":2,"title":"S: Pass text/plain param in body","slug":"s-pass-text-plain-param-in-body","link":"#s-pass-text-plain-param-in-body","children":[]},{"level":2,"title":"S: No controller, how to send a request","slug":"s-no-controller-how-to-send-a-request","link":"#s-no-controller-how-to-send-a-request","children":[]},{"level":2,"title":"S: Get code hints while writing scripts","slug":"s-get-code-hints-while-writing-scripts","link":"#s-get-code-hints-while-writing-scripts","children":[]},{"level":2,"title":"S: API doc sync","slug":"s-api-doc-sync","link":"#s-api-doc-sync","children":[]},{"level":2,"title":"S: APIs echo","slug":"s-apis-echo","link":"#s-apis-echo","children":[]},{"level":2,"title":"S: Best Visual Effects","slug":"s-best-visual-effects","link":"#s-best-visual-effects","children":[]},{"level":2,"title":"Q: Header likes Origin not effect","slug":"q-header-likes-origin-not-effect","link":"#q-header-likes-origin-not-effect","children":[]},{"level":2,"title":"Q: Response return Unexpected end of file from server","slug":"q-response-return-unexpected-end-of-file-from-server","link":"#q-response-return-unexpected-end-of-file-from-server","children":[]},{"level":2,"title":"Q: Spring Get request with array/collection parameter reports 400 error","slug":"q-spring-get-request-with-array-collection-parameter-reports-400-error","link":"#q-spring-get-request-with-array-collection-parameter-reports-400-error","children":[]},{"level":2,"title":"Q: Action buttons are not visible","slug":"q-action-buttons-are-not-visible","link":"#q-action-buttons-are-not-visible","children":[]},{"level":2,"title":"Q: Generate parameters、jump error","slug":"q-generate-parameters、jump-error","link":"#q-generate-parameters、jump-error","children":[]},{"level":2,"title":"Q: Left icon missing","slug":"q-left-icon-missing","link":"#q-left-icon-missing","children":[]},{"level":2,"title":"Q: After entering the parameters, the API call found that the parameters were invalid","slug":"q-after-entering-the-parameters-the-api-call-found-that-the-parameters-were-invalid","link":"#q-after-entering-the-parameters-the-api-call-found-that-the-parameters-were-invalid","children":[]},{"level":2,"title":"Q: Why the plugin doesn't respond","slug":"q-why-the-plugin-doesn-t-respond","link":"#q-why-the-plugin-doesn-t-respond","children":[]},{"level":2,"title":"Q: Idea freezes after clicking the fastRequest icon","slug":"q-idea-freezes-after-clicking-the-fastrequest-icon","link":"#q-idea-freezes-after-clicking-the-fastrequest-icon","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":3.88,"words":1164},"filePathRelative":"en/guide/faq.md","localizedDate":"May 31, 2024","autoDesc":true}`);export{ne as comp,te as data}; diff --git a/assets/faq.html-uOOdmyZ0.js b/assets/faq.html-uOOdmyZ0.js new file mode 100644 index 000000000..d9c72802d --- /dev/null +++ b/assets/faq.html-uOOdmyZ0.js @@ -0,0 +1,71 @@ +import{_ as r,a as d,b as u,c as m,d as g}from"./showToolbar-1uOrduVA.js";import{_ as k}from"./ignoreFiled-6BsUexZN.js";import{_ as h}from"./apiPreview-TsYf71lp.js";import{_ as v,r as c,o as f,c as b,a as n,b as s,d as a,w as e,e as l}from"./app-8OZtYazS.js";const _="/img/manageConfig.png",q="/img/faq/timeout.png",x="/img/skill/urlError.png",y={},S=n("p",null,"关键字含义",-1),w=n("hr",null,null,-1),A=n("p",null,"我们将持续更新开发者遇到的问题以及解决方案",-1),C={class:"table-of-contents"},Q=l('

    S: Slow operations are prohibited on EDT

    报错Slow operations are prohibited on EDT相关错误。

    在 SearchEveryWhere 中输入关键字 ide.slow.operations.assertion ,并将下图所示的关闭。

    slowOperationsConfig

    S: 发送按钮被禁用,但是没有任何提示

    需要手动开启通知消息。如果通知消息不开启,很多提示都不能被展现,所以需要配置 IDEA 的消息通知设置。其他情况类同处理。

    需要前往 Setting-> Appearance & Behavior->Nofications 选中 Display ballon notificationsEnable system notifications. 如果Don't ask again nofications勾选了FastRequest,则需要移除条目。

    enableNotifications

    S: 超时时间设置

    默认: 60 秒

    点击插件设置按钮管理配置,设置ConnectTimeout和ReadTimeout的值。

    manageConfig

    timeout

    S: 快捷添加域名

    ',14),T=n("strong",null,"2023.1.1",-1),E=n("h2",{id:"s-apis-丢失",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#s-apis-丢失"},[n("span",null,"S: APIs 丢失")])],-1),I=n("p",null,[a("非常抱歉,安装过 2023.1.3 版本的(已隐藏)会导致历史 apis 丢失,此时需要手动找回数据。"),n("mark",null,"请不要回退插件版本")],-1),F={start:"0"},P=n("li",null,"下载插件版本>=2023.1.3.2+的版本",-1),j=n("li",null,[a("找到项目下的.idea 目录,右键并点击 Local history(本地历史记录),找到关于"),n("code",null,".idea/FastRequestCollection.xml"),a("的变更日志(标题包含了 Deleting),找到最后一个版本,把其中的内容拷贝到"),n("code",null,".idea/fastRequest/fastRequestCollection.xml"),a("中,")],-1),D=n("li",null,"重启 idea",-1),R=n("p",null,[n("img",{src:r,alt:"dataTransfer20231",loading:"lazy"})],-1),B=n("h2",{id:"s-url-错误",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#s-url-错误"},[n("span",null,"S: Url 错误")])],-1),z=n("p",null,[n("img",{src:x,alt:"urlError",loading:"lazy"})],-1),U=l(`
    1. 配置正确的域名,并启用项目和环境2个下拉框
    2. 设置正确的url,例如需要将url上的变量{id}替换,可以在Path Param tab中替换变量

    S: 解析如何忽略某个字段

    方式 1: 给字段使用如下 2 种注解中的一种

    com.fasterxml.jackson.annotation.JsonIgnore
    +
    +com.alibaba.fastjson.annotation.JSONField(serialize = false)
    +

    方式 2: 给字段增加 static 修饰符

    方式 3:注释上加@fastRequestParseIgnore

    /**
    + * xxx description
    + * @fastRequestParseIgnore
    + */
    +private String someIgnoreField ;
    +

    方式 4: 忽略字段名解析配置

    ignoreFiled

    只需要在配置中增加字段名,即可将实体类中的特定字段忽略生成

    S: 快速定位

    获取到窗口或者弹出框焦点以后,输入需要搜索的字母,快读定位,然后使用箭头或者箭头进行跳跃定位

    例如:

    apiDocExample

    S: 多文件上传

    输入多个值并将字段类型设置为 file

    multiFileUpload

    S: Body 中想直接传 text

    在 header 中加入Content-Type: text/plain

    ',19),N=n("h2",{id:"s-没有-controller-如何发送请求",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#s-没有-controller-如何发送请求"},[n("span",null,"S: 没有 Controller,如何发送请求")])],-1),O=l(`

    S: 写脚本时得到提示

    复制一下代码,完成脚本编辑后删除

    import cn.hutool.http.HttpUtil
    +
    +def request = HttpUtil.createGet("shouldremove")
    +def response = request.execute()
    +

    S: API 文档同步

    `,4),H=n("p",null,"建议:不需要提前在 Github、Gitee、Gitlab 创建仓库,插件自动会帮助创建,开发者只需要提供仓库名就行",-1),W=n("h2",{id:"s-apis-回显",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#s-apis-回显"},[n("span",null,"S: APIs 回显")])],-1),G=n("code",null,"保存",-1),L=l(`

    S: 最佳视觉效果

    调整工具窗口宽度至610+像素,达到最佳视觉效果

    Q: Origin等请求头失效

    由于 sun.net.www.protocol.http.HttpURLConnection 设置了受限标头,以下一些请求头如果想使用,则需要给IDEA配置vm参数

    private static final String[] restrictedHeaders = {
    +        /* Restricted by XMLHttpRequest2 */
    +        //"Accept-Charset",
    +        //"Accept-Encoding",
    +        "Access-Control-Request-Headers",
    +        "Access-Control-Request-Method",
    +        "Connection", /* close is allowed */
    +        "Content-Length",
    +        //"Cookie",
    +        //"Cookie2",
    +        "Content-Transfer-Encoding",
    +        //"Date",
    +        //"Expect",
    +        "Host",
    +        "Keep-Alive",
    +        "Origin",
    +        // "Referer",
    +        // "TE",
    +        "Trailer",
    +        "Transfer-Encoding",
    +        "Upgrade",
    +        //"User-Agent",
    +        "Via"
    +    };
    +

    点击 help->Edit Custom Vm Options...,在 idea.vmoptions(linux) 或者 idea64.exe.vmoptions (windows)中加入加入如下配置

    -Dsun.net.http.allowRestrictedHeaders=true
    +

    Q: 响应返回Unexpected end of file from server

    1. 网络连接丢失
    +2. 服务器决定关闭连接
    +3. 客户端和服务器之间的某些东西(nginx、路由器等)终止了请求
    +4. 服务端 api 需要代理但是 IDEA 没有配置,尤其是一些内网项目
    +

    IDEA配置代理: Setting-> Appearance & Behavior->System Settings->HTTP Proxy

    Q: Spring Get参数带数组/集合参数报 400错误

    例如Url http://localhost:8081/test?a[0].b[0].token=xxx&a[0].b[0].name=yyy

    加入如下配置

    import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
    +import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
    +import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
    +import org.springframework.context.annotation.Bean;
    +import org.springframework.context.annotation.Configuration;
    +
    +@Configuration
    +public class WebConfig {
    +
    +    @Bean
    +    public ConfigurableServletWebServerFactory webServerFactory() {
    +        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
    +        factory.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> connector.setProperty("relaxedQueryChars", "|{}[]\\\\"));
    +        return factory;
    +    }
    +
    +}
    +

    Q: 操作按钮不可见

    点击 Options 勾选 Show Toolbar

    Q: 生成参数、跳转错乱

    A: controller 代码里面不要出现方法名一样的方法

    Q: 左侧图标不显示

    ',20),V=l('

    A: 打开配置 setting->Editor->Gutter icons->show gutter icon

    B: 检查是否安装了 forestx 插件,该插件目前会引起 Fast Request 插件图标不展示

    Q: 输入参数后调用 API 发现无效

    A: 插件版本小于 2022.2.3 的在 table 控件编辑某个值的时候,需要在编辑完值后先在空白处点一下,再发送请求,该问题在 2022.2.3+版本得到修复

    Q: 为啥插件没反应

    ',5),J=n("strong",null,"A:",-1),M=l(`

    Q: 点击图标后 idea 卡死

    A: 你设计的实体类嵌套递归,插件不支持,比如说 A 实体类有 B 实体类的属性,B 实体类有 A 实体类的属性

    public class A {
    +    private B b;
    +    private int xx;
    +}
    +public class B {
    +    private A a;
    +    private String xx;
    +}
    +

    以上这种情况如果你不需要 B 属性,那么你可以在生成的时候手动给 B 加一个 static 属性

    public class A {
    +    private static B b;
    +    private int xx;
    +}
    +
    `,5);function Z(K,$){const p=c("Badge"),t=c("router-link"),o=c("ColorIcon"),i=c("RouteLink");return f(),b("div",null,[n("blockquote",null,[S,s(p,{text:"S: 技巧",color:"#087CFA"}),a(),s(p,{text:"Q: 问题",color:"#FE2857"}),a(),s(p,{text:"A: 答案",color:"#21D789"}),w,A]),n("nav",C,[n("ul",null,[n("li",null,[s(t,{to:"#s-slow-operations-are-prohibited-on-edt"},{default:e(()=>[a("S: Slow operations are prohibited on EDT")]),_:1})]),n("li",null,[s(t,{to:"#s-发送按钮被禁用-但是没有任何提示"},{default:e(()=>[a("S: 发送按钮被禁用,但是没有任何提示")]),_:1})]),n("li",null,[s(t,{to:"#s-超时时间设置"},{default:e(()=>[a("S: 超时时间设置")]),_:1})]),n("li",null,[s(t,{to:"#s-快捷添加域名"},{default:e(()=>[a("S: 快捷添加域名")]),_:1})]),n("li",null,[s(t,{to:"#s-apis-丢失"},{default:e(()=>[a("S: APIs 丢失")]),_:1})]),n("li",null,[s(t,{to:"#s-url-错误"},{default:e(()=>[a("S: Url 错误")]),_:1})]),n("li",null,[s(t,{to:"#s-解析如何忽略某个字段"},{default:e(()=>[a("S: 解析如何忽略某个字段")]),_:1})]),n("li",null,[s(t,{to:"#s-快速定位"},{default:e(()=>[a("S: 快速定位")]),_:1})]),n("li",null,[s(t,{to:"#s-多文件上传"},{default:e(()=>[a("S: 多文件上传")]),_:1})]),n("li",null,[s(t,{to:"#s-body-中想直接传-text"},{default:e(()=>[a("S: Body 中想直接传 text")]),_:1})]),n("li",null,[s(t,{to:"#s-没有-controller-如何发送请求"},{default:e(()=>[a("S: 没有 Controller,如何发送请求")]),_:1})]),n("li",null,[s(t,{to:"#s-写脚本时得到提示"},{default:e(()=>[a("S: 写脚本时得到提示")]),_:1})]),n("li",null,[s(t,{to:"#s-api-文档同步"},{default:e(()=>[a("S: API 文档同步")]),_:1})]),n("li",null,[s(t,{to:"#s-apis-回显"},{default:e(()=>[a("S: APIs 回显")]),_:1})]),n("li",null,[s(t,{to:"#s-最佳视觉效果"},{default:e(()=>[a("S: 最佳视觉效果")]),_:1})]),n("li",null,[s(t,{to:"#q-origin等请求头失效"},{default:e(()=>[a("Q: Origin等请求头失效")]),_:1})]),n("li",null,[s(t,{to:"#q-响应返回unexpected-end-of-file-from-server"},{default:e(()=>[a("Q: 响应返回Unexpected end of file from server")]),_:1})]),n("li",null,[s(t,{to:"#q-spring-get参数带数组-集合参数报-400错误"},{default:e(()=>[a("Q: Spring Get参数带数组/集合参数报 400错误")]),_:1})]),n("li",null,[s(t,{to:"#q-操作按钮不可见"},{default:e(()=>[a("Q: 操作按钮不可见")]),_:1})]),n("li",null,[s(t,{to:"#q-生成参数、跳转错乱"},{default:e(()=>[a("Q: 生成参数、跳转错乱")]),_:1})]),n("li",null,[s(t,{to:"#q-左侧图标不显示"},{default:e(()=>[a("Q: 左侧图标不显示")]),_:1})]),n("li",null,[s(t,{to:"#q-输入参数后调用-api-发现无效"},{default:e(()=>[a("Q: 输入参数后调用 API 发现无效")]),_:1})]),n("li",null,[s(t,{to:"#q-为啥插件没反应"},{default:e(()=>[a("Q: 为啥插件没反应")]),_:1})]),n("li",null,[s(t,{to:"#q-点击图标后-idea-卡死"},{default:e(()=>[a("Q: 点击图标后 idea 卡死")]),_:1})])])]),Q,n("p",null,[a("请参考 "),s(i,{to:"/guide/features/projectLevelDomainConfig.html"},{default:e(()=>[s(o,{icon:"domainConfig"}),a(" 项目级别域名配置")]),_:1}),a(" (插件版本>="),T,a(")")]),E,I,n("ol",F,[P,j,D,n("li",null,[a("在 APIs tab 下点击图标"),s(o,{icon:"dataTransfer"}),a("并确认数据转移")])]),R,B,z,s(p,{text:"解决办法",type:"tip"}),U,n("p",null,[a("考虑使用"),s(i,{to:"/guide/features/commonHeader.html"},{default:e(()=>[a("常用头参数")]),_:1}),a("快速添加")]),N,n("p",null,[a("参考"),s(i,{to:"/guide/features/tempRequest.html"},{default:e(()=>[a("临时请求")]),_:1})]),O,n("p",null,[a("当你修改了你的接口参数,从 APIs 列表双击回来的 api 是你未更新前保存的 API,此时你想保证在线 API 文档是你修改后的, 需要再点一下 "),s(o,{icon:"saveNew"}),a("(保存) 或者左侧图标 "),s(o,{icon:"restfulFastRequest"}),a(" ,再进行同步。")]),H,W,n("p",null,[a("针对保存后的 api,又进行了修改,那么你需要手动补参数并保存。如果你完全不想要之前的参数了,直接点击"),s(o,{icon:"regenerate"}),a("("),s(i,{to:"/guide/features/regenerate.html"},{default:e(()=>[a("重新生成")]),_:1}),a(")")]),n("blockquote",null,[n("p",null,[a("请确保你每次修改参数后点击"),G,s(o,{icon:"saveNew"}),a("按钮")])]),L,n("p",null,[a("左侧图标"),s(o,{icon:"restfulFastRequest"}),a("不显示。")]),V,n("p",null,[J,a(" 请先完善配置,参考"),s(i,{to:"/guide/getstarted/start.html"},{default:e(()=>[a("快速开始")]),_:1}),a(",再点击图标")]),M])}const sn=v(y,[["render",Z],["__file","faq.html.vue"]]),en=JSON.parse('{"path":"/guide/faq.html","title":"FAQ","lang":"zh-CN","frontmatter":{"title":"FAQ","icon":"faq","description":" 关键字含义 S: Slow operations are prohibited on EDT 报错Slow operations are prohibited on EDT相关错误。 在 SearchEveryWhere 中输入关键字 ide.slow.operations.assertion ,并将下图所示的关闭。 slowOperationsCo...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/faq.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/faq.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"FAQ"}],["meta",{"property":"og:description","content":" 关键字含义 S: Slow operations are prohibited on EDT 报错Slow operations are prohibited on EDT相关错误。 在 SearchEveryWhere 中输入关键字 ide.slow.operations.assertion ,并将下图所示的关闭。 slowOperationsCo..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/faq/slowOperationsConfig.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"FAQ"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"FAQ\\",\\"image\\":[\\"https://api-buddy.com/img/faq/slowOperationsConfig.png\\",\\"https://api-buddy.com/img/faq/enableNotifications.png\\",\\"https://api-buddy.com/img/manageConfig.png\\",\\"https://api-buddy.com/img/faq/timeout.png\\",\\"https://api-buddy.com/img/faq/dataTransfer202313.png\\",\\"https://api-buddy.com/img/skill/urlError.png\\",\\"https://api-buddy.com/img/2024.1.1/ignoreFiled.png\\",\\"https://api-buddy.com/img/apiPreview.gif\\",\\"https://api-buddy.com/img/skill/multiFileUpload.png\\",\\"https://api-buddy.com/img/faq/showToolbar.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"S: Slow operations are prohibited on EDT","slug":"s-slow-operations-are-prohibited-on-edt","link":"#s-slow-operations-are-prohibited-on-edt","children":[]},{"level":2,"title":"S: 发送按钮被禁用,但是没有任何提示","slug":"s-发送按钮被禁用-但是没有任何提示","link":"#s-发送按钮被禁用-但是没有任何提示","children":[]},{"level":2,"title":"S: 超时时间设置","slug":"s-超时时间设置","link":"#s-超时时间设置","children":[]},{"level":2,"title":"S: 快捷添加域名","slug":"s-快捷添加域名","link":"#s-快捷添加域名","children":[]},{"level":2,"title":"S: APIs 丢失","slug":"s-apis-丢失","link":"#s-apis-丢失","children":[]},{"level":2,"title":"S: Url 错误","slug":"s-url-错误","link":"#s-url-错误","children":[]},{"level":2,"title":"S: 解析如何忽略某个字段","slug":"s-解析如何忽略某个字段","link":"#s-解析如何忽略某个字段","children":[]},{"level":2,"title":"S: 快速定位","slug":"s-快速定位","link":"#s-快速定位","children":[]},{"level":2,"title":"S: 多文件上传","slug":"s-多文件上传","link":"#s-多文件上传","children":[]},{"level":2,"title":"S: Body 中想直接传 text","slug":"s-body-中想直接传-text","link":"#s-body-中想直接传-text","children":[]},{"level":2,"title":"S: 没有 Controller,如何发送请求","slug":"s-没有-controller-如何发送请求","link":"#s-没有-controller-如何发送请求","children":[]},{"level":2,"title":"S: 写脚本时得到提示","slug":"s-写脚本时得到提示","link":"#s-写脚本时得到提示","children":[]},{"level":2,"title":"S: API 文档同步","slug":"s-api-文档同步","link":"#s-api-文档同步","children":[]},{"level":2,"title":"S: APIs 回显","slug":"s-apis-回显","link":"#s-apis-回显","children":[]},{"level":2,"title":"S: 最佳视觉效果","slug":"s-最佳视觉效果","link":"#s-最佳视觉效果","children":[]},{"level":2,"title":"Q: Origin等请求头失效","slug":"q-origin等请求头失效","link":"#q-origin等请求头失效","children":[]},{"level":2,"title":"Q: 响应返回Unexpected end of file from server","slug":"q-响应返回unexpected-end-of-file-from-server","link":"#q-响应返回unexpected-end-of-file-from-server","children":[]},{"level":2,"title":"Q: Spring Get参数带数组/集合参数报 400错误","slug":"q-spring-get参数带数组-集合参数报-400错误","link":"#q-spring-get参数带数组-集合参数报-400错误","children":[]},{"level":2,"title":"Q: 操作按钮不可见","slug":"q-操作按钮不可见","link":"#q-操作按钮不可见","children":[]},{"level":2,"title":"Q: 生成参数、跳转错乱","slug":"q-生成参数、跳转错乱","link":"#q-生成参数、跳转错乱","children":[]},{"level":2,"title":"Q: 左侧图标不显示","slug":"q-左侧图标不显示","link":"#q-左侧图标不显示","children":[]},{"level":2,"title":"Q: 输入参数后调用 API 发现无效","slug":"q-输入参数后调用-api-发现无效","link":"#q-输入参数后调用-api-发现无效","children":[]},{"level":2,"title":"Q: 为啥插件没反应","slug":"q-为啥插件没反应","link":"#q-为啥插件没反应","children":[]},{"level":2,"title":"Q: 点击图标后 idea 卡死","slug":"q-点击图标后-idea-卡死","link":"#q-点击图标后-idea-卡死","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":5.17,"words":1550},"filePathRelative":"guide/faq.md","localizedDate":"2024年5月31日","autoDesc":true}');export{sn as comp,en as data}; diff --git a/assets/fastAddToken-UQ7yKUMu.js b/assets/fastAddToken-UQ7yKUMu.js new file mode 100644 index 000000000..972b73720 --- /dev/null +++ b/assets/fastAddToken-UQ7yKUMu.js @@ -0,0 +1 @@ +const o="/img/fastAddToken.gif";export{o as _}; diff --git a/assets/fastAddToken_en-dl409Ccq.js b/assets/fastAddToken_en-dl409Ccq.js new file mode 100644 index 000000000..666c6a7e9 --- /dev/null +++ b/assets/fastAddToken_en-dl409Ccq.js @@ -0,0 +1 @@ +const o="/img/fastAddToken_en.gif";export{o as _}; diff --git a/assets/feature.html-4qjXMsJf.js b/assets/feature.html-4qjXMsJf.js new file mode 100644 index 000000000..8d5bfb325 --- /dev/null +++ b/assets/feature.html-4qjXMsJf.js @@ -0,0 +1,67 @@ +import{_ as m,a as _}from"./newLogoConfig-lemSO0qb.js";import{_ as h}from"./example-rxjYHypU.js";import{_ as g}from"./sendRequest-nhTc-dPg.js";import{_ as k,a as f,b as y}from"./stopApi-fM6h6OKl.js";import{_ as v}from"./downloadFile-lDoHpXkf.js";import{_ as b,a as x}from"./scriptModule-qWOTuHgm.js";import{_ as w}from"./export2postman-dEAWnBlR.js";import{_ as P}from"./apis_hd-xmI1Um5u.js";import{_ as A}from"./apiManager-Ha0ZoLBL.js";import{_ as I}from"./saveRequest-0-01KgNg.js";import{_ as z}from"./groupSave_en-p1Ro7kOp.js";import{_ as S}from"./tempSave_en-UAfESuzh.js";import{_ as C}from"./regenerate-9LByprDy.js";import{_ as $}from"./curl_dark-QQY3Pwtw.js";import{_ as R}from"./curl-bEDrqTL_.js";import{_ as j}from"./fastAddToken-UQ7yKUMu.js";import{_ as q}from"./apiGroup-QroA2f5e.js";import{_ as N}from"./moduleSearch-vDt27hRI.js";import{_ as D}from"./json-Eu6ts4pk.js";import{_ as E}from"./apinav-gngrTEBb.js";import{_ as L}from"./headerSwitch-6dFu89NK.js";import{_ as M}from"./exportImportApis-cRKbjcMp.js";import{_ as U}from"./paramDescription-tGSx8XCt.js";import{_ as T}from"./shareApi-uRFN2kOm.js";import{_ as B}from"./apiDocExample-I6FA1jbR.js";import{_ as G}from"./apiPreview-TsYf71lp.js";import{_ as V}from"./projectConfigParam-_5a22Qyh.js";import{_ as W}from"./importByCurl-5n26pegp.js";import{_ as H}from"./navigate2CurrentMethod-91w29pZx.js";import{_ as J}from"./history-jJ_6Nu4h.js";import{_ as O}from"./batchExportApiDoc-XZ7l86Mn.js";import{_ as Z}from"./copyUrl-qs4zOYAL.js";import{_ as F}from"./rawHtmlPreview-k0XMOGO2.js";import{_ as K,a as Q,b as X}from"./showCommentInNavigate-eoTLjphJ.js";import{_ as Y,r as l,o as tt,c as nt,a as t,d as n,b as a,w as e,e as r}from"./app-8OZtYazS.js";const at={},st=t("mark",null,"不再维护",-1),et={class:"table-of-contents"},ot={id:"让图标动起来",tabindex:"-1"},lt={class:"header-anchor",href:"#让图标动起来"},it=t("p",null,[n("开发者可以在下拉框里面自由选择并切换你想要的颜色,并且可以让它"),t("mark",null,"动起来"),n("(性能佳)")],-1),pt=t("p",null,[t("img",{src:m,alt:"newLogo",loading:"lazy"})],-1),ct=t("p",null,[t("img",{src:_,alt:"newLogoConfig",loading:"lazy"})],-1),rt={id:"调试-api-发送请求",tabindex:"-1"},ut={class:"header-anchor",href:"#调试-api-发送请求"},dt=t("p",null,[t("img",{src:h,alt:"example",loading:"lazy"})],-1),mt=t("p",null,"新版本中发送按钮在工具栏",-1),_t=t("p",null,[t("img",{src:g,alt:"sendRequest",loading:"lazy"})],-1),ht={id:"searcheverywhere-支持",tabindex:"-1"},gt={class:"header-anchor",href:"#searcheverywhere-支持"},kt=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`输入案例 +/url (查询指定url) +get /list (指定get方式指定url) +post /save (指定post方式指定url) +方法关键字 (查询指定描述) +`)])],-1),ft=t("p",null,[t("img",{src:k,alt:"searchEveryWhere",loading:"lazy"})],-1),yt={id:"针对响应是文件的-api",tabindex:"-1"},vt={class:"header-anchor",href:"#针对响应是文件的-api"},bt=t("p",null,"点击 Send and download",-1),xt=t("p",null,[t("img",{src:v,alt:"example_download",loading:"lazy"})],-1),wt={id:"脚本",tabindex:"-1"},Pt={class:"header-anchor",href:"#脚本"},At=t("br",null,null,-1),It=t("p",null,[t("img",{src:b,alt:"scriptProject",loading:"lazy"})],-1),zt=t("p",null,[t("img",{src:x,alt:"scriptModule",loading:"lazy"})],-1),St={id:"api-导出到-postman",tabindex:"-1"},Ct={class:"header-anchor",href:"#api-导出到-postman"},$t=t("p",null,[t("img",{src:w,alt:"export2postman",loading:"lazy"})],-1),Rt={id:"api-列表",tabindex:"-1"},jt={class:"header-anchor",href:"#api-列表"},qt=t("div",{class:"hint-container tip"},[t("p",{class:"hint-container-title"},"API 列表 name 取值:"),t("ol",null,[t("li",null,"如果方法使用了 swagger 的@io.swagger.annotations.ApiOperation,则取该注解的 value 值"),t("li",null,"如果没有 swagger 直接修饰,则取方法的 javaDoc 描述"),t("li",null,"如果以上都没有则返回 New Request")]),t("p",null,"API 的 name 值支持修改")],-1),Nt=t("p",null,[t("img",{src:P,alt:"api",loading:"lazy"}),t("img",{src:A,alt:"apiManager",loading:"lazy"})],-1),Dt={id:"保存请求",tabindex:"-1"},Et={class:"header-anchor",href:"#保存请求"},Lt=r(`

    特别说明

    1. 保存的请求默认会放入Default Group中,支持拉拽放入别的组,当然最好是加入 module 分组,请查看 api 分组自动关联

    2. API 取名:如果 api 使用了 swagger 注解@ApiOperation("xxx"),则 api 取名 xxx,如果没加 swagger 注解,则使用 javadoc 作为 api 的名称,否则将取名 New Request

    if (@ApiOperation("xxx"))
    +    apiName = xxx
    +else if(java doc)
    +    apiName = java doc
    +else
    +    apiName = New Request
    +

    example_download

    ',2),Mt={id:"api-分组参数保存支持",tabindex:"-1"},Ut={class:"header-anchor",href:"#api-分组参数保存支持"},Tt=t("p",null,"目的:一个 API 下保存不同组合的参数",-1),Bt={href:"https://www.bilibili.com/video/BV1zU4y1S7pC?share_source=copy_web&vd_source=c46db3e7c134b1948dabbea9717a72ac",target:"_blank",rel:"noopener noreferrer"},Gt=t("em",null,"B 站教程",-1),Vt=t("p",null,[n("如何操作:输入参数后点击"),t("mark",null,"分组请求保存")],-1),Wt=t("p",null,[t("mark",null,"原保存操作将默认归类到 Default 分组")],-1),Ht=t("p",null,[t("img",{src:z,alt:"groupSave",loading:"lazy"})],-1),Jt=t("p",null,[t("strong",null,"切换参数")],-1),Ot=t("p",null,"以下是 book 列表 3 种语言的查询",-1),Zt=t("p",null,[t("img",{src:f,alt:"apiParamGroup",loading:"lazy"})],-1),Ft={id:"临时请求保存支持",tabindex:"-1"},Kt={class:"header-anchor",href:"#临时请求保存支持"},Qt=t("p",null,"目的:项目中保存任意不属于本项目的请求,用于临时调用,跟当前项目代码不关联",-1),Xt=t("p",null,[n("临时请求保存的 Request 的 Url 必须以"),t("mark",null,"http"),n("或者"),t("mark",null,"https"),n("开头")],-1),Yt=t("p",null,[t("img",{src:S,alt:"tempSave",loading:"lazy"})],-1),tn={id:"重新生成请求",tabindex:"-1"},nn={class:"header-anchor",href:"#重新生成请求"},an=t("div",{class:"hint-container tip"},[t("p",{class:"hint-container-title"},"特别说明"),t("p",null,"如果你已经保存一个请求,但是想彻底重新修改其中的参数,那么你可以选择该操作")],-1),sn=t("p",null,[t("img",{src:C,alt:"regenerate",loading:"lazy"})],-1),en={id:"curl-拷贝",tabindex:"-1"},on={class:"header-anchor",href:"#curl-拷贝"},ln=t("p",null,[n("必须是先生成方法 url 及参数后,点击工具栏"),t("img",{src:$,alt:"curl",loading:"lazy"})],-1),pn=t("p",null,[t("img",{src:R,alt:"curl",loading:"lazy"})],-1),cn={id:"快速添加-header",tabindex:"-1"},rn={class:"header-anchor",href:"#快速添加-header"},un=t("p",null,"如果你的请求需要一个 token 而 token 可以通过一个登陆接口得到,那么你可以不用每次手动添加,只需要访问一下登录接口再通过以下操作来处理",-1),dn=t("p",null,[t("img",{src:j,alt:"fastAddToken",loading:"lazy"})],-1),mn={id:"api-分组自动关联",tabindex:"-1"},_n={class:"header-anchor",href:"#api-分组自动关联"},hn=r('

    api 分组是为了将保存的 api 保存到不同分组以便区分不同的 api,当处于多模块的项目情况下,支持扫描项目中的 module,并且快速得将 module 添加到分组中,这种方式会将分组添加到 root 下

    v2.1.2 保存 api 的时候自动创建 module group

    apiGroup

    特别说明

    1. 如果没有创建 module 分组,那么保存请求的时候会将保存的请求放入 Default Group
    2. 如果创建 module 分组,那么保存请求的时候会自动根据当前 API 所处于的 module 自动归类到对应的 Module Group
    3. 当然你可以通过拉拽的方式自行移动 API 到对应的更小的 group,并不冲突

    模块支持快速搜索(光标焦点放在列表上输入关键字即可)

    moduleSearch

    ',6),gn={id:"json-语法检查",tabindex:"-1"},kn={class:"header-anchor",href:"#json-语法检查"},fn=t("p",null,[n("右上角提供了 json 语法检查,如果输入有误会提示对应的错误"),t("br"),n(" 当然也支持格式化等操作")],-1),yn=t("p",null,[t("img",{src:D,alt:"json",loading:"lazy"})],-1),vn={id:"api-导航树",tabindex:"-1"},bn={class:"header-anchor",href:"#api-导航树"},xn=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`选中树输入关键字,再按回车或者鼠标左键双击即可定位到API + +悬浮鼠标显示api的doc + +API Navigate树默认是懒加载的,需要点击刷新按钮,同样每次新增了API你也需要刷新才能得到 +懒加载有利于加快idea启动速度 +`)])],-1),wn=t("p",null,[t("img",{src:E,alt:"apinavi",loading:"lazy"})],-1),Pn={id:"headers-分组",tabindex:"-1"},An={class:"header-anchor",href:"#headers-分组"},In=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`场景:SpringBoot等多模块项目不同项目、不同环境下头参数不同,为了快速自动切换headers,引入了header分组 +操作方式: +1.在headers group里修改约束:输入的值必须是标准json格式 +2.直接切换环境,然后再headers表格中输入对应的key、value值 +`)])],-1),zn=t("p",null,[t("img",{src:L,alt:"headerSwitch",loading:"lazy"})],-1),Sn={id:"apis-导入导出",tabindex:"-1"},Cn={class:"header-anchor",href:"#apis-导入导出"},$n=t("p",null,"利用改功能,你可以非常方便得将自己已有的 APIs 分享给别的开发者,或者导入到其他设备上的 IDEA",-1),Rn=t("div",{class:"hint-container caution"},[t("p",{class:"hint-container-title"},"注意点"),t("ul",null,[t("li",null,[t("p",null,"导出的时候会新增一个名为 fastRequestCollection.xml 的 xml 文件,你不能重命名它, 默认导出到当前项目路径下")]),t("li",null,[t("p",null,"导入的时候会做默认备份,并且会在.idea 文件夹下生成一个名为 fastRequestCollection-yyyyMMddHHmmssSSS.xml 的文件, 如果是导入误操作,可以通过导入它来还原")]),t("li",null,[t("p",null,"如果 fastRequestCollection.xml 不可见,点击 file->Reload All from Disk 来强制刷新")])])],-1),jn=t("p",null,[t("img",{src:M,alt:"headerSwitch",loading:"lazy"})],-1),qn={id:"swagger-默认值解析支持",tabindex:"-1"},Nn={class:"header-anchor",href:"#swagger-默认值解析支持"},Dn=t("p",null,"以下是一些 example",-1),En=t("p",null,"优先级: swagger 配置的值 > 配置默认值",-1),Ln=t("div",{class:"language-java line-numbers-mode","data-ext":"java","data-title":"java"},[t("pre",{class:"language-java"},[t("code",null,[t("span",{class:"token operator"},"*"),n(),t("span",{class:"token annotation punctuation"},"@ApiParam"),n(` + +`),t("span",{class:"token annotation punctuation"},"@GetMapping"),t("span",{class:"token punctuation"},"("),n("value"),t("span",{class:"token operator"},"="),t("span",{class:"token string"},'"/test/{id}"'),t("span",{class:"token punctuation"},")"),n(` +`),t("span",{class:"token keyword"},"public"),n(),t("span",{class:"token class-name"},"String"),n(),t("span",{class:"token function"},"test3"),t("span",{class:"token punctuation"},"("),t("span",{class:"token annotation punctuation"},"@ApiParam"),t("span",{class:"token punctuation"},"("),n("name "),t("span",{class:"token operator"},"="),n(),t("span",{class:"token string"},'"id"'),t("span",{class:"token punctuation"},","),n("example"),t("span",{class:"token operator"},"="),t("span",{class:"token string"},'"2"'),t("span",{class:"token punctuation"},")"),n(),t("span",{class:"token annotation punctuation"},"@PathVariable"),t("span",{class:"token punctuation"},"("),t("span",{class:"token string"},'"id"'),t("span",{class:"token punctuation"},")"),n(),t("span",{class:"token class-name"},"Integer"),n(" id"),t("span",{class:"token punctuation"},")"),n(),t("span",{class:"token punctuation"},"{"),n(` + `),t("span",{class:"token keyword"},"return"),n(),t("span",{class:"token string"},'""'),t("span",{class:"token punctuation"},";"),n(` +`),t("span",{class:"token punctuation"},"}"),n(` + +`),t("span",{class:"token annotation punctuation"},"@GetMapping"),t("span",{class:"token punctuation"},"("),n("value"),t("span",{class:"token operator"},"="),t("span",{class:"token string"},'"/test/{id}"'),t("span",{class:"token punctuation"},")"),n(` +`),t("span",{class:"token keyword"},"public"),n(),t("span",{class:"token class-name"},"String"),n(),t("span",{class:"token function"},"test3"),t("span",{class:"token punctuation"},"("),t("span",{class:"token annotation punctuation"},"@ApiParam"),t("span",{class:"token punctuation"},"("),n("name "),t("span",{class:"token operator"},"="),n(),t("span",{class:"token string"},'"id"'),t("span",{class:"token punctuation"},","),n("defaultValue"),t("span",{class:"token operator"},"="),t("span",{class:"token string"},'"2"'),t("span",{class:"token punctuation"},")"),n(),t("span",{class:"token annotation punctuation"},"@PathVariable"),t("span",{class:"token punctuation"},"("),t("span",{class:"token string"},'"id"'),t("span",{class:"token punctuation"},")"),n(),t("span",{class:"token class-name"},"Integer"),n(" id"),t("span",{class:"token punctuation"},")"),n(),t("span",{class:"token punctuation"},"{"),n(` + `),t("span",{class:"token keyword"},"return"),n(),t("span",{class:"token string"},'""'),t("span",{class:"token punctuation"},";"),n(` +`),t("span",{class:"token punctuation"},"}"),n(` + + +`),t("span",{class:"token operator"},"*"),n(),t("span",{class:"token annotation punctuation"},"@ApiImplicitParam"),n(` + +`),t("span",{class:"token annotation punctuation"},"@ApiImplicitParams"),t("span",{class:"token punctuation"},"("),t("span",{class:"token punctuation"},"{"),n(` + `),t("span",{class:"token annotation punctuation"},"@ApiImplicitParam"),t("span",{class:"token punctuation"},"("),n("paramType"),t("span",{class:"token operator"},"="),t("span",{class:"token string"},'"query"'),t("span",{class:"token punctuation"},","),n("name"),t("span",{class:"token operator"},"="),t("span",{class:"token string"},'"pageNo"'),t("span",{class:"token punctuation"},","),n("dataType"),t("span",{class:"token operator"},"="),t("span",{class:"token string"},'"String"'),t("span",{class:"token punctuation"},","),n("required"),t("span",{class:"token operator"},"="),t("span",{class:"token boolean"},"true"),t("span",{class:"token punctuation"},","),n("value"),t("span",{class:"token operator"},"="),t("span",{class:"token string"},'"pageNo"'),t("span",{class:"token punctuation"},","),n("defaultValue"),t("span",{class:"token operator"},"="),t("span",{class:"token string"},'"1"'),t("span",{class:"token punctuation"},")"),t("span",{class:"token punctuation"},","),n(` + `),t("span",{class:"token annotation punctuation"},"@ApiImplicitParam"),t("span",{class:"token punctuation"},"("),n("paramType"),t("span",{class:"token operator"},"="),t("span",{class:"token string"},'"query"'),t("span",{class:"token punctuation"},","),n("name"),t("span",{class:"token operator"},"="),t("span",{class:"token string"},'"pageSize"'),t("span",{class:"token punctuation"},","),n("dataType"),t("span",{class:"token operator"},"="),t("span",{class:"token string"},'"String"'),t("span",{class:"token punctuation"},","),n("required"),t("span",{class:"token operator"},"="),t("span",{class:"token boolean"},"true"),t("span",{class:"token punctuation"},","),n("value"),t("span",{class:"token operator"},"="),t("span",{class:"token string"},'"pageSize"'),t("span",{class:"token punctuation"},","),n("defaultValue"),t("span",{class:"token operator"},"="),t("span",{class:"token string"},'"10"'),t("span",{class:"token punctuation"},")"),n(` +`),t("span",{class:"token punctuation"},"}"),t("span",{class:"token punctuation"},")"),n(` +`),t("span",{class:"token annotation punctuation"},"@GetMapping"),t("span",{class:"token punctuation"},"("),n("value"),t("span",{class:"token operator"},"="),n('"'),t("span",{class:"token operator"},"/"),n("testPage"),t("span",{class:"token punctuation"},")"),n(` +`),t("span",{class:"token keyword"},"public"),n(),t("span",{class:"token class-name"},"String"),n(),t("span",{class:"token function"},"testPage"),t("span",{class:"token punctuation"},"("),t("span",{class:"token annotation punctuation"},"@RequestParam"),t("span",{class:"token punctuation"},"("),t("span",{class:"token string"},'"pageNo"'),t("span",{class:"token punctuation"},")"),n(),t("span",{class:"token class-name"},"Integer"),n(" pageNo"),t("span",{class:"token punctuation"},","),n(),t("span",{class:"token annotation punctuation"},"@RequestParam"),t("span",{class:"token punctuation"},"("),t("span",{class:"token string"},'"pageSize"'),t("span",{class:"token punctuation"},")"),n(),t("span",{class:"token class-name"},"Integer"),n(" pageSize"),t("span",{class:"token punctuation"},")"),n(),t("span",{class:"token punctuation"},"{"),n(` + `),t("span",{class:"token keyword"},"return"),n(),t("span",{class:"token string"},'""'),t("span",{class:"token punctuation"},";"),n(` +`),t("span",{class:"token punctuation"},"}"),n(` + + +`),t("span",{class:"token operator"},"*"),n(),t("span",{class:"token annotation punctuation"},"@ApiModelProperty"),n(` +`),t("span",{class:"token annotation punctuation"},"@Data"),n(` +`),t("span",{class:"token keyword"},"public"),n(),t("span",{class:"token keyword"},"class"),n(),t("span",{class:"token class-name"},"UserDto"),n(),t("span",{class:"token punctuation"},"{"),n(` + `),t("span",{class:"token annotation punctuation"},"@ApiModelProperty"),t("span",{class:"token punctuation"},"("),n("example "),t("span",{class:"token operator"},"="),n(),t("span",{class:"token string"},'"Bob"'),t("span",{class:"token punctuation"},")"),n(` + `),t("span",{class:"token keyword"},"private"),n(),t("span",{class:"token class-name"},"String"),n(" userName"),t("span",{class:"token punctuation"},";"),n(` +`),t("span",{class:"token punctuation"},"}"),n(` +`)])]),t("div",{class:"line-numbers","aria-hidden":"true"},[t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"})])],-1),Mn=t("div",{class:"language-java line-numbers-mode","data-ext":"java","data-title":"java"},[t("pre",{class:"language-java"},[t("code",null,[t("span",{class:"token operator"},"*"),n(),t("span",{class:"token annotation punctuation"},"@Parameter"),n(` + +`),t("span",{class:"token annotation punctuation"},"@GetMapping"),t("span",{class:"token punctuation"},"("),n("value"),t("span",{class:"token operator"},"="),t("span",{class:"token string"},'"/test/{id}"'),t("span",{class:"token punctuation"},")"),n(` +`),t("span",{class:"token keyword"},"public"),n(),t("span",{class:"token class-name"},"String"),n(),t("span",{class:"token function"},"test3"),t("span",{class:"token punctuation"},"("),t("span",{class:"token annotation punctuation"},"@Parameter"),t("span",{class:"token punctuation"},"("),n("name "),t("span",{class:"token operator"},"="),n(),t("span",{class:"token string"},'"id"'),t("span",{class:"token punctuation"},","),n("example"),t("span",{class:"token operator"},"="),t("span",{class:"token string"},'"2"'),t("span",{class:"token punctuation"},")"),n(),t("span",{class:"token annotation punctuation"},"@PathVariable"),t("span",{class:"token punctuation"},"("),t("span",{class:"token string"},'"id"'),t("span",{class:"token punctuation"},")"),n(),t("span",{class:"token class-name"},"Integer"),n(" id"),t("span",{class:"token punctuation"},")"),n(),t("span",{class:"token punctuation"},"{"),n(` + `),t("span",{class:"token keyword"},"return"),n(),t("span",{class:"token string"},'""'),t("span",{class:"token punctuation"},";"),n(` +`),t("span",{class:"token punctuation"},"}"),n(` + +`),t("span",{class:"token operator"},"*"),n(),t("span",{class:"token annotation punctuation"},"@Schema"),t("span",{class:"token punctuation"},"("),n("swagger3"),t("span",{class:"token punctuation"},")"),n(` + +`),t("span",{class:"token annotation punctuation"},"@Data"),n(` +`),t("span",{class:"token keyword"},"public"),n(),t("span",{class:"token keyword"},"class"),n(),t("span",{class:"token class-name"},"UserDto"),n(),t("span",{class:"token punctuation"},"{"),n(` + `),t("span",{class:"token annotation punctuation"},"@Schema"),t("span",{class:"token punctuation"},"("),n("example "),t("span",{class:"token operator"},"="),n(),t("span",{class:"token string"},'"Bob"'),t("span",{class:"token punctuation"},")"),n(` + `),t("span",{class:"token keyword"},"private"),n(),t("span",{class:"token class-name"},"String"),n(" userName"),t("span",{class:"token punctuation"},";"),n(` +`),t("span",{class:"token punctuation"},"}"),n(` +`)])]),t("div",{class:"line-numbers","aria-hidden":"true"},[t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"})])],-1),Un={id:"api-自动生成注释",tabindex:"-1"},Tn={class:"header-anchor",href:"#api-自动生成注释"},Bn=t("p",null,[n("字段注释需要符合标准注释规范,使用"),t("code",null,"/**描述*/")],-1),Gn=t("p",null,"可以通过点击隐藏或显示 Description",-1),Vn=t("p",null,[t("img",{src:U,alt:"paramDescription",loading:"lazy"})],-1),Wn={id:"api-生成-markdown-文档",tabindex:"-1"},Hn={class:"header-anchor",href:"#api-生成-markdown-文档"},Jn=t("p",null,"请注意 word 形式的 API 内部采用 html 来实现的,所以不要觉得奇怪,导出就行",-1),On=t("p",null,"Response Example 需要运行你的 API 后才会被显示",-1),Zn=t("p",null,[t("img",{src:T,alt:"shareDocButton",loading:"lazy"})],-1),Fn=t("p",null,[t("img",{src:B,alt:"apiDocExample",loading:"lazy"})],-1),Kn={id:"api-一览表预览",tabindex:"-1"},Qn={class:"header-anchor",href:"#api-一览表预览"},Xn=t("p",null,"聚焦窗口后输入关键字,根据 API 的路径关键字可以快速搜索",-1),Yn=t("p",null,[t("img",{src:G,alt:"apiDocExample",loading:"lazy"})],-1),ta={id:"项目级别全局参数支持",tabindex:"-1"},na={class:"header-anchor",href:"#项目级别全局参数支持"},aa=t("p",null,"支持项目级别内的全局参数,不受多模块影响",-1),sa=t("p",null,[n("配置优先级"),t("code",null,"api头 > 项目级别全局请求头 > 全局请求头")],-1),ea=t("p",null,[t("img",{src:V,alt:"projectConfigParam",loading:"lazy"})],-1),oa={id:"curl-导入",tabindex:"-1"},la={class:"header-anchor",href:"#curl-导入"},ia=t("p",null,[t("img",{src:W,alt:"importByCurl",loading:"lazy"})],-1),pa=t("p",null,[t("mark",null,"请注意如果需要绑定方法,则需要将光标放置到方法名上")],-1),ca={id:"当前方法定位",tabindex:"-1"},ra={class:"header-anchor",href:"#当前方法定位"},ua=t("p",null,"当你生成好方法的 url 以后,又切换到代码中的别的地方,然后又想开始调试该 API 方法,可以通过此功能快速定位到代码",-1),da=t("p",null,[t("img",{src:H,alt:"navigate2CurrentMethod",loading:"lazy"})],-1),ma={id:"历史请求预览",tabindex:"-1"},_a={class:"header-anchor",href:"#历史请求预览"},ha=t("p",null,"隐藏技能:双击记录可以展示详情",-1),ga=t("p",null,[t("img",{src:J,alt:"history",loading:"lazy"})],-1),ka={id:"终止-api-请求功能",tabindex:"-1"},fa={class:"header-anchor",href:"#终止-api-请求功能"},ya=t("p",null,[t("img",{src:y,alt:"stopApi",loading:"lazy"})],-1),va={id:"批量导出-api-文档",tabindex:"-1"},ba={class:"header-anchor",href:"#批量导出-api-文档"},xa=t("p",null,[t("img",{src:O,alt:"batchExportApiDoc",loading:"lazy"})],-1),wa={id:"一键拷贝-url",tabindex:"-1"},Pa={class:"header-anchor",href:"#一键拷贝-url"},Aa=t("p",null,[t("img",{src:Z,alt:"copyUrl",loading:"lazy"})],-1),Ia={id:"raw-中-html-预览",tabindex:"-1"},za={class:"header-anchor",href:"#raw-中-html-预览"},Sa=t("p",null,"可以对 html 进行预览",-1),Ca=t("p",null,[t("img",{src:F,alt:"rawHtmlPreview",loading:"lazy"})],-1),$a={id:"api-注释预览",tabindex:"-1"},Ra={class:"header-anchor",href:"#api-注释预览"},ja=t("p",null,[t("img",{src:K,alt:"showCommentConfig",loading:"lazy"}),t("img",{src:Q,alt:"showCommentInClass",loading:"lazy"}),t("img",{src:X,alt:"showCommentInNavigate",loading:"lazy"})],-1);function qa(Na,Da){const c=l("RouteLink"),s=l("Badge"),o=l("router-link"),u=l("ExternalLinkIcon"),d=l("CodeTabs");return tt(),nt("div",null,[t("p",null,[st,n(","),a(c,{to:"/guide/features/"},{default:e(()=>[n("请点击这边的文档")]),_:1})]),t("nav",et,[t("ul",null,[t("li",null,[a(o,{to:"#让图标动起来"},{default:e(()=>[n("让图标动起来 "),a(s,{text:"2022.2.4"})]),_:1})]),t("li",null,[a(o,{to:"#调试-api-发送请求"},{default:e(()=>[n("调试 API 发送请求 "),a(s,{text:"2.0.0"})]),_:1})]),t("li",null,[a(o,{to:"#searcheverywhere-支持"},{default:e(()=>[n("SearchEveryWhere 支持 "),a(s,{text:"2.1.1"})]),_:1})]),t("li",null,[a(o,{to:"#针对响应是文件的-api"},{default:e(()=>[n("针对响应是文件的 API "),a(s,{text:"2.0.2",type:"error"})]),_:1})]),t("li",null,[a(o,{to:"#脚本"},{default:e(()=>[n("脚本 "),a(s,{text:"2022.2.3+",type:"error"})]),_:1})]),t("li",null,[a(o,{to:"#api-导出到-postman"},{default:e(()=>[n("API 导出到 Postman "),a(s,{text:"2.1.2",type:"error"})]),_:1})]),t("li",null,[a(o,{to:"#api-列表"},{default:e(()=>[n("API 列表 "),a(s,{text:"2.0.1",type:"warning"})]),_:1})]),t("li",null,[a(o,{to:"#保存请求"},{default:e(()=>[n("保存请求 "),a(s,{text:"2.0.0"})]),_:1})]),t("li",null,[a(o,{to:"#api-分组参数保存支持"},{default:e(()=>[n("API 分组参数保存支持 "),a(s,{text:"2022.2.1"})]),_:1})]),t("li",null,[a(o,{to:"#临时请求保存支持"},{default:e(()=>[n("临时请求保存支持 "),a(s,{text:"2022.2.1"})]),_:1})]),t("li",null,[a(o,{to:"#重新生成请求"},{default:e(()=>[n("重新生成请求 "),a(s,{text:"2.0.0",type:"error"})]),_:1})]),t("li",null,[a(o,{to:"#curl-拷贝"},{default:e(()=>[n("CURL 拷贝 "),a(s,{text:"1.1.4",type:"warning"})]),_:1})]),t("li",null,[a(o,{to:"#快速添加-header"},{default:e(()=>[n("快速添加 header "),a(s,{text:"2.0.0"})]),_:1})]),t("li",null,[a(o,{to:"#api-分组自动关联"},{default:e(()=>[n("API 分组自动关联 "),a(s,{text:"2.0.6",type:"warning"})]),_:1})]),t("li",null,[a(o,{to:"#json-语法检查"},{default:e(()=>[n("Json 语法检查 "),a(s,{text:"2.0.6",type:"error"})]),_:1})]),t("li",null,[a(o,{to:"#api-导航树"},{default:e(()=>[n("API 导航树 "),a(s,{text:"2.0.7"})]),_:1})]),t("li",null,[a(o,{to:"#headers-分组"},{default:e(()=>[n("Headers 分组 "),a(s,{text:"2.0.7"})]),_:1})]),t("li",null,[a(o,{to:"#apis-导入导出"},{default:e(()=>[n("APIs 导入导出 "),a(s,{text:"2022.1.4.0"})]),_:1})]),t("li",null,[a(o,{to:"#swagger-默认值解析支持"},{default:e(()=>[n("swagger 默认值解析支持 "),a(s,{text:"2022.1.4.0"})]),_:1})]),t("li",null,[a(o,{to:"#api-自动生成注释"},{default:e(()=>[n("API 自动生成注释 "),a(s,{text:"2022.1.5"})]),_:1})]),t("li",null,[a(o,{to:"#api-生成-markdown-文档"},{default:e(()=>[n("API 生成 Markdown 文档 "),a(s,{text:"2022.1.5"})]),_:1})]),t("li",null,[a(o,{to:"#api-一览表预览"},{default:e(()=>[n("API 一览表预览 "),a(s,{text:"2022.1.5"})]),_:1})]),t("li",null,[a(o,{to:"#项目级别全局参数支持"},{default:e(()=>[n("项目级别全局参数支持 "),a(s,{text:"2022.1.8"})]),_:1})]),t("li",null,[a(o,{to:"#curl-导入"},{default:e(()=>[n("cURL 导入 "),a(s,{text:"2022.2.1"})]),_:1})]),t("li",null,[a(o,{to:"#当前方法定位"},{default:e(()=>[n("当前方法定位 "),a(s,{text:"2022.1.7"})]),_:1})]),t("li",null,[a(o,{to:"#历史请求预览"},{default:e(()=>[n("历史请求预览 "),a(s,{text:"2022.1.10"})]),_:1})]),t("li",null,[a(o,{to:"#终止-api-请求功能"},{default:e(()=>[n("终止 API 请求功能 "),a(s,{text:"2022.2.2"})]),_:1})]),t("li",null,[a(o,{to:"#批量导出-api-文档"},{default:e(()=>[n("批量导出 API 文档 "),a(s,{text:"2022.2.2"})]),_:1})]),t("li",null,[a(o,{to:"#一键拷贝-url"},{default:e(()=>[n("一键拷贝 Url "),a(s,{text:"2022.2.3"})]),_:1})]),t("li",null,[a(o,{to:"#raw-中-html-预览"},{default:e(()=>[n("Raw 中 html 预览 "),a(s,{text:"2022.1.9"})]),_:1})]),t("li",null,[a(o,{to:"#api-注释预览"},{default:e(()=>[n("Api 注释预览 "),a(s,{text:"2022.2.6"})]),_:1})])])]),t("h2",ot,[t("a",lt,[t("span",null,[n("让图标动起来 "),a(s,{text:"2022.2.4"})])])]),it,pt,ct,t("h2",rt,[t("a",ut,[t("span",null,[n("调试 API 发送请求 "),a(s,{text:"2.0.0"})])])]),dt,mt,_t,t("h2",ht,[t("a",gt,[t("span",null,[n("SearchEveryWhere 支持 "),a(s,{text:"2.1.1"})])])]),kt,ft,t("h2",yt,[t("a",vt,[t("span",null,[n("针对响应是文件的 API "),a(s,{text:"2.0.2",type:"error"})])])]),bt,xt,t("h2",wt,[t("a",Pt,[t("span",null,[n("脚本 "),a(s,{text:"2022.2.3+",type:"error"})])])]),t("p",null,[n("脚本可以让开发者更加灵活地、动态地、方便地修改请求过程的一些入参,以及响应的处理"),At,n(" 具体请参考-------> "),a(c,{to:"/guide/script.html"},{default:e(()=>[n("脚本")]),_:1})]),It,zt,t("h2",St,[t("a",Ct,[t("span",null,[n("API 导出到 Postman "),a(s,{text:"2.1.2",type:"error"})])])]),$t,t("h2",Rt,[t("a",jt,[t("span",null,[n("API 列表 "),a(s,{text:"2.0.1",type:"warning"})])])]),qt,Nt,t("h2",Dt,[t("a",Et,[t("span",null,[n("保存请求 "),a(s,{text:"2.0.0"})])])]),Lt,t("h2",Mt,[t("a",Ut,[t("span",null,[n("API 分组参数保存支持 "),a(s,{text:"2022.2.1"})])])]),Tt,t("p",null,[t("a",Bt,[Gt,a(u)])]),Vt,Wt,Ht,Jt,Ot,Zt,t("h2",Ft,[t("a",Kt,[t("span",null,[n("临时请求保存支持 "),a(s,{text:"2022.2.1"})])])]),Qt,Xt,Yt,t("h2",tn,[t("a",nn,[t("span",null,[n("重新生成请求 "),a(s,{text:"2.0.0",type:"error"})])])]),an,sn,t("h2",en,[t("a",on,[t("span",null,[n("CURL 拷贝 "),a(s,{text:"1.1.4",type:"warning"})])])]),ln,pn,t("h2",cn,[t("a",rn,[t("span",null,[n("快速添加 header "),a(s,{text:"2.0.0"})])])]),un,dn,t("h2",mn,[t("a",_n,[t("span",null,[n("API 分组自动关联 "),a(s,{text:"2.0.6",type:"warning"})])])]),hn,t("h2",gn,[t("a",kn,[t("span",null,[n("Json 语法检查 "),a(s,{text:"2.0.6",type:"error"})])])]),fn,yn,t("h2",vn,[t("a",bn,[t("span",null,[n("API 导航树 "),a(s,{text:"2.0.7"})])])]),xn,wn,t("h2",Pn,[t("a",An,[t("span",null,[n("Headers 分组 "),a(s,{text:"2.0.7"})])])]),In,zn,t("h2",Sn,[t("a",Cn,[t("span",null,[n("APIs 导入导出 "),a(s,{text:"2022.1.4.0"})])])]),$n,Rn,jn,t("h2",qn,[t("a",Nn,[t("span",null,[n("swagger 默认值解析支持 "),a(s,{text:"2022.1.4.0"})])])]),Dn,En,a(d,{id:"278",data:[{id:"swagger2"},{id:"swagger3"}]},{title0:e(({value:i,isActive:p})=>[n("swagger2")]),title1:e(({value:i,isActive:p})=>[n("swagger3")]),tab0:e(({value:i,isActive:p})=>[Ln]),tab1:e(({value:i,isActive:p})=>[Mn]),_:1}),t("h2",Un,[t("a",Tn,[t("span",null,[n("API 自动生成注释 "),a(s,{text:"2022.1.5"})])])]),Bn,Gn,Vn,t("h2",Wn,[t("a",Hn,[t("span",null,[n("API 生成 Markdown 文档 "),a(s,{text:"2022.1.5"})])])]),Jn,On,Zn,Fn,t("h2",Kn,[t("a",Qn,[t("span",null,[n("API 一览表预览 "),a(s,{text:"2022.1.5"})])])]),Xn,Yn,t("h2",ta,[t("a",na,[t("span",null,[n("项目级别全局参数支持 "),a(s,{text:"2022.1.8"})])])]),aa,sa,ea,t("h2",oa,[t("a",la,[t("span",null,[n("cURL 导入 "),a(s,{text:"2022.2.1"})])])]),ia,pa,t("h2",ca,[t("a",ra,[t("span",null,[n("当前方法定位 "),a(s,{text:"2022.1.7"})])])]),ua,da,t("h2",ma,[t("a",_a,[t("span",null,[n("历史请求预览 "),a(s,{text:"2022.1.10"})])])]),ha,ga,t("h2",ka,[t("a",fa,[t("span",null,[n("终止 API 请求功能 "),a(s,{text:"2022.2.2"})])])]),ya,t("h2",va,[t("a",ba,[t("span",null,[n("批量导出 API 文档 "),a(s,{text:"2022.2.2"})])])]),xa,t("h2",wa,[t("a",Pa,[t("span",null,[n("一键拷贝 Url "),a(s,{text:"2022.2.3"})])])]),Aa,t("h2",Ia,[t("a",za,[t("span",null,[n("Raw 中 html 预览 "),a(s,{text:"2022.1.9"})])])]),Sa,Ca,t("h2",$a,[t("a",Ra,[t("span",null,[n("Api 注释预览 "),a(s,{text:"2022.2.6"})])])]),ja])}const ks=Y(at,[["render",qa],["__file","feature.html.vue"]]),fs=JSON.parse('{"path":"/guide/feature.html","title":"功能","lang":"zh-CN","frontmatter":{"title":"功能","icon":"tools","description":"不再维护, 让图标动起来 开发者可以在下拉框里面自由选择并切换你想要的颜色,并且可以让它动起来(性能佳) newLogo newLogoConfig 调试 API 发送请求 example 新版本中发送按钮在工具栏 sendRequest SearchEveryWhere 支持 searchEveryWhere 针对响应是文件的 API 点击 Send...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/feature.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/feature.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"功能"}],["meta",{"property":"og:description","content":"不再维护, 让图标动起来 开发者可以在下拉框里面自由选择并切换你想要的颜色,并且可以让它动起来(性能佳) newLogo newLogoConfig 调试 API 发送请求 example 新版本中发送按钮在工具栏 sendRequest SearchEveryWhere 支持 searchEveryWhere 针对响应是文件的 API 点击 Send..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.4/newLogo.gif"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"功能"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"功能\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.4/newLogo.gif\\",\\"https://api-buddy.com/img/2022.2.4/newLogoConfig.png\\",\\"https://api-buddy.com/img/example.gif\\",\\"https://api-buddy.com/img/sendRequest.png\\",\\"https://api-buddy.com/img/searchEveryWhere.gif\\",\\"https://api-buddy.com/img/downloadFile.png\\",\\"https://api-buddy.com/img/2022.2.3/scriptProject.png\\",\\"https://api-buddy.com/img/2022.2.3/scriptModule.png\\",\\"https://api-buddy.com/img/export2postman.gif\\",\\"https://api-buddy.com/img/apis_hd.png\\",\\"https://api-buddy.com/img/apiManager.png\\",\\"https://api-buddy.com/img/saveRequest.png\\",\\"https://api-buddy.com/img/2022.2.1/groupSave_en.png\\",\\"https://api-buddy.com/img/2022.2.1/apiParamGroup_en.gif\\",\\"https://api-buddy.com/img/2022.2.1/tempSave_en.png\\",\\"https://api-buddy.com/img/regenerate.png\\",\\"https://api-buddy.com/img/icon/curl_dark.svg\\",\\"https://api-buddy.com/img/curl.png\\",\\"https://api-buddy.com/img/fastAddToken.gif\\",\\"https://api-buddy.com/img/apiGroup.gif\\",\\"https://api-buddy.com/img/moduleSearch.gif\\",\\"https://api-buddy.com/img/json.png\\",\\"https://api-buddy.com/img/apinav.gif\\",\\"https://api-buddy.com/img/headerSwitch.gif\\",\\"https://api-buddy.com/img/exportImportApis.gif\\",\\"https://api-buddy.com/img/paramDescription.png\\",\\"https://api-buddy.com/img/shareApi.png\\",\\"https://api-buddy.com/img/apiDocExample.png\\",\\"https://api-buddy.com/img/apiPreview.gif\\",\\"https://api-buddy.com/img/projectConfigParam.png\\",\\"https://api-buddy.com/img/2022.2.1/importByCurl.gif\\",\\"https://api-buddy.com/img/navigate2CurrentMethod.png\\",\\"https://api-buddy.com/img/history.png\\",\\"https://api-buddy.com/img/2022.2.2/stopApi.gif\\",\\"https://api-buddy.com/img/2022.2.2/batchExportApiDoc.png\\",\\"https://api-buddy.com/img/2022.2.3/copyUrl.png\\",\\"https://api-buddy.com/img/rawHtmlPreview.png\\",\\"https://api-buddy.com/img/2022.2.6/showCommentConfig.png\\",\\"https://api-buddy.com/img/2022.2.6/showCommentInClass.png\\",\\"https://api-buddy.com/img/2022.2.6/showCommentInNavigate.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"让图标动起来","slug":"让图标动起来","link":"#让图标动起来","children":[]},{"level":2,"title":"调试 API 发送请求","slug":"调试-api-发送请求","link":"#调试-api-发送请求","children":[]},{"level":2,"title":"SearchEveryWhere 支持","slug":"searcheverywhere-支持","link":"#searcheverywhere-支持","children":[]},{"level":2,"title":"针对响应是文件的 API","slug":"针对响应是文件的-api","link":"#针对响应是文件的-api","children":[]},{"level":2,"title":"脚本","slug":"脚本","link":"#脚本","children":[]},{"level":2,"title":"API 导出到 Postman","slug":"api-导出到-postman","link":"#api-导出到-postman","children":[]},{"level":2,"title":"API 列表","slug":"api-列表","link":"#api-列表","children":[]},{"level":2,"title":"保存请求","slug":"保存请求","link":"#保存请求","children":[]},{"level":2,"title":"API 分组参数保存支持","slug":"api-分组参数保存支持","link":"#api-分组参数保存支持","children":[]},{"level":2,"title":"临时请求保存支持","slug":"临时请求保存支持","link":"#临时请求保存支持","children":[]},{"level":2,"title":"重新生成请求","slug":"重新生成请求","link":"#重新生成请求","children":[]},{"level":2,"title":"CURL 拷贝","slug":"curl-拷贝","link":"#curl-拷贝","children":[]},{"level":2,"title":"快速添加 header","slug":"快速添加-header","link":"#快速添加-header","children":[]},{"level":2,"title":"API 分组自动关联","slug":"api-分组自动关联","link":"#api-分组自动关联","children":[]},{"level":2,"title":"Json 语法检查","slug":"json-语法检查","link":"#json-语法检查","children":[]},{"level":2,"title":"API 导航树","slug":"api-导航树","link":"#api-导航树","children":[]},{"level":2,"title":"Headers 分组","slug":"headers-分组","link":"#headers-分组","children":[]},{"level":2,"title":"APIs 导入导出","slug":"apis-导入导出","link":"#apis-导入导出","children":[]},{"level":2,"title":"swagger 默认值解析支持","slug":"swagger-默认值解析支持","link":"#swagger-默认值解析支持","children":[]},{"level":2,"title":"API 自动生成注释","slug":"api-自动生成注释","link":"#api-自动生成注释","children":[]},{"level":2,"title":"API 生成 Markdown 文档","slug":"api-生成-markdown-文档","link":"#api-生成-markdown-文档","children":[]},{"level":2,"title":"API 一览表预览","slug":"api-一览表预览","link":"#api-一览表预览","children":[]},{"level":2,"title":"项目级别全局参数支持","slug":"项目级别全局参数支持","link":"#项目级别全局参数支持","children":[]},{"level":2,"title":"cURL 导入","slug":"curl-导入","link":"#curl-导入","children":[]},{"level":2,"title":"当前方法定位","slug":"当前方法定位","link":"#当前方法定位","children":[]},{"level":2,"title":"历史请求预览","slug":"历史请求预览","link":"#历史请求预览","children":[]},{"level":2,"title":"终止 API 请求功能","slug":"终止-api-请求功能","link":"#终止-api-请求功能","children":[]},{"level":2,"title":"批量导出 API 文档","slug":"批量导出-api-文档","link":"#批量导出-api-文档","children":[]},{"level":2,"title":"一键拷贝 Url","slug":"一键拷贝-url","link":"#一键拷贝-url","children":[]},{"level":2,"title":"Raw 中 html 预览","slug":"raw-中-html-预览","link":"#raw-中-html-预览","children":[]},{"level":2,"title":"Api 注释预览","slug":"api-注释预览","link":"#api-注释预览","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":6.4,"words":1919},"filePathRelative":"guide/feature.md","localizedDate":"2024年5月31日","autoDesc":true}');export{ks as comp,fs as data}; diff --git a/assets/feature.html-NH73gv6K.js b/assets/feature.html-NH73gv6K.js new file mode 100644 index 000000000..16abe93af --- /dev/null +++ b/assets/feature.html-NH73gv6K.js @@ -0,0 +1,70 @@ +import{_ as d,a as m}from"./newLogoConfig-lemSO0qb.js";import{_ as h}from"./example_en-QCKO58IT.js";import{_ as g}from"./sendRequest-nhTc-dPg.js";import{_,a as k,b as v}from"./stopApi-fM6h6OKl.js";import{_ as y}from"./downloadFile-lDoHpXkf.js";import{_ as f,a as b}from"./scriptModule_en-G44xzFgb.js";import{_ as w}from"./export2postman-dEAWnBlR.js";import{_ as x}from"./apis_hd-xmI1Um5u.js";import{_ as A}from"./apiManager_en-7v6YIpNl.js";import{_ as P}from"./saveRequest-0-01KgNg.js";import{_ as q}from"./groupSave_en-p1Ro7kOp.js";import{_ as I}from"./tempSave_en-UAfESuzh.js";import{_ as S}from"./regenerate_en-GXnWqO8I.js";import{_ as j}from"./curl_dark-QQY3Pwtw.js";import{_ as z}from"./curl_en-lEPOcEvC.js";import{_ as D}from"./fastAddToken_en-dl409Ccq.js";import{_ as C,a as $}from"./json_en-sK6ZBB_5.js";import{_ as R}from"./moduleSearch-vDt27hRI.js";import{_ as T}from"./apinav-gngrTEBb.js";import{_ as N}from"./headerSwitch-6dFu89NK.js";import{_ as M}from"./exportImportApis-cRKbjcMp.js";import{_ as L}from"./paramDescription-tGSx8XCt.js";import{_ as B}from"./shareApi_en-cvbZZWPP.js";import{_ as H}from"./apiDocExample-I6FA1jbR.js";import{_ as U}from"./apiPreview-TsYf71lp.js";import{_ as E}from"./projectConfigParam-_5a22Qyh.js";import{_ as O}from"./importByCurl_en-3-Qsaakd.js";import{_ as G}from"./navigate2CurrentMethod-91w29pZx.js";import{_ as V}from"./history-jJ_6Nu4h.js";import{_ as F}from"./batchExportApiDoc-XZ7l86Mn.js";import{_ as W}from"./copyUrl-qs4zOYAL.js";import{_ as J}from"./rawHtmlPreview-k0XMOGO2.js";import{_ as Q,a as Z,b as Y}from"./showCommentInNavigate-eoTLjphJ.js";import{_ as K,r as i,o as X,c as ee,a as e,d as t,b as a,w as s,e as p}from"./app-8OZtYazS.js";const te={},ae=e("mark",null,"Deprecated",-1),ne={class:"table-of-contents"},se={id:"make-icon-move",tabindex:"-1"},oe={class:"header-anchor",href:"#make-icon-move"},ie=e("p",null,"Developers can freely choose and switch the color you want in the drop-down box, and can make it moving",-1),le=e("p",null,[e("img",{src:d,alt:"newLogo",loading:"lazy"})],-1),re=e("p",null,[e("img",{src:m,alt:"newLogoConfig",loading:"lazy"})],-1),pe={id:"debug-api-send-request",tabindex:"-1"},ce={class:"header-anchor",href:"#debug-api-send-request"},ue=e("p",null,[e("img",{src:h,alt:"example",loading:"lazy"})],-1),de=e("p",null,"In new version, send button have move to toolbar",-1),me=e("p",null,[e("img",{src:g,alt:"sendRequest",loading:"lazy"})],-1),he={id:"searcheverywhere-support",tabindex:"-1"},ge={class:"header-anchor",href:"#searcheverywhere-support"},_e=e("div",{class:"language-text","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`example +/url (search by url) +get /list (search by get method and url) +post /save (search by post method and url) +description keywords (search by keywords) +`)])],-1),ke=e("p",null,[e("img",{src:_,alt:"searchEveryWhere",loading:"lazy"})],-1),ve={id:"send-and-download",tabindex:"-1"},ye={class:"header-anchor",href:"#send-and-download"},fe=e("p",null,[e("img",{src:y,alt:"example_download",loading:"lazy"})],-1),be={id:"script",tabindex:"-1"},we={class:"header-anchor",href:"#script"},xe=e("p",null,[e("img",{src:f,alt:"scriptProject",loading:"lazy"})],-1),Ae=e("p",null,[e("img",{src:b,alt:"scriptModule",loading:"lazy"})],-1),Pe={id:"apis-export-to-postman",tabindex:"-1"},qe={class:"header-anchor",href:"#apis-export-to-postman"},Ie=e("p",null,[e("img",{src:w,alt:"export2postman",loading:"lazy"})],-1),Se={id:"api-list",tabindex:"-1"},je={class:"header-anchor",href:"#api-list"},ze=p('

    API name value calculate:

    1. If the method uses swagger annotation @io.swagger.annotations.ApiOperation,Then take the value of the annotation
    2. If there is no swagger annotation,Then take the java Doc description of the method
    3. If two above not matched, return New Request

    API name value supports modification

    apisapiManager

    ',2),De={id:"save-request",tabindex:"-1"},Ce={class:"header-anchor",href:"#save-request"},$e=p(`

    Special Note

    1.The saved request will be put in Default Group by default, support drag and drop into other groups,Of course, it is best to join the module group, please see API group automatic association

    2.API Name:If the api uses swagger annotations @ApiOperation("xxx"),The api is named xxx,If there is no swagger annotation,Use javadoc as the name of the api,Otherwise it will be named New Request

    if (@ApiOperation("xxx"))
    +    apiName = xxx
    +else if(java doc)
    +    apiName = java doc
    +else
    +    apiName = New Request
    +

    example_download

    ',2),Re={id:"api-grouping-parameter-save-support",tabindex:"-1"},Te={class:"header-anchor",href:"#api-grouping-parameter-save-support"},Ne=e("p",null,"Purpose: Save parameters of different combinations under one API",-1),Me=e("p",null,[e("mark",null,"The original save operation will be classified into the Default group by default")],-1),Le=e("p",null,[t("How to:After entering the parameters, click "),e("mark",null,"Save group param request")],-1),Be=e("p",null,[e("img",{src:q,alt:"groupSave",loading:"lazy"})],-1),He=e("p",null,[e("strong",null,"Toggle parameter")],-1),Ue=e("p",null,"The following is the query of the book list in 3 languages",-1),Ee=e("p",null,[e("img",{src:k,alt:"apiParamGroup",loading:"lazy"})],-1),Oe={id:"temporary-request-save-support",tabindex:"-1"},Ge={class:"header-anchor",href:"#temporary-request-save-support"},Ve=e("p",null,"Purpose: Save any request that does not belong to this project for temporary invocation, not associated with the current project code",-1),Fe=e("p",null,[t("The Url of the Request saved by the temporary request must start with "),e("mark",null,"http"),t(" or "),e("mark",null,"https")],-1),We=e("p",null,[e("img",{src:I,alt:"tempSave",loading:"lazy"})],-1),Je={id:"regenetate",tabindex:"-1"},Qe={class:"header-anchor",href:"#regenetate"},Ze=e("div",{class:"hint-container tip"},[e("p",{class:"hint-container-title"},"Special Note"),e("p",null,"If you have saved a request,But if you want to completely re-modify the parameters, then you can choose this operation")],-1),Ye=e("p",null,[e("img",{src:S,alt:"regenerate",loading:"lazy"})],-1),Ke={id:"curl-copy",tabindex:"-1"},Xe={class:"header-anchor",href:"#curl-copy"},et=e("p",null,[t("After generate the method url and parameters, click on the toolbar"),e("img",{src:j,alt:"curl",loading:"lazy"})],-1),tt=e("p",null,[e("img",{src:z,alt:"curl",loading:"lazy"})],-1),at={id:"quickly-add-header",tabindex:"-1"},nt={class:"header-anchor",href:"#quickly-add-header"},st=e("p",null,"If your request requires a token and the token can be obtained through a login interface, then you don't need to manually add it each time, just visit the login interface and then process it through the following operations",-1),ot=e("p",null,[e("img",{src:D,alt:"fastAddToken",loading:"lazy"})],-1),it={id:"api-group-automatic-association",tabindex:"-1"},lt={class:"header-anchor",href:"#api-group-automatic-association"},rt=p('

    The API group is to save the saved apis into different groups to distinguish different apis,When in a multi-module project,plugin support scan modules in projects,and quickly add the module name to the group, this way will add the group to the root group

    v2.1.2 will automatically create module group

    apiGroup

    Special Note

    1. If the module group is not created, then when saving the request, the saved request will be placed in the Default Group
    2. If you create a module group, when you save the request, it will be automatically classified into the corresponding Module Group according to the module where the current API is located.
    3. Of course, you can move the API to the corresponding smaller group by dragging

    Module supports quick search(Put the cursor on the list and enter keywords)

    moduleSearch

    ',6),pt={id:"json-grammar-check",tabindex:"-1"},ct={class:"header-anchor",href:"#json-grammar-check"},ut=e("p",null,[t("The upper right corner of the json parameter input box provides a json syntax check. If the json is incorrect, the corresponding error will be prompted"),e("br"),t(" Of course it also supports formatting and other operations")],-1),dt=e("p",null,[e("img",{src:C,alt:"json",loading:"lazy"})],-1),mt={id:"api-navigate-tree",tabindex:"-1"},ht={class:"header-anchor",href:"#api-navigate-tree"},gt=e("div",{class:"language-text","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`Select the tree and enter keywords +Press Enter again or double-click the left mouse button to locate the API + +Hover the mouse to display the doc of the api + +The API Navigate tree is lazy loaded by default, you need to click the refresh button, +and every time you add an API, you also need to refresh to get it + +Lazy loading helps to speed up idea startup +`)])],-1),_t=e("p",null,[e("img",{src:T,alt:"apinavi",loading:"lazy"})],-1),kt={id:"headers-group-automatic-switching",tabindex:"-1"},vt={class:"header-anchor",href:"#headers-group-automatic-switching"},yt=e("div",{class:"language-text","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`Scenes:Multi-module projects such as SpringBoot have different header parameters in different projects and different environments. In order to quickly switch headers, header grouping is introduced. +Operation method: +1.Modify in the headers group, constraint: the input value must be in standard json format +2.Switch the environment or project name directly, and then enter the corresponding key and value values in the headers form +`)])],-1),ft=e("p",null,[e("img",{src:N,alt:"headerSwitch",loading:"lazy"})],-1),bt={id:"apis-import-and-export",tabindex:"-1"},wt={class:"header-anchor",href:"#apis-import-and-export"},xt=e("p",null,"Using this function, you can easily share your existing APIs with other developers, or import to IDEA on other devices",-1),At=e("div",{class:"hint-container caution"},[e("p",{class:"hint-container-title"},"Attention"),e("ul",null,[e("li",null,[e("p",null,"A new file named fastRequestCollection.xml will be added when exporting,You can't rename it, it is exported to the current project path by default.")]),e("li",null,[e("p",null,"When importing, it will do a default backup,And will generate a file named fastRequestCollection-yyyyMMddHHmmssSSS.xml under the .idea folder , If it is imported by mistake, it can be restored by importing it")]),e("li",null,[e("p",null,"Click file->Reload All from Disk to force refresh to get fastRequestCollection.xml if it is not visible")])])],-1),Pt=e("p",null,[e("img",{src:M,alt:"headerSwitch",loading:"lazy"})],-1),qt={id:"swagger-default-value-parsing-support",tabindex:"-1"},It={class:"header-anchor",href:"#swagger-default-value-parsing-support"},St=e("p",null,"Below are some examples",-1),jt=e("p",null,"Priority: swagger default value > config default value",-1),zt=e("div",{class:"language-java line-numbers-mode","data-ext":"java","data-title":"java"},[e("pre",{class:"language-java"},[e("code",null,[e("span",{class:"token operator"},"*"),t(),e("span",{class:"token annotation punctuation"},"@ApiParam"),t(` + +`),e("span",{class:"token annotation punctuation"},"@GetMapping"),e("span",{class:"token punctuation"},"("),t("value"),e("span",{class:"token operator"},"="),e("span",{class:"token string"},'"/test/{id}"'),e("span",{class:"token punctuation"},")"),t(` +`),e("span",{class:"token keyword"},"public"),t(),e("span",{class:"token class-name"},"String"),t(),e("span",{class:"token function"},"test3"),e("span",{class:"token punctuation"},"("),e("span",{class:"token annotation punctuation"},"@ApiParam"),e("span",{class:"token punctuation"},"("),t("name "),e("span",{class:"token operator"},"="),t(),e("span",{class:"token string"},'"id"'),e("span",{class:"token punctuation"},","),t("example"),e("span",{class:"token operator"},"="),e("span",{class:"token string"},'"2"'),e("span",{class:"token punctuation"},")"),t(),e("span",{class:"token annotation punctuation"},"@PathVariable"),e("span",{class:"token punctuation"},"("),e("span",{class:"token string"},'"id"'),e("span",{class:"token punctuation"},")"),t(),e("span",{class:"token class-name"},"Integer"),t(" id"),e("span",{class:"token punctuation"},")"),t(),e("span",{class:"token punctuation"},"{"),t(` + `),e("span",{class:"token keyword"},"return"),t(),e("span",{class:"token string"},'""'),e("span",{class:"token punctuation"},";"),t(` +`),e("span",{class:"token punctuation"},"}"),t(` + +`),e("span",{class:"token annotation punctuation"},"@GetMapping"),e("span",{class:"token punctuation"},"("),t("value"),e("span",{class:"token operator"},"="),e("span",{class:"token string"},'"/test/{id}"'),e("span",{class:"token punctuation"},")"),t(` +`),e("span",{class:"token keyword"},"public"),t(),e("span",{class:"token class-name"},"String"),t(),e("span",{class:"token function"},"test3"),e("span",{class:"token punctuation"},"("),e("span",{class:"token annotation punctuation"},"@ApiParam"),e("span",{class:"token punctuation"},"("),t("name "),e("span",{class:"token operator"},"="),t(),e("span",{class:"token string"},'"id"'),e("span",{class:"token punctuation"},","),t("defaultValue"),e("span",{class:"token operator"},"="),e("span",{class:"token string"},'"2"'),e("span",{class:"token punctuation"},")"),t(),e("span",{class:"token annotation punctuation"},"@PathVariable"),e("span",{class:"token punctuation"},"("),e("span",{class:"token string"},'"id"'),e("span",{class:"token punctuation"},")"),t(),e("span",{class:"token class-name"},"Integer"),t(" id"),e("span",{class:"token punctuation"},")"),t(),e("span",{class:"token punctuation"},"{"),t(` + `),e("span",{class:"token keyword"},"return"),t(),e("span",{class:"token string"},'""'),e("span",{class:"token punctuation"},";"),t(` +`),e("span",{class:"token punctuation"},"}"),t(` + + +`),e("span",{class:"token operator"},"*"),t(),e("span",{class:"token annotation punctuation"},"@ApiImplicitParam"),t(` + +`),e("span",{class:"token annotation punctuation"},"@ApiImplicitParams"),e("span",{class:"token punctuation"},"("),e("span",{class:"token punctuation"},"{"),t(` + `),e("span",{class:"token annotation punctuation"},"@ApiImplicitParam"),e("span",{class:"token punctuation"},"("),t("paramType"),e("span",{class:"token operator"},"="),e("span",{class:"token string"},'"query"'),e("span",{class:"token punctuation"},","),t("name"),e("span",{class:"token operator"},"="),e("span",{class:"token string"},'"pageNo"'),e("span",{class:"token punctuation"},","),t("dataType"),e("span",{class:"token operator"},"="),e("span",{class:"token string"},'"String"'),e("span",{class:"token punctuation"},","),t("required"),e("span",{class:"token operator"},"="),e("span",{class:"token boolean"},"true"),e("span",{class:"token punctuation"},","),t("value"),e("span",{class:"token operator"},"="),e("span",{class:"token string"},'"pageNo"'),e("span",{class:"token punctuation"},","),t("defaultValue"),e("span",{class:"token operator"},"="),e("span",{class:"token string"},'"1"'),e("span",{class:"token punctuation"},")"),e("span",{class:"token punctuation"},","),t(` + `),e("span",{class:"token annotation punctuation"},"@ApiImplicitParam"),e("span",{class:"token punctuation"},"("),t("paramType"),e("span",{class:"token operator"},"="),e("span",{class:"token string"},'"query"'),e("span",{class:"token punctuation"},","),t("name"),e("span",{class:"token operator"},"="),e("span",{class:"token string"},'"pageSize"'),e("span",{class:"token punctuation"},","),t("dataType"),e("span",{class:"token operator"},"="),e("span",{class:"token string"},'"String"'),e("span",{class:"token punctuation"},","),t("required"),e("span",{class:"token operator"},"="),e("span",{class:"token boolean"},"true"),e("span",{class:"token punctuation"},","),t("value"),e("span",{class:"token operator"},"="),e("span",{class:"token string"},'"pageSize"'),e("span",{class:"token punctuation"},","),t("defaultValue"),e("span",{class:"token operator"},"="),e("span",{class:"token string"},'"10"'),e("span",{class:"token punctuation"},")"),t(` +`),e("span",{class:"token punctuation"},"}"),e("span",{class:"token punctuation"},")"),t(` +`),e("span",{class:"token annotation punctuation"},"@GetMapping"),e("span",{class:"token punctuation"},"("),t("value"),e("span",{class:"token operator"},"="),t('"'),e("span",{class:"token operator"},"/"),t("testPage"),e("span",{class:"token punctuation"},")"),t(` +`),e("span",{class:"token keyword"},"public"),t(),e("span",{class:"token class-name"},"String"),t(),e("span",{class:"token function"},"testPage"),e("span",{class:"token punctuation"},"("),e("span",{class:"token annotation punctuation"},"@RequestParam"),e("span",{class:"token punctuation"},"("),e("span",{class:"token string"},'"pageNo"'),e("span",{class:"token punctuation"},")"),t(),e("span",{class:"token class-name"},"Integer"),t(" pageNo"),e("span",{class:"token punctuation"},","),t(),e("span",{class:"token annotation punctuation"},"@RequestParam"),e("span",{class:"token punctuation"},"("),e("span",{class:"token string"},'"pageSize"'),e("span",{class:"token punctuation"},")"),t(),e("span",{class:"token class-name"},"Integer"),t(" pageSize"),e("span",{class:"token punctuation"},")"),t(),e("span",{class:"token punctuation"},"{"),t(` + `),e("span",{class:"token keyword"},"return"),t(),e("span",{class:"token string"},'""'),e("span",{class:"token punctuation"},";"),t(` +`),e("span",{class:"token punctuation"},"}"),t(` + + +`),e("span",{class:"token operator"},"*"),t(),e("span",{class:"token annotation punctuation"},"@ApiModelProperty"),t(` +`),e("span",{class:"token annotation punctuation"},"@Data"),t(` +`),e("span",{class:"token keyword"},"public"),t(),e("span",{class:"token keyword"},"class"),t(),e("span",{class:"token class-name"},"UserDto"),t(),e("span",{class:"token punctuation"},"{"),t(` + `),e("span",{class:"token annotation punctuation"},"@ApiModelProperty"),e("span",{class:"token punctuation"},"("),t("example "),e("span",{class:"token operator"},"="),t(),e("span",{class:"token string"},'"Bob"'),e("span",{class:"token punctuation"},")"),t(` + `),e("span",{class:"token keyword"},"private"),t(),e("span",{class:"token class-name"},"String"),t(" userName"),e("span",{class:"token punctuation"},";"),t(` +`),e("span",{class:"token punctuation"},"}"),t(` +`)])]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),Dt=e("div",{class:"language-java line-numbers-mode","data-ext":"java","data-title":"java"},[e("pre",{class:"language-java"},[e("code",null,[e("span",{class:"token operator"},"*"),t(),e("span",{class:"token annotation punctuation"},"@Parameter"),t(` + +`),e("span",{class:"token annotation punctuation"},"@GetMapping"),e("span",{class:"token punctuation"},"("),t("value"),e("span",{class:"token operator"},"="),e("span",{class:"token string"},'"/test/{id}"'),e("span",{class:"token punctuation"},")"),t(` +`),e("span",{class:"token keyword"},"public"),t(),e("span",{class:"token class-name"},"String"),t(),e("span",{class:"token function"},"test3"),e("span",{class:"token punctuation"},"("),e("span",{class:"token annotation punctuation"},"@Parameter"),e("span",{class:"token punctuation"},"("),t("name "),e("span",{class:"token operator"},"="),t(),e("span",{class:"token string"},'"id"'),e("span",{class:"token punctuation"},","),t("example"),e("span",{class:"token operator"},"="),e("span",{class:"token string"},'"2"'),e("span",{class:"token punctuation"},")"),t(),e("span",{class:"token annotation punctuation"},"@PathVariable"),e("span",{class:"token punctuation"},"("),e("span",{class:"token string"},'"id"'),e("span",{class:"token punctuation"},")"),t(),e("span",{class:"token class-name"},"Integer"),t(" id"),e("span",{class:"token punctuation"},")"),t(),e("span",{class:"token punctuation"},"{"),t(` + `),e("span",{class:"token keyword"},"return"),t(),e("span",{class:"token string"},'""'),e("span",{class:"token punctuation"},";"),t(` +`),e("span",{class:"token punctuation"},"}"),t(` + +`),e("span",{class:"token operator"},"*"),t(),e("span",{class:"token annotation punctuation"},"@Schema"),e("span",{class:"token punctuation"},"("),t("swagger3"),e("span",{class:"token punctuation"},")"),t(` + +`),e("span",{class:"token annotation punctuation"},"@Data"),t(` +`),e("span",{class:"token keyword"},"public"),t(),e("span",{class:"token keyword"},"class"),t(),e("span",{class:"token class-name"},"UserDto"),t(),e("span",{class:"token punctuation"},"{"),t(` + `),e("span",{class:"token annotation punctuation"},"@Schema"),e("span",{class:"token punctuation"},"("),t("example "),e("span",{class:"token operator"},"="),t(),e("span",{class:"token string"},'"Bob"'),e("span",{class:"token punctuation"},")"),t(` + `),e("span",{class:"token keyword"},"private"),t(),e("span",{class:"token class-name"},"String"),t(" userName"),e("span",{class:"token punctuation"},";"),t(` +`),e("span",{class:"token punctuation"},"}"),t(` +`)])]),e("div",{class:"line-numbers","aria-hidden":"true"},[e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"}),e("div",{class:"line-number"})])],-1),Ct={id:"auto-description",tabindex:"-1"},$t={class:"header-anchor",href:"#auto-description"},Rt=e("p",null,[t("Field description need to conform to standard javadoc. Please use"),e("code",null,"/**some description*/")],-1),Tt=e("p",null,"You can hide or show description by toggle click",-1),Nt=e("p",null,[e("img",{src:L,alt:"paramDescription",loading:"lazy"})],-1),Mt={id:"api-share-document",tabindex:"-1"},Lt={class:"header-anchor",href:"#api-share-document"},Bt=e("p",null,"Please note that the API in word form is implemented in html, so don't feel strange, just export it",-1),Ht=e("p",null,"Response Example requires running your API to be displayed",-1),Ut=e("p",null,[e("img",{src:B,alt:"shareDocButton",loading:"lazy"})],-1),Et=e("p",null,[e("img",{src:H,alt:"apiDocExample",loading:"lazy"})],-1),Ot={id:"api-list-preview",tabindex:"-1"},Gt={class:"header-anchor",href:"#api-list-preview"},Vt=e("p",null,"After focusing on the window, enter the keyword, and you can quickly search according to the path keyword of the API",-1),Ft=e("p",null,[e("img",{src:U,alt:"apiDocExample",loading:"lazy"})],-1),Wt={id:"project-level-global-parameters-support",tabindex:"-1"},Jt={class:"header-anchor",href:"#project-level-global-parameters-support"},Qt=e("p",null,"Support global parameters within the project level, not affected by multiple modules.",-1),Zt=e("p",null,[t("Configure priority "),e("code",null,"api header > project header>global header")],-1),Yt=e("p",null,[e("img",{src:E,alt:"projectConfigParam",loading:"lazy"})],-1),Kt={id:"curl-import",tabindex:"-1"},Xt={class:"header-anchor",href:"#curl-import"},ea=e("p",null,[e("img",{src:O,alt:"importByCurl",loading:"lazy"})],-1),ta={id:"navigate-to-current-method",tabindex:"-1"},aa={class:"header-anchor",href:"#navigate-to-current-method"},na=e("p",null,"After you generate the url of the method, sometimes you will switch to another place in the code, and then want to start debugging the API method, you can use this function to quickly locate the code",-1),sa=e("p",null,[e("img",{src:G,alt:"navigate2CurrentMethod",loading:"lazy"})],-1),oa={id:"history-request",tabindex:"-1"},ia={class:"header-anchor",href:"#history-request"},la=e("p",null,"Hidden skills: Double-click the record to display details",-1),ra=e("p",null,[e("img",{src:V,alt:"history",loading:"lazy"}),t(" :::")],-1),pa={id:"stop-api-request",tabindex:"-1"},ca={class:"header-anchor",href:"#stop-api-request"},ua=e("p",null,[e("img",{src:v,alt:"stopApi",loading:"lazy"})],-1),da={id:"batch-export-api-doc",tabindex:"-1"},ma={class:"header-anchor",href:"#batch-export-api-doc"},ha=e("p",null,[e("img",{src:F,alt:"batchExportApiDoc",loading:"lazy"})],-1),ga={id:"one-click-copy-url",tabindex:"-1"},_a={class:"header-anchor",href:"#one-click-copy-url"},ka=e("p",null,[e("img",{src:W,alt:"copyUrl",loading:"lazy"})],-1),va={id:"html-preview-in-response-raw",tabindex:"-1"},ya={class:"header-anchor",href:"#html-preview-in-response-raw"},fa=e("p",null,"The response of the html return type is no longer truncated in raw, and the html can be previewed at the same time",-1),ba=e("p",null,[e("img",{src:J,alt:"rawHtmlPreview",loading:"lazy"})],-1),wa={id:"api-comment-preview",tabindex:"-1"},xa={class:"header-anchor",href:"#api-comment-preview"},Aa=e("p",null,[e("img",{src:Q,alt:"showCommentConfig",loading:"lazy"}),e("img",{src:Z,alt:"showCommentInClass",loading:"lazy"}),e("img",{src:Y,alt:"showCommentInNavigate",loading:"lazy"})],-1);function Pa(qa,Ia){const c=i("RouteLink"),n=i("Badge"),o=i("router-link"),u=i("CodeTabs");return X(),ee("div",null,[e("p",null,[ae,t(","),a(c,{to:"/en/guide/features/"},{default:s(()=>[t("Please click here")]),_:1})]),e("nav",ne,[e("ul",null,[e("li",null,[a(o,{to:"#make-icon-move"},{default:s(()=>[t("Make icon move "),a(n,{text:"2022.2.4"})]),_:1})]),e("li",null,[a(o,{to:"#debug-api-send-request"},{default:s(()=>[t("Debug API & send request "),a(n,{text:"2.0.0"})]),_:1})]),e("li",null,[a(o,{to:"#searcheverywhere-support"},{default:s(()=>[t("SearchEveryWhere support "),a(n,{text:"2.1.1"})]),_:1})]),e("li",null,[a(o,{to:"#send-and-download"},{default:s(()=>[t("Send and download "),a(n,{text:"2.0.2",type:"error"})]),_:1})]),e("li",null,[a(o,{to:"#script"},{default:s(()=>[t("Script "),a(n,{text:"2022.2.3+",type:"tip"})]),_:1})]),e("li",null,[a(o,{to:"#apis-export-to-postman"},{default:s(()=>[t("APIs export to Postman "),a(n,{text:"2.1.2",type:"error"})]),_:1})]),e("li",null,[a(o,{to:"#api-list"},{default:s(()=>[t("API List "),a(n,{text:"2.0.1",type:"warning"})]),_:1})]),e("li",null,[a(o,{to:"#save-request"},{default:s(()=>[t("Save Request "),a(n,{text:"2.0.0"})]),_:1})]),e("li",null,[a(o,{to:"#api-grouping-parameter-save-support"},{default:s(()=>[t("API grouping parameter save support "),a(n,{text:"2022.2.1",type:"error"})]),_:1})]),e("li",null,[a(o,{to:"#temporary-request-save-support"},{default:s(()=>[t("Temporary request save support "),a(n,{text:"2022.2.1",type:"error"})]),_:1})]),e("li",null,[a(o,{to:"#regenetate"},{default:s(()=>[t("Regenetate "),a(n,{text:"2.0.0",type:"error"})]),_:1})]),e("li",null,[a(o,{to:"#curl-copy"},{default:s(()=>[t("CURL copy "),a(n,{text:"1.1.4",type:"warning"})]),_:1})]),e("li",null,[a(o,{to:"#quickly-add-header"},{default:s(()=>[t("Quickly add header "),a(n,{text:"2.0.0"})]),_:1})]),e("li",null,[a(o,{to:"#api-group-automatic-association"},{default:s(()=>[t("API group automatic association "),a(n,{text:"2.0.6",type:"warning"})]),_:1})]),e("li",null,[a(o,{to:"#json-grammar-check"},{default:s(()=>[t("Json grammar check "),a(n,{text:"2.0.6",type:"error"})]),_:1})]),e("li",null,[a(o,{to:"#api-navigate-tree"},{default:s(()=>[t("API navigate tree "),a(n,{text:"2.0.7"})]),_:1})]),e("li",null,[a(o,{to:"#headers-group-automatic-switching"},{default:s(()=>[t("Headers group(Automatic switching) "),a(n,{text:"2.0.7"})]),_:1})]),e("li",null,[a(o,{to:"#apis-import-and-export"},{default:s(()=>[t("APIs import and export "),a(n,{text:"2022.1.4"})]),_:1})]),e("li",null,[a(o,{to:"#swagger-default-value-parsing-support"},{default:s(()=>[t("Swagger default value parsing support "),a(n,{text:"2022.1.4"})]),_:1})]),e("li",null,[a(o,{to:"#auto-description"},{default:s(()=>[t("Auto Description "),a(n,{text:"2022.1.5"})]),_:1})]),e("li",null,[a(o,{to:"#api-share-document"},{default:s(()=>[t("API share document "),a(n,{text:"2022.1.5+"})]),_:1})]),e("li",null,[a(o,{to:"#api-list-preview"},{default:s(()=>[t("API list preview "),a(n,{text:"2022.1.5"})]),_:1})]),e("li",null,[a(o,{to:"#project-level-global-parameters-support"},{default:s(()=>[t("Project-level global parameters support "),a(n,{text:"2022.1.8"})]),_:1})]),e("li",null,[a(o,{to:"#curl-import"},{default:s(()=>[t("cURL import "),a(n,{text:"2022.2.1"})]),_:1})]),e("li",null,[a(o,{to:"#navigate-to-current-method"},{default:s(()=>[t("Navigate to current method "),a(n,{text:"2022.1.7"})]),_:1})]),e("li",null,[a(o,{to:"#history-request"},{default:s(()=>[t("History request "),a(n,{text:"2022.1.0"})]),_:1})]),e("li",null,[a(o,{to:"#stop-api-request"},{default:s(()=>[t("Stop API request "),a(n,{text:"2022.2.2"})]),_:1})]),e("li",null,[a(o,{to:"#batch-export-api-doc"},{default:s(()=>[t("Batch export API doc "),a(n,{text:"2022.2.2"})]),_:1})]),e("li",null,[a(o,{to:"#one-click-copy-url"},{default:s(()=>[t("One click copy url "),a(n,{text:"2022.2.3"})]),_:1})]),e("li",null,[a(o,{to:"#html-preview-in-response-raw"},{default:s(()=>[t("Html preview in response raw "),a(n,{text:"2022.1.9"})]),_:1})]),e("li",null,[a(o,{to:"#api-comment-preview"},{default:s(()=>[t("Api comment preview "),a(n,{text:"2022.2.6"})]),_:1})])])]),e("h2",se,[e("a",oe,[e("span",null,[t("Make icon move "),a(n,{text:"2022.2.4"})])])]),ie,le,re,e("h2",pe,[e("a",ce,[e("span",null,[t("Debug API & send request "),a(n,{text:"2.0.0"})])])]),ue,de,me,e("h2",he,[e("a",ge,[e("span",null,[t("SearchEveryWhere support "),a(n,{text:"2.1.1"})])])]),_e,ke,e("h2",ve,[e("a",ye,[e("span",null,[t("Send and download "),a(n,{text:"2.0.2",type:"error"})])])]),fe,e("h2",be,[e("a",we,[e("span",null,[t("Script "),a(n,{text:"2022.2.3+",type:"tip"})])])]),e("p",null,[t("Scripts allow developers to more flexibly, dynamically and easily modify some input parameters of the request process and the processing of responses. Please refer to "),a(c,{to:"/en/guide/script.html"},{default:s(()=>[t("Script")]),_:1})]),xe,Ae,e("h2",Pe,[e("a",qe,[e("span",null,[t("APIs export to Postman "),a(n,{text:"2.1.2",type:"error"})])])]),Ie,e("h2",Se,[e("a",je,[e("span",null,[t("API List "),a(n,{text:"2.0.1",type:"warning"})])])]),ze,e("h2",De,[e("a",Ce,[e("span",null,[t("Save Request "),a(n,{text:"2.0.0"})])])]),$e,e("h2",Re,[e("a",Te,[e("span",null,[t("API grouping parameter save support "),a(n,{text:"2022.2.1",type:"error"})])])]),Ne,Me,Le,Be,He,Ue,Ee,e("h2",Oe,[e("a",Ge,[e("span",null,[t("Temporary request save support "),a(n,{text:"2022.2.1",type:"error"})])])]),Ve,Fe,We,e("h2",Je,[e("a",Qe,[e("span",null,[t("Regenetate "),a(n,{text:"2.0.0",type:"error"})])])]),Ze,Ye,e("h2",Ke,[e("a",Xe,[e("span",null,[t("CURL copy "),a(n,{text:"1.1.4",type:"warning"})])])]),et,tt,e("h2",at,[e("a",nt,[e("span",null,[t("Quickly add header "),a(n,{text:"2.0.0"})])])]),st,ot,e("h2",it,[e("a",lt,[e("span",null,[t("API group automatic association "),a(n,{text:"2.0.6",type:"warning"})])])]),rt,e("h2",pt,[e("a",ct,[e("span",null,[t("Json grammar check "),a(n,{text:"2.0.6",type:"error"})])])]),ut,dt,e("h2",mt,[e("a",ht,[e("span",null,[t("API navigate tree "),a(n,{text:"2.0.7"})])])]),gt,_t,e("h2",kt,[e("a",vt,[e("span",null,[t("Headers group(Automatic switching) "),a(n,{text:"2.0.7"})])])]),yt,ft,e("h2",bt,[e("a",wt,[e("span",null,[t("APIs import and export "),a(n,{text:"2022.1.4"})])])]),xt,At,Pt,e("h2",qt,[e("a",It,[e("span",null,[t("Swagger default value parsing support "),a(n,{text:"2022.1.4"})])])]),St,jt,a(u,{id:"266",data:[{id:"swagger2"},{id:"swagger3"}]},{title0:s(({value:l,isActive:r})=>[t("swagger2")]),title1:s(({value:l,isActive:r})=>[t("swagger3")]),tab0:s(({value:l,isActive:r})=>[zt]),tab1:s(({value:l,isActive:r})=>[Dt]),_:1}),e("h2",Ct,[e("a",$t,[e("span",null,[t("Auto Description "),a(n,{text:"2022.1.5"})])])]),Rt,Tt,Nt,e("h2",Mt,[e("a",Lt,[e("span",null,[t("API share document "),a(n,{text:"2022.1.5+"})])])]),Bt,Ht,Ut,Et,e("h2",Ot,[e("a",Gt,[e("span",null,[t("API list preview "),a(n,{text:"2022.1.5"})])])]),Vt,Ft,e("h2",Wt,[e("a",Jt,[e("span",null,[t("Project-level global parameters support "),a(n,{text:"2022.1.8"})])])]),Qt,Zt,Yt,e("h2",Kt,[e("a",Xt,[e("span",null,[t("cURL import "),a(n,{text:"2022.2.1"})])])]),ea,e("h2",ta,[e("a",aa,[e("span",null,[t("Navigate to current method "),a(n,{text:"2022.1.7"})])])]),na,sa,e("h2",oa,[e("a",ia,[e("span",null,[t("History request "),a(n,{text:"2022.1.0"})])])]),la,ra,e("h2",pa,[e("a",ca,[e("span",null,[t("Stop API request "),a(n,{text:"2022.2.2"})])])]),ua,e("h2",da,[e("a",ma,[e("span",null,[t("Batch export API doc "),a(n,{text:"2022.2.2"})])])]),ha,e("h2",ga,[e("a",_a,[e("span",null,[t("One click copy url "),a(n,{text:"2022.2.3"})])])]),ka,e("h2",va,[e("a",ya,[e("span",null,[t("Html preview in response raw "),a(n,{text:"2022.1.9"})])])]),fa,ba,e("h2",wa,[e("a",xa,[e("span",null,[t("Api comment preview "),a(n,{text:"2022.2.6"})])])]),Aa])}const pn=K(te,[["render",Pa],["__file","feature.html.vue"]]),cn=JSON.parse('{"path":"/en/guide/feature.html","title":"Features","lang":"en-US","frontmatter":{"title":"Features","icon":"tools","description":"Deprecated, Make icon move Developers can freely choose and switch the color you want in the drop-down box, and can make it moving newLogo newLogoConfig Debug API & send request...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/feature.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/feature.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Features"}],["meta",{"property":"og:description","content":"Deprecated, Make icon move Developers can freely choose and switch the color you want in the drop-down box, and can make it moving newLogo newLogoConfig Debug API & send request..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.4/newLogo.gif"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Features"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Features\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.4/newLogo.gif\\",\\"https://api-buddy.com/img/2022.2.4/newLogoConfig.png\\",\\"https://api-buddy.com/img/example_en.gif\\",\\"https://api-buddy.com/img/sendRequest.png\\",\\"https://api-buddy.com/img/searchEveryWhere.gif\\",\\"https://api-buddy.com/img/downloadFile.png\\",\\"https://api-buddy.com/img/2022.2.3/scriptProject_en.png\\",\\"https://api-buddy.com/img/2022.2.3/scriptModule_en.png\\",\\"https://api-buddy.com/img/export2postman.gif\\",\\"https://api-buddy.com/img/apis_hd.png\\",\\"https://api-buddy.com/img/apiManager_en.png\\",\\"https://api-buddy.com/img/saveRequest.png\\",\\"https://api-buddy.com/img/2022.2.1/groupSave_en.png\\",\\"https://api-buddy.com/img/2022.2.1/apiParamGroup_en.gif\\",\\"https://api-buddy.com/img/2022.2.1/tempSave_en.png\\",\\"https://api-buddy.com/img/regenerate_en.png\\",\\"https://api-buddy.com/img/icon/curl_dark.svg\\",\\"https://api-buddy.com/img/curl_en.png\\",\\"https://api-buddy.com/img/fastAddToken_en.gif\\",\\"https://api-buddy.com/img/apiGroup_en.gif\\",\\"https://api-buddy.com/img/moduleSearch.gif\\",\\"https://api-buddy.com/img/json_en.png\\",\\"https://api-buddy.com/img/apinav.gif\\",\\"https://api-buddy.com/img/headerSwitch.gif\\",\\"https://api-buddy.com/img/exportImportApis.gif\\",\\"https://api-buddy.com/img/paramDescription.png\\",\\"https://api-buddy.com/img/shareApi_en.png\\",\\"https://api-buddy.com/img/apiDocExample.png\\",\\"https://api-buddy.com/img/apiPreview.gif\\",\\"https://api-buddy.com/img/projectConfigParam.png\\",\\"https://api-buddy.com/img/2022.2.1/importByCurl_en.gif\\",\\"https://api-buddy.com/img/navigate2CurrentMethod.png\\",\\"https://api-buddy.com/img/history.png\\",\\"https://api-buddy.com/img/2022.2.2/stopApi.gif\\",\\"https://api-buddy.com/img/2022.2.2/batchExportApiDoc.png\\",\\"https://api-buddy.com/img/2022.2.3/copyUrl.png\\",\\"https://api-buddy.com/img/rawHtmlPreview.png\\",\\"https://api-buddy.com/img/2022.2.6/showCommentConfig.png\\",\\"https://api-buddy.com/img/2022.2.6/showCommentInClass.png\\",\\"https://api-buddy.com/img/2022.2.6/showCommentInNavigate.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Make icon move","slug":"make-icon-move","link":"#make-icon-move","children":[]},{"level":2,"title":"Debug API & send request","slug":"debug-api-send-request","link":"#debug-api-send-request","children":[]},{"level":2,"title":"SearchEveryWhere support","slug":"searcheverywhere-support","link":"#searcheverywhere-support","children":[]},{"level":2,"title":"Send and download","slug":"send-and-download","link":"#send-and-download","children":[]},{"level":2,"title":"Script","slug":"script","link":"#script","children":[]},{"level":2,"title":"APIs export to Postman","slug":"apis-export-to-postman","link":"#apis-export-to-postman","children":[]},{"level":2,"title":"API List","slug":"api-list","link":"#api-list","children":[]},{"level":2,"title":"Save Request","slug":"save-request","link":"#save-request","children":[]},{"level":2,"title":"API grouping parameter save support","slug":"api-grouping-parameter-save-support","link":"#api-grouping-parameter-save-support","children":[]},{"level":2,"title":"Temporary request save support","slug":"temporary-request-save-support","link":"#temporary-request-save-support","children":[]},{"level":2,"title":"Regenetate","slug":"regenetate","link":"#regenetate","children":[]},{"level":2,"title":"CURL copy","slug":"curl-copy","link":"#curl-copy","children":[]},{"level":2,"title":"Quickly add header","slug":"quickly-add-header","link":"#quickly-add-header","children":[]},{"level":2,"title":"API group automatic association","slug":"api-group-automatic-association","link":"#api-group-automatic-association","children":[]},{"level":2,"title":"Json grammar check","slug":"json-grammar-check","link":"#json-grammar-check","children":[]},{"level":2,"title":"API navigate tree","slug":"api-navigate-tree","link":"#api-navigate-tree","children":[]},{"level":2,"title":"Headers group(Automatic switching)","slug":"headers-group-automatic-switching","link":"#headers-group-automatic-switching","children":[]},{"level":2,"title":"APIs import and export","slug":"apis-import-and-export","link":"#apis-import-and-export","children":[]},{"level":2,"title":"Swagger default value parsing support","slug":"swagger-default-value-parsing-support","link":"#swagger-default-value-parsing-support","children":[]},{"level":2,"title":"Auto Description","slug":"auto-description","link":"#auto-description","children":[]},{"level":2,"title":"API share document","slug":"api-share-document","link":"#api-share-document","children":[]},{"level":2,"title":"API list preview","slug":"api-list-preview","link":"#api-list-preview","children":[]},{"level":2,"title":"Project-level global parameters support","slug":"project-level-global-parameters-support","link":"#project-level-global-parameters-support","children":[]},{"level":2,"title":"cURL import","slug":"curl-import","link":"#curl-import","children":[]},{"level":2,"title":"Navigate to current method","slug":"navigate-to-current-method","link":"#navigate-to-current-method","children":[]},{"level":2,"title":"History request","slug":"history-request","link":"#history-request","children":[]},{"level":2,"title":"Stop API request","slug":"stop-api-request","link":"#stop-api-request","children":[]},{"level":2,"title":"Batch export API doc","slug":"batch-export-api-doc","link":"#batch-export-api-doc","children":[]},{"level":2,"title":"One click copy url","slug":"one-click-copy-url","link":"#one-click-copy-url","children":[]},{"level":2,"title":"Html preview in response raw","slug":"html-preview-in-response-raw","link":"#html-preview-in-response-raw","children":[]},{"level":2,"title":"Api comment preview","slug":"api-comment-preview","link":"#api-comment-preview","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":4.73,"words":1419},"filePathRelative":"en/guide/feature.md","localizedDate":"May 31, 2024","autoDesc":true}');export{pn as comp,cn as data}; diff --git a/assets/file-DiiNDLTi.js b/assets/file-DiiNDLTi.js new file mode 100644 index 000000000..f1941a24d --- /dev/null +++ b/assets/file-DiiNDLTi.js @@ -0,0 +1 @@ +const s="/img/icon/array.svg",o="/img/icon/object.svg",i="/img/icon/number.svg",n="/img/icon/string.svg",t="/img/icon/boolean.svg",c="/img/icon/file.svg";export{s as _,o as a,i as b,n as c,t as d,c as e}; diff --git a/assets/fullScreen-iCOWJbp4.js b/assets/fullScreen-iCOWJbp4.js new file mode 100644 index 000000000..b119872b9 --- /dev/null +++ b/assets/fullScreen-iCOWJbp4.js @@ -0,0 +1 @@ +const e="/img/2022.2.7/fullScreen.png";export{e as _}; diff --git a/assets/fullScreen.html-Eb53SqXM.js b/assets/fullScreen.html-Eb53SqXM.js new file mode 100644 index 000000000..0a40c1c02 --- /dev/null +++ b/assets/fullScreen.html-Eb53SqXM.js @@ -0,0 +1 @@ +import{_ as r}from"./fullScreen-iCOWJbp4.js";import{_ as n,r as l,o,c as a,a as e,d as c,b as i}from"./app-8OZtYazS.js";const s={},m=e("h1",{id:"full-screen",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#full-screen"},[e("span",null,"Full screen")])],-1),u=e("p",null,"For multiple screens, click on full screen for a more user-friendly interface. Click on the mark ② in the picture to resume.",-1),p=e("p",null,[e("img",{src:r,alt:"fullScreen",loading:"lazy"})],-1);function d(f,h){const t=l("Badge");return o(),a("div",null,[m,e("p",null,[c("Version required: "),i(t,{text:"2022.2.7+"})]),u,p])}const y=n(s,[["render",d],["__file","fullScreen.html.vue"]]),S=JSON.parse('{"path":"/en/guide/features/fullScreen.html","title":"Full screen","lang":"en-US","frontmatter":{"description":"Full screen Version required: For multiple screens, click on full screen for a more user-friendly interface. Click on the mark ② in the picture to resume. fullScreen ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/fullScreen.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/fullScreen.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Full screen"}],["meta",{"property":"og:description","content":"Full screen Version required: For multiple screens, click on full screen for a more user-friendly interface. Click on the mark ② in the picture to resume. fullScreen "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.7/fullScreen.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Full screen"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Full screen\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.7/fullScreen.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.11,"words":32},"filePathRelative":"en/guide/features/fullScreen.md","localizedDate":"May 31, 2024","autoDesc":true}');export{y as comp,S as data}; diff --git a/assets/fullScreen.html-w1sV3P66.js b/assets/fullScreen.html-w1sV3P66.js new file mode 100644 index 000000000..6f0870da4 --- /dev/null +++ b/assets/fullScreen.html-w1sV3P66.js @@ -0,0 +1 @@ +import{_ as a}from"./fullScreen-iCOWJbp4.js";import{_ as n,r as o,o as r,c as l,a as e,d as c,b as i}from"./app-8OZtYazS.js";const m={},p=e("h1",{id:"全屏",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#全屏"},[e("span",null,"全屏")])],-1),s=e("p",null,"点击全屏,在分屏幕的情况下,界面更加友好,点击图中标注 ② 即可还原",-1),d=e("p",null,[e("img",{src:a,alt:"fullScreen",loading:"lazy"})],-1);function u(g,f){const t=o("Badge");return r(),l("div",null,[p,e("p",null,[c("版本要求: "),i(t,{text:"2022.2.7+"})]),s,d])}const y=n(m,[["render",u],["__file","fullScreen.html.vue"]]),S=JSON.parse('{"path":"/guide/features/fullScreen.html","title":"全屏","lang":"zh-CN","frontmatter":{"description":"全屏 版本要求: 点击全屏,在分屏幕的情况下,界面更加友好,点击图中标注 ② 即可还原 fullScreen ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/fullScreen.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/fullScreen.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"全屏"}],["meta",{"property":"og:description","content":"全屏 版本要求: 点击全屏,在分屏幕的情况下,界面更加友好,点击图中标注 ② 即可还原 fullScreen "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.7/fullScreen.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"全屏"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"全屏\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.7/fullScreen.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.13,"words":40},"filePathRelative":"guide/features/fullScreen.md","localizedDate":"2024年5月31日","autoDesc":true}');export{y as comp,S as data}; diff --git a/assets/function.html-KTbJblbm.js b/assets/function.html-KTbJblbm.js new file mode 100644 index 000000000..54598aa57 --- /dev/null +++ b/assets/function.html-KTbJblbm.js @@ -0,0 +1,9 @@ +import{_ as p,r as t,o as c,c as i,b as s,a as n,d as a,e as l}from"./app-8OZtYazS.js";const u={},r=n("h1",{id:"函数",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#函数"},[n("span",null,"函数")])],-1),d=l(`

    路径:项目级别配置 -> Functions

    使用 {@函数名} 形式来替换魔法值。函数必须是无参数的,否则不能正常工作。

    输入{@后按快捷键可以唤起函数自动补全。

    开发者可以利用 jdk 中自带的类写属于自己定制化的函数,例如随机 5 个字符串

    public String randomString() {
    +    StringBuilder sb = new StringBuilder(5);
    +    for (int i = 0; i < 5; i++) {
    +        int randomIndex = RANDOM.nextInt(CHAR_NORMAL.length());
    +        sb.append(CHAR_NORMAL.charAt(randomIndex));
    +    }
    +    return sb.toString();
    +}
    +
    `,5),k={href:"https://github.com/DiUS/java-faker",target:"_blank",rel:"noopener noreferrer"},m=n("div",{class:"hint-container tip"},[n("p",{class:"hint-container-title"},"代码补全快捷键路径"),n("p",null,[a("在 "),n("code",null,"Setting -> Keymap"),a(" 下的 "),n("code",null,"Main Menu->Code->Code Completion->Basic")])],-1);function g(f,h){const e=t("MyCarousel"),o=t("ExternalLinkIcon");return c(),i("div",null,[r,s(e,{imgList:["/img/2024.1.7/function.png","/img/2024.1.7/functionInBody.png","/img/2024.1.7/functionConfig.png"]},null,8,["imgList"]),d,n("p",null,[a("更可以使用 "),n("a",k,[a("java-faker"),s(o)]),a(" 库,定制各种类型的参数随机生成。")]),m])}const y=p(u,[["render",g],["__file","function.html.vue"]]),b=JSON.parse('{"path":"/guide/features/function.html","title":"函数","lang":"zh-CN","frontmatter":{"description":"函数 ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/function.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/function.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"函数"}],["meta",{"property":"og:description","content":"函数 "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-08-20T00:15:22.000Z"}],["meta",{"property":"article:modified_time","content":"2024-08-20T00:15:22.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"函数\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-20T00:15:22.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1724112922000,"updatedTime":1724112922000,"contributors":[{"name":"kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.56,"words":169},"filePathRelative":"guide/features/function.md","localizedDate":"2024年8月20日","autoDesc":true}');export{y as comp,b as data}; diff --git a/assets/function.html-Tz7dEZpY.js b/assets/function.html-Tz7dEZpY.js new file mode 100644 index 000000000..c8810b110 --- /dev/null +++ b/assets/function.html-Tz7dEZpY.js @@ -0,0 +1,9 @@ +import{_ as p,r as a,o as c,c as i,b as s,a as n,d as t,e as u}from"./app-8OZtYazS.js";const l={},r=n("h1",{id:"function",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#function"},[n("span",null,"Function")])],-1),d=u(`

    Path:Project Global Config -> Functions

    Use {@functionName} to replace the fixed value. Methods must be paramaterless, otherwise it won't work.

    Pressing the shortcut key after typing {@, it will invoke the auto-completion of the function.

    Developers can use the built-in api in the JDK to write own custom functions, such as 5-length random strings.

    public String randomString() {
    +    StringBuilder sb = new StringBuilder(5);
    +    for (int i = 0; i < 5; i++) {
    +        int randomIndex = RANDOM.nextInt(CHAR_NORMAL.length());
    +        sb.append(CHAR_NORMAL.charAt(randomIndex));
    +    }
    +    return sb.toString();
    +}
    +
    `,5),k={href:"https://github.com/DiUS/java-faker",target:"_blank",rel:"noopener noreferrer"},m=n("div",{class:"hint-container tip"},[n("p",{class:"hint-container-title"},"Code completion shortcut path"),n("p",null,[t("Under "),n("code",null,"Setting -> Keymap"),t(" ====> "),n("code",null,"Main Menu->Code->Code Completion->Basic")])],-1);function h(f,g){const e=a("MyCarousel"),o=a("ExternalLinkIcon");return c(),i("div",null,[r,s(e,{imgList:["/img/2024.1.7/functionEn.png","/img/2024.1.7/functionInBodyEn.png","/img/2024.1.7/functionConfig.png"]},null,8,["imgList"]),d,n("p",null,[t("Also you can use "),n("a",k,[t("java-faker"),s(o)]),t(" library to customize various types of random parameters.")]),m])}const y=p(l,[["render",h],["__file","function.html.vue"]]),b=JSON.parse('{"path":"/en/guide/features/function.html","title":"Function","lang":"en-US","frontmatter":{"description":"Function ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/function.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/function.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Function"}],["meta",{"property":"og:description","content":"Function "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-20T00:15:22.000Z"}],["meta",{"property":"article:modified_time","content":"2024-08-20T00:15:22.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Function\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-20T00:15:22.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1724112922000,"updatedTime":1724112922000,"contributors":[{"name":"kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.4,"words":121},"filePathRelative":"en/guide/features/function.md","localizedDate":"August 20, 2024","autoDesc":true}');export{y as comp,b as data}; diff --git a/assets/gitlabToken-Y8YtQVim.js b/assets/gitlabToken-Y8YtQVim.js new file mode 100644 index 000000000..6238f33ed --- /dev/null +++ b/assets/gitlabToken-Y8YtQVim.js @@ -0,0 +1 @@ +const i="/img/2022.2.7/apiSync.png",n="/img/2022.2.7/giteeToken.png",o="/img/2022.2.7/githubToken.png",s="/img/2022.2.7/gitlabToken.png";export{i as _,n as a,o as b,s as c}; diff --git a/assets/groupSave-Vif2yElp.js b/assets/groupSave-Vif2yElp.js new file mode 100644 index 000000000..0c4122a38 --- /dev/null +++ b/assets/groupSave-Vif2yElp.js @@ -0,0 +1 @@ +const o="/img/2022.2.1/groupSave.png";export{o as _}; diff --git a/assets/groupSave_en-p1Ro7kOp.js b/assets/groupSave_en-p1Ro7kOp.js new file mode 100644 index 000000000..3c7a847fc --- /dev/null +++ b/assets/groupSave_en-p1Ro7kOp.js @@ -0,0 +1 @@ +const o="/img/2022.2.1/groupSave_en.png";export{o as _}; diff --git a/assets/headerGroup-qNWSBGgF.js b/assets/headerGroup-qNWSBGgF.js new file mode 100644 index 000000000..cbbd0e52a --- /dev/null +++ b/assets/headerGroup-qNWSBGgF.js @@ -0,0 +1 @@ +const o="/img/headerGroup.png";export{o as _}; diff --git a/assets/headerGroup.html-EjccUMr6.js b/assets/headerGroup.html-EjccUMr6.js new file mode 100644 index 000000000..61f33292a --- /dev/null +++ b/assets/headerGroup.html-EjccUMr6.js @@ -0,0 +1 @@ +import{_ as a}from"./headerGroup-qNWSBGgF.js";import{_ as o}from"./headerSwitch-6dFu89NK.js";import{_ as n,r as i,o as s,c as d,a as e,d as t,b as p}from"./app-8OZtYazS.js";const c={},l=e("h1",{id:"headers-group",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#headers-group"},[e("span",null,"Headers group")])],-1),m=e("div",{class:"hint-container tip"},[e("p",{class:"hint-container-title"},"Tips"),e("p",null,[e("strong",null,"Scenes"),t(": Multi-module projects such as SpringBoot have different header parameters in different projects and environments. To quickly switch headers, header grouping is introduced. Operation method:")]),e("ol",null,[e("li",null,"Modify in the headers group, constraint: the input value must be in standard json format."),e("li",null,"Switch the environment or project name directly, and then enter the corresponding key and value values in the headers form.")])],-1),u=e("p",null,[e("img",{src:a,alt:"headerGroup",loading:"lazy"})],-1),h=e("p",null,[e("img",{src:o,alt:"headerSwitch",loading:"lazy"})],-1);function g(f,_){const r=i("Badge");return s(),d("div",null,[l,e("p",null,[t("Version Required: "),p(r,{text:"2.0.7"})]),m,u,h])}const S=n(c,[["render",g],["__file","headerGroup.html.vue"]]),b=JSON.parse('{"path":"/en/guide/features/headerGroup.html","title":"Headers group","lang":"en-US","frontmatter":{"description":"Headers group Version Required: Tips Scenes: Multi-module projects such as SpringBoot have different header parameters in different projects and environments. To quickly switch ...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/headerGroup.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/headerGroup.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Headers group"}],["meta",{"property":"og:description","content":"Headers group Version Required: Tips Scenes: Multi-module projects such as SpringBoot have different header parameters in different projects and environments. To quickly switch ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/headerGroup.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Headers group"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Headers group\\",\\"image\\":[\\"https://api-buddy.com/img/headerGroup.png\\",\\"https://api-buddy.com/img/headerSwitch.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.25,"words":76},"filePathRelative":"en/guide/features/headerGroup.md","localizedDate":"May 31, 2024","autoDesc":true}');export{S as comp,b as data}; diff --git a/assets/headerGroup.html-SPKCPIV9.js b/assets/headerGroup.html-SPKCPIV9.js new file mode 100644 index 000000000..fd4712808 --- /dev/null +++ b/assets/headerGroup.html-SPKCPIV9.js @@ -0,0 +1,5 @@ +import{_ as a}from"./headerGroup-qNWSBGgF.js";import{_ as r}from"./headerSwitch-6dFu89NK.js";import{_ as o,r as n,o as d,c as i,a as e,d as s,b as p}from"./app-8OZtYazS.js";const c={},m=e("h1",{id:"headers-分组",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#headers-分组"},[e("span",null,"Headers 分组")])],-1),l=e("div",{class:"language-text","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`场景:SpringBoot等多模块项目不同项目、不同环境下头参数不同,为了快速自动切换headers,引入了header分组 +操作方式: +1.在headers group里修改约束:输入的值必须是标准json格式 +2.直接切换环境,然后再headers表格中输入对应的key、value值 +`)])],-1),h=e("p",null,[e("img",{src:a,alt:"headerGroup",loading:"lazy"})],-1),u=e("p",null,[e("img",{src:r,alt:"headerSwitch",loading:"lazy"})],-1);function g(_,y){const t=n("Badge");return d(),i("div",null,[m,e("p",null,[s("版本要求: "),p(t,{text:"2.0.7"})]),l,h,u])}const b=o(c,[["render",g],["__file","headerGroup.html.vue"]]),w=JSON.parse('{"path":"/guide/features/headerGroup.html","title":"Headers 分组","lang":"zh-CN","frontmatter":{"description":"Headers 分组 版本要求: headerGroup headerSwitch ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/headerGroup.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/headerGroup.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Headers 分组"}],["meta",{"property":"og:description","content":"Headers 分组 版本要求: headerGroup headerSwitch "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/headerGroup.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Headers 分组"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Headers 分组\\",\\"image\\":[\\"https://api-buddy.com/img/headerGroup.png\\",\\"https://api-buddy.com/img/headerSwitch.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.33,"words":100},"filePathRelative":"guide/features/headerGroup.md","localizedDate":"2024年5月31日","autoDesc":true}');export{b as comp,w as data}; diff --git a/assets/headerSwitch-6dFu89NK.js b/assets/headerSwitch-6dFu89NK.js new file mode 100644 index 000000000..0d3d06665 --- /dev/null +++ b/assets/headerSwitch-6dFu89NK.js @@ -0,0 +1 @@ +const i="/img/headerSwitch.gif";export{i as _}; diff --git a/assets/headersGroup.html-0bTk6nhh.js b/assets/headersGroup.html-0bTk6nhh.js new file mode 100644 index 000000000..eda59765c --- /dev/null +++ b/assets/headersGroup.html-0bTk6nhh.js @@ -0,0 +1,5 @@ +import{_ as a}from"./headerSwitch-6dFu89NK.js";import{_ as r,r as o,o as s,c as d,a as e,d as n,b as i}from"./app-8OZtYazS.js";const c={},p=e("h1",{id:"headers-分组",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#headers-分组"},[e("span",null,"Headers 分组")])],-1),m=e("div",{class:"language-text","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`场景:SpringBoot等多模块项目不同项目、不同环境下头参数不同,为了快速自动切换headers,引入了header分组 +操作方式: +1.在headers group里修改约束:输入的值必须是标准json格式 +2.直接切换环境,然后再headers表格中输入对应的key、value值 +`)])],-1),l=e("p",null,[e("img",{src:a,alt:"headerSwitch",loading:"lazy"})],-1);function h(u,g){const t=o("Badge");return s(),d("div",null,[p,e("p",null,[n("版本要求: "),i(t,{text:"2.0.7"})]),m,l])}const f=r(c,[["render",h],["__file","headersGroup.html.vue"]]),x=JSON.parse('{"path":"/guide/features/headersGroup.html","title":"Headers 分组","lang":"zh-CN","frontmatter":{"description":"Headers 分组 版本要求: headerSwitch ","head":[["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/headersGroup.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Headers 分组"}],["meta",{"property":"og:description","content":"Headers 分组 版本要求: headerSwitch "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/headerSwitch.gif"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Headers 分组"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Headers 分组\\",\\"image\\":[\\"https://api-buddy.com/img/headerSwitch.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.33,"words":98},"filePathRelative":"guide/features/headersGroup.md","localizedDate":"2024年5月31日","autoDesc":true}');export{f as comp,x as data}; diff --git a/assets/history-jJ_6Nu4h.js b/assets/history-jJ_6Nu4h.js new file mode 100644 index 000000000..c224a984a --- /dev/null +++ b/assets/history-jJ_6Nu4h.js @@ -0,0 +1 @@ +const o="/img/history.png";export{o as _}; diff --git a/assets/history.html-KDcCl6mr.js b/assets/history.html-KDcCl6mr.js new file mode 100644 index 000000000..2612ba06b --- /dev/null +++ b/assets/history.html-KDcCl6mr.js @@ -0,0 +1,108 @@ +import{_ as m}from"./wechatGroup-zkZOzzsF.js";import{_ as g}from"./pluginDevelopGroup-jTY5h0OX.js";import{_ as y,a as v,b as x,c as k,d as b,e as f,f as A,g as w,h as I,i as S,j as P,k as z,l as E,m as C,n as j,o as R,p as D,q,r as U,s as L,t as N,u as T,v as M,w as B,x as W,y as H,z as J,A as F,B as $,C as O,D as G,E as V,F as K,G as Y,H as X,I as Q,J as Z,K as tt,L as nt,M as et,N as st,O as lt,P as ot,Q as it,R as at,S as ct,T as pt,U as rt,V as dt,W as ut,X as _t,Y as ht,Z as mt,$ as gt,a0 as yt,a1 as vt,a2 as xt,a3 as kt,a4 as bt,a5 as ft,a6 as At,a7 as wt,a8 as It,a9 as St,aa as Pt,ab as zt,ac as Et,ad as Ct,ae as jt,af as Rt,ag as Dt,ah as qt,ai as Ut,aj as Lt,ak as Nt,al as Tt,am as Mt,an as Bt}from"./jaxrs-QTJkfshC.js";import{_ as Wt}from"./addLibrary-m3-5pdM8.js";import{_ as Ht}from"./ai-budej5Oc.js";import{_ as Jt}from"./customToolbar-pc3yDPUI.js";import{_ as Ft}from"./ignoreFiled-6BsUexZN.js";import{_ as $t}from"./toolwindowNew-QF7S_oTa.js";import{_ as Ot}from"./searchEveryWhere-Eoz90lA4.js";import{_ as Gt}from"./batchEdit-_t2hwcoO.js";import{_ as Vt}from"./refreshProjectConfig-nDUALD3E.js";import{_ as Kt}from"./annualReport-psTx-0KB.js";import{_ as Yt,a as Xt}from"./projectLevelDomainDialog-8sRek__q.js";import{_ as Qt}from"./commonHeader-O9g0FG--.js";import{_ as Zt}from"./fullScreen-iCOWJbp4.js";import{_ as tn}from"./clear-qHRgcLZS.js";import{_ as nn,a as en,b as sn}from"./showCommentInNavigate-eoTLjphJ.js";import{_ as ln}from"./console-yl_t699w.js";import{_ as on}from"./twitter-vJUFHWuk.js";import{_ as an,a as cn}from"./scriptModule-qWOTuHgm.js";import{_ as pn}from"./copyUrl-qs4zOYAL.js";import{b as rn,a as dn,_ as un}from"./stopApi-fM6h6OKl.js";import{_ as _n}from"./batchExportApiDoc-XZ7l86Mn.js";import{_ as hn}from"./groupSave-Vif2yElp.js";import{_ as mn}from"./tempSave-uWqV754c.js";import{_ as gn}from"./importByCurl-5n26pegp.js";import{_ as yn}from"./history-jJ_6Nu4h.js";import{_ as vn}from"./rawHtmlPreview-k0XMOGO2.js";import{_ as xn}from"./projectConfigParam-_5a22Qyh.js";import{_ as kn}from"./navigate2CurrentMethod-91w29pZx.js";import{_ as bn}from"./shareApi-uRFN2kOm.js";import{_ as fn}from"./paramDescription-tGSx8XCt.js";import{_ as An}from"./apiDocExample-I6FA1jbR.js";import{_ as wn}from"./apiPreview-TsYf71lp.js";import{_ as In}from"./exportImportApis-cRKbjcMp.js";import{_ as Sn}from"./export2postman-dEAWnBlR.js";import{_ as Pn}from"./apinav-gngrTEBb.js";import{_ as zn}from"./headerSwitch-6dFu89NK.js";import{_ as En,a as Cn}from"./dropdownEnv-bZEd9SOg.js";import{_ as jn}from"./json-Eu6ts4pk.js";import{_ as Rn}from"./apiGroup-QroA2f5e.js";import{_ as Dn}from"./moduleSearch-vDt27hRI.js";import{_ as qn,r as d,o as Un,c as Ln,a as t,b as n,w as l,d as s,e as p}from"./app-8OZtYazS.js";const Nn="/img/2024.1.7/jsonFilter.png",Tn="/img/2024.1.1/searchEveryWhere.png",Mn="/img/2023.2.3/environment.png",Bn="/img/2023.1.9/environmentVariableEditRemoveModify.png",Wn="/img/2023.1.8/methodDescriptionLength.png",Hn="/img/2022.2.9/animateConfig.png",Jn="/img/2022.2.7/upgradeNotice.png",Fn="/img/generateSwitch.png",$n="/img/whatsnew.png",On={},Gn={class:"hint-container important"},Vn=t("p",{class:"hint-container-title"},"公告",-1),Kn=t("strong",null,"收费版 VS 免费版",-1),Yn=t("strong",null,"License",-1),Xn=t("strong",null,"购买插件",-1),Qn=t("strong",null,"群公告",-1),Zn={href:"https://github.com/dromara/fast-request/issues",target:"_blank",rel:"noopener noreferrer"},te=t("em",null,"Github",-1),ne=t("thead",null,[t("tr",null,[t("th",null,[t("img",{src:"https://img.shields.io/static/v1?label=wechat&message=微信技术群&logo=wechat&color=07C160",alt:"微信技术群",loading:"lazy"})]),t("th",null,[t("img",{src:"https://img.shields.io/static/v1?label=wechat&message=插件开发技术群&logo=wechat&color=087CFA",alt:"插件开发技术群",loading:"lazy"})])])],-1),ee=t("tr",null,[t("td",null,[t("img",{src:m,alt:"wechat group",loading:"lazy"})]),t("td",null,[t("img",{src:g,alt:"插件开发技术群",loading:"lazy"})])],-1),se=t("td",null,[s("如果扫码失败请直接搜微信号"),t("mark",null,"FastRequest99")],-1),le={href:"https://plugins.jetbrains.com/plugin/24920-iblog",target:"_blank",rel:"noopener noreferrer"},oe={href:"https://plugins.jetbrains.com/plugin/24576-bean-assistant",target:"_blank",rel:"noopener noreferrer"},ie=t("br",null,null,-1),ae=t("blockquote",null,[t("p",null,[t("strong",null,"由于开发版本仍在开发中,开发版本的文档可能不完全准确,因此可能会发生变化。")])],-1),ce={id:"_2024-1-7",tabindex:"-1"},pe={class:"header-anchor",href:"#_2024-1-7"},re={class:"custom-container hint",style:{background:"#262626"}},de={class:"custom-container-title"},ue=t("p",null,[s("支持变量 "),t("code",null,"{{xx}}"),s(" 与 "),t("code",null,"{@函数名}"),s("的代码补全")],-1),_e={class:"custom-container hint",style:{background:"#262626"}},he={class:"custom-container-title"},me=t("p",null,[t("img",{src:Nn,alt:"jsonFilter",loading:"lazy"})],-1),ge=t("p",null,"当 JSON 字段较多,但是只需要一部分的时候,可以通过该功能对 JSON进行字段过滤",-1),ye={class:"custom-container hint",style:{background:"#262626"}},ve={class:"custom-container-title"},xe=t("p",null,[t("img",{src:y,alt:"header",loading:"lazy"})],-1),ke=t("p",null,[s("对于一些例如 "),t("code",null,"Authorization"),s(" 的请求头支持代码补全")],-1),be={class:"custom-container hint",style:{background:"#262626"}},fe={class:"custom-container-title"},Ae=t("p",null,[t("img",{src:v,alt:"jsonFilter",loading:"lazy"})],-1),we=t("p",null,"Multipart 类型字段可以通过该配置设置默认文件路径",-1),Ie={class:"custom-container hint",style:{background:"#262626"}},Se={class:"custom-container-title"},Pe=t("p",null,[t("img",{src:x,alt:"searchEveryWhere",loading:"lazy"})],-1),ze=t("p",null,"按照Url 路径优化了匹配的排序规则,将匹配度高的排在前面",-1),Ee={id:"_2024-1-6-3",tabindex:"-1"},Ce={class:"header-anchor",href:"#_2024-1-6-3"},je={id:"_2024-1-6-2",tabindex:"-1"},Re={class:"header-anchor",href:"#_2024-1-6-2"},De={class:"custom-container hint",style:{background:"#262626"}},qe={class:"custom-container-title"},Ue=p(`

    针对如下类型的自定义 RestController 注解在 Controller 类中的扫描支持

    @Target(ElementType.TYPE)
    +@Retention(RetentionPolicy.RUNTIME)
    +@Documented
    +@RestController
    +@RequestMapping
    +public @interface CustomRestController {
    +
    +    @AliasFor(annotation = RequestMapping.class)
    +    String name() default "";
    +
    +    @AliasFor(annotation = RequestMapping.class)
    +    String[] value() default {};
    +}
    +
    `,2),Le={id:"_2024-1-6",tabindex:"-1"},Ne={class:"header-anchor",href:"#_2024-1-6"},Te={class:"custom-container hint",style:{background:"#262626"}},Me={class:"custom-container-title"},Be=t("code",null,"rapi",-1),We=t("strong",null,"多 Tab 窗口",-1),He={class:"custom-container hint",style:{background:"#262626"}},Je={class:"custom-container-title"},Fe=t("p",null,"增加了对 Apis 标签页中对 Api 的标记支持,使其标记红色高亮圆点,并增加了标记 Api 搜索。 可将一些常用的 Api 标记,便于后续的查找。",-1),$e={class:"custom-container hint",style:{background:"#262626"}},Oe={class:"custom-container-title"},Ge=t("p",null,"右键选项支持复制原始 Url",-1),Ve={class:"custom-container hint",style:{background:"#262626"}},Ke={class:"custom-container-title"},Ye=t("p",null,[t("img",{src:k,alt:"jsonPath",loading:"lazy"})],-1),Xe=t("code",null,"Body->Raw",-1),Qe=t("code",null,"Response->Pretty",-1),Ze={href:"https://plugins.jetbrains.com/plugin/22044-jsonpath",target:"_blank",rel:"noopener noreferrer"},ts={id:"_2024-1-5-1",tabindex:"-1"},ns={class:"header-anchor",href:"#_2024-1-5-1"},es={id:"_2024-1-5",tabindex:"-1"},ss={class:"header-anchor",href:"#_2024-1-5"},ls={class:"custom-container hint",style:{background:"#262626"}},os={class:"custom-container-title"},is=t("p",null,[t("img",{src:Wt,alt:"",loading:"lazy"})],-1),as={href:"https://www.jetbrains.com/help/idea/auto-completing-code.html",target:"_blank",rel:"noopener noreferrer"},cs={class:"custom-container hint",style:{background:"#262626"}},ps={class:"custom-container-title"},rs=t("p",null,[t("img",{src:b,alt:"",loading:"lazy"})],-1),ds=t("p",null,"下拉框使用更加明确的英文类型,并使用不同颜色区分不同的类型",-1),us={class:"custom-container hint",style:{background:"#262626"}},_s={class:"custom-container-title"},hs=t("p",null,[t("img",{src:f,alt:"",loading:"lazy"})],-1),ms=t("p",null,"调试界面 Url 输入框和 APIs 界面 url 展示成原始 url,不对路径参数进行替换。",-1),gs={class:"custom-container hint",style:{background:"#262626"}},ys={class:"custom-container-title"},vs=t("p",null,"针对匹配到的 url 一样,但是方法的类型(Get、Post等)不一样的绑定配对进行了优化,使得他们可以正确的匹配。",-1),xs={id:"_2024-1-4",tabindex:"-1"},ks={class:"header-anchor",href:"#_2024-1-4"},bs={class:"custom-container hint",style:{background:"#262626"}},fs={class:"custom-container-title"},As=t("p",null,[s("Apifox集成,支持同步 API、环境变量、域名信息等。只要配置一个 "),t("code",null,"API key"),s(",并设定项目映射关系即可进行同步。")],-1),ws={href:"https://www.bilibili.com/video/BV1pM4m1Q7c5",target:"_blank",rel:"noopener noreferrer"},Is={class:"custom-container hint",style:{background:"#262626"}},Ss={class:"custom-container-title"},Ps=p('

    AI

    为了将 AI 的回复更加精准,我们将 AI 的 设置更加精细化,加入了3个维度,加入了概述提问范例提问范例结果。此设计即让 AI 先训练一次问答,从而使得结果更加符合预期

    我们可以在概述中尽量表述问题的各种可能,并在提问范例提问范例结果中给于概述中描述的样本。

    ',3),zs=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`你是一位优秀的 JSON 处理程序。每当用户向您发送 JSON 时,您都应该以固定的 JSON 格式响应用户,并根据 +JSON 键的含义将 JSON 字段中的值替换为人类可读的内容。您只需修改 JSON 中的值,而无需更改其结构。 +`)])],-1),Es=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`{"id":1,"title":"title_ahska","simpleDesc":"simpleDesc_ohga1","content":"content_yujga"} +`)])],-1),Cs=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`{"id":1,"title":"书画标题","simpleDesc":"简介内容","content":"整体内容"} +`)])],-1),js={class:"custom-container hint",style:{background:"#262626"}},Rs={class:"custom-container-title"},Ds=t("p",null,[t("img",{src:A,alt:"Header",loading:"lazy"})],-1),qs=t("li",null,[s("前置、后置脚本中的变量 "),t("code",null,"moduleHeader"),s(" 变更 "),t("code",null,"为apiHeader"),s("。")],-1),Us={class:"custom-container hint",style:{background:"#262626"}},Ls={class:"custom-container-title"},Ns=t("p",null,"在去除域名后,如果 Url 与项目中方法的 Url 一致则自动绑定。",-1),Ts={id:"_2024-1-3",tabindex:"-1"},Ms={class:"header-anchor",href:"#_2024-1-3"},Bs={class:"custom-container hint",style:{background:"#262626"}},Ws={class:"custom-container-title"},Hs=t("p",null,"增加了 OpenAi、CodeGeeX、自定义三种形式的 AI 支持,通过可配置化的指令,可将选中的文本替换成目标文本。",-1),Js=t("p",null,[s("可以在 "),t("code",null,"Body -> JSON"),s(", "),t("code",null,"Body -> Form URL-Encoded -> Text"),s(","),t("code",null,"URL Params -> Text"),s(" 3个 Tab 下操作。")],-1),Fs={id:"_2024-1-2-1",tabindex:"-1"},$s={class:"header-anchor",href:"#_2024-1-2-1"},Os={id:"_2024-1-2",tabindex:"-1"},Gs={class:"header-anchor",href:"#_2024-1-2"},Vs={class:"custom-container hint",style:{background:"#262626"}},Ks={class:"custom-container-title"},Ys=t("p",null,[t("img",{src:Jt,alt:"customToolbar",loading:"lazy"})],-1),Xs=t("p",null,"使用自定义工具栏,选择自己需要使用的功能,将其他功能按钮进行隐藏,设置完成需要重启 IDEA",-1),Qs={id:"_2024-1-1",tabindex:"-1"},Zs={class:"header-anchor",href:"#_2024-1-1"},tl={class:"custom-container hint",style:{background:"#262626"}},nl={class:"custom-container-title"},el=t("p",null,[t("img",{src:Tn,alt:"searchEveryWhere",loading:"lazy"})],-1),sl=t("p",null,"输入 Url 所在的类名,即可搜索该类下面的所有 API",-1),ll={class:"custom-container hint",style:{background:"#262626"}},ol={class:"custom-container-title"},il=t("p",null,"默认打开 Project 不再生成.fastRequest目录,只有操作插件才生成",-1),al={class:"custom-container hint",style:{background:"#262626"}},cl={class:"custom-container-title"},pl=t("p",null,[t("img",{src:Ft,alt:"ignoreFiled",loading:"lazy"})],-1),rl=t("p",null,"只需要在配置中增加字段名,即可将实体类中的特定字段忽略生成",-1),dl={class:"custom-container hint",style:{background:"#262626"}},ul={class:"custom-container-title"},_l=t("p",null,"可以通过快捷键快速打开 Apis 和 Navigate 窗口查看信息, 窗口打开的情况下再按 ESC 可以关闭窗口",-1),hl={class:"custom-container hint",style:{background:"#262626"}},ml={class:"custom-container-title"},gl=t("p",null,[t("img",{src:w,alt:"manualUpdateCheck",loading:"lazy"})],-1),yl=t("p",null,"点击检查插件更新",-1),vl={class:"custom-container hint",style:{background:"#262626"}},xl={class:"custom-container-title"},kl=t("p",null,"优化了SearchEveryWhere搜索逻辑,大大提生大项目的搜索性能。我们测试了拥有 7000个 API 的项目,搜索响应非常快",-1),bl={class:"custom-container hint",style:{background:"#262626"}},fl={class:"custom-container-title"},Al=t("p",null,"文件下载支持针对一下 2 种格式的支持,同时支持文件名转码",-1),wl=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`Content-Disposition:attachment; filename*=UTF-8''fastRequest%20.txt +Content-Disposition:attachment; filename=fastRequest.txt +`)])],-1),Il={id:"_2023-2-3-1",tabindex:"-1"},Sl={class:"header-anchor",href:"#_2023-2-3-1"},Pl={id:"_2023-2-3",tabindex:"-1"},zl={class:"header-anchor",href:"#_2023-2-3"},El={class:"custom-container hint",style:{background:"#262626"}},Cl={class:"custom-container-title"},jl=t("p",null,"仅需配置Postman的token和对应workspace的ID即可将API云上传到Postman.享受fast request不支持的功能.",-1),Rl=t("p",null,"由于历史原因,历史保存的持久化数据丢失了一部分字段,为了能够将同步至postman的数据更完整, 建议在插件postman配置中勾上保存后同步postman选项,通过保存操作来触发同步.",-1),Dl={class:"custom-container hint",style:{background:"#262626"}},ql={class:"custom-container-title"},Ul=t("p",null,"不同 Module 下的 API 生成参数的时候,如果开启了自动域名,自动切换项目名下拉框",-1),Ll={class:"custom-container hint",style:{background:"#262626"}},Nl={class:"custom-container-title"},Tl=t("p",null,[t("img",{src:Mn,alt:"environment",loading:"lazy"})],-1),Ml=t("p",null,"Environment区分为本地值(Current value)和共享值(Initial value)",-1),Bl=t("p",null,[s("Initial value可以通过提交 "),t("code",null,".fastRequest/config/fastRequestCurrentProjectEnvironment.json"),s(" 实现共享")],-1),Wl={class:"custom-container hint",style:{background:"#262626"}},Hl={class:"custom-container-title"},Jl=t("p",null,[t("img",{src:I,alt:"projectName",loading:"lazy"})],-1),Fl=t("p",null,"自动识别 module 名称作为下拉框选项,也可以自定义输入.",-1),$l={class:"custom-container hint",style:{background:"#262626"}},Ol={class:"custom-container-title"},Gl=p(`

    针对实体类字段忽略解析,可以在注释中添加@fastRequestParseIgnore来实现,原来的注解@parseIgnore依然适用

    /**
    + * xxx description
    + * @fastRequestParseIgnore
    + */
    +private String someIgnoreField ;
    +
    `,2),Vl={id:"_2023-2-2",tabindex:"-1"},Kl={class:"header-anchor",href:"#_2023-2-2"},Yl={class:"custom-container hint",style:{background:"#262626"}},Xl={class:"custom-container-title"},Ql={class:"custom-container hint",style:{background:"#262626"}},Zl={class:"custom-container-title"},to=t("p",null,[t("img",{src:S,alt:"json5",loading:"lazy"})],-1),no=t("p",null,"请求体JSON5格式支持,json字段注释支持",-1),eo={id:"_2023-2-1-1",tabindex:"-1"},so={class:"header-anchor",href:"#_2023-2-1-1"},lo={id:"_2023-2-1",tabindex:"-1"},oo={class:"header-anchor",href:"#_2023-2-1"},io={class:"custom-container hint",style:{background:"#262626"}},ao={class:"custom-container-title"},co=t("p",null,[t("img",{src:P,alt:"urlInputWithMethod",loading:"lazy"})],-1),po=t("p",null,"将老版本横向的3个组件(method下拉框,url输入框,响应下拉框)简化为1个,并且移除响应下拉框.增加简捷度",-1),ro={class:"custom-container hint",style:{background:"#262626"}},uo={class:"custom-container-title"},_o=t("p",null,[t("img",{src:z,alt:"openDoc",loading:"lazy"})],-1),ho={class:"custom-container hint",style:{background:"#262626"}},mo={class:"custom-container-title"},go=t("p",null,[t("img",{src:E,alt:"openDoc",loading:"lazy"})],-1),yo={class:"custom-container hint",style:{background:"#262626"}},vo={class:"custom-container-title"},xo=t("p",null,[t("img",{src:C,alt:"pluginVersion",loading:"lazy"})],-1),ko={id:"_2023-1-9",tabindex:"-1"},bo={class:"header-anchor",href:"#_2023-1-9"},fo={class:"custom-container hint",style:{background:"#262626"}},Ao={class:"custom-container-title"},wo=t("p",null,[t("img",{src:j,alt:"quickAddEnvironmentVariable",loading:"lazy"})],-1),Io=t("p",null,"选中一行需要添加到环境变量的点击添加按钮,可以快捷将该变量保存到当前Env中",-1),So={class:"custom-container hint",style:{background:"#262626"}},Po={class:"custom-container-title"},zo=t("p",null,[t("img",{src:Bn,alt:"environmentVariableEditRemoveModify",loading:"lazy"})],-1),Eo={class:"custom-container hint",style:{background:"#262626"}},Co={class:"custom-container-title"},jo=t("p",null,[t("img",{src:R,alt:"showApis",loading:"lazy"})],-1),Ro=t("p",null,[s("在Controller中任意位置右键唤起 "),t("code",null,"Generate"),s(",选择"),t("code",null,"Show apis"),s(" 即可展示当前控制器中的所有API")],-1),Do={class:"custom-container hint",style:{background:"#262626"}},qo={class:"custom-container-title"},Uo=t("p",null,[t("img",{src:D,alt:"responseSize.png",loading:"lazy"})],-1),Lo={class:"custom-container hint",style:{background:"#262626"}},No={class:"custom-container-title"},To={href:"https://www.bilibili.com/video/BV1wu4y1d7c4",target:"_blank",rel:"noopener noreferrer"},Mo={id:"_2023-1-8",tabindex:"-1"},Bo={class:"header-anchor",href:"#_2023-1-8"},Wo={class:"custom-container hint",style:{background:"#262626"}},Ho={class:"custom-container-title"},Jo={class:"custom-container hint",style:{background:"#262626"}},Fo={class:"custom-container-title"},$o=t("p",null,[t("img",{src:Wn,alt:"methodDescriptionLength",loading:"lazy"})],-1),Oo=t("p",null,[s("针对方法名过于长,导致显示或者数据保存的时候方法描述过程,可以进行截断设置。例如"),t("code",null,"SearchEveryWhere")],-1),Go={id:"_2023-1-7-1",tabindex:"-1"},Vo={class:"header-anchor",href:"#_2023-1-7-1"},Ko={class:"custom-container hint",style:{background:"#262626"}},Yo={class:"custom-container-title"},Xo=t("p",null,[t("img",{src:q,alt:"searchEveryWhere",loading:"lazy"})],-1),Qo=t("p",null,"选择自动生成后,即可回显或者自动生成API相关url及参数信息",-1),Zo={class:"custom-container hint",style:{background:"#262626"}},ti={class:"custom-container-title"},ni=t("p",null,[s("在"),t("code",null,"设置->Request Fast Request->其他配置中"),s("增加了配置项"),t("code",null,"动作触发时显示主工具窗口")],-1),ei={class:"custom-container hint",style:{background:"#262626"}},si={class:"custom-container-title"},li=t("p",null,[s("针对入参为"),t("code",null,"@RequestBody Setset"),s("的解析优化,默认给字符串加双引号")],-1),oi=t("div",{class:"language-java","data-ext":"java","data-title":"java"},[t("pre",{class:"language-java"},[t("code",null,[t("span",{class:"token annotation punctuation"},"@PostMapping"),t("span",{class:"token punctuation"},"("),t("span",{class:"token string"},'"test3"'),t("span",{class:"token punctuation"},")"),s(` +`),t("span",{class:"token keyword"},"public"),s(),t("span",{class:"token class-name"},"Set"),t("span",{class:"token generics"},[t("span",{class:"token punctuation"},"<"),t("span",{class:"token class-name"},"String"),t("span",{class:"token punctuation"},">")]),s(),t("span",{class:"token function"},"test3"),t("span",{class:"token punctuation"},"("),t("span",{class:"token annotation punctuation"},"@RequestBody"),s(),t("span",{class:"token class-name"},"Set"),t("span",{class:"token generics"},[t("span",{class:"token punctuation"},"<"),t("span",{class:"token class-name"},"String"),t("span",{class:"token punctuation"},">")]),s("set"),t("span",{class:"token punctuation"},")"),s(),t("span",{class:"token punctuation"},"{"),s(` + `),t("span",{class:"token keyword"},"return"),s(" set"),t("span",{class:"token punctuation"},";"),s(` +`),t("span",{class:"token punctuation"},"}"),s(` +`)])])],-1),ii={id:"_2023-1-7",tabindex:"-1"},ai={class:"header-anchor",href:"#_2023-1-7"},ci={class:"custom-container hint",style:{background:"#262626"}},pi={class:"custom-container-title"},ri=t("p",null,[t("img",{src:$t,alt:"toolwindowNew",loading:"lazy"})],-1),di={class:"custom-container hint",style:{background:"#262626"}},ui={class:"custom-container-title"},_i=t("p",null,[t("img",{src:Ot,alt:"searchEveryWhere",loading:"lazy"})],-1),hi=t("p",null,[s("支持"),t("code",null,"module"),s("、"),t("code",null,"methodType"),s("、"),t("code",null,"library"),s("搜索")],-1),mi={class:"custom-container hint",style:{background:"#262626"}},gi={class:"custom-container-title"},yi=p('

    同时支持在 setting -> Restful Fast Request -> 使用精简http图标 修改

    方法名新图标老图标
    Getget_darkget_dark
    Postpost_darkpost_dark
    Deletedelete_darkdelete_dark
    Putput_darkput_dark
    Patchpatch_darkpatch_dark
    ',2),vi={class:"custom-container hint",style:{background:"#262626"}},xi={class:"custom-container-title"},ki=t("p",null,[t("img",{src:U,alt:"fieldDup",loading:"lazy"})],-1),bi=t("p",null,[s("支持字段行拷贝,key用"),t("code",null,"-dup"),s("结尾标注。集合场景不变更key,开发者需要自行处理修改下标")],-1),fi={id:"_2023-1-6",tabindex:"-1"},Ai={class:"header-anchor",href:"#_2023-1-6"},wi={class:"custom-container hint",style:{background:"#262626"}},Ii={class:"custom-container-title"},Si=t("p",null,[t("img",{src:Gt,alt:"batchEdit",loading:"lazy"})],-1),Pi={id:"_2023-1-5",tabindex:"-1"},zi={class:"header-anchor",href:"#_2023-1-5"},Ei={class:"custom-container hint",style:{background:"#262626"}},Ci={class:"custom-container-title"},ji=t("p",null,[t("img",{src:L,alt:"editorAction",loading:"lazy"})],-1),Ri=t("p",null,"从原先按钮容易挡住文本的位置移至编辑器右上角",-1),Di=t("div",{class:"hint-container caution"},[t("p",{class:"hint-container-title"},"SearchEveryWhere 样式错乱"),t("p",null,"这个问题伴随了很多版本,该版本彻底修复了。SearchEveryWhere 不会出现 Tab 宽度变大而导致 Tab 显示不全")],-1),qi={id:"_2023-1-4-2",tabindex:"-1"},Ui={class:"header-anchor",href:"#_2023-1-4-2"},Li={id:"_2023-1-4-1",tabindex:"-1"},Ni={class:"header-anchor",href:"#_2023-1-4-1"},Ti={id:"_2023-1-4",tabindex:"-1"},Mi={class:"header-anchor",href:"#_2023-1-4"},Bi={class:"custom-container hint",style:{background:"#262626"}},Wi={class:"custom-container-title"},Hi={id:"_2023-1-3-2",tabindex:"-1"},Ji={class:"header-anchor",href:"#_2023-1-3-2"},Fi={class:"custom-container hint",style:{background:"#262626"}},$i={class:"custom-container-title"},Oi=t("p",null,[t("img",{src:N,alt:"AI",loading:"lazy"})],-1),Gi={href:"https://platform.openai.com/docs/api-reference/chat",target:"_blank",rel:"noopener noreferrer"},Vi={class:"custom-container hint",style:{background:"#262626"}},Ki={class:"custom-container-title"},Yi=t("p",null,[t("img",{src:T,alt:"jumpToJsonData",loading:"lazy"})],-1),Xi=t("p",null,[t("img",{src:M,alt:"API列表跳转到json",loading:"lazy"})],-1),Qi=t("p",null,"实现 API 以及底层保存的 json 数据进行关联跳转",-1),Zi={class:"custom-container hint",style:{background:"#262626"}},ta={class:"custom-container-title"},na=t("p",null,[t("img",{src:Vt,alt:"refreshProjectConfig",loading:"lazy"})],-1),ea=t("p",null,"配置文件更新后,UI 实现项目级别配置更新",-1),sa={class:"custom-container hint",style:{background:"#262626"}},la={class:"custom-container-title"},oa={class:"custom-container hint",style:{background:"#262626"}},ia={class:"custom-container-title"},aa=t("p",null,[t("img",{src:B,alt:"apiSyncSupportBranch",loading:"lazy"})],-1),ca=t("p",null,"支持特定分支,因为有些情况下 master 被保护不允许 push",-1),pa={class:"custom-container hint",style:{background:"#262626"}},ra={class:"custom-container-title"},da=t("p",null,[t("img",{src:W,alt:"htoolbar",loading:"lazy"})],-1),ua=t("p",null,[t("img",{src:H,alt:"vtoolbar",loading:"lazy"})],-1),_a=t("p",null,[t("img",{src:J,alt:"toolbarSetting",loading:"lazy"})],-1),ha=t("ol",null,[t("li",null,"垂直工具栏支持"),t("li",null,"按钮位置调整和折叠")],-1),ma={class:"custom-container hint",style:{background:"#262626"}},ga={class:"custom-container-title"},ya=t("p",null,[t("img",{src:F,alt:"toolbar",loading:"lazy"})],-1),va=t("p",null,"对图标进行了圆角处理,并且调整了背景色",-1),xa={id:"_2023-1-2",tabindex:"-1"},ka={class:"header-anchor",href:"#_2023-1-2"},ba={class:"custom-container hint",style:{background:"#262626"}},fa={class:"custom-container-title"},Aa=t("p",null,[t("img",{src:$,alt:"imageRender",loading:"lazy"})],-1),wa=t("p",null,"针对响应是图片的请求,自动渲染出图片,适合验证码场景",-1),Ia={class:"custom-container hint",style:{background:"#262626"}},Sa={class:"custom-container-title"},Pa=t("p",null,[t("img",{src:Kt,alt:"annualReport",loading:"lazy"})],-1),za=t("p",null,[s("统计了历年操作的数据,你是否要来"),t("strong",null,"PK"),s("一把。此处省略 1 个狗头")],-1),Ea={class:"custom-container hint",style:{background:"#262626"}},Ca={class:"custom-container-title"},ja=p(`

    优化了 url 针对变量拼接的最终结果,例如几个变量拼接最终计算出一个 url。

    插件将最终计算出 url=/test/a.htm

    public class MyConstant {
    +  public static final String MODULE_NAME = "a";
    +  public static final String DYNAMIC_WEB_SUFFIX = ".htm";
    +  public static final String REPAYMENT_REPAY = MODULE_NAME + DYNAMIC_WEB_SUFFIX;
    +}
    +@PostMapping(MyConstant.REPAYMENT_REPAY)
    +  public String test2() {
    +  return "";
    +}
    +
    `,3),Ra={class:"custom-container hint",style:{background:"#262626"}},Da={class:"custom-container-title"},qa=t("ol",null,[t("li",null,[s("自动解析 query param 进入"),t("code",null,"Url params"),s(" tab 页")]),t("li",null,"json 解析优化"),t("li",null,"已知 bug 修复")],-1),Ua={class:"custom-container hint",style:{background:"#262626"}},La={class:"custom-container-title"},Na=t("p",null,"针对带 query param 的 url 中的参数值待特殊字符进行了处理,不需要用户再额外进行特殊编码再传参",-1),Ta={class:"custom-container hint",style:{background:"#262626"}},Ma={class:"custom-container-title"},Ba=t("p",null,"url 输入框点击回车,自动发送请求",-1),Wa={id:"_2023-1-1",tabindex:"-1"},Ha={class:"header-anchor",href:"#_2023-1-1"},Ja={class:"custom-container hint",style:{background:"#262626"}},Fa={class:"custom-container-title"},$a=t("p",null,[t("img",{src:Yt,alt:"projectLevelDomainConfig",title:"域名配置",loading:"lazy"})],-1),Oa=t("p",null,[t("img",{src:Xt,alt:"projectLevelDomainDialog",title:"域名列表",loading:"lazy"})],-1),Ga=t("code",null,"yml",-1),Va=t("code",null,"properties",-1),Ka={class:"custom-container hint",style:{background:"#262626"}},Ya={class:"custom-container-title"},Xa=t("p",null,"对按钮进行了归类整理,让开发者更加容易找到和理解对应按钮的功能。",-1),Qa={class:"custom-container hint",style:{background:"#262626"}},Za={class:"custom-container-title"},tc=t("p",null,"新 UI 下工具窗口图标清晰度进行了优化。",-1),nc={id:"_2022-3-1",tabindex:"-1"},ec={class:"header-anchor",href:"#_2022-3-1"},sc={class:"custom-container hint",style:{background:"#262626"}},lc={class:"custom-container-title"},oc=p(`

    以下的代码,插件会忽略解析该字段,请使用@fastRequestParseIgnore

    /**
    + * xxx description
    + * @fastRequestParseIgnore
    + */
    +private String someIgnoreField ;
    +
    `,2),ic={class:"custom-container hint",style:{background:"#262626"}},ac={class:"custom-container-title"},cc=t("p",null,[s("在脚本中可以通过"),t("code",null,"rfr.currentDomain"),s("获取当前作用的域名")],-1),pc={id:"_2022-2-9",tabindex:"-1"},rc={class:"header-anchor",href:"#_2022-2-9"},dc={class:"custom-container hint",style:{background:"#262626"}},uc={class:"custom-container-title"},_c=t("p",null,[t("img",{src:Hn,alt:"animateConfig",loading:"lazy"})],-1),hc=t("p",null,"你可以在此关闭全局动画,如果关闭了,图标将不再动",-1),mc={id:"_2022-2-8",tabindex:"-1"},gc={class:"header-anchor",href:"#_2022-2-8"},yc={class:"custom-container hint",style:{background:"#262626"}},vc={class:"custom-container-title"},xc=t("p",null,[s("当 response 加了"),t("code",null,"content-disposition:attachment"),s(",点击 send 自动适配下载")],-1),kc={id:"v2022-2-7",tabindex:"-1"},bc={class:"header-anchor",href:"#v2022-2-7"},fc={class:"custom-container hint",style:{background:"#262626"}},Ac={class:"custom-container-title"},wc={class:"custom-container hint",style:{background:"#262626"}},Ic={class:"custom-container-title"},Sc=t("p",null,[t("img",{src:O,alt:"returnValueDoc",loading:"lazy"})],-1),Pc={class:"custom-container hint",style:{background:"#262626"}},zc={class:"custom-container-title"},Ec=t("p",null,[t("img",{src:Jn,alt:"upgradeNotice",loading:"lazy"})],-1),Cc=t("p",null,[s("从显式的对话框改为通知,同时自动更新也修改为"),t("mark",null,"打开"),s("了,如果你想关闭,请到配置页面手动关闭它,但我建议"),t("mark",null,"开启它"),s(",这样子就可以及时接收到更新。")],-1),jc=t("p",null,"需要注意的是,前一个版本的更新依然会是弹窗,这个版本以后就是消息通知机制了",-1),Rc={class:"custom-container hint",style:{background:"#262626"}},Dc={class:"custom-container-title"},qc=t("p",null,[t("img",{src:Qt,alt:"commonHeader",loading:"lazy"})],-1),Uc={class:"custom-container hint",style:{background:"#262626"}},Lc={class:"custom-container-title"},Nc=t("p",null,[t("img",{src:Zt,alt:"fullScreen",loading:"lazy"})],-1),Tc={class:"custom-container hint",style:{background:"#262626"}},Mc={class:"custom-container-title"},Bc=t("p",null,[t("img",{src:G,alt:"fullScreen",loading:"lazy"})],-1),Wc={id:"v2022-2-6",tabindex:"-1"},Hc={class:"header-anchor",href:"#v2022-2-6"},Jc={class:"custom-container hint",style:{background:"#262626"}},Fc={class:"custom-container-title"},$c=t("p",null,[t("img",{src:tn,alt:"clear",loading:"lazy"}),s(" 全局清空")],-1),Oc=t("p",null,[t("img",{src:V,alt:"clearColumnValue",loading:"lazy"}),s(" 批量清空列值")],-1),Gc={class:"custom-container hint",style:{background:"#262626"}},Vc={class:"custom-container-title"},Kc=t("p",null,[t("img",{src:nn,alt:"showCommentConfig",loading:"lazy"}),t("img",{src:en,alt:"showCommentInClass",loading:"lazy"}),t("img",{src:sn,alt:"showCommentInNavigate",loading:"lazy"})],-1),Yc={class:"custom-container hint",style:{background:"#262626"}},Xc={class:"custom-container-title"},Qc=t("p",null,[t("img",{src:K,alt:"sortColumn",loading:"lazy"})],-1),Zc={id:"v2022-2-5-2",tabindex:"-1"},tp={class:"header-anchor",href:"#v2022-2-5-2"},np={id:"v2022-2-5-1",tabindex:"-1"},ep={class:"header-anchor",href:"#v2022-2-5-1"},sp={id:"v2022-2-5",tabindex:"-1"},lp={class:"header-anchor",href:"#v2022-2-5"},op={class:"custom-container hint",style:{background:"#262626"}},ip={class:"custom-container-title"},ap=t("p",null,[t("img",{src:ln,alt:"console",loading:"lazy"})],-1),cp=t("p",null,"Console 帮助开发者打印一些你想要的信息",-1),pp={class:"custom-container hint",style:{background:"#262626"}},rp={class:"custom-container-title"},dp=t("p",null,"可以使用这 2 个变量用于一些判断",-1),up={class:"custom-container hint",style:{background:"#262626"}},_p={class:"custom-container-title"},hp=t("p",null,[t("img",{src:Y,alt:"console",loading:"lazy"})],-1),mp=t("p",null,"读取 Javadoc 形式的参数注释,适用于 path 参数以及 request param 是非实体类的参数",-1),gp={class:"custom-container hint",style:{background:"#262626"}},yp={class:"custom-container-title"},vp=t("p",null,"有推特账号的请关注我,感谢",-1),xp=t("p",null,[t("img",{src:on,alt:"",loading:"lazy"})],-1),kp=t("p",null,[t("img",{src:X,alt:"twitterAction",loading:"lazy"})],-1),bp={id:"v2022-2-4-1",tabindex:"-1"},fp={class:"header-anchor",href:"#v2022-2-4-1"},Ap={id:"v2022-2-4",tabindex:"-1"},wp={class:"header-anchor",href:"#v2022-2-4"},Ip={class:"custom-container hint",style:{background:"#262626"}},Sp={class:"custom-container-title"},Pp=t("p",null,[s("开发者可以在下拉框里面自由选择并切换你想要的颜色,并且可以让它"),t("mark",null,"动起来"),s("(性能佳)")],-1),zp={class:"custom-container hint",style:{background:"#262626"}},Ep={class:"custom-container-title"},Cp=t("p",null,[t("img",{src:Q,alt:"dateTimeFormat",loading:"lazy"})],-1),jp={class:"custom-container hint",style:{background:"#262626"}},Rp={class:"custom-container-title"},Dp=t("p",null,[t("img",{src:Z,alt:"baseController",loading:"lazy"})],-1),qp={class:"custom-container hint",style:{background:"#262626"}},Up={class:"custom-container-title"},Lp=t("p",null,[s("如果你不需要接收自动更新,则可以关闭,通过手动的形式更新(建议开启) "),t("img",{src:tt,alt:"autoUpdate",loading:"lazy"})],-1),Np={id:"v2022-2-3-1",tabindex:"-1"},Tp={class:"header-anchor",href:"#v2022-2-3-1"},Mp={id:"v2022-2-3",tabindex:"-1"},Bp={class:"header-anchor",href:"#v2022-2-3"},Wp={class:"custom-container hint",style:{background:"#262626"}},Hp={class:"custom-container-title"},Jp=t("p",null,[t("img",{src:an,alt:"scriptProject",loading:"lazy"})],-1),Fp=t("p",null,[t("img",{src:cn,alt:"scriptModule",loading:"lazy"})],-1),$p=t("br",null,null,-1),Op={class:"custom-container hint",style:{background:"#262626"}},Gp={class:"custom-container-title"},Vp=t("p",null,[t("img",{src:pn,alt:"copyUrl",loading:"lazy"})],-1),Kp={class:"custom-container hint",style:{background:"#262626"}},Yp={class:"custom-container-title"},Xp=t("p",null,[t("mark",null,"2022.2.3 版本之前"),s("在输入表格中的参数时候,若光标还在表格内部,此时去点击操作按钮,某些场景下会报错或者值无法被修改,该问题在此版本得到解决")],-1),Qp={id:"v2022-2-2",tabindex:"-1"},Zp={class:"header-anchor",href:"#v2022-2-2"},tr={class:"custom-container hint",style:{background:"#262626"}},nr={class:"custom-container-title"},er=t("p",null,[t("img",{src:rn,alt:"stopApi",loading:"lazy"})],-1),sr={class:"custom-container hint",style:{background:"#262626"}},lr={class:"custom-container-title"},or=t("p",null,[t("img",{src:_n,alt:"batchExportApiDoc",loading:"lazy"})],-1),ir={id:"v2022-2-1",tabindex:"-1"},ar={class:"header-anchor",href:"#v2022-2-1"},cr={class:"custom-container hint",style:{background:"#262626"}},pr={class:"custom-container-title"},rr=t("p",null,"目的:一个 API 下保存不同组合的参数",-1),dr={href:"https://www.bilibili.com/video/BV1zU4y1S7pC?share_source=copy_web&vd_source=c46db3e7c134b1948dabbea9717a72ac",target:"_blank",rel:"noopener noreferrer"},ur=t("p",null,[t("mark",null,"原保存操作将默认归类到 Default 分组")],-1),_r=t("p",null,[s("如何操作:输入参数后点击"),t("mark",null,"分组请求保存")],-1),hr=t("p",null,[t("img",{src:hn,alt:"groupSave",loading:"lazy"})],-1),mr=t("p",null,[t("strong",null,"切换参数")],-1),gr=t("p",null,"以下是 book 列表 3 种语言的查询",-1),yr=t("p",null,[t("img",{src:dn,alt:"apiParamGroup",loading:"lazy"})],-1),vr={class:"custom-container hint",style:{background:"#262626"}},xr={class:"custom-container-title"},kr=t("p",null,"目的:保存任意不属于本项目的请求,用于临时调用,跟当前项目代码不关联",-1),br=t("p",null,[s("临时请求保存的 Request 的 Url 必须以"),t("mark",null,"http"),s("或者"),t("mark",null,"https"),s("开头")],-1),fr=t("p",null,[t("img",{src:mn,alt:"tempSave",loading:"lazy"})],-1),Ar={class:"custom-container hint",style:{background:"#262626"}},wr={class:"custom-container-title"},Ir=t("p",null,[t("img",{src:gn,alt:"importByCurl",loading:"lazy"})],-1),Sr=t("p",null,[t("mark",null,"请注意如果需要绑定方法,则需要将光标放置到方法名上")],-1),Pr={class:"custom-container hint",style:{background:"#262626"}},zr={class:"custom-container-title"},Er=t("p",null,[t("img",{src:nt,alt:"responseHeader",loading:"lazy"})],-1),Cr={class:"custom-container hint",style:{background:"#262626"}},jr={class:"custom-container-title"},Rr=t("p",null,[t("img",{src:et,alt:"responseHeader",loading:"lazy"})],-1),Dr=t("p",null,"目的:有些请求需要在 url 结尾加上.do",-1),qr={class:"custom-container hint",style:{background:"#262626"}},Ur={class:"custom-container-title"},Lr=t("p",null,[s("优化了"),t("code",null,"List"),s("的解析")],-1),Nr={id:"v2022-1-10",tabindex:"-1"},Tr={class:"header-anchor",href:"#v2022-1-10"},Mr={class:"custom-container hint",style:{background:"#262626"}},Br={class:"custom-container-title"},Wr=t("p",null,[t("img",{src:yn,alt:"history",loading:"lazy"})],-1),Hr=t("p",null,"隐藏技能:双击记录可以展示详情",-1),Jr={class:"custom-container hint",style:{background:"#262626"}},Fr={class:"custom-container-title"},$r=t("p",null,[t("img",{src:st,alt:"timeoutSetting",loading:"lazy"})],-1),Or=t("p",null,"默认: 60 秒",-1),Gr={class:"custom-container hint",style:{background:"#262626"}},Vr={class:"custom-container-title"},Kr=t("p",null,[t("img",{src:lt,alt:"searchEveryWhereDescription",loading:"lazy"})],-1),Yr=t("p",null,"支持注释搜索 API",-1),Xr={class:"custom-container hint",style:{background:"#262626"}},Qr={class:"custom-container-title"},Zr={id:"v2022-1-9",tabindex:"-1"},td={class:"header-anchor",href:"#v2022-1-9"},nd={class:"custom-container hint",style:{background:"#262626"}},ed={class:"custom-container-title"},sd=t("p",null,[t("img",{src:ot,alt:"toolwindowShortcut",loading:"lazy"})],-1),ld=t("p",null,[s("提供了快捷键可以快速跳转,可以在"),t("code",null,"setting->Keymap"),s("中修改")],-1),od={class:"custom-container hint",style:{background:"#262626"}},id={class:"custom-container-title"},ad=t("p",null,[t("img",{src:it,alt:"autoStoreCookie",loading:"lazy"})],-1),cd=t("p",null,[s("开启此配置,cookie 再自动存入"),t("mark",null,"项目全局参数"),s("中的"),t("code",null,"cookies"),s("中,此配置默认开启")],-1),pd={class:"custom-container hint",style:{background:"#262626"}},rd={class:"custom-container-title"},dd=t("p",null,[t("img",{src:vn,alt:"rawHtmlPreview",loading:"lazy"})],-1),ud=t("p",null,"raw 中不再截断 html 返回类型的响应,同时可以对 html 进行预览",-1),_d={class:"custom-container hint",style:{background:"#262626"}},hd={class:"custom-container-title"},md={class:"custom-container hint",style:{background:"#262626"}},gd={class:"custom-container-title"},yd=p(`

    支持此类泛型参数解析

    @Data
    +public class CommonDTO<TR> implements Serializable {
    +    private String accessToken;
    +    private String appKey;
    +    private String clientId;
    +    private T data;
    +    private List<R> dataList;
    +}
    +
    +@PostMapping(value = "/apply")
    +public Integer loanApply(@RequestBody CommonDTO<BookTestDTO> req){
    +    return 1;
    +}
    +
    `,2),vd={class:"custom-container hint",style:{background:"#262626"}},xd={class:"custom-container-title"},kd=t("p",null,[t("img",{src:at,alt:"projectConfigParam",loading:"lazy"})],-1),bd=t("p",null,[s("加入了"),t("code",null,"URL Params"),s("、"),t("code",null,"URL-Encoded Params"),s("、"),t("code",null,"Cookies")],-1),fd={class:"custom-container hint",style:{background:"#262626"}},Ad={class:"custom-container-title"},wd=t("ul",null,[t("li",null,[s("界面优化 "),t("ul",null,[t("li",null,"优化了 tab 间距(windows 下不正常)、背景颜色、个别突出的 tab 颜色等")])]),t("li",null,[s("保存 API 插入顺序优化 "),t("ul",null,[t("li",null,"后保存的放在最上面")])])],-1),Id={class:"custom-container hint",style:{background:"#262626"}},Sd={class:"custom-container-title"},Pd=t("p",null,[t("img",{src:ct,alt:"apisList",loading:"lazy"})],-1),zd=t("p",null,"渲染进行了优化,新保存的 api 图标会自动优化,历史保存的 api 可以右键进行选择变更",-1),Ed={id:"v2022-1-8",tabindex:"-1"},Cd={class:"header-anchor",href:"#v2022-1-8"},jd={class:"custom-container hint",style:{background:"#262626"}},Rd={class:"custom-container-title"},Dd=t("p",null,[t("img",{src:xn,alt:"projectConfigParam",loading:"lazy"})],-1),qd=t("p",null,"支持项目级别内的全局参数,不受多模块影响",-1),Ud=t("p",null,[s("配置优先级"),t("code",null,"api头 > 项目级别全局请求头 > 全局请求头")],-1),Ld={class:"custom-container hint",style:{background:"#262626"}},Nd={class:"custom-container-title"},Td=t("p",null,[t("img",{src:pt,alt:"add2projectConfig",loading:"lazy"})],-1),Md=t("p",null,[t("img",{src:rt,alt:"cookie2projectConfig",loading:"lazy"})],-1),Bd=t("p",null,[s("原响应结果从添加到 "),t("s",null,"全局请求头"),s(" 变更为添加到 "),t("mark",null,"项目全局请求头"),s(",cookie 也是如此")],-1),Wd={id:"v2022-1-7",tabindex:"-1"},Hd={class:"header-anchor",href:"#v2022-1-7"},Jd={class:"custom-container hint",style:{background:"#262626"}},Fd={class:"custom-container-title"},$d=t("p",null,[t("img",{src:dt,alt:"kotlinSupport",loading:"lazy"})],-1),Od=t("p",null,"添加了 Kotlin 语言下,Spring 系列框架支持",-1),Gd={class:"custom-container hint",style:{background:"#262626"}},Vd={class:"custom-container-title"},Kd=t("p",null,[t("img",{src:ut,alt:"searchEveryWhereStrategy",loading:"lazy"})],-1),Yd=t("p",null,"2022.1.7 版本默认可以搜索到 feign 或者 controller 中的 mapping",-1),Xd=t("p",null,"默认搜索策略是根据注解来搜索的,再提供 2 种选项,如果在搜索过程中需要排除类似 feign 中的接口,可以通过去除 Interface 的勾选来处理.",-1),Qd={class:"custom-container hint",style:{background:"#262626"}},Zd={class:"custom-container-title"},tu=t("p",null,[t("img",{src:_t,alt:"toggleUseSoftWrap",loading:"lazy"})],-1),nu={class:"custom-container hint",style:{background:"#262626"}},eu={class:"custom-container-title"},su=t("p",null,[t("img",{src:ht,alt:"add2GlobalHeader",loading:"lazy"})],-1),lu=t("p",null,"多模块项目下建议使用,因为 Add to Headers 只能添加到当前模块项目下",-1),ou={class:"custom-container hint",style:{background:"#262626"}},iu={class:"custom-container-title"},au=t("p",null,[t("img",{src:kn,alt:"navigate2CurrentMethod",loading:"lazy"})],-1),cu=t("p",null,"当你生成好方法的 url 以后,又切换到代码中的别的地方,然后又想开始调试该 API 方法,可以通过此功能快速定位到代码",-1),pu={class:"custom-container hint",style:{background:"#262626"}},ru={class:"custom-container-title"},du=t("p",null,[s("优化了"),t("strong",null,"多模块"),s("下下针对保存的 api 回显需要"),t("strong",null,"手动切换项目下拉框")],-1),uu={id:"v2022-1-6",tabindex:"-1"},_u={class:"header-anchor",href:"#v2022-1-6"},hu={class:"custom-container hint",style:{background:"#262626"}},mu={class:"custom-container-title"},gu=t("p",null,[t("img",{src:mt,alt:"addCookie2Header",loading:"lazy"})],-1),yu=t("p",null,"针对登录需要 Cookie 支持的,可以将响应中的 Cookie 快速添加到 Header 来实现",-1),vu={class:"custom-container hint",style:{background:"#262626"}},xu={class:"custom-container-title"},ku=t("p",null,[t("img",{src:bn,alt:"shareApi",loading:"lazy"})],-1),bu=t("p",null,"请注意 word 形式的 API 内部采用 html 来实现的,所以不要觉得奇怪,导出就行",-1),fu={id:"v2022-1-5",tabindex:"-1"},Au={class:"header-anchor",href:"#v2022-1-5"},wu={class:"custom-container hint",style:{background:"#262626"}},Iu={class:"custom-container-title"},Su=t("p",null,[t("img",{src:fn,alt:"paramDescription",loading:"lazy"})],-1),Pu=t("p",null,"可选择性的对描述进行隐藏",-1),zu={class:"custom-container hint",style:{background:"#262626"}},Eu={class:"custom-container-title"},Cu=t("p",null,[t("img",{src:gt,alt:"shareDocButton",loading:"lazy"})],-1),ju=t("p",null,[t("img",{src:An,alt:"apiDocExample",loading:"lazy"})],-1),Ru=t("p",null,"点击生成参数后,可通过分享直接生成 Markdown 文档",-1),Du={class:"custom-container hint",style:{background:"#262626"}},qu={class:"custom-container-title"},Uu=t("p",null,[t("img",{src:wn,alt:"apiDocExample",loading:"lazy"})],-1),Lu=t("p",null,"聚焦窗口后输入关键字可快速定位",-1),Nu={id:"v2022-1-4",tabindex:"-1"},Tu={class:"header-anchor",href:"#v2022-1-4"},Mu=t("p",null,[t("mark",null,"idea 版本 2021.3+")],-1),Bu={class:"custom-container hint",style:{background:"#262626"}},Wu={class:"custom-container-title"},Hu=t("p",null,[t("img",{src:yt,alt:"searchEveryWhereHighlight",loading:"lazy"})],-1),Ju=t("p",null,"高亮展示搜索关键字,加快真实想要查找的 API 的查找速度,同时展示 api 对应的 javadoc",-1),Fu={class:"custom-container hint",style:{background:"#262626"}},$u={class:"custom-container-title"},Ou=t("p",null,[t("img",{src:In,alt:"exportImportApis",loading:"lazy"})],-1),Gu=t("p",null,"增加对 APIs 的导入导出支持,利用改功能,你可以非常方便得将自己已有的 APIs 分享给别的开发者,或者导入到其他设备上的 IDEA",-1),Vu={class:"custom-container hint",style:{background:"#262626"}},Ku={class:"custom-container-title"},Yu=t("p",null,[t("img",{src:vt,alt:"runInApiManagement",loading:"lazy"})],-1),Xu=t("p",null,"你可以在 APIs tab 页直接运行你保存的请求",-1),Qu={class:"custom-container hint",style:{background:"#262626"}},Zu={class:"custom-container-title"},t2=t("p",null,[t("img",{src:Fn,alt:"generateSwitch",loading:"lazy"})],-1),n2={class:"custom-container hint",style:{background:"#262626"}},e2={class:"custom-container-title"},s2=t("p",null,"增加了 swagger 注解默认值的解析,该功能对于入参的传递更加人性化",-1),l2=t("ul",null,[t("li",null,"@ApiParam(swagger2)"),t("li",null,"@ApiImplicitParam(swagger2)"),t("li",null,"@ApiModelProperty(swagger2)"),t("li",null,"@Parameter(swagger3)"),t("li",null,"@Schema(swagger3)")],-1),o2={class:"custom-container hint",style:{background:"#262626"}},i2={class:"custom-container-title"},a2=t("p",null,[t("img",{src:xt,alt:"mergeRunAndDownload",loading:"lazy"}),s(" 对按钮进行了合并,因为常见的操作都是非下载操作,减少了工具栏按钮个数,看上去更加简捷")],-1),c2={class:"custom-container hint",style:{background:"#262626"}},p2={class:"custom-container-title"},r2=t("p",null,[t("img",{src:kt,alt:"help",loading:"lazy"}),s(" 我们在不同的操作窗口,增加?选项用来展示一些注意事项及操作指引,对于初次使用的用户,操作门槛更低")],-1),d2=t("p",null,"并且随着版本的迭代,后续可能会加入更多的提示操作指引",-1),u2={class:"custom-container hint",style:{background:"#262626"}},_2={class:"custom-container-title"},h2=t("p",null,"历史逻辑只会取第一个 url 即 test1,考虑到实际使用中,有可能你需要的是另外一个 url,所以添加了随机支持",-1),m2=t("strong",null,"/url1/test1,/url1/test2,/url2/test1,/url2/test2",-1),g2=p(`
    @RequestMapping({"url1","url2"})
    +@RestController
    +public class MultiUrlController {
    +    @GetMapping(value = {"test1","test2"})
    +    public Integer testUrl(){
    +        return 1;
    +    }
    +}
    +

    支持变量计算,以下 demo 将生成 /url/public/test1

    public class Constant {
    +    public static final String PUBLIC_URL = "/public";
    +}
    +@RequestMapping("url")
    +@RestController
    +public class MultiUrlController {
    +    @GetMapping(value = Constant.PUBLIC_URL + "/test1")
    +    public Integer testUrl(){
    +        return 1;
    +    }
    +}
    +
    `,3),y2={class:"custom-container hint",style:{background:"#262626"}},v2={class:"custom-container-title"},x2=t("p",null,"在工具窗口比较小的情况下,API Navigate 会被隐藏,为了在尽可能小的工具窗口展示更多内容,所以命名更加简短",-1),k2={id:"v2-1-3",tabindex:"-1"},b2={class:"header-anchor",href:"#v2-1-3"},f2=t("ul",null,[t("li",null,"参数特殊符号编码支持"),t("li",null,"curl 加入 global headers")],-1),A2={id:"v2-1-2",tabindex:"-1"},w2={class:"header-anchor",href:"#v2-1-2"},I2=t("ul",null,[t("li",null,"添加对导出 api 到 Postman 的支持"),t("li",null,"首次打开 idea 懒加载 API Navigate 树"),t("li",null,"SearchEveryWhere module 标识"),t("li",null,"Url 解析优化"),t("li",null,"API navigate tree 展示优化"),t("li",null,"API 保存分组优化"),t("li",null,"全局请求头支持")],-1),S2={class:"custom-container hint",style:{background:"#262626"}},P2={class:"custom-container-title"},z2=t("p",null,"支持以下 example 的解析",-1),E2=t("p",null,"不再需要单独配置 url replace config",-1),C2=t("div",{class:"language-java line-numbers-mode","data-ext":"java","data-title":"java"},[t("pre",{class:"language-java"},[t("code",null,[t("span",{class:"token annotation punctuation"},"@RequestMapping"),t("span",{class:"token punctuation"},"("),t("span",{class:"token class-name"},"Url1"),t("span",{class:"token punctuation"},"."),t("span",{class:"token constant"},"URL_TEST"),t("span",{class:"token punctuation"},")"),s(` +`),t("span",{class:"token annotation punctuation"},"@RestController"),s(` +`),t("span",{class:"token keyword"},"public"),s(),t("span",{class:"token keyword"},"class"),s(),t("span",{class:"token class-name"},"UrlTestController"),s(),t("span",{class:"token punctuation"},"{"),s(` + `),t("span",{class:"token keyword"},"private"),s(),t("span",{class:"token keyword"},"static"),s(),t("span",{class:"token keyword"},"final"),s(),t("span",{class:"token class-name"},"String"),s(),t("span",{class:"token constant"},"URL"),t("span",{class:"token operator"},"="),s(),t("span",{class:"token string"},'"xxx"'),t("span",{class:"token punctuation"},";"),s(` + + `),t("span",{class:"token annotation punctuation"},"@GetMapping"),t("span",{class:"token punctuation"},"("),s("value "),t("span",{class:"token operator"},"="),s(),t("span",{class:"token constant"},"URL"),t("span",{class:"token punctuation"},")"),s(` + `),t("span",{class:"token keyword"},"public"),s(),t("span",{class:"token class-name"},"Integer"),s(),t("span",{class:"token function"},"testUrl"),t("span",{class:"token punctuation"},"("),t("span",{class:"token punctuation"},")"),t("span",{class:"token punctuation"},"{"),s(` + `),t("span",{class:"token keyword"},"return"),s(),t("span",{class:"token number"},"1"),t("span",{class:"token punctuation"},";"),s(` + `),t("span",{class:"token punctuation"},"}"),s(` +`),t("span",{class:"token punctuation"},"}"),s(` +`)])]),t("div",{class:"line-numbers","aria-hidden":"true"},[t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"})])],-1),j2=t("div",{class:"language-java","data-ext":"java","data-title":"java"},[t("pre",{class:"language-java"},[t("code",null,[t("span",{class:"token annotation punctuation"},"@RequestMapping"),t("span",{class:"token punctuation"},"("),s(` + value `),t("span",{class:"token operator"},"="),s(),t("span",{class:"token punctuation"},"{"),t("span",{class:"token string"},'"/v1/save"'),t("span",{class:"token punctuation"},"}"),t("span",{class:"token punctuation"},","),s(` + method `),t("span",{class:"token operator"},"="),s(),t("span",{class:"token punctuation"},"{"),t("span",{class:"token class-name"},"RequestMethod"),t("span",{class:"token punctuation"},"."),t("span",{class:"token constant"},"POST"),t("span",{class:"token punctuation"},"}"),s(` +`),t("span",{class:"token punctuation"},")"),s(` +`)])])],-1),R2={class:"custom-container hint",style:{background:"#262626"}},D2={class:"custom-container-title"},q2=t("p",null,[t("img",{src:Sn,alt:"export2postman",loading:"lazy"})],-1),U2={class:"custom-container hint",style:{background:"#262626"}},L2={class:"custom-container-title"},N2=t("p",null,[t("img",{src:bt,alt:"searchEveryWhereModule",loading:"lazy"})],-1),T2={class:"custom-container hint",style:{background:"#262626"}},M2={class:"custom-container-title"},B2=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`保存api的时候,api将会保存到对应的请求指定到控制器名所在的分组(更加直观) +`)])],-1),W2=t("p",null,[t("img",{src:ft,alt:"save2ControllerGroup",loading:"lazy"})],-1),H2={class:"custom-container hint",style:{background:"#262626"}},J2={class:"custom-container-title"},F2=t("p",null,[t("img",{src:At,alt:"globalRequestHeader",loading:"lazy"})],-1),$2={id:"v2-1-1",tabindex:"-1"},O2={class:"header-anchor",href:"#v2-1-1"},G2=t("ul",null,[t("li",null,"SearchEveryWhere 支持"),t("li",null,"增加一个最新按钮可以随时查看最新版本"),t("li",null,"优化枚举的解析"),t("li",null,"增加对 http 重定向的支持")],-1),V2={class:"custom-container hint",style:{background:"#262626"}},K2={class:"custom-container-title"},Y2=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`输入案例 +/url (查询指定url) +get /list (指定get方式指定url) +post /save (指定post方式指定url) +`)])],-1),X2=t("p",null,[t("img",{src:un,alt:"searchEveryWhere",loading:"lazy"})],-1),Q2={class:"custom-container hint",style:{background:"#262626"}},Z2={class:"custom-container-title"},t_=t("p",null,[t("img",{src:wt,alt:"whatsnewNotifcation",loading:"lazy"})],-1),n_={id:"v2-1-0-2",tabindex:"-1"},e_={class:"header-anchor",href:"#v2-1-0-2"},s_={href:"https://dromara.org/zh/",target:"_blank",rel:"noopener noreferrer"},l_=t("strong",null,"Dromara",-1),o_={id:"v2-1-0-1",tabindex:"-1"},i_={class:"header-anchor",href:"#v2-1-0-1"},a_=t("ul",null,[t("li",null,"修复 Get 参数错误")],-1),c_={id:"v2-1-0",tabindex:"-1"},p_={class:"header-anchor",href:"#v2-1-0"},r_=t("ul",null,[t("li",null,"修复 POST 形式的 API 中@RequestBody、@RequestParam 混合使用参数解析导致请求 400 异常"),t("li",null,"对嵌套类的解析支持"),t("li",null,'增加支持对控制器类级别@RequestMapping(path="/xxx")path 的解析'),t("li",null,"Api tree 针对带@RequestMapping 类的扫描支持")],-1),d_={id:"v2-0-9",tabindex:"-1"},u_={class:"header-anchor",href:"#v2-0-9"},__=t("ul",null,[t("li",null,'2021.3+版本修复"Slow operations are prohibited on EDT"'),t("li",null,"修复快速从 response 添加 Headers"),t("li",null,"添加项目级别的配置,切换项目 env 和 project 不受变化"),t("li",null,"文本编辑器添加了快捷格式化按钮")],-1),h_={class:"custom-container hint",style:{background:"#262626"}},m_={class:"custom-container-title"},g_=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`如果你的api需要再header里面塞入token,你可以像这样子从响应里面快速加参数塞入headers +`)])],-1),y_=t("p",null,[t("img",{src:It,alt:"format",loading:"lazy"})],-1),v_={class:"custom-container hint",style:{background:"#262626"}},x_={class:"custom-container-title"},k_=t("p",null,[t("img",{src:St,alt:"format",loading:"lazy"})],-1),b_={id:"v2-0-8-1",tabindex:"-1"},f_={class:"header-anchor",href:"#v2-0-8-1"},A_=t("ul",null,[t("li",null,"修复 searchEveryWhere 冲突警告"),t("li",null,"调整低版本 idea 工具栏操作按钮至工具栏顶部位置"),t("li",null,"移除多余依赖,插件从 11.1M 降至 5.9M")],-1),w_={id:"v2-0-8",tabindex:"-1"},I_={class:"header-anchor",href:"#v2-0-8"},S_=t("ul",null,[t("li",null,"修复初次添加项目或环境 npe"),t("li",null,"json 树响应字符渲染最大限制"),t("li",null,"添加 Api navigate 对 methodType 的支持"),t("li",null,"添加对忽略参数解析的支持"),t("li",null,"线程导致的 EDT 问题"),t("li",null,"send/sendDownload 支持自定义快捷键"),t("li",null,"修复 2021.3 响应不显示")],-1),P_={class:"custom-container hint",style:{background:"#262626"}},z_={class:"custom-container-title"},E_=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`快捷键在任意位置点击均可触发,不再需要聚焦到工具窗口 +`)])],-1),C_=t("p",null,[t("img",{src:Pt,alt:"shortcutSendAndDownload",loading:"lazy"})],-1),j_={class:"custom-container hint",style:{background:"#262626"}},R_={class:"custom-container-title"},D_=t("p",null,[t("img",{src:zt,alt:"shortcutSendAndDownload",loading:"lazy"})],-1),q_={id:"v2-0-7",tabindex:"-1"},U_={class:"header-anchor",href:"#v2-0-7"},L_=p("
    • 添加 API 导航树
    • 添加 Headers 随项目和环境切换自动切换的支持
    • 优化 windows 系统某些情况下下载文件无法弹出目录
    • 优化@RequestParam 的参数解析
    • 优化工具窗口 project 和 env 下拉组件及布局
    • curl 拷贝提示优化
    • regenerate 提示优化
    • 删除 project 和 env 配置增加确认操作
    • 修复 json 字段输出循序被打乱
    • 将发送请求按钮至工具栏同时支持快捷键
    ",1),N_={class:"custom-container hint",style:{background:"#262626"}},T_={class:"custom-container-title"},M_=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`选中树输入关键字,再按回车或者鼠标左键双击即可定位到API + +悬浮鼠标显示api的doc +`)])],-1),B_=t("p",null,[t("img",{src:Pn,alt:"apinavi",loading:"lazy"})],-1),W_={class:"custom-container hint",style:{background:"#262626"}},H_={class:"custom-container-title"},J_=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`场景:SpringBoot等多模块项目不同项目、不同环境下头参数不同,为了快速自动切换headers,引入了header分组 +操作方式: +1.在headers group里修改约束:输入的值必须是标准json格式 +2.直接切换环境,然后再headers表格中输入对应的key、value值 +`)])],-1),F_=t("p",null,[t("img",{src:zn,alt:"headerSwitch",loading:"lazy"})],-1),$_={class:"custom-container hint",style:{background:"#262626"}},O_={class:"custom-container-title"},G_=t("p",null,[s("@RequestParam 注解的参数将优先按照别名"),t("br"),t("code",null,'@RequestParam("nameAlias")List nameList'),s(" 输入参数将变成 nameAlias")],-1),V_={class:"custom-container hint",style:{background:"#262626"}},K_={class:"custom-container-title"},Y_=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`send request: alt = +send and download: alt - +前提条件:工具窗口需要被聚焦 +`)])],-1),X_=t("p",null,[t("img",{src:Et,alt:"toolbarSend",loading:"lazy"})],-1),Q_={class:"custom-container hint",style:{background:"#262626"}},Z_={class:"custom-container-title"},th=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`图标p代表project +图标e代表environment +`)])],-1),nh=t("p",null,[t("img",{src:En,alt:"dropdownProject",loading:"lazy"})],-1),eh=t("p",null,[t("img",{src:Cn,alt:"dropdownEnv",loading:"lazy"})],-1),sh={id:"v2-0-6",tabindex:"-1"},lh={class:"header-anchor",href:"#v2-0-6"},oh=p("
    • Fix "Light files should have PSI only in one project"
    • 添加对 json 的语法支持
    • 添加对 PATCH 的支持
    • 添加 API 保存时候存入对应的模块分组的支持
    • 修复响应中 null 值不输出的问题
    • 添加对 JAX-RS 的支持
    • 最新功能展示

    在不影响使用的情况下,有时候会经常弹出Light files should have PSI only in one project.2.0.6 版本得到修复

    ",2),ih={class:"custom-container hint",style:{background:"#262626"}},ah={class:"custom-container-title"},ch=t("p",null,[t("img",{src:jn,alt:"json",loading:"lazy"})],-1),ph={class:"custom-container hint",style:{background:"#262626"}},rh={class:"custom-container-title"},dh=t("p",null,[t("img",{src:Rn,alt:"apiGroup",loading:"lazy"})],-1),uh=t("p",null,[s("同时模块支持快速搜索 "),t("img",{src:Dn,alt:"apiGroup",loading:"lazy"})],-1),_h={class:"custom-container hint",style:{background:"#262626"}},hh={class:"custom-container-title"},mh=t("p",null,[t("img",{src:Ct,alt:"apiGroup",loading:"lazy"})],-1),gh={class:"custom-container hint",style:{background:"#262626"}},yh={class:"custom-container-title"},vh=t("p",null,[s("只会展示一次 "),t("img",{src:$n,alt:"apiGroup",loading:"lazy"})],-1),xh={id:"v2-0-5",tabindex:"-1"},kh={class:"header-anchor",href:"#v2-0-5"},bh=t("ul",null,[t("li",null,"JSON 内置编辑器支持"),t("li",null,"修复全选参数框隐藏问题"),t("li",null,"修复 API 回显 Headers 参数异常"),t("li",null,"优化了请求进度条显示")],-1),fh={id:"v2-0-4",tabindex:"-1"},Ah={class:"header-anchor",href:"#v2-0-4"},wh=t("ul",null,[t("li",null,"修复因 response 内容过道导致的界面错乱问题"),t("li",null,"Response json 超长显示优化"),t("li",null,"优化图标尺寸"),t("li",null,"中文文档迁移至 gitee")],-1),Ih={id:"v2-0-3",tabindex:"-1"},Sh={class:"header-anchor",href:"#v2-0-3"},Ph=t("ul",null,[t("li",null,"删除 API 的时候增加了确认"),t("li",null,"添加了参数全选反选的功能"),t("li",null,'修复诸如【@RequestParam(value="address[]") Set address】的参数解析'),t("li",null,"修复快速添加 headers 界面错乱")],-1),zh={id:"v2-0-2",tabindex:"-1"},Eh={class:"header-anchor",href:"#v2-0-2"},Ch=t("ul",null,[t("li",null,"修复项目多开情况下 A 请求显示到 B 项目"),t("li",null,"修复@ResponseBody 修饰的数组与集合解析问题"),t("li",null,"修复 List 参数无泛型解析问题"),t("li",null,"添加对文件下载的支持"),t("li",null,"发送请求时展示进度条"),t("li",null,"全新的 document,点击工具栏 doc 图标"),t("li",null,"一些优化")],-1),jh={id:"v2-0-1",tabindex:"-1"},Rh={class:"header-anchor",href:"#v2-0-1"},Dh=t("ul",null,[t("li",null,"rename from Fast Request to Restful Fast Request"),t("li",null,"Json、Form URL-Encoded、Multipart Tab 合并减小工具窗口宽度"),t("li",null,"修复全局配置下修改配置报错"),t("li",null,"将 get、post、delete、put 图标添加到保存的请求"),t("li",null,"保存的请求支持更多搜索策略"),t("li",null,"tab 重命名 collection->APIs"),t("li",null,"YearMonth 解析支持")],-1),qh={id:"v2-0-0",tabindex:"-1"},Uh={class:"header-anchor",href:"#v2-0-0"},Lh=t("ul",null,[t("li",null,"支持请求的存储"),t("li",null,"支持参数可选"),t("li",null,"优化了 UI"),t("li",null,"修复了一些 bug")],-1);function Nh(Th,Mh){const o=d("RouteLink"),c=d("ExternalLinkIcon"),e=d("Badge"),r=d("MyCarousel"),u=d("CodeTabs"),_=d("ColorIcon"),h=d("FontIcon");return Un(),Ln("div",null,[t("div",Gn,[Vn,t("p",null,[n(o,{to:"/guide/versionCompare.html"},{default:l(()=>[Kn]),_:1})]),t("p",null,[s("购买"),Yn,s("流程请参考"),n(o,{to:"/guide/buy.html"},{default:l(()=>[Xn]),_:1}),s(" 或者进入微信群里查看"),Qn,s(",Issue 提报请到"),t("a",Zn,[te,n(c)])]),t("table",null,[ne,t("tbody",null,[ee,t("tr",null,[se,t("td",null,[s("开发出类似的"),t("a",le,[s("iBlog"),n(c)]),s("、"),t("a",oe,[s("Bean Assistant"),n(c)]),ie,s("的插件教学,如果你也想开发插件请进群")])])])])]),ae,t("h2",ce,[t("a",pe,[t("span",null,[s("2024.1.7 "),n(e,{text:"免费试用",type:"tip"}),s(),n(e,{text:"开发中...",color:"blue"}),s(),n(e,{text:"IDEA 2023.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[n(e,{text:"函数与变量支持代码补全",color:"orange"})]),t("li",null,[n(e,{text:"JSON filter支持",type:"tip"})]),t("li",null,[n(e,{text:"Header 常用值支持代码补全",type:"tip"})]),t("li",null,[n(e,{text:"文件默认值支持",type:"tip"})]),t("li",null,[n(e,{text:"SearchEveryWhere 结果排序优化",type:"info"})]),t("li",null,[n(e,{text:"Script界面优化",type:"info"})]),t("li",null,[n(e,{text:"Map 解析优化",type:"info"})]),t("li",null,[n(e,{text:"若干已知问题优化",type:"info"})])]),t("div",re,[t("p",de,[s("函数与变量支持代码补全 "),n(e,{vertical:"top",text:"重要功能",color:"orange"})]),n(r,{imgList:["/img/2024.1.7/function.png","/img/2024.1.7/functionInBody.png","/img/2024.1.7/functionConfig.png"]},null,8,["imgList"]),ue,t("p",null,[s("函数支持更多信息请参考---->"),n(o,{to:"/guide/features/function.html"},{default:l(()=>[s("函数")]),_:1})])]),t("div",_e,[t("p",he,[s("JSON filter支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),me,ge]),t("div",ye,[t("p",ve,[s("Header 常用值支持代码补全 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),xe,ke]),t("div",be,[t("p",fe,[s("文件默认值支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Ae,we]),t("div",Ie,[t("p",Se,[s("SearchEveryWhere 结果排序优化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),Pe,ze]),t("h2",Ee,[t("a",Ce,[t("span",null,[s("2024.1.6.3 "),n(e,{text:"免费试用",type:"tip"}),s(),n(e,{text:"最新版",type:"pink"}),s(),n(e,{text:"2024-08-15",color:"SandyBrown"}),s(),n(e,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[n(e,{text:"兼容 IDEA 2024.2+",type:"info"})])]),t("h2",je,[t("a",Re,[t("span",null,[s("2024.1.6.2 "),n(e,{text:"免费试用",type:"tip"}),s(),n(e,{text:"2024-07-30",color:"SandyBrown"}),s(),n(e,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[n(e,{text:"组合注解支持",type:"tip"})]),t("li",null,[n(e,{text:"消息提示优化",type:"info"})]),t("li",null,[n(e,{text:"前置脚本执行后无法在当前请求获取到数据",type:"danger"})])]),t("div",De,[t("p",qe,[s("组合注解支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Ue]),t("h2",Le,[t("a",Ne,[t("span",null,[s("2024.1.6 "),n(e,{text:"免费试用",type:"tip"}),s(),n(e,{text:"2024-06-24",color:"SandyBrown"}),s(),n(e,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[n(e,{text:"多 Tab 窗口",color:"orange"})]),t("li",null,[n(e,{text:"Apis 标记",type:"tip"})]),t("li",null,[n(e,{text:"Apis 与 Navigate 标签页 Url 复制",type:"tip"})]),t("li",null,[n(e,{text:"Json path",type:"tip"})]),t("li",null,[n(e,{text:"Url生成支持继承BaseController是接口",type:"info"})]),t("li",null,[n(e,{text:"修复了一些已知 bug",type:"danger"})])]),t("div",Te,[t("p",Me,[s("多 Tab 窗口 "),n(e,{vertical:"top",text:"重要功能",color:"orange"})]),n(r,{imgList:["/img/2024.1.6/multiTab.png","/img/2024.1.6/openInTabAction.png","/img/2024.1.6/openTabInApis.png"]},null,8,["imgList"]),t("p",null,[Be,s("文件打开展现调试界面,支持多 Tab 打开。更多请查阅"),n(o,{to:"/guide/features/navigateCurrentMethodJson.html"},{default:l(()=>[We]),_:1})])]),t("div",He,[t("p",Je,[s("Apis 标记 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),n(r,{imgList:["/img/2024.1.6/mark1.png","/img/2024.1.6/mark2.png"]},null,8,["imgList"]),Fe]),t("div",$e,[t("p",Oe,[s("Apis 与 Navigate 标签页 Url 复制 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),n(r,{imgList:["/img/2024.1.6/urlCopyInApis.png","/img/2024.1.6/urlCopyInNav.png"]},null,8,["imgList"]),Ge]),t("div",Ve,[t("p",Ke,[s("Json path "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Ye,t("p",null,[s("在 "),Xe,s(" 和 "),Qe,s(" tab下支持 Json 路径查找,但是这依赖于 "),t("a",Ze,[s("JSONPath"),n(c)]),s(" 插件.")])]),t("h2",ts,[t("a",ns,[t("span",null,[s("2024.1.5.1 "),n(e,{text:"免费试用",type:"tip"}),s(),n(e,{text:"2024-05-16",color:"SandyBrown"}),s(),n(e,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[n(e,{text:"实体类解析",type:"danger"})])]),t("h2",es,[t("a",ss,[t("span",null,[s("2024.1.5 "),n(e,{text:"免费试用",type:"tip"}),s(),n(e,{text:"2024-05-14",color:"SandyBrown"}),s(),n(e,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[n(e,{text:"脚本增加 Add script library支持",type:"tip"})]),t("li",null,[n(e,{text:"类型下拉框优化",type:"info"})]),t("li",null,[n(e,{text:"原始url展示优化",type:"info"})]),t("li",null,[n(e,{text:"Apifox目录同步优化",type:"info"})]),t("li",null,[n(e,{text:"Url输入框样式优化",type:"info"})]),t("li",null,[n(e,{text:"参数 Tab 自动跳转优化",type:"info"})]),t("li",null,[n(e,{text:"cUrl 同一 url 匹配 method type优化",type:"info"})]),t("li",null,[n(e,{text:"Api doc同步成功但是提示报错",type:"danger"})])]),t("div",ls,[t("p",os,[s("脚本增加 Add script library支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),is,t("p",null,[s("提示脚本库增加 library 支持,使得具备 "),t("a",as,[s("Code completion"),n(c)]),s(" 功能")])]),t("div",cs,[t("p",ps,[s("类型下拉框优化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),rs,ds]),t("div",us,[t("p",_s,[s("原始url展示优化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),hs,ms]),t("div",gs,[t("p",ys,[s("cUrl 同一 url 匹配 method type优化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),vs]),t("h2",xs,[t("a",ks,[t("span",null,[s("2024.1.4 "),n(e,{text:"免费试用",type:"tip"}),s(),n(e,{text:"2024-04-08",color:"SandyBrown"}),s(),n(e,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[n(e,{text:"Apifox 集成",color:"orange"})]),t("li",null,[n(e,{text:"AI支持优化",color:"orange"})]),t("li",null,[n(e,{text:"变更 moduleHeader 为 apiHeader",type:"info"})]),t("li",null,[n(e,{text:"cURL导入优化",type:"info"})]),t("li",null,[n(e,{text:"实体解析优化",type:"info"})]),t("li",null,[n(e,{text:"兼容 IDEA 2024",type:"info"})]),t("li",null,[n(e,{text:"API 导出文件后缀错误",type:"danger"})])]),t("div",bs,[t("p",fs,[s("Apifox 集成 "),n(e,{vertical:"top",text:"重要功能",color:"orange"})]),n(r,{imgList:["/img/2024.1.4/apifoxIntegration.png","/img/2024.1.4/apifoxConfig.png"]},null,8,["imgList"]),As,t("p",null,[s("更多信息请点击 "),n(o,{to:"/guide/features/apifox.html"},{default:l(()=>[s("Apifox 集成")]),_:1})]),t("p",null,[t("a",ws,[s("Bilibili视频教程"),n(c)])])]),t("div",Is,[t("p",Ss,[s("AI支持优化 "),n(e,{vertical:"top",text:"重要功能",color:"orange"})]),Ps,t("p",null,[s("以下是一个让 AI 帮忙优化 JSON 报文的案例,更多详情请参考 "),n(o,{to:"/guide/features/ai.html"},{default:l(()=>[s("AI")]),_:1})]),n(u,{id:"346",data:[{id:"概述"},{id:"提问范例"},{id:"提问范例结果"}]},{title0:l(({value:i,isActive:a})=>[s("概述")]),title1:l(({value:i,isActive:a})=>[s("提问范例")]),title2:l(({value:i,isActive:a})=>[s("提问范例结果")]),tab0:l(({value:i,isActive:a})=>[zs]),tab1:l(({value:i,isActive:a})=>[Es]),tab2:l(({value:i,isActive:a})=>[Cs]),_:1})]),t("div",js,[t("p",Rs,[s("变更 moduleHeader 为 apiHeader "),n(e,{vertical:"top",text:"优化",type:"info"})]),Ds,t("ol",null,[qs,t("li",null,[s("主界面 Header 选项卡作用域变更为仅面向 API 级别, 即每个 API 可以拥有不同的 Header,如果需要公共 Header,请前往"),n(o,{to:"/guide/features/projectValueConfig.html"},{default:l(()=>[s("项目级别 Header")]),_:1}),s(" 设置。")])])]),t("div",Us,[t("p",Ls,[s("cURL导入优化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),Ns]),t("h2",Ts,[t("a",Ms,[t("span",null,[s("2024.1.3 "),n(e,{text:"免费试用",type:"tip"}),s(),n(e,{text:"2024-03-04",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[n(e,{text:"AI支持优化",color:"orange"})]),t("li",null,[n(e,{text:"超大响应结果性能优化",type:"info"})]),t("li",null,[n(e,{text:"Map入参类型解析优化",type:"info"})]),t("li",null,[n(e,{text:"windows系统下载文件无响应",type:"danger"})])]),t("div",Bs,[t("p",Ws,[s("AI支持优化 "),n(e,{vertical:"top",text:"重要功能",color:"orange"})]),n(r,{imgList:["/img/2024.1.3/aiManagenemt.png","/img/2024.1.3/aiPromptEdit.png","/img/2024.1.3/aiPromptChoose.png"]},null,8,["imgList"]),Hs,Js]),t("h2",Fs,[t("a",$s,[t("span",null,[s("2024.1.2.1 "),n(e,{text:"免费试用",type:"tip"}),s(),n(e,{text:"2024-01-24",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[n(e,{text:"点击send and download无响应",type:"danger"})])]),t("h2",Os,[t("a",Gs,[t("span",null,[s("2024.1.2 "),n(e,{text:"免费试用",type:"tip"}),s(),n(e,{text:"2024-01-19",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[n(e,{text:"自定义工具栏",color:"orange"})])]),t("div",Vs,[t("p",Ks,[s("自定义工具栏 "),n(e,{vertical:"top",text:"重要功能",color:"orange"})]),Ys,Xs]),t("h2",Qs,[t("a",Zs,[t("span",null,[s("2024.1.1 "),n(e,{text:"免费试用",type:"tip"}),s(),n(e,{text:"2024-01-15",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[n(e,{text:"SearchEveryWhere 支持类名搜索",color:"orange"})]),t("li",null,[n(e,{text:".fastRequest目录生成策略",color:"orange"})]),t("li",null,[n(e,{text:"忽略字段名解析支持",type:"tip"})]),t("li",null,[n(e,{text:"Apis,Navigate弹框打开支持",type:"tip"})]),t("li",null,[n(e,{text:"手动更新检测",type:"tip"})]),t("li",null,[n(e,{text:"Content-Disposition支持优化",type:"info"})]),t("li",null,[n(e,{text:"SearchEveryWhere性能优化",type:"info"})]),t("li",null,[n(e,{text:"Navigate中的api加载性能优化",type:"info"})]),t("li",null,[n(e,{text:"Markdown文档批量api导出增加返回值文档",type:"info"})]),t("li",null,[n(e,{text:"集合泛型解析错误",type:"danger"})])]),t("div",tl,[t("p",nl,[s("SearchEveryWhere 支持类名搜索 "),n(e,{vertical:"top",text:"重要功能",color:"orange"})]),el,sl]),t("div",ll,[t("p",ol,[s(".fastRequest目录生成策略 "),n(e,{vertical:"top",text:"重要功能",color:"orange"})]),il]),t("div",al,[t("p",cl,[s("忽略字段名解析支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),pl,rl]),t("div",dl,[t("p",ul,[s("Apis,Navigate弹框打开支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),n(r,{imgList:["/img/2024.1.1/apis.png","/img/2024.1.1/navigate.png"]},null,8,["imgList"]),_l]),t("div",hl,[t("p",ml,[s("手动更新检测 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),gl,yl]),t("div",vl,[t("p",xl,[s("SearchEveryWhere性能优化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),kl]),t("div",bl,[t("p",fl,[s("Content-Disposition支持优化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),Al,wl]),t("h2",Il,[t("a",Sl,[t("span",null,[s("2023.2.3.1 "),n(e,{text:"免费试用",type:"tip"}),s(),n(e,{text:"2023-12-20",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[n(e,{text:"JSON5 支持错误",type:"danger"})])]),t("h2",Pl,[t("a",zl,[t("span",null,[s("2023.2.3 "),n(e,{text:"免费试用",type:"tip"}),s(),n(e,{text:"2023-12-19",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[n(e,{text:"API同步至Postman",color:"orange"})]),t("li",null,[n(e,{text:"自动域名切换项目名下拉框自动切换",type:"tip"})]),t("li",null,[n(e,{text:"Environment重构",type:"info"})]),t("li",null,[n(e,{text:"项目域名添加优化",type:"info"})]),t("li",null,[n(e,{text:"api文档同步触发在api保存的时候",type:"info"})]),t("li",null,[n(e,{text:"忽略字段使用 @fastRequestParseIgnore",type:"info"})]),t("li",null,[n(e,{text:"SearchEveryWhere 兼容 idea2023.3",type:"danger"})]),t("li",null,[n(e,{text:"body中传非json报错",type:"danger"})]),t("li",null,[n(e,{text:"curl导入解析\\'错误",type:"danger"})])]),t("div",El,[t("p",Cl,[s("API同步至Postman "),n(e,{vertical:"top",text:"重要功能",color:"orange"})]),jl,Rl,t("p",null,[s("更多详情参考"),n(o,{to:"/guide/features/postmanSync.html"},{default:l(()=>[s("Postman 同步")]),_:1})])]),t("div",Dl,[t("p",ql,[s("自动域名切换项目名下拉框自动切换 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Ul]),t("div",Ll,[t("p",Nl,[s("Environment重构 "),n(e,{vertical:"top",text:"优化",type:"info"})]),Tl,Ml,Bl]),t("div",Wl,[t("p",Hl,[s("项目域名添加优化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),Jl,Fl]),t("div",$l,[t("p",Ol,[s("忽略字段使用@fastRequestParseIgnore "),n(e,{vertical:"top",text:"优化",type:"info"})]),Gl]),t("h2",Vl,[t("a",Kl,[t("span",null,[s("2023.2.2 "),n(e,{text:"免费试用",type:"tip"}),s(),n(e,{text:"2023-11-24",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[n(e,{text:"Markdown文档模板配置",type:"tip"})]),t("li",null,[n(e,{text:"JSON5支持",type:"tip"})]),t("li",null,[n(e,{text:"兼容IDEA 2023.3",type:"tip"})]),t("li",null,[n(e,{text:"历史请求显示错误",type:"danger"})])]),t("div",Yl,[t("p",Xl,[s("Markdown文档模板配置 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),t("p",null,[s("提供了导出文档和"),n(o,{to:"/guide/features/apiDocSync.html"},{default:l(()=>[s("Api在线文档")]),_:1}),s("的自定义格式实现.查看"),n(o,{to:"/guide/features/markdownDocTemplateConfig.html"},{default:l(()=>[s("更多详情")]),_:1})])]),t("div",Ql,[t("p",Zl,[s("JSON5支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),to,no]),t("h2",eo,[t("a",so,[t("span",null,[s("2023.2.1.1 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"Url输入框针对某些主题下的样式优化",type:"tip"})]),t("li",null,[n(e,{text:"项目级别请求头保存错误",type:"danger"})])]),t("h2",lo,[t("a",oo,[t("span",null,[s("2023.2.1 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"UI简化",type:"tip"})]),t("li",null,[n(e,{text:"api文档支持保存和打开",type:"tip"})]),t("li",null,[n(e,{text:"bilibili视频教程直达",type:"tip"})]),t("li",null,[n(e,{text:"自动域名优化",type:"info"})]),t("li",null,[n(e,{text:"Map解析优化",type:"info"})]),t("li",null,[n(e,{text:"show apis放入到右键菜单",type:"info"})]),t("li",null,[n(e,{text:"统计页面加入了版本号",type:"info"})]),t("li",null,[n(e,{text:"众多细节优化",type:"info"})]),t("li",null,[n(e,{text:"url和curl拷贝有environment变量的时候url没替换变量",type:"danger"})]),t("li",null,[n(e,{text:"curl以form-urlencoded和-d形式导入解析错乱",type:"danger"})])]),t("div",io,[t("p",ao,[s("UI简化 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),co,po]),t("div",ro,[t("p",uo,[s("api文档支持保存和打开 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),_o]),t("div",ho,[t("p",mo,[s("apis放入到右键菜单 "),n(e,{vertical:"top",text:"优化",type:"info"})]),go]),t("div",yo,[t("p",vo,[s("统计页面加入了版本号 "),n(e,{vertical:"top",text:"优化",type:"info"})]),xo]),t("h2",ko,[t("a",bo,[t("span",null,[s("2023.1.9 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"快捷添加Environment变量",type:"tip"})]),t("li",null,[n(e,{text:"Environment使用界面增删改支持",type:"tip"})]),t("li",null,[n(e,{text:"Show apis快捷触发",type:"tip"})]),t("li",null,[n(e,{text:"Response新增Size属性",type:"tip"})]),t("li",null,[n(e,{text:"Api名称保存优化",type:"info"})]),t("li",null,[n(e,{text:"输入参数trim优化",type:"info"})]),t("li",null,[n(e,{text:"缩减JSON tab展示树大小从5M->2M",type:"info"})]),t("li",null,[n(e,{text:"发送请求移除默认请求头Accept-Language",type:"danger"})]),t("li",null,[n(e,{text:"curl拷贝form-data格式错误",type:"danger"})]),t("li",null,[n(e,{text:"域名配置页修改回显逻辑错误",type:"danger"})])]),t("div",fo,[t("p",Ao,[s("快捷添加Environment变量 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),wo,Io]),t("div",So,[t("p",Po,[s("Environment使用界面增删改支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),zo]),t("div",Eo,[t("p",Co,[s("Show apis快捷触发 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),jo,Ro]),t("div",Do,[t("p",qo,[s("Response新增Size属性 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Uo]),t("div",Lo,[t("p",No,[s("Api名称保存优化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),t("p",null,[s("详看Bilibili视频讲解 -> "),t("a",To,[s("IDEA插件Fast Request之API命名机制"),n(c)])])]),t("h2",Mo,[t("a",Bo,[t("span",null,[s("2023.1.8 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"Environment",type:"tip"})]),t("li",null,[n(e,{text:"方法描述截断",type:"info"})]),t("li",null,[n(e,{text:"Instant类型解析",type:"info"})]),t("li",null,[n(e,{text:"Windows系统APIs中目录删除",type:"danger"})])]),t("div",Wo,[t("p",Ho,[s("Environment "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),t("p",null,[s("引入了 "),n(_,{icon:"environment"}),s(" nvironment变量,"),n(o,{to:"/guide/features/environment.html"},{default:l(()=>[s("详情")]),_:1})])]),t("div",Jo,[t("p",Fo,[s("方法描述截断 "),n(e,{vertical:"top",text:"优化",type:"info"})]),$o,Oo]),t("h2",Go,[t("a",Vo,[t("span",null,[s("2023.1.7.1 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"SearchEveryWhere增加自动生成策略",type:"tip"})]),t("li",null,[n(e,{text:"主窗口弹出配置化",type:"info"})]),t("li",null,[n(e,{text:"参数解析",type:"info"})]),t("li",null,[n(e,{text:"table托拉拽问题",type:"info"})])]),t("div",Ko,[t("p",Yo,[s("SearchEveryWhere增加自动生成策略 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Xo,Qo]),t("div",Zo,[t("p",ti,[s("主窗口弹出配置化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),ni]),t("div",ei,[t("p",si,[s("参数解析 "),n(e,{vertical:"top",text:"优化",type:"info"})]),li,n(u,{id:"883",data:[{id:"spring"}],"tab-id":"shell"},{title0:l(({value:i,isActive:a})=>[s("spring")]),tab0:l(({value:i,isActive:a})=>[oi]),_:1})]),t("h2",ii,[t("a",ai,[t("span",null,[s("2023.1.7 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"全新扁平化图标",type:"tip"})]),t("li",null,[n(e,{text:"SearchEveryWhere加入过滤条件",type:"tip"})]),t("li",null,[n(e,{text:"精简版http图标",type:"tip"})]),t("li",null,[n(e,{text:"字段拷贝",type:"tip"})]),t("li",null,[n(e,{text:"脚本片段插入优化",type:"info"})]),t("li",null,[n(e,{text:"table与textarea优化",type:"info"})]),t("li",null,[n(e,{text:"自动域名解析优化",type:"info"})]),t("li",null,[n(e,{text:"cUrl导入",type:"info"})]),t("li",null,[n(e,{text:"全屏操作",type:"info"})]),t("li",null,[n(e,{text:"参数解析",type:"info"})]),t("li",null,[n(e,{text:"Gradle项目的模块名去除.main",type:"info"})]),t("li",null,[n(e,{text:"SearchEveryWhere关键字带空格搜索",type:"danger"})]),t("li",null,[n(e,{text:"众多操作细节优化",type:"danger"})]),t("li",null,[n(e,{text:"批量导出api文档",type:"danger"})]),t("li",null,[n(e,{text:"历史请求回显问题",type:"danger"})])]),t("div",ci,[t("p",pi,[s("全新扁平化图标 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),ri]),t("div",di,[t("p",ui,[s("SearchEveryWhere 加入过滤条件 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),_i,hi]),t("div",mi,[t("p",gi,[s("精简版 http 图标 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),yi]),t("div",vi,[t("p",xi,[s("字段拷贝 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),ki,bi]),t("h2",fi,[t("a",Ai,[t("span",null,[s("2023.1.6 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"Header批量编辑",type:"tip"})]),t("li",null,[n(e,{text:"后置脚本发起请求idea debug卡死",type:"danger"})])]),t("div",wi,[t("p",Ii,[s("Header 批量编辑 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Si]),t("h2",Pi,[t("a",zi,[t("span",null,[s("2023.1.5 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"编辑器图标位置",type:"info"})]),t("li",null,[n(e,{text:"SearchEveryWhere样式错乱",type:"danger"})]),t("li",null,[n(e,{text:"URL变量替换",type:"danger"})])]),t("div",Ei,[t("p",Ci,[s("编辑器图标位置 "),n(e,{vertical:"top",text:"优化",type:"info"})]),ji,Ri]),Di,t("h2",qi,[t("a",Ui,[t("span",null,[s("2023.1.4.2 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"项目级配置域名编辑错误",type:"danger"})]),t("li",null,[n(e,{text:"headers分组加载错误",type:"danger"})])]),t("h2",Li,[t("a",Ni,[t("span",null,[s("2023.1.4.1 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"修复多模块项目自动域名找不到配置文件",type:"danger"})])]),t("h2",Ti,[t("a",Mi,[t("span",null,[s("2023.1.4 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"自动域名",type:"tip"})]),t("li",null,[n(e,{text:"SearchEveryWhere支持搜索jar包中的url",type:"tip"})]),t("li",null,[n(e,{text:"Script项目级别头设置失败",type:"danger"})])]),t("div",Bi,[t("p",Wi,[s("自动域名 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),t("p",null,[s("自动识别或增加一个默认的域名,---->"),n(o,{to:"/guide/features/autoDomain.html"},{default:l(()=>[s("详情")]),_:1})])]),t("h2",Hi,[t("a",Ji,[t("span",null,[s("2023.1.3.2 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"重量级更新:团队协作支持",type:"tip"})]),t("li",null,[n(e,{text:"OpenAI API接口优化字段支持",type:"tip"})]),t("li",null,[n(e,{text:"API与存储文件跳转",type:"tip"})]),t("li",null,[n(e,{text:"项目配置刷新",type:"tip"})]),t("li",null,[n(e,{text:"rfr.currentModuleName支持",type:"tip"})]),t("li",null,[n(e,{text:"Api文档同步支持自定义分支",type:"info"})]),t("li",null,[n(e,{text:"工具栏",type:"info"})]),t("li",null,[n(e,{text:"LocalDateTime、LocalDate、LocalTime解析优化",type:"info"})]),t("li",null,[n(e,{text:"GET、POST、DELETE、PUT、PATCH图标",type:"info"})]),t("li",null,[n(e,{text:"IDEA 2023.1 响应未格式化",type:"danger"})]),t("li",null,[n(e,{text:"Mapping为数组的时候URL随机生成",type:"danger"})]),t("li",null,[n(e,{text:"Kotlin字段注释未生成",type:"danger"})])]),t("p",null,[n(o,{to:"/guide/faq.html#s-apis%E4%B8%A2%E5%A4%B1"},{default:l(()=>[s("FAQ:安装过 2023.1.3 版本的数据丢失")]),_:1})]),t("div",Fi,[t("p",$i,[s("OpenAI API 接口优化字段支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Oi,t("p",null,[s("利用"),t("a",Gi,[s("OpenAI 接口"),n(c)]),s(",替换随机字段值。注意由于 API 是非结构向数据,所以返回的内容可能会有误差。")])]),t("div",Vi,[t("p",Ki,[s("API 与存储文件跳转 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Yi,Xi,Qi]),t("div",Zi,[t("p",ta,[s("项目配置刷新 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),na,ea]),t("div",sa,[t("p",la,[s("rfr.currentModuleName 支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),t("p",null,[n(o,{to:"/guide/script.html#rfr"},{default:l(()=>[s("脚本")]),_:1}),s("中用于获取当前 API 所属模块支持")])]),t("div",oa,[t("p",ia,[s("Api 文档同步支持自定义分支 "),n(e,{vertical:"top",text:"优化",type:"info"})]),aa,ca]),t("div",pa,[t("p",ra,[s("工具栏 "),n(e,{vertical:"top",text:"优化",type:"info"})]),da,ua,_a,ha]),t("div",ma,[t("p",ga,[s("GET、POST、DELETE、PUT、PATCH 图标 "),n(e,{vertical:"top",text:"优化",type:"info"})]),ya,va]),t("h2",xa,[t("a",ka,[t("span",null,[s("2023.1.2 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"图片响应渲染",type:"tip"})]),t("li",null,[n(e,{text:"年度报告",type:"tip"})]),t("li",null,[n(e,{text:"Url解析逻辑",type:"info"})]),t("li",null,[n(e,{text:"cUrl导入",type:"info"})]),t("li",null,[n(e,{text:"Url特殊字符编码",type:"info"})]),t("li",null,[n(e,{text:"Url输入框回车事件",type:"info"})]),t("li",null,[n(e,{text:"移除窗口插件标题",type:"info"})]),t("li",null,[n(e,{text:"jdk11+的idea版本中Patch请求失败",type:"danger"})]),t("li",null,[n(e,{text:"API名字保存错误",type:"danger"})])]),t("div",ba,[t("p",fa,[s("图片响应渲染 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Aa,wa]),t("div",Ia,[t("p",Sa,[s("年度报告 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Pa,za]),t("div",Ea,[t("p",Ca,[s("Url 解析逻辑 "),n(e,{vertical:"top",text:"优化",type:"info"})]),ja]),t("div",Ra,[t("p",Da,[s("cUrl 导入 "),n(e,{vertical:"top",text:"优化",type:"info"})]),qa]),t("div",Ua,[t("p",La,[s("Url 特殊字符编码 "),n(e,{vertical:"top",text:"优化",type:"info"})]),Na]),t("div",Ta,[t("p",Ma,[s("Url 输入框回车事件 "),n(e,{vertical:"top",text:"优化",type:"info"})]),Ba]),t("h2",Wa,[t("a",Ha,[t("span",null,[s("2023.1.1 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"Yml和Properties文件的域名解析支持",type:"tip"})]),t("li",null,[n(e,{text:"项目级别域名配置",type:"tip"})]),t("li",null,[n(e,{text:"图标排版",type:"info"})]),t("li",null,[n(e,{text:"新UI工具窗口图标",type:"info"})]),t("li",null,[n(e,{text:"项目级别头参数可选",type:"info"})]),t("li",null,[n(e,{text:"Cookie取值",type:"info"})]),t("li",null,[n(e,{text:"基础类型Swagger默认值解析",type:"danger"})]),t("li",null,[n(e,{text:"数组不解析",type:"danger"})])]),t("div",Ja,[t("p",Fa,[s("项目级别域名配置 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),$a,Oa,t("p",null,[s("支持直接从"),Ga,s("和"),Va,s("配置文件快速配置域名,更多详情请查看 "),n(o,{to:"/guide/features/projectLevelDomainConfig.html"},{default:l(()=>[n(_,{icon:"domainConfig"}),s(" 项目域名配置")]),_:1})])]),t("div",Ka,[t("p",Ya,[s("图标排版 "),n(e,{vertical:"top",text:"优化",type:"info"})]),Xa]),t("div",Qa,[t("p",Za,[s("新 UI 工具窗口图标 "),n(e,{vertical:"top",text:"优化",type:"info"})]),tc]),t("h2",nc,[t("a",ec,[t("span",null,[s("2022.3.1 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"注释增加@fastRequestParseIgnore用来忽略字段解析",type:"tip"})]),t("li",null,[n(e,{text:"Script中增加rfr.currentDomain支持",type:"tip"})]),t("li",null,[n(e,{text:"激活提示优化",type:"info"})]),t("li",null,[n(e,{text:"Kotlin和Java混编导致Navigate加载api失败",type:"danger"})])]),t("div",sc,[t("p",lc,[s("注释增加@fastRequestParseIgnore 用来忽略字段解析 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),oc]),t("div",ic,[t("p",ac,[s("Script 中增加 rfr.currentDomain 支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),cc]),t("h2",pc,[t("a",rc,[t("span",null,[s("2022.2.9 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"兼容IDEA2022.2.4",type:"tip"})]),t("li",null,[n(e,{text:"全局动画配置",type:"tip"})]),t("li",null,[n(e,{text:"多Cookie值错误",type:"danger"})]),t("li",null,[n(e,{text:"导航Navigate tab加载错误",type:"danger"})])]),t("div",dc,[t("p",uc,[s("全局动画配置 "),n(e,{vertical:"top",text:"优化",type:"info"})]),_c,hc]),t("h2",mc,[t("a",gc,[t("span",null,[s("2022.2.8 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"自动适配下载",type:"info"})]),t("li",null,[n(e,{text:"@RequestParam支持name解析",type:"info"})]),t("li",null,[n(e,{text:"检查更新报错",type:"danger"})])]),t("div",yc,[t("p",vc,[s("下载文件适配 "),n(e,{vertical:"top",text:"优化",type:"info"})]),xc]),t("h2",kc,[t("a",bc,[t("span",null,[s("v2022.2.7 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"Api文档同步",type:"tip"})]),t("li",null,[n(e,{text:"Api文档显示返回值类型参数文档",type:"tip"})]),t("li",null,[n(e,{text:"插件更新通知机制",type:"tip"})]),t("li",null,[n(e,{text:"公共请求头",type:"tip"})]),t("li",null,[n(e,{text:"全屏",type:"tip"})]),t("li",null,[n(e,{text:"注释预览",type:"info"})]),t("li",null,[n(e,{text:"模块头一直被选中",type:"danger"})]),t("li",null,[n(e,{text:"解析bug",type:"danger"})]),t("li",null,[n(e,{text:"body中传string参数报错",type:"danger"})])]),t("div",fc,[t("p",Ac,[s("Api 文档同步 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),n(r,{imgList:["/img/2022.2.7/apiSync.png","/img/2022.2.7/apiSyncSetting.png"]},null,8,["imgList"]),t("p",null,[s("在线文档同步---->"),n(o,{to:"/guide/features/apiDocSync.html"},{default:l(()=>[s("详情")]),_:1})])]),t("div",wc,[t("p",Ic,[s("Api 文档显示返回值类型参数文档 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Sc]),t("div",Pc,[t("p",zc,[s("插件更新通知机制 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Ec,Cc,jc]),t("div",Rc,[t("p",Dc,[s("公共请求头 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),qc,t("p",null,[n(o,{to:"/guide/features/commonHeader.html"},{default:l(()=>[s("---->详情")]),_:1})])]),t("div",Uc,[t("p",Lc,[s("全屏 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Nc,t("p",null,[n(o,{to:"/guide/features/fullScreen.html"},{default:l(()=>[s("---->详情")]),_:1})])]),t("div",Tc,[t("p",Mc,[s("注释预览 "),n(e,{vertical:"top",text:"优化",type:"info"})]),Bc]),t("h2",Wc,[t("a",Hc,[t("span",null,[s("v2022.2.6 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"一键清除参数",type:"tip"})]),t("li",null,[n(e,{text:"API注释预览",type:"tip"})]),t("li",null,[n(e,{text:"参数列根据key排序",type:"tip"})]),t("li",null,[n(e,{text:"Api文档导出新增required列",type:"info"})]),t("li",null,[n(e,{text:"优化内网检查更新延迟较长",type:"info"})]),t("li",null,[n(e,{text:"第一次打开工具窗口有短暂卡顿现象",type:"info"})]),t("li",null,[n(e,{text:"前置脚本多次打印",type:"danger"})])]),t("div",Jc,[t("p",Fc,[s("一键清除参数 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),$c,Oc]),t("div",Gc,[t("p",Vc,[s("API 注释预览 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Kc]),t("div",Yc,[t("p",Xc,[s("参数列根据 key 排序 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Qc]),t("h2",Zc,[t("a",tp,[t("span",null,[s("v2022.2.5.2 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"后置脚本无法清空",type:"danger"})])]),t("h2",np,[t("a",ep,[t("span",null,[s("v2022.2.5.1 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"Console语法报错",type:"danger"})])]),t("h2",sp,[t("a",lp,[t("span",null,[s("v2022.2.5 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"添加Console控制台",type:"tip"})]),t("li",null,[n(e,{text:"添加打印语法支持",type:"tip"})]),t("li",null,[n(e,{text:"内置变量rfr添加currentProjectName、currentEnvName属性",type:"tip"})]),t("li",null,[n(e,{text:"从Javadoc读取注释",type:"tip"})]),t("li",null,[n(e,{text:"@RequestPart支持",type:"tip"})]),t("li",null,[n(e,{text:"新增推特",type:"tip"})]),t("li",null,[n(e,{text:"后置脚本在请求成功但响应是401不执行",type:"danger"})])]),t("div",op,[t("p",ip,[s("Console 支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),ap,cp,t("p",null,[s("更多信息请看-----> "),n(o,{to:"/guide/script.html#console"},{default:l(()=>[s("script->console")]),_:1})])]),t("div",pp,[t("p",rp,[s("内置变量 rfr 添加 currentProjectName、currentEnvName 属性 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),dp,t("p",null,[s("更多信息请看-----> "),n(o,{to:"/guide/script.html#rfr"},{default:l(()=>[s("script->内置变量->rfr")]),_:1})])]),t("div",up,[t("p",_p,[s("从 Javadoc 读取注释 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),hp,mp]),t("div",gp,[t("p",yp,[s("新增推特 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),vp,xp,kp]),t("h2",bp,[t("a",fp,[t("span",null,[s("v2022.2.4.1 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"修复小屏EUAL协议无法显示同意按钮",type:"danger"})])]),t("h2",Ap,[t("a",wp,[t("span",null,[s("v2022.2.4 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"全新的Logo",type:"tip"})]),t("li",null,[n(e,{text:"支持通过注释解析日期",type:"tip"})]),t("li",null,[n(e,{text:"支持解析BaseController",type:"tip"})]),t("li",null,[n(e,{text:"自动更新可配置化",type:"info"})]),t("li",null,[n(e,{text:"参数编码传参优化",type:"info"})]),t("li",null,[n(e,{text:"Map不带泛型解析错误",type:"danger"})]),t("li",null,[n(e,{text:"后置脚本删除添加头信息失败",type:"danger"})])]),t("div",Ip,[t("p",Sp,[s("全新的 Logo "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),n(r,{imgList:["/img/2022.2.4/newLogo.gif","/img/2022.2.4/newLogoConfig.png","/img/2022.2.4/newLogo.png"]},null,8,["imgList"]),Pp]),t("div",zp,[t("p",Ep,[s("支持通过 DateTimeFormat 注释解析日期 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Cp]),t("div",jp,[t("p",Rp,[s("支持解析 BaseController "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Dp]),t("div",qp,[t("p",Up,[s("自动更新可配置化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),Lp]),t("h2",Np,[t("a",Tp,[t("span",null,[s("v2022.2.3.1 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"修复参数无法清除的bug",type:"danger"})])]),t("h2",Mp,[t("a",Bp,[t("span",null,[s("v2022.2.3 "),n(e,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[n(e,{text:"前置脚本",type:"tip"})]),t("li",null,[n(e,{text:"后置脚本",type:"tip"})]),t("li",null,[n(e,{text:"一键拷贝Url",type:"tip"})]),t("li",null,[n(e,{text:"兼容IDEA2021.2.1+",type:"info"})]),t("li",null,[n(e,{text:"RequestParam defaultValue属性解析",type:"info"})]),t("li",null,[n(e,{text:"点击按钮时触发表格单元格值更改",type:"info"})]),t("li",null,[n(e,{text:"关闭RFR工具窗口后点击火箭第一次url无法生成",type:"danger"})]),t("li",null,[n(e,{text:"Jax-rs PATCH支持",type:"danger"})])]),t("div",Wp,[t("p",Hp,[s("脚本支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Jp,Fp,t("p",null,[s("脚本可以让开发者更加灵活地、动态地、方便地修改请求过程的一些入参,以及响应的处理"),$p,s(" 具体请参考-------> "),n(o,{to:"/guide/script.html"},{default:l(()=>[s("脚本")]),_:1})])]),t("div",Op,[t("p",Gp,[s("一键拷贝 Url "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Vp]),t("div",Kp,[t("p",Yp,[s("点击按钮时触发表格单元格值更改 "),n(e,{vertical:"top",text:"优化",type:"info"})]),Xp,t("p",null,[s("老版本如何处理: "),n(o,{to:"/guide/faq.html"},{default:l(()=>[s("FAQ:输入参数后调用 API 发现无效")]),_:1})])]),t("h2",Qp,[t("a",Zp,[t("span",null,[s("v2022.2.2 "),n(e,{text:"免费试用",type:"warn"})])])]),t("ul",null,[t("li",null,[n(e,{text:"终止API请求功能",type:"tip"})]),t("li",null,[n(e,{text:"批量导出API文档",type:"tip"})]),t("li",null,[n(e,{text:"导出到Postman添加注释",type:"tip"})]),t("li",null,[n(e,{text:"响应数据量巨大情况下卡顿优化",type:"info"})]),t("li",null,[n(e,{text:"某些场景下的体验和提示",type:"info"})]),t("li",null,[n(e,{text:"新UI及EAP下SearchEveryWhere报错",type:"danger"})]),t("li",null,[n(e,{text:"Multipart修改数字类型参数报错",type:"danger"})]),t("li",null,[n(e,{text:"某些情况下历史请求删除操作报错",type:"danger"})])]),t("div",tr,[t("p",nr,[s("终止 API 请求功能 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),er]),t("div",sr,[t("p",lr,[s("批量导出 API 文档 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),or]),t("h2",ir,[t("a",ar,[t("span",null,[s("v2022.2.1 "),n(e,{text:"免费试用",type:"warn"})])])]),t("ul",null,[t("li",null,[n(e,{text:"API分组参数保存支持",type:"tip"})]),t("li",null,[n(e,{text:"临时请求保存支持",type:"tip"})]),t("li",null,[n(e,{text:"cURL导入支持",type:"tip"})]),t("li",null,[n(e,{text:"Response Header展示",type:"tip"})]),t("li",null,[n(e,{text:"添加对Url尾缀支持",type:"tip"})]),t("li",null,[n(e,{text:"优化快捷键",type:"info"})]),t("li",null,[n(e,{text:"优化解析",type:"info"})]),t("li",null,[n(e,{text:"修复Word导出bug",type:"danger"})])]),t("div",cr,[t("p",pr,[s("API 分组参数保存支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),rr,t("p",null,[t("a",dr,[s("B 站教程"),n(c)])]),ur,_r,hr,mr,gr,yr]),t("div",vr,[t("p",xr,[s("临时请求保存支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),kr,br,fr]),t("div",Ar,[t("p",wr,[s("cURL 导入支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Ir,Sr]),t("div",Pr,[t("p",zr,[s("Response Header 展示 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Er]),t("div",Cr,[t("p",jr,[s("添加对 Url 尾缀支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Rr,Dr]),t("div",qr,[t("p",Ur,[s("优化解析 "),n(e,{vertical:"top",text:"优化",type:"info"})]),Lr]),t("h2",Nr,[t("a",Tr,[t("span",null,[s("v2022.1.10 "),n(e,{text:"免费试用",type:"warn"})])])]),t("ul",null,[t("li",null,[n(e,{text:"添加对历史请求预览的支持",type:"tip"})]),t("li",null,[n(e,{text:"超时时间自定义设置",type:"tip"})]),t("li",null,[n(e,{text:"SearchEveryWhere支持方法注释搜索",type:"info"})]),t("li",null,[n(e,{text:"快捷键冲突优化",type:"info"})]),t("li",null,[n(e,{text:"文本编辑器字符显示光标定位优化",type:"info"})]),t("li",null,[n(e,{text:"Curl输出格式优化",type:"info"})]),t("li",null,[n(e,{text:"优化@Consumes(APPLICATION_JSON)不生效问题(JAX-RS)",type:"info"})])]),t("div",Mr,[t("p",Br,[s("添加对历史请求预览的支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Wr,Hr]),t("div",Jr,[t("p",Fr,[s("超时时间自定义设置 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),$r,Or]),t("div",Gr,[t("p",Vr,[s("SearchEveryWhere 支持方法注释搜索 "),n(e,{vertical:"top",text:"优化",type:"info"})]),Kr,Yr]),t("div",Xr,[t("p",Qr,[s("优化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),t("ul",null,[t("li",null,[n(e,{text:"快捷键冲突优化",type:"info"}),t("ul",null,[t("li",null,[n(e,{text:"将打开创建的三个快捷键统一加上了Shift",type:"info"})])])]),t("li",null,[n(e,{text:"文本编辑器字符显示光标定位优化",type:"info"}),t("ul",null,[t("li",null,[n(e,{text:"文本编辑器生成字符串的时候默认聚焦到第一行",type:"info"})])])])])]),t("h2",Zr,[t("a",td,[t("span",null,[s("v2022.1.9 "),n(e,{text:"免费试用",type:"warn"})])])]),t("ul",null,[t("li",null,[n(e,{text:"工具窗口跳转增加快捷键",type:"tip"})]),t("li",null,[n(e,{text:"添加自动添加Cookie支持",type:"tip"})]),t("li",null,[n(e,{text:"响应raw中增加html预览",type:"tip"})]),t("li",null,[n(e,{text:"APIs列表视图优化",type:"info"})]),t("li",null,[n(e,{text:"忽略字段解析优化",type:"info"})]),t("li",null,[n(e,{text:"泛型参数解析支持",type:"info"})]),t("li",null,[n(e,{text:"完善项目全局参数",type:"info"})]),t("li",null,[n(e,{text:"修复编辑参数时同时按删除参数导致报错",type:"info"})]),t("li",null,[n(e,{text:"界面优化",type:"info"})]),t("li",null,[n(e,{text:"保存API插入顺序优化",type:"info"})]),t("li",null,[n(e,{text:"优化了导出预览",type:"info"})])]),t("div",nd,[t("p",ed,[s("工具窗口跳转增加快捷键 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),sd,ld]),t("div",od,[t("p",id,[s("添加自动添加 Cookie 支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),ad,cd]),t("div",pd,[t("p",rd,[s("响应 raw 中增加 html 预览 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),dd,ud]),t("div",_d,[t("p",hd,[s("忽略字段解析优化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),t("ul",null,[t("li",null,[n(e,{text:"忽略解析使用`@JsonIgnore`、`@JSONField(serialize = false)`注解的字段",type:"info"})]),t("li",null,[n(e,{text:"忽略解析`transient`关键字修饰的字段",type:"info"})])])]),t("div",md,[t("p",gd,[s("泛型参数解析支持 "),n(e,{vertical:"top",text:"优化",type:"info"})]),yd]),t("div",vd,[t("p",xd,[s("完善项目全局参数 "),n(e,{vertical:"top",text:"优化",type:"info"})]),kd,bd]),t("div",fd,[t("p",Ad,[s("优化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),wd]),t("div",Id,[t("p",Sd,[s("APIs 列表视图优化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),Pd,zd]),t("h2",Ed,[t("a",Cd,[t("span",null,[s("v2022.1.8 "),n(e,{text:"免费试用",type:"warn"})])])]),t("ul",null,[t("li",null,[n(e,{text:"项目级别全局参数支持",type:"tip"})]),t("li",null,[n(e,{text:"优化响应数据快速添加到头",type:"info"})]),t("li",null,[n(e,{text:"优化cookie快速添加到头",type:"info"})]),t("li",null,[n(e,{text:"Postman导出优化",type:"info"})]),t("li",null,[n(e,{text:"修复navigate树扫描bug",type:"info"})]),t("li",null,[n(e,{text:"修复了一些bug",type:"danger"})])]),t("div",jd,[t("p",Rd,[s("项目级别全局参数支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Dd,qd,Ud]),t("div",Ld,[t("p",Nd,[s("快速添加到头参数 "),n(e,{vertical:"top",text:"优化",type:"info"})]),Td,Md,Bd]),t("h2",Wd,[t("a",Hd,[t("span",null,[s("v2022.1.7 "),n(e,{text:"免费试用",type:"warn"})])])]),t("ul",null,[t("li",null,[n(e,{text:"Kotlin spring系列框架支持",type:"tip"})]),t("li",null,[n(e,{text:"新增SearchEveryWhere范围搜索策略",type:"tip"})]),t("li",null,[n(e,{text:"编辑器ToggleUseSoftWrap支持",type:"tip"})]),t("li",null,[n(e,{text:"响应数据一键添加Global Header支持",type:"tip"})]),t("li",null,[n(e,{text:"添加导航到当前方法的支持",type:"tip"})]),t("li",null,[n(e,{text:"优化多模块下保存的API回显自动绑定项目",type:"info"})])]),t("div",Jd,[t("p",Fd,[s("Kotlin spring 系列框架支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),$d,Od]),t("div",Gd,[t("p",Vd,[s("新增 SearchEveryWhere 范围搜索策略 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Kd,Yd,Xd]),t("div",Qd,[t("p",Zd,[s("编辑器 ToggleUseSoftWrap 支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),tu]),t("div",nu,[t("p",eu,[s("响应数据一键添加 Global Header 支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),su,lu]),t("div",ou,[t("p",iu,[s("添加导航到当前方法的支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),au,cu]),t("div",pu,[t("p",ru,[s("优化多模块下保存的 API 回显自动绑定项目 "),n(e,{vertical:"top",text:"优化",type:"info"})]),du]),t("h2",uu,[t("a",_u,[t("span",null,[s("v2022.1.6 "),n(e,{text:"免费试用",type:"warn"})])])]),t("ul",null,[t("li",null,[n(e,{text:"添加一键添加Cookie到Header的支持",type:"tip"})]),t("li",null,[n(e,{text:"添加API分享Word和html的支持",type:"tip"})]),t("li",null,[n(e,{text:"修复了Basic authorization没有携带Basic字符串",type:"danger"})]),t("li",null,[n(e,{text:"移除了APIs标签下的拉拽功能",type:"danger"})])]),t("div",hu,[t("p",mu,[s("添加一键添加 Cookie 到 Header 的支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),gu,yu]),t("div",vu,[t("p",xu,[s("添加 API 分享 Word 和 html 的支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),ku,bu]),t("h2",fu,[t("a",Au,[t("span",null,[s("v2022.1.5 "),n(e,{text:"免费试用",type:"warn"})])])]),t("ul",null,[t("li",null,[n(e,{text:"添加对自动生成参数描述的支持",type:"tip"})]),t("li",null,[n(e,{text:"添加一键生成API文档的支持",type:"tip"})]),t("li",null,[n(e,{text:"添加单个类的API整体预览",type:"tip"})]),t("li",null,[n(e,{text:"移除了Accept头上的text/html",type:"danger"})]),t("li",null,[n(e,{text:"修复了一些bug",type:"danger"})])]),t("div",wu,[t("p",Iu,[s("添加对自动生成参数描述的支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Su,Pu]),t("div",zu,[t("p",Eu,[s("添加一键生成 API 文档的支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Cu,ju,Ru]),t("div",Du,[t("p",qu,[s("添加单个类的 API 整体预览 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Uu,Lu]),t("h2",Nu,[t("a",Tu,[t("span",null,[s("v2022.1.4 "),n(e,{text:"免费试用",type:"warn"})])])]),Mu,t("ul",null,[t("li",null,[n(e,{text:"APIs导入导出支持",type:"tip"})]),t("li",null,[n(e,{text:"APIs支持直接运行",type:"tip"})]),t("li",null,[n(e,{text:"API请求增加超时设置",type:"tip"})]),t("li",null,[n(e,{text:"url生成优化之多url随机生成",type:"tip"})]),t("li",null,[n(e,{text:"自动生成参数可选化",type:"tip"})]),t("li",null,[n(e,{text:"swagger注解默认值参数解析支持",type:"tip"})]),t("li",null,[n(e,{text:"兼容idea 2022.1",type:"info"})]),t("li",null,[n(e,{text:"SearchEveryWhere高亮优化",type:"info"})]),t("li",null,[n(e,{text:"对Send和Send and Download按钮进行了合并",type:"info"})]),t("li",null,[n(e,{text:"APIs界面优化",type:"info"})]),t("li",null,[n(e,{text:"Tab页API Navigate重命名Navigate",type:"info"})]),t("li",null,[n(e,{text:"使用引导上的细节优化",type:"info"})]),t("li",null,[n(e,{text:"修复了Light files should have PSI only in one project",type:"danger"})])]),t("div",Bu,[t("p",Wu,[s("SearchEveryWhere 高亮优化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),Hu,Ju]),t("div",Fu,[t("p",$u,[s("APIs 导入导出支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Ou,Gu,t("p",null,[s("更多详情请看 "),t("strong",null,[n(o,{to:"/guide/feature.html#apis%E5%AF%BC%E5%85%A5%E5%AF%BC%E5%87%BA"},{default:l(()=>[s("功能->APIs 导入导出")]),_:1})])])]),t("div",Vu,[t("p",Ku,[s("APIs 支持直接运行 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Yu,Xu]),t("div",Qu,[t("p",Zu,[s("自动生成参数可选化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),t2]),t("div",n2,[t("p",e2,[s("swagger 注解默认值参数解析支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),s2,l2,t("p",null,[s("更多详情请看 "),t("strong",null,[n(o,{to:"/guide/feature.html#swagger%E9%BB%98%E8%AE%A4%E5%80%BC%E8%A7%A3%E6%9E%90%E6%94%AF%E6%8C%81"},{default:l(()=>[s("功能->swagger 默认值解析支持")]),_:1})])])]),t("div",o2,[t("p",i2,[s("对 Send 和 Send and Download 按钮进行了合并 "),n(e,{vertical:"top",text:"优化",type:"info"})]),a2]),t("div",c2,[t("p",p2,[s("使用引导上的细节优化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),r2,d2]),t("div",u2,[t("p",_2,[s("url 解析优化 "),n(e,{vertical:"top",text:"优化",type:"info"})]),h2,t("p",null,[s("以下 demo,url 将随着点击"),n(h,{icon:"restfulFastRequest"}),s("随机生成 "),m2]),g2]),t("div",y2,[t("p",v2,[s("Tab 页 API Navigate 重命名 Navigate "),n(e,{vertical:"top",text:"优化",type:"info"})]),x2]),t("h2",k2,[t("a",b2,[t("span",null,[s("v2.1.3 "),n(e,{text:"免费",type:"info"})])])]),f2,t("h2",A2,[t("a",w2,[t("span",null,[s("v2.1.2 "),n(e,{text:"免费",type:"info"})])])]),I2,t("div",S2,[t("p",P2,[s("Url 解析优化 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),z2,E2]),n(u,{id:"2664",data:[{id:"场景 1: url 是类常量引用"},{id:"场景 2: value 是一个数组"}]},{title0:l(({value:i,isActive:a})=>[s("场景 1: url 是类常量引用")]),title1:l(({value:i,isActive:a})=>[s("场景 2: value 是一个数组")]),tab0:l(({value:i,isActive:a})=>[C2]),tab1:l(({value:i,isActive:a})=>[j2]),_:1}),t("div",R2,[t("p",D2,[s("添加对导出 api 到 Postman 的支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),q2]),t("div",U2,[t("p",L2,[s("SearchEveryWhere module 标识 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),N2]),t("div",T2,[t("p",M2,[s("API 保存分组优化 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),B2,W2]),t("div",H2,[t("p",J2,[s("全局请求头支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),F2]),t("h2",$2,[t("a",O2,[t("span",null,[s("v2.1.1 "),n(e,{text:"免费",type:"info"})])])]),G2,t("div",V2,[t("p",K2,[s("SearchEveryWhere support "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Y2,X2]),t("div",Q2,[t("p",Z2,[s("最新版本快速查看 "),n(e,{vertical:"top",text:"优化",type:"info"})]),t_]),t("h2",n_,[t("a",e_,[t("span",null,[s("v2.1.0.2 "),n(e,{text:"免费",type:"info"})])])]),t("ul",null,[t("li",null,[s("加入了组织"),t("a",s_,[l_,n(c)]),s("(致力于微服务云原生解决方案的组织)")])]),t("h2",o_,[t("a",i_,[t("span",null,[s("v2.1.0.1 "),n(e,{text:"免费",type:"info"})])])]),a_,t("h2",c_,[t("a",p_,[t("span",null,[s("v2.1.0 "),n(e,{text:"免费",type:"info"})])])]),r_,t("h2",d_,[t("a",u_,[t("span",null,[s("v2.0.9 "),n(e,{text:"免费",type:"info"})])])]),__,t("div",h_,[t("p",m_,[s("从 response 添加 Headers "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),g_,y_]),t("div",v_,[t("p",x_,[s("文本编辑器添加了快捷格式化按钮 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),k_]),t("h2",b_,[t("a",f_,[t("span",null,[s("v2.0.8.1 "),n(e,{text:"免费",type:"info"})])])]),A_,t("h2",w_,[t("a",I_,[t("span",null,[s("v2.0.8 "),n(e,{text:"免费",type:"info"})])])]),S_,t("div",P_,[t("p",z_,[s("send/sendDownload 支持自定义快捷键 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),E_,C_]),t("div",j_,[t("p",R_,[s("添加 Api navigate 对 methodType 的支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),D_]),t("h2",q_,[t("a",U_,[t("span",null,[s("v2.0.7 "),n(e,{text:"免费",type:"info"})])])]),L_,t("div",N_,[t("p",T_,[s("API 导航树 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),M_,B_]),t("div",W_,[t("p",H_,[s("Headers 自动切换 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),J_,F_]),t("div",$_,[t("p",O_,[s("优化@RequestParam 的参数解析 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),G_]),t("div",V_,[t("p",K_,[s("将发送请求按钮至工具栏同时支持快捷键 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),Y_,X_]),t("div",Q_,[t("p",Z_,[s("优化工具窗口 project 和 env 下拉组件及布局 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),th,nh,eh]),t("h2",sh,[t("a",lh,[t("span",null,[s("v2.0.6 "),n(e,{text:"免费",type:"info"})])])]),oh,t("div",ih,[t("p",ah,[s("json 语法支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),ch]),t("div",ph,[t("p",rh,[s("添加 API 保存时候存入对应的模块分组的支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),dh,uh]),t("div",_h,[t("p",hh,[s("JAX-RS 的支持 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),mh]),t("div",gh,[t("p",yh,[s("最新功能展示 "),n(e,{vertical:"top",text:"新功能",type:"tip"})]),vh]),t("h2",xh,[t("a",kh,[t("span",null,[s("v2.0.5 "),n(e,{text:"免费",type:"info"})])])]),bh,t("h2",fh,[t("a",Ah,[t("span",null,[s("v2.0.4 "),n(e,{text:"免费",type:"info"})])])]),wh,t("h2",Ih,[t("a",Sh,[t("span",null,[s("v2.0.3 "),n(e,{text:"免费",type:"info"})])])]),Ph,t("h2",zh,[t("a",Eh,[t("span",null,[s("v2.0.2 "),n(e,{text:"免费",type:"info"})])])]),Ch,t("h2",jh,[t("a",Rh,[t("span",null,[s("v2.0.1 "),n(e,{text:"免费",type:"info"})])])]),Dh,t("h2",qh,[t("a",Uh,[t("span",null,[s("v2.0.0 "),n(e,{text:"免费",type:"info"})])])]),Lh])}const Em=qn(On,[["render",Nh],["__file","history.html.vue"]]),Cm=JSON.parse('{"path":"/guide/history.html","title":"最新变化","lang":"zh-CN","frontmatter":{"title":"最新变化","icon":"changelog","description":" 公告 购买License流程请参考 或者进入微信群里查看群公告,Issue 提报请到Github 由于开发版本仍在开发中,开发版本的文档可能不完全准确,因此可能会发生变化。 2024.1.7 函数与变量支持代码补全 JSON filter支持 jsonFilter 当 JSON 字段较多,但是只需要一部分的时候,可以通过该功能对 JSON进行字段过滤...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/history.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/history.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"最新变化"}],["meta",{"property":"og:description","content":" 公告 购买License流程请参考 或者进入微信群里查看群公告,Issue 提报请到Github 由于开发版本仍在开发中,开发版本的文档可能不完全准确,因此可能会发生变化。 2024.1.7 函数与变量支持代码补全 JSON filter支持 jsonFilter 当 JSON 字段较多,但是只需要一部分的时候,可以通过该功能对 JSON进行字段过滤..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://img.shields.io/static/v1?label=wechat&message=微信技术群&logo=wechat&color=07C160"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-08-21T12:02:42.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"最新变化"}],["meta",{"property":"article:modified_time","content":"2024-08-21T12:02:42.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"最新变化\\",\\"image\\":[\\"https://img.shields.io/static/v1?label=wechat&message=微信技术群&logo=wechat&color=07C160\\",\\"https://img.shields.io/static/v1?label=wechat&message=插件开发技术群&logo=wechat&color=087CFA\\",\\"https://api-buddy.com/img/wechatGroup.png\\",\\"https://api-buddy.com/img/pluginDevelopGroup.png\\",\\"https://api-buddy.com/img/2024.1.7/jsonFilter.png\\",\\"https://api-buddy.com/img/2024.1.7/header.png\\",\\"https://api-buddy.com/img/2024.1.7/defaultMultipartFile.png\\",\\"https://api-buddy.com/img/2024.1.7/searchEveryWhere.png\\",\\"https://api-buddy.com/img/2024.1.6/jsonPath.png\\",\\"https://api-buddy.com/img/2024.1.5/addLibrary.png\\",\\"https://api-buddy.com/img/2024.1.5/typeDropdown.png\\",\\"https://api-buddy.com/img/2024.1.5/originUrl.png\\",\\"https://api-buddy.com/img/2024.1.4/ai.png\\",\\"https://api-buddy.com/img/2024.1.4/header.png\\",\\"https://api-buddy.com/img/2024.1.2/customToolbar.png\\",\\"https://api-buddy.com/img/2024.1.1/searchEveryWhere.png\\",\\"https://api-buddy.com/img/2024.1.1/ignoreFiled.png\\",\\"https://api-buddy.com/img/2024.1.1/manualUpdateCheck.png\\",\\"https://api-buddy.com/img/2023.2.3/environment.png\\",\\"https://api-buddy.com/img/2023.2.3/projectName.png\\",\\"https://api-buddy.com/img/2023.2.2/json5.png\\",\\"https://api-buddy.com/img/2023.2.1/urlInputWithMethod.png\\",\\"https://api-buddy.com/img/2023.2.1/openDoc.png\\",\\"https://api-buddy.com/img/2023.2.1/showApis.png\\",\\"https://api-buddy.com/img/2023.2.1/pluginVersion.png\\",\\"https://api-buddy.com/img/2023.1.9/quickAddEnvironmentVariable.png\\",\\"https://api-buddy.com/img/2023.1.9/environmentVariableEditRemoveModify.png\\",\\"https://api-buddy.com/img/2023.1.9/showApis.gif\\",\\"https://api-buddy.com/img/2023.1.9/responseSize.png\\",\\"https://api-buddy.com/img/2023.1.8/methodDescriptionLength.png\\",\\"https://api-buddy.com/img/2023.1.7.1/searchEveryWhere.png\\",\\"https://api-buddy.com/img/toolwindowNew.png\\",\\"https://api-buddy.com/img/2023.1.7/searchEveryWhere.png\\",\\"https://api-buddy.com/img/http/new/get_dark.svg\\",\\"https://api-buddy.com/img/http/get_dark.svg\\",\\"https://api-buddy.com/img/http/new/post_dark.svg\\",\\"https://api-buddy.com/img/http/post_dark.svg\\",\\"https://api-buddy.com/img/http/new/delete_dark.svg\\",\\"https://api-buddy.com/img/http/delete_dark.svg\\",\\"https://api-buddy.com/img/http/new/put_dark.svg\\",\\"https://api-buddy.com/img/http/put_dark.svg\\",\\"https://api-buddy.com/img/http/new/patch_dark.svg\\",\\"https://api-buddy.com/img/http/patch_dark.svg\\",\\"https://api-buddy.com/img/2023.1.7/fieldDup.png\\",\\"https://api-buddy.com/img/2023.1.6/batchEdit.png\\",\\"https://api-buddy.com/img/2023.1.5/editorAction.png\\",\\"https://api-buddy.com/img/2023.1.3/ai.gif\\",\\"https://api-buddy.com/img/2023.1.3/jumpToJsonData.png\\",\\"https://api-buddy.com/img/2023.1.3/listJump2JsonData.png\\",\\"https://api-buddy.com/img/2023.1.3/refreshProjectConfig.png\\",\\"https://api-buddy.com/img/2023.1.3/apiSyncSupportBranch.png\\",\\"https://api-buddy.com/img/2023.1.3/htoolbar.png\\",\\"https://api-buddy.com/img/2023.1.3/vtoolbar.png\\",\\"https://api-buddy.com/img/2023.1.3/toolbarSetting.png\\",\\"https://api-buddy.com/img/2023.1.3/apis.png\\",\\"https://api-buddy.com/img/2023.1.2/imageRender.png\\",\\"https://api-buddy.com/img/2023.1.2/annualReport.png\\",\\"https://api-buddy.com/img/2023.1.1/projectLevelDomainConfig.png \\\\\\"域名配置\\\\\\"\\",\\"https://api-buddy.com/img/2023.1.1/projectLevelDomainDialog.png \\\\\\"域名列表\\\\\\"\\",\\"https://api-buddy.com/img/2022.2.9/animateConfig.png\\",\\"https://api-buddy.com/img/2022.2.7/returnValueDoc.png\\",\\"https://api-buddy.com/img/2022.2.7/upgradeNotice.png\\",\\"https://api-buddy.com/img/2022.2.7/commonHeader.gif\\",\\"https://api-buddy.com/img/2022.2.7/fullScreen.png\\",\\"https://api-buddy.com/img/2022.2.7/commentPreview.png\\",\\"https://api-buddy.com/img/2022.2.6/clear.png\\",\\"https://api-buddy.com/img/2022.2.6/clearColumnValue.png\\",\\"https://api-buddy.com/img/2022.2.6/showCommentConfig.png\\",\\"https://api-buddy.com/img/2022.2.6/showCommentInClass.png\\",\\"https://api-buddy.com/img/2022.2.6/showCommentInNavigate.png\\",\\"https://api-buddy.com/img/2022.2.6/sortColumn.png\\",\\"https://api-buddy.com/img/2022.2.5/console.png\\",\\"https://api-buddy.com/img/2022.2.5/parseDocDesc.png\\",\\"https://api-buddy.com/img/twitter.png\\",\\"https://api-buddy.com/img/2022.2.5/twitterAction.png\\",\\"https://api-buddy.com/img/2022.2.4/dateTimeFormat.png\\",\\"https://api-buddy.com/img/2022.2.4/baseController.png\\",\\"https://api-buddy.com/img/2022.2.4/autoUpdate.png\\",\\"https://api-buddy.com/img/2022.2.3/scriptProject.png\\",\\"https://api-buddy.com/img/2022.2.3/scriptModule.png\\",\\"https://api-buddy.com/img/2022.2.3/copyUrl.png\\",\\"https://api-buddy.com/img/2022.2.2/stopApi.gif\\",\\"https://api-buddy.com/img/2022.2.2/batchExportApiDoc.png\\",\\"https://api-buddy.com/img/2022.2.1/groupSave.png\\",\\"https://api-buddy.com/img/2022.2.1/apiParamGroup_en.gif\\",\\"https://api-buddy.com/img/2022.2.1/tempSave.png\\",\\"https://api-buddy.com/img/2022.2.1/importByCurl.gif\\",\\"https://api-buddy.com/img/2022.2.1/responseHeader.png\\",\\"https://api-buddy.com/img/2022.2.1/urlSuffix.png\\",\\"https://api-buddy.com/img/history.png\\",\\"https://api-buddy.com/img/timeoutSetting.png\\",\\"https://api-buddy.com/img/searchEveryWhereDescription.png\\",\\"https://api-buddy.com/img/toolwindowShortcut.png\\",\\"https://api-buddy.com/img/autoStoreCookie.png\\",\\"https://api-buddy.com/img/rawHtmlPreview.png\\",\\"https://api-buddy.com/img/projectGlobalParam.png\\",\\"https://api-buddy.com/img/apisList.png\\",\\"https://api-buddy.com/img/projectConfigParam.png\\",\\"https://api-buddy.com/img/add2projectConfig.png\\",\\"https://api-buddy.com/img/cookie2projectConfig.png\\",\\"https://api-buddy.com/img/kotlinSupport.png\\",\\"https://api-buddy.com/img/searchEveryWhereStrategy.png\\",\\"https://api-buddy.com/img/toggleUseSoftWrap.png\\",\\"https://api-buddy.com/img/add2GlobalHeader.png\\",\\"https://api-buddy.com/img/navigate2CurrentMethod.png\\",\\"https://api-buddy.com/img/addCookie2Header.png\\",\\"https://api-buddy.com/img/shareApi.png\\",\\"https://api-buddy.com/img/paramDescription.png\\",\\"https://api-buddy.com/img/shareDocButton.png\\",\\"https://api-buddy.com/img/apiDocExample.png\\",\\"https://api-buddy.com/img/apiPreview.gif\\",\\"https://api-buddy.com/img/searchEveryWhereHighlight.png\\",\\"https://api-buddy.com/img/exportImportApis.gif\\",\\"https://api-buddy.com/img/runInApiManagement.png\\",\\"https://api-buddy.com/img/generateSwitch.png\\",\\"https://api-buddy.com/img/mergeRunAndDownload.png\\",\\"https://api-buddy.com/img/help.png\\",\\"https://api-buddy.com/img/export2postman.gif\\",\\"https://api-buddy.com/img/searchEveryWhereModule.png\\",\\"https://api-buddy.com/img/save2ControllerGroup.png\\",\\"https://api-buddy.com/img/globalRequestHeader.png\\",\\"https://api-buddy.com/img/searchEveryWhere.gif\\",\\"https://api-buddy.com/img/whatsnewNotifcation.png\\",\\"https://api-buddy.com/img/quickAddHeaders.gif\\",\\"https://api-buddy.com/img/format.gif\\",\\"https://api-buddy.com/img/shortcutSendAndDownload.png\\",\\"https://api-buddy.com/img/methodFilter.png\\",\\"https://api-buddy.com/img/apinav.gif\\",\\"https://api-buddy.com/img/headerSwitch.gif\\",\\"https://api-buddy.com/img/toolbarSend.png\\",\\"https://api-buddy.com/img/dropdownProject.png\\",\\"https://api-buddy.com/img/dropdownEnv.png\\",\\"https://api-buddy.com/img/json.png\\",\\"https://api-buddy.com/img/apiGroup.gif\\",\\"https://api-buddy.com/img/moduleSearch.gif\\",\\"https://api-buddy.com/img/jaxrs.gif\\",\\"https://api-buddy.com/img/whatsnew.png\\"],\\"dateModified\\":\\"2024-08-21T12:02:42.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"2024.1.7","slug":"_2024-1-7","link":"#_2024-1-7","children":[]},{"level":2,"title":"2024.1.6.3","slug":"_2024-1-6-3","link":"#_2024-1-6-3","children":[]},{"level":2,"title":"2024.1.6.2","slug":"_2024-1-6-2","link":"#_2024-1-6-2","children":[]},{"level":2,"title":"2024.1.6","slug":"_2024-1-6","link":"#_2024-1-6","children":[]},{"level":2,"title":"2024.1.5.1","slug":"_2024-1-5-1","link":"#_2024-1-5-1","children":[]},{"level":2,"title":"2024.1.5","slug":"_2024-1-5","link":"#_2024-1-5","children":[]},{"level":2,"title":"2024.1.4","slug":"_2024-1-4","link":"#_2024-1-4","children":[]},{"level":2,"title":"2024.1.3","slug":"_2024-1-3","link":"#_2024-1-3","children":[]},{"level":2,"title":"2024.1.2.1","slug":"_2024-1-2-1","link":"#_2024-1-2-1","children":[]},{"level":2,"title":"2024.1.2","slug":"_2024-1-2","link":"#_2024-1-2","children":[]},{"level":2,"title":"2024.1.1","slug":"_2024-1-1","link":"#_2024-1-1","children":[]},{"level":2,"title":"2023.2.3.1","slug":"_2023-2-3-1","link":"#_2023-2-3-1","children":[]},{"level":2,"title":"2023.2.3","slug":"_2023-2-3","link":"#_2023-2-3","children":[]},{"level":2,"title":"2023.2.2","slug":"_2023-2-2","link":"#_2023-2-2","children":[]},{"level":2,"title":"2023.2.1.1","slug":"_2023-2-1-1","link":"#_2023-2-1-1","children":[]},{"level":2,"title":"2023.2.1","slug":"_2023-2-1","link":"#_2023-2-1","children":[]},{"level":2,"title":"2023.1.9","slug":"_2023-1-9","link":"#_2023-1-9","children":[]},{"level":2,"title":"2023.1.8","slug":"_2023-1-8","link":"#_2023-1-8","children":[]},{"level":2,"title":"2023.1.7.1","slug":"_2023-1-7-1","link":"#_2023-1-7-1","children":[]},{"level":2,"title":"2023.1.7","slug":"_2023-1-7","link":"#_2023-1-7","children":[]},{"level":2,"title":"2023.1.6","slug":"_2023-1-6","link":"#_2023-1-6","children":[]},{"level":2,"title":"2023.1.5","slug":"_2023-1-5","link":"#_2023-1-5","children":[]},{"level":2,"title":"2023.1.4.2","slug":"_2023-1-4-2","link":"#_2023-1-4-2","children":[]},{"level":2,"title":"2023.1.4.1","slug":"_2023-1-4-1","link":"#_2023-1-4-1","children":[]},{"level":2,"title":"2023.1.4","slug":"_2023-1-4","link":"#_2023-1-4","children":[]},{"level":2,"title":"2023.1.3.2","slug":"_2023-1-3-2","link":"#_2023-1-3-2","children":[]},{"level":2,"title":"2023.1.2","slug":"_2023-1-2","link":"#_2023-1-2","children":[]},{"level":2,"title":"2023.1.1","slug":"_2023-1-1","link":"#_2023-1-1","children":[]},{"level":2,"title":"2022.3.1","slug":"_2022-3-1","link":"#_2022-3-1","children":[]},{"level":2,"title":"2022.2.9","slug":"_2022-2-9","link":"#_2022-2-9","children":[]},{"level":2,"title":"2022.2.8","slug":"_2022-2-8","link":"#_2022-2-8","children":[]},{"level":2,"title":"v2022.2.7","slug":"v2022-2-7","link":"#v2022-2-7","children":[]},{"level":2,"title":"v2022.2.6","slug":"v2022-2-6","link":"#v2022-2-6","children":[]},{"level":2,"title":"v2022.2.5.2","slug":"v2022-2-5-2","link":"#v2022-2-5-2","children":[]},{"level":2,"title":"v2022.2.5.1","slug":"v2022-2-5-1","link":"#v2022-2-5-1","children":[]},{"level":2,"title":"v2022.2.5","slug":"v2022-2-5","link":"#v2022-2-5","children":[]},{"level":2,"title":"v2022.2.4.1","slug":"v2022-2-4-1","link":"#v2022-2-4-1","children":[]},{"level":2,"title":"v2022.2.4","slug":"v2022-2-4","link":"#v2022-2-4","children":[]},{"level":2,"title":"v2022.2.3.1","slug":"v2022-2-3-1","link":"#v2022-2-3-1","children":[]},{"level":2,"title":"v2022.2.3","slug":"v2022-2-3","link":"#v2022-2-3","children":[]},{"level":2,"title":"v2022.2.2","slug":"v2022-2-2","link":"#v2022-2-2","children":[]},{"level":2,"title":"v2022.2.1","slug":"v2022-2-1","link":"#v2022-2-1","children":[]},{"level":2,"title":"v2022.1.10","slug":"v2022-1-10","link":"#v2022-1-10","children":[]},{"level":2,"title":"v2022.1.9","slug":"v2022-1-9","link":"#v2022-1-9","children":[]},{"level":2,"title":"v2022.1.8","slug":"v2022-1-8","link":"#v2022-1-8","children":[]},{"level":2,"title":"v2022.1.7","slug":"v2022-1-7","link":"#v2022-1-7","children":[]},{"level":2,"title":"v2022.1.6","slug":"v2022-1-6","link":"#v2022-1-6","children":[]},{"level":2,"title":"v2022.1.5","slug":"v2022-1-5","link":"#v2022-1-5","children":[]},{"level":2,"title":"v2022.1.4","slug":"v2022-1-4","link":"#v2022-1-4","children":[]},{"level":2,"title":"v2.1.3","slug":"v2-1-3","link":"#v2-1-3","children":[]},{"level":2,"title":"v2.1.2","slug":"v2-1-2","link":"#v2-1-2","children":[]},{"level":2,"title":"v2.1.1","slug":"v2-1-1","link":"#v2-1-1","children":[]},{"level":2,"title":"v2.1.0.2","slug":"v2-1-0-2","link":"#v2-1-0-2","children":[]},{"level":2,"title":"v2.1.0.1","slug":"v2-1-0-1","link":"#v2-1-0-1","children":[]},{"level":2,"title":"v2.1.0","slug":"v2-1-0","link":"#v2-1-0","children":[]},{"level":2,"title":"v2.0.9","slug":"v2-0-9","link":"#v2-0-9","children":[]},{"level":2,"title":"v2.0.8.1","slug":"v2-0-8-1","link":"#v2-0-8-1","children":[]},{"level":2,"title":"v2.0.8","slug":"v2-0-8","link":"#v2-0-8","children":[]},{"level":2,"title":"v2.0.7","slug":"v2-0-7","link":"#v2-0-7","children":[]},{"level":2,"title":"v2.0.6","slug":"v2-0-6","link":"#v2-0-6","children":[]},{"level":2,"title":"v2.0.5","slug":"v2-0-5","link":"#v2-0-5","children":[]},{"level":2,"title":"v2.0.4","slug":"v2-0-4","link":"#v2-0-4","children":[]},{"level":2,"title":"v2.0.3","slug":"v2-0-3","link":"#v2-0-3","children":[]},{"level":2,"title":"v2.0.2","slug":"v2-0-2","link":"#v2-0-2","children":[]},{"level":2,"title":"v2.0.1","slug":"v2-0-1","link":"#v2-0-1","children":[]},{"level":2,"title":"v2.0.0","slug":"v2-0-0","link":"#v2-0-0","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1724241762000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":5},{"name":"kings","email":"963987632@qq.com","commits":4}]},"readingTime":{"minutes":43.78,"words":13134},"filePathRelative":"guide/history.md","localizedDate":"2024年5月31日","autoDesc":true}');export{Em as comp,Cm as data}; diff --git a/assets/history.html-VQ_AlSYR.js b/assets/history.html-VQ_AlSYR.js new file mode 100644 index 000000000..b39fe8628 --- /dev/null +++ b/assets/history.html-VQ_AlSYR.js @@ -0,0 +1,117 @@ +import{_ as g}from"./slack-roTTHLlw.js";import{_ as m}from"./twitter-vJUFHWuk.js";import{_ as y,a as v,b as f,c as k,d as x,e as b,f as w,g as A,h as z,i as S,j as P,k as I,l as N,m as j,n as q,o as F,p as E,q as C,r as O,s as R,t as D,u as T,v as M,w as U,x as L,y as W,z as B,A as H,B as J,C as G,D as $,E as Y,F as V,G as K,H as Q,I as X,J as Z,K as tt,L as et,M as nt,O as ot,N as st,P as it,Q as at,R as lt,S as rt,T as ct,U as pt,V as dt,W as ut,X as ht,Y as mt,Z as _t,$ as gt,a0 as yt,a1 as vt,a2 as ft,a3 as kt,a4 as xt,a5 as bt,a6 as wt,a7 as At,a8 as zt,a9 as St,aa as Pt,ab as It,ac as Nt,ad as jt,ae as qt,af as Ft,ag as Et,ah as Ct,ai as Ot,aj as Rt,ak as Dt,al as Tt,am as Mt,an as Ut}from"./jaxrs-QTJkfshC.js";import{_ as Lt}from"./ai_en-t8P83za6.js";import{_ as Wt}from"./customToolbar_en-uL7XCggb.js";import{_ as Bt}from"./ignoreFiled_en-EyuGDq4I.js";import{_ as Ht}from"./toolwindowNew-QF7S_oTa.js";import{_ as Jt}from"./searchEveryWhere-Eoz90lA4.js";import{_ as Gt}from"./batchEdit_en-t1SH_gNl.js";import{_ as $t}from"./refreshProjectConfig-nDUALD3E.js";import{_ as Yt}from"./annualReport_en-i0ch6itR.js";import{_ as Vt,a as Kt}from"./projectLevelDomainDialog_en-qTkkzDKU.js";import{_ as Qt}from"./commonHeader-O9g0FG--.js";import{_ as Xt}from"./fullScreen-iCOWJbp4.js";import{_ as Zt}from"./clear-qHRgcLZS.js";import{_ as te,a as ee,b as ne}from"./showCommentInNavigate-eoTLjphJ.js";import{_ as oe}from"./console_en-BWfI2C_a.js";import{_ as se,a as ie}from"./scriptModule_en-G44xzFgb.js";import{_ as ae}from"./copyUrl-qs4zOYAL.js";import{b as le,a as re,_ as ce}from"./stopApi-fM6h6OKl.js";import{_ as pe}from"./batchExportApiDoc-XZ7l86Mn.js";import{_ as de}from"./groupSave_en-p1Ro7kOp.js";import{_ as ue}from"./tempSave_en-UAfESuzh.js";import{_ as he}from"./importByCurl_en-3-Qsaakd.js";import{_ as me}from"./history-jJ_6Nu4h.js";import{_ as _e}from"./rawHtmlPreview-k0XMOGO2.js";import{_ as ge}from"./projectConfigParam-_5a22Qyh.js";import{_ as ye}from"./navigate2CurrentMethod-91w29pZx.js";import{_ as ve}from"./shareApi_en-cvbZZWPP.js";import{_ as fe}from"./paramDescription-tGSx8XCt.js";import{_ as ke}from"./apiDocExample-I6FA1jbR.js";import{_ as xe}from"./apiPreview-TsYf71lp.js";import{_ as be}from"./exportImportApis-cRKbjcMp.js";import{_ as we}from"./export2postman-dEAWnBlR.js";import{_ as Ae}from"./apinav-gngrTEBb.js";import{_ as ze}from"./headerSwitch-6dFu89NK.js";import{_ as Se,a as Pe}from"./dropdownEnv-bZEd9SOg.js";import{_ as Ie,a as Ne}from"./json_en-sK6ZBB_5.js";import{_ as je}from"./moduleSearch-vDt27hRI.js";import{_ as qe,r as d,o as Fe,c as Ee,a as t,b as e,w as s,d as o,e as r}from"./app-8OZtYazS.js";const Ce="/img/2024.1.7/jsonFilterEn.png",Oe="/img/2024.1.5/addLibrary_en.png",Re="/img/2024.1.1/searchEveryWhere_en.png",De="/img/2023.2.3/environment_en.png",Te="/img/2023.1.9/environmentVariableEditRemoveModify_en.png",Me="/img/2023.1.8/methodDescriptionLength_en.png",Ue="/img/2022.2.9/animateConfig_en.png",Le="/img/2022.2.7/upgradeNotice_en.png",We="/img/generateSwitch_en.png",Be="/img/whatsnew_en.png",He={},Je={class:"hint-container important"},Ge=t("p",{class:"hint-container-title"},"Announcement",-1),$e=t("strong",null,"Paid vs Free",-1),Ye=t("strong",null,"Buy plugin",-1),Ve={href:"https://github.com/dromara/fast-request/issues",target:"_blank",rel:"noopener noreferrer"},Ke=t("p",null,"Join and follow us to solve your question ❤️❤️❤️↓↓↓",-1),Qe={href:"https://join.slack.com/t/restfulfastrequest/shared_invite/zt-1we57vum8-TALhTHI2uNmPF2bx1NDyWw",target:"_blank",rel:"noopener noreferrer"},Xe=t("img",{src:"https://img.shields.io/static/v1?label=Slack&message=Restful Fast Request&logo=slack&color=38B580",alt:"Slack",loading:"lazy"},null,-1),Ze={href:"https://twitter.com/FastRequest666",target:"_blank",rel:"noopener noreferrer"},tn=t("img",{src:"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34",alt:"twitter",loading:"lazy"},null,-1),en=t("tbody",null,[t("tr",null,[t("td",null,[t("img",{src:g,alt:"slack",loading:"lazy"})]),t("td",null,[t("img",{src:m,alt:"twitter",loading:"lazy"})])])],-1),nn=t("blockquote",null,[t("p",null,[t("strong",null,"Because developing version is still in development, the documentation of developing version may not be entirely accurate and is subject to change.")])],-1),on={id:"_2024-1-7",tabindex:"-1"},sn={class:"header-anchor",href:"#_2024-1-7"},an={class:"custom-container hint",style:{background:"#262626"}},ln={class:"custom-container-title"},rn=t("p",null,[o("Support environment value like "),t("code",null,"{{xx}}"),o(" and function value "),t("code",null,"{@functionName}"),o(" code completion")],-1),cn={class:"custom-container hint",style:{background:"#262626"}},pn={class:"custom-container-title"},dn=t("p",null,[t("img",{src:Ce,alt:"jsonFilter",loading:"lazy"})],-1),un=t("p",null,"When there are many fields in JSON, but only part of them are needed, this feature can help filter the JSON fields.",-1),hn={class:"custom-container hint",style:{background:"#262626"}},mn={class:"custom-container-title"},_n=t("p",null,[t("img",{src:y,alt:"header",loading:"lazy"})],-1),gn=t("p",null,[o("Code completion is supported for some common header keys, such as "),t("code",null,"Authorization")],-1),yn={class:"custom-container hint",style:{background:"#262626"}},vn={class:"custom-container-title"},fn=t("p",null,[t("img",{src:v,alt:"jsonFilter",loading:"lazy"})],-1),kn=t("p",null,"Multipart type fields can be set default path by this setting.",-1),xn={class:"custom-container hint",style:{background:"#262626"}},bn={class:"custom-container-title"},wn=t("p",null,[t("img",{src:f,alt:"searchEveryWhere",loading:"lazy"})],-1),An=t("p",null,"Optimized the collation for matching by URL path",-1),zn={id:"_2024-1-6-3",tabindex:"-1"},Sn={class:"header-anchor",href:"#_2024-1-6-3"},Pn={id:"_2024-1-6-2",tabindex:"-1"},In={class:"header-anchor",href:"#_2024-1-6-2"},Nn={class:"custom-container hint",style:{background:"#262626"}},jn={class:"custom-container-title"},qn=r(`

    Support the annotation like the following

    @Target(ElementType.TYPE)
    +@Retention(RetentionPolicy.RUNTIME)
    +@Documented
    +@RestController
    +@RequestMapping
    +public @interface CustomRestController {
    +
    +    @AliasFor(annotation = RequestMapping.class)
    +    String name() default "";
    +
    +    @AliasFor(annotation = RequestMapping.class)
    +    String[] value() default {};
    +}
    +
    `,2),Fn={id:"_2024-1-6",tabindex:"-1"},En={class:"header-anchor",href:"#_2024-1-6"},Cn={class:"custom-container hint",style:{background:"#262626"}},On={class:"custom-container-title"},Rn=t("code",null,"rapi",-1),Dn=t("strong",null,"Multi-tab window",-1),Tn={class:"custom-container hint",style:{background:"#262626"}},Mn={class:"custom-container-title"},Un=t("p",null,"Added support for mark APIs in the Apis tab, marking them with red highlight dots, and added mark Api searche condation. Developers can mark the important APIs to make them more visible",-1),Ln={class:"custom-container hint",style:{background:"#262626"}},Wn={class:"custom-container-title"},Bn=t("p",null,"Right-click option supports copying original URL",-1),Hn={class:"custom-container hint",style:{background:"#262626"}},Jn={class:"custom-container-title"},Gn=t("p",null,[t("img",{src:k,alt:"jsonPath",loading:"lazy"})],-1),$n=t("code",null,"Body->Raw",-1),Yn=t("code",null,"Response->Pretty",-1),Vn={href:"https://plugins.jetbrains.com/plugin/22044-jsonpath",target:"_blank",rel:"noopener noreferrer"},Kn={id:"_2024-1-5-1",tabindex:"-1"},Qn={class:"header-anchor",href:"#_2024-1-5-1"},Xn={id:"_2024-1-5",tabindex:"-1"},Zn={class:"header-anchor",href:"#_2024-1-5"},to={class:"custom-container hint",style:{background:"#262626"}},eo={class:"custom-container-title"},no=t("p",null,[t("img",{src:Oe,alt:"",loading:"lazy"})],-1),oo={href:"https://www.jetbrains.com/help/idea/auto-completing-code.html",target:"_blank",rel:"noopener noreferrer"},so={class:"custom-container hint",style:{background:"#262626"}},io={class:"custom-container-title"},ao=t("p",null,[t("img",{src:x,alt:"",loading:"lazy"})],-1),lo=t("p",null,"The drop-down box uses a more clear English type and uses different colors to distinguish different types.",-1),ro={class:"custom-container hint",style:{background:"#262626"}},co={class:"custom-container-title"},po=t("p",null,[t("img",{src:b,alt:"",loading:"lazy"})],-1),uo=t("p",null,"Url in run tab, and APIs tab is displayed as the original URL, the path parameters will no longer replace.",-1),ho={class:"custom-container hint",style:{background:"#262626"}},mo={class:"custom-container-title"},_o=t("p",null,"Url is the same, but the method type (Get, Post, etc.) is different, the binding pairs are optimized so that they can match correctly.",-1),go={id:"_2024-1-4",tabindex:"-1"},yo={class:"header-anchor",href:"#_2024-1-4"},vo={class:"custom-container hint",style:{background:"#262626"}},fo={class:"custom-container-title"},ko=t("p",null,[o("Apifox integration supports synchronization of APIs, environment variables, domain name information, etc. Just configure an "),t("code",null,"API key"),o(" and set the project mapping relationship to synchronize.")],-1),xo={class:"custom-container hint",style:{background:"#262626"}},bo={class:"custom-container-title"},wo=r('

    AI

    In order to make AI's responses more accurate, we have made AI settings more refined and added 3 dimensions: SummaryExample questionExample question's answer. This design allows the AI to train a question and answer session so that the results are more in line with expectations.

    We can try to express various possibilities of the question in the Summary, and the give an example in Example question and Example question's answer.

    ',3),Ao=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`You are an excellent JSON handler. Whenever a user sends you a JSON, you should respond to +the user in a fixed JSON formatand replace the values in the JSON fields with +human-readable content according to the meaning of the JSON keys. You will only modify +the values in the JSON without changing its structure. +`)])],-1),zo=t("div",{class:"language-json","data-ext":"json","data-title":"json"},[t("pre",{class:"language-json"},[t("code",null,[t("span",{class:"token punctuation"},"{"),o(),t("span",{class:"token property"},'"id"'),t("span",{class:"token operator"},":"),o(),t("span",{class:"token number"},"1"),t("span",{class:"token punctuation"},","),o(),t("span",{class:"token property"},'"title"'),t("span",{class:"token operator"},":"),o(),t("span",{class:"token string"},'"title_ahska"'),t("span",{class:"token punctuation"},","),o(),t("span",{class:"token property"},'"simpleDesc"'),t("span",{class:"token operator"},":"),o(),t("span",{class:"token string"},'"simpleDesc_ohga1"'),o(),t("span",{class:"token punctuation"},"}"),o(` +`)])])],-1),So=t("div",{class:"language-json","data-ext":"json","data-title":"json"},[t("pre",{class:"language-json"},[t("code",null,[t("span",{class:"token punctuation"},"{"),o(` + `),t("span",{class:"token property"},'"id"'),t("span",{class:"token operator"},":"),o(),t("span",{class:"token number"},"1"),t("span",{class:"token punctuation"},","),o(` + `),t("span",{class:"token property"},'"title"'),t("span",{class:"token operator"},":"),o(),t("span",{class:"token string"},`"Harry Potter and the Philosopher's Stone"`),t("span",{class:"token punctuation"},","),o(` + `),t("span",{class:"token property"},'"simpleDesc"'),t("span",{class:"token operator"},":"),o(),t("span",{class:"token string"},'"Join Harry Potter on a thrilling adventure at Hogwarts School of Witchcraft and Wizardry as he uncovers dangerous secrets and saves the rewarding world."'),o(` +`),t("span",{class:"token punctuation"},"}"),o(` +`)])])],-1),Po={class:"custom-container hint",style:{background:"#262626"}},Io={class:"custom-container-title"},No=t("p",null,[t("img",{src:w,alt:"Header",loading:"lazy"})],-1),jo=t("li",null,[o("The variable "),t("code",null,"moduleHeader"),o(" in the pre-script and post-script is changed to "),t("code",null,"apiHeader"),o(".")],-1),qo={class:"custom-container hint",style:{background:"#262626"}},Fo={class:"custom-container-title"},Eo=t("p",null,"在去除域名后,如果 Url 与项目中方法的 Url 一致则自动绑定。",-1),Co={id:"_2024-1-3",tabindex:"-1"},Oo={class:"header-anchor",href:"#_2024-1-3"},Ro={class:"custom-container hint",style:{background:"#262626"}},Do={class:"custom-container-title"},To=t("p",null,"Added three forms of AI support: OpenAi, CodeGeeX, and Private deployment AI. Through prompt, selected text can be replaced with another text.",-1),Mo=t("p",null,[o("AI action has added the following tabs: "),t("code",null,"Body -> JSON"),o(", "),t("code",null,"Body -> Form URL-Encoded -> Text"),o(","),t("code",null,"URL Params -> Text")],-1),Uo={id:"_2024-1-2-1",tabindex:"-1"},Lo={class:"header-anchor",href:"#_2024-1-2-1"},Wo={id:"_2024-1-2",tabindex:"-1"},Bo={class:"header-anchor",href:"#_2024-1-2"},Ho={class:"custom-container hint",style:{background:"#262626"}},Jo={class:"custom-container-title"},Go=t("p",null,[t("img",{src:Wt,alt:"customToolbar",loading:"lazy"})],-1),$o=t("p",null,"Using the custom toolbar option, select the functionalities you want to use and hide other function buttons. Then restart IDEA.",-1),Yo={id:"_2024-1-1",tabindex:"-1"},Vo={class:"header-anchor",href:"#_2024-1-1"},Ko={class:"custom-container hint",style:{background:"#262626"}},Qo={class:"custom-container-title"},Xo=t("p",null,[t("img",{src:Re,alt:"searchEveryWhere",loading:"lazy"})],-1),Zo=t("p",null,"Support enters the class name where the Url is located to search for all APIs under this class.",-1),ts={class:"custom-container hint",style:{background:"#262626"}},es={class:"custom-container-title"},ns=t("p",null,"When Project is opened by default, the .fastRequest directory will no longer be generated. Only when you operate plugin, it will be generated.",-1),os={class:"custom-container hint",style:{background:"#262626"}},ss={class:"custom-container-title"},is=t("p",null,[t("img",{src:Bt,alt:"ignoreFiled",loading:"lazy"})],-1),as=t("p",null,"Only need to add field names in the configuration to ignore target fields in the entity class.",-1),ls={class:"custom-container hint",style:{background:"#262626"}},rs={class:"custom-container-title"},cs=t("p",null,"You can quickly open the Apis and Navigate window to view information through shortcut keys. When the window is open, press ESC to close the window.",-1),ps={class:"custom-container hint",style:{background:"#262626"}},ds={class:"custom-container-title"},us=t("p",null,[t("img",{src:A,alt:"manualUpdateCheck",loading:"lazy"})],-1),hs=t("p",null,"Click to check for plugin updates",-1),ms={class:"custom-container hint",style:{background:"#262626"}},_s={class:"custom-container-title"},gs=t("p",null,"The SearchEveryWhere search logic has been optimized to greatly improve the search performance of large projects.",-1),ys=t("p",null,"We tested a project with 7000 APIs and the search response was very fast",-1),vs={class:"custom-container hint",style:{background:"#262626"}},fs={class:"custom-container-title"},ks=t("p",null,"Content-Disposition supports the following 2 formats, and also supports file name transcoding.",-1),xs=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`Content-Disposition:attachment; filename*=UTF-8''fastRequest%20.txt +Content-Disposition:attachment; filename=fastRequest.txt +`)])],-1),bs={id:"_2023-2-3-1",tabindex:"-1"},ws={class:"header-anchor",href:"#_2023-2-3-1"},As={id:"_2023-2-3",tabindex:"-1"},zs={class:"header-anchor",href:"#_2023-2-3"},Ss={class:"custom-container hint",style:{background:"#262626"}},Ps={class:"custom-container-title"},Is=t("p",null,"You only need to configure the token of Postman and the ID of the workspace to upload the API to Postman.Enjoy what fast request do not support.",-1),Ns=t("p",null,[o("To make the data synchronised to Postman more complete, it is recommended to select the "),t("code",null,"sync after API save"),o(" option in the Postman config of the plugin then trigger the synchronisation by saving the API.")],-1),js={class:"custom-container hint",style:{background:"#262626"}},qs={class:"custom-container-title"},Fs=t("p",null,"When generating parameters for APIs under different modules, if auto domain name is enabled, the project name drop-down box will automatically switch",-1),Es={class:"custom-container hint",style:{background:"#262626"}},Cs={class:"custom-container-title"},Os=t("p",null,[t("img",{src:De,alt:"environment",loading:"lazy"})],-1),Rs=t("p",null,[o("Environment contains Current value and Initial value. Initial value can be shared by submitting config fine in "),t("code",null,".fastRequest/config/fastRequestCurrentProjectEnvironment.json"),o(".")],-1),Ds={class:"custom-container hint",style:{background:"#262626"}},Ts={class:"custom-container-title"},Ms=t("p",null,"The module name is automatically recognized as a drop-down box option, and you can also customize it.",-1),Us=t("p",null,[t("img",{src:z,alt:"projectName",loading:"lazy"})],-1),Ls={class:"custom-container hint",style:{background:"#262626"}},Ws={class:"custom-container-title"},Bs=r(`

    To ignore parsing for entity field, you can add @fast Request Parse Ignore to the annotation. The original annotation @parse Ignore is still applicable.

    /**
    + * xxx description
    + * @fastRequestParseIgnore
    + */
    +private String someIgnoreField ;
    +
    `,2),Hs={id:"_2023-2-2",tabindex:"-1"},Js={class:"header-anchor",href:"#_2023-2-2"},Gs={class:"custom-container hint",style:{background:"#262626"}},$s={class:"custom-container-title"},Ys={class:"custom-container hint",style:{background:"#262626"}},Vs={class:"custom-container-title"},Ks=t("p",null,[t("img",{src:S,alt:"json5",loading:"lazy"}),o(" JSON5 format support for Request body, JSON field comment support")],-1),Qs={id:"_2023-2-1-1",tabindex:"-1"},Xs={class:"header-anchor",href:"#_2023-2-1-1"},Zs={id:"_2023-2-1",tabindex:"-1"},ti={class:"header-anchor",href:"#_2023-2-1"},ei={class:"custom-container hint",style:{background:"#262626"}},ni={class:"custom-container-title"},oi=t("p",null,[t("img",{src:P,alt:"urlInputWithMethod",loading:"lazy"}),o(" Simplify the three horizontal components of the old version (method drop-down box, url input box, and response drop-down box) into one, and remove the response drop-down box to increase simplicity.")],-1),si={class:"custom-container hint",style:{background:"#262626"}},ii={class:"custom-container-title"},ai=t("p",null,[t("img",{src:I,alt:"openDoc",loading:"lazy"})],-1),li={class:"custom-container hint",style:{background:"#262626"}},ri={class:"custom-container-title"},ci=t("p",null,[t("img",{src:N,alt:"openDoc",loading:"lazy"})],-1),pi={class:"custom-container hint",style:{background:"#262626"}},di={class:"custom-container-title"},ui=t("p",null,[t("img",{src:j,alt:"pluginVersion",loading:"lazy"})],-1),hi={id:"_2023-1-9",tabindex:"-1"},mi={class:"header-anchor",href:"#_2023-1-9"},_i={class:"custom-container hint",style:{background:"#262626"}},gi={class:"custom-container-title"},yi=t("p",null,[t("img",{src:q,alt:"quickAddEnvironmentVariable",loading:"lazy"}),o(' Click the "Add" button to select a line and add it to the environment variables, which can quickly save the variable to the current Env.')],-1),vi={class:"custom-container hint",style:{background:"#262626"}},fi={class:"custom-container-title"},ki=t("p",null,[t("img",{src:Te,alt:"environmentVariableEditRemoveModify",loading:"lazy"})],-1),xi={class:"custom-container hint",style:{background:"#262626"}},bi={class:"custom-container-title"},wi=t("p",null,[t("img",{src:F,alt:"showApis",loading:"lazy"}),o(" Right-click in the Controller in any position to invoke "),t("code",null,"Generate"),o(", choose"),t("code",null,"Show apis"),o(" , all APIs in the current controller can be displayed.")],-1),Ai={class:"custom-container hint",style:{background:"#262626"}},zi={class:"custom-container-title"},Si=t("p",null,[t("img",{src:E,alt:"responseSize.png",loading:"lazy"})],-1),Pi={id:"_2023-1-8",tabindex:"-1"},Ii={class:"header-anchor",href:"#_2023-1-8"},Ni={class:"custom-container hint",style:{background:"#262626"}},ji={class:"custom-container-title"},qi={class:"custom-container hint",style:{background:"#262626"}},Fi={class:"custom-container-title"},Ei=t("p",null,[t("img",{src:Me,alt:"methodDescriptionLength",loading:"lazy"})],-1),Ci=t("p",null,"You can truncate the method description process when the method name is too long, resulting in display or data saving.",-1),Oi=t("p",null,[o("Such as in "),t("code",null,"SearchEveryWhere")],-1),Ri={id:"_2023-1-7-1",tabindex:"-1"},Di={class:"header-anchor",href:"#_2023-1-7-1"},Ti={class:"custom-container hint",style:{background:"#262626"}},Mi={class:"custom-container-title"},Ui=t("p",null,[t("img",{src:C,alt:"searchEveryWhere",loading:"lazy"}),o(" After select Auto-generate icon, you can echo or automatically generate API-related URLs and parameter in SearchEveryWhere")],-1),Li={class:"custom-container hint",style:{background:"#262626"}},Wi={class:"custom-container-title"},Bi=t("p",null,[o("Add a config "),t("code",null,"Show main tool window when action trigger"),o(" in "),t("code",null,"Setting->Request Fast Request->Other config"),o(".")],-1),Hi={class:"custom-container hint",style:{background:"#262626"}},Ji={class:"custom-container-title"},Gi=t("p",null,[o("Parsing optimization for the input parameters with "),t("code",null,"@RequestBody Setset"),o(". By default, strings are enclosed in double quotation marks.")],-1),$i=t("div",{class:"language-java","data-ext":"java","data-title":"java"},[t("pre",{class:"language-java"},[t("code",null,[t("span",{class:"token annotation punctuation"},"@PostMapping"),t("span",{class:"token punctuation"},"("),t("span",{class:"token string"},'"test3"'),t("span",{class:"token punctuation"},")"),o(` +`),t("span",{class:"token keyword"},"public"),o(),t("span",{class:"token class-name"},"Set"),t("span",{class:"token generics"},[t("span",{class:"token punctuation"},"<"),t("span",{class:"token class-name"},"String"),t("span",{class:"token punctuation"},">")]),o(),t("span",{class:"token function"},"test3"),t("span",{class:"token punctuation"},"("),t("span",{class:"token annotation punctuation"},"@RequestBody"),o(),t("span",{class:"token class-name"},"Set"),t("span",{class:"token generics"},[t("span",{class:"token punctuation"},"<"),t("span",{class:"token class-name"},"String"),t("span",{class:"token punctuation"},">")]),o("set"),t("span",{class:"token punctuation"},")"),o(),t("span",{class:"token punctuation"},"{"),o(` + `),t("span",{class:"token keyword"},"return"),o(" set"),t("span",{class:"token punctuation"},";"),o(` +`),t("span",{class:"token punctuation"},"}"),o(` +`)])])],-1),Yi={id:"_2023-1-7",tabindex:"-1"},Vi={class:"header-anchor",href:"#_2023-1-7"},Ki={class:"custom-container hint",style:{background:"#262626"}},Qi={class:"custom-container-title"},Xi=t("p",null,[t("img",{src:Ht,alt:"toolwindowNew",loading:"lazy"})],-1),Zi={class:"custom-container hint",style:{background:"#262626"}},ta={class:"custom-container-title"},ea=t("p",null,[t("img",{src:Jt,alt:"searchEveryWhere",loading:"lazy"}),o(" Add "),t("code",null,"module"),o("、"),t("code",null,"methodType"),o("、"),t("code",null,"library"),o(" condition")],-1),na={class:"custom-container hint",style:{background:"#262626"}},oa={class:"custom-container-title"},sa={href:"https://join.slack.com/t/restfulfastrequest/shared_invite/zt-1we57vum8-TALhTHI2uNmPF2bx1NDyWw",target:"_blank",rel:"noopener noreferrer"},ia=t("img",{src:"https://img.shields.io/static/v1?label=Slack&message=Restful Fast Request&logo=slack&color=38B580",alt:"Slack",loading:"lazy"},null,-1),aa=t("p",null,"We will help you solve your problems. Thanks!",-1),la={class:"custom-container hint",style:{background:"#262626"}},ra={class:"custom-container-title"},ca=r('

    You can also change it in setting -> Restful Fast Request -> Use compact http icon

    MethodNew IconOld Icon
    Getget_darkget_dark
    Postpost_darkpost_dark
    Deletedelete_darkdelete_dark
    Putput_darkput_dark
    Patchpatch_darkpatch_dark
    ',2),pa={class:"custom-container hint",style:{background:"#262626"}},da={class:"custom-container-title"},ua=t("p",null,[t("img",{src:O,alt:"fieldDup",loading:"lazy"}),o(" Support field line duplicate, mark key end with "),t("code",null,"-dup"),o(" for duplicate key, plugin will do not change key for collection field, developers need to modify manually.")],-1),ha={id:"_2023-1-6",tabindex:"-1"},ma={class:"header-anchor",href:"#_2023-1-6"},_a={class:"custom-container hint",style:{background:"#262626"}},ga={class:"custom-container-title"},ya=t("p",null,[t("img",{src:Gt,alt:"batchEdit",loading:"lazy"})],-1),va={id:"_2023-1-5",tabindex:"-1"},fa={class:"header-anchor",href:"#_2023-1-5"},ka={class:"custom-container hint",style:{background:"#262626"}},xa={class:"custom-container-title"},ba=t("p",null,[t("img",{src:R,alt:"editorAction",loading:"lazy"}),o(" Move from the original button where it is easy to block the text to the upper right corner of the editor")],-1),wa=t("div",{class:"hint-container caution"},[t("p",{class:"hint-container-title"},"SearchEveryWhere style confusion"),t("p",null,"This issue accompanies many versions and this version completely fixes it."),t("p",null,"SearchEveryWhere, from now on, will not have the problem of the tab width increasing and causing the tab to not be fully displayed.")],-1),Aa={id:"v2023-1-4-2",tabindex:"-1"},za={class:"header-anchor",href:"#v2023-1-4-2"},Sa={id:"v2023-1-4-1",tabindex:"-1"},Pa={class:"header-anchor",href:"#v2023-1-4-1"},Ia={id:"v2023-1-4",tabindex:"-1"},Na={class:"header-anchor",href:"#v2023-1-4"},ja={class:"custom-container hint",style:{background:"#262626"}},qa={class:"custom-container-title"},Fa={id:"v2023-1-3-2",tabindex:"-1"},Ea={class:"header-anchor",href:"#v2023-1-3-2"},Ca={class:"custom-container hint",style:{background:"#262626"}},Oa={class:"custom-container-title"},Ra=t("img",{src:D,alt:"ai",loading:"lazy"},null,-1),Da={href:"https://platform.openai.com/docs/api-reference/chat",target:"_blank",rel:"noopener noreferrer"},Ta={class:"custom-container hint",style:{background:"#262626"}},Ma={class:"custom-container-title"},Ua=t("p",null,[t("img",{src:T,alt:"jumpToJsonData",loading:"lazy"})],-1),La=t("p",null,[t("img",{src:M,alt:"jump from apis",loading:"lazy"}),o(" Implementation of the API and the saved json data for associative jumping")],-1),Wa={class:"custom-container hint",style:{background:"#262626"}},Ba={class:"custom-container-title"},Ha=t("p",null,[t("img",{src:$t,alt:"refreshProjectConfig",loading:"lazy"}),o(" When the configuration file is updated, this function allows the UI to refresh the configuration as well.")],-1),Ja={class:"custom-container hint",style:{background:"#262626"}},Ga={class:"custom-container-title"},$a={class:"custom-container hint",style:{background:"#262626"}},Ya={class:"custom-container-title"},Va=t("p",null,[t("img",{src:U,alt:"apiSyncSupportBranch",loading:"lazy"}),o(" Support custom branch, as in some cases the 'master' branch is protected and does not allow push")],-1),Ka={class:"custom-container hint",style:{background:"#262626"}},Qa={class:"custom-container-title"},Xa=t("p",null,[t("img",{src:L,alt:"htoolbar",loading:"lazy"})],-1),Za=t("p",null,[t("img",{src:W,alt:"vtoolbar",loading:"lazy"})],-1),tl=t("p",null,[t("img",{src:B,alt:"toolbarSetting",loading:"lazy"})],-1),el=t("ol",null,[t("li",null,"Add vertical toolbar support."),t("li",null,"Button position adjustment")],-1),nl={class:"custom-container hint",style:{background:"#262626"}},ol={class:"custom-container-title"},sl=t("p",null,[t("img",{src:H,alt:"toolbar",loading:"lazy"}),o(" Rounded corners and adjusted background colour for icons.")],-1),il={id:"v2023-1-2",tabindex:"-1"},al={class:"header-anchor",href:"#v2023-1-2"},ll={class:"custom-container hint",style:{background:"#262626"}},rl={class:"custom-container-title"},cl=t("p",null,[t("img",{src:J,alt:"imageRender",loading:"lazy"}),o(" Automatically render images for requests that respond to image.")],-1),pl={class:"custom-container hint",style:{background:"#262626"}},dl={class:"custom-container-title"},ul=t("p",null,[t("img",{src:Yt,alt:"annualReport",loading:"lazy"}),o(" Statistics for previous years of operation.")],-1),hl={class:"custom-container hint",style:{background:"#262626"}},ml={class:"custom-container-title"},_l=r(`

    Optimised the final result of url splicing against variables. For example, splicing several variables finally calculates a url

    Plugin will calculate final url to /test/a.htm

    public class MyConstant {
    +  public static final String MODULE_NAME = "a";
    +  public static final String DYNAMIC_WEB_SUFFIX = ".htm";
    +  public static final String REPAYMENT_REPAY = MODULE_NAME + DYNAMIC_WEB_SUFFIX;
    +}
    +@PostMapping(MyConstant.REPAYMENT_REPAY)
    +  public String test2() {
    +  return "";
    +}
    +
    `,3),gl={class:"custom-container hint",style:{background:"#262626"}},yl={class:"custom-container-title"},vl=t("ol",null,[t("li",null,[o("automatic parsing of query param into "),t("code",null,"Url params"),o(" tab page")]),t("li",null,"json parsing optimization"),t("li",null,"Known bug fixes")],-1),fl={class:"custom-container hint",style:{background:"#262626"}},kl={class:"custom-container-title"},xl=t("p",null,"We have done some optimization, no longer need to encode special characters in url params.",-1),bl={class:"custom-container hint",style:{background:"#262626"}},wl={class:"custom-container-title"},Al=t("p",null,[o("Add "),t("code",null,"Enter"),o(" key listener to url field that can send the request.")],-1),zl={id:"v2023-1-1",tabindex:"-1"},Sl={class:"header-anchor",href:"#v2023-1-1"},Pl={class:"custom-container hint",style:{background:"#262626"}},Il={class:"custom-container-title"},Nl=t("p",null,[t("img",{src:Vt,alt:"projectLevelDomainConfig",title:"Domain config",loading:"lazy"})],-1),jl=t("img",{src:Kt,alt:"projectLevelDomainDialog",title:"Domain list",loading:"lazy"},null,-1),ql=t("code",null,"yml",-1),Fl=t("code",null,"properties",-1),El={class:"custom-container hint",style:{background:"#262626"}},Cl={class:"custom-container-title"},Ol=t("p",null,"The buttons have been categorised to make it easier for developers to find and understand the function of the corresponding button.",-1),Rl={class:"custom-container hint",style:{background:"#262626"}},Dl={class:"custom-container-title"},Tl=t("p",null,"The clarity of the tool window icons has been optimised under the new UI.",-1),Ml={id:"v2022-3-1",tabindex:"-1"},Ul={class:"header-anchor",href:"#v2022-3-1"},Ll={class:"custom-container hint",style:{background:"#262626"}},Wl={class:"custom-container-title"},Bl=r(`

    The following code, the plugin will ignore parsing this field. Please use @parseIgnore

    /**
    + * xxx description
    + * @parseIgnore
    + */
    +private String someIgnoreField ;
    +
    `,2),Hl={class:"custom-container hint",style:{background:"#262626"}},Jl={class:"custom-container-title"},Gl=t("p",null,[o("You can get the current domain link in the Script through "),t("code",null,"rfr.currentDomain")],-1),$l={id:"v2022-2-9",tabindex:"-1"},Yl={class:"header-anchor",href:"#v2022-2-9"},Vl={class:"custom-container hint",style:{background:"#262626"}},Kl={class:"custom-container-title"},Ql=t("img",{src:Ue,alt:"animateConfig",loading:"lazy"},null,-1),Xl={id:"v2022-2-8",tabindex:"-1"},Zl={class:"header-anchor",href:"#v2022-2-8"},tr={class:"custom-container hint",style:{background:"#262626"}},er={class:"custom-container-title"},nr=t("p",null,[o("When response contains "),t("code",null,"content-disposition:attachment"),o(", click send will automatically adapt the download")],-1),or={id:"v2022-2-7",tabindex:"-1"},sr={class:"header-anchor",href:"#v2022-2-7"},ir={class:"custom-container hint",style:{background:"#262626"}},ar={class:"custom-container-title"},lr=t("div",{class:"hint-container tip"},[t("p",{class:"hint-container-title"},"Api doc show return type document"),t("p",null,[t("img",{src:G,alt:"returnValueDoc",loading:"lazy"})])],-1),rr={class:"custom-container hint",style:{background:"#262626"}},cr={class:"custom-container-title"},pr=t("p",null,[t("img",{src:Le,alt:"upgradeNotice",loading:"lazy"})],-1),dr=t("p",null,[o("Change from an explicit dialog box to a notification, at the same time automatic updates have been changed to "),t("mark",null,"turn on"),o(", if you want to turn it off, please go to the configuration page and turn it off manually. But I recommend "),t("mark",null,"turning it on"),o(", so that you can receive updates in time.")],-1),ur=t("p",null,"Note that the previous version of the update will still be a pop-up dialog, this version onwards will be a message notification.",-1),hr={class:"custom-container hint",style:{background:"#262626"}},mr={class:"custom-container-title"},_r=t("img",{src:Qt,alt:"commonHeader",loading:"lazy"},null,-1),gr={class:"custom-container hint",style:{background:"#262626"}},yr={class:"custom-container-title"},vr=t("img",{src:Xt,alt:"fullScreen",loading:"lazy"},null,-1),fr={class:"custom-container hint",style:{background:"#262626"}},kr={class:"custom-container-title"},xr=t("p",null,[t("img",{src:$,alt:"fullScreen",loading:"lazy"})],-1),br={id:"v2022-2-6",tabindex:"-1"},wr={class:"header-anchor",href:"#v2022-2-6"},Ar={class:"custom-container hint",style:{background:"#262626"}},zr={class:"custom-container-title"},Sr=t("p",null,[t("img",{src:Zt,alt:"clear",loading:"lazy"}),o(" clear all")],-1),Pr=t("p",null,[t("img",{src:Y,alt:"clearColumnValue",loading:"lazy"}),o(" batch clean column value")],-1),Ir={class:"custom-container hint",style:{background:"#262626"}},Nr={class:"custom-container-title"},jr=t("p",null,[t("img",{src:te,alt:"showCommentConfig",loading:"lazy"}),t("img",{src:ee,alt:"showCommentInClass",loading:"lazy"}),t("img",{src:ne,alt:"showCommentInNavigate",loading:"lazy"})],-1),qr={class:"custom-container hint",style:{background:"#262626"}},Fr={class:"custom-container-title"},Er=t("p",null,[t("img",{src:V,alt:"sortColumn",loading:"lazy"})],-1),Cr={id:"v2022-2-5-2",tabindex:"-1"},Or={class:"header-anchor",href:"#v2022-2-5-2"},Rr={id:"v2022-2-5-1",tabindex:"-1"},Dr={class:"header-anchor",href:"#v2022-2-5-1"},Tr={id:"v2022-2-5",tabindex:"-1"},Mr={class:"header-anchor",href:"#v2022-2-5"},Ur={class:"custom-container hint",style:{background:"#262626"}},Lr={class:"custom-container-title"},Wr=t("p",null,[t("img",{src:oe,alt:"console",loading:"lazy"}),o(" Console helps developers print some info you wanted")],-1),Br={class:"custom-container hint",style:{background:"#262626"}},Hr={class:"custom-container-title"},Jr=t("p",null,"You can use these 2 variables for some judgment",-1),Gr={class:"custom-container hint",style:{background:"#262626"}},$r={class:"custom-container-title"},Yr=t("p",null,[t("img",{src:K,alt:"parseDocDesc",loading:"lazy"}),o(" Parse parameter comments in the form of Javadoc, suitable for path parameters and request param is a parameter of non-entity class")],-1),Vr={class:"custom-container hint",style:{background:"#262626"}},Kr={class:"custom-container-title"},Qr=t("p",null,"If you have a Twitter account, please follow me, thank you",-1),Xr=t("p",null,[t("img",{src:m,alt:"",loading:"lazy"})],-1),Zr=t("p",null,[t("img",{src:Q,alt:"twitterAction",loading:"lazy"})],-1),tc={id:"v2022-2-4-1",tabindex:"-1"},ec={class:"header-anchor",href:"#v2022-2-4-1"},nc={id:"v2022-2-4",tabindex:"-1"},oc={class:"header-anchor",href:"#v2022-2-4"},sc={class:"custom-container hint",style:{background:"#262626"}},ic={class:"custom-container-title"},ac=t("p",null,"Developers can freely choose and switch the color you want in the drop-down box, and can make it moving",-1),lc={class:"custom-container hint",style:{background:"#262626"}},rc={class:"custom-container-title"},cc=t("p",null,[t("img",{src:X,alt:"dateTimeFormat",loading:"lazy"})],-1),pc={class:"custom-container hint",style:{background:"#262626"}},dc={class:"custom-container-title"},uc=t("p",null,[t("img",{src:Z,alt:"baseController",loading:"lazy"})],-1),hc={class:"custom-container hint",style:{background:"#262626"}},mc={class:"custom-container-title"},_c=t("p",null,[t("img",{src:tt,alt:"autoUpdate",loading:"lazy"}),o(" If you don't need to receive automatic updates, you can turn it off and update it manually (recommend open)")],-1),gc={id:"v2022-2-3-1",tabindex:"-1"},yc={class:"header-anchor",href:"#v2022-2-3-1"},vc={id:"v2022-2-3",tabindex:"-1"},fc={class:"header-anchor",href:"#v2022-2-3"},kc={class:"custom-container hint",style:{background:"#262626"}},xc={class:"custom-container-title"},bc=t("p",null,[t("img",{src:se,alt:"scriptProject",loading:"lazy"})],-1),wc=t("p",null,[t("img",{src:ie,alt:"scriptModule",loading:"lazy"})],-1),Ac={class:"custom-container hint",style:{background:"#262626"}},zc={class:"custom-container-title"},Sc=t("p",null,[t("img",{src:ae,alt:"copyUrl",loading:"lazy"})],-1),Pc={class:"custom-container hint",style:{background:"#262626"}},Ic={class:"custom-container-title"},Nc=t("p",null,[o("Before "),t("mark",null,"2022.2.3"),o(", when entering the parameters in the table, if the cursor is still inside the table, click the action button at this time, and in some scenarios, an error will be reported or the value cannot be modified, and the problem is solved in this version.")],-1),jc={id:"v2022-2-2",tabindex:"-1"},qc={class:"header-anchor",href:"#v2022-2-2"},Fc={class:"custom-container hint",style:{background:"#262626"}},Ec={class:"custom-container-title"},Cc=t("p",null,[t("img",{src:le,alt:"stopApi",loading:"lazy"})],-1),Oc={class:"custom-container hint",style:{background:"#262626"}},Rc={class:"custom-container-title"},Dc=t("p",null,[t("img",{src:pe,alt:"batchExportApiDoc",loading:"lazy"})],-1),Tc={id:"v2022-2-1",tabindex:"-1"},Mc={class:"header-anchor",href:"#v2022-2-1"},Uc={class:"custom-container hint",style:{background:"#262626"}},Lc={class:"custom-container-title"},Wc=t("p",null,"Purpose: Save parameters of different combinations under one API",-1),Bc=t("p",null,[t("mark",null,"The original save operation will be classified into the Default group by default")],-1),Hc=t("p",null,[o("How to:After entering the parameters, click "),t("mark",null,"Save group param request")],-1),Jc=t("p",null,[t("img",{src:de,alt:"groupSave",loading:"lazy"})],-1),Gc=t("p",null,[t("strong",null,"Toggle parameter")],-1),$c=t("p",null,"The following is the query of the book list in 3 languages",-1),Yc=t("p",null,[t("img",{src:re,alt:"apiParamGroup",loading:"lazy"})],-1),Vc={class:"custom-container hint",style:{background:"#262626"}},Kc={class:"custom-container-title"},Qc=t("p",null,[t("img",{src:ue,alt:"tempSave",loading:"lazy"})],-1),Xc=t("p",null,"Purpose: Save any request that does not belong to this project for temporary invocation, not associated with the current project code",-1),Zc=t("p",null,[o("The Url of the Request saved by the temporary request must start with "),t("mark",null,"http"),o(" or "),t("mark",null,"https")],-1),tp={class:"custom-container hint",style:{background:"#262626"}},ep={class:"custom-container-title"},np=t("p",null,[t("img",{src:he,alt:"importByCurl",loading:"lazy"})],-1),op=t("p",null,[t("mark",null,"Note that if you need to bind a method, you need to place the cursor on the method name")],-1),sp={class:"custom-container hint",style:{background:"#262626"}},ip={class:"custom-container-title"},ap=t("p",null,[t("img",{src:et,alt:"responseHeader",loading:"lazy"})],-1),lp={class:"custom-container hint",style:{background:"#262626"}},rp={class:"custom-container-title"},cp=t("p",null,[t("img",{src:nt,alt:"responseHeader",loading:"lazy"})],-1),pp=t("p",null,"Purpose: Some requests need to add .do at the end of the url",-1),dp={class:"custom-container hint",style:{background:"#262626"}},up={class:"custom-container-title"},hp=t("p",null,[o("Optimized parsing of "),t("code",null,"List")],-1),mp={id:"v2022-1-10",tabindex:"-1"},_p={class:"header-anchor",href:"#v2022-1-10"},gp={class:"custom-container hint",style:{background:"#262626"}},yp={class:"custom-container-title"},vp=t("p",null,[t("img",{src:me,alt:"history",loading:"lazy"}),o(" Hidden skills: Double-click the record to display details")],-1),fp={class:"custom-container hint",style:{background:"#262626"}},kp={class:"custom-container-title"},xp=t("p",null,[t("img",{src:ot,alt:"searchEveryWhereDescription",loading:"lazy"}),o(" Support description search API")],-1),bp={class:"custom-container hint",style:{background:"#262626"}},wp={class:"custom-container-title"},Ap=t("p",null,[t("img",{src:st,alt:"timeoutSetting",loading:"lazy"}),o(" Default value: 60 seconds")],-1),zp={class:"custom-container hint",style:{background:"#262626"}},Sp={class:"custom-container-title"},Pp=t("ul",null,[t("li",null,[o("Shortcut key conflict optimization "),t("ul",null,[t("li",null,"Added Shift to the three shortcut keys for opening windows")])]),t("li",null,[o("Text editor character display cursor positioning optimization "),t("ul",null,[t("li",null,"When the text editor generates a string, it focuses on the first line by default")])])],-1),Ip={id:"v2022-1-9",tabindex:"-1"},Np={class:"header-anchor",href:"#v2022-1-9"},jp={class:"custom-container hint",style:{background:"#262626"}},qp={class:"custom-container-title"},Fp=t("p",null,[t("img",{src:it,alt:"toolwindowShortcut",loading:"lazy"}),o(" Provides shortcut keys to jump quickly, you can change it in "),t("code",null,"setting -> Keymap")],-1),Ep={class:"custom-container hint",style:{background:"#262626"}},Cp={class:"custom-container-title"},Op=t("p",null,[t("img",{src:at,alt:"autoStoreCookie",loading:"lazy"}),o(" Then automatically stored in == project global parameters == If enable this configuration,cookie will automatically store in "),t("mark",null,"Project Global Config"),o(" -> "),t("code",null,"cookies"),o(",This configuration is enabled by default.")],-1),Rp={class:"custom-container hint",style:{background:"#262626"}},Dp={class:"custom-container-title"},Tp=t("p",null,[t("img",{src:_e,alt:"rawHtmlPreview",loading:"lazy"}),o(" The response of the html return type is no longer truncated in raw, and the html can be previewed at the same time")],-1),Mp={class:"custom-container hint",style:{background:"#262626"}},Up={class:"custom-container-title"},Lp={class:"custom-container hint",style:{background:"#262626"}},Wp={class:"custom-container-title"},Bp=r(`

    Support for such generic parameter parsing

    @Data
    +public class CommonDTO<T,R> implements Serializable {
    +    private String accessToken;
    +    private String appKey;
    +    private String clientId;
    +    private T data;
    +    private List<R> dataList;
    +}
    +
    +@PostMapping(value = "/apply")
    +public Integer loanApply(@RequestBody CommonDTO<Book, TestDTO> req){
    +    return 1;
    +}
    +
    `,2),Hp={class:"custom-container hint",style:{background:"#262626"}},Jp={class:"custom-container-title"},Gp=t("p",null,[t("img",{src:lt,alt:"projectConfigParam",loading:"lazy"}),o(" Added "),t("code",null,"URL Params"),o("、"),t("code",null,"URL-Encoded Params"),o("、"),t("code",null,"Cookies")],-1),$p=t("div",{class:"hint-container note"},[t("p",{class:"hint-container-title"},"Optimization"),t("ul",null,[t("li",null,[o("Interface optimization "),t("ul",null,[t("li",null,"Optimized tab spacing(narrow under windows)、background color")])]),t("li",null,[o("Save API insertion order optimization "),t("ul",null,[t("li",null,"The post-saved API will be placed on top")])])])],-1),Yp={class:"custom-container hint",style:{background:"#262626"}},Vp={class:"custom-container-title"},Kp=t("p",null,[t("img",{src:rt,alt:"apisList",loading:"lazy"}),o(" The rendering of the APIs interface has been optimized,Newly saved api icons are automatically optimized by default,The API saved in history can be right-clicked to select and change")],-1),Qp={id:"v2022-1-8",tabindex:"-1"},Xp={class:"header-anchor",href:"#v2022-1-8"},Zp={class:"custom-container hint",style:{background:"#262626"}},td={class:"custom-container-title"},ed=t("p",null,[t("img",{src:ge,alt:"projectConfigParam",loading:"lazy"})],-1),nd=t("p",null,"Support global parameters within the project level, not affected by multiple modules.",-1),od=t("p",null,[o("Configure priority "),t("code",null,"api header > project header>global header")],-1),sd={class:"custom-container hint",style:{background:"#262626"}},id={class:"custom-container-title"},ad=t("p",null,[t("img",{src:ct,alt:"add2projectConfig",loading:"lazy"})],-1),ld=t("p",null,[t("img",{src:pt,alt:"cookie2projectConfig",loading:"lazy"})],-1),rd=t("p",null,[o("Change "),t("s",null,"add params to global header"),o(" to "),t("code",null,"add params to project global header")],-1),cd=t("p",null,"Cookie is also like this",-1),pd={id:"v2022-1-7",tabindex:"-1"},dd={class:"header-anchor",href:"#v2022-1-7"},ud={class:"custom-container hint",style:{background:"#262626"}},hd={class:"custom-container-title"},md=t("p",null,[t("img",{src:dt,alt:"kotlinSupport",loading:"lazy"})],-1),_d={class:"custom-container hint",style:{background:"#262626"}},gd={class:"custom-container-title"},yd=t("p",null,[t("img",{src:ut,alt:"searchEveryWhereStrategy",loading:"lazy"}),o(" The 2022.1.7 version can search for mapping in SpringBoot feign or controller by default")],-1),vd=t("p",null,"The default search strategy is to search based on annotations, and two options are provided. If you need to exclude interfaces similar in SpringBoot feign interface during the search process, you can remove the check of Interface to deal with it.",-1),fd=t("div",{class:"hint-container note"},[t("p",{class:"hint-container-title"},"Add toggleUseSoftWrap support in editor"),t("p",null,[t("img",{src:ht,alt:"toggleUseSoftWrap",loading:"lazy"})])],-1),kd={class:"custom-container hint",style:{background:"#262626"}},xd={class:"custom-container-title"},bd=t("p",null,[t("img",{src:mt,alt:"add2GlobalHeader",loading:"lazy"}),o(" It is recommended to use in multi-module projects, because Add to Headers can only be added to the current module project")],-1),wd=t("div",{class:"hint-container note"},[t("p",{class:"hint-container-title"},"Add support for navigating to the current method"),t("p",null,[t("img",{src:ye,alt:"navigate2CurrentMethod",loading:"lazy"}),o(" After you generate the url of the method, sometimes you will switch to another place in the code, and then want to start debugging the API method, you can use this function to quickly locate the code")])],-1),Ad={class:"custom-container hint",style:{background:"#262626"}},zd={class:"custom-container-title"},Sd=t("p",null,"Optimized the need to manually switch the project drop-down box for the saved api echo under the multi-module",-1),Pd={id:"v2022-1-6",tabindex:"-1"},Id={class:"header-anchor",href:"#v2022-1-6"},Nd={class:"custom-container hint",style:{background:"#262626"}},jd={class:"custom-container-title"},qd=t("p",null,[t("img",{src:_t,alt:"addCookie2Header",loading:"lazy"}),o(" For those that require cookie support for login, you can quickly add the cookie in the response to the Header to achieve this")],-1),Fd={class:"custom-container hint",style:{background:"#262626"}},Ed={class:"custom-container-title"},Cd=t("p",null,[t("img",{src:ve,alt:"shareApi",loading:"lazy"}),o(" Please note that the API in word form is implemented in html, so don't feel strange, just export it")],-1),Od={id:"v2022-1-5",tabindex:"-1"},Rd={class:"header-anchor",href:"#v2022-1-5"},Dd={class:"custom-container hint",style:{background:"#262626"}},Td={class:"custom-container-title"},Md=t("p",null,[t("img",{src:fe,alt:"paramDescription",loading:"lazy"}),o(" You can hide or show description by toggle click")],-1),Ud={class:"custom-container hint",style:{background:"#262626"}},Ld={class:"custom-container-title"},Wd=t("p",null,[t("img",{src:gt,alt:"shareDocButton",loading:"lazy"})],-1),Bd=t("p",null,[t("img",{src:ke,alt:"apiDocExample",loading:"lazy"}),o(" After generating parameters, you can generate a Markdown document directly by sharing")],-1),Hd={class:"custom-container hint",style:{background:"#262626"}},Jd={class:"custom-container-title"},Gd=t("p",null,[t("img",{src:xe,alt:"apiDocExample",loading:"lazy"}),o(" After focusing on the window, enter the keyword, and you can quickly search according to the path keyword of the API")],-1),$d={id:"v2022-1-4",tabindex:"-1"},Yd={class:"header-anchor",href:"#v2022-1-4"},Vd=t("p",null,[t("mark",null,"require idea 2021.2+")],-1),Kd={class:"custom-container hint",style:{background:"#262626"}},Qd={class:"custom-container-title"},Xd=t("p",null,[t("img",{src:yt,alt:"help",loading:"lazy"}),o(" Highlight search keywords to speed up the search for the API you really want to find.At the same time, the javadoc corresponding to the api is displayed")],-1),Zd={class:"custom-container hint",style:{background:"#262626"}},tu={class:"custom-container-title"},eu=t("p",null,[t("img",{src:be,alt:"exportImportApis",loading:"lazy"}),o(" Using this function, you can easily share your existing APIs with other developers, or import to IDEA on other devices")],-1),nu={class:"custom-container hint",style:{background:"#262626"}},ou={class:"custom-container-title"},su=t("p",null,[t("img",{src:vt,alt:"runInApiManagement",loading:"lazy"}),o(" You can run your saved requests directly in the APIs tab")],-1),iu={class:"custom-container hint",style:{background:"#262626"}},au={class:"custom-container-title"},lu=t("p",null,[t("img",{src:We,alt:"generateSwitch",loading:"lazy"})],-1),ru={class:"custom-container hint",style:{background:"#262626"}},cu={class:"custom-container-title"},pu=t("p",null,[t("img",{src:ft,alt:"mergeRunAndDownload",loading:"lazy"}),o(" The buttons have been merged, because we usually use Send but not Send and Download, which reduces the number of toolbar buttons and looks simpler")],-1),du={class:"custom-container hint",style:{background:"#262626"}},uu={class:"custom-container-title"},hu=t("p",null,"Added the parsing of the default value of swagger annotations, which is more user-friendly of input parameters",-1),mu=t("ul",null,[t("li",null,"@ApiParam(swagger2)"),t("li",null,"@ApiImplicitParam(swagger2)"),t("li",null,"@ApiModelProperty(swagger2)"),t("li",null,"@Parameter(swagger3)"),t("li",null,"@Schema(swagger3)")],-1),_u={class:"custom-container hint",style:{background:"#262626"}},gu={class:"custom-container-title"},yu=t("p",null,[t("img",{src:kt,alt:"help",loading:"lazy"}),o(" We have added a ? option in different windows to display some guidelines. For first-time users, it's easier to operate")],-1),vu=t("p",null,"And with the iteration of the version, more prompt operation guidelines may be added in the future",-1),fu={class:"custom-container hint",style:{background:"#262626"}},ku={class:"custom-container-title"},xu=t("p",null,"Historical logic will only take the first url, that is, test1, considering that in actual use, it is possible that you need another url, so random support has been added.",-1),bu=t("strong",null,"/url1/test1,/url1/test2,/url2/test1,/url2/test2",-1),wu=r(`
    @RequestMapping({"url1","url2"})
    +@RestController
    +public class MultiUrlController {
    +    @GetMapping(value = {"test1","test2"})
    +    public Integer testUrl(){
    +        return 1;
    +    }
    +}
    +

    Expression support. The following demo url will be generated to /url/public/test1

    public class Constant {
    +  public static final String PUBLIC_URL = "/public";
    +}
    +@RequestMapping("url")
    +@RestController
    +public class MultiUrlController {
    +  @GetMapping(value = Constant.PUBLIC_URL + "/test1")
    +  public Integer testUrl(){
    +    return 1;
    +  }
    +}
    +
    `,3),Au={class:"custom-container hint",style:{background:"#262626"}},zu={class:"custom-container-title"},Su=t("p",null,"In the case where the tool window is relatively small, the API Navigate will be hidden. In order to display more content in the smallest tool window as possible, the name is shorter.",-1),Pu={id:"v2-1-3",tabindex:"-1"},Iu={class:"header-anchor",href:"#v2-1-3"},Nu=t("ul",null,[t("li",null,"Add encode support for special symbol in parameter"),t("li",null,"Add global headers to curl")],-1),ju={id:"v2-1-2",tabindex:"-1"},qu={class:"header-anchor",href:"#v2-1-2"},Fu=t("ul",null,[t("li",null,"Add support for export api to Postman"),t("li",null,"Open the idea lazy loading API Navigate tree for the first time"),t("li",null,"SearchEveryWhere show module"),t("li",null,"Optimize URL parsing"),t("li",null,"Optimize the display of api navigate tree"),t("li",null,"Optimize the group when save api"),t("li",null,"Global header params support")],-1),Eu={class:"custom-container hint",style:{background:"#262626"}},Cu={class:"custom-container-title"},Ou=t("p",null,"support parse like following example",-1),Ru=t("p",null,"no longer need to configure the URL Replace Config separately",-1),Du=t("div",{class:"language-java line-numbers-mode","data-ext":"java","data-title":"java"},[t("pre",{class:"language-java"},[t("code",null,[t("span",{class:"token annotation punctuation"},"@RequestMapping"),t("span",{class:"token punctuation"},"("),t("span",{class:"token class-name"},"Url1"),t("span",{class:"token punctuation"},"."),t("span",{class:"token constant"},"URL_TEST"),t("span",{class:"token punctuation"},")"),o(` +`),t("span",{class:"token annotation punctuation"},"@RestController"),o(` +`),t("span",{class:"token keyword"},"public"),o(),t("span",{class:"token keyword"},"class"),o(),t("span",{class:"token class-name"},"UrlTestController"),o(),t("span",{class:"token punctuation"},"{"),o(` + `),t("span",{class:"token keyword"},"private"),o(),t("span",{class:"token keyword"},"static"),o(),t("span",{class:"token keyword"},"final"),o(),t("span",{class:"token class-name"},"String"),o(),t("span",{class:"token constant"},"URL"),t("span",{class:"token operator"},"="),o(),t("span",{class:"token string"},'"xxx"'),t("span",{class:"token punctuation"},";"),o(` + + `),t("span",{class:"token annotation punctuation"},"@GetMapping"),t("span",{class:"token punctuation"},"("),o("value "),t("span",{class:"token operator"},"="),o(),t("span",{class:"token constant"},"URL"),t("span",{class:"token punctuation"},")"),o(` + `),t("span",{class:"token keyword"},"public"),o(),t("span",{class:"token class-name"},"Integer"),o(),t("span",{class:"token function"},"testUrl"),t("span",{class:"token punctuation"},"("),t("span",{class:"token punctuation"},")"),t("span",{class:"token punctuation"},"{"),o(` + `),t("span",{class:"token keyword"},"return"),o(),t("span",{class:"token number"},"1"),t("span",{class:"token punctuation"},";"),o(` + `),t("span",{class:"token punctuation"},"}"),o(` +`),t("span",{class:"token punctuation"},"}"),o(` +`)])]),t("div",{class:"line-numbers","aria-hidden":"true"},[t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"}),t("div",{class:"line-number"})])],-1),Tu=t("div",{class:"language-java","data-ext":"java","data-title":"java"},[t("pre",{class:"language-java"},[t("code",null,[t("span",{class:"token annotation punctuation"},"@RequestMapping"),t("span",{class:"token punctuation"},"("),o(` + value `),t("span",{class:"token operator"},"="),o(),t("span",{class:"token punctuation"},"{"),t("span",{class:"token string"},'"/v1/save"'),t("span",{class:"token punctuation"},"}"),t("span",{class:"token punctuation"},","),o(` + method `),t("span",{class:"token operator"},"="),o(),t("span",{class:"token punctuation"},"{"),t("span",{class:"token class-name"},"RequestMethod"),t("span",{class:"token punctuation"},"."),t("span",{class:"token constant"},"POST"),t("span",{class:"token punctuation"},"}"),o(` +`),t("span",{class:"token punctuation"},")"),o(` +`)])])],-1),Mu={class:"custom-container hint",style:{background:"#262626"}},Uu={class:"custom-container-title"},Lu=t("p",null,[t("img",{src:we,alt:"export2postman",loading:"lazy"})],-1),Wu={class:"custom-container hint",style:{background:"#262626"}},Bu={class:"custom-container-title"},Hu=t("p",null,[t("img",{src:xt,alt:"searchEveryWhereModule",loading:"lazy"})],-1),Ju={class:"custom-container hint",style:{background:"#262626"}},Gu={class:"custom-container-title"},$u=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`when saving the api,it will save to a group named controller's name + +`)])],-1),Yu=t("p",null,[t("img",{src:bt,alt:"save2ControllerGroup",loading:"lazy"})],-1),Vu={class:"custom-container hint",style:{background:"#262626"}},Ku={class:"custom-container-title"},Qu=t("p",null,[t("img",{src:wt,alt:"globalRequestHeader",loading:"lazy"})],-1),Xu={id:"v2-1-1",tabindex:"-1"},Zu={class:"header-anchor",href:"#v2-1-1"},th=t("ul",null,[t("li",null,"SearchEveryWhere support"),t("li",null,"Add a what's new button to view the latest version at any time"),t("li",null,"Optimize the parsing of enum"),t("li",null,"Add support for http redirect")],-1),eh={class:"custom-container hint",style:{background:"#262626"}},nh={class:"custom-container-title"},oh=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`example +/url +get /list (used for search get method) +post /save (used for search post method) +`)])],-1),sh=t("p",null,[t("img",{src:ce,alt:"searchEveryWhere",loading:"lazy"})],-1),ih={class:"custom-container hint",style:{background:"#262626"}},ah={class:"custom-container-title"},lh=t("p",null,[t("img",{src:At,alt:"whatsnewNotifcation",loading:"lazy"})],-1),rh={id:"v2-1-0-2",tabindex:"-1"},ch={class:"header-anchor",href:"#v2-1-0-2"},ph={href:"https://dromara.org/zh/",target:"_blank",rel:"noopener noreferrer"},dh=t("strong",null,"Dromara",-1),uh={id:"v2-1-0-1",tabindex:"-1"},hh={class:"header-anchor",href:"#v2-1-0-1"},mh=t("ul",null,[t("li",null,"Fix get param error")],-1),_h={id:"v2-1-0",tabindex:"-1"},gh={class:"header-anchor",href:"#v2-1-0"},yh=t("ul",null,[t("li",null,"Fix post api parse error when using @RequestBody and @RequestParam"),t("li",null,"Parsing support for nested classes"),t("li",null,"Add support for url parse from the path property of the @RequestMapping in controller class level"),t("li",null,"Added support for Api Tree scanning with @RequestMapping class")],-1),vh={id:"v2-0-9",tabindex:"-1"},fh={class:"header-anchor",href:"#v2-0-9"},kh=t("ul",null,[t("li",null,'Fix "Slow operations are prohibited on EDT" for 2021.3+'),t("li",null,"Fix add headers from response"),t("li",null,"Add project-level configuration,env and project will not change while switch project"),t("li",null,"Add format action icon to textEditor")],-1),xh={class:"custom-container hint",style:{background:"#262626"}},bh={class:"custom-container-title"},wh=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`if your api need token in header,you can do like this to add params to header from response +`)])],-1),Ah=t("p",null,[t("img",{src:zt,alt:"format",loading:"lazy"})],-1),zh={class:"custom-container hint",style:{background:"#262626"}},Sh={class:"custom-container-title"},Ph=t("p",null,[t("img",{src:St,alt:"format",loading:"lazy"})],-1),Ih={id:"v2-0-8-1",tabindex:"-1"},Nh={class:"header-anchor",href:"#v2-0-8-1"},jh=t("ul",null,[t("li",null,"Fix conflicting error when searchEveryWhere"),t("li",null,"Adjust position of toolbar action button"),t("li",null,"remove unnecessary dependence,size 11.1M->5.9M")],-1),qh={id:"v2-0-8",tabindex:"-1"},Fh={class:"header-anchor",href:"#v2-0-8"},Eh=t("ul",null,[t("li",null,"Fix npe when first add project/env"),t("li",null,"Json tree response character rendering maximum limit"),t("li",null,"Add support for filter by methodType in Api navigate"),t("li",null,"Add support for ignoring parameter parsing"),t("li",null,"Fix some EDT problem"),t("li",null,"Send/sendDownload button support for custom shortcut keys"),t("li",null,"Fix response text not show in 2021.3")],-1),Ch={class:"custom-container hint",style:{background:"#262626"}},Oh={class:"custom-container-title"},Rh=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`shortcut is available anywhere to trigger the event,No longer need to focus on the tool window +`)])],-1),Dh=t("p",null,[t("img",{src:Pt,alt:"shortcutSendAndDownload",loading:"lazy"})],-1),Th={class:"custom-container hint",style:{background:"#262626"}},Mh={class:"custom-container-title"},Uh=t("p",null,[t("img",{src:It,alt:"shortcutSendAndDownload",loading:"lazy"})],-1),Lh={id:"v2-0-7",tabindex:"-1"},Wh={class:"header-anchor",href:"#v2-0-7"},Bh=r("
    • Add support for api navigate tree
    • Add support for automatic switching of Headers with project and environment switching
    • Optimized Windows system. In some cases, downloading files cannot pop up the directory
    • Optimize the parameter parse of @RequestParam
    • Optimize tool window project and env drop-down components and layout
    • Optimize the prompt message of curl copy
    • Optimize the prompt message of curl regenerate
    • Add confirm operation when delete project and env config
    • Fix the order of json field output is disrupted
    • Move send button to toolbar and support keyboard shortcut
    ",1),Hh={class:"custom-container hint",style:{background:"#262626"}},Jh={class:"custom-container-title"},Gh=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`Select the tree and enter keywords +Press Enter again or double-click the left mouse button to locate the API + +Hover the mouse to display the doc of the api +`)])],-1),$h=t("p",null,[t("img",{src:Ae,alt:"apinavi",loading:"lazy"})],-1),Yh={class:"custom-container hint",style:{background:"#262626"}},Vh={class:"custom-container-title"},Kh=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`Scenes:Multi-module projects such as SpringBoot have different header parameters in different projects and different environments. +In order to quickly switch headers, header grouping is coming. +Operation method: +1.Modify in the headers group, constraint: the input value must be in standard json format +2.Switch the environment or project name directly, and then enter the corresponding key and value values in the headers form +`)])],-1),Qh=t("p",null,[t("img",{src:ze,alt:"headerSwitch",loading:"lazy"})],-1),Xh={class:"custom-container hint",style:{background:"#262626"}},Zh={class:"custom-container-title"},t2=t("p",null,[o("@RequestParam parameters will be prioritized according to the alias"),t("br"),t("code",null,'@RequestParam("nameAlias")List nameList'),o(" param name will be nameAlias")],-1),e2={class:"custom-container hint",style:{background:"#262626"}},n2={class:"custom-container-title"},o2=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`send request: alt = +send and download: alt - +Prerequisites:Tool window needs to be focused +`)])],-1),s2=t("p",null,[t("img",{src:Nt,alt:"toolbarSend",loading:"lazy"})],-1),i2={class:"custom-container hint",style:{background:"#262626"}},a2={class:"custom-container-title"},l2=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`Icon p represents project +Icon e represents environment +`)])],-1),r2=t("p",null,[t("img",{src:Se,alt:"dropdownProject",loading:"lazy"})],-1),c2=t("p",null,[t("img",{src:Pe,alt:"dropdownEnv",loading:"lazy"})],-1),p2={id:"v2-0-6",tabindex:"-1"},d2={class:"header-anchor",href:"#v2-0-6"},u2=r("
    • Fix "Light files should have PSI only in one project"
    • Add support for json syntax check
    • Add support for PATCH method
    • Added support for saving the API to the corresponding module group
    • Fix null value in response not output
    • Add support for JAX-RS
    • Display what's new

    Without affecting the use, sometimes it will pop up "Light files should have PSI only in one project".This has fixed in 2.0.6

    ",2),h2={class:"custom-container hint",style:{background:"#262626"}},m2={class:"custom-container-title"},_2=t("p",null,[t("img",{src:Ie,alt:"json",loading:"lazy"})],-1),g2={class:"custom-container hint",style:{background:"#262626"}},y2={class:"custom-container-title"},v2=t("p",null,[t("img",{src:Ne,alt:"apiGroup",loading:"lazy"})],-1),f2=t("p",null,[o("Module supports quick search "),t("img",{src:je,alt:"apiGroup",loading:"lazy"})],-1),k2={class:"custom-container hint",style:{background:"#262626"}},x2={class:"custom-container-title"},b2=t("p",null,[t("img",{src:jt,alt:"apiGroup",loading:"lazy"})],-1),w2={class:"custom-container hint",style:{background:"#262626"}},A2={class:"custom-container-title"},z2=t("p",null,[o("Will only be shown once "),t("img",{src:Be,alt:"apiGroup",loading:"lazy"})],-1),S2={id:"v2-0-5",tabindex:"-1"},P2={class:"header-anchor",href:"#v2-0-5"},I2=t("ul",null,[t("li",null,"JSON built-in editor support"),t("li",null,"Fix checkbox hidden when change param by text"),t("li",null,"Fix headers param show error when reshow the api"),t("li",null,"Optimized the request progress bar display")],-1),N2={id:"v2-0-4",tabindex:"-1"},j2={class:"header-anchor",href:"#v2-0-4"},q2=t("ul",null,[t("li",null,"Fix the interface confusion caused by the response content aisle"),t("li",null,"Optimization of response JSON ultra long display"),t("li",null,"Optimized icon size"),t("li",null,"Migrate Chinese documents to Gitee")],-1),F2={id:"v2-0-3",tabindex:"-1"},E2={class:"header-anchor",href:"#v2-0-3"},C2=t("ul",null,[t("li",null,"Add confirmation when deleting api"),t("li",null,"Added the support of selecting all parameters and inverting selection"),t("li",null,"Fix param parse for java.util.Set"),t("li",null,"Fix parse like 【@RequestParam"),t("li",null,"Fix the confusion of the quick add header interface")],-1),O2={id:"v2-0-2",tabindex:"-1"},R2={class:"header-anchor",href:"#v2-0-2"},D2=t("ul",null,[t("li",null,"Fix that the A request is displayed to the B project in the case of multiple open projects"),t("li",null,"Fix array and list param parse error decorate by @ResponseBody"),t("li",null,"Fix List without generic parse error"),t("li",null,"Add support for send and download"),t("li",null,"Show progressbar while sending request"),t("li",null,"Brand new document[click the doc icon in the toolbar]"),t("li",null,"Some optimization")],-1),T2={id:"v2-0-1",tabindex:"-1"},M2={class:"header-anchor",href:"#v2-0-1"},U2=t("ul",null,[t("li",null,"rename from Fast Request to Restful Fast Request"),t("li",null,"merge Json、Form URL-Encoded、Multipart to Body Tab to reduce the tool window width"),t("li",null,"fix bug when modify config in global mode"),t("li",null,"add get、post、delete、put icon to saved request"),t("li",null,"saved request support more search strategy"),t("li",null,"rename tab name from collection to APIs"),t("li",null,"support parse java.time.YearMonth")],-1),L2={id:"v2-0-0",tabindex:"-1"},W2={class:"header-anchor",href:"#v2-0-0"},B2=t("ul",null,[t("li",null,"support store request"),t("li",null,"support params optional"),t("li",null,"optimal iu"),t("li",null,"fix some bugs")],-1);function H2(J2,G2){const i=d("RouteLink"),p=d("ExternalLinkIcon"),n=d("Badge"),c=d("MyCarousel"),u=d("CodeTabs"),h=d("ColorIcon"),_=d("FontIcon");return Fe(),Ee("div",null,[t("div",Je,[Ge,t("p",null,[e(i,{to:"/en/guide/versionCompare.html"},{default:s(()=>[$e]),_:1}),o(" | "),e(i,{to:"/en/guide/buy.html"},{default:s(()=>[Ye]),_:1})]),t("p",null,[o("Issue report please refer to "),t("a",Ve,[o("GitHub"),e(p)])]),Ke,t("table",null,[t("thead",null,[t("tr",null,[t("th",null,[t("a",Qe,[Xe,e(p)])]),t("th",null,[t("a",Ze,[tn,e(p)])])])]),en])]),nn,t("h2",on,[t("a",sn,[t("span",null,[o("2024.1.7 "),e(n,{text:"Free trial",type:"tip"}),o(),e(n,{text:"Developing...",color:"blue"}),o(),e(n,{text:"IDEA 2023.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Functions and environment code completion support",color:"orange"})]),t("li",null,[e(n,{text:"JSON filter support",type:"tip"})]),t("li",null,[e(n,{text:"Common Header code completion support",type:"tip"})]),t("li",null,[e(n,{text:"Default file path for multipart",type:"tip"})]),t("li",null,[e(n,{text:"SearchEveryWhere result sorting optimization",type:"info"})]),t("li",null,[e(n,{text:"Script interface optimition",type:"info"})]),t("li",null,[e(n,{text:"Map parse",type:"info"})]),t("li",null,[e(n,{text:"Several known issue optimizations",type:"info"})])]),t("div",an,[t("p",ln,[o("Functions and environment code completion support "),e(n,{vertical:"top",text:"Important feature",color:"orange"})]),e(c,{imgList:["/img/2024.1.7/functionEn.png","/img/2024.1.7/functionInBodyEn.png","/img/2024.1.7/functionConfig.png"]},null,8,["imgList"]),rn,t("p",null,[o("For more information about function support, see ----> "),e(i,{to:"/en/guide/features/function.html"},{default:s(()=>[o("Function")]),_:1})])]),t("div",cn,[t("p",pn,[o("JSON filter support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),dn,un]),t("div",hn,[t("p",mn,[o("Common Header code completion support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),_n,gn]),t("div",yn,[t("p",vn,[o("Default file path for multipart "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),fn,kn]),t("div",xn,[t("p",bn,[o("SearchEveryWhere result sorting optimization "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),wn,An]),t("h2",zn,[t("a",Sn,[t("span",null,[o("2024.1.6.3 "),e(n,{text:"Free trial",type:"tip"}),o(),e(n,{text:"Newest version",type:"pink"}),o(),e(n,{text:"2024-08-15",color:"SandyBrown"}),o(),e(n,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Compatible with IDEA 2024.2+",type:"info"})])]),t("h2",Pn,[t("a",In,[t("span",null,[o("2024.1.6.2 "),e(n,{text:"Free trial",type:"tip"}),o(),e(n,{text:"Newest version",color:"pink"}),o(),e(n,{text:"2024-07-30",color:"SandyBrown"}),o(),e(n,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Combined annotation support",type:"tip"})]),t("li",null,[e(n,{text:"Message Optimization",type:"info"})]),t("li",null,[e(n,{text:"After the pre-script is executed, the data not used in the current request",type:"danger"})])]),t("div",Nn,[t("p",jn,[o("Combined annotation support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),qn]),t("h2",Fn,[t("a",En,[t("span",null,[o("2024.1.6 "),e(n,{text:"Free trial",type:"tip"}),o(),e(n,{text:"2024-06-24",color:"SandyBrown"}),o(),e(n,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Multi Tab window",color:"orange"})]),t("li",null,[e(n,{text:"Apis mark",type:"tip"})]),t("li",null,[e(n,{text:"Url copy in Apis & Navigate",type:"tip"})]),t("li",null,[e(n,{text:"Json path support",type:"tip"})]),t("li",null,[e(n,{text:"Url generation supports extends BaseController interface",type:"info"})]),t("li",null,[e(n,{text:"Fixed some known bugs",type:"danger"})])]),t("div",Cn,[t("p",On,[o("Multi Tab window "),e(n,{vertical:"top",text:"Important feature",color:"orange"})]),e(c,{imgList:["/img/2024.1.6/multiTab.png","/img/2024.1.6/openInTabAction.png","/img/2024.1.6/openTabInApis_en.png"]},null,8,["imgList"]),t("p",null,[o("Open "),Rn,o(" file to display the debugging interface and supports multi-Tab opening. More detail please refer "),e(i,{to:"/en/guide/features/navigateCurrentMethodJson.html"},{default:s(()=>[Dn]),_:1})])]),t("div",Tn,[t("p",Mn,[o("Apis mark "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),e(c,{imgList:["/img/2024.1.6/mark1_en.png","/img/2024.1.6/mark2.png"]},null,8,["imgList"]),Un]),t("div",Ln,[t("p",Wn,[o("Url copy in Apis & Navigate "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),e(c,{imgList:["/img/2024.1.6/urlCopyInApis_en.png","/img/2024.1.6/urlCopyInNav_en.png"]},null,8,["imgList"]),Bn]),t("div",Hn,[t("p",Jn,[o("Json path support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Gn,t("p",null,[o("Support json path search In "),$n,o(" and "),Yn,o(" tab, but this depends on "),t("a",Vn,[o("JSONPath"),e(p)]),o(" plugin.")])]),t("h2",Kn,[t("a",Qn,[t("span",null,[o("2024.1.5.1 "),e(n,{text:"Free trial",type:"tip"}),o(),e(n,{text:"2024-05-16",color:"SandyBrown"}),o(),e(n,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Entity parse",type:"danger"})])]),t("h2",Xn,[t("a",Zn,[t("span",null,[o("2024.1.5 "),e(n,{text:"Free trial",type:"tip"}),o(),e(n,{text:"2024-05-14",color:"SandyBrown"}),o(),e(n,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Add library support in pre and post script",type:"tip"})]),t("li",null,[e(n,{text:"Type drop-down box optimization",type:"info"})]),t("li",null,[e(n,{text:"Original url display optimization",type:"info"})]),t("li",null,[e(n,{text:"Apifox directory sync optimization",type:"info"})]),t("li",null,[e(n,{text:"Url input style optimization",type:"info"})]),t("li",null,[e(n,{text:"Parameter Tab automatic jump optimization",type:"info"})]),t("li",null,[e(n,{text:"cUrl import optimization",type:"info"})]),t("li",null,[e(n,{text:"Fix Api doc synchronization is successful but prompts an error",type:"danger"})])]),t("div",to,[t("p",eo,[o("Add library support in pre and post script "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),no,t("p",null,[o("Add a button to allow adding script library to get the "),t("a",oo,[o("Code completion"),e(p)]),o(" function.")])]),t("div",so,[t("p",io,[o("Type drop-down box optimization "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),ao,lo]),t("div",ro,[t("p",co,[o("Original url display optimization "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),po,uo]),t("div",ho,[t("p",mo,[o("cUrl import optimization "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),_o]),t("h2",go,[t("a",yo,[t("span",null,[o("2024.1.4 "),e(n,{text:"Free trial",type:"tip"}),o(),e(n,{text:"2024-04-08",color:"SandyBrown"}),o(),e(n,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Apifox integration",color:"orange"})]),t("li",null,[e(n,{text:"AI support optimization",color:"orange"})]),t("li",null,[e(n,{text:"Change moduleHeader to apiHeader",type:"info"})]),t("li",null,[e(n,{text:"cURL import Optimization",type:"info"})]),t("li",null,[e(n,{text:"Entity parse optimization",type:"info"})]),t("li",null,[e(n,{text:"Compatible with IDEA 2024",type:"info"})]),t("li",null,[e(n,{text:"API export file suffix error",type:"danger"})])]),t("div",vo,[t("p",fo,[o("Apifox integration "),e(n,{vertical:"top",text:"Important feature",color:"orange"})]),e(c,{imgList:["/img/2024.1.4/apifoxIntegration_en.png","/img/2024.1.4/apifoxConfig_en.png"]},null,8,["imgList"]),ko]),t("div",xo,[t("p",bo,[o("AI support optimization "),e(n,{vertical:"top",text:"Important feature",color:"orange"})]),wo,t("p",null,[o("The following is a case of using AI to help optimize JSON messages. For more details, please refer to "),e(i,{to:"/en/guide/features/ai.html"},{default:s(()=>[o("AI")]),_:1}),o(".")]),e(u,{id:"335",data:[{id:"Summary"},{id:"Example question"},{id:"Example question's answer"}]},{title0:s(({value:a,isActive:l})=>[o("Summary")]),title1:s(({value:a,isActive:l})=>[o("Example question")]),title2:s(({value:a,isActive:l})=>[o("Example question's answer")]),tab0:s(({value:a,isActive:l})=>[Ao]),tab1:s(({value:a,isActive:l})=>[zo]),tab2:s(({value:a,isActive:l})=>[So]),_:1})]),t("div",Po,[t("p",Io,[o("Change moduleHeader to apiHeader "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),No,t("ol",null,[jo,t("li",null,[o("The scope of the Header tab in the main interface has been changed to only face the API level. That is, each API can have different Headers. If you need a public Header, please go to "),e(i,{to:"/guide/features/projectValueConfig.html"},{default:s(()=>[o("Project Level Header")]),_:1}),o(" setting.")])])]),t("div",qo,[t("p",Fo,[o("cURL import Optimization "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Eo]),t("h2",Co,[t("a",Oo,[t("span",null,[o("2024.1.3 "),e(n,{text:"Free trial",type:"tip"}),o(),e(n,{text:"2024-03-04",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[e(n,{text:"AI support optimization",color:"orange"})]),t("li",null,[e(n,{text:"Performance optimization for large response results",type:"info"})]),t("li",null,[e(n,{text:"Map type parse optimization",type:"info"})]),t("li",null,[e(n,{text:"Download does not respond in Windows system",type:"danger"})])]),t("div",Ro,[t("p",Do,[o("AI support optimization "),e(n,{vertical:"top",text:"Important feature",color:"orange"})]),e(c,{imgList:["/img/2024.1.3/aiManagenemt_en.png","/img/2024.1.3/aiPromptEdit_en.png","/img/2024.1.3/aiPromptChoose_en.png"]},null,8,["imgList"]),To,Mo]),t("h2",Uo,[t("a",Lo,[t("span",null,[o("2024.1.2.1 "),e(n,{text:"Free trial",type:"tip"}),o(),e(n,{text:"2024-01-24",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[e(n,{text:"No response when click send and download",type:"danger"})])]),t("h2",Wo,[t("a",Bo,[t("span",null,[o("2024.1.2 "),e(n,{text:"Free trial",type:"tip"}),o(),e(n,{text:"2024-01-19",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Custom toolbar",color:"orange"})])]),t("div",Ho,[t("p",Jo,[o("Custom toolbar "),e(n,{vertical:"top",text:"Important feature",color:"orange"})]),Go,$o]),t("h2",Yo,[t("a",Vo,[t("span",null,[o("2024.1.1 "),e(n,{text:"Free trial",type:"tip"}),o(),e(n,{text:"2024-01-15",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[e(n,{text:"SearchEveryWhere support classname search",color:"orange"})]),t("li",null,[e(n,{text:"Generate .fastRequest directory strategy",color:"orange"})]),t("li",null,[e(n,{text:"Ignore field name parse support",type:"tip"})]),t("li",null,[e(n,{text:"Apis and Navigate in popup",type:"tip"})]),t("li",null,[e(n,{text:"Manual update check",type:"tip"})]),t("li",null,[e(n,{text:"Content-Disposition support optimization",type:"info"})]),t("li",null,[e(n,{text:"SearchEveryWhere performance optimization",type:"info"})]),t("li",null,[e(n,{text:"API loading performance in Navigate optimization",type:"info"})]),t("li",null,[e(n,{text:"Markdown doc add return value doc",type:"info"})]),t("li",null,[e(n,{text:"Collection generic parsing error",type:"danger"})])]),t("div",Ko,[t("p",Qo,[o("SearchEveryWhere support classname search "),e(n,{vertical:"top",text:"Important feature",color:"orange"})]),Xo,Zo]),t("div",ts,[t("p",es,[o("Generate .fastRequest directory strategy "),e(n,{vertical:"top",text:"Important feature",color:"orange"})]),ns]),t("div",os,[t("p",ss,[o("Ignore field name parse support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),is,as]),t("div",ls,[t("p",rs,[o("Apis and Navigate in popup "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),e(c,{imgList:["/img/2024.1.1/apis_en.png","/img/2024.1.1/navigate_en.png"]},null,8,["imgList"]),cs]),t("div",ps,[t("p",ds,[o("Manual update check "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),us,hs]),t("div",ms,[t("p",_s,[o("SearchEveryWhere performance optimization "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),gs,ys]),t("div",vs,[t("p",fs,[o("Content-Disposition support optimization "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),ks,xs]),t("h2",bs,[t("a",ws,[t("span",null,[o("2023.2.3.1 "),e(n,{text:"Free trial",type:"tip"}),o(),e(n,{text:"2023-12-20",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[e(n,{text:"JSON5 support error",type:"danger"})])]),t("h2",As,[t("a",zs,[t("span",null,[o("2023.2.3 "),e(n,{text:"Free trial",type:"tip"}),o(),e(n,{text:"2023-12-19",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Sync API to Postman",type:"tip"})]),t("li",null,[e(n,{text:"Project name drop-down box automatically switches",type:"tip"})]),t("li",null,[e(n,{text:"Environment refactoring",type:"info"})]),t("li",null,[e(n,{text:"Project domain name addition optimization",type:"info"})]),t("li",null,[e(n,{text:"Change API document sync trigger to API is saved",type:"info"})]),t("li",null,[e(n,{text:"Add @fastRequestParseIgnore support for ignore parse field",type:"info"})]),t("li",null,[e(n,{text:"SearchEveryWhere compatible idea2023.3",type:"danger"})]),t("li",null,[e(n,{text:"Error when passing non-json in body param",type:"danger"})]),t("li",null,[e(n,{text:"curl import parsing\\' error",type:"danger"})])]),t("div",Ss,[t("p",Ps,[o("Sync API to Postman "),e(n,{vertical:"top",text:"Important feature",color:"orange"})]),Is,Ns,t("p",null,[o("More details please refer "),e(i,{to:"/en/guide/features/postmanSync.html"},{default:s(()=>[o("Postman sync")]),_:1})])]),t("div",js,[t("p",qs,[o("Project name drop-down box automatically switches "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Fs]),t("div",Es,[t("p",Cs,[o("Environment refactoring "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Os,Rs]),t("div",Ds,[t("p",Ts,[o("Project domain name addition optimization "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Ms,Us]),t("div",Ls,[t("p",Ws,[o("Add @fastRequestParseIgnore support for ignore parse field "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Bs]),t("h2",Hs,[t("a",Js,[t("span",null,[o("2023.2.2 "),e(n,{text:"Free trial",type:"tip"}),o(),e(n,{text:"2023-11-24",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Markdown doc template config",type:"tip"})]),t("li",null,[e(n,{text:"JSON5 support",type:"tip"})]),t("li",null,[e(n,{text:"Compatible with IDEA 2023.3",type:"tip"})]),t("li",null,[e(n,{text:"History requests list show errors",type:"danger"})])]),t("div",Gs,[t("p",$s,[o("Markdown doc template config "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),t("p",null,[o("Provides a custom format for local markdown and "),e(i,{to:"/en/guide/features/apiDocSync.html"},{default:s(()=>[o("Online API")]),_:1}),o(" doc.View "),e(i,{to:"/en/guide/features/markdownDocTemplateConfig.html"},{default:s(()=>[o("more detail")]),_:1})])]),t("div",Ys,[t("p",Vs,[o("JSON5 support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Ks]),t("h2",Qs,[t("a",Xs,[t("span",null,[o("2023.2.1.1 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Style optimization for Url textField in some themes",type:"tip"})]),t("li",null,[e(n,{text:"Project level header save error",type:"danger"})])]),t("h2",Zs,[t("a",ti,[t("span",null,[o("2023.2.1 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"UI predigestion",type:"tip"})]),t("li",null,[e(n,{text:"Support open API document in apis list",type:"tip"})]),t("li",null,[e(n,{text:"Auto domain",type:"info"})]),t("li",null,[e(n,{text:"Map parse",type:"info"})]),t("li",null,[e(n,{text:"Put show apis into right click menu",type:"info"})]),t("li",null,[e(n,{text:"Add plugin version to statistics page",type:"info"})]),t("li",null,[e(n,{text:"Many details optimized",type:"info"})]),t("li",null,[e(n,{text:"Url and cUrl copy can not replace environment variable",type:"danger"})]),t("li",null,[e(n,{text:"Curl import parsing error in form-urlencoded and -d forms",type:"danger"})])]),t("div",ei,[t("p",ni,[o("UI predigestion "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),oi]),t("div",si,[t("p",ii,[o("Support open API document in apis list "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),ai]),t("div",li,[t("p",ri,[o("Put show apis into right click menu "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),ci]),t("div",pi,[t("p",di,[o("Add plugin version to statistics page "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),ui]),t("h2",hi,[t("a",mi,[t("span",null,[o("2023.1.9 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Quick add Environment variable support",type:"tip"})]),t("li",null,[e(n,{text:"Add、Delete、Modify support in Environment use view",type:"tip"})]),t("li",null,[e(n,{text:"Show apis trigger in Controller",type:"tip"})]),t("li",null,[e(n,{text:"Response adds Size property",type:"tip"})]),t("li",null,[e(n,{text:"API Name Saving Optimization",type:"info"})]),t("li",null,[e(n,{text:"Input parameter trim optimization",type:"info"})]),t("li",null,[e(n,{text:"Reduce JSON tree tab size from 5MB to 2MB",type:"info"})]),t("li",null,[e(n,{text:"Remove Accept-Language header when send request",type:"danger"})]),t("li",null,[e(n,{text:"cURL copy format error of form-data",type:"danger"})]),t("li",null,[e(n,{text:"Logic error of domain configuration page in some the case",type:"danger"})])]),t("div",_i,[t("p",gi,[o("Quick add Environment variable support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),yi]),t("div",vi,[t("p",fi,[o("Add、Delete、Modify support in Environment use view "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),ki]),t("div",xi,[t("p",bi,[o("Show apis trigger in Controller "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),wi]),t("div",Ai,[t("p",zi,[o("Response adds Size property "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Si]),t("h2",Pi,[t("a",Ii,[t("span",null,[o("2023.1.8 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Environment",type:"tip"})]),t("li",null,[e(n,{text:"Method description length truncate",type:"info"})]),t("li",null,[e(n,{text:"Parse support for Instant",type:"info"})]),t("li",null,[e(n,{text:"Delete api directory error in Windows system",type:"danger"})])]),t("div",Ni,[t("p",ji,[o("Environment "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),t("p",null,[o("Add "),e(h,{icon:"environment"}),o(" nvironment variable support, "),e(i,{to:"/en/guide/features/environment.html"},{default:s(()=>[o("more detail")]),_:1})])]),t("div",qi,[t("p",Fi,[o("Method description length truncate "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Ei,Ci,Oi]),t("h2",Ri,[t("a",Di,[t("span",null,[o("2023.1.7.1 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Add generate action in SearchEveryWhere",type:"tip"})]),t("li",null,[e(n,{text:"The main window pops up with configuration",type:"info"})]),t("li",null,[e(n,{text:"Param parse",type:"info"})]),t("li",null,[e(n,{text:"Table dragging problem",type:"info"})])]),t("div",Ti,[t("p",Mi,[o("Add generate action in SearchEveryWhere "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Ui]),t("div",Li,[t("p",Wi,[o("The main window pops up with configuration "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Bi]),t("div",Hi,[t("p",Ji,[o("Param parse "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Gi,e(u,{id:"851",data:[{id:"spring"}],"tab-id":"shell"},{title0:s(({value:a,isActive:l})=>[o("spring")]),tab0:s(({value:a,isActive:l})=>[$i]),_:1})]),t("h2",Yi,[t("a",Vi,[t("span",null,[o("2023.1.7 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"New icon",type:"tip"})]),t("li",null,[e(n,{text:"SearchEveryWhere enhance",type:"tip"})]),t("li",null,[e(n,{text:"Slack support",type:"tip"})]),t("li",null,[e(n,{text:"Compact http icon",type:"tip"})]),t("li",null,[e(n,{text:"Duplicate field",type:"tip"})]),t("li",null,[e(n,{text:"Optimize the insertion of script snippets",type:"info"})]),t("li",null,[e(n,{text:"Optimize table and textarea",type:"info"})]),t("li",null,[e(n,{text:"Optimize automatic domain parse",type:"info"})]),t("li",null,[e(n,{text:"cUrl import",type:"info"})]),t("li",null,[e(n,{text:"FullScreen",type:"info"})]),t("li",null,[e(n,{text:"Params parse",type:"info"})]),t("li",null,[e(n,{text:"Remove the .main from the module name of a Gradle project",type:"info"})]),t("li",null,[e(n,{text:"SearchEveryWhere keyword search with spaces",type:"danger"})]),t("li",null,[e(n,{text:"Optimizing numerous operational details",type:"danger"})]),t("li",null,[e(n,{text:"Batch export api doc",type:"danger"})]),t("li",null,[e(n,{text:"History request echo data",type:"danger"})])]),t("div",Ki,[t("p",Qi,[o("New icon "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Xi]),t("div",Zi,[t("p",ta,[o("SearchEveryWhere enhance "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),ea]),t("div",na,[t("p",oa,[o("Slack support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),t("p",null,[o("If you have any question, please click "),t("a",sa,[ia,e(p)]),o(" and join in.")]),aa]),t("div",la,[t("p",ra,[o("Compact http icon "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),ca]),t("div",pa,[t("p",da,[o("Duplicate field "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),ua]),t("h2",ha,[t("a",ma,[t("span",null,[o("2023.1.6 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Header batch edit",type:"tip"})]),t("li",null,[e(n,{text:"Idea hang when debug in post script",type:"danger"})])]),t("div",_a,[t("p",ga,[o("Header batch edit "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),ya]),t("h2",va,[t("a",fa,[t("span",null,[o("2023.1.5 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Editor icon location",type:"info"})]),t("li",null,[e(n,{text:"SearchEveryWhere style confusion",type:"danger"})]),t("li",null,[e(n,{text:"URL variable replacing",type:"danger"})])]),t("div",ka,[t("p",xa,[o("Editor icon location "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),ba]),wa,t("h2",Aa,[t("a",za,[t("span",null,[o("v2023.1.4.2 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Domain edit error in project domain config",type:"danger"})]),t("li",null,[e(n,{text:"headers group load error",type:"danger"})])]),t("h2",Sa,[t("a",Pa,[t("span",null,[o("v2023.1.4.1 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Fix Auto domain of multi-module project",type:"danger"})])]),t("h2",Ia,[t("a",Na,[t("span",null,[o("v2023.1.4 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Auto domain",type:"tip"})]),t("li",null,[e(n,{text:"SearchEveryWhere supports searching URLs in jar",type:"tip"})]),t("li",null,[e(n,{text:"Set project header error in Script",type:"danger"})])]),t("div",ja,[t("p",qa,[o("Auto domain "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),t("p",null,[o("Automatically identify or add a default domain,---->"),e(i,{to:"/en/guide/features/autoDomain.html"},{default:s(()=>[o("More detail")]),_:1})])]),t("h2",Fa,[t("a",Ea,[t("span",null,[o("v2023.1.3.2 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Teamwork support",type:"tip"})]),t("li",null,[e(n,{text:"OpenAI API Optimising fields support",type:"tip"})]),t("li",null,[e(n,{text:"API and API storage file jumps",type:"tip"})]),t("li",null,[e(n,{text:"Project config refresh",type:"tip"})]),t("li",null,[e(n,{text:"rfr.currentModuleName support",type:"tip"})]),t("li",null,[e(n,{text:"API doc sync supports custom branch",type:"info"})]),t("li",null,[e(n,{text:"Toolbar",type:"info"})]),t("li",null,[e(n,{text:"GET、POST、DELETE、PUT、PATCH icon",type:"info"})]),t("li",null,[e(n,{text:"LocalDateTime、LocalDate、LocalTime parse",type:"info"})]),t("li",null,[e(n,{text:"Response text not format in IDEA 2023.1",type:"danger"})]),t("li",null,[e(n,{text:"Random generate url from array url",type:"danger"})]),t("li",null,[e(n,{text:"Comment can not be generate in Kotlin",type:"danger"})])]),t("p",null,[e(i,{to:"/en/guide/faq.html#s-apis-lost"},{default:s(()=>[o("FAQ:API data lost after install 2023.1.3")]),_:1})]),t("div",Ca,[t("p",Oa,[o("OpenAI API Optimising fields support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),t("p",null,[Ra,o(" Replace some random fields with the "),t("a",Da,[o("OpenAI API"),e(p)])])]),t("div",Ta,[t("p",Ma,[o("API and API storage file jumps "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Ua,La]),t("div",Wa,[t("p",Ba,[o("Project config refresh "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Ha]),t("div",Ja,[t("p",Ga,[o("rfr.currentModuleName support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),t("p",null,[o("Get the module name of the current API. Please see it in "),e(i,{to:"/en/guide/script.html#rfr"},{default:s(()=>[o("script")]),_:1}),o(".")])]),t("div",$a,[t("p",Ya,[o("API doc sync supports custom branch "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Va]),t("div",Ka,[t("p",Qa,[o("Toolbar "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Xa,Za,tl,el]),t("div",nl,[t("p",ol,[o("GET、POST、DELETE、PUT、PATCH icon "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),sl]),t("h2",il,[t("a",al,[t("span",null,[o("v2023.1.2 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Image render from response",type:"tip"})]),t("li",null,[e(n,{text:"Annual report",type:"tip"})]),t("li",null,[e(n,{text:"Url parse logic",type:"info"})]),t("li",null,[e(n,{text:"cUrl Import",type:"info"})]),t("li",null,[e(n,{text:"Url special character parameter encoding",type:"info"})]),t("li",null,[e(n,{text:"Add send request trigger to url field",type:"info"})]),t("li",null,[e(n,{text:"Remove title of window",type:"info"})]),t("li",null,[e(n,{text:"Patch request error in jdk11+",type:"danger"})]),t("li",null,[e(n,{text:"API name saved error",type:"danger"})])]),t("div",ll,[t("p",rl,[o("Image render from response "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),cl]),t("div",pl,[t("p",dl,[o("Annual report "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),ul]),t("div",hl,[t("p",ml,[o("Url parse logic "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),_l]),t("div",gl,[t("p",yl,[o("cUrl import "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),vl]),t("div",fl,[t("p",kl,[o("Url special character parameter encoding "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),xl]),t("div",bl,[t("p",wl,[o("Add send request trigger to url field "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Al]),t("h2",zl,[t("a",Sl,[t("span",null,[o("v2023.1.1 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Add support for quickly add domain from Yml or Properties config",type:"tip"})]),t("li",null,[e(n,{text:"Add project-level domain config",type:"tip"})]),t("li",null,[e(n,{text:"Icon alignment",type:"info"})]),t("li",null,[e(n,{text:"Tool window icon in new UI",type:"info"})]),t("li",null,[e(n,{text:"Make Project-level headers value optional",type:"info"})]),t("li",null,[e(n,{text:"Cookie fetch",type:"info"})]),t("li",null,[e(n,{text:"Swagger default value for basic type",type:"danger"})]),t("li",null,[e(n,{text:"Array not parse",type:"danger"})])]),t("div",Pl,[t("p",Il,[o("Project-level domain config "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Nl,t("p",null,[jl,o(" Supports fast config domain directly from the "),ql,o(" or "),Fl,o(" file,for more detail, please see "),e(i,{to:"/en/guide/features/projectLevelDomainConfig.html"},{default:s(()=>[e(h,{icon:"domainConfig"}),o(" Project-level domain config")]),_:1})])]),t("div",El,[t("p",Cl,[o("Icon alignment "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Ol]),t("div",Rl,[t("p",Dl,[o("Tool window icon in new UI "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Tl]),t("h2",Ml,[t("a",Ul,[t("span",null,[o("v2022.3.1 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Add @fastRequestParseIgnore comment support for parse",type:"tip"})]),t("li",null,[e(n,{text:"Add rfr.currentDomain in Script",type:"tip"})]),t("li",null,[e(n,{text:"Activation prompt optimization",type:"info"})]),t("li",null,[e(n,{text:"Reload api error in navigate when using Kotlin and Java in one project",type:"danger"})])]),t("div",Ll,[t("p",Wl,[o("Add @parseIgnore comment support for parse "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Bl]),t("div",Hl,[t("p",Jl,[o("Add rfr.currentDomain in Script "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Gl]),t("h2",$l,[t("a",Yl,[t("span",null,[o("v2022.2.9 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Compatible with IDEA 2022.2.4",type:"tip"})]),t("li",null,[e(n,{text:"Global animate config support",type:"tip"})]),t("li",null,[e(n,{text:"Cookie bug",type:"danger"})]),t("li",null,[e(n,{text:"Navigate tab load error",type:"danger"})])]),t("div",Vl,[t("p",Kl,[o("Global animate config support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),t("p",null,[Ql,o(" You can close animate in this global config, if close, icon animation "),e(h,{icon:"restfulFastRequest"}),o(" will stop")])]),t("h2",Xl,[t("a",Zl,[t("span",null,[o("v2022.2.8 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Directory download file support",type:"info"})]),t("li",null,[e(n,{text:"@RequestParam support name attribute",type:"info"})]),t("li",null,[e(n,{text:"Error when check update",type:"info"})])]),t("div",tr,[t("p",er,[o("Directory download file support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),nr]),t("h2",or,[t("a",sr,[t("span",null,[o("v2022.2.7 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Api doc sync",type:"tip"})]),t("li",null,[e(n,{text:"Api doc show return type document",type:"tip"})]),t("li",null,[e(n,{text:"Plugin update alert mechanism",type:"info"})]),t("li",null,[e(n,{text:"Common header",type:"tip"})]),t("li",null,[e(n,{text:"Full screen",type:"tip"})]),t("li",null,[e(n,{text:"Comment preview",type:"info"})]),t("li",null,[e(n,{text:"Module header value always be checked",type:"danger"})]),t("li",null,[e(n,{text:"Parse bug",type:"danger"})]),t("li",null,[e(n,{text:"Error when use string param in body",type:"danger"})])]),t("div",ir,[t("p",ar,[o("Api sync "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),e(c,{imgList:["/img/2022.2.7/apiSync_en.png","/img/2022.2.7/apiSyncSetting_en.png"]},null,8,["imgList"]),t("p",null,[o("Online Api doc sync---->"),e(i,{to:"/en/guide/features/apiDocSync.html"},{default:s(()=>[o("More detail")]),_:1})])]),lr,t("div",rr,[t("p",cr,[o("Plugin update notification mechanism "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),pr,dr,ur]),t("div",hr,[t("p",mr,[o("Common header "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),t("p",null,[_r,e(i,{to:"/en/guide/features/commonHeader.html"},{default:s(()=>[o("---->More detail")]),_:1})])]),t("div",gr,[t("p",yr,[o("Full screen "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),t("p",null,[vr,e(i,{to:"/en/guide/features/fullScreen.html"},{default:s(()=>[o("---->More detail")]),_:1})])]),t("div",fr,[t("p",kr,[o("Comment preview "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),xr]),t("h2",br,[t("a",wr,[t("span",null,[o("v2022.2.6 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Clear params support",type:"tip"})]),t("li",null,[e(n,{text:"Api comment preview",type:"tip"})]),t("li",null,[e(n,{text:"Sort param column by key",type:"tip"})]),t("li",null,[e(n,{text:"Api doc add required column",type:"info"})]),t("li",null,[e(n,{text:"Long delay in checking for updates",type:"info"})]),t("li",null,[e(n,{text:"Long delay when first open tool window",type:"info"})]),t("li",null,[e(n,{text:"Multi print when use pre-script",type:"danger"})])]),t("div",Ar,[t("p",zr,[o("Clear params support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Sr,Pr]),t("div",Ir,[t("p",Nr,[o("Api comment preview "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),jr]),t("div",qr,[t("p",Fr,[o("Sort param column by key "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Er]),t("h2",Cr,[t("a",Or,[t("span",null,[o("v2022.2.5.2 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Post script cannot be cleared",type:"danger"})])]),t("h2",Rr,[t("a",Dr,[t("span",null,[o("v2022.2.5.1 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Console syntax error",type:"danger"})])]),t("h2",Tr,[t("a",Mr,[t("span",null,[o("v2022.2.5 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Add console for script",type:"tip"})]),t("li",null,[e(n,{text:"Add print script support",type:"tip"})]),t("li",null,[e(n,{text:"Add currentProjectName and currentEnvName property in build-in property",type:"tip"})]),t("li",null,[e(n,{text:"Get description from javadoc for path and request param",type:"tip"})]),t("li",null,[e(n,{text:"@RequestPart support",type:"tip"})]),t("li",null,[e(n,{text:"Add twitter in doc action group",type:"tip"})]),t("li",null,[e(n,{text:"Post script not execute when response is success but code for example is 401",type:"danger"})])]),t("div",Ur,[t("p",Lr,[o("Console support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Wr,t("p",null,[o("More info please see "),e(i,{to:"/en/guide/script.html#console"},{default:s(()=>[o("script->console")]),_:1})])]),t("div",Br,[t("p",Hr,[o("Add currentProjectName and currentEnvName property in build-in property "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Jr,t("p",null,[o("More info please see "),e(i,{to:"/en/guide/script.html#rfr"},{default:s(()=>[o("script->Built-in variable->rfr")]),_:1})])]),t("div",Gr,[t("p",$r,[o("Get description from javadoc for path and request param "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Yr]),t("div",Vr,[t("p",Kr,[o("twitter "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Qr,Xr,Zr]),t("h2",tc,[t("a",ec,[t("span",null,[o("v2022.2.4.1 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Fix the small screen EUAL agreement cannot display the agree button",type:"danger"})])]),t("h2",nc,[t("a",oc,[t("span",null,[o("v2022.2.4 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"New logo",type:"tip"})]),t("li",null,[e(n,{text:"Support parse date by annotation's pattern",type:"tip"})]),t("li",null,[e(n,{text:"Support parse url of BaseController",type:"tip"})]),t("li",null,[e(n,{text:"Change auto update configurable",type:"info"})]),t("li",null,[e(n,{text:"Parameter encoding",type:"info"})]),t("li",null,[e(n,{text:"Parse error when map not contains generics",type:"danger"})]),t("li",null,[e(n,{text:"Post script can not add or remove header",type:"danger"})])]),t("div",sc,[t("p",ic,[o("New logo "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),e(c,{imgList:["/img/2022.2.4/newLogo.gif","/img/2022.2.4/newLogoConfig.png","/img/2022.2.4/newLogo.png"]},null,8,["imgList"]),ac]),t("div",lc,[t("p",rc,[o("Support parse date by DateTimeFormat annotation pattern "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),cc]),t("div",pc,[t("p",dc,[o("Support parse url of BaseController "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),uc]),t("div",hc,[t("p",mc,[o("Change auto update configurable "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),_c]),t("h2",gc,[t("a",yc,[t("span",null,[o("v2022.2.3.1 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Fix the bug that the parameter cannot be cleared",type:"danger"})])]),t("h2",vc,[t("a",fc,[t("span",null,[o("v2022.2.3 "),e(n,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Pre-request Script",type:"tip"})]),t("li",null,[e(n,{text:"Post-request Script",type:"tip"})]),t("li",null,[e(n,{text:"One-click copy Url",type:"tip"})]),t("li",null,[e(n,{text:"Compatible with IDEA 2021.2.1",type:"info"})]),t("li",null,[e(n,{text:"RequestParam defaultValue parse",type:"info"})]),t("li",null,[e(n,{text:"Apply table cell value change when click send request",type:"info"})]),t("li",null,[e(n,{text:"Url can not generate after close tool window and reopen",type:"danger"})]),t("li",null,[e(n,{text:"Jax-rs PATCH not supported",type:"danger"})])]),t("div",kc,[t("p",xc,[o("Script support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),bc,wc,t("p",null,[o("Scripts allow developers to more flexibly, dynamically and easily modify some input parameters of the request process and the processing of responses. Please refer to "),e(i,{to:"/en/guide/script.html"},{default:s(()=>[o("Script")]),_:1})])]),t("div",Ac,[t("p",zc,[o("One-click copy Url "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Sc]),t("div",Pc,[t("p",Ic,[o("Apply table cell value change when click send request "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Nc,t("p",null,[o("How the old version deals with it: "),e(i,{to:"/en/guide/faq.html"},{default:s(()=>[o("FAQ:After entering the parameters, the API call found that the parameters were invalid")]),_:1})])]),t("h2",jc,[t("a",qc,[t("span",null,[o("v2022.2.2 "),e(n,{text:"Free trial",type:"warn"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Add stop API request function",type:"tip"})]),t("li",null,[e(n,{text:"Batch export API doc",type:"tip"})]),t("li",null,[e(n,{text:"Add annotations when export to Postman",type:"tip"})]),t("li",null,[e(n,{text:"Editor hangs in case of a large amount of response data",type:"info"})]),t("li",null,[e(n,{text:"The experience and tips in some scenarios",type:"info"})]),t("li",null,[e(n,{text:"SearchEveryWhere err in EAP/New ui version",type:"danger"})]),t("li",null,[e(n,{text:"Error when modify number param in Multipart",type:"danger"})]),t("li",null,[e(n,{text:"History request delete operation error in some cases",type:"danger"})])]),t("div",Fc,[t("p",Ec,[o("Add stop API request function "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Cc]),t("div",Oc,[t("p",Rc,[o("Batch export API doc "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Dc]),t("h2",Tc,[t("a",Mc,[t("span",null,[o("v2022.2.1 "),e(n,{text:"Free trial",type:"warn"})])])]),t("ul",null,[t("li",null,[e(n,{text:"API grouping parameter save support",type:"tip"})]),t("li",null,[e(n,{text:"Temporary request save support",type:"tip"})]),t("li",null,[e(n,{text:"Add support for cURL import",type:"tip"})]),t("li",null,[e(n,{text:"Add Response Header in response",type:"tip"})]),t("li",null,[e(n,{text:"Add support for Url suffix",type:"tip"})]),t("li",null,[e(n,{text:"Optimized parameter parsing",type:"info"})]),t("li",null,[e(n,{text:"Optimize shortcut keys",type:"info"})]),t("li",null,[e(n,{text:"Fix Word export bug",type:"danger"})])]),t("div",Uc,[t("p",Lc,[o("API grouping parameter save support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Wc,Bc,Hc,Jc,Gc,$c,Yc]),t("div",Vc,[t("p",Kc,[o("Temporary request save support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Qc,Xc,Zc]),t("div",tp,[t("p",ep,[o("cURL import "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),np,op]),t("div",sp,[t("p",ip,[o("Add Response Header in response "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),ap]),t("div",lp,[t("p",rp,[o("Add support for Url suffix "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),cp,pp]),t("div",dp,[t("p",up,[o("Optimized parameter parsing "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),hp]),t("h2",mp,[t("a",_p,[t("span",null,[o("v2022.1.10 "),e(n,{text:"Free trial",type:"warn"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Add support for history request preview",type:"tip"})]),t("li",null,[e(n,{text:"Add support for description search in SearchEveryWhere",type:"tip"})]),t("li",null,[e(n,{text:"Add request timeout settings",type:"tip"})]),t("li",null,[e(n,{text:"Shortcut key conflict optimization",type:"info"})]),t("li",null,[e(n,{text:"Text editor character display cursor positioning optimization",type:"info"})]),t("li",null,[e(n,{text:"Curl output format optimization",type:"info"})]),t("li",null,[e(n,{text:"Optimization @Consumes(APPLICATION_JSON) ineffective problem(JAX-RS)",type:"info"})])]),t("div",gp,[t("p",yp,[o("Add support for history request preview "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),vp]),t("div",fp,[t("p",kp,[o("Add support for description search in SearchEveryWhere "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),xp]),t("div",bp,[t("p",wp,[o("Add request timeout settings "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Ap]),t("div",zp,[t("p",Sp,[o("Optimization "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Pp]),t("h2",Ip,[t("a",Np,[t("span",null,[o("v2022.1.9 "),e(n,{text:"Free trial",type:"warn"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Add shortcut keys for tool window jump",type:"tip"})]),t("li",null,[e(n,{text:"Add auto add cookie support",type:"tip"})]),t("li",null,[e(n,{text:"Add support for html preview in response raw",type:"tip"})]),t("li",null,[e(n,{text:"Ignore field parsing optimizations",type:"info"})]),t("li",null,[e(n,{text:"Generic parameter parsing support",type:"info"})]),t("li",null,[e(n,{text:"Improve project global config",type:"info"})]),t("li",null,[e(n,{text:"Interface optimization",type:"info"})]),t("li",null,[e(n,{text:"Save API insertion order optimization",type:"info"})]),t("li",null,[e(n,{text:"APIs list view optimization",type:"info"})]),t("li",null,[e(n,{text:"Optimized export preview",type:"info"})]),t("li",null,[e(n,{text:"Fixed bug when editing params at the same time delete param",type:"danger"})])]),t("div",jp,[t("p",qp,[o("Add shortcut keys for tool window jump "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Fp]),t("div",Ep,[t("p",Cp,[o("Add auto add cookie support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Op]),t("div",Rp,[t("p",Dp,[o("Add support for html preview in response raw "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Tp]),t("div",Mp,[t("p",Up,[o("Ignore field parsing optimizations "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),t("ul",null,[t("li",null,[e(n,{text:"Ignore parsing annotated by `@JsonIgnore`、`@JSONField(serialize = false)` fields",type:"info"})]),t("li",null,[e(n,{text:"Ignore parsing`transient` keyword-decorated fields",type:"info"})])])]),t("div",Lp,[t("p",Wp,[o("Generic parameter parsing support "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Bp]),t("div",Hp,[t("p",Jp,[o("Improve project global config "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Gp]),$p,t("div",Yp,[t("p",Vp,[o("APIs list view optimization "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Kp]),t("h2",Qp,[t("a",Xp,[t("span",null,[o("v2022.1.8 "),e(n,{text:"Free trial",type:"warn"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Project-level global parameters support",type:"tip"})]),t("li",null,[e(n,{text:"Optimized response data quickly add to headers",type:"info"})]),t("li",null,[e(n,{text:"Optimized cookies quickly added to the header",type:"info"})]),t("li",null,[e(n,{text:"Postman export optimization",type:"info"})]),t("li",null,[e(n,{text:"Fix navigate tree scan bug",type:"danger"})]),t("li",null,[e(n,{text:"Fix some bug",type:"danger"})])]),t("div",Zp,[t("p",td,[o("Project-level global parameters support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),ed,nd,od]),t("div",sd,[t("p",id,[o("Quickly add to header parameters "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),ad,ld,rd,cd]),t("h2",pd,[t("a",dd,[t("span",null,[o("v2022.1.7 "),e(n,{text:"Free trial",type:"warn"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Kotlin spring framework support",type:"tip"})]),t("li",null,[e(n,{text:"Add SearchEveryWhere scope search strategy",type:"tip"})]),t("li",null,[e(n,{text:"Add toggleUseSoftWrap support in editor",type:"tip"})]),t("li",null,[e(n,{text:"Add support for add to Global Header from response",type:"tip"})]),t("li",null,[e(n,{text:"Add support for navigating to the current method",type:"tip"})]),t("li",null,[e(n,{text:"Optimize automatic binding projectName for saved api under multiple modules",type:"info"})])]),t("div",ud,[t("p",hd,[o("Kotlin spring framework support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),md]),t("div",_d,[t("p",gd,[o("Add SearchEveryWhere scope search strategy "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),yd,vd]),fd,t("div",kd,[t("p",xd,[o("Add support for add to Global Header from response "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),bd]),wd,t("div",Ad,[t("p",zd,[o("Optimize automatic binding projectName for saved api under multiple modules "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Sd]),t("h2",Pd,[t("a",Id,[t("span",null,[o("v2022.1.6 "),e(n,{text:"Free trial",type:"warn"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Add support for one click to add cookie to header",type:"tip"})]),t("li",null,[e(n,{text:"Add support for sharing API to Word and html",type:"tip"})]),t("li",null,[e(n,{text:"Fix bug for `Basic Authorization` don't carry Basic",type:"danger"})]),t("li",null,[e(n,{text:"Removes the drag function in APIs tab",type:"danger"})])]),t("div",Nd,[t("p",jd,[o("Add support for one click to add cookie to header "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),qd]),t("div",Fd,[t("p",Ed,[o("Add support for sharing API to Word and html "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Cd]),t("h2",Od,[t("a",Rd,[t("span",null,[o("v2022.1.5 "),e(n,{text:"Free trial",type:"warn"})])])]),t("ul",null,[t("li",null,[e(n,{text:"Add support for automatically generating parameter descriptions",type:"tip"})]),t("li",null,[e(n,{text:"Add support for generate API documentation",type:"tip"})]),t("li",null,[e(n,{text:"Add support for single class API list preview",type:"tip"})]),t("li",null,[e(n,{text:"Remove text/html in Accept param in default header",type:"danger"})]),t("li",null,[e(n,{text:"Fix some bugs",type:"danger"})])]),t("div",Dd,[t("p",Td,[o("Add support for automatically generating parameter descriptions "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Md]),t("div",Ud,[t("p",Ld,[o("Add support for generate API documentation "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Wd,Bd]),t("div",Hd,[t("p",Jd,[o("Add support for single class API list preview "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Gd]),t("h2",$d,[t("a",Yd,[t("span",null,[o("v2022.1.4 "),e(n,{text:"Free trial",type:"warn"})])])]),Vd,t("ul",null,[t("li",null,[e(n,{text:"SearchEveryWhere highlight optimization",type:"info"})]),t("li",null,[e(n,{text:"Add support for import and export APIs",type:"tip"})]),t("li",null,[e(n,{text:"Add support for run APIs",type:"tip"})]),t("li",null,[e(n,{text:"Add timeout for api request",type:"tip"})]),t("li",null,[e(n,{text:"Compatible with idea 2022.1",type:"info"})]),t("li",null,[e(n,{text:"Make it optional for automatically generate parameters",type:"tip"})]),t("li",null,[e(n,{text:"Swagger annotation default value parameter parsing support",type:"tip"})]),t("li",null,[e(n,{text:"Merged Send and Send and Download buttons",type:"info"})]),t("li",null,[e(n,{text:"APIs user interface optimization",type:"info"})]),t("li",null,[e(n,{text:"API Navigate rename to Navigate in tab",type:"info"})]),t("li",null,[e(n,{text:"Optimize the user guide of features",type:"info"})]),t("li",null,[e(n,{text:"Url generation optimization",type:"info"})]),t("li",null,[e(n,{text:"Fix Light files should have PSI only in one project",type:"danger"})])]),t("div",Kd,[t("p",Qd,[o("SearchEveryWhere highlight optimization "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Xd]),t("div",Zd,[t("p",tu,[o("Add support for import and export APIs "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),eu,t("p",null,[o("More info "),t("strong",null,[e(i,{to:"/en/guide/feature.html#apis-import-and-export"},{default:s(()=>[o("Features->APIs import and export")]),_:1})])])]),t("div",nu,[t("p",ou,[o("Add support for run APIs "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),su]),t("div",iu,[t("p",au,[o("Automatically generate parameter optionals "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),lu]),t("div",ru,[t("p",cu,[o("Merged Send and Send and Download buttons "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),pu]),t("div",du,[t("p",uu,[o("Swagger default value parsing support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),hu,mu,t("p",null,[o("More info "),t("strong",null,[e(i,{to:"/en/guide/feature.html#swagger-default-value-parsing-support"},{default:s(()=>[o("Features->swagger default value parsing support")]),_:1})])])]),t("div",_u,[t("p",gu,[o("Optimize the user guide of features "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),yu,vu]),t("div",fu,[t("p",ku,[o("Url generation optimization "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),xu,t("p",null,[o("The following method url will be randomly generated to "),bu,o(" by click "),e(_,{icon:"restfulFastRequest"})]),wu]),t("div",Au,[t("p",zu,[o("API Navigate rename to Navigate in tab "),e(n,{vertical:"top",text:"Optimization",type:"info"})]),Su]),t("h2",Pu,[t("a",Iu,[t("span",null,[o("v2.1.3 "),e(n,{text:"Free",type:"info"})])])]),Nu,t("h2",ju,[t("a",qu,[t("span",null,[o("v2.1.2 "),e(n,{text:"Free",type:"info"})])])]),Fu,t("div",Eu,[t("p",Cu,[o("Optimize URL parsing "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Ou,Ru]),e(u,{id:"2543",data:[{id:"Scene 1: URLS are class constant references"},{id:"Scene 2: value is an array"}]},{title0:s(({value:a,isActive:l})=>[o("Scene 1: URLS are class constant references")]),title1:s(({value:a,isActive:l})=>[o("Scene 2: value is an array")]),tab0:s(({value:a,isActive:l})=>[Du]),tab1:s(({value:a,isActive:l})=>[Tu]),_:1}),t("div",Mu,[t("p",Uu,[o("Add support for export api to Postman "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Lu]),t("div",Wu,[t("p",Bu,[o("SearchEveryWhere show module "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Hu]),t("div",Ju,[t("p",Gu,[o("Optimize the group when save api "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),$u,Yu]),t("div",Vu,[t("p",Ku,[o("Global header params support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Qu]),t("h2",Xu,[t("a",Zu,[t("span",null,[o("v2.1.1 "),e(n,{text:"Free",type:"info"})])])]),th,t("div",eh,[t("p",nh,[o("SearchEveryWhere support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),oh,sh]),t("div",ih,[t("p",ah,[o("Quick view of the latest version "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),lh]),t("h2",rh,[t("a",ch,[t("span",null,[o("v2.1.0.2 "),e(n,{text:"Free",type:"info"})])])]),t("ul",null,[t("li",null,[o("Joined the organization "),t("a",ph,[dh,e(p)]),o("(An organization dedicated to native solutions for the microservice cloud)")])]),t("h2",uh,[t("a",hh,[t("span",null,[o("v2.1.0.1 "),e(n,{text:"Free",type:"info"})])])]),mh,t("h2",_h,[t("a",gh,[t("span",null,[o("v2.1.0 "),e(n,{text:"Free",type:"info"})])])]),yh,t("h2",vh,[t("a",fh,[t("span",null,[o("v2.0.9 "),e(n,{text:"Free",type:"info"})])])]),kh,t("div",xh,[t("p",bh,[o("Add headers from response "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),wh,Ah]),t("div",zh,[t("p",Sh,[o("Add format action icon to textEditor "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Ph]),t("h2",Ih,[t("a",Nh,[t("span",null,[o("v2.0.8.1 "),e(n,{text:"Free",type:"info"})])])]),jh,t("h2",qh,[t("a",Fh,[t("span",null,[o("v2.0.8 "),e(n,{text:"Free",type:"info"})])])]),Eh,t("div",Ch,[t("p",Oh,[o("send/sendDownload button support for custom shortcut keys "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Rh,Dh]),t("div",Th,[t("p",Mh,[o("Add support for filter by methodType in Api navigate "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Uh]),t("h2",Lh,[t("a",Wh,[t("span",null,[o("v2.0.7 "),e(n,{text:"Free",type:"info"})])])]),Bh,t("div",Hh,[t("p",Jh,[o("API navigate tree "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Gh,$h]),t("div",Yh,[t("p",Vh,[o("Headers Automatic switching "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),Kh,Qh]),t("div",Xh,[t("p",Zh,[o("Optimize the parameter parse of @RequestParam "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),t2]),t("div",e2,[t("p",n2,[o("Move send button to toolbar and support keyboard shortcut "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),o2,s2]),t("div",i2,[t("p",a2,[o("Optimize tool window project and env drop-down box and layout "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),l2,r2,c2]),t("h2",p2,[t("a",d2,[t("span",null,[o("v2.0.6 "),e(n,{text:"Free",type:"info"})])])]),u2,t("div",h2,[t("p",m2,[o("json grammar check "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),_2]),t("div",g2,[t("p",y2,[o("API group automatic association "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),v2,f2]),t("div",k2,[t("p",x2,[o("JAX-RS support "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),b2]),t("div",w2,[t("p",A2,[o("Show what's new "),e(n,{vertical:"top",text:"New feature",type:"tip"})]),z2]),t("h2",S2,[t("a",P2,[t("span",null,[o("v2.0.5 "),e(n,{text:"Free",type:"info"})])])]),I2,t("h2",N2,[t("a",j2,[t("span",null,[o("v2.0.4 "),e(n,{text:"Free",type:"info"})])])]),q2,t("h2",F2,[t("a",E2,[t("span",null,[o("v2.0.3 "),e(n,{text:"Free",type:"info"})])])]),C2,t("h2",O2,[t("a",R2,[t("span",null,[o("v2.0.2 "),e(n,{text:"Free",type:"info"})])])]),D2,t("h2",T2,[t("a",M2,[t("span",null,[o("v2.0.1 "),e(n,{text:"Free",type:"info"})])])]),U2,t("h2",L2,[t("a",W2,[t("span",null,[o("v2.0.0 "),e(n,{text:"Free",type:"info"})])])]),B2])}const Em=qe(He,[["render",H2],["__file","history.html.vue"]]),Cm=JSON.parse(`{"path":"/en/guide/history.html","title":"What's New","lang":"en-US","frontmatter":{"title":"What's New","icon":"changelog","description":" Announcement | Issue report please refer to GitHub Join and follow us to solve your question ❤️❤️❤️↓↓↓ Because developing version is still in development, the documentation of ...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/history.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/history.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"What's New"}],["meta",{"property":"og:description","content":" Announcement | Issue report please refer to GitHub Join and follow us to solve your question ❤️❤️❤️↓↓↓ Because developing version is still in development, the documentation of ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://img.shields.io/static/v1?label=Slack&message=Restful%20Fast%20Request&logo=slack&color=38B580"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-21T12:02:42.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"What's New"}],["meta",{"property":"article:modified_time","content":"2024-08-21T12:02:42.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"What's New\\",\\"image\\":[\\"https://img.shields.io/static/v1?label=Slack&message=Restful%20Fast%20Request&logo=slack&color=38B580\\",\\"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34\\",\\"https://api-buddy.com/img/slack.png\\",\\"https://api-buddy.com/img/twitter.png\\",\\"https://api-buddy.com/img/2024.1.7/jsonFilterEn.png\\",\\"https://api-buddy.com/img/2024.1.7/header.png\\",\\"https://api-buddy.com/img/2024.1.7/defaultMultipartFile.png\\",\\"https://api-buddy.com/img/2024.1.7/searchEveryWhere.png\\",\\"https://api-buddy.com/img/2024.1.6/jsonPath.png\\",\\"https://api-buddy.com/img/2024.1.5/addLibrary_en.png\\",\\"https://api-buddy.com/img/2024.1.5/typeDropdown.png\\",\\"https://api-buddy.com/img/2024.1.5/originUrl.png\\",\\"https://api-buddy.com/img/2024.1.4/ai_en.png\\",\\"https://api-buddy.com/img/2024.1.4/header.png\\",\\"https://api-buddy.com/img/2024.1.2/customToolbar_en.png\\",\\"https://api-buddy.com/img/2024.1.1/searchEveryWhere_en.png\\",\\"https://api-buddy.com/img/2024.1.1/ignoreFiled_en.png\\",\\"https://api-buddy.com/img/2024.1.1/manualUpdateCheck.png\\",\\"https://api-buddy.com/img/2023.2.3/environment_en.png\\",\\"https://api-buddy.com/img/2023.2.3/projectName.png\\",\\"https://api-buddy.com/img/2023.2.2/json5.png\\",\\"https://api-buddy.com/img/2023.2.1/urlInputWithMethod.png\\",\\"https://api-buddy.com/img/2023.2.1/openDoc.png\\",\\"https://api-buddy.com/img/2023.2.1/showApis.png\\",\\"https://api-buddy.com/img/2023.2.1/pluginVersion.png\\",\\"https://api-buddy.com/img/2023.1.9/quickAddEnvironmentVariable.png\\",\\"https://api-buddy.com/img/2023.1.9/environmentVariableEditRemoveModify_en.png\\",\\"https://api-buddy.com/img/2023.1.9/showApis.gif\\",\\"https://api-buddy.com/img/2023.1.9/responseSize.png\\",\\"https://api-buddy.com/img/2023.1.8/methodDescriptionLength_en.png\\",\\"https://api-buddy.com/img/2023.1.7.1/searchEveryWhere.png\\",\\"https://api-buddy.com/img/toolwindowNew.png\\",\\"https://api-buddy.com/img/2023.1.7/searchEveryWhere.png\\",\\"https://img.shields.io/static/v1?label=Slack&message=Restful%20Fast%20Request&logo=slack&color=38B580\\",\\"https://api-buddy.com/img/http/new/get_dark.svg\\",\\"https://api-buddy.com/img/http/get_dark.svg\\",\\"https://api-buddy.com/img/http/new/post_dark.svg\\",\\"https://api-buddy.com/img/http/post_dark.svg\\",\\"https://api-buddy.com/img/http/new/delete_dark.svg\\",\\"https://api-buddy.com/img/http/delete_dark.svg\\",\\"https://api-buddy.com/img/http/new/put_dark.svg\\",\\"https://api-buddy.com/img/http/put_dark.svg\\",\\"https://api-buddy.com/img/http/new/patch_dark.svg\\",\\"https://api-buddy.com/img/http/patch_dark.svg\\",\\"https://api-buddy.com/img/2023.1.7/fieldDup.png\\",\\"https://api-buddy.com/img/2023.1.6/batchEdit_en.png\\",\\"https://api-buddy.com/img/2023.1.5/editorAction.png\\",\\"https://api-buddy.com/img/2023.1.3/ai.gif\\",\\"https://api-buddy.com/img/2023.1.3/jumpToJsonData.png\\",\\"https://api-buddy.com/img/2023.1.3/listJump2JsonData.png\\",\\"https://api-buddy.com/img/2023.1.3/refreshProjectConfig.png\\",\\"https://api-buddy.com/img/2023.1.3/apiSyncSupportBranch.png\\",\\"https://api-buddy.com/img/2023.1.3/htoolbar.png\\",\\"https://api-buddy.com/img/2023.1.3/vtoolbar.png\\",\\"https://api-buddy.com/img/2023.1.3/toolbarSetting.png\\",\\"https://api-buddy.com/img/2023.1.3/apis.png\\",\\"https://api-buddy.com/img/2023.1.2/imageRender.png\\",\\"https://api-buddy.com/img/2023.1.2/annualReport_en.png\\",\\"https://api-buddy.com/img/2023.1.1/projectLevelDomainConfig_en.png \\\\\\"Domain config\\\\\\"\\",\\"https://api-buddy.com/img/2023.1.1/projectLevelDomainDialog_en.png \\\\\\"Domain list\\\\\\"\\",\\"https://api-buddy.com/img/2022.2.9/animateConfig_en.png\\",\\"https://api-buddy.com/img/2022.2.7/returnValueDoc.png\\",\\"https://api-buddy.com/img/2022.2.7/upgradeNotice_en.png\\",\\"https://api-buddy.com/img/2022.2.7/commonHeader.gif\\",\\"https://api-buddy.com/img/2022.2.7/fullScreen.png\\",\\"https://api-buddy.com/img/2022.2.7/commentPreview.png\\",\\"https://api-buddy.com/img/2022.2.6/clear.png\\",\\"https://api-buddy.com/img/2022.2.6/clearColumnValue.png\\",\\"https://api-buddy.com/img/2022.2.6/showCommentConfig.png\\",\\"https://api-buddy.com/img/2022.2.6/showCommentInClass.png\\",\\"https://api-buddy.com/img/2022.2.6/showCommentInNavigate.png\\",\\"https://api-buddy.com/img/2022.2.6/sortColumn.png\\",\\"https://api-buddy.com/img/2022.2.5/console_en.png\\",\\"https://api-buddy.com/img/2022.2.5/parseDocDesc.png\\",\\"https://api-buddy.com/img/twitter.png\\",\\"https://api-buddy.com/img/2022.2.5/twitterAction.png\\",\\"https://api-buddy.com/img/2022.2.4/dateTimeFormat.png\\",\\"https://api-buddy.com/img/2022.2.4/baseController.png\\",\\"https://api-buddy.com/img/2022.2.4/autoUpdate.png\\",\\"https://api-buddy.com/img/2022.2.3/scriptProject_en.png\\",\\"https://api-buddy.com/img/2022.2.3/scriptModule_en.png\\",\\"https://api-buddy.com/img/2022.2.3/copyUrl.png\\",\\"https://api-buddy.com/img/2022.2.2/stopApi.gif\\",\\"https://api-buddy.com/img/2022.2.2/batchExportApiDoc.png\\",\\"https://api-buddy.com/img/2022.2.1/groupSave_en.png\\",\\"https://api-buddy.com/img/2022.2.1/apiParamGroup_en.gif\\",\\"https://api-buddy.com/img/2022.2.1/tempSave_en.png\\",\\"https://api-buddy.com/img/2022.2.1/importByCurl_en.gif\\",\\"https://api-buddy.com/img/2022.2.1/responseHeader.png\\",\\"https://api-buddy.com/img/2022.2.1/urlSuffix.png\\",\\"https://api-buddy.com/img/history.png\\",\\"https://api-buddy.com/img/searchEveryWhereDescription.png\\",\\"https://api-buddy.com/img/timeoutSetting.png\\",\\"https://api-buddy.com/img/toolwindowShortcut.png\\",\\"https://api-buddy.com/img/autoStoreCookie.png\\",\\"https://api-buddy.com/img/rawHtmlPreview.png\\",\\"https://api-buddy.com/img/projectGlobalParam.png\\",\\"https://api-buddy.com/img/apisList.png\\",\\"https://api-buddy.com/img/projectConfigParam.png\\",\\"https://api-buddy.com/img/add2projectConfig.png\\",\\"https://api-buddy.com/img/cookie2projectConfig.png\\",\\"https://api-buddy.com/img/kotlinSupport.png\\",\\"https://api-buddy.com/img/searchEveryWhereStrategy.png\\",\\"https://api-buddy.com/img/toggleUseSoftWrap.png\\",\\"https://api-buddy.com/img/add2GlobalHeader.png\\",\\"https://api-buddy.com/img/navigate2CurrentMethod.png\\",\\"https://api-buddy.com/img/addCookie2Header.png\\",\\"https://api-buddy.com/img/shareApi_en.png\\",\\"https://api-buddy.com/img/paramDescription.png\\",\\"https://api-buddy.com/img/shareDocButton.png\\",\\"https://api-buddy.com/img/apiDocExample.png\\",\\"https://api-buddy.com/img/apiPreview.gif\\",\\"https://api-buddy.com/img/searchEveryWhereHighlight.png\\",\\"https://api-buddy.com/img/exportImportApis.gif\\",\\"https://api-buddy.com/img/runInApiManagement.png\\",\\"https://api-buddy.com/img/generateSwitch_en.png\\",\\"https://api-buddy.com/img/mergeRunAndDownload.png\\",\\"https://api-buddy.com/img/help.png\\",\\"https://api-buddy.com/img/export2postman.gif\\",\\"https://api-buddy.com/img/searchEveryWhereModule.png\\",\\"https://api-buddy.com/img/save2ControllerGroup.png\\",\\"https://api-buddy.com/img/globalRequestHeader.png\\",\\"https://api-buddy.com/img/searchEveryWhere.gif\\",\\"https://api-buddy.com/img/whatsnewNotifcation.png\\",\\"https://api-buddy.com/img/quickAddHeaders.gif\\",\\"https://api-buddy.com/img/format.gif\\",\\"https://api-buddy.com/img/shortcutSendAndDownload.png\\",\\"https://api-buddy.com/img/methodFilter.png\\",\\"https://api-buddy.com/img/apinav.gif\\",\\"https://api-buddy.com/img/headerSwitch.gif\\",\\"https://api-buddy.com/img/toolbarSend.png\\",\\"https://api-buddy.com/img/dropdownProject.png\\",\\"https://api-buddy.com/img/dropdownEnv.png\\",\\"https://api-buddy.com/img/json_en.png\\",\\"https://api-buddy.com/img/apiGroup_en.gif\\",\\"https://api-buddy.com/img/moduleSearch.gif\\",\\"https://api-buddy.com/img/jaxrs.gif\\",\\"https://api-buddy.com/img/whatsnew_en.png\\"],\\"dateModified\\":\\"2024-08-21T12:02:42.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"2024.1.7","slug":"_2024-1-7","link":"#_2024-1-7","children":[]},{"level":2,"title":"2024.1.6.3","slug":"_2024-1-6-3","link":"#_2024-1-6-3","children":[]},{"level":2,"title":"2024.1.6.2","slug":"_2024-1-6-2","link":"#_2024-1-6-2","children":[]},{"level":2,"title":"2024.1.6","slug":"_2024-1-6","link":"#_2024-1-6","children":[]},{"level":2,"title":"2024.1.5.1","slug":"_2024-1-5-1","link":"#_2024-1-5-1","children":[]},{"level":2,"title":"2024.1.5","slug":"_2024-1-5","link":"#_2024-1-5","children":[]},{"level":2,"title":"2024.1.4","slug":"_2024-1-4","link":"#_2024-1-4","children":[]},{"level":2,"title":"2024.1.3","slug":"_2024-1-3","link":"#_2024-1-3","children":[]},{"level":2,"title":"2024.1.2.1","slug":"_2024-1-2-1","link":"#_2024-1-2-1","children":[]},{"level":2,"title":"2024.1.2","slug":"_2024-1-2","link":"#_2024-1-2","children":[]},{"level":2,"title":"2024.1.1","slug":"_2024-1-1","link":"#_2024-1-1","children":[]},{"level":2,"title":"2023.2.3.1","slug":"_2023-2-3-1","link":"#_2023-2-3-1","children":[]},{"level":2,"title":"2023.2.3","slug":"_2023-2-3","link":"#_2023-2-3","children":[]},{"level":2,"title":"2023.2.2","slug":"_2023-2-2","link":"#_2023-2-2","children":[]},{"level":2,"title":"2023.2.1.1","slug":"_2023-2-1-1","link":"#_2023-2-1-1","children":[]},{"level":2,"title":"2023.2.1","slug":"_2023-2-1","link":"#_2023-2-1","children":[]},{"level":2,"title":"2023.1.9","slug":"_2023-1-9","link":"#_2023-1-9","children":[]},{"level":2,"title":"2023.1.8","slug":"_2023-1-8","link":"#_2023-1-8","children":[]},{"level":2,"title":"2023.1.7.1","slug":"_2023-1-7-1","link":"#_2023-1-7-1","children":[]},{"level":2,"title":"2023.1.7","slug":"_2023-1-7","link":"#_2023-1-7","children":[]},{"level":2,"title":"2023.1.6","slug":"_2023-1-6","link":"#_2023-1-6","children":[]},{"level":2,"title":"2023.1.5","slug":"_2023-1-5","link":"#_2023-1-5","children":[]},{"level":2,"title":"v2023.1.4.2","slug":"v2023-1-4-2","link":"#v2023-1-4-2","children":[]},{"level":2,"title":"v2023.1.4.1","slug":"v2023-1-4-1","link":"#v2023-1-4-1","children":[]},{"level":2,"title":"v2023.1.4","slug":"v2023-1-4","link":"#v2023-1-4","children":[]},{"level":2,"title":"v2023.1.3.2","slug":"v2023-1-3-2","link":"#v2023-1-3-2","children":[]},{"level":2,"title":"v2023.1.2","slug":"v2023-1-2","link":"#v2023-1-2","children":[]},{"level":2,"title":"v2023.1.1","slug":"v2023-1-1","link":"#v2023-1-1","children":[]},{"level":2,"title":"v2022.3.1","slug":"v2022-3-1","link":"#v2022-3-1","children":[]},{"level":2,"title":"v2022.2.9","slug":"v2022-2-9","link":"#v2022-2-9","children":[]},{"level":2,"title":"v2022.2.8","slug":"v2022-2-8","link":"#v2022-2-8","children":[]},{"level":2,"title":"v2022.2.7","slug":"v2022-2-7","link":"#v2022-2-7","children":[]},{"level":2,"title":"v2022.2.6","slug":"v2022-2-6","link":"#v2022-2-6","children":[]},{"level":2,"title":"v2022.2.5.2","slug":"v2022-2-5-2","link":"#v2022-2-5-2","children":[]},{"level":2,"title":"v2022.2.5.1","slug":"v2022-2-5-1","link":"#v2022-2-5-1","children":[]},{"level":2,"title":"v2022.2.5","slug":"v2022-2-5","link":"#v2022-2-5","children":[]},{"level":2,"title":"v2022.2.4.1","slug":"v2022-2-4-1","link":"#v2022-2-4-1","children":[]},{"level":2,"title":"v2022.2.4","slug":"v2022-2-4","link":"#v2022-2-4","children":[]},{"level":2,"title":"v2022.2.3.1","slug":"v2022-2-3-1","link":"#v2022-2-3-1","children":[]},{"level":2,"title":"v2022.2.3","slug":"v2022-2-3","link":"#v2022-2-3","children":[]},{"level":2,"title":"v2022.2.2","slug":"v2022-2-2","link":"#v2022-2-2","children":[]},{"level":2,"title":"v2022.2.1","slug":"v2022-2-1","link":"#v2022-2-1","children":[]},{"level":2,"title":"v2022.1.10","slug":"v2022-1-10","link":"#v2022-1-10","children":[]},{"level":2,"title":"v2022.1.9","slug":"v2022-1-9","link":"#v2022-1-9","children":[]},{"level":2,"title":"v2022.1.8","slug":"v2022-1-8","link":"#v2022-1-8","children":[]},{"level":2,"title":"v2022.1.7","slug":"v2022-1-7","link":"#v2022-1-7","children":[]},{"level":2,"title":"v2022.1.6","slug":"v2022-1-6","link":"#v2022-1-6","children":[]},{"level":2,"title":"v2022.1.5","slug":"v2022-1-5","link":"#v2022-1-5","children":[]},{"level":2,"title":"v2022.1.4","slug":"v2022-1-4","link":"#v2022-1-4","children":[]},{"level":2,"title":"v2.1.3","slug":"v2-1-3","link":"#v2-1-3","children":[]},{"level":2,"title":"v2.1.2","slug":"v2-1-2","link":"#v2-1-2","children":[]},{"level":2,"title":"v2.1.1","slug":"v2-1-1","link":"#v2-1-1","children":[]},{"level":2,"title":"v2.1.0.2","slug":"v2-1-0-2","link":"#v2-1-0-2","children":[]},{"level":2,"title":"v2.1.0.1","slug":"v2-1-0-1","link":"#v2-1-0-1","children":[]},{"level":2,"title":"v2.1.0","slug":"v2-1-0","link":"#v2-1-0","children":[]},{"level":2,"title":"v2.0.9","slug":"v2-0-9","link":"#v2-0-9","children":[]},{"level":2,"title":"v2.0.8.1","slug":"v2-0-8-1","link":"#v2-0-8-1","children":[]},{"level":2,"title":"v2.0.8","slug":"v2-0-8","link":"#v2-0-8","children":[]},{"level":2,"title":"v2.0.7","slug":"v2-0-7","link":"#v2-0-7","children":[]},{"level":2,"title":"v2.0.6","slug":"v2-0-6","link":"#v2-0-6","children":[]},{"level":2,"title":"v2.0.5","slug":"v2-0-5","link":"#v2-0-5","children":[]},{"level":2,"title":"v2.0.4","slug":"v2-0-4","link":"#v2-0-4","children":[]},{"level":2,"title":"v2.0.3","slug":"v2-0-3","link":"#v2-0-3","children":[]},{"level":2,"title":"v2.0.2","slug":"v2-0-2","link":"#v2-0-2","children":[]},{"level":2,"title":"v2.0.1","slug":"v2-0-1","link":"#v2-0-1","children":[]},{"level":2,"title":"v2.0.0","slug":"v2-0-0","link":"#v2-0-0","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1724241762000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":5},{"name":"kings","email":"963987632@qq.com","commits":4}]},"readingTime":{"minutes":32.57,"words":9770},"filePathRelative":"en/guide/history.md","localizedDate":"May 31, 2024","autoDesc":true}`);export{Em as comp,Cm as data}; diff --git a/assets/historyRequest.html-09A8ToLV.js b/assets/historyRequest.html-09A8ToLV.js new file mode 100644 index 000000000..7f86dedf1 --- /dev/null +++ b/assets/historyRequest.html-09A8ToLV.js @@ -0,0 +1 @@ +import{_ as o}from"./history-jJ_6Nu4h.js";import{_ as a,r,o as n,c as i,a as e,d as s,b as c}from"./app-8OZtYazS.js";const m={},p=e("h1",{id:"历史请求预览",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#历史请求预览"},[e("span",null,"历史请求预览")])],-1),d=e("p",null,"隐藏技能:双击记录可以展示详情",-1),l=e("p",null,[e("img",{src:o,alt:"history",loading:"lazy"})],-1);function h(u,g){const t=r("Badge");return n(),i("div",null,[p,e("p",null,[s("版本要求: "),c(t,{text:"2022.1.10"})]),d,l])}const f=a(m,[["render",h],["__file","historyRequest.html.vue"]]),q=JSON.parse('{"path":"/guide/features/historyRequest.html","title":"历史请求预览","lang":"zh-CN","frontmatter":{"description":"历史请求预览 版本要求: 隐藏技能:双击记录可以展示详情 history ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/historyRequest.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/historyRequest.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"历史请求预览"}],["meta",{"property":"og:description","content":"历史请求预览 版本要求: 隐藏技能:双击记录可以展示详情 history "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/history.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"历史请求预览"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"历史请求预览\\",\\"image\\":[\\"https://api-buddy.com/img/history.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.1,"words":30},"filePathRelative":"guide/features/historyRequest.md","localizedDate":"2024年5月31日","autoDesc":true}');export{f as comp,q as data}; diff --git a/assets/historyRequest.html-bPhmCsyX.js b/assets/historyRequest.html-bPhmCsyX.js new file mode 100644 index 000000000..167953672 --- /dev/null +++ b/assets/historyRequest.html-bPhmCsyX.js @@ -0,0 +1 @@ +import{_ as r,r as s,o as i,c as a,a as e,d as t,b as n}from"./app-8OZtYazS.js";const c="/img/history_en.png",l={},d=e("h1",{id:"history-request",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#history-request"},[e("span",null,"History request")])],-1),p=e("p",null,[e("strong",null,"Hidden skills"),t(": Double-click the record to display details.")],-1),m=e("p",null,[e("img",{src:c,alt:"history",loading:"lazy"})],-1);function u(h,y){const o=s("Badge");return i(),a("div",null,[d,e("p",null,[t("Version required: "),n(o,{text:"2022.1.0"})]),p,m])}const _=r(l,[["render",u],["__file","historyRequest.html.vue"]]),q=JSON.parse('{"path":"/en/guide/features/historyRequest.html","title":"History request","lang":"en-US","frontmatter":{"description":"History request Version required: Hidden skills: Double-click the record to display details. history ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/historyRequest.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/historyRequest.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"History request"}],["meta",{"property":"og:description","content":"History request Version required: Hidden skills: Double-click the record to display details. history "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/history_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"History request"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"History request\\",\\"image\\":[\\"https://api-buddy.com/img/history_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.06,"words":19},"filePathRelative":"en/guide/features/historyRequest.md","localizedDate":"May 31, 2024","autoDesc":true}');export{_ as comp,q as data}; diff --git a/assets/htmlPreview.html-5mxNTly4.js b/assets/htmlPreview.html-5mxNTly4.js new file mode 100644 index 000000000..8ee1f7fb4 --- /dev/null +++ b/assets/htmlPreview.html-5mxNTly4.js @@ -0,0 +1 @@ +import{_ as n}from"./rawHtmlPreview-k0XMOGO2.js";import{_ as m,r,o as l,c,a as e,d as t,b as a}from"./app-8OZtYazS.js";const p={},s=e("h1",{id:"html-preview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#html-preview"},[e("span",null,"Html preview")])],-1),d=e("p",null,[e("img",{src:n,alt:"rawHtmlPreview",loading:"lazy"})],-1);function h(u,g){const o=r("Badge"),i=r("ColorIcon");return l(),c("div",null,[s,e("p",null,[t("Version required: "),a(o,{text:"2022.1.9"})]),e("p",null,[t("Click "),a(i,{icon:"chrome"}),t(" and view the response using HTML.")]),d])}const v=m(p,[["render",h],["__file","htmlPreview.html.vue"]]),y=JSON.parse('{"path":"/en/guide/features/htmlPreview.html","title":"Html preview","lang":"en-US","frontmatter":{"description":"Html preview Version required: Click rawHtmlPreview ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/htmlPreview.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/htmlPreview.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Html preview"}],["meta",{"property":"og:description","content":"Html preview Version required: Click rawHtmlPreview "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/rawHtmlPreview.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Html preview"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Html preview\\",\\"image\\":[\\"https://api-buddy.com/img/rawHtmlPreview.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.07,"words":21},"filePathRelative":"en/guide/features/htmlPreview.md","localizedDate":"May 31, 2024","autoDesc":true}');export{v as comp,y as data}; diff --git a/assets/htmlPreview.html-yU2glsc2.js b/assets/htmlPreview.html-yU2glsc2.js new file mode 100644 index 000000000..6a450d179 --- /dev/null +++ b/assets/htmlPreview.html-yU2glsc2.js @@ -0,0 +1 @@ +import{_ as a}from"./rawHtmlPreview-k0XMOGO2.js";import{_ as r,r as o,o as m,c as n,a as e,d as i,b as l}from"./app-8OZtYazS.js";const c={},p=e("h1",{id:"html-预览",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#html-预览"},[e("span",null,"Html 预览")])],-1),s=e("p",null,"可以对 html 进行预览",-1),d=e("p",null,[e("img",{src:a,alt:"rawHtmlPreview",loading:"lazy"})],-1);function h(g,u){const t=o("Badge");return m(),n("div",null,[p,e("p",null,[i("版本要求: "),l(t,{text:"2022.1.9"})]),s,d])}const y=r(c,[["render",h],["__file","htmlPreview.html.vue"]]),f=JSON.parse('{"path":"/guide/features/htmlPreview.html","title":"Html 预览","lang":"zh-CN","frontmatter":{"description":"Html 预览 版本要求: 可以对 html 进行预览 rawHtmlPreview ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/htmlPreview.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/htmlPreview.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Html 预览"}],["meta",{"property":"og:description","content":"Html 预览 版本要求: 可以对 html 进行预览 rawHtmlPreview "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/rawHtmlPreview.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Html 预览"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Html 预览\\",\\"image\\":[\\"https://api-buddy.com/img/rawHtmlPreview.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.07,"words":21},"filePathRelative":"guide/features/htmlPreview.md","localizedDate":"2024年5月31日","autoDesc":true}');export{y as comp,f as data}; diff --git a/assets/icon.html-OIsm6Oa2.js b/assets/icon.html-OIsm6Oa2.js new file mode 100644 index 000000000..f78564d27 --- /dev/null +++ b/assets/icon.html-OIsm6Oa2.js @@ -0,0 +1 @@ +import{_ as t,a as e,b as a,c as o,d as i,e as r}from"./file-DiiNDLTi.js";import{_ as n,o as d,c,e as s}from"./app-8OZtYazS.js";const m={},l=s('

    图标和类型映射关系

    IconType
    arrayArray
    objectObject
    numberNumber
    stringString
    booleanBoolean
    fileFile
    ',2),p=[l];function g(h,y){return d(),c("div",null,p)}const b=n(m,[["render",g],["__file","icon.html.vue"]]),f=JSON.parse('{"path":"/guide/getstarted/icon.html","title":"类型 Icon 映射","lang":"zh-CN","frontmatter":{"title":"类型 Icon 映射","icon":"discoverfill","description":"图标和类型映射关系 ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/getstarted/icon.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/getstarted/icon.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"类型 Icon 映射"}],["meta",{"property":"og:description","content":"图标和类型映射关系 "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/icon/array.svg"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"类型 Icon 映射"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"类型 Icon 映射\\",\\"image\\":[\\"https://api-buddy.com/img/icon/array.svg\\",\\"https://api-buddy.com/img/icon/object.svg\\",\\"https://api-buddy.com/img/icon/number.svg\\",\\"https://api-buddy.com/img/icon/string.svg\\",\\"https://api-buddy.com/img/icon/boolean.svg\\",\\"https://api-buddy.com/img/icon/file.svg\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"图标和类型映射关系","slug":"图标和类型映射关系","link":"#图标和类型映射关系","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.12,"words":37},"filePathRelative":"guide/getstarted/icon.md","localizedDate":"2024年5月31日","autoDesc":true}');export{b as comp,f as data}; diff --git a/assets/icon.html-U2bzJaU6.js b/assets/icon.html-U2bzJaU6.js new file mode 100644 index 000000000..d58856ea8 --- /dev/null +++ b/assets/icon.html-U2bzJaU6.js @@ -0,0 +1 @@ +import{_ as t,a as e,b as a,c as o,d as i,e as n}from"./file-DiiNDLTi.js";import{_ as r,o as d,c,e as m}from"./app-8OZtYazS.js";const p={},s=m('
    IconType
    Array
    Object
    Number
    String
    Boolean
    File
    ',1),l=[s];function g(y,h){return d(),c("div",null,l)}const b=r(p,[["render",g],["__file","icon.html.vue"]]),f=JSON.parse('{"path":"/en/guide/getstarted/icon.html","title":"Icon and type mapping","lang":"en-US","frontmatter":{"title":"Icon and type mapping","icon":"discoverfill","description":" ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/getstarted/icon.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/getstarted/icon.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Icon and type mapping"}],["meta",{"property":"og:description","content":" "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/icon/array.svg"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Icon and type mapping"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Icon and type mapping\\",\\"image\\":[\\"https://api-buddy.com/img/icon/array.svg\\",\\"https://api-buddy.com/img/icon/object.svg\\",\\"https://api-buddy.com/img/icon/number.svg\\",\\"https://api-buddy.com/img/icon/string.svg\\",\\"https://api-buddy.com/img/icon/boolean.svg\\",\\"https://api-buddy.com/img/icon/file.svg\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.07,"words":21},"filePathRelative":"en/guide/getstarted/icon.md","localizedDate":"May 31, 2024","autoDesc":true}');export{b as comp,f as data}; diff --git a/assets/ignoreFiled-6BsUexZN.js b/assets/ignoreFiled-6BsUexZN.js new file mode 100644 index 000000000..a65db6cc2 --- /dev/null +++ b/assets/ignoreFiled-6BsUexZN.js @@ -0,0 +1 @@ +const i="/img/2024.1.1/ignoreFiled.png";export{i as _}; diff --git a/assets/ignoreFiled_en-EyuGDq4I.js b/assets/ignoreFiled_en-EyuGDq4I.js new file mode 100644 index 000000000..f14ed7d7d --- /dev/null +++ b/assets/ignoreFiled_en-EyuGDq4I.js @@ -0,0 +1 @@ +const e="/img/2024.1.1/ignoreFiled_en.png";export{e as _}; diff --git a/assets/importByCurl-5n26pegp.js b/assets/importByCurl-5n26pegp.js new file mode 100644 index 000000000..25f5d24d2 --- /dev/null +++ b/assets/importByCurl-5n26pegp.js @@ -0,0 +1 @@ +const i="/img/2022.2.1/importByCurl.gif";export{i as _}; diff --git a/assets/importByCurl_en-3-Qsaakd.js b/assets/importByCurl_en-3-Qsaakd.js new file mode 100644 index 000000000..c353b8328 --- /dev/null +++ b/assets/importByCurl_en-3-Qsaakd.js @@ -0,0 +1 @@ +const i="/img/2022.2.1/importByCurl_en.gif";export{i as _}; diff --git a/assets/index-QOy62Fup.js b/assets/index-QOy62Fup.js new file mode 100644 index 000000000..8855e2467 --- /dev/null +++ b/assets/index-QOy62Fup.js @@ -0,0 +1,17 @@ +/*! @docsearch/js 3.5.2 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */function ur(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function I(t){for(var e=1;e=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function se(t,e){return function(r){if(Array.isArray(r))return r}(t)||function(r,n){var o=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(o!=null){var i,a,c=[],u=!0,s=!1;try{for(o=o.call(r);!(u=(i=o.next()).done)&&(c.push(i.value),!n||c.length!==n);u=!0);}catch(l){s=!0,a=l}finally{try{u||o.return==null||o.return()}finally{if(s)throw a}}return c}}(t,e)||yn(t,e)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function ft(t){return function(e){if(Array.isArray(e))return Lt(e)}(t)||function(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}(t)||yn(t)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function yn(t,e){if(t){if(typeof t=="string")return Lt(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set"?Array.from(t):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Lt(t,e):void 0}}function Lt(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r3)for(r=[r],i=3;i0?Ie(v.type,v.props,v.key,null,v.__v):v)!=null){if(v.__=r,v.__b=r.__b+1,(p=b[l])===null||p&&v.key==p.key&&v.type===p.type)b[l]=void 0;else for(m=0;m<_;m++){if((p=b[m])&&v.key==p.key&&v.type===p.type){b[m]=void 0;break}p=null}Yt(t,v,p=p||mt,o,i,a,c,u,s),d=v.__e,(m=v.ref)&&p.ref!=m&&(y||(y=[]),p.ref&&y.push(p.ref,null,v),y.push(m,v.__c||d,v)),d!=null?(h==null&&(h=d),typeof v.type=="function"&&v.__k!=null&&v.__k===p.__k?v.__d=u=jn(v,u,t):u=wn(t,v,p,b,d,u),s||r.type!=="option"?typeof r.type=="function"&&(r.__d=u):t.value=""):u&&p.__e==u&&u.parentNode!=t&&(u=We(p))}for(r.__e=h,l=_;l--;)b[l]!=null&&(typeof r.type=="function"&&b[l].__e!=null&&b[l].__e==r.__d&&(r.__d=We(n,l+1)),In(b[l],b[l]));if(y)for(l=0;l3)for(r=[r],i=3;i=r.__.length&&r.__.push({}),r.__[t]}function kn(t){return pe=1,An(xn,t)}function An(t,e,r){var n=Je(de++,2);return n.t=t,n.__c||(n.__=[r?r(e):xn(void 0,e),function(o){var i=n.t(n.__[0],o);n.__[0]!==i&&(n.__=[i,n.__[1]],n.__c.setState({}))}],n.__c=q),n.__}function Cn(t,e){var r=Je(de++,3);!j.__s&&Gt(r.__H,e)&&(r.__=t,r.__H=e,q.__H.__h.push(r))}function gr(t,e){var r=Je(de++,4);!j.__s&&Gt(r.__H,e)&&(r.__=t,r.__H=e,q.__h.push(r))}function Pt(t,e){var r=Je(de++,7);return Gt(r.__H,e)&&(r.__=t(),r.__H=e,r.__h=t),r.__}function yo(){Ht.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(ut),t.__H.__h.forEach(Ut),t.__H.__h=[]}catch(e){t.__H.__h=[],j.__e(e,t.__v)}}),Ht=[]}j.__b=function(t){q=null,pr&&pr(t)},j.__r=function(t){vr&&vr(t),de=0;var e=(q=t.__c).__H;e&&(e.__h.forEach(ut),e.__h.forEach(Ut),e.__h=[])},j.diffed=function(t){dr&&dr(t);var e=t.__c;e&&e.__H&&e.__H.__h.length&&(Ht.push(e)!==1&&mr===j.requestAnimationFrame||((mr=j.requestAnimationFrame)||function(r){var n,o=function(){clearTimeout(i),br&&cancelAnimationFrame(n),setTimeout(r)},i=setTimeout(o,100);br&&(n=requestAnimationFrame(o))})(yo)),q=void 0},j.__c=function(t,e){e.some(function(r){try{r.__h.forEach(ut),r.__h=r.__h.filter(function(n){return!n.__||Ut(n)})}catch(n){e.some(function(o){o.__h&&(o.__h=[])}),e=[],j.__e(n,r.__v)}}),hr&&hr(t,e)},j.unmount=function(t){yr&&yr(t);var e=t.__c;if(e&&e.__H)try{e.__H.__.forEach(ut)}catch(r){j.__e(r,e.__v)}};var br=typeof requestAnimationFrame=="function";function ut(t){var e=q;typeof t.__c=="function"&&t.__c(),q=e}function Ut(t){var e=q;t.__c=t.__(),q=e}function Gt(t,e){return!t||t.length!==e.length||e.some(function(r,n){return r!==t[n]})}function xn(t,e){return typeof e=="function"?e(t):e}function Nn(t,e){for(var r in e)t[r]=e[r];return t}function Ft(t,e){for(var r in t)if(r!=="__source"&&!(r in e))return!0;for(var n in e)if(n!=="__source"&&t[n]!==e[n])return!0;return!1}function Bt(t){this.props=t}(Bt.prototype=new K).isPureReactComponent=!0,Bt.prototype.shouldComponentUpdate=function(t,e){return Ft(this.props,t)||Ft(this.state,e)};var _r=j.__b;j.__b=function(t){t.type&&t.type.__f&&t.ref&&(t.props.ref=t.ref,t.ref=null),_r&&_r(t)};var go=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911,Or=function(t,e){return t==null?null:$($(t).map(e))},bo={map:Or,forEach:Or,count:function(t){return t?$(t).length:0},only:function(t){var e=$(t);if(e.length!==1)throw"Children.only";return e[0]},toArray:$},_o=j.__e;function ct(){this.__u=0,this.t=null,this.__b=null}function Tn(t){var e=t.__.__c;return e&&e.__e&&e.__e(t)}function we(){this.u=null,this.o=null}j.__e=function(t,e,r){if(t.then){for(var n,o=e;o=o.__;)if((n=o.__c)&&n.__c)return e.__e==null&&(e.__e=r.__e,e.__k=r.__k),n.__c(t,e)}_o(t,e,r)},(ct.prototype=new K).__c=function(t,e){var r=e.__c,n=this;n.t==null&&(n.t=[]),n.t.push(r);var o=Tn(n.__v),i=!1,a=function(){i||(i=!0,r.componentWillUnmount=r.__c,o?o(c):c())};r.__c=r.componentWillUnmount,r.componentWillUnmount=function(){a(),r.__c&&r.__c()};var c=function(){if(!--n.__u){if(n.state.__e){var s=n.state.__e;n.__v.__k[0]=function m(p,v,d){return p&&(p.__v=null,p.__k=p.__k&&p.__k.map(function(h){return m(h,v,d)}),p.__c&&p.__c.__P===v&&(p.__e&&d.insertBefore(p.__e,p.__d),p.__c.__e=!0,p.__c.__P=d)),p}(s,s.__c.__P,s.__c.__O)}var l;for(n.setState({__e:n.__b=null});l=n.t.pop();)l.forceUpdate()}},u=e.__h===!0;n.__u++||u||n.setState({__e:n.__b=n.__v.__k[0]}),t.then(a,a)},ct.prototype.componentWillUnmount=function(){this.t=[]},ct.prototype.render=function(t,e){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),n=this.__v.__k[0].__c;this.__v.__k[0]=function i(a,c,u){return a&&(a.__c&&a.__c.__H&&(a.__c.__H.__.forEach(function(s){typeof s.__c=="function"&&s.__c()}),a.__c.__H=null),(a=Nn({},a)).__c!=null&&(a.__c.__P===u&&(a.__c.__P=c),a.__c=null),a.__k=a.__k&&a.__k.map(function(s){return i(s,c,u)})),a}(this.__b,r,n.__O=n.__P)}this.__b=null}var o=e.__e&&W(X,null,t.fallback);return o&&(o.__h=null),[W(X,null,e.__e?null:t.children),o]};var Sr=function(t,e,r){if(++r[1]===r[0]&&t.o.delete(e),t.props.revealOrder&&(t.props.revealOrder[0]!=="t"||!t.o.size))for(r=t.u;r;){for(;r.length>3;)r.pop()();if(r[1]>>1,1),e.i.removeChild(n)}}),Ke(W(Oo,{context:e.context},t.__v),e.l)):e.l&&e.componentWillUnmount()}function Rn(t,e){return W(So,{__v:t,i:e})}(we.prototype=new K).__e=function(t){var e=this,r=Tn(e.__v),n=e.o.get(t);return n[0]++,function(o){var i=function(){e.props.revealOrder?(n.push(o),Sr(e,t,n)):o()};r?r(i):i()}},we.prototype.render=function(t){this.u=null,this.o=new Map;var e=$(t.children);t.revealOrder&&t.revealOrder[0]==="b"&&e.reverse();for(var r=e.length;r--;)this.o.set(e[r],this.u=[1,0,this.u]);return t.children},we.prototype.componentDidUpdate=we.prototype.componentDidMount=function(){var t=this;this.o.forEach(function(e,r){Sr(t,r,e)})};var qn=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,jo=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,wo=function(t){return(typeof Symbol<"u"&&Ve(Symbol())=="symbol"?/fil|che|rad/i:/fil|che|ra/i).test(t)};function Ln(t,e,r){return e.__k==null&&(e.textContent=""),Ke(t,e),typeof r=="function"&&r(),t?t.__c:null}K.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(K.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}})});var jr=j.event;function Eo(){}function Po(){return this.cancelBubble}function Io(){return this.defaultPrevented}j.event=function(t){return jr&&(t=jr(t)),t.persist=Eo,t.isPropagationStopped=Po,t.isDefaultPrevented=Io,t.nativeEvent=t};var Mn,wr={configurable:!0,get:function(){return this.class}},Er=j.vnode;j.vnode=function(t){var e=t.type,r=t.props,n=r;if(typeof e=="string"){for(var o in n={},r){var i=r[o];o==="value"&&"defaultValue"in r&&i==null||(o==="defaultValue"&&"value"in r&&r.value==null?o="value":o==="download"&&i===!0?i="":/ondoubleclick/i.test(o)?o="ondblclick":/^onchange(textarea|input)/i.test(o+e)&&!wo(r.type)?o="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(o)?o=o.toLowerCase():jo.test(o)?o=o.replace(/[A-Z0-9]/,"-$&").toLowerCase():i===null&&(i=void 0),n[o]=i)}e=="select"&&n.multiple&&Array.isArray(n.value)&&(n.value=$(r.children).forEach(function(a){a.props.selected=n.value.indexOf(a.props.value)!=-1})),e=="select"&&n.defaultValue!=null&&(n.value=$(r.children).forEach(function(a){a.props.selected=n.multiple?n.defaultValue.indexOf(a.props.value)!=-1:n.defaultValue==a.props.value})),t.props=n}e&&r.class!=r.className&&(wr.enumerable="className"in r,r.className!=null&&(n.class=r.className),Object.defineProperty(n,"className",wr)),t.$$typeof=qn,Er&&Er(t)};var Pr=j.__r;j.__r=function(t){Pr&&Pr(t),Mn=t.__c};var Do={ReactCurrentDispatcher:{current:{readContext:function(t){return Mn.__n[t.__c].props.value}}}};(typeof performance>"u"?"undefined":Ve(performance))=="object"&&typeof performance.now=="function"&&performance.now.bind(performance);function Ir(t){return!!t&&t.$$typeof===qn}var f={useState:kn,useReducer:An,useEffect:Cn,useLayoutEffect:gr,useRef:function(t){return pe=5,Pt(function(){return{current:t}},[])},useImperativeHandle:function(t,e,r){pe=6,gr(function(){typeof t=="function"?t(e()):t&&(t.current=e())},r==null?r:r.concat(t))},useMemo:Pt,useCallback:function(t,e){return pe=8,Pt(function(){return t},e)},useContext:function(t){var e=q.context[t.__c],r=Je(de++,9);return r.__c=t,e?(r.__==null&&(r.__=!0,e.sub(q)),e.props.value):t.__},useDebugValue:function(t,e){j.useDebugValue&&j.useDebugValue(e?e(t):t)},version:"16.8.0",Children:bo,render:Ln,hydrate:function(t,e,r){return Dn(t,e),typeof r=="function"&&r(),t?t.__c:null},unmountComponentAtNode:function(t){return!!t.__k&&(Ke(null,t),!0)},createPortal:Rn,createElement:W,createContext:function(t,e){var r={__c:e="__cC"+bn++,__:t,Consumer:function(n,o){return n.children(o)},Provider:function(n){var o,i;return this.getChildContext||(o=[],(i={})[e]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(a){this.props.value!==a.value&&o.some(Mt)},this.sub=function(a){o.push(a);var c=a.componentWillUnmount;a.componentWillUnmount=function(){o.splice(o.indexOf(a),1),c&&c.call(a)}}),n.children}};return r.Provider.__=r.Consumer.contextType=r},createFactory:function(t){return W.bind(null,t)},cloneElement:function(t){return Ir(t)?ho.apply(null,arguments):t},createRef:function(){return{current:null}},Fragment:X,isValidElement:Ir,findDOMNode:function(t){return t&&(t.base||t.nodeType===1&&t)||null},Component:K,PureComponent:Bt,memo:function(t,e){function r(o){var i=this.props.ref,a=i==o.ref;return!a&&i&&(i.call?i(null):i.current=null),e?!e(this.props,o)||!a:Ft(this.props,o)}function n(o){return this.shouldComponentUpdate=r,W(t,o)}return n.displayName="Memo("+(t.displayName||t.name)+")",n.prototype.isReactComponent=!0,n.__f=!0,n},forwardRef:function(t){function e(r,n){var o=Nn({},r);return delete o.ref,t(o,(n=r.ref||n)&&(Ve(n)!="object"||"current"in n)?n:null)}return e.$$typeof=go,e.render=e,e.prototype.isReactComponent=e.__f=!0,e.displayName="ForwardRef("+(t.displayName||t.name)+")",e},unstable_batchedUpdates:function(t,e){return t(e)},StrictMode:X,Suspense:ct,SuspenseList:we,lazy:function(t){var e,r,n;function o(i){if(e||(e=t()).then(function(a){r=a.default||a},function(a){n=a}),n)throw n;if(!r)throw e;return W(r,i)}return o.displayName="Lazy",o.__f=!0,o},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Do};function ko(){return f.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},f.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}function Hn(){return f.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},f.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}var Ao=["translations"];function Vt(){return Vt=Object.assign||function(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}var No=f.forwardRef(function(t,e){var r=t.translations,n=r===void 0?{}:r,o=xo(t,Ao),i=n.buttonText,a=i===void 0?"Search":i,c=n.buttonAriaLabel,u=c===void 0?"Search":c,s=Co(kn(null),2),l=s[0],m=s[1];return Cn(function(){typeof navigator<"u"&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?m("⌘"):m("Ctrl"))},[]),f.createElement("button",Vt({type:"button",className:"DocSearch DocSearch-Button","aria-label":u},o,{ref:e}),f.createElement("span",{className:"DocSearch-Button-Container"},f.createElement(Hn,null),f.createElement("span",{className:"DocSearch-Button-Placeholder"},a)),f.createElement("span",{className:"DocSearch-Button-Keys"},l!==null&&f.createElement(f.Fragment,null,f.createElement("kbd",{className:"DocSearch-Button-Key"},l==="Ctrl"?f.createElement(ko,null):l),f.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))});function Un(t,e){var r=void 0;return function(){for(var n=arguments.length,o=new Array(n),i=0;it.length)&&(e=t.length);for(var r=0,n=new Array(e);rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function xr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function ve(t){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:20,r=[],n=0;n=3||r===2&&n>=4||r===1&&n>=10);function i(a,c,u){if(o&&u!==void 0){var s=u[0].__autocomplete_algoliaCredentials,l={"X-Algolia-Application-Id":s.appId,"X-Algolia-API-Key":s.apiKey};t.apply(void 0,[a].concat(Ge(c),[{headers:l}]))}else t.apply(void 0,[a].concat(Ge(c)))}return{init:function(a,c){t("init",{appId:a,apiKey:c})},setUserToken:function(a){t("setUserToken",a)},clickedObjectIDsAfterSearch:function(){for(var a=arguments.length,c=new Array(a),u=0;u0&&i("clickedObjectIDsAfterSearch",Xe(c),c[0].items)},clickedObjectIDs:function(){for(var a=arguments.length,c=new Array(a),u=0;u0&&i("clickedObjectIDs",Xe(c),c[0].items)},clickedFilters:function(){for(var a=arguments.length,c=new Array(a),u=0;u0&&t.apply(void 0,["clickedFilters"].concat(c))},convertedObjectIDsAfterSearch:function(){for(var a=arguments.length,c=new Array(a),u=0;u0&&i("convertedObjectIDsAfterSearch",Xe(c),c[0].items)},convertedObjectIDs:function(){for(var a=arguments.length,c=new Array(a),u=0;u0&&i("convertedObjectIDs",Xe(c),c[0].items)},convertedFilters:function(){for(var a=arguments.length,c=new Array(a),u=0;u0&&t.apply(void 0,["convertedFilters"].concat(c))},viewedObjectIDs:function(){for(var a=arguments.length,c=new Array(a),u=0;u0&&c.reduce(function(s,l){var m=l.items,p=Bn(l,Mo);return[].concat(Ge(s),Ge(Uo(ve(ve({},p),{},{objectIDs:(m==null?void 0:m.map(function(v){return v.objectID}))||p.objectIDs})).map(function(v){return{items:m,payload:v}})))},[]).forEach(function(s){var l=s.items;return i("viewedObjectIDs",[s.payload],l)})},viewedFilters:function(){for(var a=arguments.length,c=new Array(a),u=0;u0&&t.apply(void 0,["viewedFilters"].concat(c))}}}function Bo(t){var e=t.items.reduce(function(r,n){var o;return r[n.__autocomplete_indexName]=((o=r[n.__autocomplete_indexName])!==null&&o!==void 0?o:[]).concat(n),r},{});return Object.keys(e).map(function(r){return{index:r,items:e[r],algoliaSource:["autocomplete"]}})}function Dt(t){return t.objectID&&t.__autocomplete_indexName&&t.__autocomplete_queryID}function ke(t){return ke=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ke(t)}function ie(t){return function(e){if(Array.isArray(e))return kt(e)}(t)||function(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}(t)||function(e,r){if(e){if(typeof e=="string")return kt(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return kt(e,r)}}(t)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function kt(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r0&&Ko({onItemsChange:n,items:p,insights:c,state:m}))}},0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(l){var m=l.setContext,p=l.onSelect,v=l.onActive;a("addAlgoliaAgent","insights-plugin"),m({algoliaInsightsPlugin:{__algoliaSearchParameters:{clickAnalytics:!0},insights:c}}),p(function(d){var h=d.item,y=d.state,b=d.event;Dt(h)&&o({state:y,event:b,insights:c,item:h,insightsEvents:[G({eventName:"Item Selected"},Ar({item:h,items:u.current}))]})}),v(function(d){var h=d.item,y=d.state,b=d.event;Dt(h)&&i({state:y,event:b,insights:c,item:h,insightsEvents:[G({eventName:"Item Active"},Ar({item:h,items:u.current}))]})})},onStateChange:function(l){var m=l.state;s({state:m})},__autocomplete_pluginOptions:t}}function lt(t,e){var r=e;return{then:function(n,o){return lt(t.then(et(n,r,t),et(o,r,t)),r)},catch:function(n){return lt(t.catch(et(n,r,t)),r)},finally:function(n){return n&&r.onCancelList.push(n),lt(t.finally(et(n&&function(){return r.onCancelList=[],n()},r,t)),r)},cancel:function(){r.isCanceled=!0;var n=r.onCancelList;r.onCancelList=[],n.forEach(function(o){o()})},isCanceled:function(){return r.isCanceled===!0}}}function Tr(t){return lt(t,{isCanceled:!1,onCancelList:[]})}function et(t,e,r){return t?function(n){return e.isCanceled?n:t(n)}:r}function Rr(t,e,r,n){if(!r)return null;if(t<0&&(e===null||n!==null&&e===0))return r+t;var o=(e===null?-1:e)+t;return o<=-1||o>=r?n===null?null:0:o}function qr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function Lr(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r0},reshape:function(i){return i.sources}},t),{},{id:(r=t.id)!==null&&r!==void 0?r:"autocomplete-".concat(To++),plugins:o,initialState:ae({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},t.initialState),onStateChange:function(i){var a;(a=t.onStateChange)===null||a===void 0||a.call(t,i),o.forEach(function(c){var u;return(u=c.onStateChange)===null||u===void 0?void 0:u.call(c,i)})},onSubmit:function(i){var a;(a=t.onSubmit)===null||a===void 0||a.call(t,i),o.forEach(function(c){var u;return(u=c.onSubmit)===null||u===void 0?void 0:u.call(c,i)})},onReset:function(i){var a;(a=t.onReset)===null||a===void 0||a.call(t,i),o.forEach(function(c){var u;return(u=c.onReset)===null||u===void 0?void 0:u.call(c,i)})},getSources:function(i){return Promise.all([].concat(Go(o.map(function(a){return a.getSources})),[t.getSources]).filter(Boolean).map(function(a){return function(c,u){var s=[];return Promise.resolve(c(u)).then(function(l){return Promise.all(l.filter(function(m){return!!m}).map(function(m){if(m.sourceId,s.includes(m.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(m.sourceId)," is not unique."));s.push(m.sourceId);var p={getItemInputValue:function(d){return d.state.query},getItemUrl:function(){},onSelect:function(d){(0,d.setIsOpen)(!1)},onActive:vt,onResolve:vt};Object.keys(p).forEach(function(d){p[d].__default=!0});var v=Lr(Lr({},p),m);return Promise.resolve(v)}))})}(a,i)})).then(function(a){return ze(a)}).then(function(a){return a.map(function(c){return ae(ae({},c),{},{onSelect:function(u){c.onSelect(u),e.forEach(function(s){var l;return(l=s.onSelect)===null||l===void 0?void 0:l.call(s,u)})},onActive:function(u){c.onActive(u),e.forEach(function(s){var l;return(l=s.onActive)===null||l===void 0?void 0:l.call(s,u)})},onResolve:function(u){c.onResolve(u),e.forEach(function(s){var l;return(l=s.onResolve)===null||l===void 0?void 0:l.call(s,u)})}})})})},navigator:ae({navigate:function(i){var a=i.itemUrl;n.location.assign(a)},navigateNewTab:function(i){var a=i.itemUrl,c=n.open(a,"_blank","noopener");c==null||c.focus()},navigateNewWindow:function(i){var a=i.itemUrl;n.open(a,"_blank","noopener")}},t.navigator)})}function Te(t){return Te=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Te(t)}function Fr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function rt(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}var Wr,xt,ot,je=null,Kr=(Wr=-1,xt=-1,ot=void 0,function(t){var e=++Wr;return Promise.resolve(t).then(function(r){return ot&&e=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function Me(t){return Me=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Me(t)}var fi=["props","refresh","store"],mi=["inputElement","formElement","panelElement"],pi=["inputElement"],vi=["inputElement","maxLength"],di=["sourceIndex"],hi=["sourceIndex"],yi=["item","source","sourceIndex"];function Jr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function R(t){for(var e=1;e=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function bi(t){var e=t.props,r=t.refresh,n=t.store,o=re(t,fi),i=function(a,c){return c!==void 0?"".concat(a,"-").concat(c):a};return{getEnvironmentProps:function(a){var c=a.inputElement,u=a.formElement,s=a.panelElement;function l(m){!n.getState().isOpen&&n.pendingRequests.isEmpty()||m.target===c||[u,s].some(function(p){return v=p,d=m.target,v===d||v.contains(d);var v,d})===!1&&(n.dispatch("blur",null),e.debug||n.pendingRequests.cancelAll())}return R({onTouchStart:l,onMouseDown:l,onTouchMove:function(m){n.getState().isOpen!==!1&&c===e.environment.document.activeElement&&m.target!==c&&c.blur()}},re(a,mi))},getRootProps:function(a){return R({role:"combobox","aria-expanded":n.getState().isOpen,"aria-haspopup":"listbox","aria-owns":n.getState().isOpen?"".concat(e.id,"-list"):void 0,"aria-labelledby":"".concat(e.id,"-label")},a)},getFormProps:function(a){return a.inputElement,R({action:"",noValidate:!0,role:"search",onSubmit:function(c){var u;c.preventDefault(),e.onSubmit(R({event:c,refresh:r,state:n.getState()},o)),n.dispatch("submit",null),(u=a.inputElement)===null||u===void 0||u.blur()},onReset:function(c){var u;c.preventDefault(),e.onReset(R({event:c,refresh:r,state:n.getState()},o)),n.dispatch("reset",null),(u=a.inputElement)===null||u===void 0||u.focus()}},re(a,pi))},getLabelProps:function(a){var c=a||{},u=c.sourceIndex,s=re(c,di);return R({htmlFor:"".concat(i(e.id,u),"-input"),id:"".concat(i(e.id,u),"-label")},s)},getInputProps:function(a){var c;function u(y){(e.openOnFocus||n.getState().query)&&le(R({event:y,props:e,query:n.getState().completion||n.getState().query,refresh:r,store:n},o)),n.dispatch("focus",null)}var s=a||{},l=(s.inputElement,s.maxLength),m=l===void 0?512:l,p=re(s,vi),v=fe(n.getState()),d=function(y){return!!(y&&y.match($o))}(((c=e.environment.navigator)===null||c===void 0?void 0:c.userAgent)||""),h=v!=null&&v.itemUrl&&!d?"go":"search";return R({"aria-autocomplete":"both","aria-activedescendant":n.getState().isOpen&&n.getState().activeItemId!==null?"".concat(e.id,"-item-").concat(n.getState().activeItemId):void 0,"aria-controls":n.getState().isOpen?"".concat(e.id,"-list"):void 0,"aria-labelledby":"".concat(e.id,"-label"),value:n.getState().completion||n.getState().query,id:"".concat(e.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:h,spellCheck:"false",autoFocus:e.autoFocus,placeholder:e.placeholder,maxLength:m,type:"search",onChange:function(y){le(R({event:y,props:e,query:y.currentTarget.value.slice(0,m),refresh:r,store:n},o))},onKeyDown:function(y){(function(b){var _=b.event,S=b.props,O=b.refresh,g=b.store,P=si(b,ci);if(_.key==="ArrowUp"||_.key==="ArrowDown"){var C=function(){var M=S.environment.document.getElementById("".concat(S.id,"-item-").concat(g.getState().activeItemId));M&&(M.scrollIntoViewIfNeeded?M.scrollIntoViewIfNeeded(!1):M.scrollIntoView(!1))},L=function(){var M=fe(g.getState());if(g.getState().activeItemId!==null&&M){var Ot=M.item,St=M.itemInputValue,$e=M.itemUrl,B=M.source;B.onActive(te({event:_,item:Ot,itemInputValue:St,itemUrl:$e,refresh:O,source:B,state:g.getState()},P))}};_.preventDefault(),g.getState().isOpen===!1&&(S.openOnFocus||g.getState().query)?le(te({event:_,props:S,query:g.getState().query,refresh:O,store:g},P)).then(function(){g.dispatch(_.key,{nextActiveItemId:S.defaultActiveItemId}),L(),setTimeout(C,0)}):(g.dispatch(_.key,{}),L(),C())}else if(_.key==="Escape")_.preventDefault(),g.dispatch(_.key,null),g.pendingRequests.cancelAll();else if(_.key==="Tab")g.dispatch("blur",null),g.pendingRequests.cancelAll();else if(_.key==="Enter"){if(g.getState().activeItemId===null||g.getState().collections.every(function(M){return M.items.length===0}))return void(S.debug||g.pendingRequests.cancelAll());_.preventDefault();var x=fe(g.getState()),k=x.item,N=x.itemInputValue,U=x.itemUrl,F=x.source;if(_.metaKey||_.ctrlKey)U!==void 0&&(F.onSelect(te({event:_,item:k,itemInputValue:N,itemUrl:U,refresh:O,source:F,state:g.getState()},P)),S.navigator.navigateNewTab({itemUrl:U,item:k,state:g.getState()}));else if(_.shiftKey)U!==void 0&&(F.onSelect(te({event:_,item:k,itemInputValue:N,itemUrl:U,refresh:O,source:F,state:g.getState()},P)),S.navigator.navigateNewWindow({itemUrl:U,item:k,state:g.getState()}));else if(!_.altKey){if(U!==void 0)return F.onSelect(te({event:_,item:k,itemInputValue:N,itemUrl:U,refresh:O,source:F,state:g.getState()},P)),void S.navigator.navigate({itemUrl:U,item:k,state:g.getState()});le(te({event:_,nextState:{isOpen:!1},props:S,query:N,refresh:O,store:g},P)).then(function(){F.onSelect(te({event:_,item:k,itemInputValue:N,itemUrl:U,refresh:O,source:F,state:g.getState()},P))})}}})(R({event:y,props:e,refresh:r,store:n},o))},onFocus:u,onBlur:vt,onClick:function(y){a.inputElement!==e.environment.document.activeElement||n.getState().isOpen||u(y)}},p)},getPanelProps:function(a){return R({onMouseDown:function(c){c.preventDefault()},onMouseLeave:function(){n.dispatch("mouseleave",null)}},a)},getListProps:function(a){var c=a||{},u=c.sourceIndex,s=re(c,hi);return R({role:"listbox","aria-labelledby":"".concat(i(e.id,u),"-label"),id:"".concat(i(e.id,u),"-list")},s)},getItemProps:function(a){var c=a.item,u=a.source,s=a.sourceIndex,l=re(a,yi);return R({id:"".concat(i(e.id,s),"-item-").concat(c.__autocomplete_id),role:"option","aria-selected":n.getState().activeItemId===c.__autocomplete_id,onMouseMove:function(m){if(c.__autocomplete_id!==n.getState().activeItemId){n.dispatch("mousemove",c.__autocomplete_id);var p=fe(n.getState());if(n.getState().activeItemId!==null&&p){var v=p.item,d=p.itemInputValue,h=p.itemUrl,y=p.source;y.onActive(R({event:m,item:v,itemInputValue:d,itemUrl:h,refresh:r,source:y,state:n.getState()},o))}}},onMouseDown:function(m){m.preventDefault()},onClick:function(m){var p=u.getItemInputValue({item:c,state:n.getState()}),v=u.getItemUrl({item:c,state:n.getState()});(v?Promise.resolve():le(R({event:m,nextState:{isOpen:!1},props:e,query:p,refresh:r,store:n},o))).then(function(){u.onSelect(R({event:m,item:c,itemInputValue:p,itemUrl:v,refresh:r,source:u,state:n.getState()},o))})}},l)}}}function He(t){return He=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},He(t)}function $r(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function _i(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function Bi(t){var e=t.translations,r=e===void 0?{}:e,n=Fi(t,Hi),o=r.noResultsText,i=o===void 0?"No results for":o,a=r.suggestedQueryText,c=a===void 0?"Try searching for":a,u=r.reportMissingResultsText,s=u===void 0?"Believe this query should return results?":u,l=r.reportMissingResultsLinkText,m=l===void 0?"Let us know.":l,p=n.state.context.searchSuggestions;return f.createElement("div",{className:"DocSearch-NoResults"},f.createElement("div",{className:"DocSearch-Screen-Icon"},f.createElement(Li,null)),f.createElement("p",{className:"DocSearch-Title"},i,' "',f.createElement("strong",null,n.state.query),'"'),p&&p.length>0&&f.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},f.createElement("p",{className:"DocSearch-Help"},c,":"),f.createElement("ul",null,p.slice(0,3).reduce(function(v,d){return[].concat(Ui(v),[f.createElement("li",{key:d},f.createElement("button",{className:"DocSearch-Prefill",key:d,type:"button",onClick:function(){n.setQuery(d.toLowerCase()+" "),n.refresh(),n.inputRef.current.focus()}},d))])},[]))),n.getMissingResultsUrl&&f.createElement("p",{className:"DocSearch-Help"},"".concat(s," "),f.createElement("a",{href:n.getMissingResultsUrl({query:n.state.query}),target:"_blank",rel:"noopener noreferrer"},m)))}var Vi=["hit","attribute","tagName"];function Xr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function en(t){for(var e=1;e=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function tn(t,e){return e.split(".").reduce(function(r,n){return r!=null&&r[n]?r[n]:null},t)}function ce(t){var e=t.hit,r=t.attribute,n=t.tagName;return W(n===void 0?"span":n,en(en({},Ki(t,Vi)),{},{dangerouslySetInnerHTML:{__html:tn(e,"_snippetResult.".concat(r,".value"))||tn(e,r)}}))}function rn(t,e){return function(r){if(Array.isArray(r))return r}(t)||function(r,n){var o=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(o!=null){var i,a,c=[],u=!0,s=!1;try{for(o=o.call(r);!(u=(i=o.next()).done)&&(c.push(i.value),!n||c.length!==n);u=!0);}catch(l){s=!0,a=l}finally{try{u||o.return==null||o.return()}finally{if(s)throw a}}return c}}(t,e)||function(r,n){if(r){if(typeof r=="string")return nn(r,n);var o=Object.prototype.toString.call(r).slice(8,-1);if(o==="Object"&&r.constructor&&(o=r.constructor.name),o==="Map"||o==="Set")return Array.from(r);if(o==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return nn(r,n)}}(t,e)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function nn(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r|<\/mark>)/g,$i=RegExp(zn.source);function Jn(t){var e,r,n=t;if(!n.__docsearch_parent&&!t._highlightResult)return t.hierarchy.lvl0;var o=((n.__docsearch_parent?(e=n.__docsearch_parent)===null||e===void 0||(e=e._highlightResult)===null||e===void 0||(e=e.hierarchy)===null||e===void 0?void 0:e.lvl0:(r=t._highlightResult)===null||r===void 0||(r=r.hierarchy)===null||r===void 0?void 0:r.lvl0)||{}).value;return o&&$i.test(o)?o.replace(zn,""):o}function Jt(){return Jt=Object.assign||function(t){for(var e=1;e=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function Gi(t){var e=t.translations,r=e===void 0?{}:e,n=Yi(t,Zi),o=r.recentSearchesTitle,i=o===void 0?"Recent":o,a=r.noRecentSearchesText,c=a===void 0?"No recent searches":a,u=r.saveRecentSearchButtonTitle,s=u===void 0?"Save this search":u,l=r.removeRecentSearchButtonTitle,m=l===void 0?"Remove this search from history":l,p=r.favoriteSearchesTitle,v=p===void 0?"Favorite":p,d=r.removeFavoriteSearchButtonTitle,h=d===void 0?"Remove this search from favorites":d;return n.state.status==="idle"&&n.hasCollections===!1?n.disableUserPersonalization?null:f.createElement("div",{className:"DocSearch-StartScreen"},f.createElement("p",{className:"DocSearch-Help"},c)):n.hasCollections===!1?null:f.createElement("div",{className:"DocSearch-Dropdown-Container"},f.createElement(zt,ht({},n,{title:i,collection:n.state.collections[0],renderIcon:function(){return f.createElement("div",{className:"DocSearch-Hit-icon"},f.createElement(Ai,null))},renderAction:function(y){var b=y.item,_=y.runFavoriteTransition,S=y.runDeleteTransition;return f.createElement(f.Fragment,null,f.createElement("div",{className:"DocSearch-Hit-action"},f.createElement("button",{className:"DocSearch-Hit-action-button",title:s,type:"submit",onClick:function(O){O.preventDefault(),O.stopPropagation(),_(function(){n.favoriteSearches.add(b),n.recentSearches.remove(b),n.refresh()})}},f.createElement(Gr,null))),f.createElement("div",{className:"DocSearch-Hit-action"},f.createElement("button",{className:"DocSearch-Hit-action-button",title:m,type:"submit",onClick:function(O){O.preventDefault(),O.stopPropagation(),S(function(){n.recentSearches.remove(b),n.refresh()})}},f.createElement(Kt,null))))}})),f.createElement(zt,ht({},n,{title:v,collection:n.state.collections[1],renderIcon:function(){return f.createElement("div",{className:"DocSearch-Hit-icon"},f.createElement(Gr,null))},renderAction:function(y){var b=y.item,_=y.runDeleteTransition;return f.createElement("div",{className:"DocSearch-Hit-action"},f.createElement("button",{className:"DocSearch-Hit-action-button",title:h,type:"submit",onClick:function(S){S.preventDefault(),S.stopPropagation(),_(function(){n.favoriteSearches.remove(b),n.refresh()})}},f.createElement(Kt,null)))}})))}var Xi=["translations"];function yt(){return yt=Object.assign||function(t){for(var e=1;e=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}var ta=f.memo(function(t){var e=t.translations,r=e===void 0?{}:e,n=ea(t,Xi);if(n.state.status==="error")return f.createElement(Mi,{translations:r==null?void 0:r.errorScreen});var o=n.state.collections.some(function(i){return i.items.length>0});return n.state.query?o===!1?f.createElement(Bi,yt({},n,{translations:r==null?void 0:r.noResultsScreen})):f.createElement(Qi,n):f.createElement(Gi,yt({},n,{hasCollections:o,translations:r==null?void 0:r.startScreen}))},function(t,e){return e.state.status==="loading"||e.state.status==="stalled"}),ra=["translations"];function gt(){return gt=Object.assign||function(t){for(var e=1;e=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function oa(t){var e=t.translations,r=e===void 0?{}:e,n=na(t,ra),o=r.resetButtonTitle,i=o===void 0?"Clear the query":o,a=r.resetButtonAriaLabel,c=a===void 0?"Clear the query":a,u=r.cancelButtonText,s=u===void 0?"Cancel":u,l=r.cancelButtonAriaLabel,m=l===void 0?"Cancel":l,p=n.getFormProps({inputElement:n.inputRef.current}).onReset;return f.useEffect(function(){n.autoFocus&&n.inputRef.current&&n.inputRef.current.focus()},[n.autoFocus,n.inputRef]),f.useEffect(function(){n.isFromSelection&&n.inputRef.current&&n.inputRef.current.select()},[n.isFromSelection,n.inputRef]),f.createElement(f.Fragment,null,f.createElement("form",{className:"DocSearch-Form",onSubmit:function(v){v.preventDefault()},onReset:p},f.createElement("label",gt({className:"DocSearch-MagnifierLabel"},n.getLabelProps()),f.createElement(Hn,null)),f.createElement("div",{className:"DocSearch-LoadingIndicator"},f.createElement(ki,null)),f.createElement("input",gt({className:"DocSearch-Input",ref:n.inputRef},n.getInputProps({inputElement:n.inputRef.current,autoFocus:n.autoFocus,maxLength:64}))),f.createElement("button",{type:"reset",title:i,className:"DocSearch-Reset","aria-label":c,hidden:!n.state.query},f.createElement(Kt,null))),f.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":m,onClick:n.onClose},s))}var ia=["_highlightResult","_snippetResult"];function aa(t,e){if(t==null)return{};var r,n,o=function(a,c){if(a==null)return{};var u,s,l={},m=Object.keys(a);for(s=0;s=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function ua(t){return function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch{return!1}}()===!1?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(e){return window.localStorage.setItem(t,JSON.stringify(e))},getItem:function(){var e=window.localStorage.getItem(t);return e?JSON.parse(e):[]}}}function un(t){var e=t.key,r=t.limit,n=r===void 0?5:r,o=ua(e),i=o.getItem().slice(0,n);return{add:function(a){var c=a,u=(c._highlightResult,c._snippetResult,aa(c,ia)),s=i.findIndex(function(l){return l.objectID===u.objectID});s>-1&&i.splice(s,1),i.unshift(u),i=i.slice(0,n),o.setItem(i)},remove:function(a){i=i.filter(function(c){return c.objectID!==a.objectID}),o.setItem(i)},getAll:function(){return i}}}var ca=["facetName","facetQuery"];function la(t){var e,r="algoliasearch-client-js-".concat(t.key),n=function(){return e===void 0&&(e=t.localStorage||window.localStorage),e},o=function(){return JSON.parse(n().getItem(r)||"{}")},i=function(c){n().setItem(r,JSON.stringify(c))},a=function(){var c=t.timeToLive?1e3*t.timeToLive:null,u=o(),s=Object.fromEntries(Object.entries(u).filter(function(m){return se(m,2)[1].timestamp!==void 0}));if(i(s),c){var l=Object.fromEntries(Object.entries(s).filter(function(m){var p=se(m,2)[1],v=new Date().getTime();return!(p.timestamp+c2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then(function(){a();var l=JSON.stringify(c);return o()[l]}).then(function(l){return Promise.all([l?l.value:u(),l!==void 0])}).then(function(l){var m=se(l,2),p=m[0],v=m[1];return Promise.all([p,v||s.miss(p)])}).then(function(l){return se(l,1)[0]})},set:function(c,u){return Promise.resolve().then(function(){var s=o();return s[JSON.stringify(c)]={timestamp:new Date().getTime(),value:u},n().setItem(r,JSON.stringify(s)),u})},delete:function(c){return Promise.resolve().then(function(){var u=o();delete u[JSON.stringify(c)],n().setItem(r,JSON.stringify(u))})},clear:function(){return Promise.resolve().then(function(){n().removeItem(r)})}}}function Ee(t){var e=ft(t.caches),r=e.shift();return r===void 0?{get:function(n,o){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return o().then(function(a){return Promise.all([a,i.miss(a)])}).then(function(a){return se(a,1)[0]})},set:function(n,o){return Promise.resolve(o)},delete:function(n){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(n,o){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(n,o,i).catch(function(){return Ee({caches:e}).get(n,o,i)})},set:function(n,o){return r.set(n,o).catch(function(){return Ee({caches:e}).set(n,o)})},delete:function(n){return r.delete(n).catch(function(){return Ee({caches:e}).delete(n)})},clear:function(){return r.clear().catch(function(){return Ee({caches:e}).clear()})}}}function Tt(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{serializable:!0},e={};return{get:function(r,n){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{miss:function(){return Promise.resolve()}},i=JSON.stringify(r);if(i in e)return Promise.resolve(t.serializable?JSON.parse(e[i]):e[i]);var a=n(),c=o&&o.miss||function(){return Promise.resolve()};return a.then(function(u){return c(u)}).then(function(){return a})},set:function(r,n){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(r){return delete e[JSON.stringify(r)],Promise.resolve()},clear:function(){return e={},Promise.resolve()}}}function sa(t){for(var e=t.length-1;e>0;e--){var r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function $n(t,e){return e&&Object.keys(e).forEach(function(r){t[r]=e[r](t)}),t}function bt(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n0?n:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var me={Read:1,Write:2,Any:3},Qn=1,fa=2,Zn=3;function Yn(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Qn;return I(I({},t),{},{status:e,lastUpdate:Date.now()})}function Gn(t){return typeof t=="string"?{protocol:"https",url:t,accept:me.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||me.Any}}var $t="GET",_t="POST";function ma(t,e){return Promise.all(e.map(function(r){return t.get(r,function(){return Promise.resolve(Yn(r))})})).then(function(r){var n=r.filter(function(a){return function(c){return c.status===Qn||Date.now()-c.lastUpdate>12e4}(a)}),o=r.filter(function(a){return function(c){return c.status===Zn&&Date.now()-c.lastUpdate<=12e4}(a)}),i=[].concat(ft(n),ft(o));return{getTimeout:function(a,c){return(o.length===0&&a===0?1:o.length+3+a)*c},statelessHosts:i.length>0?i.map(function(a){return Gn(a)}):e}})}function ln(t,e,r,n){var o=[],i=function(p,v){if(!(p.method===$t||p.data===void 0&&v.data===void 0)){var d=Array.isArray(p.data)?p.data:I(I({},p.data),v.data);return JSON.stringify(d)}}(r,n),a=function(p,v){var d=I(I({},p.headers),v.headers),h={};return Object.keys(d).forEach(function(y){var b=d[y];h[y.toLowerCase()]=b}),h}(t,n),c=r.method,u=r.method!==$t?{}:I(I({},r.data),n.data),s=I(I(I({"x-algolia-agent":t.userAgent.value},t.queryParameters),u),n.queryParameters),l=0,m=function p(v,d){var h=v.pop();if(h===void 0)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:sn(o)};var y={data:i,headers:a,method:c,url:va(h,r.path,s),connectTimeout:d(l,t.timeouts.connect),responseTimeout:d(l,n.timeout)},b=function(S){var O={request:y,response:S,host:h,triesLeft:v.length};return o.push(O),O},_={onSuccess:function(S){return function(O){try{return JSON.parse(O.content)}catch(g){throw function(P,C){return{name:"DeserializationError",message:P,response:C}}(g.message,O)}}(S)},onRetry:function(S){var O=b(S);return S.isTimedOut&&l++,Promise.all([t.logger.info("Retryable failure",eo(O)),t.hostsCache.set(h,Yn(h,S.isTimedOut?Zn:fa))]).then(function(){return p(v,d)})},onFail:function(S){throw b(S),function(O,g){var P=O.content,C=O.status,L=P;try{L=JSON.parse(P).message}catch{}return function(x,k,N){return{name:"ApiError",message:x,status:k,transporterStackTrace:N}}(L,C,g)}(S,sn(o))}};return t.requester.send(y).then(function(S){return function(O,g){return function(P){var C=P.status;return P.isTimedOut||function(L){var x=L.isTimedOut,k=L.status;return!x&&~~k==0}(P)||~~(C/100)!=2&&~~(C/100)!=4}(O)?g.onRetry(O):~~(O.status/100)==2?g.onSuccess(O):g.onFail(O)}(S,_)})};return ma(t.hostsCache,e).then(function(p){return m(ft(p.statelessHosts).reverse(),p.getTimeout)})}function pa(t){var e={value:"Algolia for JavaScript (".concat(t,")"),add:function(r){var n="; ".concat(r.segment).concat(r.version!==void 0?" (".concat(r.version,")"):"");return e.value.indexOf(n)===-1&&(e.value="".concat(e.value).concat(n)),e}};return e}function va(t,e,r){var n=Xn(r),o="".concat(t.protocol,"://").concat(t.url,"/").concat(e.charAt(0)==="/"?e.substr(1):e);return n.length&&(o+="?".concat(n)),o}function Xn(t){return Object.keys(t).map(function(e){return bt("%s=%s",e,(r=t[e],Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]"?JSON.stringify(t[e]):t[e]));var r}).join("&")}function sn(t){return t.map(function(e){return eo(e)})}function eo(t){var e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return I(I({},t),{},{request:I(I({},t.request),{},{headers:I(I({},t.request.headers),e)})})}var da=function(t){var e=t.appId,r=function(i,a,c){var u={"x-algolia-api-key":c,"x-algolia-application-id":a};return{headers:function(){return i===st.WithinHeaders?u:{}},queryParameters:function(){return i===st.WithinQueryParameters?u:{}}}}(t.authMode!==void 0?t.authMode:st.WithinHeaders,e,t.apiKey),n=function(i){var a=i.hostsCache,c=i.logger,u=i.requester,s=i.requestsCache,l=i.responsesCache,m=i.timeouts,p=i.userAgent,v=i.hosts,d=i.queryParameters,h={hostsCache:a,logger:c,requester:u,requestsCache:s,responsesCache:l,timeouts:m,userAgent:p,headers:i.headers,queryParameters:d,hosts:v.map(function(y){return Gn(y)}),read:function(y,b){var _=cn(b,h.timeouts.read),S=function(){return ln(h,h.hosts.filter(function(g){return(g.accept&me.Read)!=0}),y,_)};if((_.cacheable!==void 0?_.cacheable:y.cacheable)!==!0)return S();var O={request:y,mappedRequestOptions:_,transporter:{queryParameters:h.queryParameters,headers:h.headers}};return h.responsesCache.get(O,function(){return h.requestsCache.get(O,function(){return h.requestsCache.set(O,S()).then(function(g){return Promise.all([h.requestsCache.delete(O),g])},function(g){return Promise.all([h.requestsCache.delete(O),Promise.reject(g)])}).then(function(g){var P=se(g,2);return P[0],P[1]})})},{miss:function(g){return h.responsesCache.set(O,g)}})},write:function(y,b){return ln(h,h.hosts.filter(function(_){return(_.accept&me.Write)!=0}),y,cn(b,h.timeouts.write))}};return h}(I(I({hosts:[{url:"".concat(e,"-dsn.algolia.net"),accept:me.Read},{url:"".concat(e,".algolia.net"),accept:me.Write}].concat(sa([{url:"".concat(e,"-1.algolianet.com")},{url:"".concat(e,"-2.algolianet.com")},{url:"".concat(e,"-3.algolianet.com")}]))},t),{},{headers:I(I(I({},r.headers()),{"content-type":"application/x-www-form-urlencoded"}),t.headers),queryParameters:I(I({},r.queryParameters()),t.queryParameters)})),o={transporter:n,appId:e,addAlgoliaAgent:function(i,a){n.userAgent.add({segment:i,version:a})},clearCache:function(){return Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then(function(){})}};return $n(o,t.methods)},ha=function(t){return function(e,r){return e.method===$t?t.transporter.read(e,r):t.transporter.write(e,r)}},to=function(t){return function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n={transporter:t.transporter,appId:t.appId,indexName:e};return $n(n,r.methods)}},fn=function(t){return function(e,r){var n=e.map(function(o){return I(I({},o),{},{params:Xn(o.params||{})})});return t.transporter.read({method:_t,path:"1/indexes/*/queries",data:{requests:n},cacheable:!0},r)}},mn=function(t){return function(e,r){return Promise.all(e.map(function(n){var o=n.params,i=o.facetName,a=o.facetQuery,c=fo(o,ca);return to(t)(n.indexName,{methods:{searchForFacetValues:ro}}).searchForFacetValues(i,a,I(I({},r),c))}))}},ya=function(t){return function(e,r,n){return t.transporter.read({method:_t,path:bt("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:r},cacheable:!0},n)}},ga=function(t){return function(e,r){return t.transporter.read({method:_t,path:bt("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},r)}},ro=function(t){return function(e,r,n){return t.transporter.read({method:_t,path:bt("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:r},cacheable:!0},n)}},ba=1,_a=2,Oa=3;function no(t,e,r){var n,o={appId:t,apiKey:e,timeouts:{connect:1,read:2,write:30},requester:{send:function(i){return new Promise(function(a){var c=new XMLHttpRequest;c.open(i.method,i.url,!0),Object.keys(i.headers).forEach(function(m){return c.setRequestHeader(m,i.headers[m])});var u,s=function(m,p){return setTimeout(function(){c.abort(),a({status:0,content:p,isTimedOut:!0})},1e3*m)},l=s(i.connectTimeout,"Connection timeout");c.onreadystatechange=function(){c.readyState>c.OPENED&&u===void 0&&(clearTimeout(l),u=s(i.responseTimeout,"Socket timeout"))},c.onerror=function(){c.status===0&&(clearTimeout(l),clearTimeout(u),a({content:c.responseText||"Network request failed",status:c.status,isTimedOut:!1}))},c.onload=function(){clearTimeout(l),clearTimeout(u),a({content:c.responseText,status:c.status,isTimedOut:!1})},c.send(i.data)})}},logger:(n=Oa,{debug:function(i,a){return ba>=n&&console.debug(i,a),Promise.resolve()},info:function(i,a){return _a>=n&&console.info(i,a),Promise.resolve()},error:function(i,a){return console.error(i,a),Promise.resolve()}}),responsesCache:Tt(),requestsCache:Tt({serializable:!1}),hostsCache:Ee({caches:[la({key:"".concat("4.19.1","-").concat(t)}),Tt()]}),userAgent:pa("4.19.1").add({segment:"Browser",version:"lite"}),authMode:st.WithinQueryParameters};return da(I(I(I({},o),r),{},{methods:{search:fn,searchForFacetValues:mn,multipleQueries:fn,multipleSearchForFacetValues:mn,customRequest:ha,initIndex:function(i){return function(a){return to(i)(a,{methods:{search:ga,searchForFacetValues:ro,findAnswers:ya}})}}}}))}no.version="4.19.1";var Sa=["footer","searchBox"];function Be(){return Be=Object.assign||function(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r=0||(l[u]=a[u]);return l}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}function Pa(t){var e=t.appId,r=t.apiKey,n=t.indexName,o=t.placeholder,i=o===void 0?"Search docs":o,a=t.searchParameters,c=t.maxResultsPerGroup,u=t.onClose,s=u===void 0?Ji:u,l=t.transformItems,m=l===void 0?an:l,p=t.hitComponent,v=p===void 0?Di:p,d=t.resultsFooterComponent,h=d===void 0?function(){return null}:d,y=t.navigator,b=t.initialScrollY,_=b===void 0?0:b,S=t.transformSearchClient,O=S===void 0?an:S,g=t.disableUserPersonalization,P=g!==void 0&&g,C=t.initialQuery,L=C===void 0?"":C,x=t.translations,k=x===void 0?{}:x,N=t.getMissingResultsUrl,U=t.insights,F=U!==void 0&&U,M=k.footer,Ot=k.searchBox,St=Ea(k,Sa),$e=wa(f.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),B=$e[0],oo=$e[1],Xt=f.useRef(null),jt=f.useRef(null),er=f.useRef(null),Qe=f.useRef(null),he=f.useRef(null),Q=f.useRef(10),tr=f.useRef(typeof window<"u"?window.getSelection().toString().slice(0,64):"").current,ee=f.useRef(L||tr).current,rr=function(w,D,T){return f.useMemo(function(){var H=no(w,D);return H.addAlgoliaAgent("docsearch","3.5.2"),/docsearch.js \(.*\)/.test(H.transporter.userAgent.value)===!1&&H.addAlgoliaAgent("docsearch-react","3.5.2"),T(H)},[w,D,T])}(e,r,O),oe=f.useRef(un({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(n),limit:10})).current,ye=f.useRef(un({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(n),limit:oe.getAll().length===0?7:4})).current,ge=f.useCallback(function(w){if(!P){var D=w.type==="content"?w.__docsearch_parent:w;D&&oe.getAll().findIndex(function(T){return T.objectID===D.objectID})===-1&&ye.add(D)}},[oe,ye,P]),io=f.useCallback(function(w){if(B.context.algoliaInsightsPlugin&&w.__autocomplete_id){var D=w,T={eventName:"Item Selected",index:D.__autocomplete_indexName,items:[D],positions:[w.__autocomplete_id],queryID:D.__autocomplete_queryID};B.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(T)}},[B.context.algoliaInsightsPlugin]),be=f.useMemo(function(){return Ei({id:"docsearch",defaultActiveItemId:0,placeholder:i,openOnFocus:!0,initialState:{query:ee,context:{searchSuggestions:[]}},insights:F,navigator:y,onStateChange:function(w){oo(w.state)},getSources:function(w){var D=w.query,T=w.state,H=w.setContext,Z=w.setStatus;if(!D)return P?[]:[{sourceId:"recentSearches",onSelect:function(A){var V=A.item,_e=A.event;ge(V),at(_e)||s()},getItemUrl:function(A){return A.item.url},getItems:function(){return ye.getAll()}},{sourceId:"favoriteSearches",onSelect:function(A){var V=A.item,_e=A.event;ge(V),at(_e)||s()},getItemUrl:function(A){return A.item.url},getItems:function(){return oe.getAll()}}];var Y=!!F;return rr.search([{query:D,indexName:n,params:Rt({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(Q.current),"hierarchy.lvl2:".concat(Q.current),"hierarchy.lvl3:".concat(Q.current),"hierarchy.lvl4:".concat(Q.current),"hierarchy.lvl5:".concat(Q.current),"hierarchy.lvl6:".concat(Q.current),"content:".concat(Q.current)],snippetEllipsisText:"…",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20,clickAnalytics:Y},a)}]).catch(function(A){throw A.name==="RetryError"&&Z("error"),A}).then(function(A){var V=A.results[0],_e=V.hits,co=V.nbHits,wt=on(_e,function(Et){return Jn(Et)},c);T.context.searchSuggestions.length0&&(nr(),he.current&&he.current.focus())},[ee,nr]),f.useEffect(function(){function w(){if(jt.current){var D=.01*window.innerHeight;jt.current.style.setProperty("--docsearch-vh","".concat(D,"px"))}}return w(),window.addEventListener("resize",w),function(){window.removeEventListener("resize",w)}},[]),f.createElement("div",Be({ref:Xt},uo({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container",B.status==="stalled"&&"DocSearch-Container--Stalled",B.status==="error"&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(w){w.target===w.currentTarget&&s()}}),f.createElement("div",{className:"DocSearch-Modal",ref:jt},f.createElement("header",{className:"DocSearch-SearchBar",ref:er},f.createElement(oa,Be({},be,{state:B,autoFocus:ee.length===0,inputRef:he,isFromSelection:!!ee&&ee===tr,translations:Ot,onClose:s}))),f.createElement("div",{className:"DocSearch-Dropdown",ref:Qe},f.createElement(ta,Be({},be,{indexName:n,state:B,hitComponent:v,resultsFooterComponent:h,disableUserPersonalization:P,recentSearches:ye,favoriteSearches:oe,inputRef:he,translations:St,getMissingResultsUrl:N,onItemClick:function(w,D){io(w),ge(w),at(D)||s()}}))),f.createElement("footer",{className:"DocSearch-Footer"},f.createElement(Ii,{translations:M}))))}function Qt(){return Qt=Object.assign||function(t){for(var e=1;et.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&arguments[1]!==void 0?arguments[1]:window;return typeof e=="string"?r.document.querySelector(e):e}(t.container,t.environment))}export{Da as default}; diff --git a/assets/index.html-5LT6ElFO.js b/assets/index.html-5LT6ElFO.js new file mode 100644 index 000000000..80b97e30a --- /dev/null +++ b/assets/index.html-5LT6ElFO.js @@ -0,0 +1 @@ +import{_ as t,r as a,o,c as n,b as r}from"./app-8OZtYazS.js";const s={};function c(p,i){const e=a("Catalog");return o(),n("div",null,[r(e)])}const d=t(s,[["render",c],["__file","index.html.vue"]]),m=JSON.parse('{"path":"/en/guide/getstarted/","title":"Getstarted","lang":"zh-CN","frontmatter":{"title":"Getstarted","article":false,"feed":false,"sitemap":false,"description":"","head":[["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/getstarted/"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Getstarted"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Getstarted\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":1},"filePathRelative":null,"autoDesc":true}');export{d as comp,m as data}; diff --git a/assets/index.html-9xUwsIHr.js b/assets/index.html-9xUwsIHr.js new file mode 100644 index 000000000..8c6b9ac2c --- /dev/null +++ b/assets/index.html-9xUwsIHr.js @@ -0,0 +1 @@ +import{_ as u,r as o,o as r,c as s,a as t,b as e,w as i,e as d,d as n}from"./app-8OZtYazS.js";const c="/img/toolwindowNew_en.png",h={},m=d('

    Features

    The icon in the document corresponds to the button icon in the plugin

    toolwindow

    Request

    ',4),p=t("hr",null,null,-1),f=t("hr",null,null,-1),g=t("h2",{id:"apis",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#apis"},[t("span",null,"Apis")])],-1),_=t("h2",{id:"navigate",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#navigate"},[t("span",null,"Navigate")])],-1),v=t("h2",{id:"generate",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#generate"},[t("span",null,"Generate")])],-1),w=t("h2",{id:"editor",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#editor"},[t("span",null,"Editor")])],-1),y=t("h2",{id:"script",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#script"},[t("span",null,"Script")])],-1),A=t("h2",{id:"other",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#other"},[t("span",null,"Other")])],-1);function b(q,N){const l=o("ColorIcon"),a=o("RouteLink");return r(),s("div",null,[m,t("ul",null,[t("li",null,[e(a,{to:"/en/guide/features/makeIconMove.html"},{default:i(()=>[e(l,{icon:"restfulFastRequest"}),n(" Make icon move")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/projectLevelDomainConfig.html"},{default:i(()=>[e(l,{icon:"domainConfigNew"}),n(" Project-level domain config")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/environment.html"},{default:i(()=>[e(l,{icon:"environment"}),n(" Environment")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/projectValueConfig.html"},{default:i(()=>[e(l,{icon:"quanjucanshu"}),n(" Project-level config")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/searchEveryWhere.html"},{default:i(()=>[e(l,{icon:"searchApi"}),n(" SearchEveryWhere")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/debugApi.html"},{default:i(()=>[e(l,{icon:"sendNew"}),n(" Debug API & send request")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/downloadApi.html"},{default:i(()=>[e(l,{icon:"sendDownloadNew"}),n(" Download file")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/stopRequest.html"},{default:i(()=>[e(l,{icon:"stop"}),n(" Stop API request")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/saveRequest.html"},{default:i(()=>[e(l,{icon:"save"}),n(" Save request")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/apiGroup.html"},{default:i(()=>[e(l,{icon:"saveGroup"}),n(" Save API group")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/tempRequest.html"},{default:i(()=>[e(l,{icon:"saveTemp"}),n(" Temporary request")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/function.html"},{default:i(()=>[e(l,{icon:"function"}),n(" Function")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/apifox.html"},{default:i(()=>[e(l,{icon:"apifox"}),n(" Apifox integration")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/postmanSync.html"},{default:i(()=>[e(l,{icon:"postmanNew"}),n(" Postman integration")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/apiGroup.html"},{default:i(()=>[e(l,{icon:"apiParamGroupNew"}),n(" API group toggle")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/navigateCurrentMethod.html"},{default:i(()=>[e(l,{icon:"locate"}),n(" Navigate to current method")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/navigateCurrentMethodJson.html"},{default:i(()=>[e(l,{icon:"storeData"}),n(" Multi tab window")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/regenerate.html"},{default:i(()=>[e(l,{icon:"regenerate"}),n(" Re generate")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/clear.html"},{default:i(()=>[e(l,{icon:"clearNew"}),n(" Clear")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/curlImport.html"},{default:i(()=>[e(l,{icon:"import"}),n(" cURL import")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/copyCurl.html"},{default:i(()=>[e(l,{icon:"curl1"}),n(" cURL copy")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/copyUrl.html"},{default:i(()=>[e(l,{icon:"urlCopy"}),n(" Single url copy")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/historyRequest.html"},{default:i(()=>[e(l,{icon:"historyNew"}),n(" History request")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/apiDocSync.html"},{default:i(()=>[e(l,{icon:"github"}),n(),e(l,{icon:"gitee"}),n(),e(l,{icon:"gitlab"}),n(" API document sync")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/shareApiDoc.html"},{default:i(()=>[e(l,{icon:"markdown"}),n(" API document share")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/markdownDocTemplateConfig.html"},{default:i(()=>[e(l,{icon:"settings"}),n(" Markdown doc template config")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/projectConfigRefresh.html"},{default:i(()=>[e(l,{icon:"rcd-refresh"}),n(" Project config refresh")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/annualReport.html"},{default:i(()=>[e(l,{icon:"analyseNew"}),n(" Annual report")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/customToolbar.html"},{default:i(()=>[e(l,{icon:"customToolbar"}),n(" Custom toolbar")]),_:1})])]),p,t("ul",null,[t("li",null,[e(a,{to:"/en/guide/features/settingManager.html"},{default:i(()=>[e(l,{icon:"settings"}),n(" Setting manager")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/fullScreen.html"},{default:i(()=>[e(l,{icon:"fullScreen"}),n(" Full screen")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/docAndContact.html"},{default:i(()=>[e(l,{icon:"doc"}),n(" Document / Contact")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/eula.html"},{default:i(()=>[e(l,{icon:"license"}),n(" EULA")]),_:1})])]),f,t("ul",null,[t("li",null,[e(a,{to:"/en/guide/features/autoDomain.html"},{default:i(()=>[e(l,{icon:"restfulFastRequest"}),n(" Auto domain")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/ai.html"},{default:i(()=>[e(l,{icon:"openai"}),n(" AI")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/headerGroup.html"},{default:i(()=>[e(l,{icon:"headerGroupNew"}),n(" Header group")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/commonHeader.html"},{default:i(()=>[e(l,{icon:"commonHeaderNew"}),n(" Common header")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/commonHeader.html"},{default:i(()=>[e(l,{icon:"bulkEdit"}),n(" Headers batch edit")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/basicAuth.html"},{default:i(()=>[e(l,{icon:"lock"}),n(" Basei auth")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/htmlPreview.html"},{default:i(()=>[e(l,{icon:"chrome"}),n(" Html preview")]),_:1})])]),g,t("ul",null,[t("li",null,[e(a,{to:"/en/guide/features/apiList.html"},{default:i(()=>[e(l,{icon:"apis"}),n(" API list")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/apiToPostman.html"},{default:i(()=>[e(l,{icon:"postman"}),n(" APIs export to Postman")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/apiImportExport.html"},{default:i(()=>[e(l,{icon:"export"}),n(" APIs import and export")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/batchExportApiDoc.html"},{default:i(()=>[e(l,{icon:"markdown"}),n(" Batch export API doc")]),_:1})])]),_,t("ul",null,[t("li",null,[e(a,{to:"/en/guide/features/apiNavigateTree.html"},{default:i(()=>[e(l,{icon:"locateNavigate"}),n(" API navigate tree")]),_:1})])]),v,t("ul",null,[t("li",null,[e(a,{to:"/en/guide/features/swaggerDefaultValueParse.html"},{default:i(()=>[e(l,{icon:"swagger"}),n(" Swagger default value parsing support")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/autoDescription.html"},{default:i(()=>[e(l,{icon:"java"}),n(" Auto Description")]),_:1})])]),w,t("ul",null,[t("li",null,[e(a,{to:"/en/guide/features/projectLevelDomainConfig.html"},{default:i(()=>[e(l,{icon:"restfulFastRequest"}),n(" Project-level domain quick config")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/apiPreview.html"},{default:i(()=>[e(l,{icon:"restfulFastRequest"}),n(" API list preview")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/apiCommentPreview.html"},{default:i(()=>[e(l,{icon:"class"}),n(" Api comment preview")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/parseStrategy.html"},{default:i(()=>[e(l,{icon:"field_dark"}),n(" Parse strategy")]),_:1})])]),y,t("ul",null,[t("li",null,[e(a,{to:"/en/guide/features/script.html"},{default:i(()=>[e(l,{icon:"scriptNew"}),n(" Script")]),_:1})])]),A,t("ul",null,[t("li",null,[e(a,{to:"/en/guide/features/quickAddHeader.html"},{default:i(()=>[e(l,{icon:"add1"}),n(" Quickly add header")]),_:1})]),t("li",null,[e(a,{to:"/en/guide/features/jsonGrammarCheck.html"},{default:i(()=>[e(l,{icon:"json"}),n(" Json grammar check")]),_:1})])])])}const P=u(h,[["render",b],["__file","index.html.vue"]]),x=JSON.parse('{"path":"/en/guide/features/","title":"Features","lang":"en-US","frontmatter":{"icon":"featuresNew","description":"Features The icon in the document corresponds to the button icon in the plugin toolwindow Request Apis Navigate Generate Editor Script Other ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Features"}],["meta",{"property":"og:description","content":"Features The icon in the document corresponds to the button icon in the plugin toolwindow Request Apis Navigate Generate Editor Script Other "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/toolwindowNew_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-20T00:15:22.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Features"}],["meta",{"property":"article:modified_time","content":"2024-08-20T00:15:22.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Features\\",\\"image\\":[\\"https://api-buddy.com/img/toolwindowNew_en.png\\"],\\"dateModified\\":\\"2024-08-20T00:15:22.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Request","slug":"request","link":"#request","children":[]},{"level":2,"title":"Apis","slug":"apis","link":"#apis","children":[]},{"level":2,"title":"Navigate","slug":"navigate","link":"#navigate","children":[]},{"level":2,"title":"Generate","slug":"generate","link":"#generate","children":[]},{"level":2,"title":"Editor","slug":"editor","link":"#editor","children":[]},{"level":2,"title":"Script","slug":"script","link":"#script","children":[]},{"level":2,"title":"Other","slug":"other","link":"#other","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1724112922000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1},{"name":"kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.47,"words":442},"filePathRelative":"en/guide/features/README.md","localizedDate":"May 31, 2024","autoDesc":true}');export{P as comp,x as data}; diff --git a/assets/index.html-LXY6EoJW.js b/assets/index.html-LXY6EoJW.js new file mode 100644 index 000000000..5102f3435 --- /dev/null +++ b/assets/index.html-LXY6EoJW.js @@ -0,0 +1 @@ +import{_ as h}from"./twitter-vJUFHWuk.js";import{_ as m}from"./slack-roTTHLlw.js";import{_ as k,r as n,o as u,c as _,a as e,b as t,d as s,w as i,e as d}from"./app-8OZtYazS.js";const b={},p=e("div",{style:{"margin-top":"30px"}},null,-1),g={href:"https://join.slack.com/t/restfulfastrequest/shared_invite/zt-1we57vum8-TALhTHI2uNmPF2bx1NDyWw",target:"_blank",rel:"noopener noreferrer"},f=e("img",{src:"https://img.shields.io/static/v1?label=Slack&message=Restful Fast Request&logo=slack&color=38B580",alt:"Slack",loading:"lazy"},null,-1),y={href:"https://twitter.com/FastRequest666",target:"_blank",rel:"noopener noreferrer"},x=e("img",{src:"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34",alt:"twitter",loading:"lazy"},null,-1),v={href:"https://github.com/dromara/fast-request",target:"_blank",rel:"noopener noreferrer"},w=e("img",{src:"https://badgen.net/badge/Github/fast-request/21D789?icon=github",alt:"Github",loading:"lazy"},null,-1),A={href:"https://plugins.jetbrains.com/plugin/16988",target:"_blank",rel:"noopener noreferrer"},I=e("img",{src:"https://img.shields.io/badge/plugin-Restful_Fast_Request-x.svg?logo=IntelliJ IDEA",alt:"Jetbrains Plugins",loading:"lazy"},null,-1),q=e("img",{src:"https://img.shields.io/jetbrains/plugin/v/16988?logo=IntelliJ IDEA",alt:"Version",loading:"lazy"},null,-1),P=e("img",{src:"https://img.shields.io/jetbrains/plugin/d/16988?color=FE2857",alt:"Downloads",loading:"lazy"},null,-1),R=e("div",{style:{"margin-top":"20px"}},null,-1),F=e("h2",{id:"advantage",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#advantage"},[e("span",null,"Advantage")])],-1),S={class:"home-advantage"},D={style:{"border-radius":"10px",overflow:"hidden"}},B=["src"],C=e("div",{style:{"margin-top":"20px"}},null,-1),E=e("a",{class:"advantage-more",href:"en/guide/features/"},"More features",-1),z=e("h2",{id:"🥇-features",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#🥇-features"},[e("span",null,"🥇 Features")])],-1),N={class:"compare-wrapper",style:{display:"flex"}},T={class:"hint-container info",style:{"margin-right":"15px",width:"50%"}},j={class:"compare-title"},V=e("p",null,[e("strong",null,"Deeply optimized leading smart API debugging plugin")],-1),G={class:"task-list-container"},J=d('
  • ',5),L={class:"task-list-item"},U=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-5",checked:"checked",disabled:"disabled"},null,-1),H={class:"task-list-item-label",for:"task-item-5"},M={class:"task-list-item"},W=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-6",checked:"checked",disabled:"disabled"},null,-1),O={class:"task-list-item-label",for:"task-item-6"},Y={class:"task-list-item"},Z=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-7",checked:"checked",disabled:"disabled"},null,-1),K={class:"task-list-item-label",for:"task-item-7"},$={class:"task-list-item"},Q=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-8",checked:"checked",disabled:"disabled"},null,-1),X={class:"task-list-item-label",for:"task-item-8"},ee={class:"task-list-item"},te=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-9",checked:"checked",disabled:"disabled"},null,-1),se={class:"task-list-item-label",for:"task-item-9"},ie={class:"task-list-item"},le=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-10",checked:"checked",disabled:"disabled"},null,-1),ae={class:"task-list-item-label",for:"task-item-10"},ce={class:"task-list-item"},oe=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-11",checked:"checked",disabled:"disabled"},null,-1),ne={class:"task-list-item-label",for:"task-item-11"},de={class:"task-list-item"},re=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-12",checked:"checked",disabled:"disabled"},null,-1),he={class:"task-list-item-label",for:"task-item-12"},me={class:"task-list-item"},ke=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-13",checked:"checked",disabled:"disabled"},null,-1),ue={class:"task-list-item-label",for:"task-item-13"},_e={class:"task-list-item"},be=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-14",checked:"checked",disabled:"disabled"},null,-1),pe={class:"task-list-item-label",for:"task-item-14"},ge={class:"task-list-item"},fe=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-15",checked:"checked",disabled:"disabled"},null,-1),ye={class:"task-list-item-label",for:"task-item-15"},xe={class:"task-list-item"},ve=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-16",checked:"checked",disabled:"disabled"},null,-1),we={class:"task-list-item-label",for:"task-item-16"},Ae={class:"task-list-item"},Ie=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-17",checked:"checked",disabled:"disabled"},null,-1),qe={class:"task-list-item-label",for:"task-item-17"},Pe={class:"task-list-item"},Re=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-18",checked:"checked",disabled:"disabled"},null,-1),Fe={class:"task-list-item-label",for:"task-item-18"},Se={class:"task-list-item"},De=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-19",checked:"checked",disabled:"disabled"},null,-1),Be={class:"task-list-item-label",for:"task-item-19"},Ce={class:"task-list-item"},Ee=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-20",checked:"checked",disabled:"disabled"},null,-1),ze={class:"task-list-item-label",for:"task-item-20"},Ne={class:"task-list-item"},Te=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-21",checked:"checked",disabled:"disabled"},null,-1),je={class:"task-list-item-label",for:"task-item-21"},Ve={class:"task-list-item"},Ge=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-22",checked:"checked",disabled:"disabled"},null,-1),Je={class:"task-list-item-label",for:"task-item-22"},Le={class:"task-list-item"},Ue=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-23",checked:"checked",disabled:"disabled"},null,-1),He={class:"task-list-item-label",for:"task-item-23"},Me={class:"task-list-item"},We=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-24",checked:"checked",disabled:"disabled"},null,-1),Oe={class:"task-list-item-label",for:"task-item-24"},Ye={class:"task-list-item"},Ze=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-25",checked:"checked",disabled:"disabled"},null,-1),Ke={class:"task-list-item-label",for:"task-item-25"},$e={class:"task-list-item"},Qe=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-26",checked:"checked",disabled:"disabled"},null,-1),Xe={class:"task-list-item-label",for:"task-item-26"},et={class:"task-list-item"},tt=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-27",checked:"checked",disabled:"disabled"},null,-1),st={class:"task-list-item-label",for:"task-item-27"},it={class:"task-list-item"},lt=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-28",checked:"checked",disabled:"disabled"},null,-1),at={class:"task-list-item-label",for:"task-item-28"},ct={class:"task-list-item"},ot=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-29",checked:"checked",disabled:"disabled"},null,-1),nt={class:"task-list-item-label",for:"task-item-29"},dt={class:"task-list-item"},rt=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-30",checked:"checked",disabled:"disabled"},null,-1),ht={class:"task-list-item-label",for:"task-item-30"},mt={class:"task-list-item"},kt=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-31",checked:"checked",disabled:"disabled"},null,-1),ut={class:"task-list-item-label",for:"task-item-31"},_t={class:"task-list-item"},bt=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-32",checked:"checked",disabled:"disabled"},null,-1),pt={class:"task-list-item-label",for:"task-item-32"},gt={class:"task-list-item"},ft=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-33",checked:"checked",disabled:"disabled"},null,-1),yt={class:"task-list-item-label",for:"task-item-33"},xt={class:"task-list-item"},vt=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-34",checked:"checked",disabled:"disabled"},null,-1),wt={class:"task-list-item-label",for:"task-item-34"},At={class:"hint-container tip",style:{"margin-left":"15px",width:"50%"}},It={class:"compare-title"},qt=e("p",null,[e("strong",null,"Basic API debugging plugin")],-1),Pt=d('
    ',1),Rt=e("h2",{id:"🤝-contact-us",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#🤝-contact-us"},[e("span",null,"🤝 Contact us")])],-1),Ft=e("p",null,"Join and follow us to solve your question ❤️❤️❤️",-1),St={href:"https://twitter.com/FastRequest666",target:"_blank",rel:"noopener noreferrer"},Dt=e("img",{src:"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34",alt:"twitter",loading:"lazy"},null,-1),Bt={href:"https://join.slack.com/t/restfulfastrequest/shared_invite/zt-1we57vum8-TALhTHI2uNmPF2bx1NDyWw",target:"_blank",rel:"noopener noreferrer"},Ct=e("img",{src:"https://img.shields.io/static/v1?label=Slack&message=Restful Fast Request&logo=slack&color=38B580",alt:"Slack",loading:"lazy"},null,-1),Et=e("tbody",null,[e("tr",null,[e("td",null,[e("img",{src:h,alt:"twitter",loading:"lazy"})]),e("td",null,[e("img",{src:m,alt:"telegram",loading:"lazy"})])])],-1);function zt(r,Nt){const c=n("ExternalLinkIcon"),l=n("ColorIcon"),o=n("Badge"),a=n("RouteLink");return u(),_("div",null,[p,e("p",null,[e("a",g,[f,t(c)]),e("a",y,[x,t(c)]),e("a",v,[w,t(c)]),e("a",A,[I,t(c)]),s(),q,s(),P]),R,F,e("div",S,[e("div",D,[e("iframe",{title:"Advantage",src:r.$withBase("/html/showside_en.html"),width:"100%",height:"525px",frameborder:"0",scrolling:"No",leftmargin:"0",topmargin:"0"},null,8,B)]),C,E]),z,e("div",N,[e("div",T,[e("div",j,[t(l,{icon:"restfulFastRequest"}),s("Paid Version ")]),V,t(o,{vertical:"baseline",color:"#FC801D"},{default:i(()=>[s("IDEA 2021.2")]),_:1}),t(o,{vertical:"baseline",color:"#21D789"},{default:i(()=>[s("Humanize")]),_:1}),t(o,{vertical:"baseline",color:"#FF318C"},{default:i(()=>[s("Advanced")]),_:1}),e("ul",G,[J,e("li",L,[U,e("label",H,[t(a,{to:"/en/guide/features/apiToPostman.html"},{default:i(()=>[t(l,{icon:"postman"}),s(" Export to Postman")]),_:1})])]),e("li",M,[W,e("label",O,[t(a,{to:"/en/guide/teamwork.html"},{default:i(()=>[t(l,{icon:"restfulFastRequest"}),s(" Team work support")]),_:1})])]),e("li",Y,[Z,e("label",K,[t(a,{to:"/en/guide/features/makeIconMove.html"},{default:i(()=>[t(l,{icon:"restfulFastRequest"}),s(" Funny icon")]),_:1})])]),e("li",$,[Q,e("label",X,[t(a,{to:"/en/guide/features/script.html"},{default:i(()=>[t(l,{icon:"scriptNew"}),s(" Script")]),_:1})])]),e("li",ee,[te,e("label",se,[t(a,{to:"/en/guide/features/ai.html"},{default:i(()=>[t(l,{icon:"openai"}),s(" OpenAI API Optimizing fields")]),_:1})])]),e("li",ie,[le,e("label",ae,[t(a,{to:"/en/guide/features/projectValueConfig.html"},{default:i(()=>[t(l,{icon:"quanjucanshu"}),s(" Project-level config")]),_:1})])]),e("li",ce,[oe,e("label",ne,[t(a,{to:"/en/guide/features/environment.html"},{default:i(()=>[t(l,{icon:"environment"}),s(" Environment")]),_:1})])]),e("li",de,[re,e("label",he,[t(a,{to:"/en/guide/features/projectLevelDomainConfig.html"},{default:i(()=>[t(l,{icon:"domainConfigNew"}),s(" Yaml、Properties domain parse")]),_:1})])]),e("li",me,[ke,e("label",ue,[t(a,{to:"/en/guide/features/stopRequest.html"},{default:i(()=>[t(l,{icon:"stop"}),s(" Stop API request")]),_:1})])]),e("li",_e,[be,e("label",pe,[t(a,{to:"/en/guide/features/navigateCurrentMethod.html"},{default:i(()=>[t(l,{icon:"localScope"}),s(" Navigate to current method")]),_:1})])]),e("li",ge,[fe,e("label",ye,[t(a,{to:"/en/guide/features/apiGroup.html"},{default:i(()=>[t(l,{icon:"saveGroup"}),t(l,{icon:"apiParamGroupNew"}),s(" API grouping")]),_:1})])]),e("li",xe,[ve,e("label",we,[t(a,{to:"/en/guide/features/tempRequest.html"},{default:i(()=>[t(l,{icon:"saveTemp"}),s(" Temporary request")]),_:1})])]),e("li",Ae,[Ie,e("label",qe,[t(a,{to:"/en/guide/features/clear.html"},{default:i(()=>[t(l,{icon:"clearNew"}),s(" Clear params")]),_:1})])]),e("li",Pe,[Re,e("label",Fe,[t(a,{to:"/en/guide/features/clear.html"},{default:i(()=>[t(l,{icon:"import"}),s(" cURL import")]),_:1})])]),e("li",Se,[De,e("label",Be,[t(a,{to:"/en/guide/features/copyUrl.html"},{default:i(()=>[t(l,{icon:"urlCopy"}),s(" Url copy")]),_:1})])]),e("li",Ce,[Ee,e("label",ze,[t(a,{to:"/en/guide/features/historyRequest.html"},{default:i(()=>[t(l,{icon:"historyNew"}),s(" History request")]),_:1})])]),e("li",Ne,[Te,e("label",je,[t(a,{to:"/en/guide/features/apiDocSync.html"},{default:i(()=>[t(l,{icon:"github"}),t(l,{icon:"gitee"}),t(l,{icon:"gitlab"}),s(" API document sync")]),_:1})])]),e("li",Ve,[Ge,e("label",Je,[t(a,{to:"/en/guide/features/shareApiDoc.html"},{default:i(()=>[t(l,{icon:"markdown"}),s(" API document sharing")]),_:1})])]),e("li",Le,[Ue,e("label",He,[t(a,{to:"/en/guide/features/fullScreen.html"},{default:i(()=>[t(l,{icon:"fullScreen"}),s(" FullScreen")]),_:1})])]),e("li",Me,[We,e("label",Oe,[t(a,{to:"/en/guide/features/commonHeader.html"},{default:i(()=>[t(l,{icon:"commonHeaderNew"}),s(" Common header")]),_:1})])]),e("li",Ye,[Ze,e("label",Ke,[t(a,{to:"/en/guide/features/htmlPreview.html"},{default:i(()=>[t(l,{icon:"chrome"}),s(" Html preview")]),_:1})])]),e("li",$e,[Qe,e("label",Xe,[t(a,{to:"/en/guide/features/apiImportExport.html"},{default:i(()=>[t(l,{icon:"export"}),s(" APIs import and export")]),_:1})])]),e("li",et,[tt,e("label",st,[t(a,{to:"/en/guide/features/batchExportApiDoc.html"},{default:i(()=>[t(l,{icon:"markdown"}),s(" Batch export API doc")]),_:1})])]),e("li",it,[lt,e("label",at,[t(a,{to:"/en/guide/features/swaggerDefaultValueParse.html"},{default:i(()=>[t(l,{icon:"swagger"}),s(" Swagger default value parsing support")]),_:1})])]),e("li",ct,[ot,e("label",nt,[t(a,{to:"/en/guide/features/autoDescription.html"},{default:i(()=>[t(l,{icon:"java"}),s(" Auto Description")]),_:1})])]),e("li",dt,[rt,e("label",ht,[t(a,{to:"/en/guide/features/apiPreview.html"},{default:i(()=>[t(l,{icon:"restfulFastRequest"}),s(" API list preview<")]),_:1})])]),e("li",mt,[kt,e("label",ut,[t(a,{to:"/en/guide/features/apiCommentPreview.html"},{default:i(()=>[t(l,{icon:"class"}),s(" Api 注释预览")]),_:1})])]),e("li",_t,[bt,e("label",pt,[t(a,{to:"/en/guide/features/autoDomain.html"},{default:i(()=>[t(l,{icon:"restfulFastRequest"}),s(" Auto domain")]),_:1})])]),e("li",gt,[ft,e("label",yt,[t(a,{to:"/en/guide/features/annualReport.html"},{default:i(()=>[t(l,{icon:"analyseNew"}),s(" Annual report")]),_:1})])]),e("li",xt,[vt,e("label",wt,[t(a,{to:"/en/guide/features/"},{default:i(()=>[s("More...")]),_:1})])])])]),e("div",At,[e("div",It,[t(l,{icon:"restfulFastRequest1"}),s("Free version ")]),qt,t(o,{vertical:"baseline",color:"#FE2857"},{default:i(()=>[s("IDEA 2020.3~2021.1.3")]),_:1}),t(o,{vertical:"baseline",color:"#07C3F2"},{default:i(()=>[s("Basic usage")]),_:1}),Pt])]),Rt,Ft,e("table",null,[e("thead",null,[e("tr",null,[e("th",null,[e("a",St,[Dt,t(c)])]),e("th",null,[e("a",Bt,[Ct,t(c)])])])]),Et])])}const Gt=k(b,[["render",zt],["__file","index.html.vue"]]),Jt=JSON.parse('{"path":"/en/","title":"Api Buddy","lang":"en-US","frontmatter":{"home":true,"icon":"restfulFastRequest","title":"Api Buddy","heroImageDark":"/img/fastRequest.svg","bgImage":"/img/bg4.svg","heroText":"Fast Request","heroFullScreen":true,"tagline":"Born to simplify debugging APIs","actions":[{"text":"Get Started","link":"/en/guide/getstarted/start","type":"primary"}],"features":[{"title":"Based on native","icon":"origin","details":"Integrated in IntelliJ Idea","link":"/en/guide/introduce.html"},{"title":"Efficiency comes first","icon":"effective","details":"You only need simple configuration to generate method api request, thus saving a lot of time","link":"/en/guide/getstarted/start.html"},{"title":"Rich features","icon":"features","details":"Generate url and parameters、Script support、API export to postman、SearchEveryWhere support、send/download request、Store request...","link":"/en/guide/features/"},{"title":"Lightweight、User-friendly interface","icon":"code-box-fill","details":"Only 16 MB size. Plugin provides a very intuitive interface","link":"/en/guide/install.html"}],"head":[["meta",{"name":"keywords","content":"API Buddy,Fast Request,Restful Fast Request,RestfulFastRequest,api-buddy"}],["meta",{"name":"description","content":"Restful Fast Request is a postman-like plugin in IntelliJ IDEA. It can help you quickly generate url and params according to existing methods,An API debugging tool + API management tool.Support springmvc、springboot、java-rs"}],["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Api Buddy"}],["meta",{"property":"og:description","content":" Slack twitter Github Jetbrains Plugins Version Downloads Advantage "}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:image","content":"https://img.shields.io/static/v1?label=Slack&message=Restful%20Fast%20Request&logo=slack&color=38B580"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Api Buddy"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Api Buddy\\",\\"description\\":\\" Slack twitter Github Jetbrains Plugins Version Downloads Advantage \\"}"]],"description":" Slack twitter Github Jetbrains Plugins Version Downloads Advantage "},"headers":[{"level":2,"title":"Advantage","slug":"advantage","link":"#advantage","children":[]},{"level":2,"title":"🥇 Features","slug":"🥇-features","link":"#🥇-features","children":[]},{"level":2,"title":"🤝 Contact us","slug":"🤝-contact-us","link":"#🤝-contact-us","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1,"words":301},"filePathRelative":"en/README.md","localizedDate":"May 31, 2024","autoDesc":true}');export{Gt as comp,Jt as data}; diff --git a/assets/index.html-T18qVkkc.js b/assets/index.html-T18qVkkc.js new file mode 100644 index 000000000..06c9d0b83 --- /dev/null +++ b/assets/index.html-T18qVkkc.js @@ -0,0 +1 @@ +import{_ as m}from"./wechatGroup-zkZOzzsF.js";import{_ as k}from"./twitter-vJUFHWuk.js";import{_ as u,r as d,o as _,c as b,a as t,b as e,d as s,w as l,e as h}from"./app-8OZtYazS.js";const p={},f=t("div",{style:{"margin-top":"30px"}},null,-1),g={href:"https://join.slack.com/t/restfulfastrequest/shared_invite/zt-1we57vum8-TALhTHI2uNmPF2bx1NDyWw",target:"_blank",rel:"noopener noreferrer"},x=t("img",{src:"https://img.shields.io/static/v1?label=Slack&message=Restful Fast Request&logo=slack&color=38B580",alt:"Slack",loading:"lazy"},null,-1),y={href:"https://twitter.com/FastRequest666",target:"_blank",rel:"noopener noreferrer"},w=t("img",{src:"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34",alt:"Twitter",loading:"lazy"},null,-1),v={href:"https://github.com/dromara/fast-request",target:"_blank",rel:"noopener noreferrer"},I=t("img",{src:"https://badgen.net/badge/Github/fast-request/21D789?icon=github",alt:"github",loading:"lazy"},null,-1),A={href:"https://plugins.jetbrains.com/plugin/16988",target:"_blank",rel:"noopener noreferrer"},R=t("img",{src:"https://img.shields.io/badge/plugin-Restful_Fast_Request-x.svg?logo=IntelliJ IDEA",alt:"Jetbrains Plugins",loading:"lazy"},null,-1),P=t("img",{src:"https://img.shields.io/jetbrains/plugin/v/16988?logo=IntelliJ IDEA",alt:"Version",loading:"lazy"},null,-1),q=t("img",{src:"https://img.shields.io/jetbrains/plugin/d/16988?color=FE2857",alt:"Downloads",loading:"lazy"},null,-1),F=t("div",{style:{"margin-top":"20px"}},null,-1),D=t("h2",{id:"🌈-赞助商",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#🌈-赞助商"},[t("span",null,"🌈 赞助商")])],-1),C=t("strong",null,"赞助可以为您带来什么(必看)",-1),S=t("h2",{id:"优势",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#优势"},[t("span",null,"优势")])],-1),E={class:"home-advantage"},T={style:{"border-radius":"10px",overflow:"hidden"}},N=["src"],B=t("div",{style:{"margin-top":"20px"}},null,-1),z=t("a",{class:"advantage-more",href:"guide/features/"},"更多功能",-1),j=t("h2",{id:"🥇-功能",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#🥇-功能"},[t("span",null,"🥇 功能")])],-1),V={class:"compare-wrapper",style:{display:"flex"}},J={class:"hint-container info",style:{"margin-right":"15px",width:"50%"}},L={class:"compare-title"},U=t("p",null,[t("strong",null,"深度优化的领先的智能 API 调试插件")],-1),G={class:"task-list-container"},H=h('
  • ',5),M={class:"task-list-item"},W=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-5",checked:"checked",disabled:"disabled"},null,-1),O={class:"task-list-item-label",for:"task-item-5"},Z={class:"task-list-item"},K=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-6",checked:"checked",disabled:"disabled"},null,-1),Y={class:"task-list-item-label",for:"task-item-6"},$={class:"task-list-item"},Q=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-7",checked:"checked",disabled:"disabled"},null,-1),X={class:"task-list-item-label",for:"task-item-7"},tt={class:"task-list-item"},et=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-8",checked:"checked",disabled:"disabled"},null,-1),st={class:"task-list-item-label",for:"task-item-8"},lt={class:"task-list-item"},it=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-9",checked:"checked",disabled:"disabled"},null,-1),at={class:"task-list-item-label",for:"task-item-9"},ct={class:"task-list-item"},ot=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-10",checked:"checked",disabled:"disabled"},null,-1),dt={class:"task-list-item-label",for:"task-item-10"},nt={class:"task-list-item"},ht=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-11",checked:"checked",disabled:"disabled"},null,-1),rt={class:"task-list-item-label",for:"task-item-11"},mt={class:"task-list-item"},kt=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-12",checked:"checked",disabled:"disabled"},null,-1),ut={class:"task-list-item-label",for:"task-item-12"},_t={class:"task-list-item"},bt=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-13",checked:"checked",disabled:"disabled"},null,-1),pt={class:"task-list-item-label",for:"task-item-13"},ft={class:"task-list-item"},gt=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-14",checked:"checked",disabled:"disabled"},null,-1),xt={class:"task-list-item-label",for:"task-item-14"},yt={class:"task-list-item"},wt=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-15",checked:"checked",disabled:"disabled"},null,-1),vt={class:"task-list-item-label",for:"task-item-15"},It={class:"task-list-item"},At=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-16",checked:"checked",disabled:"disabled"},null,-1),Rt={class:"task-list-item-label",for:"task-item-16"},Pt={class:"task-list-item"},qt=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-17",checked:"checked",disabled:"disabled"},null,-1),Ft={class:"task-list-item-label",for:"task-item-17"},Dt={class:"task-list-item"},Ct=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-18",checked:"checked",disabled:"disabled"},null,-1),St={class:"task-list-item-label",for:"task-item-18"},Et={class:"task-list-item"},Tt=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-19",checked:"checked",disabled:"disabled"},null,-1),Nt={class:"task-list-item-label",for:"task-item-19"},Bt={class:"task-list-item"},zt=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-20",checked:"checked",disabled:"disabled"},null,-1),jt={class:"task-list-item-label",for:"task-item-20"},Vt={class:"task-list-item"},Jt=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-21",checked:"checked",disabled:"disabled"},null,-1),Lt={class:"task-list-item-label",for:"task-item-21"},Ut={class:"task-list-item"},Gt=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-22",checked:"checked",disabled:"disabled"},null,-1),Ht={class:"task-list-item-label",for:"task-item-22"},Mt={class:"task-list-item"},Wt=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-23",checked:"checked",disabled:"disabled"},null,-1),Ot={class:"task-list-item-label",for:"task-item-23"},Zt={class:"task-list-item"},Kt=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-24",checked:"checked",disabled:"disabled"},null,-1),Yt={class:"task-list-item-label",for:"task-item-24"},$t={class:"task-list-item"},Qt=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-25",checked:"checked",disabled:"disabled"},null,-1),Xt={class:"task-list-item-label",for:"task-item-25"},te={class:"task-list-item"},ee=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-26",checked:"checked",disabled:"disabled"},null,-1),se={class:"task-list-item-label",for:"task-item-26"},le={class:"task-list-item"},ie=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-27",checked:"checked",disabled:"disabled"},null,-1),ae={class:"task-list-item-label",for:"task-item-27"},ce={class:"task-list-item"},oe=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-28",checked:"checked",disabled:"disabled"},null,-1),de={class:"task-list-item-label",for:"task-item-28"},ne={class:"task-list-item"},he=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-29",checked:"checked",disabled:"disabled"},null,-1),re={class:"task-list-item-label",for:"task-item-29"},me={class:"task-list-item"},ke=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-30",checked:"checked",disabled:"disabled"},null,-1),ue={class:"task-list-item-label",for:"task-item-30"},_e={class:"task-list-item"},be=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-31",checked:"checked",disabled:"disabled"},null,-1),pe={class:"task-list-item-label",for:"task-item-31"},fe={class:"task-list-item"},ge=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-32",checked:"checked",disabled:"disabled"},null,-1),xe={class:"task-list-item-label",for:"task-item-32"},ye={class:"task-list-item"},we=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-33",checked:"checked",disabled:"disabled"},null,-1),ve={class:"task-list-item-label",for:"task-item-33"},Ie={class:"task-list-item"},Ae=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-34",checked:"checked",disabled:"disabled"},null,-1),Re={class:"task-list-item-label",for:"task-item-34"},Pe={class:"hint-container tip",style:{"margin-left":"15px",width:"50%"}},qe={class:"compare-title"},Fe=t("p",null,[t("strong",null,"基础 API 调试插件")],-1),De={class:"task-list-container"},Ce=h('
  • ',5),Se={class:"task-list-item"},Ee=t("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-40",checked:"checked",disabled:"disabled"},null,-1),Te={class:"task-list-item-label",for:"task-item-40"},Ne=t("h2",{id:"🎉-致谢",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#🎉-致谢"},[t("span",null,"🎉 致谢")])],-1),Be=t("p",null,[t("strong",null,"Restful Fast Request"),s("简称"),t("strong",null,"RFR"),s("自从 2021 年上线以来获得了很多人的支持。目前微信社区群 1000 多人,下载超过 "),t("img",{src:"https://img.shields.io/jetbrains/plugin/d/16988?color=FE2857",alt:"Downloads",loading:"lazy"}),s(",感谢各位支持者的一路同行,我们会努力提升软件的人性化程度,同时也让软件变得有趣。")],-1),ze=t("strong",null,"RFR",-1),je=t("strong",null,"Restful Fast Request",-1),Ve={href:"https://www.oschina.net/question/2918182_2324736",target:"_blank",rel:"noopener noreferrer"},Je=t("strong",null,"2021",-1),Le=t("p",null,[s("设计师森阳"),t("code",null,"sssenyang@qq.com"),s(" logo设计")],-1),Ue=t("h2",{id:"🤝-联系我们",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#🤝-联系我们"},[t("span",null,"🤝 联系我们")])],-1),Ge=t("p",null,"如果遇到了问题,请通过以下方式联系我们,将会有更快为你解决问题,同时群里全部都是 Javaer,经常会讨论一些技术问题,热点新闻,跳槽,吐槽等,可以帮助你学到一些东西。",-1),He=t("th",null,[t("img",{src:"https://img.shields.io/static/v1?label=wechat&message=微信技术群&logo=wechat&color=07C160",alt:"微信技术群",loading:"lazy"})],-1),Me={href:"https://twitter.com/FastRequest666",target:"_blank",rel:"noopener noreferrer"},We=t("img",{src:"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34",alt:"twitter",loading:"lazy"},null,-1),Oe=t("tbody",null,[t("tr",null,[t("td",null,[t("img",{src:m,alt:"wechat group",loading:"lazy"})]),t("td",null,[t("img",{src:k,alt:"twitter",loading:"lazy"})])]),t("tr",null,[t("td",null,"如果扫码失败请直接搜微信号 FastRequest99"),t("td",null,"欢迎关注官方 Twitter")])],-1);function Ze(r,Ke){const o=d("ExternalLinkIcon"),a=d("RouteLink"),n=d("SiteInfo"),i=d("ColorIcon"),c=d("Badge");return _(),b("div",null,[f,t("p",null,[t("a",g,[x,e(o)]),t("a",y,[w,e(o)]),t("a",v,[I,e(o)]),s(),t("a",A,[R,e(o)]),s(),P,s(),q]),F,D,t("ol",null,[t("li",null,[t("p",null,[e(a,{to:"/guide/sponsor.html#%E4%BC%98%E5%8A%BF"},{default:l(()=>[C]),_:1})])]),t("li",null,[t("p",null,[e(a,{to:"/guide/sponsor.html"},{default:l(()=>[s("成为赞助者")]),_:1})])])]),e(n,{name:"Apifox",desc:"API 设计、开发、测试一体化协作平台",url:"http://apifox.com/?utm_source=pay&utm_medium=fast-request",logo:"/img/sponsor/apifox.png",preview:"/img/sponsor/apifox-home.png",style:{"max-width":"370px"}}),e(n,{name:"引迈信息",desc:"一键生成表单信息",url:"https://www.jnpfsoft.com/index.html?from=fast-request",logo:"/img/sponsor/jnpfsoft-logo.png",preview:"/img/sponsor/jnpfsoft-home.png",style:{"max-width":"370px"}}),S,t("div",E,[t("div",T,[t("iframe",{title:"优势",src:r.$withBase("/html/showside.html"),width:"100%",height:"515px",frameborder:"0",scrolling:"No",leftmargin:"0",topmargin:"0"},null,8,N)]),B,z]),j,t("div",V,[t("div",J,[t("div",L,[e(i,{icon:"restfulFastRequest"}),s("收费版 ")]),U,e(c,{vertical:"baseline",color:"#FC801D"},{default:l(()=>[s("IDEA 2021.2+")]),_:1}),e(c,{vertical:"baseline",color:"#45b787"},{default:l(()=>[s("人性化")]),_:1}),e(c,{vertical:"baseline",color:"#eea2a4"},{default:l(()=>[s("功能丰富")]),_:1}),e(c,{vertical:"baseline",color:"#087CFA"},{default:l(()=>[s("高阶")]),_:1}),t("ul",G,[H,t("li",M,[W,t("label",O,[e(a,{to:"/guide/features/apiToPostman.html"},{default:l(()=>[e(i,{icon:"postman"}),s(" API 导出到 Postman")]),_:1})])]),t("li",Z,[K,t("label",Y,[e(a,{to:"/guide/teamwork.html"},{default:l(()=>[e(i,{icon:"restfulFastRequest"}),s(" 团队协作")]),_:1})])]),t("li",$,[Q,t("label",X,[e(a,{to:"/guide/features/makeIconMove.html"},{default:l(()=>[e(i,{icon:"restfulFastRequest"}),s(" 动态图标")]),_:1})])]),t("li",tt,[et,t("label",st,[e(a,{to:"/guide/features/script.html"},{default:l(()=>[e(i,{icon:"scriptNew"}),s(" 脚本支持")]),_:1})])]),t("li",lt,[it,t("label",at,[e(a,{to:"/guide/features/ai.html"},{default:l(()=>[e(i,{icon:"openai"}),s(" AI 字段替换")]),_:1})])]),t("li",ct,[ot,t("label",dt,[e(a,{to:"/guide/features/projectValueConfig.html"},{default:l(()=>[e(i,{icon:"quanjucanshu"}),s(" 项目级别全局参数支持")]),_:1})])]),t("li",nt,[ht,t("label",rt,[e(a,{to:"/guide/features/environment.html"},{default:l(()=>[e(i,{icon:"environment"}),s(" Environment")]),_:1})])]),t("li",mt,[kt,t("label",ut,[e(a,{to:"/guide/features/projectLevelDomainConfig.html"},{default:l(()=>[e(i,{icon:"domainConfigNew"}),s(" Yaml、Properties 自动识别支持")]),_:1})])]),t("li",_t,[bt,t("label",pt,[e(a,{to:"/guide/features/stopRequest.html"},{default:l(()=>[e(i,{icon:"stop"}),s(" 终止 API 请求功能")]),_:1})])]),t("li",ft,[gt,t("label",xt,[e(a,{to:"/guide/features/navigateCurrentMethod.html"},{default:l(()=>[e(i,{icon:"localScope"}),s("当前方法定位")]),_:1})])]),t("li",yt,[wt,t("label",vt,[e(a,{to:"/guide/features/apiGroup.html"},{default:l(()=>[e(i,{icon:"saveGroup"}),e(i,{icon:"apiParamGroupNew"}),s(" API 分组")]),_:1})])]),t("li",It,[At,t("label",Rt,[e(a,{to:"/guide/features/tempRequest.html"},{default:l(()=>[e(i,{icon:"saveTemp"}),s(" 临时请求")]),_:1})])]),t("li",Pt,[qt,t("label",Ft,[e(a,{to:"/guide/features/clear.html"},{default:l(()=>[e(i,{icon:"clearNew"}),s(" 一键清除参数")]),_:1})])]),t("li",Dt,[Ct,t("label",St,[e(a,{to:"/guide/features/clear.html"},{default:l(()=>[e(i,{icon:"import"}),s(" cURL 导入")]),_:1})])]),t("li",Et,[Tt,t("label",Nt,[e(a,{to:"/guide/features/copyUrl.html"},{default:l(()=>[e(i,{icon:"urlCopy"}),s(" 一键拷贝 Url")]),_:1})])]),t("li",Bt,[zt,t("label",jt,[e(a,{to:"/guide/features/historyRequest.html"},{default:l(()=>[e(i,{icon:"historyNew"}),s(" 历史请求预览")]),_:1})])]),t("li",Vt,[Jt,t("label",Lt,[e(a,{to:"/guide/features/apiDocSync.html"},{default:l(()=>[e(i,{icon:"github"}),e(i,{icon:"gitee"}),e(i,{icon:"gitlab"}),s(" API 文档同步")]),_:1})])]),t("li",Ut,[Gt,t("label",Ht,[e(a,{to:"/guide/features/shareApiDoc.html"},{default:l(()=>[e(i,{icon:"markdown"}),s(" API 文档分享")]),_:1})])]),t("li",Mt,[Wt,t("label",Ot,[e(a,{to:"/guide/features/fullScreen.html"},{default:l(()=>[e(i,{icon:"fullScreen"}),s(" 全屏")]),_:1})])]),t("li",Zt,[Kt,t("label",Yt,[e(a,{to:"/guide/features/commonHeader.html"},{default:l(()=>[e(i,{icon:"commonHeaderNew"}),s(" 常用头参数")]),_:1})])]),t("li",$t,[Qt,t("label",Xt,[e(a,{to:"/guide/features/htmlPreview.html"},{default:l(()=>[e(i,{icon:"chrome"}),s(" Html 预览")]),_:1})])]),t("li",te,[ee,t("label",se,[e(a,{to:"/guide/features/apiImportExport.html"},{default:l(()=>[e(i,{icon:"export"}),s(" APIs 导入导出")]),_:1})])]),t("li",le,[ie,t("label",ae,[e(a,{to:"/guide/features/batchExportApiDoc.html"},{default:l(()=>[e(i,{icon:"markdown"}),s(" 批量导出 API 文档")]),_:1})])]),t("li",ce,[oe,t("label",de,[e(a,{to:"/guide/features/swaggerDefaultValueParse.html"},{default:l(()=>[e(i,{icon:"swagger"}),s(" Swagger 默认值解析")]),_:1})])]),t("li",ne,[he,t("label",re,[e(a,{to:"/guide/features/autoDescription.html"},{default:l(()=>[e(i,{icon:"java"}),s(" API 自动生成注释")]),_:1})])]),t("li",me,[ke,t("label",ue,[e(a,{to:"/guide/features/apiPreview.html"},{default:l(()=>[e(i,{icon:"restfulFastRequest"}),s(" API 一览表预览")]),_:1})])]),t("li",_e,[be,t("label",pe,[e(a,{to:"/guide/features/apiCommentPreview.html"},{default:l(()=>[e(i,{icon:"class"}),s(" Api 注释预览")]),_:1})])]),t("li",fe,[ge,t("label",xe,[e(a,{to:"/guide/features/autoDomain.html"},{default:l(()=>[e(i,{icon:"restfulFastRequest"}),s(" 自动域名")]),_:1})])]),t("li",ye,[we,t("label",ve,[e(a,{to:"/guide/features/annualReport.html"},{default:l(()=>[e(i,{icon:"analyseNew"}),s(" 年度报告")]),_:1})])]),t("li",Ie,[Ae,t("label",Re,[e(a,{to:"/guide/features/"},{default:l(()=>[s("更多...")]),_:1})])])])]),t("div",Pe,[t("div",qe,[e(i,{icon:"restfulFastRequest1"}),s("免费版 ")]),Fe,e(c,{vertical:"baseline",color:"#FC801D"},{default:l(()=>[s("IDEA 2020.3~2021.1.3")]),_:1}),e(c,{vertical:"baseline",color:"#07C3F2"},{default:l(()=>[s("基础使用")]),_:1}),t("ul",De,[Ce,t("li",Se,[Ee,t("label",Te,[e(a,{to:"/guide/features/apiToPostman.html"},{default:l(()=>[e(i,{icon:"postman"}),s(" API 导出到 Postman")]),_:1})])])])])]),Ne,Be,t("p",null,[s("感谢 OSCHINA 和 Gitee 官方平台对"),ze,s("项目的推荐和肯定。"),je,s("在 "),t("a",Ve,[Je,e(o)]),s(' 年度获得"OSC 年度最受欢迎个人项目" '),e(c,{vertical:"baseline"},{default:l(()=>[s("Top 15")]),_:1}),s(" 殊荣。")]),Le,Ue,Ge,t("table",null,[t("thead",null,[t("tr",null,[He,t("th",null,[t("a",Me,[We,e(o)])])])]),Oe])])}const Xe=u(p,[["render",Ze],["__file","index.html.vue"]]),ts=JSON.parse('{"path":"/","title":"Api Buddy","lang":"zh-CN","frontmatter":{"icon":"restfulFastRequest","home":true,"title":"Api Buddy","heroFullScreen":true,"heroImageDark":"/img/fastRequest.svg","bgImage":"/img/bg4.svg","heroText":"Fast Request","tagline":"为简化调试API而生","actions":[{"text":"快速上手","link":"/guide/getstarted/start.html","type":"primary"}],"features":[{"title":"基于原生","icon":"origin","details":"集成 IDEA 工具,在线离线均可使用,不再需要额外的诸如 Postman 等 API 调试工具","link":"/guide/introduce.html"},{"title":"效率至上","icon":"effective","details":"只需要简单配置即可生成方法的 API 请求,从而节省大量时间","link":"/guide/getstarted/start.html"},{"title":"功能丰富","icon":"features","details":"一键生成 URL 和参数、脚本、API 导出到 Postman、SearchEveryWhere 搜索、发送 API 请求、下载文件、存储历史请求,各种功能一应俱全","link":"/guide/features/"},{"title":"轻量、界面友好","icon":"code-box-fill","details":"轻量,仅 16M 大小,并且提供一个非常直观的界面,好操作易上手","link":"/guide/install.html"}],"head":[["meta",{"name":"keywords","content":"API Buddy,Fast Request,RestfulFastRequest,fast request官网,api-buddy,Restful Fast Request,Fast Request激活码"}],["meta",{"name":"description","content":"Restful Fast Request是一个IntelliJ IDEA上的的类似postman的restful api工具插件,可以根据已有的方法帮助您快速生成url和params,一个API调试工具+API管理工具,支持springmvc、springboot、java-rs"}],["meta",{"name":"wwads-cn-verify","content":"2f2b265625d76a6704b08093c652fd79"}],["meta",{"name":"baidu-site-verification","content":"codeva-CrZ94MmST2"}],["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/"}],["meta",{"property":"og:url","content":"https://api-buddy.com/"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Api Buddy"}],["meta",{"property":"og:description","content":" Slack Twitter github Jetbrains Plugins Version Downloads 🌈 赞助商 "}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:image","content":"https://img.shields.io/static/v1?label=Slack&message=Restful%20Fast%20Request&logo=slack&color=38B580"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Api Buddy"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Api Buddy\\",\\"description\\":\\" Slack Twitter github Jetbrains Plugins Version Downloads 🌈 赞助商 \\"}"]],"description":" Slack Twitter github Jetbrains Plugins Version Downloads 🌈 赞助商 "},"headers":[{"level":2,"title":"🌈 赞助商","slug":"🌈-赞助商","link":"#🌈-赞助商","children":[]},{"level":2,"title":"优势","slug":"优势","link":"#优势","children":[]},{"level":2,"title":"🥇 功能","slug":"🥇-功能","link":"#🥇-功能","children":[]},{"level":2,"title":"🎉 致谢","slug":"🎉-致谢","link":"#🎉-致谢","children":[]},{"level":2,"title":"🤝 联系我们","slug":"🤝-联系我们","link":"#🤝-联系我们","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":2.24,"words":671},"filePathRelative":"README.md","localizedDate":"2024年5月31日","autoDesc":true}');export{Xe as comp,ts as data}; diff --git a/assets/index.html-iS-fSKEl.js b/assets/index.html-iS-fSKEl.js new file mode 100644 index 000000000..51f3c4349 --- /dev/null +++ b/assets/index.html-iS-fSKEl.js @@ -0,0 +1 @@ +import{_ as t,r as a,o,c as r,b as n}from"./app-8OZtYazS.js";const s={};function c(l,p){const e=a("Catalog");return o(),r("div",null,[n(e)])}const d=t(s,[["render",c],["__file","index.html.vue"]]),m=JSON.parse('{"path":"/guide/getstarted/","title":"Getstarted","lang":"zh-CN","frontmatter":{"title":"Getstarted","article":false,"feed":false,"sitemap":false,"description":"","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/getstarted/"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/getstarted/"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Getstarted"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Getstarted\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":1},"filePathRelative":null,"autoDesc":true}');export{d as comp,m as data}; diff --git a/assets/index.html-r-lGMhBe.js b/assets/index.html-r-lGMhBe.js new file mode 100644 index 000000000..860c61827 --- /dev/null +++ b/assets/index.html-r-lGMhBe.js @@ -0,0 +1 @@ +import{_ as t,r as o,o as a,c as n,b as r}from"./app-8OZtYazS.js";const s={};function c(i,p){const e=o("Catalog");return a(),n("div",null,[r(e)])}const d=t(s,[["render",c],["__file","index.html.vue"]]),m=JSON.parse('{"path":"/en/guide/","title":"Guide","lang":"zh-CN","frontmatter":{"title":"Guide","article":false,"feed":false,"sitemap":false,"description":"","head":[["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Guide"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Guide\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":1},"filePathRelative":null,"autoDesc":true}');export{d as comp,m as data}; diff --git a/assets/index.html-rfOehzxC.js b/assets/index.html-rfOehzxC.js new file mode 100644 index 000000000..ca9ab45f5 --- /dev/null +++ b/assets/index.html-rfOehzxC.js @@ -0,0 +1 @@ +import{_ as u}from"./toolwindowNew-QF7S_oTa.js";import{_ as r,r as n,o as s,c as d,a as t,b as e,w as o,e as c,d as a}from"./app-8OZtYazS.js";const h={},f=c('

    功能列表

    文档中的图标对应插件中的按钮图标,大标题对应 tab 以及功能

    toolwindowNew

    Request

    ',4),m=t("hr",null,null,-1),p=t("hr",null,null,-1),g=t("h2",{id:"apis",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#apis"},[t("span",null,"Apis")])],-1),_=t("h2",{id:"navigate",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#navigate"},[t("span",null,"Navigate")])],-1),w=t("h2",{id:"generate",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#generate"},[t("span",null,"Generate")])],-1),v=t("h2",{id:"editor",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#editor"},[t("span",null,"Editor")])],-1),A=t("h2",{id:"script",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#script"},[t("span",null,"Script")])],-1),y=t("h2",{id:"other",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#other"},[t("span",null,"Other")])],-1);function N(b,k){const l=n("ColorIcon"),i=n("RouteLink");return s(),d("div",null,[f,t("ul",null,[t("li",null,[e(i,{to:"/guide/features/makeIconMove.html"},{default:o(()=>[e(l,{icon:"restfulFastRequest"}),a(" 让图标动起来")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/projectLevelDomainConfig.html"},{default:o(()=>[e(l,{icon:"domainConfigNew"}),a(" 项目域名配置")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/environment.html"},{default:o(()=>[e(l,{icon:"environment"}),a(" Environment")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/projectValueConfig.html"},{default:o(()=>[e(l,{icon:"quanjucanshu"}),a(" 项目级别全局参数支持")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/searchEveryWhere.html"},{default:o(()=>[e(l,{icon:"searchApi"}),a(" SearchEveryWhere")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/debugApi.html"},{default:o(()=>[e(l,{icon:"sendNew"}),a(" 调试 API 发送请求")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/downloadApi.html"},{default:o(()=>[e(l,{icon:"sendDownloadNew"}),a(" 下载文件")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/stopRequest.html"},{default:o(()=>[e(l,{icon:"stop"}),a(" 终止 API 请求功能")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/saveRequest.html"},{default:o(()=>[e(l,{icon:"save"}),a(" 保存请求")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/apiGroup.html"},{default:o(()=>[e(l,{icon:"saveGroup"}),a(" API 分组保存")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/tempRequest.html"},{default:o(()=>[e(l,{icon:"saveTemp"}),a(" 临时请求")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/apifox.html"},{default:o(()=>[e(l,{icon:"apifox"}),a(" Apifox 集成")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/function.html"},{default:o(()=>[e(l,{icon:"function"}),a(" 函数")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/postmanSync.html"},{default:o(()=>[e(l,{icon:"postmanNew"}),a(" Postman 集成")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/apiGroup.html"},{default:o(()=>[e(l,{icon:"apiParamGroupNew"}),a(" API 分组切换")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/navigateCurrentMethod.html"},{default:o(()=>[e(l,{icon:"locate"}),a(" 当前方法定位")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/navigateCurrentMethodJson.html"},{default:o(()=>[e(l,{icon:"storeData"}),a(" 多窗口 Tab")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/regenerate.html"},{default:o(()=>[e(l,{icon:"regenerate"}),a(" 重新生成请求")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/clear.html"},{default:o(()=>[e(l,{icon:"clearNew"}),a(" 清除")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/curlImport.html"},{default:o(()=>[e(l,{icon:"import"}),a(" cURL 导入")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/copyCurl.html"},{default:o(()=>[e(l,{icon:"curl1"}),a(" cURL 拷贝")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/copyUrl.html"},{default:o(()=>[e(l,{icon:"urlCopy"}),a(" 一键拷贝 Url")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/historyRequest.html"},{default:o(()=>[e(l,{icon:"historyNew"}),a(" 历史请求预览")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/apiDocSync.html"},{default:o(()=>[e(l,{icon:"github"}),a(),e(l,{icon:"gitee"}),a(),e(l,{icon:"gitlab"}),a(" API 文档同步")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/shareApiDoc.html"},{default:o(()=>[e(l,{icon:"markdown"}),a(" API 文档分享")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/markdownDocTemplateConfig.html"},{default:o(()=>[e(l,{icon:"settings"}),a(" Markdown 文档模板配置")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/projectConfigRefresh.html"},{default:o(()=>[e(l,{icon:"rcd-refresh"}),a(" 项目配置刷新")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/annualReport.html"},{default:o(()=>[e(l,{icon:"analyseNew"}),a(" 年度报告")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/customToolbar.html"},{default:o(()=>[e(l,{icon:"customToolbar"}),a(" 自定义工具栏")]),_:1})])]),m,t("ul",null,[t("li",null,[e(i,{to:"/guide/features/settingManager.html"},{default:o(()=>[e(l,{icon:"settings"}),a(" 管理配置")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/fullScreen.html"},{default:o(()=>[e(l,{icon:"fullScreen"}),a(" 全屏")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/docAndContact.html"},{default:o(()=>[e(l,{icon:"doc"}),a(" 文档/快速联系")]),_:1})]),t("li",null,[e(i,{to:"/guide/eula.html"},{default:o(()=>[e(l,{icon:"license"}),a(" EULA")]),_:1})])]),p,t("ul",null,[t("li",null,[e(i,{to:"/guide/features/autoDomain.html"},{default:o(()=>[e(l,{icon:"restfulFastRequest"}),a(" 自动域名")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/ai.html"},{default:o(()=>[e(l,{icon:"openai"}),a(" AI")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/headerGroup.html"},{default:o(()=>[e(l,{icon:"headerGroupNew"}),a(" Headers 分组")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/commonHeader.html"},{default:o(()=>[e(l,{icon:"commonHeaderNew"}),a(" 常用头参数")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/bulkEdit.html"},{default:o(()=>[e(l,{icon:"bulkEdit"}),a(" Headers批量编辑")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/basicAuth.html"},{default:o(()=>[e(l,{icon:"lock"}),a(" Basei auth")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/htmlPreview.html"},{default:o(()=>[e(l,{icon:"chrome"}),a(" Html 预览")]),_:1})])]),g,t("ul",null,[t("li",null,[e(i,{to:"/guide/features/apiList.html"},{default:o(()=>[e(l,{icon:"apis"}),a(" API 列表")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/apiToPostman.html"},{default:o(()=>[e(l,{icon:"postman"}),a(" API 导出到 Postman")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/apiImportExport.html"},{default:o(()=>[e(l,{icon:"export"}),a(" APIs 导入导出")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/batchExportApiDoc.html"},{default:o(()=>[e(l,{icon:"markdown"}),a(" 批量导出 API 文档")]),_:1})])]),_,t("ul",null,[t("li",null,[e(i,{to:"/guide/features/apiNavigateTree.html"},{default:o(()=>[e(l,{icon:"locateNavigate"}),a(" API 导航树")]),_:1})])]),w,t("ul",null,[t("li",null,[e(i,{to:"/guide/features/swaggerDefaultValueParse.html"},{default:o(()=>[e(l,{icon:"swagger"}),a(" Swagger 默认值")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/autoDescription.html"},{default:o(()=>[e(l,{icon:"java"}),a(" API 自动生成注释")]),_:1})])]),v,t("ul",null,[t("li",null,[e(i,{to:"/guide/features/projectLevelDomainConfig.html"},{default:o(()=>[e(l,{icon:"restfulFastRequest"}),a(" 项目域名快速配置")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/apiPreview.html"},{default:o(()=>[e(l,{icon:"restfulFastRequest"}),a(" API 一览表预览")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/apiCommentPreview.html"},{default:o(()=>[e(l,{icon:"class"}),a(" Api 注释预览")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/parseStrategy.html"},{default:o(()=>[e(l,{icon:"field_dark"}),a(" 解析策略")]),_:1})])]),A,t("ul",null,[t("li",null,[e(i,{to:"/guide/features/script.html"},{default:o(()=>[e(l,{icon:"scriptNew"}),a(" 脚本")]),_:1})])]),y,t("ul",null,[t("li",null,[e(i,{to:"/guide/features/quickAddHeader.html"},{default:o(()=>[e(l,{icon:"add1"}),a(" 快速添加 header")]),_:1})]),t("li",null,[e(i,{to:"/guide/features/jsonGrammarCheck.html"},{default:o(()=>[e(l,{icon:"json"}),a(" Json 语法检查")]),_:1})])])])}const P=r(h,[["render",N],["__file","index.html.vue"]]),R=JSON.parse('{"path":"/guide/features/","title":"功能列表","lang":"zh-CN","frontmatter":{"icon":"featuresNew","description":"功能列表 文档中的图标对应插件中的按钮图标,大标题对应 tab 以及功能 toolwindowNew Request Apis Navigate Generate Editor Script Other ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"功能列表"}],["meta",{"property":"og:description","content":"功能列表 文档中的图标对应插件中的按钮图标,大标题对应 tab 以及功能 toolwindowNew Request Apis Navigate Generate Editor Script Other "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/toolwindowNew.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-08-20T00:15:22.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"功能列表"}],["meta",{"property":"article:modified_time","content":"2024-08-20T00:15:22.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"功能列表\\",\\"image\\":[\\"https://api-buddy.com/img/toolwindowNew.png\\"],\\"dateModified\\":\\"2024-08-20T00:15:22.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Request","slug":"request","link":"#request","children":[]},{"level":2,"title":"Apis","slug":"apis","link":"#apis","children":[]},{"level":2,"title":"Navigate","slug":"navigate","link":"#navigate","children":[]},{"level":2,"title":"Generate","slug":"generate","link":"#generate","children":[]},{"level":2,"title":"Editor","slug":"editor","link":"#editor","children":[]},{"level":2,"title":"Script","slug":"script","link":"#script","children":[]},{"level":2,"title":"Other","slug":"other","link":"#other","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1724112922000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1},{"name":"kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.88,"words":563},"filePathRelative":"guide/features/README.md","localizedDate":"2024年5月31日","autoDesc":true}');export{P as comp,R as data}; diff --git a/assets/index.html-whIE1SLb.js b/assets/index.html-whIE1SLb.js new file mode 100644 index 000000000..7a8e93f40 --- /dev/null +++ b/assets/index.html-whIE1SLb.js @@ -0,0 +1 @@ +import{_ as t,r as a,o,c as n,b as r}from"./app-8OZtYazS.js";const c={};function i(l,s){const e=a("Catalog");return o(),n("div",null,[r(e)])}const d=t(c,[["render",i],["__file","index.html.vue"]]),m=JSON.parse('{"path":"/guide/","title":"Guide","lang":"zh-CN","frontmatter":{"title":"Guide","article":false,"feed":false,"sitemap":false,"description":"","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Guide"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Guide\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":1},"filePathRelative":null,"autoDesc":true}');export{d as comp,m as data}; diff --git a/assets/install.html-20W4_2hH.js b/assets/install.html-20W4_2hH.js new file mode 100644 index 000000000..06cda73e7 --- /dev/null +++ b/assets/install.html-20W4_2hH.js @@ -0,0 +1 @@ +import{_ as l,a as s}from"./installLocal-HOv7vxnK.js";import{_ as o,r as i,o as r,c as p,a as e,d as t,b as a,e as c}from"./app-8OZtYazS.js";const d={},u=c('

    点击安装

    在线安装(推荐)

    IDEA 插件市场搜索 Restful Fast Request 并安装

    download

    离线安装

    适用内网使用或者体验版使用

    ',7),m={href:"https://plugins.jetbrains.com/plugin/16988-restful-fast-request/versions",target:"_blank",rel:"noopener noreferrer"},h=e("li",null,"前往 setting → plugins → Install plugin from disk",-1),g=e("li",null,[t("选择下载好的安装包并重启 ("),e("mark",null,"请不要解压压缩包"),t(")")],-1),_=e("p",null,[e("img",{src:l,alt:"installLocal",loading:"lazy"})],-1),f=e("h2",{id:"eap",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#eap"},[e("span",null,"EAP")])],-1),b=e("p",null,[e("mark",null,"IDEA 版本 2021.2+")],-1),y=e("p",null,"eap 版本为抢先版本,可能会相对不大稳定,但是很多用户希望提前使用一些高级的功能,那么可以尝试使用.",-1),k=e("p",null,[t("eap 版本需要先去下载对应的 eap 压缩包,安装请参考方式"),e("strong",null,"离线安装"),t(",忽略步骤 a")],-1),q={href:"https://plugins.jetbrains.com/plugin/16988-restful-fast-request/versions/eap",target:"_blank",rel:"noopener noreferrer"},v=e("div",{class:"hint-container caution"},[e("p",{class:"hint-container-title"},"注意"),e("p",null,"使用 eap 版本的时候需要注意,一般低版本升级到高版本的 eap 不大会出什么问题,但是从高版本的 eap 版本降级到低版本的稳定版本,eap 版本中一些新的功能保存的数据, 可能会丢失")],-1);function x(w,E){const n=i("ExternalLinkIcon");return r(),p("div",null,[u,e("ol",null,[e("li",null,[t("前往 "),e("a",m,[t("https://plugins.jetbrains.com/plugin/16988-restful-fast-request/versions"),a(n)]),t(" 下载安装包")]),h,g]),_,f,b,y,k,e("p",null,[e("a",q,[t("前往下载"),a(n)])]),v])}const A=o(d,[["render",x],["__file","install.html.vue"]]),I=JSON.parse('{"path":"/guide/install.html","title":"安装","lang":"zh-CN","frontmatter":{"icon":"install-fill","title":"安装","description":"点击安装 在线安装(推荐) IDEA 插件市场搜索 Restful Fast Request 并安装 download 离线安装 适用内网使用或者体验版使用 前往 https://plugins.jetbrains.com/plugin/16988-restful-fast-request/versions 下载安装包 前往 setting → plu...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/install.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/install.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"安装"}],["meta",{"property":"og:description","content":"点击安装 在线安装(推荐) IDEA 插件市场搜索 Restful Fast Request 并安装 download 离线安装 适用内网使用或者体验版使用 前往 https://plugins.jetbrains.com/plugin/16988-restful-fast-request/versions 下载安装包 前往 setting → plu..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/download.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"安装"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"安装\\",\\"image\\":[\\"https://api-buddy.com/img/download.png\\",\\"https://api-buddy.com/img/installLocal.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"在线安装(推荐)","slug":"在线安装-推荐","link":"#在线安装-推荐","children":[]},{"level":2,"title":"离线安装","slug":"离线安装","link":"#离线安装","children":[]},{"level":2,"title":"EAP","slug":"eap","link":"#eap","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.92,"words":275},"filePathRelative":"guide/install.md","localizedDate":"2024年5月31日","autoDesc":true}');export{A as comp,I as data}; diff --git a/assets/install.html-TZR57Mr7.js b/assets/install.html-TZR57Mr7.js new file mode 100644 index 000000000..fe251a967 --- /dev/null +++ b/assets/install.html-TZR57Mr7.js @@ -0,0 +1 @@ +import{a as i,_ as o}from"./installLocal-HOv7vxnK.js";import{_ as s,r,o as p,c,a as e,d as t,b as a,e as l}from"./app-8OZtYazS.js";const d={},m=l('

    Click to install

    Online install

    Search Restful Fast Request in idea plugin marketplace

    download

    Offline install

    Applicable to intranet use or trial version usage

    ',7),u={href:"https://plugins.jetbrains.com/plugin/16988-restful-fast-request/versions",target:"_blank",rel:"noopener noreferrer"},h=l('

    b. Go to setting -> plugins -> Install plugin from disk

    c. Select the downloaded zip file and restart (Be careful not to unzip the zip file)

    installLocal

    EAP

    IDEA version required 2021.2+

    The EAP version is a pre-release and may be relatively unstable, but many users will want to try out some advanced features in advance. So you can try it out.

    To install the EAP version, you need to download the corresponding EAP package. Please refer to Offline install and ignore the first step.

    ',7),g={href:"https://plugins.jetbrains.com/plugin/16988-restful-fast-request/versions/eap",target:"_blank",rel:"noopener noreferrer"},f=e("div",{class:"hint-container caution"},[e("p",{class:"hint-container-title"},"Note"),e("p",null,"When using EAP versions, it is essential to note that upgrading from a lower version to a higher version of EAP will not cause any problems, but when downgrading from a higher version to a lower stable version, some data generated by the new features in the EAP version may be lost.")],-1);function _(b,y){const n=r("ExternalLinkIcon");return p(),c("div",null,[m,e("p",null,[t("a. Go to "),e("a",u,[t("https://plugins.jetbrains.com/plugin/16988-restful-fast-request/versions"),a(n)]),t(" and download zip file")]),h,e("p",null,[e("a",g,[t("Download eap package"),a(n)])]),f])}const w=s(d,[["render",_],["__file","install.html.vue"]]),A=JSON.parse('{"path":"/en/guide/install.html","title":"Install","lang":"en-US","frontmatter":{"icon":"install-fill","title":"Install","description":"Click to install Online install Search Restful Fast Request in idea plugin marketplace download Offline install Applicable to intranet use or trial version usage a. Go to https:...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/install.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/install.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Install"}],["meta",{"property":"og:description","content":"Click to install Online install Search Restful Fast Request in idea plugin marketplace download Offline install Applicable to intranet use or trial version usage a. Go to https:..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/download.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Install"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Install\\",\\"image\\":[\\"https://api-buddy.com/img/download.png\\",\\"https://api-buddy.com/img/installLocal.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Online install","slug":"online-install","link":"#online-install","children":[]},{"level":2,"title":"Offline install","slug":"offline-install","link":"#offline-install","children":[]},{"level":2,"title":"EAP","slug":"eap","link":"#eap","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.68,"words":204},"filePathRelative":"en/guide/install.md","localizedDate":"May 31, 2024","autoDesc":true}');export{w as comp,A as data}; diff --git a/assets/installLocal-HOv7vxnK.js b/assets/installLocal-HOv7vxnK.js new file mode 100644 index 000000000..79ebf6495 --- /dev/null +++ b/assets/installLocal-HOv7vxnK.js @@ -0,0 +1 @@ +const o="/img/download.png",s="/img/installLocal.png";export{s as _,o as a}; diff --git a/assets/introduce.html-LNziiyTM.js b/assets/introduce.html-LNziiyTM.js new file mode 100644 index 000000000..399644706 --- /dev/null +++ b/assets/introduce.html-LNziiyTM.js @@ -0,0 +1,4 @@ +import{_ as c}from"./wechatGroup-zkZOzzsF.js";import{_ as d}from"./twitter-vJUFHWuk.js";import{_ as g,r as o,o as h,c as u,a as t,b as e,d as s,e as i}from"./app-8OZtYazS.js";const p={},m={href:"https://twitter.com/FastRequest666",target:"_blank",rel:"noopener noreferrer"},_=t("img",{src:"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34",alt:"twitter",loading:"lazy"},null,-1),b={href:"https://github.com/dromara/fast-request",target:"_blank",rel:"noopener noreferrer"},f=t("img",{src:"https://badgen.net/badge/Github/fast-request/21D789?icon=github",alt:"",loading:"lazy"},null,-1),w={href:"https://gitee.com/dromara/fast-request",target:"_blank",rel:"noopener noreferrer"},y=t("img",{src:"https://img.shields.io/static/v1?label=Gitee&message=fast-request&color=FF318C&logo=gitee",alt:"",loading:"lazy"},null,-1),F={href:"https://plugins.jetbrains.com/plugin/16988",target:"_blank",rel:"noopener noreferrer"},q=t("img",{src:"https://img.shields.io/badge/plugin-Restful_Fast_Request-x.svg?logo=IntelliJ IDEA",alt:"Jetbrains Plugins",loading:"lazy"},null,-1),v=t("img",{src:"https://img.shields.io/jetbrains/plugin/v/16988?logo=IntelliJ IDEA",alt:"Version",loading:"lazy"},null,-1),k=t("img",{src:"https://img.shields.io/jetbrains/plugin/d/16988?color=FE2857",alt:"Downloads",loading:"lazy"},null,-1),A=t("img",{src:"https://img.shields.io/jetbrains/plugin/r/rating/16988",alt:"JetBrains Plugins",loading:"lazy"},null,-1),I={href:"https://join.slack.com/t/restfulfastrequest/shared_invite/zt-1we57vum8-TALhTHI2uNmPF2bx1NDyWw",target:"_blank",rel:"noopener noreferrer"},P=t("img",{src:"https://img.shields.io/static/v1?label=Slack&message=Restful Fast Request&logo=slack&color=38B580",alt:"Slack",loading:"lazy"},null,-1),R={href:"https://plugins.jetbrains.com/plugin/16988-fast-request",target:"_blank",rel:"noopener noreferrer"},D=t("i",{class:"icon iconfont icon-rfr-f"},null,-1),E=t("code",null,"Restful Fast Request = API调试工具 + API管理工具 + API搜索工具",-1),x=i(`

    对比于 HTTP Client,Fast Request 不仅拥有 HTTP Client 内置的功能,还提供了友好易懂直观的界面,让使用者调试 API 的时候能够更加方便、简捷。同时各种类型参数也提供了不同的定制方式,更加灵活。而且集成了搜索、Postman 集成,Swagger 支持等额外的功能。

    宗旨

    插件的宗旨是为简化开发、提高效率而生,我们的愿景是成为 IDEA 最好的搭档,就像魂斗罗中的 1P、2P,基友搭配,效率翻倍。

    支持的框架

    Spring体系框架 (Spring MVC / Spring Boot)
    +JAX-RS
    +Kotlin Spring体系框架
    +
    `,4),C=t("h2",{id:"建议",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#建议"},[t("span",null,"建议")])],-1),S=t("p",null,"如果有新版本出来,请尽快更新到最新的版本。(插件往往在升级过程中会加入新的功能或者修复你未发现的 bug)",-1),T=t("h2",{id:"关于作者",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#关于作者"},[t("span",null,"关于作者")])],-1),j=t("p",null,"职务: 从事 java 软件开发。Restful Fast Request 作者、设计师、星推官",-1),J=t("h2",{id:"🤝-联系我们",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#🤝-联系我们"},[t("span",null,"🤝 联系我们")])],-1),B=t("p",null,"如果遇到了问题,请通过以下方式联系我们,将会有更快为你解决问题,同时群里全部都是 Javaer,经常会讨论一些技术问题,热点新闻,跳槽,吐槽等,可以帮助你学到一些东西。",-1),z=t("th",null,[t("img",{src:"https://img.shields.io/static/v1?label=wechat&message=微信技术群&logo=wechat&color=07C160",alt:"微信技术群",loading:"lazy"})],-1),Q={href:"https://twitter.com/FastRequest666",target:"_blank",rel:"noopener noreferrer"},V=t("img",{src:"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34",alt:"twitter",loading:"lazy"},null,-1),L=t("tbody",null,[t("tr",null,[t("td",null,[t("img",{src:c,alt:"wechat group",loading:"lazy"})]),t("td",null,[t("img",{src:d,alt:"twitter",loading:"lazy"})])]),t("tr",null,[t("td",null,"如果扫码失败请直接搜微信号 FastRequest99"),t("td",null,"欢迎关注官方 Twitter")])],-1),K=i('

    支持

    ',2);function N(U,W){const a=o("ExternalLinkIcon"),l=o("FontIcon"),n=o("ChartJS"),r=o("VPCard");return h(),u("div",null,[t("p",null,[t("a",m,[_,e(a)]),t("a",b,[f,e(a)]),t("a",w,[y,e(a)]),t("a",F,[q,e(a)]),v,s(),k,s(),A,s(),t("a",I,[P,e(a)])]),t("p",null,[t("a",R,[t("strong",null,[e(l,{icon:"restfulFastRequest"}),s("estful "),D,s("ast "),e(l,{icon:"restfulFastRequest"}),s("equest")]),e(a)]),s(" 是一个类似于 Postman 的 IDEA 插件。它是一个强大的 restful api 工具包插件,可以根据已有的方法帮助您快速生成 url 和 params。 "),E,s("。 它有一个漂亮的界面来完成请求、检查服务器响应、存储你的 api 请求和导出 api 请求。插件帮助你在 IDEA 界面内更快更高效得调试你的 API")]),x,e(n,{id:"chart-18",config:"eJy9U81KxDAQvu9ThHhRKNL91fWoIKIX0YOHZQ+pTWux29Q0XREpeBJhQQQ9CD6AvoCPZMW3cCabYssWuyB4mEkyme+bST7mukUIVVcxp1uESuYySS0MuUwxCOE1nELm8DCB84jmz4+fT2/5zSu1CD2+ZL7PAULoPpsyXA+ECoMIdx/3s/x9hruvl9v87oGOkdlwJ1xpPh0hps5PLexmlyWKHPGLlCdKN2USTGujYd8iQ3tuG2A9sIFtiuhMLwiRScmUl6IOOz33pUgjd0eEQuqH+w5bBXinD67d71nEXu+slYs6QrpclgHl/EpqLIJIbdcWacBUa6x4nreQsyemXNaQ/5Lc0LnBZAW4TopDkagJA1UXVdgEnsKQE9Vo23+QAX+/PehAi10QeAkdyoClhWgA/ZcS1TYKKfQ6Bq9FoSJWgYhwXMw48pBPeKQHqFCLwtDhDJfUm3/VSeCqM7joVsjRZ62s9Q25jgh/",title:"API%20%E5%B7%A5%E5%85%B7%E5%AF%B9%E6%AF%94",type:"json"}),C,S,T,e(r,{title:"Kings",desc:"Make it easier...faster...stronger...
    ",logo:"/img/fastRequest.svg",link:"https://github.com/kings1990",background:"rgb(39 117 182 / 38%)"}),j,J,B,t("table",null,[t("thead",null,[t("tr",null,[z,t("th",null,[t("a",Q,[V,e(a)])])])]),L]),K])}const Z=g(p,[["render",N],["__file","introduce.html.vue"]]),G=JSON.parse('{"path":"/guide/introduce.html","title":"简介","lang":"zh-CN","frontmatter":{"title":"简介","icon":"restfulFastRequest","description":"twitter Jetbrains Plugins Version Downloads JetBrains Plugins Slack 是一个类似于 Postman 的 IDEA 插件。它是一个强大的 restful api 工具包插件,可以根据已有的方法帮助您快速生成 url 和 params。 Restful Fast Request = API调...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/introduce.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/introduce.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"简介"}],["meta",{"property":"og:description","content":"twitter Jetbrains Plugins Version Downloads JetBrains Plugins Slack 是一个类似于 Postman 的 IDEA 插件。它是一个强大的 restful api 工具包插件,可以根据已有的方法帮助您快速生成 url 和 params。 Restful Fast Request = API调..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"简介"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"简介\\",\\"image\\":[\\"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34\\",\\"https://badgen.net/badge/Github/fast-request/21D789?icon=github\\",\\"https://img.shields.io/static/v1?label=Gitee&message=fast-request&color=FF318C&logo=gitee\\",\\"https://img.shields.io/jetbrains/plugin/v/16988?logo=IntelliJ%20IDEA\\",\\"https://img.shields.io/jetbrains/plugin/d/16988?color=FE2857\\",\\"https://img.shields.io/jetbrains/plugin/r/rating/16988\\",\\"https://img.shields.io/static/v1?label=Slack&message=Restful%20Fast%20Request&logo=slack&color=38B580\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"支持的框架","slug":"支持的框架","link":"#支持的框架","children":[]},{"level":2,"title":"建议","slug":"建议","link":"#建议","children":[]},{"level":2,"title":"关于作者","slug":"关于作者","link":"#关于作者","children":[]},{"level":2,"title":"🤝 联系我们","slug":"🤝-联系我们","link":"#🤝-联系我们","children":[]},{"level":2,"title":"支持","slug":"支持","link":"#支持","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":2.06,"words":617},"filePathRelative":"guide/introduce.md","localizedDate":"2024年5月31日","autoDesc":true}');export{Z as comp,G as data}; diff --git a/assets/introduce.html-l5-OctNt.js b/assets/introduce.html-l5-OctNt.js new file mode 100644 index 000000000..b84739028 --- /dev/null +++ b/assets/introduce.html-l5-OctNt.js @@ -0,0 +1,4 @@ +import{_ as c,r as a,o as d,c as p,a as e,b as t,d as s,n as u,h,e as i}from"./app-8OZtYazS.js";const m={},g={href:"https://join.slack.com/t/restfulfastrequest/shared_invite/zt-1we57vum8-TALhTHI2uNmPF2bx1NDyWw",target:"_blank",rel:"noopener noreferrer"},f=e("img",{src:"https://img.shields.io/static/v1?label=Slack&message=Restful Fast Request&logo=slack&color=38B580",alt:"Slack",loading:"lazy"},null,-1),b={href:"https://twitter.com/FastRequest666",target:"_blank",rel:"noopener noreferrer"},_=e("img",{src:"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34",alt:"twitter",loading:"lazy"},null,-1),v={href:"https://github.com/dromara/fast-request",target:"_blank",rel:"noopener noreferrer"},k=e("img",{src:"https://badgen.net/badge/Github/fast-request/21D789?icon=github",alt:"",loading:"lazy"},null,-1),y={href:"https://gitee.com/dromara/fast-request",target:"_blank",rel:"noopener noreferrer"},I=e("img",{src:"https://img.shields.io/static/v1?label=Gitee&message=fast-request&color=FF318C&logo=gitee",alt:"",loading:"lazy"},null,-1),w={href:"https://plugins.jetbrains.com/plugin/16988",target:"_blank",rel:"noopener noreferrer"},P=e("img",{src:"https://img.shields.io/badge/plugin-FastRequest-x.svg?logo=IntelliJ IDEA",alt:"Jetbrains Plugins",loading:"lazy"},null,-1),R=e("img",{src:"https://img.shields.io/jetbrains/plugin/v/16988?logo=IntelliJ IDEA",alt:"Version",loading:"lazy"},null,-1),q=e("img",{src:"https://img.shields.io/jetbrains/plugin/d/16988?color=FE2857",alt:"Downloads",loading:"lazy"},null,-1),A=e("img",{src:"https://img.shields.io/jetbrains/plugin/r/rating/16988",alt:"JetBrains Plugins",loading:"lazy"},null,-1),x={href:"https://plugins.jetbrains.com/plugin/16988-fast-request",target:"_blank",rel:"noopener noreferrer"},F=e("i",{class:"icon iconfont icon-rfr-f"},null,-1),S=e("code",null,"Restful Fast Request = API debug tool + API manager tool + API search tool",-1),D=i(`

    Compared with the HTTP Client, Restful Fast Request not only has the built-in functions of the HTTP Client but also provides a friendly, easy-to-understand and intuitive interface, which makes it more convenient and simple for users to debug the API. At the same time, various types of parameters also provide different customization methods to make them more flexible. And it integrates additional features such as search, Postman integration, Swagger support and so on.

    PURPOSE

    The purpose of the plugin is to simplify development and improve efficiency. Our vision is to become the best partner of IDEA, just like Contra's 1P, 2P, base-friend collocation, and double the efficiency.

    Supported framework

    Spring framework (Spring MVC / Spring Boot)
    +JAX-RS
    +Kotlin Spring framework
    +
    `,4),j=e("h2",{id:"recommendation",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#recommendation"},[e("span",null,"Recommendation")])],-1),E=e("p",null,"If a new version comes out, please update to the latest version as soon as possible(Plugins will always add new features or fix bugs you didn't find during the upgrade process).",-1),J=e("h2",{id:"about-author",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#about-author"},[e("span",null,"About author")])],-1),C=i('

    Platform support

    ',2);function T(B,V){const o=a("ExternalLinkIcon"),n=a("FontIcon"),r=a("ChartJS"),l=a("VPCard");return d(),p("div",null,[e("p",null,[e("a",g,[f,t(o)]),e("a",b,[_,t(o)]),e("a",v,[k,t(o)]),e("a",y,[I,t(o)]),e("a",w,[P,t(o)]),R,q,s(),A]),e("p",null,[e("a",x,[e("strong",null,[t(n,{icon:"restfulFastRequest"}),s("estful "),F,s("ast "),t(n,{icon:"restfulFastRequest"}),s("equest")]),t(o)]),s(" is an IDEA plugin similar to Postman that helps developers debug APIs efficiently. It is a powerful restful API toolkit plugin which helps you quickly generate URL and params by the existing method. "),S,s(". It has a beautiful interface to compose requests, inspect server responses, store your API request and export API request. Plugin helps you debug requests just in IntelliJ IDEA frame.")]),D,t(r,{id:"chart-18",config:"eJy9U01LAzEQvfdXhHhRKLL91HpUED8uRREPxUPWnV2D6aYms5Ui/e9Okq6bxWILQg8TmJd5My95zFeHMY6rBfALxo3IhOFdB2UCBUHumjIlUlCW8pnPCXmyIpVK4sqXe+jxUxQFBL4H7sRSNNm9RiXLJp8asLYywBAsNvBtiVAYgVKXlnvwJdx5SRYwlhHkNRLdI66FRfYAH1XctnnRbDLqskkS4oxiSDFONkN8ZS6V64SmgghNxet7YXRVZldaaeP/q0jFMdH7Izp6o2GXJaf9k3hoqk0GJibE9a3ShZYlXm4dsoPTnnGU5/mvmhu9BLOl+R/FO5RvOOuavM2KqbY4F43nkQvn1KcO19O50Uv+YYP7/d64TxIHZPAePsSEvY3YQTqUE20ZtRVhW+j0pnC9CEv0s8WgYA6lX6DaLU4r6VY/ci981bPM8I0uBq3m7lx31p1vadoMng==",title:"API%20tool%20comparison",type:"json"}),j,E,J,t(l,u(h({title:"Kings",desc:"Make it easier...faster...stronger...
    ",logo:"/img/fastRequest.svg",link:"https://github.com/kings1990",background:"rgb(39 117 182 / 38%)"})),null,16),C])}const L=c(m,[["render",T],["__file","introduce.html.vue"]]),U=JSON.parse('{"path":"/en/guide/introduce.html","title":"Introduction","lang":"en-US","frontmatter":{"title":"Introduction","icon":"restfulFastRequest","description":"Slack twitter Jetbrains Plugins Version Downloads JetBrains Plugins is an IDEA plugin similar to Postman that helps developers debug APIs efficiently. It is a powerful restful A...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/introduce.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/introduce.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Introduction"}],["meta",{"property":"og:description","content":"Slack twitter Jetbrains Plugins Version Downloads JetBrains Plugins is an IDEA plugin similar to Postman that helps developers debug APIs efficiently. It is a powerful restful A..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://img.shields.io/static/v1?label=Slack&message=Restful%20Fast%20Request&logo=slack&color=38B580"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Introduction"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Introduction\\",\\"image\\":[\\"https://img.shields.io/static/v1?label=Slack&message=Restful%20Fast%20Request&logo=slack&color=38B580\\",\\"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34\\",\\"https://badgen.net/badge/Github/fast-request/21D789?icon=github\\",\\"https://img.shields.io/static/v1?label=Gitee&message=fast-request&color=FF318C&logo=gitee\\",\\"https://img.shields.io/jetbrains/plugin/v/16988?logo=IntelliJ%20IDEA\\",\\"https://img.shields.io/jetbrains/plugin/d/16988?color=FE2857\\",\\"https://img.shields.io/jetbrains/plugin/r/rating/16988\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Supported framework","slug":"supported-framework","link":"#supported-framework","children":[]},{"level":2,"title":"Recommendation","slug":"recommendation","link":"#recommendation","children":[]},{"level":2,"title":"About author","slug":"about-author","link":"#about-author","children":[]},{"level":2,"title":"Platform support","slug":"platform-support","link":"#platform-support","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.65,"words":494},"filePathRelative":"en/guide/introduce.md","localizedDate":"May 31, 2024","autoDesc":true}');export{L as comp,U as data}; diff --git a/assets/java.html-SnCg0bTN.js b/assets/java.html-SnCg0bTN.js new file mode 100644 index 000000000..3136caab3 --- /dev/null +++ b/assets/java.html-SnCg0bTN.js @@ -0,0 +1 @@ +import{_ as n,r,o as i,c,a as e,d as a,b as o}from"./app-8OZtYazS.js";const l={},s=e("h2",{id:"优秀博客社区",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#优秀博客社区"},[e("span",null,"优秀博客社区")])],-1),d=e("p",null,"在互联网上,有许多非常优秀的博客、论坛和网站,它们提供了丰富的信息资源和知识分享平台,可以帮助我们更好地了解和学习各种知识。",-1),p=e("p",null,"大家可以根据自己的需求,进一步发掘和了解这些优秀的资源和平台,学到更多的技能。",-1),m={href:"https://didispace.com",target:"_blank",rel:"noopener noreferrer"},u={href:"https://javaguide.cn",target:"_blank",rel:"noopener noreferrer"},h={href:"https://bugstack.cn/",target:"_blank",rel:"noopener noreferrer"};function _(g,v){const t=r("ExternalLinkIcon");return i(),c("div",null,[s,d,p,e("ul",null,[e("li",null,[e("a",m,[a("程序员DD"),o(t)])]),e("li",null,[e("a",u,[a("JavaGuide"),o(t)])]),e("li",null,[e("a",h,[a("bugstack 虫洞栈"),o(t)])])])])}const k=n(l,[["render",_],["__file","java.html.vue"]]),y=JSON.parse('{"path":"/guide/java.html","title":"Java资源","lang":"zh-CN","frontmatter":{"title":"Java资源","icon":"java","description":"优秀博客社区 在互联网上,有许多非常优秀的博客、论坛和网站,它们提供了丰富的信息资源和知识分享平台,可以帮助我们更好地了解和学习各种知识。 大家可以根据自己的需求,进一步发掘和了解这些优秀的资源和平台,学到更多的技能。 程序员DD JavaGuide bugstack 虫洞栈 ","head":[["meta",{"property":"og:url","content":"https://api-buddy.com/guide/java.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Java资源"}],["meta",{"property":"og:description","content":"优秀博客社区 在互联网上,有许多非常优秀的博客、论坛和网站,它们提供了丰富的信息资源和知识分享平台,可以帮助我们更好地了解和学习各种知识。 大家可以根据自己的需求,进一步发掘和了解这些优秀的资源和平台,学到更多的技能。 程序员DD JavaGuide bugstack 虫洞栈 "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Java资源\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"优秀博客社区","slug":"优秀博客社区","link":"#优秀博客社区","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.4,"words":120},"filePathRelative":"guide/java.md","localizedDate":"2024年5月31日","autoDesc":true}');export{k as comp,y as data}; diff --git a/assets/jaxrs-QTJkfshC.js b/assets/jaxrs-QTJkfshC.js new file mode 100644 index 000000000..0ce08205f --- /dev/null +++ b/assets/jaxrs-QTJkfshC.js @@ -0,0 +1 @@ +const s="/img/2024.1.7/header.png",t="/img/2024.1.7/defaultMultipartFile.png",o="/img/2024.1.7/searchEveryWhere.png",i="/img/2024.1.6/jsonPath.png",n="/img/2024.1.5/typeDropdown.png",p="/img/2024.1.5/originUrl.png",a="/img/2024.1.4/header.png",m="/img/2024.1.1/manualUpdateCheck.png",g="/img/2023.2.3/projectName.png",_="/img/2023.2.2/json5.png",r="/img/2023.2.1/urlInputWithMethod.png",e="/img/2023.2.1/openDoc.png",c="/img/2023.2.1/showApis.png",d="/img/2023.2.1/pluginVersion.png",h="/img/2023.1.9/quickAddEnvironmentVariable.png",l="/img/2023.1.9/showApis.gif",u="/img/2023.1.9/responseSize.png",v="/img/2023.1.7.1/searchEveryWhere.png",k="/img/http/new/get_dark.svg",w="/img/http/get_dark.svg",f="/img/http/new/post_dark.svg",S="/img/http/post_dark.svg",D="/img/http/new/delete_dark.svg",b="/img/http/delete_dark.svg",j="/img/http/new/put_dark.svg",y="/img/http/put_dark.svg",A="/img/http/new/patch_dark.svg",C="/img/http/patch_dark.svg",W="/img/2023.1.7/fieldDup.png",E="/img/2023.1.5/editorAction.png",H="/img/2023.1.3/ai.gif",M="/img/2023.1.3/jumpToJsonData.png",U="/img/2023.1.3/listJump2JsonData.png",V="/img/2023.1.3/apiSyncSupportBranch.png",q="/img/2023.1.3/htoolbar.png",x="/img/2023.1.3/vtoolbar.png",F="/img/2023.1.3/toolbarSetting.png",G="/img/2023.1.3/apis.png",J="/img/2023.1.2/imageRender.png",P="/img/2022.2.7/returnValueDoc.png",R="/img/2022.2.7/commentPreview.png",B="/img/2022.2.6/clearColumnValue.png",I="/img/2022.2.6/sortColumn.png",N="/img/2022.2.5/parseDocDesc.png",T="/img/2022.2.5/twitterAction.png",z="/img/2022.2.4/dateTimeFormat.png",L="/img/2022.2.4/baseController.png",K="/img/2022.2.4/autoUpdate.png",O="/img/2022.2.1/responseHeader.png",Q="/img/2022.2.1/urlSuffix.png",X="/img/timeoutSetting.png",Y="/img/searchEveryWhereDescription.png",Z="/img/toolwindowShortcut.png",$="/img/autoStoreCookie.png",ss="/img/projectGlobalParam.png",ts="/img/apisList.png",os="/img/add2projectConfig.png",is="/img/cookie2projectConfig.png",ns="/img/kotlinSupport.png",ps="/img/searchEveryWhereStrategy.png",as="/img/toggleUseSoftWrap.png",ms="/img/add2GlobalHeader.png",gs="/img/addCookie2Header.png",_s="/img/shareDocButton.png",rs="/img/searchEveryWhereHighlight.png",es="/img/runInApiManagement.png",cs="/img/mergeRunAndDownload.png",ds="/img/help.png",hs="/img/searchEveryWhereModule.png",ls="/img/save2ControllerGroup.png",us="/img/globalRequestHeader.png",vs="/img/whatsnewNotifcation.png",ks="/img/quickAddHeaders.gif",ws="/img/format.gif",fs="/img/shortcutSendAndDownload.png",Ss="/img/methodFilter.png",Ds="/img/toolbarSend.png",bs="/img/jaxrs.gif";export{_s as $,G as A,J as B,P as C,R as D,B as E,I as F,N as G,T as H,z as I,L as J,K,O as L,Q as M,X as N,Y as O,Z as P,$ as Q,ss as R,ts as S,os as T,is as U,ns as V,ps as W,as as X,ms as Y,gs as Z,s as _,t as a,rs as a0,es as a1,cs as a2,ds as a3,hs as a4,ls as a5,us as a6,vs as a7,ks as a8,ws as a9,fs as aa,Ss as ab,Ds as ac,bs as ad,k as ae,w as af,f as ag,S as ah,D as ai,b as aj,j as ak,y as al,A as am,C as an,o as b,i as c,n as d,p as e,a as f,m as g,g as h,_ as i,r as j,e as k,c as l,d as m,h as n,l as o,u as p,v as q,W as r,E as s,H as t,M as u,U as v,V as w,q as x,x as y,F as z}; diff --git a/assets/json-Eu6ts4pk.js b/assets/json-Eu6ts4pk.js new file mode 100644 index 000000000..a68836262 --- /dev/null +++ b/assets/json-Eu6ts4pk.js @@ -0,0 +1 @@ +const o="/img/json.png";export{o as _}; diff --git a/assets/jsonGrammarCheck.html-Lg2xnVy8.js b/assets/jsonGrammarCheck.html-Lg2xnVy8.js new file mode 100644 index 000000000..788127345 --- /dev/null +++ b/assets/jsonGrammarCheck.html-Lg2xnVy8.js @@ -0,0 +1 @@ +import{_ as a}from"./json-Eu6ts4pk.js";import{_ as n,r,o as s,c as m,a as e,d as t,b as c}from"./app-8OZtYazS.js";const i={},p=e("h1",{id:"json-语法检查",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#json-语法检查"},[e("span",null,"Json 语法检查")])],-1),d=e("p",null,[t("右上角提供了 json 语法检查如果输入有误会提示对应的错误"),e("br"),t(" 当然也支持格式化等操作")],-1),l=e("p",null,[e("img",{src:a,alt:"json",loading:"lazy"})],-1);function h(g,u){const o=r("Badge");return s(),m("div",null,[p,e("p",null,[t("版本要求: "),c(o,{text:"2.0.6"})]),d,l])}const f=n(i,[["render",h],["__file","jsonGrammarCheck.html.vue"]]),j=JSON.parse('{"path":"/guide/features/jsonGrammarCheck.html","title":"Json 语法检查","lang":"zh-CN","frontmatter":{"description":"Json 语法检查 版本要求: 右上角提供了 json 语法检查如果输入有误会提示对应的错误 当然也支持格式化等操作 json ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/jsonGrammarCheck.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/jsonGrammarCheck.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Json 语法检查"}],["meta",{"property":"og:description","content":"Json 语法检查 版本要求: 右上角提供了 json 语法检查如果输入有误会提示对应的错误 当然也支持格式化等操作 json "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/json.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Json 语法检查"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Json 语法检查\\",\\"image\\":[\\"https://api-buddy.com/img/json.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.17,"words":51},"filePathRelative":"guide/features/jsonGrammarCheck.md","localizedDate":"2024年5月31日","autoDesc":true}');export{f as comp,j as data}; diff --git a/assets/jsonGrammarCheck.html-RiqZayH6.js b/assets/jsonGrammarCheck.html-RiqZayH6.js new file mode 100644 index 000000000..db53fb091 --- /dev/null +++ b/assets/jsonGrammarCheck.html-RiqZayH6.js @@ -0,0 +1 @@ +import{_ as r}from"./json-Eu6ts4pk.js";import{_ as a,r as o,o as n,c,a as e,d as i,b as m}from"./app-8OZtYazS.js";const s={},p=e("h1",{id:"json-grammar-check",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#json-grammar-check"},[e("span",null,"Json grammar check")])],-1),h=e("p",null,"The upper right corner of the JSON parameter input box provides a JSON syntax check. If the JSON is incorrect, the corresponding error will be prompted. Of course, it also supports formatting and other operations.",-1),d=e("p",null,[e("img",{src:r,alt:"json",loading:"lazy"})],-1);function l(g,u){const t=o("Badge");return n(),c("div",null,[p,e("p",null,[i("Version required: "),m(t,{text:"2.0.6"})]),h,d])}const y=a(s,[["render",l],["__file","jsonGrammarCheck.html.vue"]]),k=JSON.parse('{"path":"/en/guide/features/jsonGrammarCheck.html","title":"Json grammar check","lang":"en-US","frontmatter":{"description":"Json grammar check Version required: The upper right corner of the JSON parameter input box provides a JSON syntax check. If the JSON is incorrect, the corresponding error will ...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/jsonGrammarCheck.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/jsonGrammarCheck.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Json grammar check"}],["meta",{"property":"og:description","content":"Json grammar check Version required: The upper right corner of the JSON parameter input box provides a JSON syntax check. If the JSON is incorrect, the corresponding error will ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/json.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Json grammar check"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Json grammar check\\",\\"image\\":[\\"https://api-buddy.com/img/json.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.15,"words":46},"filePathRelative":"en/guide/features/jsonGrammarCheck.md","localizedDate":"May 31, 2024","autoDesc":true}');export{y as comp,k as data}; diff --git a/assets/json_en-sK6ZBB_5.js b/assets/json_en-sK6ZBB_5.js new file mode 100644 index 000000000..3533bfc08 --- /dev/null +++ b/assets/json_en-sK6ZBB_5.js @@ -0,0 +1 @@ +const o="/img/apiGroup_en.gif",s="/img/json_en.png";export{s as _,o as a}; diff --git a/assets/link.html-2fy8-6lL.js b/assets/link.html-2fy8-6lL.js new file mode 100644 index 000000000..5d9a77a43 --- /dev/null +++ b/assets/link.html-2fy8-6lL.js @@ -0,0 +1,2 @@ +import{_ as m,r as c,o,c as s,b as h,F as a,f as r,a as e,d as g,g as l,m as p}from"./app-8OZtYazS.js";const d={},u=e("h2",{id:"网站主题及-logo",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#网站主题及-logo"},[e("span",null,"网站主题及 logo")])],-1),w=e("p",null,[g("Restful Fast Request 首页的 logo 及背景由 "),e("strong",null,"森阳"),g(" 提供,感谢她的创作,如果要插画和 logo 商业化合作小伙伴可以找她")],-1),v=e("div",{class:"language-text","data-ext":"text","data-title":"text"},[e("pre",{class:"language-text"},[e("code",null,`邮件:sssenyang@qq.com | 微信:ArtSenyang +`)])],-1),y=e("h2",{id:"dromara-组织成员项目",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#dromara-组织成员项目"},[e("span",null,"Dromara 组织成员项目")])],-1),k=e("h2",{id:"低代码",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#低代码"},[e("span",null,"低代码")])],-1),f=e("h2",{id:"工具",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#工具"},[e("span",null,"工具")])],-1);function _(i,x){const n=c("SiteInfo");return o(),s("div",null,[u,h(n,{name:"vuepress-theme-hope",desc:"一个具有强大功能的 vuepress 主题",url:"https://theme-hope.vuejs.press/zh",logo:"https://theme-hope.vuejs.press/logo.svg",preview:"/img/link/preview/hope.png"}),w,v,y,(o(!0),s(a,null,r(i.$frontmatter.docsDromara,t=>(o(),l(n,p({key:t.link},t),null,16))),128)),k,(o(!0),s(a,null,r(i.$frontmatter.lowCode,t=>(o(),l(n,p({key:t.link},t),null,16))),128)),f,(o(!0),s(a,null,r(i.$frontmatter.tool,t=>(o(),l(n,p({key:t.link},t),null,16))),128))])}const j=m(d,[["render",_],["__file","link.html.vue"]]),T=JSON.parse('{"path":"/guide/link.html","title":"友情链接","lang":"zh-CN","frontmatter":{"title":"友情链接","icon":"youqinglianjie","docsDromara":[{"name":"Hutool","desc":"A set of tools that keep Java sweet.","logo":"https://plus.hutool.cn/images/hutool.svg","url":"http://hutool.cn/","preview":"/img/link/preview/hutool.png"},{"name":"Sa-Token","desc":"一个轻量级 java 权限认证框架,让鉴权变得简单、优雅!","logo":"https://sa-token.cc/logo.png","url":"https://sa-token.cc/","preview":"/img/link/preview/sa-token.png"},{"name":"LiteFlow","desc":"轻量,快速,稳定可编排的组件式规则引擎","logo":"https://liteflow.yomahub.com/img/logo.png","url":"https://liteflow.yomahub.com","preview":"/img/link/preview/liteflow.png"},{"name":"HertzBeat","desc":"易用友好的开源实时监控系统","logo":"https://hertzbeat.com/img/tancloud-logo.svg","url":"https://hertzbeat.com/","preview":"/img/link/preview/hertzbeat.png"},{"name":"Forest","desc":"声明式HTTP客户端框架,减轻您的开发负担","logo":"https://forest.dtflyx.com/img/logo.png","url":"https://forest.dtflyx.com/","preview":"/img/link/preview/forest.png"},{"name":"Easy-Es","desc":"傻瓜级ElasticSearch搜索引擎ORM框架","logo":"https://www.easy-es.cn/img/logo.png","url":"https://www.easy-es.cn/","preview":"/img/link/preview/easy-es.png"},{"name":"MaxKey","desc":"业界领先的身份管理和认证产品","logo":"https://maxkey.top/static/images/logo_maxkey.png","url":"https://maxkey.top","preview":"/img/link/preview/maxkey.png"},{"name":"Dynamictp","desc":"基于配置中心的轻量级动态可监控线程池","logo":"https://dynamictp.cn/logo.png","url":"https://dynamictp.cn/","preview":"/img/link/preview/dynamictp.png"},{"name":"Gobrs-Async","desc":"高性能多线程并发编程与动态编排框架","logo":"https://async.sizegang.cn/img/logo.png","url":"https://async.sizegang.cn/","preview":"/img/link/preview/gobrsAsync.png"},{"name":"Jpom","desc":"简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件","logo":"https://jpom.top/images/jpom_logo.png","url":"https://jpom.top/","preview":"/img/link/preview/jpom.png"},{"name":"Northstar","desc":"致力于降低量化交易门槛的程序化交易系统","logo":"https://www.quantit.tech/assets/logo.svg","url":"https://www.quantit.tech/","preview":"/img/link/preview/northstar.png"},{"name":"Mendmix","desc":"开源分布式云原生架构一站式解决方案","logo":"https://www.jeesuite.com/assets/logo.png","url":"https://www.jeesuite.com/","preview":"/img/link/preview/mendmix.png"},{"name":"Sureness","desc":"Focus on Protection of API","logo":"https://cdn.jsdelivr.net/gh/usthe/sureness@gh-pages/img/icon128.svg","url":"https://su.usthe.com/","preview":"/img/link/preview/sureness.png"},{"name":"Dante Cloud","desc":"简洁优雅 · 稳定高效 | 宁静致远 · 精益求精","logo":"https://www.herodotus.cn/logo.png","url":"https://www.herodotus.cn/","preview":"/img/link/preview/danteCloud.png"},{"name":"x-easypdf","desc":"一个用搭积木的方式构建pdf的框架","logo":"https://www.x-easypdf.cn/logo.png","url":"https://www.x-easypdf.cn/","preview":"/img/link/preview/xeasypdf.png"},{"name":"image-combiner","desc":"专门用于图片合成的工具","url":"http://dromara.gitee.io/image-combiner","preview":"/img/link/preview/imageCombiner.png"},{"name":"TLog","desc":"轻量级的分布式日志标记追踪神器","logo":"https://tlog.yomahub.com/img/logo.png","url":"https://tlog.yomahub.com/","preview":"/img/link/preview/tlog.png"},{"name":"Cubic","desc":"一站式问题分析解决平台","logo":"https://pic.jiagoujishu.com/cubic-icon.svg","url":"https://cubic.jiagoujishu.com/","preview":"/img/link/preview/cubic.png"},{"name":"Easy-Trans","desc":"一个注解搞定数据翻译,减少30%SQL代码量","url":"http://easy-trans.fhs-opensource.top/","preview":"/img/link/preview/easy-trans.png"}],"lowCode":[{"name":"Snowy Admin","desc":"国内首个国密前后分离快速开发平台","url":"https://www.xiaonuo.vip/","preview":"/img/link/preview/xiaonuo.png"}],"tool":[{"name":"Stream-Query","desc":"封装 热门orm常用操作 封装 使用stream进行数据返回处理","url":"https://vampireachao.gitee.io/stream-query-docs/#/","preview":"/img/link/preview/stream-query.png"}],"description":"网站主题及 logo ","head":[["meta",{"property":"og:url","content":"https://api-buddy.com/guide/link.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"友情链接"}],["meta",{"property":"og:description","content":"网站主题及 logo "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"友情链接\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"网站主题及 logo","slug":"网站主题及-logo","link":"#网站主题及-logo","children":[]},{"level":2,"title":"Dromara 组织成员项目","slug":"dromara-组织成员项目","link":"#dromara-组织成员项目","children":[]},{"level":2,"title":"低代码","slug":"低代码","link":"#低代码","children":[]},{"level":2,"title":"工具","slug":"工具","link":"#工具","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":2.38,"words":713},"filePathRelative":"guide/link.md","localizedDate":"2024年5月31日","autoDesc":true}');export{j as comp,T as data}; diff --git a/assets/makeIconMove.html--ClMbWen.js b/assets/makeIconMove.html--ClMbWen.js new file mode 100644 index 000000000..4ffe4d071 --- /dev/null +++ b/assets/makeIconMove.html--ClMbWen.js @@ -0,0 +1 @@ +import{_ as o,a as t}from"./newLogoConfig-lemSO0qb.js";import{_ as a,o as n,c as i,a as e}from"./app-8OZtYazS.js";const m={},c=e("h1",{id:"make-icon-move",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#make-icon-move"},[e("span",null,"Make icon move")])],-1),r=e("p",null,"Choose and switch the colour you want in the drop-down box and make it move.",-1),s=e("p",null,[e("img",{src:o,alt:"newLogo",loading:"lazy"})],-1),d=e("p",null,[e("img",{src:t,alt:"newLogoConfig",loading:"lazy"})],-1),p=[c,r,s,d];function l(g,h){return n(),i("div",null,p)}const y=a(m,[["render",l],["__file","makeIconMove.html.vue"]]),f=JSON.parse('{"path":"/en/guide/features/makeIconMove.html","title":"Make icon move","lang":"en-US","frontmatter":{"description":"Make icon move Choose and switch the colour you want in the drop-down box and make it move. newLogo newLogoConfig ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/makeIconMove.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/makeIconMove.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Make icon move"}],["meta",{"property":"og:description","content":"Make icon move Choose and switch the colour you want in the drop-down box and make it move. newLogo newLogoConfig "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.4/newLogo.gif"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Make icon move"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Make icon move\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.4/newLogo.gif\\",\\"https://api-buddy.com/img/2022.2.4/newLogoConfig.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.08,"words":23},"filePathRelative":"en/guide/features/makeIconMove.md","localizedDate":"May 31, 2024","autoDesc":true}');export{y as comp,f as data}; diff --git a/assets/makeIconMove.html-il0Uypus.js b/assets/makeIconMove.html-il0Uypus.js new file mode 100644 index 000000000..d75eb6cc8 --- /dev/null +++ b/assets/makeIconMove.html-il0Uypus.js @@ -0,0 +1 @@ +import{_ as o,a}from"./newLogoConfig-lemSO0qb.js";import{_ as n,o as i,c as r,a as e,d as t}from"./app-8OZtYazS.js";const c={},m=e("h1",{id:"让图标动起来",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#让图标动起来"},[e("span",null,"让图标动起来")])],-1),s=e("p",null,[t("开发者可以在下拉框里面自由选择并切换你想要的颜色,并且可以让它"),e("mark",null,"动起来"),t("(性能佳)")],-1),p=e("p",null,[e("img",{src:o,alt:"newLogo",loading:"lazy"})],-1),l=e("p",null,[e("img",{src:a,alt:"newLogoConfig",loading:"lazy"})],-1),d=[m,s,p,l];function g(u,h){return i(),r("div",null,d)}const y=n(c,[["render",g],["__file","makeIconMove.html.vue"]]),w=JSON.parse('{"path":"/guide/features/makeIconMove.html","title":"让图标动起来","lang":"zh-CN","frontmatter":{"description":"让图标动起来 开发者可以在下拉框里面自由选择并切换你想要的颜色,并且可以让它动起来(性能佳) newLogo newLogoConfig ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/makeIconMove.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/makeIconMove.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"让图标动起来"}],["meta",{"property":"og:description","content":"让图标动起来 开发者可以在下拉框里面自由选择并切换你想要的颜色,并且可以让它动起来(性能佳) newLogo newLogoConfig "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.4/newLogo.gif"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"让图标动起来"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"让图标动起来\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.4/newLogo.gif\\",\\"https://api-buddy.com/img/2022.2.4/newLogoConfig.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.15,"words":46},"filePathRelative":"guide/features/makeIconMove.md","localizedDate":"2024年5月31日","autoDesc":true}');export{y as comp,w as data}; diff --git a/assets/markdownDocTemplateConfig.html-j_aHC_Cx.js b/assets/markdownDocTemplateConfig.html-j_aHC_Cx.js new file mode 100644 index 000000000..b074864f7 --- /dev/null +++ b/assets/markdownDocTemplateConfig.html-j_aHC_Cx.js @@ -0,0 +1,92 @@ +import{_ as p,r as t,o,c as d,a as n,d as a,b as e,w as c,e as r}from"./app-8OZtYazS.js";const u={},v=n("h1",{id:"markdown-doc-template-config",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#markdown-doc-template-config"},[n("span",null,"Markdown doc template config")])],-1),k=n("h2",{id:"tech-stack",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#tech-stack"},[n("span",null,"Tech stack")])],-1),m={href:"https://velocity.apache.org/",target:"_blank",rel:"noopener noreferrer"},b=n("li",null,"Markdown",-1),y=r(`

    Build-in variable

    Content variable

    KeyParameter typeDescription
    urlStringFinal url
    originUrlStringOrigin url, contains the name of the original path variable
    namingPolicyStringAPI namingPolicy, fixed value[1.byMethodName:by java method name 2.byDoc:by JavaDoc or Swagger method description]
    methodNameStringJava method name
    methodDescriptionStringMethod description, comes from javadoc or Swagger method description
    methodTypeStringMethod type, for example Get,Post,Put,Delete,Patch
    headerListList<Header>Header params
    pathKeyValueListList<KeyValue>Url Path params
    urlParamsKeyValueListList<KeyValue>Url Query params
    multipartKeyValueListList<KeyValue>Multipart params
    urlEncodedKeyValueListList<KeyValue>Form Url-Encoded params
    jsonParamStringJson params
    jsonParamDocumentStringJson params document
    responseExampleStringResponse
    returnDocumentStringResponse params document

    Syntax variables

    KeyDescription
    H1Markdown #
    H2Markdown ##
    H3Markdown ###
    H4Markdown ####
    H5Markdown #####
    H6Markdown ######

    Parameter type

    KeyParameter typeDescription
    enabledBooleanEnable flag
    typeStringKey of Header
    valueStringValue of Header

    KeyValue

    KeyParameter typeDescription
    enabledBooleanEnable flag
    keyStringParameter key
    typeStringParameter type, fixed value [Object Array String Number Boolean]
    valueObjectParameter value
    commentStringParameter description

    Default template

        #if (${namingPolicy}=='byDoc')
    +    $H1 ${methodDescription}
    +    #else
    +    $H1 $!{methodName}
    +
    +    $H3 Method description
    +
    +    \`\`\`
    +    $!{methodDescription}
    +    \`\`\`
    +    #end
    +
    +    > URL: $!{url}
    +    >
    +    > Origin Url: $!{originUrl}
    +    >
    +    > Type: $!{methodType}
    +
    +
    +    $H3 Request headers
    +
    +    |Header Name| Header Value|
    +    |---------|------|
    +    #foreach( $h in ${headerList})
    +    |$h.type|$h.value|
    +    #end
    +
    +    $H3 Parameters
    +
    +    $H5 Path parameters
    +
    +    | Parameter | Type | Value | Description |
    +    |---------|------|------|------------|
    +    #foreach( $node in ${pathKeyValueList})
    +    |$node.key|$!{node.type}|$!{node.value}|$!{node.comment}|
    +    #end
    +
    +
    +    $H5 URL parameters
    +
    +    |Required| Parameter | Type | Value | Description |
    +    |---------|---------|------|------|------------|
    +    #foreach( $node in ${urlParamsKeyValueList})
    +    |$!{node.enabled}|$!{node.key}|$!{node.type}|$!{node.value}|$!{node.comment}|
    +    #end
    +
    +
    +    $H5 Body parameters
    +
    +    $H6 JSON
    +
    +    \`\`\`
    +    ${jsonParam}
    +    \`\`\`
    +
    +    $H6 JSON document
    +
    +    \`\`\`
    +    ${jsonParamDocument}
    +    \`\`\`
    +
    +
    +    $H5 Form URL-Encoded
    +    |Required| Parameter | Type | Value | Description |
    +    |---------|---------|------|------|------------|
    +    #foreach( $node in ${urlEncodedKeyValueList})
    +    |$!{node.enabled}|$!{node.key}|$!{node.type}|$!{node.value}|$!{node.comment}|
    +    #end
    +
    +
    +    $H5 Multipart
    +    |Required | Parameter | Type | Value | Description |
    +    |---------|---------|------|------|------------|
    +    #foreach( $node in ${multipartKeyValueList})
    +    |$!{node.enabled}|$!{node.key}|$!{node.type}|$!{node.value}|$!{node.comment}|
    +    #end
    +
    +
    +    $H3 Response
    +
    +    $H5 Response example
    +
    +    \`\`\`
    +    $!{responseExample}
    +    \`\`\`
    +
    +    $H5 Response document
    +    \`\`\`
    +    $!{returnDocument}
    +    \`\`\`
    +
    +
    `,12);function g(f,h){const s=t("Badge"),l=t("RouteLink"),i=t("ExternalLinkIcon");return o(),d("div",null,[v,n("p",null,[a("Version required: "),e(s,{text:"2023.2.2+"})]),n("p",null,[a("Provides a custom format for local markdown and "),e(l,{to:"/en/guide/features/apiDocSync.html"},{default:c(()=>[a("Online API")]),_:1}),a(" doc.")]),k,n("ol",null,[n("li",null,[n("a",m,[a("Velocity"),e(i)])]),b]),y])}const $=p(u,[["render",g],["__file","markdownDocTemplateConfig.html.vue"]]),w=JSON.parse('{"path":"/en/guide/features/markdownDocTemplateConfig.html","title":"Markdown doc template config","lang":"en-US","frontmatter":{"description":"Markdown doc template config Version required: Provides a custom format for local markdown and doc. Tech stack Velocity Markdown Build-in variable Content variable Syntax variab...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/markdownDocTemplateConfig.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/markdownDocTemplateConfig.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Markdown doc template config"}],["meta",{"property":"og:description","content":"Markdown doc template config Version required: Provides a custom format for local markdown and doc. Tech stack Velocity Markdown Build-in variable Content variable Syntax variab..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Markdown doc template config\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Tech stack","slug":"tech-stack","link":"#tech-stack","children":[]},{"level":2,"title":"Build-in variable","slug":"build-in-variable","link":"#build-in-variable","children":[{"level":3,"title":"Content variable","slug":"content-variable","link":"#content-variable","children":[]},{"level":3,"title":"Syntax variables","slug":"syntax-variables","link":"#syntax-variables","children":[]}]},{"level":2,"title":"Parameter type","slug":"parameter-type","link":"#parameter-type","children":[{"level":3,"title":"Header","slug":"header","link":"#header","children":[]},{"level":3,"title":"KeyValue","slug":"keyvalue","link":"#keyvalue","children":[]}]},{"level":2,"title":"Default template","slug":"default-template","link":"#default-template","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.16,"words":349},"filePathRelative":"en/guide/features/markdownDocTemplateConfig.md","localizedDate":"May 31, 2024","autoDesc":true}');export{$ as comp,w as data}; diff --git a/assets/markdownDocTemplateConfig.html-zPhrAMAq.js b/assets/markdownDocTemplateConfig.html-zPhrAMAq.js new file mode 100644 index 000000000..c12827a9c --- /dev/null +++ b/assets/markdownDocTemplateConfig.html-zPhrAMAq.js @@ -0,0 +1,92 @@ +import{_ as p,r as a,o as d,c as o,a as n,d as t,b as e,w as c,e as r}from"./app-8OZtYazS.js";const u={},v=n("h1",{id:"markdown文档模板配置",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#markdown文档模板配置"},[n("span",null,"Markdown文档模板配置")])],-1),k=n("h2",{id:"实现技术",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#实现技术"},[n("span",null,"实现技术")])],-1),m={href:"https://velocity.apache.org/",target:"_blank",rel:"noopener noreferrer"},y=n("li",null,"Markdown",-1),b=r(`

    内置变量

    内容变量

    变量参数类型说明
    urlString最终url
    originUrlString原始url,包含路径原值变量名
    namingPolicyString命名策略,固定值[1.byMethodName:根据方法名 2.byDoc:根据JavaDoc或者Swagger方法描述]
    methodNameStringJava方法名
    methodDescriptionString方法描述,来源javadoc或者Swagger方法描述
    methodTypeString方法类型,例如Get,Post,Put,Delete,Patch
    headerListList<Header>头参数
    pathKeyValueListList<KeyValue>Url路径参数
    urlParamsKeyValueListList<KeyValue>Url Query参数
    multipartKeyValueListList<KeyValue>Multipart参数
    urlEncodedKeyValueListList<KeyValue>Form Url-Encoded参数
    jsonParamStringJson参数
    jsonParamDocumentStringJson参数文档
    responseExampleString响应
    returnDocumentString响应参数文档

    语法变量

    变量说明
    H1Markdown #
    H2Markdown ##
    H3Markdown ###
    H4Markdown ####
    H5Markdown #####
    H6Markdown ######

    参数类型

    变量参数类型说明
    enabledBoolean是否启用
    typeStringHeader的key值
    valueStringHeader的value值

    KeyValue

    变量参数类型说明
    enabledBoolean是否启用
    keyString参数Key
    typeString参数类型,固定格式[Object Array String Number Boolean]
    valueObject参数Value
    commentString参数备注

    默认模板

        #if (${namingPolicy}=='byDoc')
    +    $H1 ${methodDescription}
    +    #else
    +    $H1 $!{methodName}
    +
    +    $H3 Method description
    +
    +    \`\`\`
    +    $!{methodDescription}
    +    \`\`\`
    +    #end
    +
    +    > URL: $!{url}
    +    >
    +    > Origin Url: $!{originUrl}
    +    >
    +    > Type: $!{methodType}
    +
    +
    +    $H3 Request headers
    +
    +    |Header Name| Header Value|
    +    |---------|------|
    +    #foreach( $h in ${headerList})
    +    |$h.type|$h.value|
    +    #end
    +
    +    $H3 Parameters
    +
    +    $H5 Path parameters
    +
    +    | Parameter | Type | Value | Description |
    +    |---------|------|------|------------|
    +    #foreach( $node in ${pathKeyValueList})
    +    |$node.key|$!{node.type}|$!{node.value}|$!{node.comment}|
    +    #end
    +
    +
    +    $H5 URL parameters
    +
    +    |Required| Parameter | Type | Value | Description |
    +    |---------|---------|------|------|------------|
    +    #foreach( $node in ${urlParamsKeyValueList})
    +    |$!{node.enabled}|$!{node.key}|$!{node.type}|$!{node.value}|$!{node.comment}|
    +    #end
    +
    +
    +    $H5 Body parameters
    +
    +    $H6 JSON
    +
    +    \`\`\`
    +    ${jsonParam}
    +    \`\`\`
    +
    +    $H6 JSON document
    +
    +    \`\`\`
    +    ${jsonParamDocument}
    +    \`\`\`
    +
    +
    +    $H5 Form URL-Encoded
    +    |Required| Parameter | Type | Value | Description |
    +    |---------|---------|------|------|------------|
    +    #foreach( $node in ${urlEncodedKeyValueList})
    +    |$!{node.enabled}|$!{node.key}|$!{node.type}|$!{node.value}|$!{node.comment}|
    +    #end
    +
    +
    +    $H5 Multipart
    +    |Required | Parameter | Type | Value | Description |
    +    |---------|---------|------|------|------------|
    +    #foreach( $node in ${multipartKeyValueList})
    +    |$!{node.enabled}|$!{node.key}|$!{node.type}|$!{node.value}|$!{node.comment}|
    +    #end
    +
    +
    +    $H3 Response
    +
    +    $H5 Response example
    +
    +    \`\`\`
    +    $!{responseExample}
    +    \`\`\`
    +
    +    $H5 Response document
    +    \`\`\`
    +    $!{returnDocument}
    +    \`\`\`
    +
    +
    `,12);function g(h,f){const s=a("Badge"),l=a("RouteLink"),i=a("ExternalLinkIcon");return d(),o("div",null,[v,n("p",null,[t("版本要求: "),e(s,{text:"2023.2.2+"})]),n("p",null,[t("提供了导出文档和"),e(l,{to:"/guide/features/apiDocSync.html"},{default:c(()=>[t("Api在线文档")]),_:1}),t("的自定义格式实现.")]),k,n("ol",null,[n("li",null,[n("a",m,[t("Velocity"),e(i)])]),y]),b])}const $=p(u,[["render",g],["__file","markdownDocTemplateConfig.html.vue"]]),w=JSON.parse('{"path":"/guide/features/markdownDocTemplateConfig.html","title":"Markdown文档模板配置","lang":"zh-CN","frontmatter":{"description":"Markdown文档模板配置 版本要求: 提供了导出文档和的自定义格式实现. 实现技术 Velocity Markdown 内置变量 内容变量 语法变量 参数类型 Header KeyValue 默认模板 ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/markdownDocTemplateConfig.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/markdownDocTemplateConfig.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Markdown文档模板配置"}],["meta",{"property":"og:description","content":"Markdown文档模板配置 版本要求: 提供了导出文档和的自定义格式实现. 实现技术 Velocity Markdown 内置变量 内容变量 语法变量 参数类型 Header KeyValue 默认模板 "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Markdown文档模板配置\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"实现技术","slug":"实现技术","link":"#实现技术","children":[]},{"level":2,"title":"内置变量","slug":"内置变量","link":"#内置变量","children":[{"level":3,"title":"内容变量","slug":"内容变量","link":"#内容变量","children":[]},{"level":3,"title":"语法变量","slug":"语法变量","link":"#语法变量","children":[]}]},{"level":2,"title":"参数类型","slug":"参数类型","link":"#参数类型","children":[{"level":3,"title":"Header","slug":"header","link":"#header","children":[]},{"level":3,"title":"KeyValue","slug":"keyvalue","link":"#keyvalue","children":[]}]},{"level":2,"title":"默认模板","slug":"默认模板","link":"#默认模板","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.45,"words":436},"filePathRelative":"guide/features/markdownDocTemplateConfig.md","localizedDate":"2024年5月31日","autoDesc":true}');export{$ as comp,w as data}; diff --git a/assets/moduleSearch-vDt27hRI.js b/assets/moduleSearch-vDt27hRI.js new file mode 100644 index 000000000..7699654b6 --- /dev/null +++ b/assets/moduleSearch-vDt27hRI.js @@ -0,0 +1 @@ +const o="/img/moduleSearch.gif";export{o as _}; diff --git a/assets/navigate2CurrentMethod-91w29pZx.js b/assets/navigate2CurrentMethod-91w29pZx.js new file mode 100644 index 000000000..5ecd6b2fe --- /dev/null +++ b/assets/navigate2CurrentMethod-91w29pZx.js @@ -0,0 +1 @@ +const t="/img/navigate2CurrentMethod.png";export{t as _}; diff --git a/assets/navigateCurrentMethod.html-bXY0Elzw.js b/assets/navigateCurrentMethod.html-bXY0Elzw.js new file mode 100644 index 000000000..a9b5c0d3d --- /dev/null +++ b/assets/navigateCurrentMethod.html-bXY0Elzw.js @@ -0,0 +1 @@ +import{_ as i}from"./navigate2CurrentMethod-91w29pZx.js";import{_ as c,r as a,o as d,c as l,a as e,d as t,b as o}from"./app-8OZtYazS.js";const m={},p=e("h1",{id:"当前方法定位",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#当前方法定位"},[e("span",null,"当前方法定位")])],-1),s=e("code",null,"Controller",-1),u=e("p",null,[e("img",{src:i,alt:"navigate2CurrentMethod",loading:"lazy"})],-1);function g(h,_){const n=a("Badge"),r=a("ColorIcon");return d(),l("div",null,[p,e("p",null,[t("版本要求: "),o(n,{text:"2022.1.7"})]),e("p",null,[t("当你生成好方法的 url 以后又切换到代码中的别的地方然后又想开始调试该 API 方法,可以通过此功能 "),o(r,{icon:"localScope"}),t(" 快速定位到"),s,t("代码")]),u])}const C=c(m,[["render",g],["__file","navigateCurrentMethod.html.vue"]]),v=JSON.parse('{"path":"/guide/features/navigateCurrentMethod.html","title":"当前方法定位","lang":"zh-CN","frontmatter":{"description":"当前方法定位 版本要求: 当你生成好方法的 url 以后又切换到代码中的别的地方然后又想开始调试该 API 方法,可以通过此功能 navigate2CurrentMethod ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/navigateCurrentMethod.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/navigateCurrentMethod.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"当前方法定位"}],["meta",{"property":"og:description","content":"当前方法定位 版本要求: 当你生成好方法的 url 以后又切换到代码中的别的地方然后又想开始调试该 API 方法,可以通过此功能 navigate2CurrentMethod "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/navigate2CurrentMethod.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"当前方法定位"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"当前方法定位\\",\\"image\\":[\\"https://api-buddy.com/img/navigate2CurrentMethod.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.23,"words":70},"filePathRelative":"guide/features/navigateCurrentMethod.md","localizedDate":"2024年5月31日","autoDesc":true}');export{C as comp,v as data}; diff --git a/assets/navigateCurrentMethod.html-g8mf6Xwm.js b/assets/navigateCurrentMethod.html-g8mf6Xwm.js new file mode 100644 index 000000000..0319576d8 --- /dev/null +++ b/assets/navigateCurrentMethod.html-g8mf6Xwm.js @@ -0,0 +1 @@ +import{_ as i}from"./navigate2CurrentMethod-91w29pZx.js";import{_ as c,r as o,o as d,c as l,a as e,d as t,b as a}from"./app-8OZtYazS.js";const m={},s=e("h1",{id:"navigate-to-current-method",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#navigate-to-current-method"},[e("span",null,"Navigate to current method")])],-1),u=e("code",null,"Service",-1),h=e("code",null,"Controller",-1),p=e("code",null,"Controller",-1),g=e("p",null,[e("img",{src:i,alt:"navigate2CurrentMethod",loading:"lazy"})],-1);function y(_,f){const r=o("Badge"),n=o("ColorIcon");return d(),l("div",null,[s,e("p",null,[t("Version required: "),a(r,{text:"2022.1.7"})]),e("p",null,[t("After you generate the URL and parameters of the method, you will most likely debug your "),u,t(" code, finally you want to see the code of "),h,t(" again because you want check the input parameters. You can use this function "),a(n,{icon:"localScope"}),t(" to locate the "),p,t(" code quickly.")]),g])}const N=c(m,[["render",y],["__file","navigateCurrentMethod.html.vue"]]),b=JSON.parse('{"path":"/en/guide/features/navigateCurrentMethod.html","title":"Navigate to current method","lang":"en-US","frontmatter":{"description":"Navigate to current method Version required: After you generate the URL and parameters of the method, you will most likely debug your Service code, finally you want to see the c...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/navigateCurrentMethod.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/navigateCurrentMethod.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Navigate to current method"}],["meta",{"property":"og:description","content":"Navigate to current method Version required: After you generate the URL and parameters of the method, you will most likely debug your Service code, finally you want to see the c..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/navigate2CurrentMethod.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Navigate to current method"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Navigate to current method\\",\\"image\\":[\\"https://api-buddy.com/img/navigate2CurrentMethod.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.21,"words":62},"filePathRelative":"en/guide/features/navigateCurrentMethod.md","localizedDate":"May 31, 2024","autoDesc":true}');export{N as comp,b as data}; diff --git a/assets/navigateCurrentMethodJson.html-B-ShmjjD.js b/assets/navigateCurrentMethodJson.html-B-ShmjjD.js new file mode 100644 index 000000000..2a10c0cce --- /dev/null +++ b/assets/navigateCurrentMethodJson.html-B-ShmjjD.js @@ -0,0 +1 @@ +import{_ as a,a as n}from"./openInTabAction-S_wGJ0wq.js";import{_ as o,r as i,o as r,c as d,a as e,d as p,b as s,e as c}from"./app-8OZtYazS.js";const l="/img/2024.1.6/openTabInApis_en.png",m={},u=e("h1",{id:"multi-tab-window",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#multi-tab-window"},[e("span",null,"Multi-tab window")])],-1),g=c('

    You can locate the file where the current method stores data. And open in debug window.

    The rapi file ultimately stores data in json format and is displayed in the form of a debugging window. If you encounter a data conflict, please open and edit it in json format.

    openInTabAction

    The current API can be opened in Tab through the following Action options.

    openInTabAction

    You can right-click on apis and select Open in Tab

    openTabInApis

    ',7);function h(b,f){const t=i("Badge");return r(),d("div",null,[u,e("p",null,[p("Version required: "),s(t,{text:"2023.1.3"})]),g])}const y=o(m,[["render",h],["__file","navigateCurrentMethodJson.html.vue"]]),T=JSON.parse('{"path":"/en/guide/features/navigateCurrentMethodJson.html","title":"Multi-tab window","lang":"en-US","frontmatter":{"description":"Multi-tab window Version required: You can locate the file where the current method stores data. And open in debug window. The rapi file ultimately stores data in json format an...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/navigateCurrentMethodJson.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/navigateCurrentMethodJson.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Multi-tab window"}],["meta",{"property":"og:description","content":"Multi-tab window Version required: You can locate the file where the current method stores data. And open in debug window. The rapi file ultimately stores data in json format an..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2024.1.6/multiTab.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Multi-tab window"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Multi-tab window\\",\\"image\\":[\\"https://api-buddy.com/img/2024.1.6/multiTab.png\\",\\"https://api-buddy.com/img/2024.1.6/openInTabAction.png\\",\\"https://api-buddy.com/img/2024.1.6/openTabInApis_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.29,"words":88},"filePathRelative":"en/guide/features/navigateCurrentMethodJson.md","localizedDate":"May 31, 2024","autoDesc":true}');export{y as comp,T as data}; diff --git a/assets/navigateCurrentMethodJson.html-IS3ATxu8.js b/assets/navigateCurrentMethodJson.html-IS3ATxu8.js new file mode 100644 index 000000000..de52b9ccb --- /dev/null +++ b/assets/navigateCurrentMethodJson.html-IS3ATxu8.js @@ -0,0 +1 @@ +import{_ as a,a as o}from"./openInTabAction-S_wGJ0wq.js";import{_ as i,r,o as s,c as p,a as t,d as e,b as c}from"./app-8OZtYazS.js";const l="/img/2024.1.6/openTabInApis.png",d={},m=t("h1",{id:"多窗口-tab",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#多窗口-tab"},[t("span",null,"多窗口 Tab")])],-1),g=t("p",null,"可以定位到当前方法存储数据的文件,并以调试窗口形式打开",-1),u=t("p",null,[t("code",null,"rapi"),e("文件最终存储的是 "),t("code",null,"json"),e(" 格式的数据数据,并且以调试窗口形式展现,如果遇到数据冲突,请用 json 格式打开并编辑")],-1),h=t("p",null,[t("img",{src:a,alt:"openInTabAction",loading:"lazy"})],-1),_=t("p",null,"当前 API 可以通过以下 Action 选项来使它在 Tab 中打开",-1),b=t("p",null,[t("img",{src:o,alt:"openInTabAction",loading:"lazy"})],-1),T=t("p",null,"你可以右键 Apis 中的条目后选择 Tab 中打开",-1),y=t("p",null,[t("img",{src:l,alt:"openTabInApis",loading:"lazy"})],-1);function f(A,I){const n=r("Badge");return s(),p("div",null,[m,t("p",null,[e("版本要求: "),c(n,{text:"2024.1.6"})]),g,u,h,_,b,T,y])}const j=i(d,[["render",f],["__file","navigateCurrentMethodJson.html.vue"]]),x=JSON.parse('{"path":"/guide/features/navigateCurrentMethodJson.html","title":"多窗口 Tab","lang":"zh-CN","frontmatter":{"description":"多窗口 Tab 版本要求: 可以定位到当前方法存储数据的文件,并以调试窗口形式打开 rapi文件最终存储的是 json 格式的数据数据,并且以调试窗口形式展现,如果遇到数据冲突,请用 json 格式打开并编辑 openInTabAction 当前 API 可以通过以下 Action 选项来使它在 Tab 中打开 openInTabAction 你可以右...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/navigateCurrentMethodJson.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/navigateCurrentMethodJson.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"多窗口 Tab"}],["meta",{"property":"og:description","content":"多窗口 Tab 版本要求: 可以定位到当前方法存储数据的文件,并以调试窗口形式打开 rapi文件最终存储的是 json 格式的数据数据,并且以调试窗口形式展现,如果遇到数据冲突,请用 json 格式打开并编辑 openInTabAction 当前 API 可以通过以下 Action 选项来使它在 Tab 中打开 openInTabAction 你可以右..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2024.1.6/multiTab.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"多窗口 Tab"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"多窗口 Tab\\",\\"image\\":[\\"https://api-buddy.com/img/2024.1.6/multiTab.png\\",\\"https://api-buddy.com/img/2024.1.6/openInTabAction.png\\",\\"https://api-buddy.com/img/2024.1.6/openTabInApis.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.42,"words":127},"filePathRelative":"guide/features/navigateCurrentMethodJson.md","localizedDate":"2024年5月31日","autoDesc":true}');export{j as comp,x as data}; diff --git a/assets/newLogoConfig-lemSO0qb.js b/assets/newLogoConfig-lemSO0qb.js new file mode 100644 index 000000000..80b17c0a8 --- /dev/null +++ b/assets/newLogoConfig-lemSO0qb.js @@ -0,0 +1 @@ +const o="/img/2022.2.4/newLogo.gif",g="/img/2022.2.4/newLogoConfig.png";export{o as _,g as a}; diff --git a/assets/openInTabAction-S_wGJ0wq.js b/assets/openInTabAction-S_wGJ0wq.js new file mode 100644 index 000000000..c4fc34d96 --- /dev/null +++ b/assets/openInTabAction-S_wGJ0wq.js @@ -0,0 +1 @@ +const n="/img/2024.1.6/multiTab.png",o="/img/2024.1.6/openInTabAction.png";export{n as _,o as a}; diff --git a/assets/otherConfig.html-1LOsQQSL.js b/assets/otherConfig.html-1LOsQQSL.js new file mode 100644 index 000000000..dca39b3e6 --- /dev/null +++ b/assets/otherConfig.html-1LOsQQSL.js @@ -0,0 +1,6 @@ +import{_ as e,o as t,c as a,e as n}from"./app-8OZtYazS.js";const o="/img/otherConfig_en.png",i={},r=n(`

    Controller url fixed variable can replace by config. For example controller like this

    @RequestMapping("/api/\${api-module}/user")
    +@Controller
    +public class XxxController(){
    +  //code ...
    +}
    +

    The actual url is /api/base/user,Then \${api-module} can be replaced by the following configuration

    ',4),c=[r];function s(l,p){return t(),a("div",null,c)}const g=e(i,[["render",s],["__file","otherConfig.html.vue"]]),m=JSON.parse('{"path":"/en/guide/getstarted/otherConfig.html","title":"Other config","lang":"en-US","frontmatter":{"title":"Other config","icon":"others1","description":"Controller url fixed variable can replace by config. For example controller like this The actual url is /api/base/user,Then ${api-module} can be replaced by the following config...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/getstarted/otherConfig.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/getstarted/otherConfig.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Other config"}],["meta",{"property":"og:description","content":"Controller url fixed variable can replace by config. For example controller like this The actual url is /api/base/user,Then ${api-module} can be replaced by the following config..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/otherConfig_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Other config"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Other config\\",\\"image\\":[\\"https://api-buddy.com/img/otherConfig_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.15,"words":46},"filePathRelative":"en/guide/getstarted/otherConfig.md","localizedDate":"May 31, 2024","autoDesc":true}');export{g as comp,m as data}; diff --git a/assets/otherConfig.html-DsFJKYCa.js b/assets/otherConfig.html-DsFJKYCa.js new file mode 100644 index 000000000..4b024e5f5 --- /dev/null +++ b/assets/otherConfig.html-DsFJKYCa.js @@ -0,0 +1,6 @@ +import{_ as t,o as e,c as a,e as n}from"./app-8OZtYazS.js";const o="/img/otherConfig.png",s={},p=n(`

    控制器上的 url 固定变量可以由配置替换,例如类控制器上 url 写法如下:

    @RequestMapping("/api/\${api-module}/user")
    +@Controller
    +public class XxxController(){
    +  //code ...
    +}
    +

    实际的 url 是 /api/base/user,那么可以通过以下配置来替换 \${api-module} 变量

    other config

    ',4),r=[p];function i(c,l){return e(),a("div",null,r)}const m=t(s,[["render",i],["__file","otherConfig.html.vue"]]),u=JSON.parse('{"path":"/guide/getstarted/otherConfig.html","title":"其他配置","lang":"zh-CN","frontmatter":{"title":"其他配置","icon":"others1","description":"控制器上的 url 固定变量可以由配置替换,例如类控制器上 url 写法如下: 实际的 url 是 /api/base/user,那么可以通过以下配置来替换 ${api-module} 变量 other config ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/getstarted/otherConfig.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/getstarted/otherConfig.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"其他配置"}],["meta",{"property":"og:description","content":"控制器上的 url 固定变量可以由配置替换,例如类控制器上 url 写法如下: 实际的 url 是 /api/base/user,那么可以通过以下配置来替换 ${api-module} 变量 other config "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/otherConfig.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"其他配置"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"其他配置\\",\\"image\\":[\\"https://api-buddy.com/img/otherConfig.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.25,"words":74},"filePathRelative":"guide/getstarted/otherConfig.md","localizedDate":"2024年5月31日","autoDesc":true}');export{m as comp,u as data}; diff --git a/assets/paramDescription-tGSx8XCt.js b/assets/paramDescription-tGSx8XCt.js new file mode 100644 index 000000000..69763b4de --- /dev/null +++ b/assets/paramDescription-tGSx8XCt.js @@ -0,0 +1 @@ +const p="/img/paramDescription.png";export{p as _}; diff --git a/assets/parseStrategy.html-BeXXNMOW.js b/assets/parseStrategy.html-BeXXNMOW.js new file mode 100644 index 000000000..9febba37e --- /dev/null +++ b/assets/parseStrategy.html-BeXXNMOW.js @@ -0,0 +1,9 @@ +import{_ as a}from"./ignoreFiled-6BsUexZN.js";import{_ as n,r as o,o as s,c as r,a as e,b as i,w as c,e as p,d as l}from"./app-8OZtYazS.js";const d={},m=e("h1",{id:"字段解析",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#字段解析"},[e("span",null,"字段解析")])],-1),g=e("h2",{id:"类型映射",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#类型映射"},[e("span",null,"类型映射")])],-1),u=p(`

    忽略字段

    方式 1: 给字段使用如下 2 种注解中的一种

    com.fasterxml.jackson.annotation.JsonIgnore
    +
    +com.alibaba.fastjson.annotation.JSONField(serialize = false)
    +

    方式 2: 给字段增加 static 修饰符

    方式 3:注释上加@fastRequestParseIgnore

    /**
    + * xxx description
    + * @fastRequestParseIgnore
    + */
    +private String someIgnoreField ;
    +

    方式 4: 忽略字段名解析配置

    ignoreFiled

    只需要在配置中增加字段名,即可将实体类中的特定字段忽略生成

    ',9);function h(_,f){const t=o("RouteLink");return s(),r("div",null,[m,g,e("p",null,[i(t,{to:"/guide/getstarted/dataMapping.html"},{default:c(()=>[l("了解详情")]),_:1})]),u])}const k=n(d,[["render",h],["__file","parseStrategy.html.vue"]]),v=JSON.parse('{"path":"/guide/features/parseStrategy.html","title":"字段解析","lang":"zh-CN","frontmatter":{"description":"字段解析 类型映射 忽略字段 方式 1: 给字段使用如下 2 种注解中的一种 方式 2: 给字段增加 static 修饰符 方式 3:注释上加@fastRequestParseIgnore 方式 4: 忽略字段名解析配置 ignoreFiled 只需要在配置中增加字段名,即可将实体类中的特定字段忽略生成 ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/parseStrategy.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/parseStrategy.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"字段解析"}],["meta",{"property":"og:description","content":"字段解析 类型映射 忽略字段 方式 1: 给字段使用如下 2 种注解中的一种 方式 2: 给字段增加 static 修饰符 方式 3:注释上加@fastRequestParseIgnore 方式 4: 忽略字段名解析配置 ignoreFiled 只需要在配置中增加字段名,即可将实体类中的特定字段忽略生成 "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2024.1.1/ignoreFiled.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"字段解析"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"字段解析\\",\\"image\\":[\\"https://api-buddy.com/img/2024.1.1/ignoreFiled.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"类型映射","slug":"类型映射","link":"#类型映射","children":[]},{"level":2,"title":"忽略字段","slug":"忽略字段","link":"#忽略字段","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.37,"words":110},"filePathRelative":"guide/features/parseStrategy.md","localizedDate":"2024年5月31日","autoDesc":true}');export{k as comp,v as data}; diff --git a/assets/parseStrategy.html-TKSY716z.js b/assets/parseStrategy.html-TKSY716z.js new file mode 100644 index 000000000..0ba9a795b --- /dev/null +++ b/assets/parseStrategy.html-TKSY716z.js @@ -0,0 +1,9 @@ +import{_ as a}from"./ignoreFiled_en-EyuGDq4I.js";import{_ as n,r as o,o as r,c as i,a as e,b as s,w as d,e as l,d as p}from"./app-8OZtYazS.js";const c={},g=e("h1",{id:"parse-strategy",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#parse-strategy"},[e("span",null,"Parse strategy")])],-1),m=e("h2",{id:"data-mapping",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#data-mapping"},[e("span",null,"Data mapping")])],-1),h=l(`

    How to ignore the field

    Way 1: Use one of the following 2 annotations.

    com.fasterxml.jackson.annotation.JsonIgnore
    +
    +com.alibaba.fastjson.annotation.JSONField(serialize = false)
    +

    Way 2: Add the static modifier to the field.

    Way 3: Add @fastRequestParseIgnore in comment

    /**
    + * xxx description
    + * @fastRequestParseIgnore
    + */
    +private String someIgnoreField;
    +

    Way 4: Ignore field name ignoreFiled

    Only need to add field names in the configuration to ignore target fields in the entity class.

    ',8);function f(y,u){const t=o("RouteLink");return r(),i("div",null,[g,m,e("p",null,[s(t,{to:"/en/guide/getstarted/dataMapping.html"},{default:d(()=>[p("Learn more")]),_:1})]),h])}const w=n(c,[["render",f],["__file","parseStrategy.html.vue"]]),k=JSON.parse('{"path":"/en/guide/features/parseStrategy.html","title":"Parse strategy","lang":"en-US","frontmatter":{"description":"Parse strategy Data mapping How to ignore the field Way 1: Use one of the following 2 annotations. Way 2: Add the static modifier to the field. Way 3: Add @fastRequestParseIgnor...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/parseStrategy.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/parseStrategy.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Parse strategy"}],["meta",{"property":"og:description","content":"Parse strategy Data mapping How to ignore the field Way 1: Use one of the following 2 annotations. Way 2: Add the static modifier to the field. Way 3: Add @fastRequestParseIgnor..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2024.1.1/ignoreFiled_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Parse strategy"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Parse strategy\\",\\"image\\":[\\"https://api-buddy.com/img/2024.1.1/ignoreFiled_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Data mapping","slug":"data-mapping","link":"#data-mapping","children":[]},{"level":2,"title":"How to ignore the field","slug":"how-to-ignore-the-field","link":"#how-to-ignore-the-field","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.24,"words":73},"filePathRelative":"en/guide/features/parseStrategy.md","localizedDate":"May 31, 2024","autoDesc":true}');export{w as comp,k as data}; diff --git a/assets/photoswipe.esm-08_zHRDQ.js b/assets/photoswipe.esm-08_zHRDQ.js new file mode 100644 index 000000000..4048314e7 --- /dev/null +++ b/assets/photoswipe.esm-08_zHRDQ.js @@ -0,0 +1,4 @@ +/*! + * PhotoSwipe 5.4.3 - https://photoswipe.com + * (c) 2023 Dmytro Semenov + */function f(r,t,i){const e=document.createElement(t);return r&&(e.className=r),i&&i.appendChild(e),e}function p(r,t){return r.x=t.x,r.y=t.y,t.id!==void 0&&(r.id=t.id),r}function M(r){r.x=Math.round(r.x),r.y=Math.round(r.y)}function A(r,t){const i=Math.abs(r.x-t.x),e=Math.abs(r.y-t.y);return Math.sqrt(i*i+e*e)}function x(r,t){return r.x===t.x&&r.y===t.y}function I(r,t,i){return Math.min(Math.max(r,t),i)}function b(r,t,i){let e=`translate3d(${r}px,${t||0}px,0)`;return i!==void 0&&(e+=` scale3d(${i},${i},1)`),e}function y(r,t,i,e){r.style.transform=b(t,i,e)}const $="cubic-bezier(.4,0,.22,1)";function R(r,t,i,e){r.style.transition=t?`${t} ${i}ms ${e||$}`:"none"}function L(r,t,i){r.style.width=typeof t=="number"?`${t}px`:t,r.style.height=typeof i=="number"?`${i}px`:i}function U(r){R(r)}function q(r){return"decode"in r?r.decode().catch(()=>{}):r.complete?Promise.resolve(r):new Promise((t,i)=>{r.onload=()=>t(r),r.onerror=i})}const _={IDLE:"idle",LOADING:"loading",LOADED:"loaded",ERROR:"error"};function G(r){return"button"in r&&r.button===1||r.ctrlKey||r.metaKey||r.altKey||r.shiftKey}function K(r,t,i=document){let e=[];if(r instanceof Element)e=[r];else if(r instanceof NodeList||Array.isArray(r))e=Array.from(r);else{const s=typeof r=="string"?r:t;s&&(e=Array.from(i.querySelectorAll(s)))}return e}function C(){return!!(navigator.vendor&&navigator.vendor.match(/apple/i))}let F=!1;try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>{F=!0}}))}catch{}class X{constructor(){this._pool=[]}add(t,i,e,s){this._toggleListener(t,i,e,s)}remove(t,i,e,s){this._toggleListener(t,i,e,s,!0)}removeAll(){this._pool.forEach(t=>{this._toggleListener(t.target,t.type,t.listener,t.passive,!0,!0)}),this._pool=[]}_toggleListener(t,i,e,s,n,o){if(!t)return;const a=n?"removeEventListener":"addEventListener";i.split(" ").forEach(l=>{if(l){o||(n?this._pool=this._pool.filter(d=>d.type!==l||d.listener!==e||d.target!==t):this._pool.push({target:t,type:l,listener:e,passive:s}));const c=F?{passive:s||!1}:!1;t[a](l,e,c)}})}}function B(r,t){if(r.getViewportSizeFn){const i=r.getViewportSizeFn(r,t);if(i)return i}return{x:document.documentElement.clientWidth,y:window.innerHeight}}function S(r,t,i,e,s){let n=0;if(t.paddingFn)n=t.paddingFn(i,e,s)[r];else if(t.padding)n=t.padding[r];else{const o="padding"+r[0].toUpperCase()+r.slice(1);t[o]&&(n=t[o])}return Number(n)||0}function N(r,t,i,e){return{x:t.x-S("left",r,t,i,e)-S("right",r,t,i,e),y:t.y-S("top",r,t,i,e)-S("bottom",r,t,i,e)}}class Y{constructor(t){this.slide=t,this.currZoomLevel=1,this.center={x:0,y:0},this.max={x:0,y:0},this.min={x:0,y:0}}update(t){this.currZoomLevel=t,this.slide.width?(this._updateAxis("x"),this._updateAxis("y"),this.slide.pswp.dispatch("calcBounds",{slide:this.slide})):this.reset()}_updateAxis(t){const{pswp:i}=this.slide,e=this.slide[t==="x"?"width":"height"]*this.currZoomLevel,n=S(t==="x"?"left":"top",i.options,i.viewportSize,this.slide.data,this.slide.index),o=this.slide.panAreaSize[t];this.center[t]=Math.round((o-e)/2)+n,this.max[t]=e>o?Math.round(o-e)+n:this.center[t],this.min[t]=e>o?n:this.center[t]}reset(){this.center.x=0,this.center.y=0,this.max.x=0,this.max.y=0,this.min.x=0,this.min.y=0}correctPan(t,i){return I(i,this.max[t],this.min[t])}}const T=4e3;class k{constructor(t,i,e,s){this.pswp=s,this.options=t,this.itemData=i,this.index=e,this.panAreaSize=null,this.elementSize=null,this.fit=1,this.fill=1,this.vFill=1,this.initial=1,this.secondary=1,this.max=1,this.min=1}update(t,i,e){const s={x:t,y:i};this.elementSize=s,this.panAreaSize=e;const n=e.x/s.x,o=e.y/s.y;this.fit=Math.min(1,no?n:o),this.vFill=Math.min(1,o),this.initial=this._getInitial(),this.secondary=this._getSecondary(),this.max=Math.max(this.initial,this.secondary,this._getMax()),this.min=Math.min(this.fit,this.initial,this.secondary),this.pswp&&this.pswp.dispatch("zoomLevelsUpdate",{zoomLevels:this,slideData:this.itemData})}_parseZoomLevelOption(t){const i=t+"ZoomLevel",e=this.options[i];if(e)return typeof e=="function"?e(this):e==="fill"?this.fill:e==="fit"?this.fit:Number(e)}_getSecondary(){let t=this._parseZoomLevelOption("secondary");return t||(t=Math.min(1,this.fit*3),this.elementSize&&t*this.elementSize.x>T&&(t=T/this.elementSize.x),t)}_getInitial(){return this._parseZoomLevelOption("initial")||this.fit}_getMax(){return this._parseZoomLevelOption("max")||Math.max(1,this.fit*4)}}class j{constructor(t,i,e){this.data=t,this.index=i,this.pswp=e,this.isActive=i===e.currIndex,this.currentResolution=0,this.panAreaSize={x:0,y:0},this.pan={x:0,y:0},this.isFirstSlide=this.isActive&&!e.opener.isOpen,this.zoomLevels=new k(e.options,t,i,e),this.pswp.dispatch("gettingData",{slide:this,data:this.data,index:i}),this.content=this.pswp.contentLoader.getContentBySlide(this),this.container=f("pswp__zoom-wrap","div"),this.holderElement=null,this.currZoomLevel=1,this.width=this.content.width,this.height=this.content.height,this.heavyAppended=!1,this.bounds=new Y(this),this.prevDisplayedWidth=-1,this.prevDisplayedHeight=-1,this.pswp.dispatch("slideInit",{slide:this})}setIsActive(t){t&&!this.isActive?this.activate():!t&&this.isActive&&this.deactivate()}append(t){this.holderElement=t,this.container.style.transformOrigin="0 0",this.data&&(this.calculateSize(),this.load(),this.updateContentSize(),this.appendHeavy(),this.holderElement.appendChild(this.container),this.zoomAndPanToInitial(),this.pswp.dispatch("firstZoomPan",{slide:this}),this.applyCurrentZoomPan(),this.pswp.dispatch("afterSetContent",{slide:this}),this.isActive&&this.activate())}load(){this.content.load(!1),this.pswp.dispatch("slideLoad",{slide:this})}appendHeavy(){const{pswp:t}=this;this.heavyAppended||!t.opener.isOpen||t.mainScroll.isShifted()||!this.isActive&&!!0||this.pswp.dispatch("appendHeavy",{slide:this}).defaultPrevented||(this.heavyAppended=!0,this.content.append(),this.pswp.dispatch("appendHeavyContent",{slide:this}))}activate(){this.isActive=!0,this.appendHeavy(),this.content.activate(),this.pswp.dispatch("slideActivate",{slide:this})}deactivate(){this.isActive=!1,this.content.deactivate(),this.currZoomLevel!==this.zoomLevels.initial&&this.calculateSize(),this.currentResolution=0,this.zoomAndPanToInitial(),this.applyCurrentZoomPan(),this.updateContentSize(),this.pswp.dispatch("slideDeactivate",{slide:this})}destroy(){this.content.hasSlide=!1,this.content.remove(),this.container.remove(),this.pswp.dispatch("slideDestroy",{slide:this})}resize(){this.currZoomLevel===this.zoomLevels.initial||!this.isActive?(this.calculateSize(),this.currentResolution=0,this.zoomAndPanToInitial(),this.applyCurrentZoomPan(),this.updateContentSize()):(this.calculateSize(),this.bounds.update(this.currZoomLevel),this.panTo(this.pan.x,this.pan.y))}updateContentSize(t){const i=this.currentResolution||this.zoomLevels.initial;if(!i)return;const e=Math.round(this.width*i)||this.pswp.viewportSize.x,s=Math.round(this.height*i)||this.pswp.viewportSize.y;!this.sizeChanged(e,s)&&!t||this.content.setDisplayedSize(e,s)}sizeChanged(t,i){return t!==this.prevDisplayedWidth||i!==this.prevDisplayedHeight?(this.prevDisplayedWidth=t,this.prevDisplayedHeight=i,!0):!1}getPlaceholderElement(){var t;return(t=this.content.placeholder)===null||t===void 0?void 0:t.element}zoomTo(t,i,e,s){const{pswp:n}=this;if(!this.isZoomable()||n.mainScroll.isShifted())return;n.dispatch("beforeZoomTo",{destZoomLevel:t,centerPoint:i,transitionDuration:e}),n.animations.stopAllPan();const o=this.currZoomLevel;s||(t=I(t,this.zoomLevels.min,this.zoomLevels.max)),this.setZoomLevel(t),this.pan.x=this.calculateZoomToPanOffset("x",i,o),this.pan.y=this.calculateZoomToPanOffset("y",i,o),M(this.pan);const a=()=>{this._setResolution(t),this.applyCurrentZoomPan()};e?n.animations.startTransition({isPan:!0,name:"zoomTo",target:this.container,transform:this.getCurrentTransform(),onComplete:a,duration:e,easing:n.options.easing}):a()}toggleZoom(t){this.zoomTo(this.currZoomLevel===this.zoomLevels.initial?this.zoomLevels.secondary:this.zoomLevels.initial,t,this.pswp.options.zoomAnimationDuration)}setZoomLevel(t){this.currZoomLevel=t,this.bounds.update(this.currZoomLevel)}calculateZoomToPanOffset(t,i,e){if(this.bounds.max[t]-this.bounds.min[t]===0)return this.bounds.center[t];i||(i=this.pswp.getViewportCenterPoint()),e||(e=this.zoomLevels.initial);const n=this.currZoomLevel/e;return this.bounds.correctPan(t,(this.pan[t]-i[t])*n+i[t])}panTo(t,i){this.pan.x=this.bounds.correctPan("x",t),this.pan.y=this.bounds.correctPan("y",i),this.applyCurrentZoomPan()}isPannable(){return!!this.width&&this.currZoomLevel>this.zoomLevels.fit}isZoomable(){return!!this.width&&this.content.isZoomable()}applyCurrentZoomPan(){this._applyZoomTransform(this.pan.x,this.pan.y,this.currZoomLevel),this===this.pswp.currSlide&&this.pswp.dispatch("zoomPanUpdate",{slide:this})}zoomAndPanToInitial(){this.currZoomLevel=this.zoomLevels.initial,this.bounds.update(this.currZoomLevel),p(this.pan,this.bounds.center),this.pswp.dispatch("initialZoomPan",{slide:this})}_applyZoomTransform(t,i,e){e/=this.currentResolution||this.zoomLevels.initial,y(this.container,t,i,e)}calculateSize(){const{pswp:t}=this;p(this.panAreaSize,N(t.options,t.viewportSize,this.data,this.index)),this.zoomLevels.update(this.width,this.height,this.panAreaSize),t.dispatch("calcSlideSize",{slide:this})}getCurrentTransform(){const t=this.currZoomLevel/(this.currentResolution||this.zoomLevels.initial);return b(this.pan.x,this.pan.y,t)}_setResolution(t){t!==this.currentResolution&&(this.currentResolution=t,this.updateContentSize(),this.pswp.dispatch("resolutionChanged"))}}const Q=.35,J=.6,z=.4,E=.5;function tt(r,t){return r*t/(1-t)}class it{constructor(t){this.gestures=t,this.pswp=t.pswp,this.startPan={x:0,y:0}}start(){this.pswp.currSlide&&p(this.startPan,this.pswp.currSlide.pan),this.pswp.animations.stopAll()}change(){const{p1:t,prevP1:i,dragAxis:e}=this.gestures,{currSlide:s}=this.pswp;if(e==="y"&&this.pswp.options.closeOnVerticalDrag&&s&&s.currZoomLevel<=s.zoomLevels.fit&&!this.gestures.isMultitouch){const n=s.pan.y+(t.y-i.y);if(!this.pswp.dispatch("verticalDrag",{panY:n}).defaultPrevented){this._setPanWithFriction("y",n,J);const o=1-Math.abs(this._getVerticalDragRatio(s.pan.y));this.pswp.applyBgOpacity(o),s.applyCurrentZoomPan()}}else this._panOrMoveMainScroll("x")||(this._panOrMoveMainScroll("y"),s&&(M(s.pan),s.applyCurrentZoomPan()))}end(){const{velocity:t}=this.gestures,{mainScroll:i,currSlide:e}=this.pswp;let s=0;if(this.pswp.animations.stopAll(),i.isShifted()){const o=(i.x-i.getCurrSlideX())/this.pswp.viewportSize.x;t.x<-E&&o<0||t.x<.1&&o<-.5?(s=1,t.x=Math.min(t.x,0)):(t.x>E&&o>0||t.x>-.1&&o>.5)&&(s=-1,t.x=Math.max(t.x,0)),i.moveIndexBy(s,!0,t.x)}e&&e.currZoomLevel>e.zoomLevels.max||this.gestures.isMultitouch?this.gestures.zoomLevels.correctZoomPan(!0):(this._finishPanGestureForAxis("x"),this._finishPanGestureForAxis("y"))}_finishPanGestureForAxis(t){const{velocity:i}=this.gestures,{currSlide:e}=this.pswp;if(!e)return;const{pan:s,bounds:n}=e,o=s[t],a=this.pswp.bgOpacity<1&&t==="y",l=o+tt(i[t],.995);if(a){const v=this._getVerticalDragRatio(o),w=this._getVerticalDragRatio(l);if(v<0&&w<-z||v>0&&w>z){this.pswp.close();return}}const c=n.correctPan(t,l);if(o===c)return;const d=c===l?1:.82,u=this.pswp.bgOpacity,m=c-o;this.pswp.animations.startSpring({name:"panGesture"+t,isPan:!0,start:o,end:c,velocity:i[t],dampingRatio:d,onUpdate:v=>{if(a&&this.pswp.bgOpacity<1){const w=1-(c-v)/m;this.pswp.applyBgOpacity(I(u+(1-u)*w,0,1))}s[t]=Math.floor(v),e.applyCurrentZoomPan()}})}_panOrMoveMainScroll(t){const{p1:i,dragAxis:e,prevP1:s,isMultitouch:n}=this.gestures,{currSlide:o,mainScroll:a}=this.pswp,h=i[t]-s[t],l=a.x+h;if(!h||!o)return!1;if(t==="x"&&!o.isPannable()&&!n)return a.moveTo(l,!0),!0;const{bounds:c}=o,d=o.pan[t]+h;if(this.pswp.options.allowPanToNext&&e==="x"&&t==="x"&&!n){const u=a.getCurrSlideX(),m=a.x-u,v=h>0,w=!v;if(d>c.min[t]&&v){if(c.min[t]<=this.startPan[t])return a.moveTo(l,!0),!0;this._setPanWithFriction(t,d)}else if(d0)return a.moveTo(Math.max(l,u),!0),!0;if(m<0)return a.moveTo(Math.min(l,u),!0),!0}else this._setPanWithFriction(t,d)}else t==="y"?!a.isShifted()&&c.min.y!==c.max.y&&this._setPanWithFriction(t,d):this._setPanWithFriction(t,d);return!1}_getVerticalDragRatio(t){var i,e;return(t-((i=(e=this.pswp.currSlide)===null||e===void 0?void 0:e.bounds.center.y)!==null&&i!==void 0?i:0))/(this.pswp.viewportSize.y/3)}_setPanWithFriction(t,i,e){const{currSlide:s}=this.pswp;if(!s)return;const{pan:n,bounds:o}=s;if(o.correctPan(t,i)!==i||e){const h=Math.round(i-n[t]);n[t]+=h*(e||Q)}else n[t]=i}}const et=.05,st=.15;function O(r,t,i){return r.x=(t.x+i.x)/2,r.y=(t.y+i.y)/2,r}class nt{constructor(t){this.gestures=t,this._startPan={x:0,y:0},this._startZoomPoint={x:0,y:0},this._zoomPoint={x:0,y:0},this._wasOverFitZoomLevel=!1,this._startZoomLevel=1}start(){const{currSlide:t}=this.gestures.pswp;t&&(this._startZoomLevel=t.currZoomLevel,p(this._startPan,t.pan)),this.gestures.pswp.animations.stopAllPan(),this._wasOverFitZoomLevel=!1}change(){const{p1:t,startP1:i,p2:e,startP2:s,pswp:n}=this.gestures,{currSlide:o}=n;if(!o)return;const a=o.zoomLevels.min,h=o.zoomLevels.max;if(!o.isZoomable()||n.mainScroll.isShifted())return;O(this._startZoomPoint,i,s),O(this._zoomPoint,t,e);let l=1/A(i,s)*A(t,e)*this._startZoomLevel;if(l>o.zoomLevels.initial+o.zoomLevels.initial/15&&(this._wasOverFitZoomLevel=!0),lh&&(l=h+(l-h)*et);o.pan.x=this._calculatePanForZoomLevel("x",l),o.pan.y=this._calculatePanForZoomLevel("y",l),o.setZoomLevel(l),o.applyCurrentZoomPan()}end(){const{pswp:t}=this.gestures,{currSlide:i}=t;(!i||i.currZoomLevele.zoomLevels.max?n=e.zoomLevels.max:(o=!1,n=s);const a=i.bgOpacity,h=i.bgOpacity<1,l=p({x:0,y:0},e.pan);let c=p({x:0,y:0},l);t&&(this._zoomPoint.x=0,this._zoomPoint.y=0,this._startZoomPoint.x=0,this._startZoomPoint.y=0,this._startZoomLevel=s,p(this._startPan,l)),o&&(c={x:this._calculatePanForZoomLevel("x",n),y:this._calculatePanForZoomLevel("y",n)}),e.setZoomLevel(n),c={x:e.bounds.correctPan("x",c.x),y:e.bounds.correctPan("y",c.y)},e.setZoomLevel(s);const d=!x(c,l);if(!d&&!o&&!h){e._setResolution(n),e.applyCurrentZoomPan();return}i.animations.stopAllPan(),i.animations.startSpring({isPan:!0,start:0,end:1e3,velocity:0,dampingRatio:1,naturalFrequency:40,onUpdate:u=>{if(u/=1e3,d||o){if(d&&(e.pan.x=l.x+(c.x-l.x)*u,e.pan.y=l.y+(c.y-l.y)*u),o){const m=s+(n-s)*u;e.setZoomLevel(m)}e.applyCurrentZoomPan()}h&&i.bgOpacity<1&&i.applyBgOpacity(I(a+(1-a)*u,0,1))},onComplete:()=>{e._setResolution(n),e.applyCurrentZoomPan()}})}}function Z(r){return!!r.target.closest(".pswp__container")}class ot{constructor(t){this.gestures=t}click(t,i){const e=i.target.classList,s=e.contains("pswp__img"),n=e.contains("pswp__item")||e.contains("pswp__zoom-wrap");s?this._doClickOrTapAction("imageClick",t,i):n&&this._doClickOrTapAction("bgClick",t,i)}tap(t,i){Z(i)&&this._doClickOrTapAction("tap",t,i)}doubleTap(t,i){Z(i)&&this._doClickOrTapAction("doubleTap",t,i)}_doClickOrTapAction(t,i,e){var s;const{pswp:n}=this.gestures,{currSlide:o}=n,a=t+"Action",h=n.options[a];if(!n.dispatch(a,{point:i,originalEvent:e}).defaultPrevented){if(typeof h=="function"){h.call(n,i,e);return}switch(h){case"close":case"next":n[h]();break;case"zoom":o==null||o.toggleZoom(i);break;case"zoom-or-close":o!=null&&o.isZoomable()&&o.zoomLevels.secondary!==o.zoomLevels.initial?o.toggleZoom(i):n.options.clickToCloseNonZoomable&&n.close();break;case"toggle-controls":(s=this.gestures.pswp.element)===null||s===void 0||s.classList.toggle("pswp--ui-visible");break}}}}const rt=10,at=300,ht=25;class lt{constructor(t){this.pswp=t,this.dragAxis=null,this.p1={x:0,y:0},this.p2={x:0,y:0},this.prevP1={x:0,y:0},this.prevP2={x:0,y:0},this.startP1={x:0,y:0},this.startP2={x:0,y:0},this.velocity={x:0,y:0},this._lastStartP1={x:0,y:0},this._intervalP1={x:0,y:0},this._numActivePoints=0,this._ongoingPointers=[],this._touchEventEnabled="ontouchstart"in window,this._pointerEventEnabled=!!window.PointerEvent,this.supportsTouch=this._touchEventEnabled||this._pointerEventEnabled&&navigator.maxTouchPoints>1,this._numActivePoints=0,this._intervalTime=0,this._velocityCalculated=!1,this.isMultitouch=!1,this.isDragging=!1,this.isZooming=!1,this.raf=null,this._tapTimer=null,this.supportsTouch||(t.options.allowPanToNext=!1),this.drag=new it(this),this.zoomLevels=new nt(this),this.tapHandler=new ot(this),t.on("bindEvents",()=>{t.events.add(t.scrollWrap,"click",this._onClick.bind(this)),this._pointerEventEnabled?this._bindEvents("pointer","down","up","cancel"):this._touchEventEnabled?(this._bindEvents("touch","start","end","cancel"),t.scrollWrap&&(t.scrollWrap.ontouchmove=()=>{},t.scrollWrap.ontouchend=()=>{})):this._bindEvents("mouse","down","up")})}_bindEvents(t,i,e,s){const{pswp:n}=this,{events:o}=n,a=s?t+s:"";o.add(n.scrollWrap,t+i,this.onPointerDown.bind(this)),o.add(window,t+"move",this.onPointerMove.bind(this)),o.add(window,t+e,this.onPointerUp.bind(this)),a&&o.add(n.scrollWrap,a,this.onPointerUp.bind(this))}onPointerDown(t){const i=t.type==="mousedown"||t.pointerType==="mouse";if(i&&t.button>0)return;const{pswp:e}=this;if(!e.opener.isOpen){t.preventDefault();return}e.dispatch("pointerDown",{originalEvent:t}).defaultPrevented||(i&&(e.mouseDetected(),this._preventPointerEventBehaviour(t,"down")),e.animations.stopAll(),this._updatePoints(t,"down"),this._numActivePoints===1&&(this.dragAxis=null,p(this.startP1,this.p1)),this._numActivePoints>1?(this._clearTapTimer(),this.isMultitouch=!0):this.isMultitouch=!1)}onPointerMove(t){this._preventPointerEventBehaviour(t,"move"),this._numActivePoints&&(this._updatePoints(t,"move"),!this.pswp.dispatch("pointerMove",{originalEvent:t}).defaultPrevented&&(this._numActivePoints===1&&!this.isDragging?(this.dragAxis||this._calculateDragDirection(),this.dragAxis&&!this.isDragging&&(this.isZooming&&(this.isZooming=!1,this.zoomLevels.end()),this.isDragging=!0,this._clearTapTimer(),this._updateStartPoints(),this._intervalTime=Date.now(),this._velocityCalculated=!1,p(this._intervalP1,this.p1),this.velocity.x=0,this.velocity.y=0,this.drag.start(),this._rafStopLoop(),this._rafRenderLoop())):this._numActivePoints>1&&!this.isZooming&&(this._finishDrag(),this.isZooming=!0,this._updateStartPoints(),this.zoomLevels.start(),this._rafStopLoop(),this._rafRenderLoop())))}_finishDrag(){this.isDragging&&(this.isDragging=!1,this._velocityCalculated||this._updateVelocity(!0),this.drag.end(),this.dragAxis=null)}onPointerUp(t){this._numActivePoints&&(this._updatePoints(t,"up"),!this.pswp.dispatch("pointerUp",{originalEvent:t}).defaultPrevented&&(this._numActivePoints===0&&(this._rafStopLoop(),this.isDragging?this._finishDrag():!this.isZooming&&!this.isMultitouch&&this._finishTap(t)),this._numActivePoints<2&&this.isZooming&&(this.isZooming=!1,this.zoomLevels.end(),this._numActivePoints===1&&(this.dragAxis=null,this._updateStartPoints()))))}_rafRenderLoop(){(this.isDragging||this.isZooming)&&(this._updateVelocity(),this.isDragging?x(this.p1,this.prevP1)||this.drag.change():(!x(this.p1,this.prevP1)||!x(this.p2,this.prevP2))&&this.zoomLevels.change(),this._updatePrevPoints(),this.raf=requestAnimationFrame(this._rafRenderLoop.bind(this)))}_updateVelocity(t){const i=Date.now(),e=i-this._intervalTime;e<50&&!t||(this.velocity.x=this._getVelocity("x",e),this.velocity.y=this._getVelocity("y",e),this._intervalTime=i,p(this._intervalP1,this.p1),this._velocityCalculated=!0)}_finishTap(t){const{mainScroll:i}=this.pswp;if(i.isShifted()){i.moveIndexBy(0,!0);return}if(t.type.indexOf("cancel")>0)return;if(t.type==="mouseup"||t.pointerType==="mouse"){this.tapHandler.click(this.startP1,t);return}const e=this.pswp.options.doubleTapAction?at:0;this._tapTimer?(this._clearTapTimer(),A(this._lastStartP1,this.startP1){this.tapHandler.tap(this.startP1,t),this._clearTapTimer()},e))}_clearTapTimer(){this._tapTimer&&(clearTimeout(this._tapTimer),this._tapTimer=null)}_getVelocity(t,i){const e=this.p1[t]-this._intervalP1[t];return Math.abs(e)>1&&i>5?e/i:0}_rafStopLoop(){this.raf&&(cancelAnimationFrame(this.raf),this.raf=null)}_preventPointerEventBehaviour(t,i){this.pswp.applyFilters("preventPointerEvent",!0,t,i)&&t.preventDefault()}_updatePoints(t,i){if(this._pointerEventEnabled){const e=t,s=this._ongoingPointers.findIndex(n=>n.id===e.pointerId);i==="up"&&s>-1?this._ongoingPointers.splice(s,1):i==="down"&&s===-1?this._ongoingPointers.push(this._convertEventPosToPoint(e,{x:0,y:0})):s>-1&&this._convertEventPosToPoint(e,this._ongoingPointers[s]),this._numActivePoints=this._ongoingPointers.length,this._numActivePoints>0&&p(this.p1,this._ongoingPointers[0]),this._numActivePoints>1&&p(this.p2,this._ongoingPointers[1])}else{const e=t;this._numActivePoints=0,e.type.indexOf("touch")>-1?e.touches&&e.touches.length>0&&(this._convertEventPosToPoint(e.touches[0],this.p1),this._numActivePoints++,e.touches.length>1&&(this._convertEventPosToPoint(e.touches[1],this.p2),this._numActivePoints++)):(this._convertEventPosToPoint(t,this.p1),i==="up"?this._numActivePoints=0:this._numActivePoints++)}}_updatePrevPoints(){p(this.prevP1,this.p1),p(this.prevP2,this.p2)}_updateStartPoints(){p(this.startP1,this.p1),p(this.startP2,this.p2),this._updatePrevPoints()}_calculateDragDirection(){if(this.pswp.mainScroll.isShifted())this.dragAxis="x";else{const t=Math.abs(this.p1.x-this.startP1.x)-Math.abs(this.p1.y-this.startP1.y);if(t!==0){const i=t>0?"x":"y";Math.abs(this.p1[i]-this.startP1[i])>=rt&&(this.dragAxis=i)}}}_convertEventPosToPoint(t,i){return i.x=t.pageX-this.pswp.offset.x,i.y=t.pageY-this.pswp.offset.y,"pointerId"in t?i.id=t.pointerId:t.identifier!==void 0&&(i.id=t.identifier),i}_onClick(t){this.pswp.mainScroll.isShifted()&&(t.preventDefault(),t.stopPropagation())}}const ct=.35;class dt{constructor(t){this.pswp=t,this.x=0,this.slideWidth=0,this._currPositionIndex=0,this._prevPositionIndex=0,this._containerShiftIndex=-1,this.itemHolders=[]}resize(t){const{pswp:i}=this,e=Math.round(i.viewportSize.x+i.viewportSize.x*i.options.spacing),s=e!==this.slideWidth;s&&(this.slideWidth=e,this.moveTo(this.getCurrSlideX())),this.itemHolders.forEach((n,o)=>{s&&y(n.el,(o+this._containerShiftIndex)*this.slideWidth),t&&n.slide&&n.slide.resize()})}resetPosition(){this._currPositionIndex=0,this._prevPositionIndex=0,this.slideWidth=0,this._containerShiftIndex=-1}appendHolders(){this.itemHolders=[];for(let t=0;t<3;t++){const i=f("pswp__item","div",this.pswp.container);i.setAttribute("role","group"),i.setAttribute("aria-roledescription","slide"),i.setAttribute("aria-hidden","true"),i.style.display=t===1?"block":"none",this.itemHolders.push({el:i})}}canBeSwiped(){return this.pswp.getNumItems()>1}moveIndexBy(t,i,e){const{pswp:s}=this;let n=s.potentialIndex+t;const o=s.getNumItems();if(s.canLoop()){n=s.getLoopedIndex(n);const h=(t+o)%o;h<=o/2?t=h:t=h-o}else n<0?n=0:n>=o&&(n=o-1),t=n-s.potentialIndex;s.potentialIndex=n,this._currPositionIndex-=t,s.animations.stopMainScroll();const a=this.getCurrSlideX();if(!i)this.moveTo(a),this.updateCurrItem();else{s.animations.startSpring({isMainScroll:!0,start:this.x,end:a,velocity:e||0,naturalFrequency:30,dampingRatio:1,onUpdate:l=>{this.moveTo(l)},onComplete:()=>{this.updateCurrItem(),s.appendHeavy()}});let h=s.potentialIndex-s.currIndex;if(s.canLoop()){const l=(h+o)%o;l<=o/2?h=l:h=l-o}Math.abs(h)>1&&this.updateCurrItem()}return!!t}getCurrSlideX(){return this.slideWidth*this._currPositionIndex}isShifted(){return this.x!==this.getCurrSlideX()}updateCurrItem(){var t;const{pswp:i}=this,e=this._prevPositionIndex-this._currPositionIndex;if(!e)return;this._prevPositionIndex=this._currPositionIndex,i.currIndex=i.potentialIndex;let s=Math.abs(e),n;s>=3&&(this._containerShiftIndex+=e+(e>0?-3:3),s=3);for(let o=0;o0?(n=this.itemHolders.shift(),n&&(this.itemHolders[2]=n,this._containerShiftIndex++,y(n.el,(this._containerShiftIndex+2)*this.slideWidth),i.setContent(n,i.currIndex-s+o+2))):(n=this.itemHolders.pop(),n&&(this.itemHolders.unshift(n),this._containerShiftIndex--,y(n.el,this._containerShiftIndex*this.slideWidth),i.setContent(n,i.currIndex+s-o-2)));Math.abs(this._containerShiftIndex)>50&&!this.isShifted()&&(this.resetPosition(),this.resize()),i.animations.stopAllPan(),this.itemHolders.forEach((o,a)=>{o.slide&&o.slide.setIsActive(a===1)}),i.currSlide=(t=this.itemHolders[1])===null||t===void 0?void 0:t.slide,i.contentLoader.updateLazy(e),i.currSlide&&i.currSlide.applyCurrentZoomPan(),i.dispatch("change")}moveTo(t,i){if(!this.pswp.canLoop()&&i){let e=(this.slideWidth*this._currPositionIndex-t)/this.slideWidth;e+=this.pswp.currIndex;const s=Math.round(t-this.x);(e<0&&s>0||e>=this.pswp.getNumItems()-1&&s<0)&&(t=this.x+s*ct)}this.x=t,this.pswp.container&&y(this.pswp.container,t),this.pswp.dispatch("moveMainScroll",{x:t,dragging:i??!1})}}const pt={Escape:27,z:90,ArrowLeft:37,ArrowUp:38,ArrowRight:39,ArrowDown:40,Tab:9},g=(r,t)=>t?r:pt[r];class ut{constructor(t){this.pswp=t,this._wasFocused=!1,t.on("bindEvents",()=>{t.options.trapFocus&&(t.options.initialPointerPos||this._focusRoot(),t.events.add(document,"focusin",this._onFocusIn.bind(this))),t.events.add(document,"keydown",this._onKeyDown.bind(this))});const i=document.activeElement;t.on("destroy",()=>{t.options.returnFocus&&i&&this._wasFocused&&i.focus()})}_focusRoot(){!this._wasFocused&&this.pswp.element&&(this.pswp.element.focus(),this._wasFocused=!0)}_onKeyDown(t){const{pswp:i}=this;if(i.dispatch("keydown",{originalEvent:t}).defaultPrevented||G(t))return;let e,s,n=!1;const o="key"in t;switch(o?t.key:t.keyCode){case g("Escape",o):i.options.escKey&&(e="close");break;case g("z",o):e="toggleZoom";break;case g("ArrowLeft",o):s="x";break;case g("ArrowUp",o):s="y";break;case g("ArrowRight",o):s="x",n=!0;break;case g("ArrowDown",o):n=!0,s="y";break;case g("Tab",o):this._focusRoot();break}if(s){t.preventDefault();const{currSlide:a}=i;i.options.arrowKeys&&s==="x"&&i.getNumItems()>1?e=n?"next":"prev":a&&a.currZoomLevel>a.zoomLevels.fit&&(a.pan[s]+=n?-80:80,a.panTo(a.pan.x,a.pan.y))}e&&(t.preventDefault(),i[e]())}_onFocusIn(t){const{template:i}=this.pswp;i&&document!==t.target&&i!==t.target&&!i.contains(t.target)&&i.focus()}}const mt="cubic-bezier(.4,0,.22,1)";class ft{constructor(t){var i;this.props=t;const{target:e,onComplete:s,transform:n,onFinish:o=()=>{},duration:a=333,easing:h=mt}=t;this.onFinish=o;const l=n?"transform":"opacity",c=(i=t[l])!==null&&i!==void 0?i:"";this._target=e,this._onComplete=s,this._finished=!1,this._onTransitionEnd=this._onTransitionEnd.bind(this),this._helperTimeout=setTimeout(()=>{R(e,l,a,h),this._helperTimeout=setTimeout(()=>{e.addEventListener("transitionend",this._onTransitionEnd,!1),e.addEventListener("transitioncancel",this._onTransitionEnd,!1),this._helperTimeout=setTimeout(()=>{this._finalizeAnimation()},a+500),e.style[l]=c},30)},0)}_onTransitionEnd(t){t.target===this._target&&this._finalizeAnimation()}_finalizeAnimation(){this._finished||(this._finished=!0,this.onFinish(),this._onComplete&&this._onComplete())}destroy(){this._helperTimeout&&clearTimeout(this._helperTimeout),U(this._target),this._target.removeEventListener("transitionend",this._onTransitionEnd,!1),this._target.removeEventListener("transitioncancel",this._onTransitionEnd,!1),this._finished||this._finalizeAnimation()}}const _t=12,vt=.75;class gt{constructor(t,i,e){this.velocity=t*1e3,this._dampingRatio=i||vt,this._naturalFrequency=e||_t,this._dampedFrequency=this._naturalFrequency,this._dampingRatio<1&&(this._dampedFrequency*=Math.sqrt(1-this._dampingRatio*this._dampingRatio))}easeFrame(t,i){let e=0,s;i/=1e3;const n=Math.E**(-this._dampingRatio*this._naturalFrequency*i);if(this._dampingRatio===1)s=this.velocity+this._naturalFrequency*t,e=(t+s*i)*n,this.velocity=e*-this._naturalFrequency+s*n;else if(this._dampingRatio<1){s=1/this._dampedFrequency*(this._dampingRatio*this._naturalFrequency*t+this.velocity);const o=Math.cos(this._dampedFrequency*i),a=Math.sin(this._dampedFrequency*i);e=n*(t*o+s*a),this.velocity=e*-this._naturalFrequency*this._dampingRatio+n*(-this._dampedFrequency*t*a+this._dampedFrequency*s*o)}return e}}class yt{constructor(t){this.props=t,this._raf=0;const{start:i,end:e,velocity:s,onUpdate:n,onComplete:o,onFinish:a=()=>{},dampingRatio:h,naturalFrequency:l}=t;this.onFinish=a;const c=new gt(s,h,l);let d=Date.now(),u=i-e;const m=()=>{this._raf&&(u=c.easeFrame(u,Date.now()-d),Math.abs(u)<1&&Math.abs(c.velocity)<50?(n(e),o&&o(),this.onFinish()):(d=Date.now(),n(u+e),this._raf=requestAnimationFrame(m)))};this._raf=requestAnimationFrame(m)}destroy(){this._raf>=0&&cancelAnimationFrame(this._raf),this._raf=0}}class wt{constructor(){this.activeAnimations=[]}startSpring(t){this._start(t,!0)}startTransition(t){this._start(t)}_start(t,i){const e=i?new yt(t):new ft(t);return this.activeAnimations.push(e),e.onFinish=()=>this.stop(e),e}stop(t){t.destroy();const i=this.activeAnimations.indexOf(t);i>-1&&this.activeAnimations.splice(i,1)}stopAll(){this.activeAnimations.forEach(t=>{t.destroy()}),this.activeAnimations=[]}stopAllPan(){this.activeAnimations=this.activeAnimations.filter(t=>t.props.isPan?(t.destroy(),!1):!0)}stopMainScroll(){this.activeAnimations=this.activeAnimations.filter(t=>t.props.isMainScroll?(t.destroy(),!1):!0)}isPanRunning(){return this.activeAnimations.some(t=>t.props.isPan)}}class Pt{constructor(t){this.pswp=t,t.events.add(t.element,"wheel",this._onWheel.bind(this))}_onWheel(t){t.preventDefault();const{currSlide:i}=this.pswp;let{deltaX:e,deltaY:s}=t;if(i&&!this.pswp.dispatch("wheel",{originalEvent:t}).defaultPrevented)if(t.ctrlKey||this.pswp.options.wheelToZoom){if(i.isZoomable()){let n=-s;t.deltaMode===1?n*=.05:n*=t.deltaMode?1:.002,n=2**n;const o=i.currZoomLevel*n;i.zoomTo(o,{x:t.clientX,y:t.clientY})}}else i.isPannable()&&(t.deltaMode===1&&(e*=18,s*=18),i.panTo(i.pan.x-e,i.pan.y-s))}}function St(r){if(typeof r=="string")return r;if(!r||!r.isCustomSVG)return"";const t=r;let i='",i}class xt{constructor(t,i){var e;const s=i.name||i.className;let n=i.html;if(t.options[s]===!1)return;typeof t.options[s+"SVG"]=="string"&&(n=t.options[s+"SVG"]),t.dispatch("uiElementCreate",{data:i});let o="";i.isButton?(o+="pswp__button ",o+=i.className||`pswp__button--${i.name}`):o+=i.className||`pswp__${i.name}`;let a=i.isButton?i.tagName||"button":i.tagName||"div";a=a.toLowerCase();const h=f(o,a);if(i.isButton){a==="button"&&(h.type="button");let{title:d}=i;const{ariaLabel:u}=i;typeof t.options[s+"Title"]=="string"&&(d=t.options[s+"Title"]),d&&(h.title=d);const m=u||d;m&&h.setAttribute("aria-label",m)}h.innerHTML=St(n),i.onInit&&i.onInit(h,t),i.onClick&&(h.onclick=d=>{typeof i.onClick=="string"?t[i.onClick]():typeof i.onClick=="function"&&i.onClick(d,h,t)});const l=i.appendTo||"bar";let c=t.element;l==="bar"?(t.topBar||(t.topBar=f("pswp__top-bar pswp__hide-on-close","div",t.scrollWrap)),c=t.topBar):(h.classList.add("pswp__hide-on-close"),l==="wrapper"&&(c=t.scrollWrap)),(e=c)===null||e===void 0||e.appendChild(t.applyFilters("uiElement",h,i))}}function H(r,t,i){r.classList.add("pswp__button--arrow"),r.setAttribute("aria-controls","pswp__items"),t.on("change",()=>{t.options.loop||(i?r.disabled=!(t.currIndex0))})}const bt={name:"arrowPrev",className:"pswp__button--arrow--prev",title:"Previous",order:10,isButton:!0,appendTo:"wrapper",html:{isCustomSVG:!0,size:60,inner:'',outlineID:"pswp__icn-arrow"},onClick:"prev",onInit:H},It={name:"arrowNext",className:"pswp__button--arrow--next",title:"Next",order:11,isButton:!0,appendTo:"wrapper",html:{isCustomSVG:!0,size:60,inner:'',outlineID:"pswp__icn-arrow"},onClick:"next",onInit:(r,t)=>{H(r,t,!0)}},At={name:"close",title:"Close",order:20,isButton:!0,html:{isCustomSVG:!0,inner:'',outlineID:"pswp__icn-close"},onClick:"close"},Lt={name:"zoom",title:"Zoom",order:10,isButton:!0,html:{isCustomSVG:!0,inner:'',outlineID:"pswp__icn-zoom"},onClick:"toggleZoom"},Ct={name:"preloader",appendTo:"bar",order:7,html:{isCustomSVG:!0,inner:'',outlineID:"pswp__icn-loading"},onInit:(r,t)=>{let i,e=null;const s=(a,h)=>{r.classList.toggle("pswp__preloader--"+a,h)},n=a=>{i!==a&&(i=a,s("active",a))},o=()=>{var a;if(!((a=t.currSlide)!==null&&a!==void 0&&a.content.isLoading())){n(!1),e&&(clearTimeout(e),e=null);return}e||(e=setTimeout(()=>{var h;n(!!(!((h=t.currSlide)===null||h===void 0)&&h.content.isLoading())),e=null},t.options.preloaderDelay))};t.on("change",o),t.on("loadComplete",a=>{t.currSlide===a.slide&&o()}),t.ui&&(t.ui.updatePreloaderVisibility=o)}},Tt={name:"counter",order:5,onInit:(r,t)=>{t.on("change",()=>{r.innerText=t.currIndex+1+t.options.indexIndicatorSep+t.getNumItems()})}};function D(r,t){r.classList.toggle("pswp--zoomed-in",t)}class zt{constructor(t){this.pswp=t,this.isRegistered=!1,this.uiElementsData=[],this.items=[],this.updatePreloaderVisibility=()=>{},this._lastUpdatedZoomLevel=void 0}init(){const{pswp:t}=this;this.isRegistered=!1,this.uiElementsData=[At,bt,It,Lt,Ct,Tt],t.dispatch("uiRegister"),this.uiElementsData.sort((i,e)=>(i.order||0)-(e.order||0)),this.items=[],this.isRegistered=!0,this.uiElementsData.forEach(i=>{this.registerElement(i)}),t.on("change",()=>{var i;(i=t.element)===null||i===void 0||i.classList.toggle("pswp--one-slide",t.getNumItems()===1)}),t.on("zoomPanUpdate",()=>this._onZoomPanUpdate())}registerElement(t){this.isRegistered?this.items.push(new xt(this.pswp,t)):this.uiElementsData.push(t)}_onZoomPanUpdate(){const{template:t,currSlide:i,options:e}=this.pswp;if(this.pswp.opener.isClosing||!t||!i)return;let{currZoomLevel:s}=i;if(this.pswp.opener.isOpen||(s=i.zoomLevels.initial),s===this._lastUpdatedZoomLevel)return;this._lastUpdatedZoomLevel=s;const n=i.zoomLevels.initial-i.zoomLevels.secondary;if(Math.abs(n)<.01||!i.isZoomable()){D(t,!1),t.classList.remove("pswp--zoom-allowed");return}t.classList.add("pswp--zoom-allowed");const o=s===i.zoomLevels.initial?i.zoomLevels.secondary:i.zoomLevels.initial;D(t,o<=s),(e.imageClickAction==="zoom"||e.imageClickAction==="zoom-or-close")&&t.classList.add("pswp--click-to-zoom")}}function Et(r){const t=r.getBoundingClientRect();return{x:t.left,y:t.top,w:t.width}}function Ot(r,t,i){const e=r.getBoundingClientRect(),s=e.width/t,n=e.height/i,o=s>n?s:n,a=(e.width-t*o)/2,h=(e.height-i*o)/2,l={x:e.left+a,y:e.top+h,w:t*o};return l.innerRect={w:e.width,h:e.height,x:a,y:h},l}function Zt(r,t,i){const e=i.dispatch("thumbBounds",{index:r,itemData:t,instance:i});if(e.thumbBounds)return e.thumbBounds;const{element:s}=t;let n,o;if(s&&i.options.thumbSelector!==!1){const a=i.options.thumbSelector||"img";o=s.matches(a)?s:s.querySelector(a)}return o=i.applyFilters("thumbEl",o,t,r),o&&(t.thumbCropped?n=Ot(o,t.width||t.w||0,t.height||t.h||0):n=Et(o)),i.applyFilters("thumbBounds",n,t,r)}class Dt{constructor(t,i){this.type=t,this.defaultPrevented=!1,i&&Object.assign(this,i)}preventDefault(){this.defaultPrevented=!0}}class Mt{constructor(){this._listeners={},this._filters={},this.pswp=void 0,this.options=void 0}addFilter(t,i,e=100){var s,n,o;this._filters[t]||(this._filters[t]=[]),(s=this._filters[t])===null||s===void 0||s.push({fn:i,priority:e}),(n=this._filters[t])===null||n===void 0||n.sort((a,h)=>a.priority-h.priority),(o=this.pswp)===null||o===void 0||o.addFilter(t,i,e)}removeFilter(t,i){this._filters[t]&&(this._filters[t]=this._filters[t].filter(e=>e.fn!==i)),this.pswp&&this.pswp.removeFilter(t,i)}applyFilters(t,...i){var e;return(e=this._filters[t])===null||e===void 0||e.forEach(s=>{i[0]=s.fn.apply(this,i)}),i[0]}on(t,i){var e,s;this._listeners[t]||(this._listeners[t]=[]),(e=this._listeners[t])===null||e===void 0||e.push(i),(s=this.pswp)===null||s===void 0||s.on(t,i)}off(t,i){var e;this._listeners[t]&&(this._listeners[t]=this._listeners[t].filter(s=>i!==s)),(e=this.pswp)===null||e===void 0||e.off(t,i)}dispatch(t,i){var e;if(this.pswp)return this.pswp.dispatch(t,i);const s=new Dt(t,i);return(e=this._listeners[t])===null||e===void 0||e.forEach(n=>{n.call(this,s)}),s}}class Rt{constructor(t,i){if(this.element=f("pswp__img pswp__img--placeholder",t?"img":"div",i),t){const e=this.element;e.decoding="async",e.alt="",e.src=t,e.setAttribute("role","presentation")}this.element.setAttribute("aria-hidden","true")}setDisplayedSize(t,i){this.element&&(this.element.tagName==="IMG"?(L(this.element,250,"auto"),this.element.style.transformOrigin="0 0",this.element.style.transform=b(0,0,t/250)):L(this.element,t,i))}destroy(){var t;(t=this.element)!==null&&t!==void 0&&t.parentNode&&this.element.remove(),this.element=null}}class Ft{constructor(t,i,e){this.instance=i,this.data=t,this.index=e,this.element=void 0,this.placeholder=void 0,this.slide=void 0,this.displayedImageWidth=0,this.displayedImageHeight=0,this.width=Number(this.data.w)||Number(this.data.width)||0,this.height=Number(this.data.h)||Number(this.data.height)||0,this.isAttached=!1,this.hasSlide=!1,this.isDecoding=!1,this.state=_.IDLE,this.data.type?this.type=this.data.type:this.data.src?this.type="image":this.type="html",this.instance.dispatch("contentInit",{content:this})}removePlaceholder(){this.placeholder&&!this.keepPlaceholder()&&setTimeout(()=>{this.placeholder&&(this.placeholder.destroy(),this.placeholder=void 0)},1e3)}load(t,i){if(this.slide&&this.usePlaceholder())if(this.placeholder){const e=this.placeholder.element;e&&!e.parentElement&&this.slide.container.prepend(e)}else{const e=this.instance.applyFilters("placeholderSrc",this.data.msrc&&this.slide.isFirstSlide?this.data.msrc:!1,this);this.placeholder=new Rt(e,this.slide.container)}this.element&&!i||this.instance.dispatch("contentLoad",{content:this,isLazy:t}).defaultPrevented||(this.isImageContent()?(this.element=f("pswp__img","img"),this.displayedImageWidth&&this.loadImage(t)):(this.element=f("pswp__content","div"),this.element.innerHTML=this.data.html||""),i&&this.slide&&this.slide.updateContentSize(!0))}loadImage(t){var i,e;if(!this.isImageContent()||!this.element||this.instance.dispatch("contentLoadImage",{content:this,isLazy:t}).defaultPrevented)return;const s=this.element;this.updateSrcsetSizes(),this.data.srcset&&(s.srcset=this.data.srcset),s.src=(i=this.data.src)!==null&&i!==void 0?i:"",s.alt=(e=this.data.alt)!==null&&e!==void 0?e:"",this.state=_.LOADING,s.complete?this.onLoaded():(s.onload=()=>{this.onLoaded()},s.onerror=()=>{this.onError()})}setSlide(t){this.slide=t,this.hasSlide=!0,this.instance=t.pswp}onLoaded(){this.state=_.LOADED,this.slide&&this.element&&(this.instance.dispatch("loadComplete",{slide:this.slide,content:this}),this.slide.isActive&&this.slide.heavyAppended&&!this.element.parentNode&&(this.append(),this.slide.updateContentSize(!0)),(this.state===_.LOADED||this.state===_.ERROR)&&this.removePlaceholder())}onError(){this.state=_.ERROR,this.slide&&(this.displayError(),this.instance.dispatch("loadComplete",{slide:this.slide,isError:!0,content:this}),this.instance.dispatch("loadError",{slide:this.slide,content:this}))}isLoading(){return this.instance.applyFilters("isContentLoading",this.state===_.LOADING,this)}isError(){return this.state===_.ERROR}isImageContent(){return this.type==="image"}setDisplayedSize(t,i){if(this.element&&(this.placeholder&&this.placeholder.setDisplayedSize(t,i),!this.instance.dispatch("contentResize",{content:this,width:t,height:i}).defaultPrevented&&(L(this.element,t,i),this.isImageContent()&&!this.isError()))){const e=!this.displayedImageWidth&&t;this.displayedImageWidth=t,this.displayedImageHeight=i,e?this.loadImage(!1):this.updateSrcsetSizes(),this.slide&&this.instance.dispatch("imageSizeChange",{slide:this.slide,width:t,height:i,content:this})}}isZoomable(){return this.instance.applyFilters("isContentZoomable",this.isImageContent()&&this.state!==_.ERROR,this)}updateSrcsetSizes(){if(!this.isImageContent()||!this.element||!this.data.srcset)return;const t=this.element,i=this.instance.applyFilters("srcsetSizesWidth",this.displayedImageWidth,this);(!t.dataset.largestUsedSize||i>parseInt(t.dataset.largestUsedSize,10))&&(t.sizes=i+"px",t.dataset.largestUsedSize=String(i))}usePlaceholder(){return this.instance.applyFilters("useContentPlaceholder",this.isImageContent(),this)}lazyLoad(){this.instance.dispatch("contentLazyLoad",{content:this}).defaultPrevented||this.load(!0)}keepPlaceholder(){return this.instance.applyFilters("isKeepingPlaceholder",this.isLoading(),this)}destroy(){this.hasSlide=!1,this.slide=void 0,!this.instance.dispatch("contentDestroy",{content:this}).defaultPrevented&&(this.remove(),this.placeholder&&(this.placeholder.destroy(),this.placeholder=void 0),this.isImageContent()&&this.element&&(this.element.onload=null,this.element.onerror=null,this.element=void 0))}displayError(){if(this.slide){var t,i;let e=f("pswp__error-msg","div");e.innerText=(t=(i=this.instance.options)===null||i===void 0?void 0:i.errorMsg)!==null&&t!==void 0?t:"",e=this.instance.applyFilters("contentErrorElement",e,this),this.element=f("pswp__content pswp__error-msg-container","div"),this.element.appendChild(e),this.slide.container.innerText="",this.slide.container.appendChild(this.element),this.slide.updateContentSize(!0),this.removePlaceholder()}}append(){if(this.isAttached||!this.element)return;if(this.isAttached=!0,this.state===_.ERROR){this.displayError();return}if(this.instance.dispatch("contentAppend",{content:this}).defaultPrevented)return;const t="decode"in this.element;this.isImageContent()?t&&this.slide&&(!this.slide.isActive||C())?(this.isDecoding=!0,this.element.decode().catch(()=>{}).finally(()=>{this.isDecoding=!1,this.appendImage()})):this.appendImage():this.slide&&!this.element.parentNode&&this.slide.container.appendChild(this.element)}activate(){this.instance.dispatch("contentActivate",{content:this}).defaultPrevented||!this.slide||(this.isImageContent()&&this.isDecoding&&!C()?this.appendImage():this.isError()&&this.load(!1,!0),this.slide.holderElement&&this.slide.holderElement.setAttribute("aria-hidden","false"))}deactivate(){this.instance.dispatch("contentDeactivate",{content:this}),this.slide&&this.slide.holderElement&&this.slide.holderElement.setAttribute("aria-hidden","true")}remove(){this.isAttached=!1,!this.instance.dispatch("contentRemove",{content:this}).defaultPrevented&&(this.element&&this.element.parentNode&&this.element.remove(),this.placeholder&&this.placeholder.element&&this.placeholder.element.remove())}appendImage(){this.isAttached&&(this.instance.dispatch("contentAppendImage",{content:this}).defaultPrevented||(this.slide&&this.element&&!this.element.parentNode&&this.slide.container.appendChild(this.element),(this.state===_.LOADED||this.state===_.ERROR)&&this.removePlaceholder()))}}const Bt=5;function W(r,t,i){const e=t.createContentFromData(r,i);let s;const{options:n}=t;if(n){s=new k(n,r,-1);let o;t.pswp?o=t.pswp.viewportSize:o=B(n,t);const a=N(n,o,r,i);s.update(e.width,e.height,a)}return e.lazyLoad(),s&&e.setDisplayedSize(Math.ceil(e.width*s.initial),Math.ceil(e.height*s.initial)),e}function Nt(r,t){const i=t.getItemData(r);if(!t.dispatch("lazyLoadSlide",{index:r,itemData:i}).defaultPrevented)return W(i,t,r)}class kt{constructor(t){this.pswp=t,this.limit=Math.max(t.options.preload[0]+t.options.preload[1]+1,Bt),this._cachedItems=[]}updateLazy(t){const{pswp:i}=this;if(i.dispatch("lazyLoad").defaultPrevented)return;const{preload:e}=i.options,s=t===void 0?!0:t>=0;let n;for(n=0;n<=e[1];n++)this.loadSlideByIndex(i.currIndex+(s?n:-n));for(n=1;n<=e[0];n++)this.loadSlideByIndex(i.currIndex+(s?-n:n))}loadSlideByIndex(t){const i=this.pswp.getLoopedIndex(t);let e=this.getContentByIndex(i);e||(e=Nt(i,this.pswp),e&&this.addToCache(e))}getContentBySlide(t){let i=this.getContentByIndex(t.index);return i||(i=this.pswp.createContentFromData(t.data,t.index),this.addToCache(i)),i.setSlide(t),i}addToCache(t){if(this.removeByIndex(t.index),this._cachedItems.push(t),this._cachedItems.length>this.limit){const i=this._cachedItems.findIndex(e=>!e.isAttached&&!e.hasSlide);i!==-1&&this._cachedItems.splice(i,1)[0].destroy()}}removeByIndex(t){const i=this._cachedItems.findIndex(e=>e.index===t);i!==-1&&this._cachedItems.splice(i,1)}getContentByIndex(t){return this._cachedItems.find(i=>i.index===t)}destroy(){this._cachedItems.forEach(t=>t.destroy()),this._cachedItems=[]}}class Ht extends Mt{getNumItems(){var t;let i=0;const e=(t=this.options)===null||t===void 0?void 0:t.dataSource;e&&"length"in e?i=e.length:e&&"gallery"in e&&(e.items||(e.items=this._getGalleryDOMElements(e.gallery)),e.items&&(i=e.items.length));const s=this.dispatch("numItems",{dataSource:e,numItems:i});return this.applyFilters("numItems",s.numItems,e)}createContentFromData(t,i){return new Ft(t,this,i)}getItemData(t){var i;const e=(i=this.options)===null||i===void 0?void 0:i.dataSource;let s={};Array.isArray(e)?s=e[t]:e&&"gallery"in e&&(e.items||(e.items=this._getGalleryDOMElements(e.gallery)),s=e.items[t]);let n=s;n instanceof Element&&(n=this._domElementToItemData(n));const o=this.dispatch("itemData",{itemData:n||{},index:t});return this.applyFilters("itemData",o.itemData,t)}_getGalleryDOMElements(t){var i,e;return(i=this.options)!==null&&i!==void 0&&i.children||(e=this.options)!==null&&e!==void 0&&e.childSelector?K(this.options.children,this.options.childSelector,t)||[]:[t]}_domElementToItemData(t){const i={element:t},e=t.tagName==="A"?t:t.querySelector("a");if(e){i.src=e.dataset.pswpSrc||e.href,e.dataset.pswpSrcset&&(i.srcset=e.dataset.pswpSrcset),i.width=e.dataset.pswpWidth?parseInt(e.dataset.pswpWidth,10):0,i.height=e.dataset.pswpHeight?parseInt(e.dataset.pswpHeight,10):0,i.w=i.width,i.h=i.height,e.dataset.pswpType&&(i.type=e.dataset.pswpType);const n=t.querySelector("img");if(n){var s;i.msrc=n.currentSrc||n.src,i.alt=(s=n.getAttribute("alt"))!==null&&s!==void 0?s:""}(e.dataset.pswpCropped||e.dataset.cropped)&&(i.thumbCropped=!0)}return this.applyFilters("domItemData",i,t,e)}lazyLoadData(t,i){return W(t,this,i)}}const P=.003;class Wt{constructor(t){this.pswp=t,this.isClosed=!0,this.isOpen=!1,this.isClosing=!1,this.isOpening=!1,this._duration=void 0,this._useAnimation=!1,this._croppedZoom=!1,this._animateRootOpacity=!1,this._animateBgOpacity=!1,this._placeholder=void 0,this._opacityElement=void 0,this._cropContainer1=void 0,this._cropContainer2=void 0,this._thumbBounds=void 0,this._prepareOpen=this._prepareOpen.bind(this),t.on("firstZoomPan",this._prepareOpen)}open(){this._prepareOpen(),this._start()}close(){if(this.isClosed||this.isClosing||this.isOpening)return;const t=this.pswp.currSlide;this.isOpen=!1,this.isOpening=!1,this.isClosing=!0,this._duration=this.pswp.options.hideAnimationDuration,t&&t.currZoomLevel*t.width>=this.pswp.options.maxWidthToAnimate&&(this._duration=0),this._applyStartProps(),setTimeout(()=>{this._start()},this._croppedZoom?30:0)}_prepareOpen(){if(this.pswp.off("firstZoomPan",this._prepareOpen),!this.isOpening){const t=this.pswp.currSlide;this.isOpening=!0,this.isClosing=!1,this._duration=this.pswp.options.showAnimationDuration,t&&t.zoomLevels.initial*t.width>=this.pswp.options.maxWidthToAnimate&&(this._duration=0),this._applyStartProps()}}_applyStartProps(){const{pswp:t}=this,i=this.pswp.currSlide,{options:e}=t;if(e.showHideAnimationType==="fade"?(e.showHideOpacity=!0,this._thumbBounds=void 0):e.showHideAnimationType==="none"?(e.showHideOpacity=!1,this._duration=0,this._thumbBounds=void 0):this.isOpening&&t._initialThumbBounds?this._thumbBounds=t._initialThumbBounds:this._thumbBounds=this.pswp.getThumbBounds(),this._placeholder=i==null?void 0:i.getPlaceholderElement(),t.animations.stopAll(),this._useAnimation=!!(this._duration&&this._duration>50),this._animateZoom=!!this._thumbBounds&&(i==null?void 0:i.content.usePlaceholder())&&(!this.isClosing||!t.mainScroll.isShifted()),!this._animateZoom)this._animateRootOpacity=!0,this.isOpening&&i&&(i.zoomAndPanToInitial(),i.applyCurrentZoomPan());else{var s;this._animateRootOpacity=(s=e.showHideOpacity)!==null&&s!==void 0?s:!1}if(this._animateBgOpacity=!this._animateRootOpacity&&this.pswp.options.bgOpacity>P,this._opacityElement=this._animateRootOpacity?t.element:t.bg,!this._useAnimation){this._duration=0,this._animateZoom=!1,this._animateBgOpacity=!1,this._animateRootOpacity=!0,this.isOpening&&(t.element&&(t.element.style.opacity=String(P)),t.applyBgOpacity(1));return}if(this._animateZoom&&this._thumbBounds&&this._thumbBounds.innerRect){var n;this._croppedZoom=!0,this._cropContainer1=this.pswp.container,this._cropContainer2=(n=this.pswp.currSlide)===null||n===void 0?void 0:n.holderElement,t.container&&(t.container.style.overflow="hidden",t.container.style.width=t.viewportSize.x+"px")}else this._croppedZoom=!1;this.isOpening?(this._animateRootOpacity?(t.element&&(t.element.style.opacity=String(P)),t.applyBgOpacity(1)):(this._animateBgOpacity&&t.bg&&(t.bg.style.opacity=String(P)),t.element&&(t.element.style.opacity="1")),this._animateZoom&&(this._setClosedStateZoomPan(),this._placeholder&&(this._placeholder.style.willChange="transform",this._placeholder.style.opacity=String(P)))):this.isClosing&&(t.mainScroll.itemHolders[0]&&(t.mainScroll.itemHolders[0].el.style.display="none"),t.mainScroll.itemHolders[2]&&(t.mainScroll.itemHolders[2].el.style.display="none"),this._croppedZoom&&t.mainScroll.x!==0&&(t.mainScroll.resetPosition(),t.mainScroll.resize()))}_start(){this.isOpening&&this._useAnimation&&this._placeholder&&this._placeholder.tagName==="IMG"?new Promise(t=>{let i=!1,e=!0;q(this._placeholder).finally(()=>{i=!0,e||t(!0)}),setTimeout(()=>{e=!1,i&&t(!0)},50),setTimeout(t,250)}).finally(()=>this._initiate()):this._initiate()}_initiate(){var t,i;(t=this.pswp.element)===null||t===void 0||t.style.setProperty("--pswp-transition-duration",this._duration+"ms"),this.pswp.dispatch(this.isOpening?"openingAnimationStart":"closingAnimationStart"),this.pswp.dispatch("initialZoom"+(this.isOpening?"In":"Out")),(i=this.pswp.element)===null||i===void 0||i.classList.toggle("pswp--ui-visible",this.isOpening),this.isOpening?(this._placeholder&&(this._placeholder.style.opacity="1"),this._animateToOpenState()):this.isClosing&&this._animateToClosedState(),this._useAnimation||this._onAnimationComplete()}_onAnimationComplete(){const{pswp:t}=this;if(this.isOpen=this.isOpening,this.isClosed=this.isClosing,this.isOpening=!1,this.isClosing=!1,t.dispatch(this.isOpen?"openingAnimationEnd":"closingAnimationEnd"),t.dispatch("initialZoom"+(this.isOpen?"InEnd":"OutEnd")),this.isClosed)t.destroy();else if(this.isOpen){var i;this._animateZoom&&t.container&&(t.container.style.overflow="visible",t.container.style.width="100%"),(i=t.currSlide)===null||i===void 0||i.applyCurrentZoomPan()}}_animateToOpenState(){const{pswp:t}=this;this._animateZoom&&(this._croppedZoom&&this._cropContainer1&&this._cropContainer2&&(this._animateTo(this._cropContainer1,"transform","translate3d(0,0,0)"),this._animateTo(this._cropContainer2,"transform","none")),t.currSlide&&(t.currSlide.zoomAndPanToInitial(),this._animateTo(t.currSlide.container,"transform",t.currSlide.getCurrentTransform()))),this._animateBgOpacity&&t.bg&&this._animateTo(t.bg,"opacity",String(t.options.bgOpacity)),this._animateRootOpacity&&t.element&&this._animateTo(t.element,"opacity","1")}_animateToClosedState(){const{pswp:t}=this;this._animateZoom&&this._setClosedStateZoomPan(!0),this._animateBgOpacity&&t.bgOpacity>.01&&t.bg&&this._animateTo(t.bg,"opacity","0"),this._animateRootOpacity&&t.element&&this._animateTo(t.element,"opacity","0")}_setClosedStateZoomPan(t){if(!this._thumbBounds)return;const{pswp:i}=this,{innerRect:e}=this._thumbBounds,{currSlide:s,viewportSize:n}=i;if(this._croppedZoom&&e&&this._cropContainer1&&this._cropContainer2){const o=-n.x+(this._thumbBounds.x-e.x)+e.w,a=-n.y+(this._thumbBounds.y-e.y)+e.h,h=n.x-e.w,l=n.y-e.h;t?(this._animateTo(this._cropContainer1,"transform",b(o,a)),this._animateTo(this._cropContainer2,"transform",b(h,l))):(y(this._cropContainer1,o,a),y(this._cropContainer2,h,l))}s&&(p(s.pan,e||this._thumbBounds),s.currZoomLevel=this._thumbBounds.w/s.width,t?this._animateTo(s.container,"transform",s.getCurrentTransform()):s.applyCurrentZoomPan())}_animateTo(t,i,e){if(!this._duration){t.style[i]=e;return}const{animations:s}=this.pswp,n={duration:this._duration,easing:this.pswp.options.easing,onComplete:()=>{s.activeAnimations.length||this._onAnimationComplete()},target:t};n[i]=e,s.startTransition(n)}}const Vt={allowPanToNext:!0,spacing:.1,loop:!0,pinchToClose:!0,closeOnVerticalDrag:!0,hideAnimationDuration:333,showAnimationDuration:333,zoomAnimationDuration:333,escKey:!0,arrowKeys:!0,trapFocus:!0,returnFocus:!0,maxWidthToAnimate:4e3,clickToCloseNonZoomable:!0,imageClickAction:"zoom-or-close",bgClickAction:"close",tapAction:"toggle-controls",doubleTapAction:"zoom",indexIndicatorSep:" / ",preloaderDelay:2e3,bgOpacity:.8,index:0,errorMsg:"The image cannot be loaded",preload:[1,2],easing:"cubic-bezier(.4,0,.22,1)"};class $t extends Ht{constructor(t){super(),this.options=this._prepareOptions(t||{}),this.offset={x:0,y:0},this._prevViewportSize={x:0,y:0},this.viewportSize={x:0,y:0},this.bgOpacity=1,this.currIndex=0,this.potentialIndex=0,this.isOpen=!1,this.isDestroying=!1,this.hasMouse=!1,this._initialItemData={},this._initialThumbBounds=void 0,this.topBar=void 0,this.element=void 0,this.template=void 0,this.container=void 0,this.scrollWrap=void 0,this.currSlide=void 0,this.events=new X,this.animations=new wt,this.mainScroll=new dt(this),this.gestures=new lt(this),this.opener=new Wt(this),this.keyboard=new ut(this),this.contentLoader=new kt(this)}init(){if(this.isOpen||this.isDestroying)return!1;this.isOpen=!0,this.dispatch("init"),this.dispatch("beforeOpen"),this._createMainStructure();let t="pswp--open";return this.gestures.supportsTouch&&(t+=" pswp--touch"),this.options.mainClass&&(t+=" "+this.options.mainClass),this.element&&(this.element.className+=" "+t),this.currIndex=this.options.index||0,this.potentialIndex=this.currIndex,this.dispatch("firstUpdate"),this.scrollWheel=new Pt(this),(Number.isNaN(this.currIndex)||this.currIndex<0||this.currIndex>=this.getNumItems())&&(this.currIndex=0),this.gestures.supportsTouch||this.mouseDetected(),this.updateSize(),this.offset.y=window.pageYOffset,this._initialItemData=this.getItemData(this.currIndex),this.dispatch("gettingData",{index:this.currIndex,data:this._initialItemData,slide:void 0}),this._initialThumbBounds=this.getThumbBounds(),this.dispatch("initialLayout"),this.on("openingAnimationEnd",()=>{const{itemHolders:i}=this.mainScroll;i[0]&&(i[0].el.style.display="block",this.setContent(i[0],this.currIndex-1)),i[2]&&(i[2].el.style.display="block",this.setContent(i[2],this.currIndex+1)),this.appendHeavy(),this.contentLoader.updateLazy(),this.events.add(window,"resize",this._handlePageResize.bind(this)),this.events.add(window,"scroll",this._updatePageScrollOffset.bind(this)),this.dispatch("bindEvents")}),this.mainScroll.itemHolders[1]&&this.setContent(this.mainScroll.itemHolders[1],this.currIndex),this.dispatch("change"),this.opener.open(),this.dispatch("afterInit"),!0}getLoopedIndex(t){const i=this.getNumItems();return this.options.loop&&(t>i-1&&(t-=i),t<0&&(t+=i)),I(t,0,i-1)}appendHeavy(){this.mainScroll.itemHolders.forEach(t=>{var i;(i=t.slide)===null||i===void 0||i.appendHeavy()})}goTo(t){this.mainScroll.moveIndexBy(this.getLoopedIndex(t)-this.potentialIndex)}next(){this.goTo(this.potentialIndex+1)}prev(){this.goTo(this.potentialIndex-1)}zoomTo(...t){var i;(i=this.currSlide)===null||i===void 0||i.zoomTo(...t)}toggleZoom(){var t;(t=this.currSlide)===null||t===void 0||t.toggleZoom()}close(){!this.opener.isOpen||this.isDestroying||(this.isDestroying=!0,this.dispatch("close"),this.events.removeAll(),this.opener.close())}destroy(){var t;if(!this.isDestroying){this.options.showHideAnimationType="none",this.close();return}this.dispatch("destroy"),this._listeners={},this.scrollWrap&&(this.scrollWrap.ontouchmove=null,this.scrollWrap.ontouchend=null),(t=this.element)===null||t===void 0||t.remove(),this.mainScroll.itemHolders.forEach(i=>{var e;(e=i.slide)===null||e===void 0||e.destroy()}),this.contentLoader.destroy(),this.events.removeAll()}refreshSlideContent(t){this.contentLoader.removeByIndex(t),this.mainScroll.itemHolders.forEach((i,e)=>{var s,n;let o=((s=(n=this.currSlide)===null||n===void 0?void 0:n.index)!==null&&s!==void 0?s:0)-1+e;if(this.canLoop()&&(o=this.getLoopedIndex(o)),o===t&&(this.setContent(i,t,!0),e===1)){var a;this.currSlide=i.slide,(a=i.slide)===null||a===void 0||a.setIsActive(!0)}}),this.dispatch("change")}setContent(t,i,e){if(this.canLoop()&&(i=this.getLoopedIndex(i)),t.slide){if(t.slide.index===i&&!e)return;t.slide.destroy(),t.slide=void 0}if(!this.canLoop()&&(i<0||i>=this.getNumItems()))return;const s=this.getItemData(i);t.slide=new j(s,i,this),i===this.currIndex&&(this.currSlide=t.slide),t.slide.append(t.el)}getViewportCenterPoint(){return{x:this.viewportSize.x/2,y:this.viewportSize.y/2}}updateSize(t){if(this.isDestroying)return;const i=B(this.options,this);!t&&x(i,this._prevViewportSize)||(p(this._prevViewportSize,i),this.dispatch("beforeResize"),p(this.viewportSize,this._prevViewportSize),this._updatePageScrollOffset(),this.dispatch("viewportSize"),this.mainScroll.resize(this.opener.isOpen),!this.hasMouse&&window.matchMedia("(any-hover: hover)").matches&&this.mouseDetected(),this.dispatch("resize"))}applyBgOpacity(t){this.bgOpacity=Math.max(t,0),this.bg&&(this.bg.style.opacity=String(this.bgOpacity*this.options.bgOpacity))}mouseDetected(){if(!this.hasMouse){var t;this.hasMouse=!0,(t=this.element)===null||t===void 0||t.classList.add("pswp--has_mouse")}}_handlePageResize(){this.updateSize(),/iPhone|iPad|iPod/i.test(window.navigator.userAgent)&&setTimeout(()=>{this.updateSize()},500)}_updatePageScrollOffset(){this.setScrollOffset(0,window.pageYOffset)}setScrollOffset(t,i){this.offset.x=t,this.offset.y=i,this.dispatch("updateScrollOffset")}_createMainStructure(){this.element=f("pswp","div"),this.element.setAttribute("tabindex","-1"),this.element.setAttribute("role","dialog"),this.template=this.element,this.bg=f("pswp__bg","div",this.element),this.scrollWrap=f("pswp__scroll-wrap","section",this.element),this.container=f("pswp__container","div",this.scrollWrap),this.scrollWrap.setAttribute("aria-roledescription","carousel"),this.container.setAttribute("aria-live","off"),this.container.setAttribute("id","pswp__items"),this.mainScroll.appendHolders(),this.ui=new zt(this),this.ui.init(),(this.options.appendToEl||document.body).appendChild(this.element)}getThumbBounds(){return Zt(this.currIndex,this.currSlide?this.currSlide.data:this._initialItemData,this)}canLoop(){return this.options.loop&&this.getNumItems()>2}_prepareOptions(t){return window.matchMedia("(prefers-reduced-motion), (update: slow)").matches&&(t.showHideAnimationType="none",t.zoomAnimationDuration=0),{...Vt,...t}}}export{$t as default}; diff --git a/assets/pluginDevelopGroup-jTY5h0OX.js b/assets/pluginDevelopGroup-jTY5h0OX.js new file mode 100644 index 000000000..951f3f229 --- /dev/null +++ b/assets/pluginDevelopGroup-jTY5h0OX.js @@ -0,0 +1 @@ +const p="/img/pluginDevelopGroup.png";export{p as _}; diff --git a/assets/postmanScript-vSQGq89I.js b/assets/postmanScript-vSQGq89I.js new file mode 100644 index 000000000..e05826d30 --- /dev/null +++ b/assets/postmanScript-vSQGq89I.js @@ -0,0 +1 @@ +const s="/img/2023.2.3/postmanApiKey.png",o="/img/2023.2.3/createWorkspace.png",p="/img/2023.2.3/showWorkspaceId.png",t="/img/2023.2.3/workspaceInfo.png",n="/img/2023.2.3/resetEnvironmentValue.png",i="/img/2023.2.3/postmanScript.png";export{i as _,s as a,o as b,p as c,t as d,n as e}; diff --git a/assets/postmanSync.html-1JRSAgGf.js b/assets/postmanSync.html-1JRSAgGf.js new file mode 100644 index 000000000..16e3624a6 --- /dev/null +++ b/assets/postmanSync.html-1JRSAgGf.js @@ -0,0 +1 @@ +import{_ as p,a as c,b as m,c as d,d as u,e as h}from"./postmanScript-vSQGq89I.js";import{_ as g,r as o,o as _,c as y,a as t,d as e,b as n,w as i,e as k}from"./app-8OZtYazS.js";const f="/img/2023.2.3/postmanSync.png",v={},P=t("h1",{id:"postman-集成",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#postman-集成"},[t("span",null,"Postman 集成")])],-1),I=t("div",{class:"hint-container tip"},[t("p",{class:"hint-container-title"},"提示"),t("p",null,[e("由于历史原因,历史保存的持久化数据丢失了一部分字段,为了能够将同步至postman的数据更完整, 建议在插件postman配置中勾上"),t("code",null,"保存后同步"),e("postman选项,通过保存操作来触发同步.")]),t("p",null,"同时推荐使用该功能来同步api而不是导出")],-1),b={class:"hint-container caution"},A=t("p",{class:"hint-container-title"},"Postman API 用量问题",-1),w={href:"https://fastrequest.postman.co/billing/add-ons/overview",target:"_blank",rel:"noopener noreferrer"},C=t("strong",null,"Postman API Usage",-1),S=t("p",null,[t("img",{src:f,alt:"postmanSync",loading:"lazy"})],-1),W=t("h2",{id:"api-key",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#api-key"},[t("span",null,"Api key")])],-1),x=t("p",null,[e("Api key 用于使用 Postman 在线 API 执行一些手工行为.例如"),t("strong",null,"创建Collection"),e("、"),t("strong",null,"创建目录"),e("、"),t("strong",null,"创建 Request"),e(" 等行为.")],-1),R={href:"https://postman.co/settings/me/api-keys",target:"_blank",rel:"noopener noreferrer"},q=k('

    postmanApiKey

    WorkspaceId

    Workspace id 是 Postman 工作空间的Id. 有2中策略来创建Workspace

    1. 每个项目来区分创建1个Workspace(推荐)
    2. 创建1个Workspace表示某个公司的,不同的Collection来表示公司下面不同的项目

    获取WorkspaceId的步骤如下↓↓↓

    a. 创建一个 Workspace,已有则忽略

    createWorkspace

    b. 点击 Workspace,并点击Workspace的info图标(注意不是点击Workspace Settings)

    showWorkspaceId

    c.复制得到Workspace id

    workspaceInfo

    Initial value 与 Current value

    Environment 中变量的值包含 Initial valueCurrent value,Initial value是云端共享的,与之对应的Current value仅保留在本地. Postman中实际Request使用的是Current value.

    但是,Restful Fast Request在对 Environment 同步的时候同步的是 Initial value.

    所以如果插件中更新了 Environment 值,并且同步到了 Postman ,此时在 Postman 中执行 Request 并不会立刻使用同步的值, 而是需要在 Environment 中手工替换或者全部替换(点击Reset All).

    workspaceInfo

    前后置脚本

    ',18),z=t("p",null,[t("img",{src:p,alt:"postmanScript",loading:"lazy"})],-1),T=t("h2",{id:"注意事项",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#注意事项"},[t("span",null,"注意事项")])],-1),E=t("li",null,"推荐勾选保存后即同步到Postman,如果没有勾选,则在手动触发的时候需要先保存,再点击同步",-1),N=t("li",null,"多方协作,如果发现同一个workspace出现多个相同的collection,只需使用其中一方的collection id在配置中手动替换即可",-1),V=t("li",null,[e("多方协作,如果发现同一个collection出现多个相同的folder,只需使用其中一方的"),t("code",null,".fastRequest/collections/ROOT/模块名/类名/directory.json"),e("中的"),t("code",null,"pmFolderId"),e("属性即可")],-1),B=t("code",null,"pmRequestId",-1),L=t("code",null,"pmResponseId",-1),j=t("code",null,"rapi",-1);function D(F,K){const l=o("Badge"),a=o("ExternalLinkIcon"),s=o("RouteLink"),r=o("ColorIcon");return _(),y("div",null,[P,t("p",null,[e("版本要求: "),n(l,{text:"2023.2.3"})]),I,t("div",b,[A,t("p",null,[e("插件使用 Postman API 来同步数据,需要注意的是 Postman 同步涉及到 Postman API 的"),t("a",w,[e("用量"),n(a)]),e("问题,点击链接需要注意 "),C,e(" 这一栏,每月最多免费使用 1000次。超过额度会导致同步失败!")])]),S,W,x,t("p",null,[e("打开 "),t("a",R,[e("https://postman.co/settings/me/api-keys"),n(a)]),e(" 并登录,并执行创建.注意最好是创建一个没有有效期的Api key.")]),q,t("p",null,[e("因为语言的不同,插件并不会同步前后置脚本.所以在使用插件的时候最好把一些共用的脚本写在"),n(s,{to:"/guide/features/projectValueConfig.html"},{default:i(()=>[e("项目级别配置")]),_:1}),e("中的前后置脚本,这样子也只需要在同步到Postman以后, 在Postman中的Collection级别下写前后置脚本.")]),z,T,t("ol",null,[E,N,V,t("li",null,[e("多方协作,如果发现同一个api在postman上有2份,则可以通过修改其中一份数据的"),B,e("和"),L,e("来是他们保持统一,可以通过"),n(s,{to:"/guide/features/navigateCurrentMethodJson.html"},{default:i(()=>[n(r,{icon:"storeData"}),e(" 多窗口 Tab")]),_:1}),e("来定位存储的文件.最好的方式是通过git管理提交"),j,e("文件使api底层存储数据保持一致")])])])}const J=g(v,[["render",D],["__file","postmanSync.html.vue"]]),M=JSON.parse('{"path":"/guide/features/postmanSync.html","title":"Postman 集成","lang":"zh-CN","frontmatter":{"description":"Postman 集成 版本要求: 提示 由于历史原因,历史保存的持久化数据丢失了一部分字段,为了能够将同步至postman的数据更完整, 建议在插件postman配置中勾上保存后同步postman选项,通过保存操作来触发同步. 同时推荐使用该功能来同步api而不是导出 Postman API 用量问题 插件使用 Postman API 来同步数据,需要...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/postmanSync.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/postmanSync.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Postman 集成"}],["meta",{"property":"og:description","content":"Postman 集成 版本要求: 提示 由于历史原因,历史保存的持久化数据丢失了一部分字段,为了能够将同步至postman的数据更完整, 建议在插件postman配置中勾上保存后同步postman选项,通过保存操作来触发同步. 同时推荐使用该功能来同步api而不是导出 Postman API 用量问题 插件使用 Postman API 来同步数据,需要..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.2.3/postmanSync.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Postman 集成"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Postman 集成\\",\\"image\\":[\\"https://api-buddy.com/img/2023.2.3/postmanSync.png\\",\\"https://api-buddy.com/img/2023.2.3/postmanApiKey.png\\",\\"https://api-buddy.com/img/2023.2.3/createWorkspace.png\\",\\"https://api-buddy.com/img/2023.2.3/showWorkspaceId.png\\",\\"https://api-buddy.com/img/2023.2.3/workspaceInfo.png\\",\\"https://api-buddy.com/img/2023.2.3/resetEnvironmentValue.png\\",\\"https://api-buddy.com/img/2023.2.3/postmanScript.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Api key","slug":"api-key","link":"#api-key","children":[]},{"level":2,"title":"WorkspaceId","slug":"workspaceid","link":"#workspaceid","children":[]},{"level":2,"title":"Initial value 与 Current value","slug":"initial-value-与-current-value","link":"#initial-value-与-current-value","children":[]},{"level":2,"title":"前后置脚本","slug":"前后置脚本","link":"#前后置脚本","children":[]},{"level":2,"title":"注意事项","slug":"注意事项","link":"#注意事项","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":2.72,"words":815},"filePathRelative":"guide/features/postmanSync.md","localizedDate":"2024年5月31日","autoDesc":true}');export{J as comp,M as data}; diff --git a/assets/postmanSync.html-6xCHyMus.js b/assets/postmanSync.html-6xCHyMus.js new file mode 100644 index 000000000..3a873a8c5 --- /dev/null +++ b/assets/postmanSync.html-6xCHyMus.js @@ -0,0 +1 @@ +import{_ as c,a as p,b as d,c as m,d as u,e as h}from"./postmanScript-vSQGq89I.js";import{_ as g,r as o,o as y,c as f,a as e,d as t,b as n,w as i,e as _}from"./app-8OZtYazS.js";const k="/img/2023.2.3/postmanSync_en.png",v={},w=e("h1",{id:"postman-sync",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#postman-sync"},[e("span",null,"Postman Sync")])],-1),P=e("div",{class:"hint-container tip"},[e("p",{class:"hint-container-title"},"Tips"),e("p",null,[t("To make the data synchronised to Postman more complete, it is recommended to select the "),e("code",null,"sync after API save"),t(" option in the Postman config of the plugin then trigger the synchronization by saving the API.")]),e("p",null,"It is also recommended to use this function to synchronize the API instead of exporting")],-1),I={class:"hint-container caution"},b=e("p",{class:"hint-container-title"},"Postman API usage",-1),S={href:"https://fastrequest.postman.co/billing/add-ons/overview",target:"_blank",rel:"noopener noreferrer"},q=e("strong",null,"Postman API Usage",-1),x=e("p",null,[e("img",{src:k,alt:"postmanSync",loading:"lazy"})],-1),T=e("h2",{id:"api-key",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#api-key"},[e("span",null,"Api key")])],-1),A=e("p",null,[t("API key is used to perform manual actions using the Postman Online API. These actions include "),e("strong",null,"creating collections"),t(", "),e("strong",null,"creating directories"),t(", "),e("strong",null,"creating requests"),t(", and more.")],-1),C={href:"https://postman.co/settings/me/api-keys",target:"_blank",rel:"noopener noreferrer"},z=_('

    postmanApiKey

    WorkspaceId

    The Workspace ID is the identifier for a Postman workspace. There are 2 strategies to create a workspace.

    1. Create one workspace for each project.(Recommended)
    2. Create one workspace to represent a company, and use different collections to represent different projects within the company.

    Get WorkspaceId using the following steps↓↓↓

    1. Create a workspace (Ignore if exist)

    createWorkspace

    1. Click Workspace and click the Workspace info icon (Note that it is not click "Workspace Settings")

    showWorkspaceId

    1. Copy Workspace id

    workspaceInfo

    Initial value & Current value

    Variable in Environment contains Initial value and Current value,Initial value is shared with your team,but Current value only store in your local. Request will finally use Current value.

    Restful Fast Request in fact sync the Initial value of Environment.

    So, if the environment values are updated in the plugin and sync successfully to Postman, when executing a request, Postman will not immediately use the synchronized values. Instead, you will need to manually replace the values in the environment tab or perform a complete replacement by clicking on "Reset All".

    workspaceInfo

    Pre and Post script

    ',18),R=e("p",null,[e("img",{src:c,alt:"postmanScript",loading:"lazy"})],-1),W=e("h2",{id:"note",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#note"},[e("span",null,"Note")])],-1),N=e("li",null,'It is recommended to check the option "Sync to Postman after saving". If not checked, you need to save manually before triggering and then click on the Sync button.',-1),V=e("li",null,"For teamwork, if multiple identical collections appear in the same workspace, you only need to manually replace the collection ID in the configuration with one of them.",-1),E=e("li",null,[t("For teamwork, if multiple identical folders appear in the same collection, you can use the "),e("code",null,"pmFolderId"),t(" property in the "),e("code",null,".fastRequest/collections/ROOT/moduleName/className/directory.json"),t(" file from one of them.")],-1),j=e("code",null,"pmRequestId",-1),D=e("code",null,"pmResponseId",-1),F=e("code",null,"rapi",-1);function B(O,L){const r=o("Badge"),a=o("ExternalLinkIcon"),s=o("RouteLink"),l=o("ColorIcon");return y(),f("div",null,[w,e("p",null,[t("Version required: "),n(r,{text:"2023.2.3"})]),P,e("div",I,[b,e("p",null,[t("The plugin uses the Postman API to sync data. So it should be noted that Postman resource "),e("a",S,[t("usage"),n(a)]),t(" has a limit,click the link and pay attention to the "),q,t(" column, which can be used free of charge up to 1,000 times per month. Exceeding the quota will cause sync to fail!")])]),x,T,A,e("p",null,[t("Open "),e("a",C,[t("https://postman.co/settings/me/api-keys"),n(a)]),t(" and login, and then generate an API key. It is recommended to create an API key without an expiration date.")]),z,e("p",null,[t("Due to language differences, the plugin does not synchronize pre-request and post-request scripts. Therefore, when using the plugin, it is recommended to write common scripts in the "),n(s,{to:"/en/guide/features/projectValueConfig.html"},{default:i(()=>[t("project-level config")]),_:1}),t(". This way, after synchronizing with Postman, you only need to write pre-request and post-request scripts at the collection level in Postman.")]),R,W,e("ol",null,[N,V,E,e("li",null,[t("For teamwork, if the same API exists twice in Postman, you can ensure consistency by modifying the "),j,t(" and "),D,t(" of one of the data. You can use "),n(s,{to:"/en/guide/features/navigateCurrentMethodJson.html"},{default:i(()=>[n(l,{icon:"storeData"}),t(" Multi-tab window")]),_:1}),t(" to locate the stored file. The best way is to use Git to manage and commit the "),F,t(" files to keep the underlying storage data consistent.")])])])}const U=g(v,[["render",B],["__file","postmanSync.html.vue"]]),Z=JSON.parse('{"path":"/en/guide/features/postmanSync.html","title":"Postman Sync","lang":"en-US","frontmatter":{"description":"Postman Sync Version required: Tips To make the data synchronised to Postman more complete, it is recommended to select the sync after API save option in the Postman config of t...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/postmanSync.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/postmanSync.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Postman Sync"}],["meta",{"property":"og:description","content":"Postman Sync Version required: Tips To make the data synchronised to Postman more complete, it is recommended to select the sync after API save option in the Postman config of t..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.2.3/postmanSync_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Postman Sync"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Postman Sync\\",\\"image\\":[\\"https://api-buddy.com/img/2023.2.3/postmanSync_en.png\\",\\"https://api-buddy.com/img/2023.2.3/postmanApiKey.png\\",\\"https://api-buddy.com/img/2023.2.3/createWorkspace.png\\",\\"https://api-buddy.com/img/2023.2.3/showWorkspaceId.png\\",\\"https://api-buddy.com/img/2023.2.3/workspaceInfo.png\\",\\"https://api-buddy.com/img/2023.2.3/resetEnvironmentValue.png\\",\\"https://api-buddy.com/img/2023.2.3/postmanScript.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Api key","slug":"api-key","link":"#api-key","children":[]},{"level":2,"title":"WorkspaceId","slug":"workspaceid","link":"#workspaceid","children":[]},{"level":2,"title":"Initial value & Current value","slug":"initial-value-current-value","link":"#initial-value-current-value","children":[]},{"level":2,"title":"Pre and Post script","slug":"pre-and-post-script","link":"#pre-and-post-script","children":[]},{"level":2,"title":"Note","slug":"note","link":"#note","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.92,"words":576},"filePathRelative":"en/guide/features/postmanSync.md","localizedDate":"May 31, 2024","autoDesc":true}');export{U as comp,Z as data}; diff --git a/assets/priceAdjust.html-4b3AAlY7.js b/assets/priceAdjust.html-4b3AAlY7.js new file mode 100644 index 000000000..8b0c2771c --- /dev/null +++ b/assets/priceAdjust.html-4b3AAlY7.js @@ -0,0 +1 @@ +import{_ as o,r,o as i,c as a,a as e,d as t,b as s,e as c}from"./app-8OZtYazS.js";const p={},l=c("

    Since the introduction of subscriptions, we have not increased the pricing of the plugin. During this time, we are constantly developing new features; so far, we have had 19 versions, adding many very useful features, for example, API doc sync, and it is a very cost-effective plugin. We also lower the cost of subscriptions by up to 40% when you renew. It is our way of thanking you for your loyalty.

    However, we are at the point where we need to increase our subscription prices. The new prices will come into effect on January 1, 2023. It will be adjusted from $1/month to $1.9/month for individual use and from $2/month to $2.9/month for organization use, and the annual subscription price will be 10 times the monthly subscription price (10 months).

    Prepay at the current price for more than one year

    ",3),u={href:"https://account.jetbrains.com/licenses",target:"_blank",rel:"noopener noreferrer"},d=e("mark",null,"in advance",-1),h=e("div",{style:{"text-align":"right"}},[e("p",null,"2022-11-15 Kings")],-1);function m(g,f){const n=r("ExternalLinkIcon");return i(),a("div",null,[l,e("p",null,[t("For both new and existing customers, we are extending the maximum permissible renewal period, and you can go to "),e("a",u,[t("License page"),s(n)]),t(" to renew your subscription. There are now three years for individual subscriptions and two years for business subscriptions. While this will require an upfront payment, it will allow you to renew at the current price for more than one year "),d,t(".")]),h])}const w=o(p,[["render",m],["__file","priceAdjust.html.vue"]]),_=JSON.parse('{"path":"/en/guide/priceAdjust.html","title":"Price adjust","lang":"en-US","frontmatter":{"title":"Price adjust","icon":"restfulFastRequest","description":"Since the introduction of subscriptions, we have not increased the pricing of the plugin. During this time, we are constantly developing new features; so far, we have had 19 ver...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/priceAdjust.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/priceAdjust.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Price adjust"}],["meta",{"property":"og:description","content":"Since the introduction of subscriptions, we have not increased the pricing of the plugin. During this time, we are constantly developing new features; so far, we have had 19 ver..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Price adjust\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.73,"words":219},"filePathRelative":"en/guide/priceAdjust.md","localizedDate":"May 31, 2024","autoDesc":true}');export{w as comp,_ as data}; diff --git a/assets/priceAdjust.html-6mMtKJ6n.js b/assets/priceAdjust.html-6mMtKJ6n.js new file mode 100644 index 000000000..aa7e56089 --- /dev/null +++ b/assets/priceAdjust.html-6mMtKJ6n.js @@ -0,0 +1 @@ +import{_ as n,r,o as a,c as s,a as e,d as t,b as c}from"./app-8OZtYazS.js";const i={},l=e("p",null,"自 Restful Fast Request 推出订阅以来,我们从未提高过插件的价格,并且我们一直在不断地更新新的功能,速度相当快,甚至有些人都跟不上更新的节奏,到此为止我们一共迭代了 19 个版本,加了许多许多非常实用的功能,例如 API 文档同步,是一个性价比非常高的插件。 我们同时也为用户提供最低至六折的续费优惠(第二年八折),同时还有国内群折扣码,这也是我们感激长期使用的忠实用户的一种方式。",-1),p=e("p",null,[t("然而,我们也到了需要提高订阅价格的时间节点。新价格将于 "),e("mark",null,"2023 年 1 月 1"),t(" 日生效。个人版将从原来的$1/月调整至$1.9/月,组织版将从原来的$2/月调整至$2.9/月,年订阅价格是月订阅价格的 10 倍(按 10 个月收费)。")],-1),d=e("blockquote",null,[e("p",null,"在新价格生效前按当前价格预付订阅")],-1),u={href:"https://account.jetbrains.com/licenses",target:"_blank",rel:"noopener noreferrer"},m=e("mark",null,"提前",-1),_=e("div",{style:{"text-align":"right"}},[e("p",null,"2022-11-15 Kings")],-1);function h(g,f){const o=r("ExternalLinkIcon");return a(),s("div",null,[l,p,d,e("p",null,[t("我们为新老客户调整了预付订阅的长度限制,开发者可以前往"),e("a",u,[t("账户中心"),c(o)]),t(",按当前价格进行超过一年的"),m,t("续订。现在,个人订阅允许最多至三年,企业订阅最多至两年。")]),_])}const A=n(i,[["render",h],["__file","priceAdjust.html.vue"]]),k=JSON.parse('{"path":"/guide/priceAdjust.html","title":"价格调整","lang":"zh-CN","frontmatter":{"title":"价格调整","icon":"restfulFastRequest","description":"自 Restful Fast Request 推出订阅以来,我们从未提高过插件的价格,并且我们一直在不断地更新新的功能,速度相当快,甚至有些人都跟不上更新的节奏,到此为止我们一共迭代了 19 个版本,加了许多许多非常实用的功能,例如 API 文档同步,是一个性价比非常高的插件。 我们同时也为用户提供最低至六折的续费优惠(第二年八折),同时还有国内群折扣...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/priceAdjust.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/priceAdjust.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"价格调整"}],["meta",{"property":"og:description","content":"自 Restful Fast Request 推出订阅以来,我们从未提高过插件的价格,并且我们一直在不断地更新新的功能,速度相当快,甚至有些人都跟不上更新的节奏,到此为止我们一共迭代了 19 个版本,加了许多许多非常实用的功能,例如 API 文档同步,是一个性价比非常高的插件。 我们同时也为用户提供最低至六折的续费优惠(第二年八折),同时还有国内群折扣..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"价格调整\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.14,"words":341},"filePathRelative":"guide/priceAdjust.md","localizedDate":"2024年5月31日","autoDesc":true}');export{A as comp,k as data}; diff --git a/assets/prod-OBrTmKrB.js b/assets/prod-OBrTmKrB.js new file mode 100644 index 000000000..b03e910c9 --- /dev/null +++ b/assets/prod-OBrTmKrB.js @@ -0,0 +1,10 @@ +var tt=Object.defineProperty;var et=(i,t,e)=>t in i?tt(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e;var h=(i,t,e)=>(et(i,typeof t!="symbol"?t+"":t,e),e);import{i as k}from"./app-8OZtYazS.js";const it={LoadFail:0,BadSignature:1,BadTimestamp:2,BadSettingValue:3,BadFormat:4,UnknownSetting:5};class st extends Error{constructor(e){super(e.reason);h(this,"code");h(this,"line");this.code=e.code,this.line=e.line}}const V=/\r?\n|\r/gm;class rt{constructor(t){h(this,"writable");h(this,"readable");const e=new nt(t);this.writable=new WritableStream({write(s){e.transform(s)},close(){e.close()}}),this.readable=new ReadableStream({start(s){e.onLine=n=>s.enqueue(n),e.onClose=()=>s.close()}})}}class nt{constructor(t){h(this,"x","");h(this,"y");h(this,"onLine");h(this,"onClose");this.y=new TextDecoder(t)}transform(t){this.x+=this.y.decode(t,{stream:!0});const e=this.x.split(V);this.x=e.pop()||"";for(let s=0;simport("./srt-parser-v9RQiZsS.js"),__vite__mapDeps([0,1]))).default;break;case"ssa":case"ass":s=(await k(()=>import("./ssa-parser-tVBUaBNs.js"),__vite__mapDeps([2,1]))).default;break;default:s=(await Promise.resolve().then(function(){return St})).default}else s=e;let n;const r=i.getReader(),o=s(),a=!!(t!=null&&t.strict)||!!(t!=null&&t.errors);await o.init({strict:!1,...t,errors:a,type:e,cancel(){r.cancel(),n=o.done(!0)}});let l=1;for(;;){const{value:c,done:f}=await r.read();if(f){o.parse("",l),n=o.done(!1);break}o.parse(c,l),l++}return n}async function ot(i,t){var o,a;const e=await i;if(!e.ok||!e.body)return{metadata:{},cues:[],regions:[],errors:[void 0]};const s=e.headers.get("content-type")||"",n=(o=s.match(/text\/(.*?)(?:;|$)/))==null?void 0:o[1],r=(a=s.match(/charset=(.*?)(?:;|$)/))==null?void 0:a[1];return G(e.body,{type:n,encoding:r,...t})}async function G(i,{encoding:t="utf-8",...e}={}){const s=i.pipeThrough(new rt(t));return C(s,e)}class H extends EventTarget{constructor(e,s,n){super();h(this,"id","");h(this,"startTime");h(this,"endTime");h(this,"text");h(this,"pauseOnExit",!1);this.startTime=e,this.endTime=s,this.text=n}addEventListener(e,s,n){super.addEventListener(e,s,n)}removeEventListener(e,s,n){super.removeEventListener(e,s,n)}}const I=typeof document>"u",lt=I?H:window.VTTCue;class D extends lt{constructor(){super(...arguments);h(this,"region",null);h(this,"vertical","");h(this,"snapToLines",!0);h(this,"line","auto");h(this,"lineAlign","start");h(this,"position","auto");h(this,"positionAlign","auto");h(this,"size",100);h(this,"align","center");h(this,"style")}}class F{constructor(){h(this,"id","");h(this,"width",100);h(this,"lines",3);h(this,"regionAnchorX",0);h(this,"regionAnchorY",100);h(this,"viewportAnchorX",0);h(this,"viewportAnchorY",100);h(this,"scroll","")}}const B=",",ht="%";function ct(i){const t=parseInt(i,10);return Number.isNaN(t)?null:t}function y(i){const t=parseInt(i.replace(ht,""),10);return!Number.isNaN(t)&&t>=0&&t<=100?t:null}function z(i){if(!i.includes(B))return null;const[t,e]=i.split(B).map(y);return t!==null&&e!==null?[t,e]:null}function ut(i){const t=parseFloat(i);return Number.isNaN(t)?null:t}const ft="WEBVTT",j=",",dt="%",b=/[:=]/,pt=/^[\s\t]*(region|vertical|line|position|size|align)[:=]/,mt="NOTE",gt="REGION",Tt=/^REGION:?[\s\t]+/,v=/[\s\t]+/,bt="-->",wt=/[\s\t]*-->[\s\t]+/,vt=/start|center|end|left|right/,yt=/start|center|end/,At=/line-(?:left|right)|center|auto/,Et=/^(?:(\d{1,2}):)?(\d{2}):(\d{2})(?:\.(\d{1,3}))?$/;var W=(i=>(i[i.None=0]="None",i[i.Header=1]="Header",i[i.Cue=2]="Cue",i[i.Region=3]="Region",i[i.Note=4]="Note",i))(W||{});class X{constructor(){h(this,"f");h(this,"c",0);h(this,"g",{});h(this,"h",{});h(this,"j",[]);h(this,"a",null);h(this,"b",null);h(this,"k",[]);h(this,"d");h(this,"l","")}async init(t){this.f=t,t.strict&&(this.c=1),t.errors&&(this.d=(await k(()=>import("./errors-OgKIXfxL.js"),__vite__mapDeps([3,1]))).ParseErrorBuilder)}parse(t,e){var s,n,r,o,a,l;if(t==="")this.a?(this.j.push(this.a),(n=(s=this.f).onCue)==null||n.call(s,this.a),this.a=null):this.b?(this.h[this.b.id]=this.b,(o=(r=this.f).onRegion)==null||o.call(r,this.b),this.b=null):this.c===1&&(this.i(t,e),(l=(a=this.f).onHeaderMetadata)==null||l.call(a,this.g)),this.c=0;else if(this.c)switch(this.c){case 1:this.i(t,e);break;case 2:if(this.a){const c=this.a.text.length>0;!c&&pt.test(t)?this.m(t.split(v),e):this.a.text+=(c?` +`:"")+t}break;case 3:this.n(t.split(v),e);break}else if(t.startsWith(mt))this.c=4;else if(t.startsWith(gt))this.c=3,this.b=new F,this.n(t.replace(Tt,"").split(v),e);else if(t.includes(bt)){const c=this.o(t,e);c&&(this.a=new D(c[0],c[1],""),this.a.id=this.l,this.m(c[2],e)),this.c=2}else e===1&&this.i(t,e);this.l=t}done(){return{metadata:this.g,cues:this.j,regions:Object.values(this.h),errors:this.k}}i(t,e){var s;if(e>1){if(b.test(t)){const[n,r]=t.split(b);n&&(this.g[n]=(r||"").replace(v,""))}}else t.startsWith(ft)?this.c=1:this.e((s=this.d)==null?void 0:s.p())}o(t,e){var c,f,u;const[s,n=""]=t.split(wt),[r,...o]=n.split(v),a=E(s),l=E(r);if(a!==null&&l!==null&&l>a)return[a,l,o];a===null&&this.e((c=this.d)==null?void 0:c.q(s,e)),l===null&&this.e((f=this.d)==null?void 0:f.r(r,e)),a!=null&&l!==null&&l>a&&this.e((u=this.d)==null?void 0:u.s(a,l,e))}n(t,e){var n,r;let s;for(let o=0;o59||n>59?null:o}function _t(){return new X}var St=Object.freeze({__proto__:null,VTTBlock:W,VTTParser:X,default:_t,parseVTTTimestamp:E});const Nt=/[0-9]/,Rt=/[\s\t]+/,q={c:"span",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"span",lang:"span",timestamp:"span"},kt={"&":"&","<":"<",">":">",""":'"',"'":"'"," ":" ","‎":"‎","‏":"‏"},Ct=/&(?:amp|lt|gt|quot|#(0+)?39|nbsp|lrm|rlm);/g,It=new Set(["white","lime","cyan","red","yellow","magenta","blue","black"]),Lt=new Set(Object.keys(q));function Y(i){var c,f;let t="",e=1,s=[],n=[],r;for(let u=0;u":o(),e=1;break;default:!t&&Nt.test(d)&&(e=6),t+=d;break}break;case 3:switch(d){case" ":case" ":case` +`:a(),r&&((c=r.class)==null||c.trim()),e=4;break;case".":a();break;case">":a(),r&&((f=r.class)==null||f.trim()),e=1;break;default:t+=d}break;case 4:d===">"?(t=t.replace(Rt," "),(r==null?void 0:r.type)==="v"?r.voice=R(t):(r==null?void 0:r.type)==="lang"&&(r.lang=R(t)),t="",e=1):t+=d;break;case 5:d===">"&&(t="",r=n.pop(),e=1);break;case 6:if(d===">"){const m=E(t);m!==null&&m>=i.startTime&&m<=i.endTime&&(t="timestamp",o(),r.time=m),t="",e=1}else t+=d;break}}function o(){if(Lt.has(t)){const u=r;r=xt(t),u?(n[n.length-1]!==u&&n.push(u),u.children.push(r)):s.push(r)}t="",e=1}function a(){if(r&&t){const u=t.replace("bg_","");It.has(u)?r[t.startsWith("bg_")?"bgColor":"color"]=u:r.class=r.class?r.class+" "+t:t}t=""}function l(){if(!t)return;const u={type:"text",data:R(t)};r?r.children.push(u):s.push(u),t=""}return e===1&&l(),s}function xt(i){return{tagName:q[i],type:i,children:[]}}function R(i){return i.replace(Ct,t=>kt[t]||"'")}function p(i,t,e){i.style.setProperty(`--${t}`,e+"")}function g(i,t,e=!0){i.setAttribute(`data-${t}`,e===!0?"":e+"")}function _(i,t){i.setAttribute("data-part",t)}function Pt(i){return parseFloat(getComputedStyle(i).lineHeight)||0}function Mt(i){if(I)throw Error("[media-captions] called `createVTTCueTemplate` on the server - use `renderVTTCueString`");const t=document.createElement("template");return t.innerHTML=L(i),{cue:i,content:t.content}}function L(i,t=0){return x(Y(i),t)}function x(i,t=0){let e,s="";for(const n of i)if(n.type==="text")s+=n.data;else{const r=n.type==="timestamp";e={},e.class=n.class,e.title=n.type==="v"&&n.voice,e.lang=n.type==="lang"&&n.lang,e["data-part"]=n.type==="v"&&"voice",r&&(e["data-part"]="timed",e["data-time"]=n.time,e["data-future"]=n.time>t,e["data-past"]=n.timea[1]).map(a=>`${a[0]}="${a[1]===!0?"":a[1]}"`).join(" ");s+=`<${n.tagName}${o?" "+o:""}>${x(n.children)}`}return s}function K(i,t){if(!I)for(const e of i.querySelectorAll('[data-part="timed"]')){const s=Number(e.getAttribute("data-time"));Number.isNaN(s)||(s>t?g(e,"future"):e.removeAttribute("data-future"),s=t.left&&i.top<=t.bottom&&i.bottom>=t.top}function zt(i,t){for(let e=0;e=0&&t.bottom<=i.height&&t.left>=0&&t.right<=i.width}function jt(i,t,e){switch(e){case"+x":return t.left<0;case"-x":return t.right>i.width;case"+y":return t.top<0;case"-y":return t.bottom>i.height}}function $t(i,t){const e=Math.max(0,Math.min(i.width,t.right)-Math.max(0,t.left)),s=Math.max(0,Math.min(i.height,t.bottom)-Math.max(0,t.top));return e*s/(i.height*i.width)}function M(i,t){return{top:t.top/i.height,left:t.left/i.width,right:(i.width-t.right)/i.width,bottom:(i.height-t.bottom)/i.height}}function J(i,t){return t.top=t.top*i.height,t.left=t.left*i.width,t.right=i.width-t.right*i.width,t.bottom=i.height-t.bottom*i.height,t}const Q=["top","left","right","bottom"];function Z(i,t,e,s){const n=M(t,e);for(const r of Q)p(i,`${s}-${r}`,n[r]*100+"%")}function U(i,t,e,s){let n=1,r,o={...t};for(let a=0;al&&(r={...t},n=l),t={...o}}return r||o}const A=Symbol(0);function Vt(i,t,e,s){let n=e.firstElementChild,r=Dt(t),o,a=[];if(e[T]||(e[T]=Gt(i,e)),o=J(i,{...e[T]}),e[A])a=[e[A]==="top"?"+y":"-y","+x","-x"];else if(t.snapToLines){let l;switch(t.vertical){case"":a=["+y","-y"],l="height";break;case"rl":a=["+x","-x"],l="width";break;case"lr":a=["-x","+x"],l="width";break}let c=Pt(n),f=c*Math.round(r),u=i[l]+c,d=a[0];Math.abs(f)>u&&(f=f<0?-1:1,f*=Math.ceil(u/c)*c),r<0&&(f+=t.vertical===""?i.height:i.width,a=a.reverse()),S(o,d,f)}else{const l=t.vertical==="",c=l?"+y":"+x",f=l?o.height:o.width;S(o,c,(l?i.height:i.width)*r/100),S(o,c,t.lineAlign==="center"?f/2:t.lineAlign==="end"?f:0),a=l?["-y","+y","-x","+x"]:["-x","+x","-y","+y"]}return o=U(i,o,s,a),Z(e,i,o,"cue"),o}function Gt(i,t){const e=P(t),s=Ht(t);if(t[A]=!1,s.top&&(e.top=s.top,e.bottom=s.top+e.height,t[A]="top"),s.bottom){const n=i.height-s.bottom;e.top=n-e.height,e.bottom=n,t[A]="bottom"}return s.left&&(e.left=s.left),s.right&&(e.right=i.width-s.right),M(i,e)}function Ht(i){const t={};for(const e of Q)t[e]=parseFloat(i.style.getPropertyValue(`--cue-${e}`));return t}function Dt(i){return i.line==="auto"?i.snapToLines?-1:100:i.line}function Ft(i){if(i.position==="auto")switch(i.align){case"start":case"left":return 0;case"right":case"end":return 100;default:return 50}return i.position}function Wt(i,t){if(i.positionAlign==="auto")switch(i.align){case"start":return t==="ltr"?"line-left":"line-right";case"end":return t==="ltr"?"line-right":"line-left";case"center":return"center";default:return`line-${i.align}`}return i.positionAlign}const Xt=["-y","+y","-x","+x"];function qt(i,t,e,s){let n=Array.from(e.querySelectorAll('[data-part="cue-display"]')),r=0,o=Math.max(0,n.length-t.lines);for(let l=n.length-1;l>=o;l--)r+=n[l].offsetHeight;p(e,"region-height",r+"px"),e[T]||(e[T]=M(i,P(e)));let a={...e[T]};return a=J(i,a),a.width=e.clientWidth,a.height=r,a.right=a.left+a.width,a.bottom=a.top+r,a=U(i,a,s,Xt),Z(e,i,a,"region"),a}class Yt{constructor(t,e){h(this,"overlay");h(this,"z");h(this,"A",0);h(this,"C","ltr");h(this,"B",[]);h(this,"D",!1);h(this,"E");h(this,"h",new Map);h(this,"j",new Map);h(this,"K",Ot(()=>{this.D=!1,this.G();for(const t of this.h.values())t[T]=null;for(const t of this.j.values())t&&(t[T]=null);this.H(!0)},50));this.overlay=t,this.dir=(e==null?void 0:e.dir)??"ltr",t.setAttribute("translate","yes"),t.setAttribute("aria-live","off"),t.setAttribute("aria-atomic","true"),_(t,"captions"),this.G(),this.E=new ResizeObserver(this.I.bind(this)),this.E.observe(t)}get dir(){return this.C}set dir(t){this.C=t,g(this.overlay,"dir",t)}get currentTime(){return this.A}set currentTime(t){this.A=t,this.update()}changeTrack({regions:t,cues:e}){this.reset(),this.J(t);for(const s of e)this.j.set(s,null);this.update()}addCue(t){this.j.set(t,null),this.update()}removeCue(t){this.j.delete(t),this.update()}update(t=!1){this.H(t)}reset(){this.j.clear(),this.h.clear(),this.B=[],this.overlay.textContent=""}destroy(){this.reset(),this.E.disconnect()}I(){this.D=!0,this.K()}G(){this.z=P(this.overlay),p(this.overlay,"overlay-width",this.z.width+"px"),p(this.overlay,"overlay-height",this.z.height+"px")}H(t=!1){if(!this.j.size||this.D)return;let e,s=[...this.j.keys()].filter(r=>this.A>=r.startTime&&this.A<=r.endTime).sort((r,o)=>r.startTime!==o.startTime?r.startTime-o.startTime:r.endTime-o.endTime),n=s.map(r=>r.region);for(let r=0;rg(a,"active")),t=!0),o.isConnected||((a||this.overlay).append(o),t=!0)}if(t){const r=[],o=new Set;for(let a=s.length-1;a>=0;a--){if(e=s[a],o.has(e.region||e))continue;const l=this.F(e),c=l?this.h.get(e.region.id):this.j.get(e);l?r.push(qt(this.z,e.region,c,r)):r.push(Vt(this.z,e,c,r)),o.add(l?e.region:e)}}K(this.overlay,this.A),this.B=s}J(t){if(t)for(const e of t){const s=this.M(e);this.h.set(e.id,s),this.overlay.append(s)}}M(t){const e=document.createElement("div");return _(e,"region"),g(e,"id",t.id),g(e,"scroll",t.scroll),p(e,"region-width",t.width+"%"),p(e,"region-anchor-x",t.regionAnchorX),p(e,"region-anchor-y",t.regionAnchorY),p(e,"region-viewport-anchor-x",t.viewportAnchorX),p(e,"region-viewport-anchor-y",t.viewportAnchorY),p(e,"region-lines",t.lines),e}L(t){var o;const e=document.createElement("div"),s=Ft(t),n=Wt(t,this.C);if(_(e,"cue-display"),t.vertical!==""&&g(e,"vertical"),p(e,"cue-text-align",t.align),t.style)for(const a of Object.keys(t.style))e.style.setProperty(a,t.style[a]);if(this.F(t))p(e,"cue-offset",`${s-(n==="line-right"?100:n==="center"?50:0)}%`);else if(p(e,"cue-writing-mode",t.vertical===""?"horizontal-tb":t.vertical==="lr"?"vertical-lr":"vertical-rl"),!((o=t.style)!=null&&o["--cue-width"])){let a=s;n==="line-left"?a=100-s:n==="center"&&s<=50?a=s*2:n==="center"&&s>50&&(a=(100-s)*2);const l=t.size __vite__mapDeps.viteFileDeps[i]) +} diff --git a/assets/projectConfigParam-_5a22Qyh.js b/assets/projectConfigParam-_5a22Qyh.js new file mode 100644 index 000000000..78637a163 --- /dev/null +++ b/assets/projectConfigParam-_5a22Qyh.js @@ -0,0 +1 @@ +const o="/img/projectConfigParam.png";export{o as _}; diff --git a/assets/projectConfigRefresh.html-1hTjtLKu.js b/assets/projectConfigRefresh.html-1hTjtLKu.js new file mode 100644 index 000000000..ab42dd26a --- /dev/null +++ b/assets/projectConfigRefresh.html-1hTjtLKu.js @@ -0,0 +1 @@ +import{_ as o}from"./refreshProjectConfig-nDUALD3E.js";import{_ as r,r as a,o as n,c as i,a as e,d as c,b as s}from"./app-8OZtYazS.js";const p={},m=e("h1",{id:"项目配置刷新",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#项目配置刷新"},[e("span",null,"项目配置刷新")])],-1),d=e("p",null,"配置文件更新后,UI 实现项目级别配置更新",-1),l=e("p",null,[e("img",{src:o,alt:"refreshProjectConfig",loading:"lazy"})],-1);function g(f,h){const t=a("Badge");return n(),i("div",null,[m,e("p",null,[c("版本要求: "),s(t,{text:"2023.1.3"})]),d,l])}const y=r(p,[["render",g],["__file","projectConfigRefresh.html.vue"]]),C=JSON.parse('{"path":"/guide/features/projectConfigRefresh.html","title":"项目配置刷新","lang":"zh-CN","frontmatter":{"description":"项目配置刷新 版本要求: 配置文件更新后,UI 实现项目级别配置更新 refreshProjectConfig ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/projectConfigRefresh.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/projectConfigRefresh.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"项目配置刷新"}],["meta",{"property":"og:description","content":"项目配置刷新 版本要求: 配置文件更新后,UI 实现项目级别配置更新 refreshProjectConfig "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.1.3/refreshProjectConfig.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"项目配置刷新"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"项目配置刷新\\",\\"image\\":[\\"https://api-buddy.com/img/2023.1.3/refreshProjectConfig.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.11,"words":34},"filePathRelative":"guide/features/projectConfigRefresh.md","localizedDate":"2024年5月31日","autoDesc":true}');export{y as comp,C as data}; diff --git a/assets/projectConfigRefresh.html-XeZSUbCO.js b/assets/projectConfigRefresh.html-XeZSUbCO.js new file mode 100644 index 000000000..70f220eb4 --- /dev/null +++ b/assets/projectConfigRefresh.html-XeZSUbCO.js @@ -0,0 +1 @@ +import{_ as o}from"./refreshProjectConfig-nDUALD3E.js";import{_ as r,r as n,o as i,c as a,a as e,d as c,b as s}from"./app-8OZtYazS.js";const f={},h=e("h1",{id:"project-config-refresh",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#project-config-refresh"},[e("span",null,"Project config refresh")])],-1),p=e("p",null,"When the configuration file is updated, this function allows the UI to refresh the configuration as well.",-1),l=e("p",null,[e("img",{src:o,alt:"refreshProjectConfig",loading:"lazy"})],-1);function d(g,m){const t=n("Badge");return i(),a("div",null,[h,e("p",null,[c("Version required: "),s(t,{text:"2023.1.3"})]),p,l])}const j=r(f,[["render",d],["__file","projectConfigRefresh.html.vue"]]),y=JSON.parse('{"path":"/en/guide/features/projectConfigRefresh.html","title":"Project config refresh","lang":"en-US","frontmatter":{"description":"Project config refresh Version required: When the configuration file is updated, this function allows the UI to refresh the configuration as well. refreshProjectConfig ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/projectConfigRefresh.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/projectConfigRefresh.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Project config refresh"}],["meta",{"property":"og:description","content":"Project config refresh Version required: When the configuration file is updated, this function allows the UI to refresh the configuration as well. refreshProjectConfig "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.1.3/refreshProjectConfig.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Project config refresh"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Project config refresh\\",\\"image\\":[\\"https://api-buddy.com/img/2023.1.3/refreshProjectConfig.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.09,"words":28},"filePathRelative":"en/guide/features/projectConfigRefresh.md","localizedDate":"May 31, 2024","autoDesc":true}');export{j as comp,y as data}; diff --git a/assets/projectEnv.html-Mn9mwxfD.js b/assets/projectEnv.html-Mn9mwxfD.js new file mode 100644 index 000000000..10a532478 --- /dev/null +++ b/assets/projectEnv.html-Mn9mwxfD.js @@ -0,0 +1,2 @@ +import{_ as r,a as c}from"./dropdownEnv-bZEd9SOg.js";import{_ as p,r as o,o as l,c as s,a as e,d as t,b as n,w as d,e as m}from"./app-8OZtYazS.js";const g="/img/projectEnvUrl_en.png",h={},u={class:"hint-container caution"},_=e("p",{class:"hint-container-title"},"Suggestion",-1),v=e("p",null,"The advantage of using project-level config is that when there are many projects, the drop-down box options will be reduced (excluding the config of other projects).",-1),f=m('

    Set up the mapping relationship, Configure the URL prefix address of the corresponding environment under the corresponding project.

    The icon P means Project, and the icon E means Environment
    +

    dropdownProject

    dropdownEnv

    ',5);function j(y,w){const a=o("ColorIcon"),i=o("RouteLink");return l(),s("div",null,[e("div",u,[_,e("p",null,[t("It is recommended to use "),n(i,{to:"/en/guide/features/projectLevelDomainConfig.html"},{default:d(()=>[n(a,{icon:"domainConfig"}),t(" Project-level domain config")]),_:1}),t(",original config will be used as global config and will have a lower priority than project level config.")]),v]),f])}const x=p(h,[["render",j],["__file","projectEnv.html.vue"]]),P=JSON.parse('{"path":"/en/guide/getstarted/projectEnv.html","title":"Project/Env/Domain","lang":"en-US","frontmatter":{"title":"Project/Env/Domain","icon":"config2","description":" Suggestion It is recommended to use ,original config will be used as global config and will have a lower priority than project level config. The advantage of using project-leve...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/getstarted/projectEnv.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/getstarted/projectEnv.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Project/Env/Domain"}],["meta",{"property":"og:description","content":" Suggestion It is recommended to use ,original config will be used as global config and will have a lower priority than project level config. The advantage of using project-leve..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/projectEnvUrl_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Project/Env/Domain"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Project/Env/Domain\\",\\"image\\":[\\"https://api-buddy.com/img/projectEnvUrl_en.png\\",\\"https://api-buddy.com/img/dropdownProject.png\\",\\"https://api-buddy.com/img/dropdownEnv.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.34,"words":101},"filePathRelative":"en/guide/getstarted/projectEnv.md","localizedDate":"May 31, 2024","autoDesc":true}');export{x as comp,P as data}; diff --git a/assets/projectEnv.html-rIQ0C5Vw.js b/assets/projectEnv.html-rIQ0C5Vw.js new file mode 100644 index 000000000..8ce84160d --- /dev/null +++ b/assets/projectEnv.html-rIQ0C5Vw.js @@ -0,0 +1 @@ +import{_ as i,a as c}from"./dropdownEnv-bZEd9SOg.js";import{_ as p,r as o,o as l,c as s,a as t,d as e,b as n,w as m,e as d}from"./app-8OZtYazS.js";const g="/img/projectEnvUrl.png",u={},_={class:"hint-container caution"},h=t("p",{class:"hint-container-title"},"建议",-1),v=t("p",null,"使用项目级别配置的好处是当项目多的时候,下拉框选项将减少(排除了其他项目的配置),只取本项目级别域名与全局域名配置的交集。",-1),y=d('

    设置映射关系,配置对应项目下对应环境的 url 前缀地址

    project env url

    • 图标 P 含义为 Project
    • 图标 E 含义为 Environment

    dropdownProject

    dropdownEnv

    ',5);function j(f,E){const r=o("ColorIcon"),a=o("RouteLink");return l(),s("div",null,[t("div",_,[h,t("p",null,[e("建议使用"),n(a,{to:"/guide/features/projectLevelDomainConfig.html"},{default:m(()=>[n(r,{icon:"domainConfig"}),e(" 项目级别域名配置")]),_:1}),e(",原来的配置将作为全配置配置,并且优先级小于项目级别配置。")]),v]),y])}const b=p(u,[["render",j],["__file","projectEnv.html.vue"]]),C=JSON.parse('{"path":"/guide/getstarted/projectEnv.html","title":"项目/环境/域名","lang":"zh-CN","frontmatter":{"title":"项目/环境/域名","icon":"config2","description":" 建议 建议使用,原来的配置将作为全配置配置,并且优先级小于项目级别配置。 使用项目级别配置的好处是当项目多的时候,下拉框选项将减少(排除了其他项目的配置),只取本项目级别域名与全局域名配置的交集。 设置映射关系,配置对应项目下对应环境的 url 前缀地址 project env url 注 图标 P 含义为 Project 图标 E 含义为 Envi...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/getstarted/projectEnv.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/getstarted/projectEnv.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"项目/环境/域名"}],["meta",{"property":"og:description","content":" 建议 建议使用,原来的配置将作为全配置配置,并且优先级小于项目级别配置。 使用项目级别配置的好处是当项目多的时候,下拉框选项将减少(排除了其他项目的配置),只取本项目级别域名与全局域名配置的交集。 设置映射关系,配置对应项目下对应环境的 url 前缀地址 project env url 注 图标 P 含义为 Project 图标 E 含义为 Envi..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/projectEnvUrl.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"项目/环境/域名"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"项目/环境/域名\\",\\"image\\":[\\"https://api-buddy.com/img/projectEnvUrl.png\\",\\"https://api-buddy.com/img/dropdownProject.png\\",\\"https://api-buddy.com/img/dropdownEnv.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.53,"words":159},"filePathRelative":"guide/getstarted/projectEnv.md","localizedDate":"2024年5月31日","autoDesc":true}');export{b as comp,C as data}; diff --git a/assets/projectLevelDomainConfig.html-6T6LwMQL.js b/assets/projectLevelDomainConfig.html-6T6LwMQL.js new file mode 100644 index 000000000..8d3700cd7 --- /dev/null +++ b/assets/projectLevelDomainConfig.html-6T6LwMQL.js @@ -0,0 +1 @@ +import{_ as r,a as d}from"./projectLevelDomainDialog_en-qTkkzDKU.js";import{_ as m,r as i,o as s,c as p,a as e,d as o,b as t,w as a,e as u}from"./app-8OZtYazS.js";const g={},h=e("h1",{id:"project-level-domain-config",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#project-level-domain-config"},[e("span",null,"Project-level domain config")])],-1),f=e("p",null,"This function allows developers to add a domain quickly.",-1),_={class:"hint-container caution"},v=e("p",{class:"hint-container-title"},"Suggestion",-1),y=e("p",null,"The advantage of using project-level config is that when there are many projects, the drop-down box options will be reduced (excluding the config of other projects)",-1),j={class:"hint-container tip"},b=e("p",{class:"hint-container-title"},"Tips",-1),D=e("strong",null,"Project name",-1),w=e("li",null,[e("strong",null,"Env"),o(": Different environments, for example, "),e("strong",null,"local、dev、test、prod"),o(".")],-1),C=e("li",null,[e("strong",null,"Domain"),o(": The domain value corresponding to the project name and environment name.")],-1),k=e("h2",{id:"auto-domain-or-generate-by-config-file",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#auto-domain-or-generate-by-config-file"},[e("span",null,"Auto domain or Generate by config file")])],-1),x=e("code",null,"application.properties",-1),T=e("code",null,"application.yml",-1),L=u('

    projectLevelDomainConfig

    How value comes from

    1. For file with environment names such as application-dev.properties, plugin will automatically adapt the variables between - and . as environment names.
    2. Project name comes from module name
    3. Domain = http://localhost:port/context-path

    Manually configure the domain.

    projectLevelDomainDialog

    Click on the Project-level domain config to manually enter the corresponding value.

    ',6);function q(P,S){const c=i("Badge"),l=i("ColorIcon"),n=i("RouteLink");return s(),p("div",null,[h,f,e("p",null,[o("Version required: "),t(c,{text:"2023.1.1+"})]),e("div",_,[v,e("p",null,[o("It is recommended to use project-level domain config,original config "),t(n,{to:"/en/guide/features/settingManager.html"},{default:a(()=>[t(l,{icon:"tool"}),o(" Setting manager")]),_:1}),o(" will be used as global config and will have a lower priority than project level config.")]),y]),e("div",j,[b,e("ol",null,[e("li",null,[D,o(": The project name of the API. If "),t(n,{to:"/en/guide/features/autoDomain.html"},{default:a(()=>[o("auto domain")]),_:1}),o(" is turned on, for single-module projects, the project name will be automatically set to the project name, and for multi-modules, it will be the module name. Manual replacement is not recommended.")]),w,C])]),k,e("ol",null,[e("li",null,[o("Refer to this "),t(n,{to:"/en/guide/features/autoDomain.html"},{default:a(()=>[o("document")]),_:1}),o(" for auth domain, and finally only need to modify the domain name value if not the value you want.")]),e("li",null,[o("Generate by config file: Select "),x,o(" or "),T,o(" in the project, click on the icon "),t(l,{icon:"restfulFastRequest"}),o(".")])]),L])}const M=m(g,[["render",q],["__file","projectLevelDomainConfig.html.vue"]]),N=JSON.parse('{"path":"/en/guide/features/projectLevelDomainConfig.html","title":"Project-level domain config","lang":"en-US","frontmatter":{"description":"Project-level domain config This function allows developers to add a domain quickly. Version required: Suggestion It is recommended to use project-level domain config,original c...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/projectLevelDomainConfig.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/projectLevelDomainConfig.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Project-level domain config"}],["meta",{"property":"og:description","content":"Project-level domain config This function allows developers to add a domain quickly. Version required: Suggestion It is recommended to use project-level domain config,original c..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.1.1/projectLevelDomainConfig_en.png \\"Domain config\\""}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Project-level domain config"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Project-level domain config\\",\\"image\\":[\\"https://api-buddy.com/img/2023.1.1/projectLevelDomainConfig_en.png \\\\\\"Domain config\\\\\\"\\",\\"https://api-buddy.com/img/2023.1.1/projectLevelDomainDialog_en.png \\\\\\"Domain list\\\\\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Auto domain or Generate by config file","slug":"auto-domain-or-generate-by-config-file","link":"#auto-domain-or-generate-by-config-file","children":[]},{"level":2,"title":"Manually configure the domain.","slug":"manually-configure-the-domain","link":"#manually-configure-the-domain","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.9,"words":271},"filePathRelative":"en/guide/features/projectLevelDomainConfig.md","localizedDate":"May 31, 2024","autoDesc":true}');export{M as comp,N as data}; diff --git a/assets/projectLevelDomainConfig.html-XKsM4IHF.js b/assets/projectLevelDomainConfig.html-XKsM4IHF.js new file mode 100644 index 000000000..b7031ad4e --- /dev/null +++ b/assets/projectLevelDomainConfig.html-XKsM4IHF.js @@ -0,0 +1 @@ +import{_ as c,a as p}from"./projectLevelDomainDialog-8sRek__q.js";import{_ as s,r as a,o as d,c as m,a as e,d as t,b as o,w as l,e as u}from"./app-8OZtYazS.js";const h={},g=e("h1",{id:"project-级别域名配置",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#project-级别域名配置"},[e("span",null,"Project 级别域名配置")])],-1),_=e("p",null,"作用:本功能可以让开发者一键添加域名配置",-1),f={class:"hint-container caution"},v=e("p",{class:"hint-container-title"},"建议",-1),y=e("p",null,"使用项目级别配置的好处是当项目多的时候,下拉框选项将减少(排除了其他项目的配置),只取本项目级别域名与全局域名配置的交集。",-1),j=e("div",{class:"hint-container tip"},[e("p",{class:"hint-container-title"},"提示"),e("ol",null,[e("li",null,"项目名: Api 对应的项目名称。如果开启了自动域名,单模块项目,项目名将自动设置为项目名词,多模块则为模块名。不建议手动替换"),e("li",null,"环境名: 不同的环境,例如将本地命名为 local,开发环境命名为 dev,测试环境命名为 test,生产环境命名为 prod"),e("li",null,"域名: 项目名与环境名下对应的域名")])],-1),x=e("h2",{id:"自动域名-or-配置文件快速生成",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#自动域名-or-配置文件快速生成"},[e("span",null,"自动域名 or 配置文件快速生成")])],-1),D=e("code",null,"application.properties",-1),C=e("code",null,"application.yml",-1),b=u('

    projectLevelDomainConfig

    变量来源

    a. 针对带有环境名如`application-dev.properties`,插件将自动适配`-`与`.`之间的变量作为环境名。\nb. 项目名来源于模块名\nc. 域名=`http://localhost:port/context-path`\n

    2.手动配置域名

    projectLevelDomainDialog

    点击项目级别域名手动输入对应的值

    ',6);function L(k,P){const r=a("Badge"),n=a("ColorIcon"),i=a("RouteLink");return d(),m("div",null,[g,_,e("p",null,[t("版本要求: "),o(r,{text:"2023.1.1+"})]),e("div",f,[v,e("p",null,[t("建议使用项目级别域名配置,原来的"),o(i,{to:"/guide/features/settingManager.html"},{default:l(()=>[o(n,{icon:"tool"}),t(" 管理配置")]),_:1}),t("将作为全配置配置,并且优先级小于项目级别配置,建议项目域名以项目级别隔离而不要使用全局配置。")]),y]),j,x,e("ol",null,[e("li",null,[e("p",null,[t("自动域名:参考此"),o(i,{to:"/guide/features/autoDomain.html"},{default:l(()=>[t("文档")]),_:1}),t(",最后根据实际情况只需要修改域名值")])]),e("li",null,[e("p",null,[t("配置文件快速生成:选择项目中的"),D,t("或者"),C,t(",通过配置文件,点击图标"),o(n,{icon:"restfulFastRequest"}),t(",可以快捷添加配置。")])])]),b])}const q=s(h,[["render",L],["__file","projectLevelDomainConfig.html.vue"]]),w=JSON.parse('{"path":"/guide/features/projectLevelDomainConfig.html","title":"Project 级别域名配置","lang":"zh-CN","frontmatter":{"description":"Project 级别域名配置 作用:本功能可以让开发者一键添加域名配置 版本要求: 建议 建议使用项目级别域名配置,原来的将作为全配置配置,并且优先级小于项目级别配置,建议项目域名以项目级别隔离而不要使用全局配置。 使用项目级别配置的好处是当项目多的时候,下拉框选项将减少(排除了其他项目的配置),只取本项目级别域名与全局域名配置的交集。 提示 项目名:...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/projectLevelDomainConfig.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/projectLevelDomainConfig.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Project 级别域名配置"}],["meta",{"property":"og:description","content":"Project 级别域名配置 作用:本功能可以让开发者一键添加域名配置 版本要求: 建议 建议使用项目级别域名配置,原来的将作为全配置配置,并且优先级小于项目级别配置,建议项目域名以项目级别隔离而不要使用全局配置。 使用项目级别配置的好处是当项目多的时候,下拉框选项将减少(排除了其他项目的配置),只取本项目级别域名与全局域名配置的交集。 提示 项目名:..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.1.1/projectLevelDomainConfig.png \\"域名配置\\""}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Project 级别域名配置"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Project 级别域名配置\\",\\"image\\":[\\"https://api-buddy.com/img/2023.1.1/projectLevelDomainConfig.png \\\\\\"域名配置\\\\\\"\\",\\"https://api-buddy.com/img/2023.1.1/projectLevelDomainDialog.png \\\\\\"域名列表\\\\\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"自动域名 or 配置文件快速生成","slug":"自动域名-or-配置文件快速生成","link":"#自动域名-or-配置文件快速生成","children":[]},{"level":2,"title":"2.手动配置域名","slug":"_2-手动配置域名","link":"#_2-手动配置域名","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.47,"words":440},"filePathRelative":"guide/features/projectLevelDomainConfig.md","localizedDate":"2024年5月31日","autoDesc":true}');export{q as comp,w as data}; diff --git a/assets/projectLevelDomainDialog-8sRek__q.js b/assets/projectLevelDomainDialog-8sRek__q.js new file mode 100644 index 000000000..abc106d34 --- /dev/null +++ b/assets/projectLevelDomainDialog-8sRek__q.js @@ -0,0 +1 @@ +const o="/img/2023.1.1/projectLevelDomainConfig.png",i="/img/2023.1.1/projectLevelDomainDialog.png";export{o as _,i as a}; diff --git a/assets/projectLevelDomainDialog_en-qTkkzDKU.js b/assets/projectLevelDomainDialog_en-qTkkzDKU.js new file mode 100644 index 000000000..2cbf76236 --- /dev/null +++ b/assets/projectLevelDomainDialog_en-qTkkzDKU.js @@ -0,0 +1 @@ +const o="/img/2023.1.1/projectLevelDomainConfig_en.png",e="/img/2023.1.1/projectLevelDomainDialog_en.png";export{o as _,e as a}; diff --git a/assets/projectValueConfig.html-50BV-VJM.js b/assets/projectValueConfig.html-50BV-VJM.js new file mode 100644 index 000000000..76da3e86b --- /dev/null +++ b/assets/projectValueConfig.html-50BV-VJM.js @@ -0,0 +1 @@ +import{_ as o}from"./projectConfigParam-_5a22Qyh.js";import{_ as n,r,o as i,c,a as e,d as t,b as p}from"./app-8OZtYazS.js";const m={},l=e("h1",{id:"项目级别全局参数支持",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#项目级别全局参数支持"},[e("span",null,"项目级别全局参数支持")])],-1),s=e("p",null,"支持项目级别内的全局参数,不受多模块影响。",-1),d=e("p",null,[e("strong",null,"配置优先级"),t(": "),e("code",null,"api头 > 项目级别全局请求头 > 全局请求头")],-1),g=e("p",null,[e("img",{src:o,alt:"projectConfigParam",loading:"lazy"})],-1);function u(h,_){const a=r("Badge");return i(),c("div",null,[l,e("p",null,[t("版本要求: "),p(a,{text:"2022.1.8"})]),s,d,g])}const C=n(m,[["render",u],["__file","projectValueConfig.html.vue"]]),j=JSON.parse('{"path":"/guide/features/projectValueConfig.html","title":"项目级别全局参数支持","lang":"zh-CN","frontmatter":{"description":"项目级别全局参数支持 版本要求: 支持项目级别内的全局参数,不受多模块影响。 配置优先级: api头 > 项目级别全局请求头 > 全局请求头 projectConfigParam ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/projectValueConfig.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/projectValueConfig.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"项目级别全局参数支持"}],["meta",{"property":"og:description","content":"项目级别全局参数支持 版本要求: 支持项目级别内的全局参数,不受多模块影响。 配置优先级: api头 > 项目级别全局请求头 > 全局请求头 projectConfigParam "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/projectConfigParam.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"项目级别全局参数支持"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"项目级别全局参数支持\\",\\"image\\":[\\"https://api-buddy.com/img/projectConfigParam.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.2,"words":60},"filePathRelative":"guide/features/projectValueConfig.md","localizedDate":"2024年5月31日","autoDesc":true}');export{C as comp,j as data}; diff --git a/assets/projectValueConfig.html-6_cGrtdG.js b/assets/projectValueConfig.html-6_cGrtdG.js new file mode 100644 index 000000000..7196d2eca --- /dev/null +++ b/assets/projectValueConfig.html-6_cGrtdG.js @@ -0,0 +1 @@ +import{_ as r,r as a,o as n,c as i,a as e,d as t,b as l}from"./app-8OZtYazS.js";const c="/img/projectConfigParam_en.png",p={},m=e("h1",{id:"project-level-config",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#project-level-config"},[e("span",null,"Project-level config")])],-1),d=e("p",null,"Support global parameters within the project level, not affected by multiple modules.",-1),s=e("p",null,[e("strong",null,"Configure priority"),t(": "),e("code",null,"api header > project header>global header")],-1),g=e("p",null,[e("img",{src:c,alt:"projectConfigParam",loading:"lazy"})],-1);function u(f,h){const o=a("Badge");return n(),i("div",null,[m,e("p",null,[t("Version required: "),l(o,{text:"2022.1.8"})]),d,s,g])}const j=r(p,[["render",u],["__file","projectValueConfig.html.vue"]]),y=JSON.parse('{"path":"/en/guide/features/projectValueConfig.html","title":"Project-level config","lang":"en-US","frontmatter":{"description":"Project-level config Version required: Support global parameters within the project level, not affected by multiple modules. Configure priority: api header > project header>glob...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/projectValueConfig.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/projectValueConfig.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Project-level config"}],["meta",{"property":"og:description","content":"Project-level config Version required: Support global parameters within the project level, not affected by multiple modules. Configure priority: api header > project header>glob..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/projectConfigParam_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Project-level config"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Project-level config\\",\\"image\\":[\\"https://api-buddy.com/img/projectConfigParam_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.1,"words":31},"filePathRelative":"en/guide/features/projectValueConfig.md","localizedDate":"May 31, 2024","autoDesc":true}');export{j as comp,y as data}; diff --git a/assets/quickAddHeader.html-37imcXHe.js b/assets/quickAddHeader.html-37imcXHe.js new file mode 100644 index 000000000..d8dd856bd --- /dev/null +++ b/assets/quickAddHeader.html-37imcXHe.js @@ -0,0 +1 @@ +import{_ as a}from"./fastAddToken-UQ7yKUMu.js";import{_ as o,r,o as d,c as n,a as e,d as i,b as c}from"./app-8OZtYazS.js";const s={},m=e("h1",{id:"快速添加-header",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#快速添加-header"},[e("span",null,"快速添加 header")])],-1),p=e("p",null,"如果你的请求需要一个 token 而 token 可以通过一个登陆接口得到,那么你可以不用每次手动添加,只需要访问一下登录接口再通过以下操作来处理",-1),l=e("p",null,[e("img",{src:a,alt:"fastAddToken",loading:"lazy"})],-1);function h(u,g){const t=r("Badge");return d(),n("div",null,[m,e("p",null,[i("版本要求: "),c(t,{text:"2.0.0"})]),p,l])}const k=o(s,[["render",h],["__file","quickAddHeader.html.vue"]]),y=JSON.parse('{"path":"/guide/features/quickAddHeader.html","title":"快速添加 header","lang":"zh-CN","frontmatter":{"description":"快速添加 header 版本要求: 如果你的请求需要一个 token 而 token 可以通过一个登陆接口得到,那么你可以不用每次手动添加,只需要访问一下登录接口再通过以下操作来处理 fastAddToken ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/quickAddHeader.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/quickAddHeader.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"快速添加 header"}],["meta",{"property":"og:description","content":"快速添加 header 版本要求: 如果你的请求需要一个 token 而 token 可以通过一个登陆接口得到,那么你可以不用每次手动添加,只需要访问一下登录接口再通过以下操作来处理 fastAddToken "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/fastAddToken.gif"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"快速添加 header"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"快速添加 header\\",\\"image\\":[\\"https://api-buddy.com/img/fastAddToken.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.25,"words":74},"filePathRelative":"guide/features/quickAddHeader.md","localizedDate":"2024年5月31日","autoDesc":true}');export{k as comp,y as data}; diff --git a/assets/quickAddHeader.html-7PSdbaaM.js b/assets/quickAddHeader.html-7PSdbaaM.js new file mode 100644 index 000000000..4ac6a7970 --- /dev/null +++ b/assets/quickAddHeader.html-7PSdbaaM.js @@ -0,0 +1 @@ +import{_ as a}from"./fastAddToken_en-dl409Ccq.js";import{_ as o,r as n,o as d,c as r,a as e,d as i,b as c}from"./app-8OZtYazS.js";const l={},s=e("h1",{id:"quickly-add-header",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#quickly-add-header"},[e("span",null,"Quickly add header")])],-1),u=e("p",null,"If your request requires a token and the token can be obtained through a login interface, then you don't need to add it each time manually, send the login interface method and then process it through the following operations.",-1),m=e("p",null,[e("img",{src:a,alt:"fastAddToken",loading:"lazy"})],-1);function h(p,g){const t=n("Badge");return d(),r("div",null,[s,e("p",null,[i("Version required: "),c(t,{text:"2.0.0"})]),u,m])}const _=o(l,[["render",h],["__file","quickAddHeader.html.vue"]]),k=JSON.parse(`{"path":"/en/guide/features/quickAddHeader.html","title":"Quickly add header","lang":"en-US","frontmatter":{"description":"Quickly add header Version required: If your request requires a token and the token can be obtained through a login interface, then you don't need to add it each time manually, ...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/quickAddHeader.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/quickAddHeader.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Quickly add header"}],["meta",{"property":"og:description","content":"Quickly add header Version required: If your request requires a token and the token can be obtained through a login interface, then you don't need to add it each time manually, ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/fastAddToken_en.gif"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Quickly add header"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Quickly add header\\",\\"image\\":[\\"https://api-buddy.com/img/fastAddToken_en.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.17,"words":51},"filePathRelative":"en/guide/features/quickAddHeader.md","localizedDate":"May 31, 2024","autoDesc":true}`);export{_ as comp,k as data}; diff --git a/assets/rawHtmlPreview-k0XMOGO2.js b/assets/rawHtmlPreview-k0XMOGO2.js new file mode 100644 index 000000000..6a9a34871 --- /dev/null +++ b/assets/rawHtmlPreview-k0XMOGO2.js @@ -0,0 +1 @@ +const r="/img/rawHtmlPreview.png";export{r as _}; diff --git a/assets/refreshProjectConfig-nDUALD3E.js b/assets/refreshProjectConfig-nDUALD3E.js new file mode 100644 index 000000000..3fa5d40e4 --- /dev/null +++ b/assets/refreshProjectConfig-nDUALD3E.js @@ -0,0 +1 @@ +const o="/img/2023.1.3/refreshProjectConfig.png";export{o as _}; diff --git a/assets/regenerate-9LByprDy.js b/assets/regenerate-9LByprDy.js new file mode 100644 index 000000000..091473b1a --- /dev/null +++ b/assets/regenerate-9LByprDy.js @@ -0,0 +1 @@ +const e="/img/regenerate.png";export{e as _}; diff --git a/assets/regenerate.html-5jSJw_Ij.js b/assets/regenerate.html-5jSJw_Ij.js new file mode 100644 index 000000000..197cc414c --- /dev/null +++ b/assets/regenerate.html-5jSJw_Ij.js @@ -0,0 +1 @@ +import{_ as a}from"./regenerateNew-G3I8FY4Q.js";import{_ as r}from"./regenerate-9LByprDy.js";import{_ as n,r as o,o as i,c,a as e,d as s,b as m}from"./app-8OZtYazS.js";const p={},l=e("h1",{id:"重新生成请求",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#重新生成请求"},[e("span",null,"重新生成请求")])],-1),d=e("div",{class:"hint-container tip"},[e("p",{class:"hint-container-title"},"特别说明"),e("p",null,"如果你已经保存一个请求,但是想彻底重新修改其中的参数,那么你可以选择该操作")],-1),g=e("p",null,[e("img",{src:a,alt:"regenerateNew",loading:"lazy"})],-1),h=e("p",null,[e("img",{src:r,alt:"regenerate",loading:"lazy"})],-1);function u(_,y){const t=o("Badge");return i(),c("div",null,[l,e("p",null,[s("版本要求: "),m(t,{text:"2.0.0"})]),d,g,h])}const w=n(p,[["render",u],["__file","regenerate.html.vue"]]),x=JSON.parse('{"path":"/guide/features/regenerate.html","title":"重新生成请求","lang":"zh-CN","frontmatter":{"description":"重新生成请求 版本要求: 特别说明 如果你已经保存一个请求,但是想彻底重新修改其中的参数,那么你可以选择该操作 regenerateNew regenerate ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/regenerate.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/regenerate.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"重新生成请求"}],["meta",{"property":"og:description","content":"重新生成请求 版本要求: 特别说明 如果你已经保存一个请求,但是想彻底重新修改其中的参数,那么你可以选择该操作 regenerateNew regenerate "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/regenerateNew.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"重新生成请求"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"重新生成请求\\",\\"image\\":[\\"https://api-buddy.com/img/regenerateNew.png\\",\\"https://api-buddy.com/img/regenerate.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.19,"words":58},"filePathRelative":"guide/features/regenerate.md","localizedDate":"2024年5月31日","autoDesc":true}');export{w as comp,x as data}; diff --git a/assets/regenerate.html-FlZ8jVW4.js b/assets/regenerate.html-FlZ8jVW4.js new file mode 100644 index 000000000..51b6b06a9 --- /dev/null +++ b/assets/regenerate.html-FlZ8jVW4.js @@ -0,0 +1 @@ +import{_ as a}from"./regenerateNew-G3I8FY4Q.js";import{_ as r}from"./regenerate_en-GXnWqO8I.js";import{_ as o,r as n,o as i,c as s,a as e,d as c,b as p}from"./app-8OZtYazS.js";const m={},l=e("h1",{id:"re-generate",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#re-generate"},[e("span",null,"Re generate")])],-1),d=e("div",{class:"hint-container tip"},[e("p",{class:"hint-container-title"},"Special Note"),e("p",null,"You can choose this operation if you have saved a request but want to completely re-modify the parameters.")],-1),g=e("p",null,[e("img",{src:a,alt:"regenerateNew",loading:"lazy"})],-1),u=e("p",null,[e("img",{src:r,alt:"regenerate",loading:"lazy"})],-1);function h(_,y){const t=n("Badge");return i(),s("div",null,[l,e("p",null,[c("Version Required: "),p(t,{text:"2.0.0",type:"error"})]),d,g,u])}const b=o(m,[["render",h],["__file","regenerate.html.vue"]]),v=JSON.parse('{"path":"/en/guide/features/regenerate.html","title":"Re generate","lang":"en-US","frontmatter":{"description":"Re generate Version Required: Special Note You can choose this operation if you have saved a request but want to completely re-modify the parameters. regenerateNew regenerate ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/regenerate.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/regenerate.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Re generate"}],["meta",{"property":"og:description","content":"Re generate Version Required: Special Note You can choose this operation if you have saved a request but want to completely re-modify the parameters. regenerateNew regenerate "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/regenerateNew.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Re generate"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Re generate\\",\\"image\\":[\\"https://api-buddy.com/img/regenerateNew.png\\",\\"https://api-buddy.com/img/regenerate_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.12,"words":36},"filePathRelative":"en/guide/features/regenerate.md","localizedDate":"May 31, 2024","autoDesc":true}');export{b as comp,v as data}; diff --git a/assets/regenerateNew-G3I8FY4Q.js b/assets/regenerateNew-G3I8FY4Q.js new file mode 100644 index 000000000..c7f085839 --- /dev/null +++ b/assets/regenerateNew-G3I8FY4Q.js @@ -0,0 +1 @@ +const e="/img/regenerateNew.png";export{e as _}; diff --git a/assets/regenerate_en-GXnWqO8I.js b/assets/regenerate_en-GXnWqO8I.js new file mode 100644 index 000000000..3dee4c3fe --- /dev/null +++ b/assets/regenerate_en-GXnWqO8I.js @@ -0,0 +1 @@ +const e="/img/regenerate_en.png";export{e as _}; diff --git a/assets/saveRequest-0-01KgNg.js b/assets/saveRequest-0-01KgNg.js new file mode 100644 index 000000000..53782234b --- /dev/null +++ b/assets/saveRequest-0-01KgNg.js @@ -0,0 +1 @@ +const s="/img/saveRequest.png";export{s as _}; diff --git a/assets/saveRequest.html-2LK55CV1.js b/assets/saveRequest.html-2LK55CV1.js new file mode 100644 index 000000000..19007bd0f --- /dev/null +++ b/assets/saveRequest.html-2LK55CV1.js @@ -0,0 +1,7 @@ +import{_ as e}from"./saveRequest-0-01KgNg.js";import{_ as t,o as a,c as o,e as i}from"./app-8OZtYazS.js";const n={},r=i(`

    保存请求

    特别说明

    API 取名:如果 api 使用了 swagger 注解 @ApiOperation("xxx"),则 api 取名 xxx,如果没加 swagger 注解,则使用 javadoc 作为 api 的名称,否则将取名 New Request

    if (@ApiOperation("xxx"))
    +    apiName = xxx
    +else if(java doc)
    +    apiName = java doc
    +else
    +    apiName = New Request
    +

    example_download

    ',3),s=[r];function p(c,d){return a(),o("div",null,s)}const g=t(n,[["render",p],["__file","saveRequest.html.vue"]]),u=JSON.parse('{"path":"/guide/features/saveRequest.html","title":"保存请求","lang":"zh-CN","frontmatter":{"description":"保存请求 特别说明 API 取名:如果 api 使用了 swagger 注解 @ApiOperation(\\"xxx\\"),则 api 取名 xxx,如果没加 swagger 注解,则使用 javadoc 作为 api 的名称,否则将取名 New Request example_download ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/saveRequest.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/saveRequest.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"保存请求"}],["meta",{"property":"og:description","content":"保存请求 特别说明 API 取名:如果 api 使用了 swagger 注解 @ApiOperation(\\"xxx\\"),则 api 取名 xxx,如果没加 swagger 注解,则使用 javadoc 作为 api 的名称,否则将取名 New Request example_download "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/saveRequest.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"保存请求"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"保存请求\\",\\"image\\":[\\"https://api-buddy.com/img/saveRequest.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.23,"words":70},"filePathRelative":"guide/features/saveRequest.md","localizedDate":"2024年5月31日","autoDesc":true}');export{g as comp,u as data}; diff --git a/assets/saveRequest.html-4vnnZwG8.js b/assets/saveRequest.html-4vnnZwG8.js new file mode 100644 index 000000000..cf9f16887 --- /dev/null +++ b/assets/saveRequest.html-4vnnZwG8.js @@ -0,0 +1,7 @@ +import{_ as e}from"./saveRequest-0-01KgNg.js";import{_ as t,o as a,c as o,e as n}from"./app-8OZtYazS.js";const s={},i=n(`

    Save request

    Note

    API Naming: If the API uses swagger annotations @ApiOperation("xxx"), the API is named xxx. If there is no swagger annotation, Use JavaDoc as the name of the API. Otherwise, it will be named with New Request.

    if (@ApiOperation("xxx"))
    +    apiName = xxx
    +else if(java doc)
    +    apiName = java doc
    +else
    +    apiName = New Request
    +

    example_download

    ',3),r=[i];function c(p,m){return a(),o("div",null,r)}const u=t(s,[["render",c],["__file","saveRequest.html.vue"]]),g=JSON.parse('{"path":"/en/guide/features/saveRequest.html","title":"Save request","lang":"en-US","frontmatter":{"description":"Save request Note API Naming: If the API uses swagger annotations @ApiOperation(\\"xxx\\"), the API is named xxx. If there is no swagger annotation, Use JavaDoc as the name of the A...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/saveRequest.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/saveRequest.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Save request"}],["meta",{"property":"og:description","content":"Save request Note API Naming: If the API uses swagger annotations @ApiOperation(\\"xxx\\"), the API is named xxx. If there is no swagger annotation, Use JavaDoc as the name of the A..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/saveRequest.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Save request"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Save request\\",\\"image\\":[\\"https://api-buddy.com/img/saveRequest.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.2,"words":61},"filePathRelative":"en/guide/features/saveRequest.md","localizedDate":"May 31, 2024","autoDesc":true}');export{u as comp,g as data}; diff --git a/assets/script.html-7wvSZKVB.js b/assets/script.html-7wvSZKVB.js new file mode 100644 index 000000000..693f2cc2a --- /dev/null +++ b/assets/script.html-7wvSZKVB.js @@ -0,0 +1 @@ +import{_ as a,a as r}from"./scriptModule-qWOTuHgm.js";import{_ as i,r as c,o as n,c as s,a as t,d as e,b as p,w as l}from"./app-8OZtYazS.js";const m={},d=t("h1",{id:"脚本",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#脚本"},[t("span",null,"脚本")])],-1),u=t("br",null,null,-1),g=t("p",null,[t("img",{src:a,alt:"scriptProject",loading:"lazy"})],-1),h=t("p",null,[t("img",{src:r,alt:"scriptModule",loading:"lazy"})],-1);function _(y,f){const o=c("RouteLink");return n(),s("div",null,[d,t("p",null,[e("脚本可以让开发者更加灵活地、动态地、方便地修改请求过程的一些入参,以及响应的处理"),u,e(" 具体请参考-------> "),p(o,{to:"/guide/script.html"},{default:l(()=>[e("脚本")]),_:1})]),g,h])}const T=i(m,[["render",_],["__file","script.html.vue"]]),j=JSON.parse('{"path":"/guide/features/script.html","title":"脚本","lang":"zh-CN","frontmatter":{"description":"脚本 脚本可以让开发者更加灵活地、动态地、方便地修改请求过程的一些入参,以及响应的处理 具体请参考-------> scriptProject scriptModule ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/script.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/script.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"脚本"}],["meta",{"property":"og:description","content":"脚本 脚本可以让开发者更加灵活地、动态地、方便地修改请求过程的一些入参,以及响应的处理 具体请参考-------> scriptProject scriptModule "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.3/scriptProject.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"脚本"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"脚本\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.3/scriptProject.png\\",\\"https://api-buddy.com/img/2022.2.3/scriptModule.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.17,"words":51},"filePathRelative":"guide/features/script.md","localizedDate":"2024年5月31日","autoDesc":true}');export{T as comp,j as data}; diff --git a/assets/script.html-GcLPwiv0.js b/assets/script.html-GcLPwiv0.js new file mode 100644 index 000000000..88d76c14a --- /dev/null +++ b/assets/script.html-GcLPwiv0.js @@ -0,0 +1,100 @@ +import{_ as i}from"./console-yl_t699w.js";import{_ as u}from"./addLibrary-m3-5pdM8.js";import{_ as r,r as o,o as d,c as k,a as n,d as s,b as a,w as h,e as p}from"./app-8OZtYazS.js";const g="/img/script.svg",m="/img/script.png",v="/img/2022.2.3/scriptDonate.png",_={},y=n("p",null,[n("strong",null,"脚本的作用"),s(": 开发者可以利用 Groovy 脚本来自定义一些逻辑,从而使得 api 更加灵活,例如对参数进行动态加密签名,放入 header,而不是直接写死")],-1),b=n("strong",null,"实现技术",-1),f={href:"https://groovy-lang.org/",target:"_blank",rel:"noopener noreferrer"},x=p('

    看到 Groovy 不熟悉请不要慌,语法和 Java 几乎一致(Java 就是香,手动一个狗头)

    脚本流程图

    测试项目

    ',4),q={href:"https://github.com/kings1990/fast-request-samples",target:"_blank",rel:"noopener noreferrer"},j=n("h2",{id:"内置变量",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#内置变量"},[n("span",null,"内置变量")])],-1),w=n("div",{class:"hint-container caution"},[n("p",{class:"hint-container-title"},"注意"),n("p",null,"开发者在自己编辑的脚本中,应该注意内置变量已被声明,而不是再去 new 一个 Request 或者 Response 对象,对象名是 request 或者 response,否则可能会造成不可预期的错误")],-1),S={href:"https://hutool.cn/",target:"_blank",rel:"noopener noreferrer"},R=n("code",null,"cn.hutool.http.HttpRequest",-1),U={id:"request",tabindex:"-1"},H={class:"header-anchor",href:"#request"},J=n("ul",null,[n("li",null,"作用: 包含了请求相关的信息,例如 url、header、body、各种参数"),n("li",null,"类型: cn.hutool.http.HttpRequest")],-1),C=n("p",null,"可以通过修改 request 值来动态调整参数",-1),N={id:"response",tabindex:"-1"},D={class:"header-anchor",href:"#response"},O=n("ul",null,[n("li",null,"作用: 包含了请求响应的信息"),n("li",null,"类型: cn.hutool.http.HttpResponse")],-1),I=n("p",null,"可以通过 response 值来获取响应的结果",-1),G={id:"rfr",tabindex:"-1"},L={class:"header-anchor",href:"#rfr"},P=n("ul",null,[n("li",null,"作用: 包含了跟插件交互相关的一些属性,用于后期定制")],-1),T={id:"rfr-projectheader",tabindex:"-1"},z={class:"header-anchor",href:"#rfr-projectheader"},A=n("div",{class:"language-text","data-ext":"text","data-title":"text"},[n("pre",{class:"language-text"},[n("code",null,`作用: 包含了项目级别头,可以通过修改来动态往UI里面设置值 +类型: java.util.LinkedHashMap +`)])],-1),B={id:"rfr-apiheader",tabindex:"-1"},E={class:"header-anchor",href:"#rfr-apiheader"},M=n("div",{class:"language-text","data-ext":"text","data-title":"text"},[n("pre",{class:"language-text"},[n("code",null,`作用: 包含了模块级别头,可以通过修改来动态往UI里面设置值 +类型: java.util.LinkedHashMap +`)])],-1),V={id:"rfr-currentprojectname",tabindex:"-1"},Z={class:"header-anchor",href:"#rfr-currentprojectname"},F=n("div",{class:"language-text","data-ext":"text","data-title":"text"},[n("pre",{class:"language-text"},[n("code",null,`作用: 当前下拉框选择的项目名 +类型: java.lang.String +`)])],-1),K={id:"rfr-currentenvname",tabindex:"-1"},Q={class:"header-anchor",href:"#rfr-currentenvname"},W=n("div",{class:"language-text","data-ext":"text","data-title":"text"},[n("pre",{class:"language-text"},[n("code",null,`作用: 当前下拉框选择的环境名称 +类型: java.lang.String +`)])],-1),X={id:"rfr-currentdomain",tabindex:"-1"},Y={class:"header-anchor",href:"#rfr-currentdomain"},$=n("div",{class:"language-text","data-ext":"text","data-title":"text"},[n("pre",{class:"language-text"},[n("code",null,`作用: 当前作用的域名 +类型: java.lang.String +`)])],-1),nn={id:"rfr-currentmodulename",tabindex:"-1"},sn={class:"header-anchor",href:"#rfr-currentmodulename"},an=n("div",{class:"language-text","data-ext":"text","data-title":"text"},[n("pre",{class:"language-text"},[n("code",null,`作用: 当前API的模块名 +类型: java.lang.String +`)])],-1),tn={id:"rfr-environment",tabindex:"-1"},en={class:"header-anchor",href:"#rfr-environment"},on=n("div",{class:"language-text","data-ext":"text","data-title":"text"},[n("pre",{class:"language-text"},[n("code",null,`作用: 当前环境的变量 +类型: java.util.LinkedHashMap +`)])],-1),pn=n("h2",{id:"引入第三方-jar",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#引入第三方-jar"},[n("span",null,"引入第三方 Jar")])],-1),cn={class:"hint-container tip"},ln=n("p",{class:"hint-container-title"},"内置的 Jar",-1),un=n("div",{class:"language-text","data-ext":"text","data-title":"text"},[n("pre",{class:"language-text"},[n("code",null,`com.alibaba:fastjson:1.2.78 +cn.hutool:hutool-all:5.8.5 +com.google.guava:guava:30.1.1-jre +`)])],-1),rn=n("p",null,"Jar 的版本会不定期更新,如果发现 bug 请联系作者要求作者升级",-1),dn=n("p",null,"开发者可以利用以上 3 个 Jar 所提供的工具方法,直接在脚本中引用,不需要再依赖第三方的 Jar(hutool 就是香,已经加入许多工具类)",-1),kn=n("a",{href:"#demo"},"Demo",-1),hn={href:"https://www.jetbrains.com/help/idea/auto-completing-code.html",target:"_blank",rel:"noopener noreferrer"},gn=p(`

    下载 jar 可能会需要花费额外的时间

    @Grab("org.apache.commons:commons-lang3:3.12.0")
    +import org.apache.commons.lang3.StringUtils
    +
    +String debug = request.header("debug")
    +if(StringUtils.isNotBlank(debug)){
    +    //some logic
    +}
    +
    //注意此处的file:前缀
    +this.class.classLoader.addURL(new URL("file:/path/to/jar"))
    +def StringUtils = Class.forName("org.apache.commons.lang3.StringUtils").getDeclaredConstructor().newInstance()
    +
    +String debug = request.header("debug")//获取header
    +if(StringUtils.isNotBlank(debug)){
    +    //some logic
    +}
    +

    作用范围与顺序

    `,6),mn=n("code",null,"项目级别",-1),vn=n("code",null,"单API级别",-1),_n=n("p",null,"项目级别将作用项目中所有的 API,单 API 级别只作用于单个 API。",-1),yn=n("p",null,[s("执行顺序:"),n("code",null,"项目级别"),s("->"),n("code",null,"单API级别")],-1),bn=n("p",null,[n("img",{src:m,alt:"scriptScope",loading:"lazy"})],-1),fn={id:"console",tabindex:"-1"},xn={class:"header-anchor",href:"#console"},qn=p(`

    Console 帮助开发者打印一些你想要的信息

    console.info("info")
    +console.print("print info")
    +console.warn("warn")
    +console.success("success")
    +console.error("error")
    +
    +

    console

    Demo

    ',4),jn={class:"hint-container tip"},wn=n("p",{class:"hint-container-title"},"Code completion支持",-1),Sn={href:"https://www.jetbrains.com/help/idea/auto-completing-code.html",target:"_blank",rel:"noopener noreferrer"},Rn=n("p",null,[n("img",{src:u,alt:"",loading:"lazy"})],-1),Un=n("h3",{id:"_1-签名参数",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#_1-签名参数"},[n("span",null,"1. 签名参数")])],-1),Hn=n("p",null,"在你的本地新建一个 xxx.groovy 文件,粘贴以下代码,适当修改后,能保证本地可以正常运行,再把代码粘贴到脚本中",-1),Jn=p(`

    HttpRequest request = HttpUtil.createPost("http://localhost:8081/book/add")

    import cn.hutool.core.util.CharsetUtil
    +import cn.hutool.core.util.StrUtil
    +import cn.hutool.crypto.digest.DigestUtil
    +import cn.hutool.http.HttpRequest
    +import cn.hutool.http.HttpUtil
    +
    +//脚本逻辑正式开始
    +String body = StrUtil.str(request.bodyBytes(), CharsetUtil.CHARSET_UTF_8)
    +body = "xxxx"//just for test
    +String sign = DigestUtil.md5Hex(body)
    +request.header("sign",sign)
    +

    2. 利用某一个请求的响应充当请求的 Header 参数

    注意获取 token 的逻辑得结合接口返回的数据结构来处理。例如返回

    {
    +  "success": true,
    +  "code": 200,
    +  "data": {
    +    "token": "xxxxx"
    +  }
    +}
    +

    则需要这么写 JSON.parseObject(myResponse.body()).getJSONObject("data").getString("token")

    import cn.hutool.core.util.CharsetUtil
    +import cn.hutool.core.util.StrUtil
    +import cn.hutool.crypto.digest.DigestUtil
    +import cn.hutool.http.HttpRequest
    +import cn.hutool.http.HttpResponse
    +import cn.hutool.http.HttpUtil
    +import com.alibaba.fastjson.JSON
    +
    +HttpRequest myRequest = HttpUtil.createPost("http://localhost:8081/api/v1.0/login")
    +HttpResponse myResponse = myRequest.execute()
    +if(myResponse.isOk()){
    +    String token = JSON.parseObject(myResponse.body()).getString("token")
    +    request.header("token",token)
    +}
    +

    3. 设置一个Environment变量

    假定响应报文格式

    {
    +  "success": true,
    +  "code": 200,
    +  "data": {
    +    "token": "xxxxx"
    +  }
    +}
    +

    在后置脚本中植入以下代码

    import cn.hutool.core.util.CharsetUtil
    +import cn.hutool.core.util.StrUtil
    +import cn.hutool.crypto.digest.DigestUtil
    +import cn.hutool.http.HttpRequest
    +import cn.hutool.http.HttpResponse
    +import cn.hutool.http.HttpUtil
    +import com.alibaba.fastjson.JSON
    +
    +HttpRequest myRequest = HttpUtil.createPost("http://localhost:8081/api/v1.0/login")
    +HttpResponse myResponse = myRequest.execute()
    +if(myResponse.isOk()){
    +    String token = JSON.parseObject(myResponse.body()).getJSONObject("data").getString("token")
    +    rfr.environment.put("token",token)
    +}
    +

    注意点

    • Groovy 脚本对 ; 不敏感,Java 用;作为语句代码的结束,Groovy 用换行表示一句代码的结束
    • 内置变量已被申明,例如 Demo2 中需要额外新建一个请求,变量命名需要注意不能与内置变量相同

    脚本投稿 🌟

    为了将脚本做的更加强大,评论区开放社区脚本投递,欢迎将强大脚本通过下方留言 的形式上报,让更多人使用你开发的脚本

    • 格式
    /**
    + * 作者:Kings
    + * 主页:https://github.com/kings1990
    + * 功能:xxxxx
    + */
    +
    +//脚本内容
    +....
    +

    scriptDonate

    ',19);function Cn(Nn,Dn){const e=o("ExternalLinkIcon"),t=o("Badge"),c=o("ColorIcon"),l=o("RouteLink");return d(),k("div",null,[y,n("p",null,[b,s(": "),n("a",f,[s("Groovy"),a(e)])]),x,n("p",null,[n("a",q,[s("https://github.com/kings1990/fast-request-samples"),a(e)])]),j,w,n("p",null,[s("插件底层采用"),n("a",S,[s("hutool"),a(e)]),s("的"),R,s("来实现请求的发送")]),n("h3",U,[n("a",H,[n("span",null,[s("request "),a(t,{text:"2022.2.3️",type:"tip"})])])]),J,C,n("h3",N,[n("a",D,[n("span",null,[s("response "),a(t,{text:"2022.2.3️",type:"tip"})])])]),O,I,n("h3",G,[n("a",L,[n("span",null,[s("rfr "),a(t,{text:"2022.2.3️",type:"tip"})])])]),P,n("h4",T,[n("a",z,[n("span",null,[s("rfr.projectHeader "),a(t,{text:"2022.2.3️",type:"tip"})])])]),A,n("h4",B,[n("a",E,[n("span",null,[s("rfr.apiHeader "),a(t,{text:"2022.2.3️",type:"tip"})])])]),M,n("h4",V,[n("a",Z,[n("span",null,[s("rfr.currentProjectName "),a(t,{text:"2022.2.5️",type:"tip"})])])]),F,n("h4",K,[n("a",Q,[n("span",null,[s("rfr.currentEnvName "),a(t,{text:"2022.2.5️",type:"tip"})])])]),W,n("h4",X,[n("a",Y,[n("span",null,[s("rfr.currentDomain "),a(t,{text:"2022.3.1️",type:"tip"})])])]),$,n("h4",nn,[n("a",sn,[n("span",null,[s("rfr.currentModuleName "),a(t,{text:"2023.1.3️",type:"tip"})])])]),an,n("h4",tn,[n("a",en,[n("span",null,[s("rfr.environment "),a(t,{text:"2023.1.8",type:"tip"})])])]),on,pn,n("div",cn,[ln,un,rn,dn,n("p",null,[s("前往"),kn,s("查看如何获得"),n("a",hn,[s("Code completion"),a(e)]),s("功能")])]),gn,n("p",null,[s("分为"),mn,s("和"),vn,s(",项目全局作用需要点击 "),a(l,{to:"/guide/features/projectValueConfig.html"},{default:h(()=>[a(c,{icon:"quanjucanshu"}),s(" 项目级别全局参数支持")]),_:1}),s(" 进行配置")]),_n,yn,bn,n("h2",fn,[n("a",xn,[n("span",null,[s("Console "),a(t,{text:"2022.2.5",type:"tip"})])])]),qn,n("div",jn,[wn,n("p",null,[s("在项目中加入如下依赖(如果没有),即可在编辑器脚本中处理针对插件核心类的"),n("a",Sn,[s("Code completion"),a(e)]),s("功能(快速导入类(import)、得到方法提示等操作)")]),Rn]),Un,Hn,n("ul",null,[n("li",null,[a(t,{text:"注意最终脚本需要删除这行代码",type:"danger"})])]),Jn])}const Ln=r(_,[["render",Cn],["__file","script.html.vue"]]),Pn=JSON.parse('{"path":"/guide/script.html","title":"脚本","lang":"zh-CN","frontmatter":{"title":"脚本","icon":"code-box-fill","headerDepth":4,"description":"脚本的作用: 开发者可以利用 Groovy 脚本来自定义一些逻辑,从而使得 api 更加灵活,例如对参数进行动态加密签名,放入 header,而不是直接写死 实现技术: Groovy 看到 Groovy 不熟悉请不要慌,语法和 Java 几乎一致(Java 就是香,手动一个狗头) 脚本流程图 测试项目 https://github.com/kings1...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/script.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/script.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"脚本"}],["meta",{"property":"og:description","content":"脚本的作用: 开发者可以利用 Groovy 脚本来自定义一些逻辑,从而使得 api 更加灵活,例如对参数进行动态加密签名,放入 header,而不是直接写死 实现技术: Groovy 看到 Groovy 不熟悉请不要慌,语法和 Java 几乎一致(Java 就是香,手动一个狗头) 脚本流程图 测试项目 https://github.com/kings1..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/script.svg"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"脚本"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"脚本\\",\\"image\\":[\\"https://api-buddy.com/img/script.svg\\",\\"https://api-buddy.com/img/script.png\\",\\"https://api-buddy.com/img/2022.2.5/console.png\\",\\"https://api-buddy.com/img/2024.1.5/addLibrary.png\\",\\"https://api-buddy.com/img/2022.2.3/scriptDonate.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"脚本流程图","slug":"脚本流程图","link":"#脚本流程图","children":[]},{"level":2,"title":"测试项目","slug":"测试项目","link":"#测试项目","children":[]},{"level":2,"title":"内置变量","slug":"内置变量","link":"#内置变量","children":[{"level":3,"title":"request","slug":"request","link":"#request","children":[]},{"level":3,"title":"response","slug":"response","link":"#response","children":[]},{"level":3,"title":"rfr","slug":"rfr","link":"#rfr","children":[]}]},{"level":2,"title":"引入第三方 Jar","slug":"引入第三方-jar","link":"#引入第三方-jar","children":[]},{"level":2,"title":"作用范围与顺序","slug":"作用范围与顺序","link":"#作用范围与顺序","children":[]},{"level":2,"title":"Console","slug":"console","link":"#console","children":[]},{"level":2,"title":"Demo","slug":"demo","link":"#demo","children":[{"level":3,"title":"1. 签名参数","slug":"_1-签名参数","link":"#_1-签名参数","children":[]},{"level":3,"title":"2. 利用某一个请求的响应充当请求的 Header 参数","slug":"_2-利用某一个请求的响应充当请求的-header-参数","link":"#_2-利用某一个请求的响应充当请求的-header-参数","children":[]},{"level":3,"title":"3. 设置一个Environment变量","slug":"_3-设置一个environment变量","link":"#_3-设置一个environment变量","children":[]}]},{"level":2,"title":"注意点","slug":"注意点","link":"#注意点","children":[]},{"level":2,"title":"脚本投稿 🌟","slug":"脚本投稿","link":"#脚本投稿","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":4.41,"words":1322},"filePathRelative":"guide/script.md","localizedDate":"2024年5月31日","autoDesc":true}');export{Ln as comp,Pn as data}; diff --git a/assets/script.html-OECdru8Y.js b/assets/script.html-OECdru8Y.js new file mode 100644 index 000000000..d1608460b --- /dev/null +++ b/assets/script.html-OECdru8Y.js @@ -0,0 +1,98 @@ +import{_ as l}from"./console_en-BWfI2C_a.js";import{_ as r}from"./addLibrary-m3-5pdM8.js";import{_ as u,r as o,o as d,c as k,a as n,d as s,b as t,w as h,e as p}from"./app-8OZtYazS.js";const m="/img/script_en.svg",g="/img/script_en.png",v="/img/2022.2.3/scriptDonate_en.png",_={},b=n("p",null,[n("strong",null,"Function"),s(": Developers can use Groovy scripts to customize some logic, which makes the API more flexible, such as dynamically encrypting and signing parameters and putting them in the header rather than directly writing dead.")],-1),y=n("strong",null,"Language",-1),f={href:"https://groovy-lang.org/",target:"_blank",rel:"noopener noreferrer"},x=p('

    The groovy syntax is almost identical to Java.

    Script flow chart

    Test Project

    ',4),q={href:"https://github.com/kings1990/fast-request-samples",target:"_blank",rel:"noopener noreferrer"},w=n("h2",{id:"built-in-variable",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#built-in-variable"},[n("span",null,"Built-in variable")])],-1),j=n("div",{class:"hint-container caution"},[n("p",{class:"hint-container-title"},"Notice"),n("p",null,"Developers should pay attention to the fact that the built-in variable has been declared in the script edited by themselves instead of creating a new Request or Response object. Otherwise, it may cause unexpected errors.")],-1),S={href:"https://hutool.cn/",target:"_blank",rel:"noopener noreferrer"},R=n("code",null,"cn.hutool.http.HttpRequest",-1),U={id:"request",tabindex:"-1"},H={class:"header-anchor",href:"#request"},N=n("ul",null,[n("li",null,"Remark: Contains request-related information, such as url, header, body, parameters"),n("li",null,"Type: cn.hutool.http.HttpRequest")],-1),T=n("p",null,"Parameters can be dynamically adjusted by modifying the request value.",-1),C={id:"response",tabindex:"-1"},I={class:"header-anchor",href:"#response"},P=n("ul",null,[n("li",null,"Remark: Contains response information"),n("li",null,"Type: cn.hutool.http.HttpResponse")],-1),D=n("p",null,"You can get the result of the response through the response value.",-1),O={id:"rfr",tabindex:"-1"},A={class:"header-anchor",href:"#rfr"},J=n("ul",null,[n("li",null,"Remark: Contains some properties related to plugin interaction")],-1),z={id:"rfr-projectheader",tabindex:"-1"},B={class:"header-anchor",href:"#rfr-projectheader"},L=n("div",{class:"language-text","data-ext":"text","data-title":"text"},[n("pre",{class:"language-text"},[n("code",null,`Remark: Contains project-level headers, which can be modified to dynamically set values in the UI +Type: java.util.LinkedHashMap +`)])],-1),G={id:"rfr-apiheader",tabindex:"-1"},F={class:"header-anchor",href:"#rfr-apiheader"},E=n("div",{class:"language-text","data-ext":"text","data-title":"text"},[n("pre",{class:"language-text"},[n("code",null,`Remark: Contains module level headers, which can be modified to dynamically set values in the UI +Type: java.util.LinkedHashMap +`)])],-1),M={id:"rfr-currentprojectname",tabindex:"-1"},V={class:"header-anchor",href:"#rfr-currentprojectname"},Z=n("div",{class:"language-text","data-ext":"text","data-title":"text"},[n("pre",{class:"language-text"},[n("code",null,`Remark: The project name of the item currently selected in the drop-down box +Type: java.lang.String +`)])],-1),K={id:"rfr-currentenvname",tabindex:"-1"},Y={class:"header-anchor",href:"#rfr-currentenvname"},Q=n("div",{class:"language-text","data-ext":"text","data-title":"text"},[n("pre",{class:"language-text"},[n("code",null,`Remark: The name of the environment currently selected in the drop-down box +Type: java.lang.String +`)])],-1),W={id:"rfr-currentdomain",tabindex:"-1"},X={class:"header-anchor",href:"#rfr-currentdomain"},$=n("div",{class:"language-text","data-ext":"text","data-title":"text"},[n("pre",{class:"language-text"},[n("code",null,`Remark: Get the currently active domain link +Type: java.lang.String +`)])],-1),nn={id:"rfr-currentmodulename",tabindex:"-1"},sn={class:"header-anchor",href:"#rfr-currentmodulename"},tn=n("div",{class:"language-text","data-ext":"text","data-title":"text"},[n("pre",{class:"language-text"},[n("code",null,`Remark: Get the currently module name of the API +Type: java.lang.String +`)])],-1),an=n("h2",{id:"import-third-jar",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#import-third-jar"},[n("span",null,"Import third jar")])],-1),en={class:"hint-container tip"},on=n("p",{class:"hint-container-title"},"Built-in Jar",-1),pn=n("div",{class:"language-text","data-ext":"text","data-title":"text"},[n("pre",{class:"language-text"},[n("code",null,`com.alibaba:fastjson:1.2.78 +cn.hutool:hutool-all:5.8.5 +com.google.guava:guava:30.1.1-jre +`)])],-1),cn=n("p",null,"The version of Jar will be updated from time to time. If you find a bug, please contact up to upgrade.",-1),ln=n("p",null,"Developers can use the tools and methods provided by the above three Jars to reference directly in the script without relying on third-party Jar.",-1),rn=n("a",{href:"#demo"},"Demo",-1),un={href:"https://www.jetbrains.com/help/idea/auto-completing-code.html",target:"_blank",rel:"noopener noreferrer"},dn=p(`

    Downloading the jar may take extra time.

    @Grab("org.apache.commons:commons-lang3:3.12.0")
    +import org.apache.commons.lang3.StringUtils
    +
    +String debug = request.header("debug")
    +if(StringUtils.isNotBlank(debug)){
    +    //some logic
    +}
    +
    //Note the file: prefix here
    +this.class.classLoader.addURL(new URL("file:/path/to/jar"))
    +def StringUtils = Class.forName("org.apache.commons.lang3.StringUtils").getDeclaredConstructor().newInstance()
    +
    +String debug = request.header("debug")//get header
    +if(StringUtils.isNotBlank(debug)){
    +    //some logic
    +}
    +

    Scope and order

    `,6),kn=n("strong",null,"Scope",-1),hn=n("code",null,"Project-level",-1),mn=n("code",null,"Single API level",-1),gn=n("code",null,"Project-level",-1),vn=n("p",null,[n("code",null,"Project-level"),s(" will effort all APIs in the project, and "),n("code",null,"Single API level"),s(" only affects one API.")],-1),_n=n("p",null,[s("Execute order:"),n("code",null,"Project-level"),s("->"),n("code",null,"Single API level")],-1),bn=n("p",null,[n("img",{src:g,alt:"scriptScope",loading:"lazy"})],-1),yn={id:"console",tabindex:"-1"},fn={class:"header-anchor",href:"#console"},xn=p(`

    The console helps developers print some info you want.

    console.info("info")
    +console.print("print info")
    +console.warn("warn")
    +console.success("success")
    +console.error("error")
    +
    +

    console

    Demo

    ',4),qn={class:"hint-container tip"},wn=n("p",{class:"hint-container-title"},"Code completion support",-1),jn={href:"https://www.jetbrains.com/help/idea/auto-completing-code.html",target:"_blank",rel:"noopener noreferrer"},Sn=n("p",null,[n("img",{src:r,alt:"",loading:"lazy"})],-1),Rn=n("h3",{id:"_1-sign-parameter",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#_1-sign-parameter"},[n("span",null,"1. Sign parameter")])],-1),Un=n("p",null,"Create a new xxx.groovy file in your local idea, paste the following code. After appropriate modification, it can ensure that the local can run normally and then paste the code into the script.",-1),Hn=p(`

    HttpRequest request = HttpUtil.createPost("http://localhost:8081/book/add")

    import cn.hutool.core.util.CharsetUtil
    +import cn.hutool.core.util.StrUtil
    +import cn.hutool.crypto.digest.DigestUtil
    +import cn.hutool.http.HttpRequest
    +import cn.hutool.http.HttpUtil
    +
    +//Script logic begins
    +String body = StrUtil.str(request.bodyBytes(), CharsetUtil.CHARSET_UTF_8)
    +body = "xxxx"//just for test
    +String sign = DigestUtil.md5Hex(body)
    +request.header("sign",sign)
    +

    2. Use the response of a request as the Header parameter of the request.

    Note that the logic of obtaining the token must be handled in conjunction with the data structure returned by the http response. For example, if response returns

    {
    +  "success": true,
    +  "code": 200,
    +  "data": {
    +    "token": "xxxxx"
    +  }
    +}
    +

    It needs to be written like this

    String token = JSON.parseObject(myResponse.body()).getJSONObject("data").getString("token")

    import cn.hutool.core.util.CharsetUtil
    +import cn.hutool.core.util.StrUtil
    +import cn.hutool.crypto.digest.DigestUtil
    +import cn.hutool.http.HttpRequest
    +import cn.hutool.http.HttpResponse
    +import cn.hutool.http.HttpUtil
    +import com.alibaba.fastjson.JSON
    +
    +HttpRequest myRequest = HttpUtil.createPost("http://localhost:8081/api/v1.0/login")
    +HttpResponse myResponse = myRequest.execute()
    +if(myResponse.isOk()){
    +    String token = JSON.parseObject(myResponse.body()).getString("token")
    +    request.header("token",token)
    +}
    +

    3. Set an environment variable

    If response returns

    {
    +  "success": true,
    +  "code": 200,
    +  "data": {
    +    "token": "xxxxx"
    +  }
    +}
    +

    You can add this code in the post-script

    import cn.hutool.core.util.CharsetUtil
    +import cn.hutool.core.util.StrUtil
    +import cn.hutool.crypto.digest.DigestUtil
    +import cn.hutool.http.HttpRequest
    +import cn.hutool.http.HttpResponse
    +import cn.hutool.http.HttpUtil
    +import com.alibaba.fastjson.JSON
    +
    +HttpRequest myRequest = HttpUtil.createPost("http://localhost:8081/api/v1.0/login")
    +HttpResponse myResponse = myRequest.execute()
    +if(myResponse.isOk()){
    +    String token = JSON.parseObject(myResponse.body()).getJSONObject("data").getString("token")
    +    rfr.environment.put("token",token)
    +}
    +

    Note

    • Groovy scripts are not sensitive to ;, Java uses ; as the end of the statement code, Groovy uses a newline to indicate the end of a code
    • The built-in variable has been declared. For example, in Demo 2, if an additional request needs to be created, the variable name needs to be noted that it cannot be the same as the built-in variable.

    Script contribute 🌟

    In order to make the script more powerful, community script are welcome, and developers can donate the script in comments

    • Format
    /**
    + * Author:Kings
    + * Main Page:https://github.com/kings1990
    + * Function:xxxxx
    + */
    +
    +//Script begin
    +....
    +

    scriptDonate

    ',20);function Nn(Tn,Cn){const e=o("ExternalLinkIcon"),a=o("Badge"),c=o("ColorIcon"),i=o("RouteLink");return d(),k("div",null,[b,n("p",null,[y,s(": "),n("a",f,[s("Groovy"),t(e)])]),x,n("p",null,[n("a",q,[s("https://github.com/kings1990/fast-request-samples"),t(e)])]),w,j,n("p",null,[s("Plugin use "),n("a",S,[s("hutool"),t(e)]),s(),R,s(" to send request")]),n("h3",U,[n("a",H,[n("span",null,[s("request "),t(a,{text:"2022.2.3️",type:"tip"})])])]),N,T,n("h3",C,[n("a",I,[n("span",null,[s("response "),t(a,{text:"2022.2.3️",type:"tip"})])])]),P,D,n("h3",O,[n("a",A,[n("span",null,[s("rfr "),t(a,{text:"2022.2.3️",type:"tip"})])])]),J,n("h4",z,[n("a",B,[n("span",null,[s("rfr.projectHeader "),t(a,{text:"2022.2.3️",type:"tip"})])])]),L,n("h4",G,[n("a",F,[n("span",null,[s("rfr.apiHeader "),t(a,{text:"2022.2.3️",type:"tip"})])])]),E,n("h4",M,[n("a",V,[n("span",null,[s("rfr.currentProjectName "),t(a,{text:"2022.2.5️",type:"tip"})])])]),Z,n("h4",K,[n("a",Y,[n("span",null,[s("rfr.currentEnvName "),t(a,{text:"2022.2.5️",type:"tip"})])])]),Q,n("h4",W,[n("a",X,[n("span",null,[s("rfr.currentDomain "),t(a,{text:"2022.3.1️",type:"tip"})])])]),$,n("h4",nn,[n("a",sn,[n("span",null,[s("rfr.currentModuleName "),t(a,{text:"2022.3.1️",type:"tip"})])])]),tn,an,n("div",en,[on,pn,cn,ln,n("p",null,[s("Go to "),rn,s(" to learn how to get "),n("a",un,[s("Code completion"),t(e)]),s(".")])]),dn,n("p",null,[kn,s(": "),hn,s(" and "),mn,s(","),gn,s(" needs to click "),t(i,{to:"/en/guide/features/projectValueConfig.html"},{default:h(()=>[t(c,{icon:"quanjucanshu"}),s(" Project-level config")]),_:1}),s(".")]),vn,_n,bn,n("h2",yn,[n("a",fn,[n("span",null,[s("Console "),t(a,{text:"2022.2.5",type:"tip"})])])]),xn,n("div",qn,[wn,n("p",null,[s("Add the following dependency to the project (if there is none), then you can use "),n("a",jn,[s("Code completion"),t(e)]),s(" for the plugin's core classes in the editor (quickly importing classes, getting method hints, etc.).")]),Sn]),Rn,Un,n("ul",null,[n("li",null,[t(a,{text:"Note that the final script needs to remove this line of code",type:"danger"})])]),Hn])}const On=u(_,[["render",Nn],["__file","script.html.vue"]]),An=JSON.parse('{"path":"/en/guide/script.html","title":"Script","lang":"en-US","frontmatter":{"title":"Script","icon":"code-box-fill","description":"Function: Developers can use Groovy scripts to customize some logic, which makes the API more flexible, such as dynamically encrypting and signing parameters and putting them in...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/script.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/script.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Script"}],["meta",{"property":"og:description","content":"Function: Developers can use Groovy scripts to customize some logic, which makes the API more flexible, such as dynamically encrypting and signing parameters and putting them in..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/script_en.svg"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Script"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Script\\",\\"image\\":[\\"https://api-buddy.com/img/script_en.svg\\",\\"https://api-buddy.com/img/script_en.png\\",\\"https://api-buddy.com/img/2022.2.5/console_en.png\\",\\"https://api-buddy.com/img/2024.1.5/addLibrary.png\\",\\"https://api-buddy.com/img/2022.2.3/scriptDonate_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Script flow chart","slug":"script-flow-chart","link":"#script-flow-chart","children":[]},{"level":2,"title":"Test Project","slug":"test-project","link":"#test-project","children":[]},{"level":2,"title":"Built-in variable","slug":"built-in-variable","link":"#built-in-variable","children":[{"level":3,"title":"request","slug":"request","link":"#request","children":[]},{"level":3,"title":"response","slug":"response","link":"#response","children":[]},{"level":3,"title":"rfr","slug":"rfr","link":"#rfr","children":[]}]},{"level":2,"title":"Import third jar","slug":"import-third-jar","link":"#import-third-jar","children":[]},{"level":2,"title":"Scope and order","slug":"scope-and-order","link":"#scope-and-order","children":[]},{"level":2,"title":"Console","slug":"console","link":"#console","children":[]},{"level":2,"title":"Demo","slug":"demo","link":"#demo","children":[{"level":3,"title":"1. Sign parameter","slug":"_1-sign-parameter","link":"#_1-sign-parameter","children":[]},{"level":3,"title":"2. Use the response of a request as the Header parameter of the request.","slug":"_2-use-the-response-of-a-request-as-the-header-parameter-of-the-request","link":"#_2-use-the-response-of-a-request-as-the-header-parameter-of-the-request","children":[]},{"level":3,"title":"3. Set an environment variable","slug":"_3-set-an-environment-variable","link":"#_3-set-an-environment-variable","children":[]}]},{"level":2,"title":"Note","slug":"note","link":"#note","children":[]},{"level":2,"title":"Script contribute 🌟","slug":"script-contribute","link":"#script-contribute","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":3.13,"words":939},"filePathRelative":"en/guide/script.md","localizedDate":"May 31, 2024","autoDesc":true}');export{On as comp,An as data}; diff --git a/assets/script.html-jhPE1GsP.js b/assets/script.html-jhPE1GsP.js new file mode 100644 index 000000000..7f2db3896 --- /dev/null +++ b/assets/script.html-jhPE1GsP.js @@ -0,0 +1 @@ +import{_ as o,a}from"./scriptModule_en-G44xzFgb.js";import{_ as s,r as i,o as n,c as p,a as e,d as t,b as c,w as l}from"./app-8OZtYazS.js";const m={},d=e("h1",{id:"script",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#script"},[e("span",null,"Script")])],-1),u=e("p",null,[e("img",{src:o,alt:"scriptProject",loading:"lazy"})],-1),g=e("p",null,[e("img",{src:a,alt:"scriptModule",loading:"lazy"})],-1);function h(y,f){const r=i("RouteLink");return n(),p("div",null,[d,e("p",null,[t("Scripts allow developers to more flexibly, dynamically and easily modify some input parameters of the request process and the processing of responses. Please refer to "),c(r,{to:"/en/guide/script.html"},{default:l(()=>[t("Script")]),_:1}),t(".")]),u,g])}const b=s(m,[["render",h],["__file","script.html.vue"]]),x=JSON.parse('{"path":"/en/guide/features/script.html","title":"Script","lang":"en-US","frontmatter":{"description":"Script Scripts allow developers to more flexibly, dynamically and easily modify some input parameters of the request process and the processing of responses. Please refer to . s...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/script.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/script.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Script"}],["meta",{"property":"og:description","content":"Script Scripts allow developers to more flexibly, dynamically and easily modify some input parameters of the request process and the processing of responses. Please refer to . s..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.3/scriptProject_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Script"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Script\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.3/scriptProject_en.png\\",\\"https://api-buddy.com/img/2022.2.3/scriptModule_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.11,"words":33},"filePathRelative":"en/guide/features/script.md","localizedDate":"May 31, 2024","autoDesc":true}');export{b as comp,x as data}; diff --git a/assets/scriptModule-qWOTuHgm.js b/assets/scriptModule-qWOTuHgm.js new file mode 100644 index 000000000..99a515369 --- /dev/null +++ b/assets/scriptModule-qWOTuHgm.js @@ -0,0 +1 @@ +const s="/img/2022.2.3/scriptProject.png",t="/img/2022.2.3/scriptModule.png";export{s as _,t as a}; diff --git a/assets/scriptModule_en-G44xzFgb.js b/assets/scriptModule_en-G44xzFgb.js new file mode 100644 index 000000000..3761658e7 --- /dev/null +++ b/assets/scriptModule_en-G44xzFgb.js @@ -0,0 +1 @@ +const s="/img/2022.2.3/scriptProject_en.png",t="/img/2022.2.3/scriptModule_en.png";export{s as _,t as a}; diff --git a/assets/searchEveryWhere-Eoz90lA4.js b/assets/searchEveryWhere-Eoz90lA4.js new file mode 100644 index 000000000..7b3b805c3 --- /dev/null +++ b/assets/searchEveryWhere-Eoz90lA4.js @@ -0,0 +1 @@ +const e="/img/2023.1.7/searchEveryWhere.png";export{e as _}; diff --git a/assets/searchEveryWhere.html-AyFvK1hu.js b/assets/searchEveryWhere.html-AyFvK1hu.js new file mode 100644 index 000000000..b3d902852 --- /dev/null +++ b/assets/searchEveryWhere.html-AyFvK1hu.js @@ -0,0 +1,6 @@ +import{_ as e}from"./searchEveryWhere-Eoz90lA4.js";import{_ as t,o as r,c as a,e as o}from"./app-8OZtYazS.js";const c={},n=o(`

    SearchEveryWhere

    输入案例
    +/url              (查询指定url)
    +get /list         (指定get方式指定url)
    +post /save        (指定post方式指定url)
    +方法关键字          (查询指定描述)
    +

    searchEveryWhere

    ',3),s=[n];function h(i,p){return r(),a("div",null,s)}const d=t(c,[["render",h],["__file","searchEveryWhere.html.vue"]]),y=JSON.parse('{"path":"/guide/features/searchEveryWhere.html","title":"SearchEveryWhere","lang":"zh-CN","frontmatter":{"description":"SearchEveryWhere searchEveryWhere ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/searchEveryWhere.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/searchEveryWhere.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"SearchEveryWhere"}],["meta",{"property":"og:description","content":"SearchEveryWhere searchEveryWhere "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.1.7/searchEveryWhere.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"SearchEveryWhere"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"SearchEveryWhere\\",\\"image\\":[\\"https://api-buddy.com/img/2023.1.7/searchEveryWhere.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.15,"words":44},"filePathRelative":"guide/features/searchEveryWhere.md","localizedDate":"2024年5月31日","autoDesc":true}');export{d as comp,y as data}; diff --git a/assets/searchEveryWhere.html-te8aIUWf.js b/assets/searchEveryWhere.html-te8aIUWf.js new file mode 100644 index 000000000..ac3316329 --- /dev/null +++ b/assets/searchEveryWhere.html-te8aIUWf.js @@ -0,0 +1,6 @@ +import{_ as e}from"./searchEveryWhere-Eoz90lA4.js";import{_ as t,o as r,c as a,e as c}from"./app-8OZtYazS.js";const o={},n=c(`

    SearchEveryWhere

    Example:
    +/url              (search by url)
    +get /list         (search by get method and url)
    +post /save        (search by post method and url)
    +description keywords  (search by keywords)
    +

    searchEveryWhere

    ',3),s=[n];function h(i,p){return r(),a("div",null,s)}const l=t(o,[["render",h],["__file","searchEveryWhere.html.vue"]]),y=JSON.parse('{"path":"/en/guide/features/searchEveryWhere.html","title":"SearchEveryWhere","lang":"en-US","frontmatter":{"description":"SearchEveryWhere searchEveryWhere ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/searchEveryWhere.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/searchEveryWhere.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"SearchEveryWhere"}],["meta",{"property":"og:description","content":"SearchEveryWhere searchEveryWhere "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.1.7/searchEveryWhere.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"SearchEveryWhere"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"SearchEveryWhere\\",\\"image\\":[\\"https://api-buddy.com/img/2023.1.7/searchEveryWhere.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.1,"words":29},"filePathRelative":"en/guide/features/searchEveryWhere.md","localizedDate":"May 31, 2024","autoDesc":true}');export{l as comp,y as data}; diff --git a/assets/sendRequest-nhTc-dPg.js b/assets/sendRequest-nhTc-dPg.js new file mode 100644 index 000000000..8a2ac46a4 --- /dev/null +++ b/assets/sendRequest-nhTc-dPg.js @@ -0,0 +1 @@ +const s="/img/sendRequest.png";export{s as _}; diff --git a/assets/settingManager.html-TZ2kSRsL.js b/assets/settingManager.html-TZ2kSRsL.js new file mode 100644 index 000000000..57957c285 --- /dev/null +++ b/assets/settingManager.html-TZ2kSRsL.js @@ -0,0 +1 @@ +import{_ as r,r as n,o as s,c,a as e,d as t,b as a,w as g}from"./app-8OZtYazS.js";const m="/img/settingManager_en.png",l={},p=e("h1",{id:"setting-manager",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#setting-manager"},[e("span",null,"Setting manager")])],-1),d={class:"hint-container tip"},u=e("p",{class:"hint-container-title"},"Tips",-1),h=e("p",null,"Quickly locate the configuration management interface.",-1),_=e("p",null,[e("img",{src:m,alt:"settingManager",loading:"lazy"})],-1);function f(y,M){const o=n("ColorIcon"),i=n("RouteLink");return s(),c("div",null,[p,e("div",d,[u,e("p",null,[t("Please use "),a(o,{icon:"domainConfig"}),t(),a(i,{to:"/en/guide/features/projectLevelDomainConfig.html"},{default:g(()=>[t("Project-level domain config")]),_:1})])]),h,_])}const T=r(l,[["render",f],["__file","settingManager.html.vue"]]),k=JSON.parse('{"path":"/en/guide/features/settingManager.html","title":"Setting manager","lang":"en-US","frontmatter":{"description":"Setting manager Tips Please use Quickly locate the configuration management interface. settingManager ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/settingManager.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/settingManager.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Setting manager"}],["meta",{"property":"og:description","content":"Setting manager Tips Please use Quickly locate the configuration management interface. settingManager "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/settingManager_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Setting manager"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Setting manager\\",\\"image\\":[\\"https://api-buddy.com/img/settingManager_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.07,"words":22},"filePathRelative":"en/guide/features/settingManager.md","localizedDate":"May 31, 2024","autoDesc":true}');export{T as comp,k as data}; diff --git a/assets/settingManager.html-pLB9xErd.js b/assets/settingManager.html-pLB9xErd.js new file mode 100644 index 000000000..ead11fbf1 --- /dev/null +++ b/assets/settingManager.html-pLB9xErd.js @@ -0,0 +1 @@ +import{_ as r,r as a,o as s,c,a as t,d as e,b as n,w as m}from"./app-8OZtYazS.js";const p="/img/settingManager.png",g={},l=t("h1",{id:"管理配置",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#管理配置"},[t("span",null,"管理配置")])],-1),d={class:"hint-container tip"},u=t("p",{class:"hint-container-title"},"提示",-1),h=t("p",null,"可以快速定位到配置管理界面",-1),_=t("p",null,[t("img",{src:p,alt:"settingManager",loading:"lazy"})],-1);function f(y,M){const o=a("ColorIcon"),i=a("RouteLink");return s(),c("div",null,[l,t("div",d,[u,t("p",null,[e("建议使用 "),n(o,{icon:"domainConfig"}),e(),n(i,{to:"/guide/features/projectLevelDomainConfig.html"},{default:m(()=>[e("项目级别域名配置")]),_:1})])]),h,_])}const b=r(g,[["render",f],["__file","settingManager.html.vue"]]),x=JSON.parse('{"path":"/guide/features/settingManager.html","title":"管理配置","lang":"zh-CN","frontmatter":{"description":"管理配置 提示 建议使用 可以快速定位到配置管理界面 settingManager ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/settingManager.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/settingManager.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"管理配置"}],["meta",{"property":"og:description","content":"管理配置 提示 建议使用 可以快速定位到配置管理界面 settingManager "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/settingManager.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"管理配置"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"管理配置\\",\\"image\\":[\\"https://api-buddy.com/img/settingManager.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.12,"words":37},"filePathRelative":"guide/features/settingManager.md","localizedDate":"2024年5月31日","autoDesc":true}');export{b as comp,x as data}; diff --git a/assets/shareApi-uRFN2kOm.js b/assets/shareApi-uRFN2kOm.js new file mode 100644 index 000000000..89289aec2 --- /dev/null +++ b/assets/shareApi-uRFN2kOm.js @@ -0,0 +1 @@ +const p="/img/shareApi.png";export{p as _}; diff --git a/assets/shareApiDoc.html-Z0PUP8x_.js b/assets/shareApiDoc.html-Z0PUP8x_.js new file mode 100644 index 000000000..1d178c47d --- /dev/null +++ b/assets/shareApiDoc.html-Z0PUP8x_.js @@ -0,0 +1 @@ +import{_ as o}from"./shareApi_en-cvbZZWPP.js";import{_ as a}from"./apiDocExample-I6FA1jbR.js";import{_ as n,o as r,c as i,a as e,d as t}from"./app-8OZtYazS.js";const s={},p=e("h1",{id:"api-document-share",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#api-document-share"},[e("span",null,"API document share")])],-1),m=e("p",null,[t("Please note that the API in "),e("code",null,"word"),t(" form is implemented in html, so don't feel strange, just export it.")],-1),c=e("p",null,"Response Example requires running your API to be displayed.",-1),d=e("p",null,[e("img",{src:o,alt:"shareDocButton",loading:"lazy"})],-1),l=e("p",null,[e("img",{src:a,alt:"apiDocExample",loading:"lazy"})],-1),h=[p,m,c,d,l];function u(g,_){return r(),i("div",null,h)}const P=n(s,[["render",u],["__file","shareApiDoc.html.vue"]]),x=JSON.parse(`{"path":"/en/guide/features/shareApiDoc.html","title":"API document share","lang":"en-US","frontmatter":{"description":"API document share Please note that the API in word form is implemented in html, so don't feel strange, just export it. Response Example requires running your API to be displaye...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/shareApiDoc.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/shareApiDoc.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"API document share"}],["meta",{"property":"og:description","content":"API document share Please note that the API in word form is implemented in html, so don't feel strange, just export it. Response Example requires running your API to be displaye..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/shareApi_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"API document share"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"API document share\\",\\"image\\":[\\"https://api-buddy.com/img/shareApi_en.png\\",\\"https://api-buddy.com/img/apiDocExample.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.12,"words":36},"filePathRelative":"en/guide/features/shareApiDoc.md","localizedDate":"May 31, 2024","autoDesc":true}`);export{P as comp,x as data}; diff --git a/assets/shareApiDoc.html-mH-GlHrT.js b/assets/shareApiDoc.html-mH-GlHrT.js new file mode 100644 index 000000000..d75fedee2 --- /dev/null +++ b/assets/shareApiDoc.html-mH-GlHrT.js @@ -0,0 +1 @@ +import{_ as t}from"./shareApi-uRFN2kOm.js";import{_ as a}from"./apiDocExample-I6FA1jbR.js";import{_ as o,o as r,c as i,a as e}from"./app-8OZtYazS.js";const n={},p=e("h1",{id:"api-文档分享",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#api-文档分享"},[e("span",null,"API 文档分享")])],-1),s=e("p",null,"请注意 word 形式的 API 内部采用 html 来实现的,所以不要觉得奇怪,导出就行",-1),c=e("p",null,"Response Example 需要运行你的 API 后才会被显示",-1),m=e("p",null,[e("img",{src:t,alt:"shareDocButton",loading:"lazy"})],-1),l=e("p",null,[e("img",{src:a,alt:"apiDocExample",loading:"lazy"})],-1),d=[p,s,c,m,l];function h(u,_){return r(),i("div",null,d)}const f=o(n,[["render",h],["__file","shareApiDoc.html.vue"]]),D=JSON.parse('{"path":"/guide/features/shareApiDoc.html","title":"API 文档分享","lang":"zh-CN","frontmatter":{"description":"API 文档分享 请注意 word 形式的 API 内部采用 html 来实现的,所以不要觉得奇怪,导出就行 Response Example 需要运行你的 API 后才会被显示 shareDocButton apiDocExample ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/shareApiDoc.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/shareApiDoc.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"API 文档分享"}],["meta",{"property":"og:description","content":"API 文档分享 请注意 word 形式的 API 内部采用 html 来实现的,所以不要觉得奇怪,导出就行 Response Example 需要运行你的 API 后才会被显示 shareDocButton apiDocExample "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/shareApi.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"API 文档分享"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"API 文档分享\\",\\"image\\":[\\"https://api-buddy.com/img/shareApi.png\\",\\"https://api-buddy.com/img/apiDocExample.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.18,"words":53},"filePathRelative":"guide/features/shareApiDoc.md","localizedDate":"2024年5月31日","autoDesc":true}');export{f as comp,D as data}; diff --git a/assets/shareApi_en-cvbZZWPP.js b/assets/shareApi_en-cvbZZWPP.js new file mode 100644 index 000000000..a7bc432a0 --- /dev/null +++ b/assets/shareApi_en-cvbZZWPP.js @@ -0,0 +1 @@ +const p="/img/shareApi_en.png";export{p as _}; diff --git a/assets/shortcut-JpCYMtUj.js b/assets/shortcut-JpCYMtUj.js new file mode 100644 index 000000000..62ca01986 --- /dev/null +++ b/assets/shortcut-JpCYMtUj.js @@ -0,0 +1 @@ +const t="/img/shortcut.png";export{t as _}; diff --git a/assets/shortcut.html-0quKoOk9.js b/assets/shortcut.html-0quKoOk9.js new file mode 100644 index 000000000..a49ec9cec --- /dev/null +++ b/assets/shortcut.html-0quKoOk9.js @@ -0,0 +1 @@ +import{_ as e}from"./shortcut-JpCYMtUj.js";import{_ as o,o as a,c as r,a as t}from"./app-8OZtYazS.js";const n={},i=t("p",null,"快捷键有利于提升操作的速度,熟练得使用会让操作变得更加简单。",-1),s=t("div",{class:"hint-container info"},[t("p",{class:"hint-container-title"},"设置快捷键"),t("p",null,"setting → keymap → 输入框输入 FastRequest → 右键对应的条目进行修改")],-1),c=t("p",null,[t("img",{src:e,alt:"shortcut",loading:"lazy"})],-1),m=[i,s,c];function p(l,d){return a(),r("div",null,m)}const g=o(n,[["render",p],["__file","shortcut.html.vue"]]),_=JSON.parse('{"path":"/guide/getstarted/shortcut.html","title":"快捷键","lang":"zh-CN","frontmatter":{"title":"快捷键","icon":"shortcut-fill","description":"快捷键有利于提升操作的速度,熟练得使用会让操作变得更加简单。 设置快捷键 setting → keymap → 输入框输入 FastRequest → 右键对应的条目进行修改 shortcut ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/getstarted/shortcut.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/getstarted/shortcut.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"快捷键"}],["meta",{"property":"og:description","content":"快捷键有利于提升操作的速度,熟练得使用会让操作变得更加简单。 设置快捷键 setting → keymap → 输入框输入 FastRequest → 右键对应的条目进行修改 shortcut "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/shortcut.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"快捷键"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"快捷键\\",\\"image\\":[\\"https://api-buddy.com/img/shortcut.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.21,"words":62},"filePathRelative":"guide/getstarted/shortcut.md","localizedDate":"2024年5月31日","autoDesc":true}');export{g as comp,_ as data}; diff --git a/assets/shortcut.html-bCKldXkK.js b/assets/shortcut.html-bCKldXkK.js new file mode 100644 index 000000000..b99681ce4 --- /dev/null +++ b/assets/shortcut.html-bCKldXkK.js @@ -0,0 +1 @@ +import{_ as o}from"./shortcut-JpCYMtUj.js";import{_ as r,o as a,c as i,a as t,d as e}from"./app-8OZtYazS.js";const s={},n=t("p",null,"Shortcut keys help improve the operation's speed, and professional use will make the process more easier.",-1),c=t("ul",null,[t("li",null,"How to")],-1),l=t("p",null,[e("setting -> keymap -> fill in "),t("code",null,"FastRequest"),e(" -> Right-click the corresponding entry to modify")],-1),p=t("p",null,[t("img",{src:o,alt:"",loading:"lazy"})],-1),m=[n,c,l,p];function d(h,u){return a(),i("div",null,m)}const y=r(s,[["render",d],["__file","shortcut.html.vue"]]),f=JSON.parse(`{"path":"/en/guide/getstarted/shortcut.html","title":"Shortcut","lang":"en-US","frontmatter":{"title":"Shortcut","icon":"shortcut-fill","description":"Shortcut keys help improve the operation's speed, and professional use will make the process more easier. How to setting -> keymap -> fill in FastRequest -> Right-click the corr...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/getstarted/shortcut.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/getstarted/shortcut.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Shortcut"}],["meta",{"property":"og:description","content":"Shortcut keys help improve the operation's speed, and professional use will make the process more easier. How to setting -> keymap -> fill in FastRequest -> Right-click the corr..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/shortcut.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Shortcut"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Shortcut\\",\\"image\\":[\\"https://api-buddy.com/img/shortcut.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.12,"words":37},"filePathRelative":"en/guide/getstarted/shortcut.md","localizedDate":"May 31, 2024","autoDesc":true}`);export{y as comp,f as data}; diff --git a/assets/showCommentInNavigate-eoTLjphJ.js b/assets/showCommentInNavigate-eoTLjphJ.js new file mode 100644 index 000000000..ff1664e3f --- /dev/null +++ b/assets/showCommentInNavigate-eoTLjphJ.js @@ -0,0 +1 @@ +const o="/img/2022.2.6/showCommentConfig.png",s="/img/2022.2.6/showCommentInClass.png",m="/img/2022.2.6/showCommentInNavigate.png";export{o as _,s as a,m as b}; diff --git a/assets/showToolbar-1uOrduVA.js b/assets/showToolbar-1uOrduVA.js new file mode 100644 index 000000000..abad42bcc --- /dev/null +++ b/assets/showToolbar-1uOrduVA.js @@ -0,0 +1 @@ +const s="/img/faq/slowOperationsConfig.png",o="/img/faq/enableNotifications.png",a="/img/faq/dataTransfer202313.png",i="/img/skill/multiFileUpload.png",t="/img/faq/showToolbar.png";export{a as _,s as a,o as b,i as c,t as d}; diff --git a/assets/slack-roTTHLlw.js b/assets/slack-roTTHLlw.js new file mode 100644 index 000000000..827fe0254 --- /dev/null +++ b/assets/slack-roTTHLlw.js @@ -0,0 +1 @@ +const s="/img/slack.png";export{s as _}; diff --git a/assets/sponsor.html-3W8kBsh2.js b/assets/sponsor.html-3W8kBsh2.js new file mode 100644 index 000000000..5831c1842 --- /dev/null +++ b/assets/sponsor.html-3W8kBsh2.js @@ -0,0 +1 @@ +import{_ as o,o as a,c as i,a as e,e as n,d as r}from"./app-8OZtYazS.js";const l="/img/whySponsor.png",s={},p=n('

    优势

    1. 本软件下载量 Downloads
    2. 每次软件更新均会在软件内部推送更新链接,告知用户返回网站查看相关的更新日志
    3. 软件内部增设文档按钮可以快速返回网站首页,促使开发者前往网站查看功能
    4. 开发者也会让软件用户主动先去看文档,再提问

    综上因素,赞助者将在本站有更大机会得到曝光.

    为什么要赞助

    首页上墙需提供的资料

    提供 Logo(透明背景最佳、256×256px) 、链接、横向 logo(660*150px)、背景主页(宽度370px下显示清晰即可,提供超过尺寸的会被压缩)

    联系我们

    ',7),c=["src"],m=e("ol",null,[e("li",null,[r("扫码添加微信,添加好友时请备注:"),e("mark",null,"赞助")]),e("li",null,"好友添加成功后请发送赞助支付截图")],-1);function d(t,g){return a(),i("div",null,[p,e("img",{style:{width:"300px",height:"370px"},src:t.$withBase("/img/wechatRfr.jpg")},null,8,c),m])}const u=o(s,[["render",d],["__file","sponsor.html.vue"]]),_=JSON.parse('{"path":"/guide/sponsor.html","title":"赞助","lang":"zh-CN","frontmatter":{"title":"赞助","icon":"aixin","description":"优势 本软件下载量 Downloads 每次软件更新均会在软件内部推送更新链接,告知用户返回网站查看相关的更新日志 软件内部增设文档按钮可以快速返回网站首页,促使开发者前往网站查看功能 开发者也会让软件用户主动先去看文档,再提问 综上因素,赞助者将在本站有更大机会得到曝光. 为什么要赞助 首页上墙需提供的资料 提供 Logo(透明背景最佳、256×25...","head":[["meta",{"property":"og:url","content":"https://api-buddy.com/guide/sponsor.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"赞助"}],["meta",{"property":"og:description","content":"优势 本软件下载量 Downloads 每次软件更新均会在软件内部推送更新链接,告知用户返回网站查看相关的更新日志 软件内部增设文档按钮可以快速返回网站首页,促使开发者前往网站查看功能 开发者也会让软件用户主动先去看文档,再提问 综上因素,赞助者将在本站有更大机会得到曝光. 为什么要赞助 首页上墙需提供的资料 提供 Logo(透明背景最佳、256×25..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/whySponsor.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"赞助"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"赞助\\",\\"image\\":[\\"https://api-buddy.com/img/whySponsor.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"优势","slug":"优势","link":"#优势","children":[]},{"level":2,"title":"首页上墙需提供的资料","slug":"首页上墙需提供的资料","link":"#首页上墙需提供的资料","children":[]},{"level":2,"title":"联系我们","slug":"联系我们","link":"#联系我们","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.82,"words":247},"filePathRelative":"guide/sponsor.md","localizedDate":"2024年5月31日","autoDesc":true}');export{u as comp,_ as data}; diff --git a/assets/sponsorList.html-IYHUNPKq.js b/assets/sponsorList.html-IYHUNPKq.js new file mode 100644 index 000000000..c1213c99a --- /dev/null +++ b/assets/sponsorList.html-IYHUNPKq.js @@ -0,0 +1 @@ +import{_ as a,r as s,o as i,c,a as t,b as e,w as r,d as o}from"./app-8OZtYazS.js";const d={},p=t("h2",{id:"如何赞助",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#如何赞助"},[t("span",null,"如何赞助")])],-1),h=t("strong",null,"1.赞助可以为您带来什么(必看)",-1),u=t("h2",{id:"赞助列表",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#赞助列表"},[t("span",null,"赞助列表")])],-1),m=t("p",null,"感谢每一位赞助的小伙伴,祝你们早日升职加薪,登临人生绝颠 ❤️❤️❤️",-1),_=t("thead",null,[t("tr",null,[t("th",null,"赞助人"),t("th",null,"金额"),t("th",null,"他的分享及留言"),t("th",null,"赞助时间")])],-1),g={href:"https://space.bilibili.com/370110042",target:"_blank",rel:"noopener noreferrer"},f=t("td",null,"100",-1),y={href:"https://api-buddy.com",target:"_blank",rel:"noopener noreferrer"},b=t("td",null,"2022-08-21",-1);function x(k,E){const n=s("RouteLink"),l=s("ExternalLinkIcon");return i(),c("div",null,[p,t("p",null,[e(n,{to:"/guide/sponsor.html#%E4%BC%98%E5%8A%BF"},{default:r(()=>[h]),_:1})]),t("p",null,[e(n,{to:"/guide/sponsor.html#%E6%88%91%E8%A6%81%E8%B5%9E%E5%8A%A9"},{default:r(()=>[o("2.成为赞助者")]),_:1})]),u,m,t("table",null,[_,t("tbody",null,[t("tr",null,[t("td",null,[t("a",g,[o("Kings"),e(l)])]),f,t("td",null,[t("a",y,[o("Fast Request"),e(l)]),o(",API 调试神器")]),b])])])])}const T=a(d,[["render",x],["__file","sponsorList.html.vue"]]),v=JSON.parse('{"path":"/guide/sponsorList.html","title":"赞助列表","lang":"zh-CN","frontmatter":{"title":"赞助列表","icon":"aixin","description":"如何赞助 赞助列表 感谢每一位赞助的小伙伴,祝你们早日升职加薪,登临人生绝颠 ❤️❤️❤️ ","head":[["meta",{"property":"og:url","content":"https://api-buddy.com/guide/sponsorList.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"赞助列表"}],["meta",{"property":"og:description","content":"如何赞助 赞助列表 感谢每一位赞助的小伙伴,祝你们早日升职加薪,登临人生绝颠 ❤️❤️❤️ "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"赞助列表\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"如何赞助","slug":"如何赞助","link":"#如何赞助","children":[]},{"level":2,"title":"赞助列表","slug":"赞助列表","link":"#赞助列表","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.34,"words":101},"filePathRelative":"guide/sponsorList.md","localizedDate":"2024年5月31日","autoDesc":true}');export{T as comp,v as data}; diff --git a/assets/srt-parser-v9RQiZsS.js b/assets/srt-parser-v9RQiZsS.js new file mode 100644 index 000000000..9e9f3dd93 --- /dev/null +++ b/assets/srt-parser-v9RQiZsS.js @@ -0,0 +1,2 @@ +import{V as h,a as i,b as o}from"./prod-OBrTmKrB.js";import"./app-8OZtYazS.js";const u=/,/g,c="-->";class n extends h{parse(s,e){var a,r;if(s==="")this.a&&(this.j.push(this.a),(r=(a=this.f).onCue)==null||r.call(a,this.a),this.a=null),this.c=i.None;else if(this.c===i.Cue)this.a.text+=(this.a.text?` +`:"")+s;else if(s.includes(c)){const t=this.o(s,e);t&&(this.a=new o(t[0],t[1],t[2].join(" ")),this.a.id=this.l,this.c=i.Cue)}this.l=s}o(s,e){return super.o(s.replace(u,"."),e)}}function p(){return new n}export{n as SRTParser,p as default}; diff --git a/assets/ssa-parser-tVBUaBNs.js b/assets/ssa-parser-tVBUaBNs.js new file mode 100644 index 000000000..4ed924de1 --- /dev/null +++ b/assets/ssa-parser-tVBUaBNs.js @@ -0,0 +1,10 @@ +var F=Object.defineProperty;var A=(o,t,s)=>t in o?F(o,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[t]=s;var u=(o,t,s)=>(A(o,typeof t!="symbol"?t+"":t,s),s);import{i as N}from"./app-8OZtYazS.js";import{b as L,p as R}from"./prod-OBrTmKrB.js";const b=/^Format:[\s\t]*/,y=/^Style:[\s\t]*/,I=/^Dialogue:[\s\t]*/,S=/[\s\t]*,[\s\t]*/,w=/\{[^}]+\}/g,P=/\\N/g,x=/^\[(.*)[\s\t]?Styles\]$/,m=/^\[(.*)[\s\t]?Events\]$/;class V{constructor(){u(this,"f");u(this,"P",0);u(this,"a",null);u(this,"j",[]);u(this,"k",[]);u(this,"O",null);u(this,"d");u(this,"Q",{})}async init(t){this.f=t,t.errors&&(this.d=(await N(()=>import("./errors-OgKIXfxL.js"),__vite__mapDeps([0,1,2]))).ParseErrorBuilder)}parse(t,s){var e,a;if(this.P)switch(this.P){case 1:if(t==="")this.P=0;else if(y.test(t))if(this.O){const i=t.replace(y,"").split(S);this.T(i)}else this.e((e=this.d)==null?void 0:e.N("Style",s));else b.test(t)?this.O=t.replace(b,"").split(S):m.test(t)&&(this.O=null,this.P=2);break;case 2:if(t==="")this.R();else if(I.test(t))if(this.R(),this.O){const i=t.replace(I,"").split(S),r=this.U(i,s);r&&(this.a=r)}else this.e((a=this.d)==null?void 0:a.N("Dialogue",s));else this.a?this.a.text+=` +`+t.replace(w,"").replace(P,` +`):b.test(t)?this.O=t.replace(b,"").split(S):x.test(t)?(this.O=null,this.P=1):m.test(t)&&(this.O=null)}else t===""||(x.test(t)?(this.O=null,this.P=1):m.test(t)&&(this.O=null,this.P=2))}done(){return{metadata:{},cues:this.j,regions:[],errors:this.k}}R(){var t,s;this.a&&(this.j.push(this.a),(s=(t=this.f).onCue)==null||s.call(t,this.a),this.a=null)}T(t){let s="Default",e={},a,i="center",r="bottom",f,c=1.2,n,p,h=3,d=[];for(let g=0;g=4&&(r=k>=7?"top":"center"),k%3){case 1:i="start";break;case 2:i="center";break;case 3:i="end";break}}}if(e.S=r,e["--cue-white-space"]="normal",e["--cue-line-height"]="normal",e["--cue-text-align"]=i,r==="center"?(e["--cue-top"]="50%",d.push("translateY(-50%)")):e[`--cue-${r}`]=(f||0)+"px",h===1&&(e["--cue-padding-y"]="0"),(h===1||p)&&(e["--cue-bg-color"]=h===1?"none":p),h===3&&n&&(e["--cue-outline"]=`${a}px solid ${n}`),h===1&&typeof a=="number"){const g=p??"#000";e["--cue-text-shadow"]=[n&&T(a*1.2,c*1.2,n),n?T(a*(a/2),c*(a/2),g):T(a,c,g)].filter(Boolean).join(", ")}d.length&&(e["--cue-transform"]=d.join(" ")),this.Q[s]=e}U(t,s){const e=this.V(t),a=this.o(e.Start,e.End,s);if(!a)return;const i=new L(a[0],a[1],""),r={...this.Q[e.Style]||{}},f=e.Name?``:"",c=r.S,n=e.MarginL&&parseFloat(e.MarginL),p=e.MarginR&&parseFloat(e.MarginR),h=e.MarginV&&parseFloat(e.MarginV);return n&&(r["--cue-width"]="auto",r["--cue-left"]=n+"px"),p&&(r["--cue-width"]="auto",r["--cue-right"]=p+"px"),h&&c!=="center"&&(r[`--cue-${c}`]=h+"px"),i.text=f+t.slice(this.O.length-1).join(", ").replace(w,"").replace(P,` +`),delete r.S,Object.keys(r).length&&(i.style=r),i}V(t){const s={};for(let e=0;ea)return[a,i];a===null&&this.e((r=this.d)==null?void 0:r.q(t,e)),i===null&&this.e((f=this.d)==null?void 0:f.r(s,e)),a!=null&&i!==null&&i>a&&this.e((c=this.d)==null?void 0:c.s(a,i,e))}e(t){var s,e;if(t){if(this.k.push(t),this.f.strict)throw this.f.cancel(),t;(e=(s=this.f).onError)==null||e.call(s,t)}}}function O(o){const t=parseInt(o.replace("&H",""),16);if(t>=0){const e=(t>>24&255^255)/255,a=t>>16&255,i=t>>8&255;return"rgba("+[t&255,i,a,e].join(",")+")"}return null}function T(o,t,s){const e=Math.ceil(2*Math.PI*o);let a="";for(let i=0;i __vite__mapDeps.viteFileDeps[i]) +} diff --git a/assets/start-njriv0pV.js b/assets/start-njriv0pV.js new file mode 100644 index 000000000..0b7d5645a --- /dev/null +++ b/assets/start-njriv0pV.js @@ -0,0 +1 @@ +const t="/img/start.png";export{t as _}; diff --git a/assets/start.html-m7-l0v8E.js b/assets/start.html-m7-l0v8E.js new file mode 100644 index 000000000..9ab7c3761 --- /dev/null +++ b/assets/start.html-m7-l0v8E.js @@ -0,0 +1 @@ +import{_ as p}from"./start-njriv0pV.js";import{_}from"./wechatGroup-zkZOzzsF.js";import{_ as g}from"./twitter-vJUFHWuk.js";import{_ as h,r as l,o as f,c as y,b as o,w as a,a as t,d as e,n as b,h as v}from"./app-8OZtYazS.js";const w="/img/start.svg",R="/img/howToUse.gif",T={},k=t("li",null,"点击发送请求按钮发送请求",-1),q=t("p",null,[t("img",{src:p,alt:"",loading:"lazy"})],-1),x=t("blockquote",null,[t("p",null,"视频教程↓↓↓")],-1),z=t("li",null,"点击配置添加项目名 (如微信卡片) 和环境名 (如 local、dev)",-1),B=t("li",null,"设置对应项目及环境的域名",-1),F=t("li",null,"打开工具窗口(右上角位置),选择当前项目想要启用的环境",-1),V=t("li",null,"点击发送请求按钮发送请求",-1),C=t("p",null,[t("img",{src:w,alt:"",loading:"lazy"})],-1),N=t("p",null,[t("img",{src:R,alt:"",loading:"lazy"})],-1),P=t("h2",{id:"🤝-联系我们",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#🤝-联系我们"},[t("span",null,"🤝 联系我们")])],-1),A=t("p",null,"如果遇到了问题,请通过以下方式联系我们,将会有更快为你解决问题,同时群里全部都是 Javaer,经常会讨论一些技术问题,热点新闻,跳槽,吐槽等,可以帮助你学到一些东西。",-1),D=t("th",null,[t("img",{src:"https://img.shields.io/static/v1?label=wechat&message=微信技术群&logo=wechat&color=07C160",alt:"微信技术群",loading:"lazy"})],-1),L={href:"https://twitter.com/FastRequest666",target:"_blank",rel:"noopener noreferrer"},I=t("img",{src:"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34",alt:"twitter",loading:"lazy"},null,-1),j=t("tbody",null,[t("tr",null,[t("td",null,[t("img",{src:_,alt:"wechat group",loading:"lazy"})]),t("td",null,[t("img",{src:g,alt:"twitter",loading:"lazy"})])]),t("tr",null,[t("td",null,"如果扫码失败请直接搜微信号 FastRequest99"),t("td",null,"欢迎关注官方 Twitter")])],-1);function E(U,Z){const c=l("VPBanner"),r=l("FontIcon"),n=l("RouteLink"),d=l("BiliBili"),m=l("Tabs"),u=l("ExternalLinkIcon");return f(),y("div",null,[o(c,{content:"如果您已经熟悉 Fast Request的基本操作,那么您可以直接转入到功能介绍页",background:"url('/img/banner/bg1.svg') no-repeat -2100px -90px",color:"#eee",actions:[{text:"功能",link:"/guide/features/"}]}),o(m,{id:"1",data:[{id:"付费版"},{id:"免费版"}]},{title0:a(({value:i,isActive:s})=>[e("付费版")]),title1:a(({value:i,isActive:s})=>[e("免费版")]),tab0:a(({value:i,isActive:s})=>[t("ol",null,[t("li",null,[e("点击在方法左侧的 fastRequest 的图标 "),o(r,{icon:"restfulFastRequest"})]),t("li",null,[e("如果"),o(n,{to:"/guide/features/autoDomain.html"},{default:a(()=>[e("自动域名")]),_:1}),e("的结果不符合预期,则在"),o(n,{to:"/guide/features/projectLevelDomainConfig.html"},{default:a(()=>[e("Project 级别域名配置")]),_:1}),e("里面修改域名")]),k]),q,x,o(d,b(v({bvid:"BV1V84y1f7uQ",ratio:"5/4"})),null,16),t("p",null,[o(n,{to:"/guide/teachingVideo.html"},{default:a(()=>[e("更多视频教程")]),_:1})])]),tab1:a(({value:i,isActive:s})=>[t("ol",null,[z,B,F,t("li",null,[e("点击在方法左侧的 fastRequest 的图标 "),o(r,{icon:"restfulFastRequest1"})]),V]),C,N]),_:1}),P,A,t("table",null,[t("thead",null,[t("tr",null,[D,t("th",null,[t("a",L,[I,o(u)])])])]),j])])}const O=h(T,[["render",E],["__file","start.html.vue"]]),Q=JSON.parse('{"path":"/guide/getstarted/start.html","title":"快速开始","lang":"zh-CN","frontmatter":{"title":"快速开始","icon":"start1","description":"","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/getstarted/start.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/getstarted/start.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"快速开始"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/start.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"快速开始"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"快速开始\\",\\"image\\":[\\"https://api-buddy.com/img/start.png\\",\\"https://api-buddy.com/img/start.svg\\",\\"https://api-buddy.com/img/howToUse.gif\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"🤝 联系我们","slug":"🤝-联系我们","link":"#🤝-联系我们","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.79,"words":237},"filePathRelative":"guide/getstarted/start.md","localizedDate":"2024年5月31日","autoDesc":true}');export{O as comp,Q as data}; diff --git a/assets/start.html-wc2ASsKr.js b/assets/start.html-wc2ASsKr.js new file mode 100644 index 000000000..413655669 --- /dev/null +++ b/assets/start.html-wc2ASsKr.js @@ -0,0 +1 @@ +import{_ as p}from"./start-njriv0pV.js";import{_ as g}from"./slack-roTTHLlw.js";import{_}from"./twitter-vJUFHWuk.js";import{_ as h,r as a,o as f,c as y,b as o,w as n,a as t,d as e}from"./app-8OZtYazS.js";const v="/img/start_en.svg",b="/img/howToUse_en.gif",k={},w=t("li",null,"Click send button for sending request",-1),F=t("p",null,[t("img",{src:p,alt:"",loading:"lazy"})],-1),x=t("li",null,"Click Manager config then add project name[example:wx card] and env[example:local、dev]",-1),q=t("li",null,"Set target domain",-1),R=t("li",null,"Open toolwindow(at the top-right corner),select project and env",-1),T=t("li",null,"Click send button for sending request",-1),C=t("p",null,[t("img",{src:v,alt:"",loading:"lazy"})],-1),z=t("p",null,[t("img",{src:b,alt:"",loading:"lazy"})],-1),S=t("h2",{id:"contacts",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#contacts"},[t("span",null,"Contacts")])],-1),A=t("p",null,"Join and follow us to solve your question ❤️❤️❤️",-1),I={href:"https://join.slack.com/t/restfulfastrequest/shared_invite/zt-1we57vum8-TALhTHI2uNmPF2bx1NDyWw",target:"_blank",rel:"noopener noreferrer"},B=t("img",{src:"https://img.shields.io/static/v1?label=Slack&message=Restful Fast Request&logo=slack&color=38B580",alt:"Slack",loading:"lazy"},null,-1),D={href:"https://twitter.com/FastRequest666",target:"_blank",rel:"noopener noreferrer"},L=t("img",{src:"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34",alt:"twitter",loading:"lazy"},null,-1),N=t("tbody",null,[t("tr",null,[t("td",null,[t("img",{src:g,alt:"Slack",loading:"lazy"})]),t("td",null,[t("img",{src:_,alt:"twitter",loading:"lazy"})])])],-1);function P(V,j){const d=a("VPBanner"),l=a("FontIcon"),r=a("RouteLink"),m=a("VidStack"),u=a("Tabs"),c=a("ExternalLinkIcon");return f(),y("div",null,[o(d,{content:"If you are already familiar with the basic operations of Fast Request, you can go directly to the features page.",background:"url('/img/banner/bg1.svg') no-repeat -2100px -80px",color:"#eee",actions:[{text:"Features",link:"/guide/features/"}]}),o(u,{id:"1",data:[{id:"Paid version"},{id:"Free version"}]},{title0:n(({value:s,isActive:i})=>[e("Paid version")]),title1:n(({value:s,isActive:i})=>[e("Free version")]),tab0:n(({value:s,isActive:i})=>[t("ol",null,[t("li",null,[e("Click "),o(l,{icon:"restfulFastRequest"}),e(" on method left")]),t("li",null,[e("If the result of "),o(r,{to:"/en/guide/features/autoDomain.html"},{default:n(()=>[e("Auto domain")]),_:1}),e(" did not meet expectations,change the domain in "),o(r,{to:"/en/guide/features/projectLevelDomainConfig.html"},{default:n(()=>[e("Project-level domain config")]),_:1})]),w]),o(m,{src:"youtube/FiLfA8GKCoI",title:"Search and run api in Fast Request"}),F]),tab1:n(({value:s,isActive:i})=>[t("ol",null,[x,q,R,t("li",null,[e("Click "),o(l,{icon:"restfulFastRequest1"}),e(" on method left")]),T]),C,z]),_:1}),S,A,t("table",null,[t("thead",null,[t("tr",null,[t("th",null,[t("a",I,[B,o(c)])]),t("th",null,[t("a",D,[L,o(c)])])])]),N])])}const Z=h(k,[["render",P],["__file","start.html.vue"]]),J=JSON.parse('{"path":"/en/guide/getstarted/start.html","title":"Get started","lang":"en-US","frontmatter":{"title":"Get started","icon":"start1","description":"","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/getstarted/start.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/getstarted/start.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Get started"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/start.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-07-02T02:14:48.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Get started"}],["meta",{"property":"article:modified_time","content":"2024-07-02T02:14:48.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Get started\\",\\"image\\":[\\"https://api-buddy.com/img/start.png\\",\\"https://api-buddy.com/img/start_en.svg\\",\\"https://api-buddy.com/img/howToUse_en.gif\\",\\"https://img.shields.io/static/v1?label=Slack&message=Restful%20Fast%20Request&logo=slack&color=38B580\\",\\"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34\\",\\"https://api-buddy.com/img/slack.png\\",\\"https://api-buddy.com/img/twitter.png\\"],\\"dateModified\\":\\"2024-07-02T02:14:48.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Contacts","slug":"contacts","link":"#contacts","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1719886488000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":3}]},"readingTime":{"minutes":0.64,"words":192},"filePathRelative":"en/guide/getstarted/start.md","localizedDate":"May 31, 2024","autoDesc":true}');export{Z as comp,J as data}; diff --git a/assets/stopApi-fM6h6OKl.js b/assets/stopApi-fM6h6OKl.js new file mode 100644 index 000000000..6dd0ff333 --- /dev/null +++ b/assets/stopApi-fM6h6OKl.js @@ -0,0 +1 @@ +const i="/img/searchEveryWhere.gif",s="/img/2022.2.1/apiParamGroup_en.gif",o="/img/2022.2.2/stopApi.gif";export{i as _,s as a,o as b}; diff --git a/assets/stopApi-j-lQpiZm.js b/assets/stopApi-j-lQpiZm.js new file mode 100644 index 000000000..7b4f398a3 --- /dev/null +++ b/assets/stopApi-j-lQpiZm.js @@ -0,0 +1 @@ +const p="/img/2022.2.2/stopApi.png";export{p as _}; diff --git a/assets/stopRequest.html-HLWNv8yY.js b/assets/stopRequest.html-HLWNv8yY.js new file mode 100644 index 000000000..b26c1cfb2 --- /dev/null +++ b/assets/stopRequest.html-HLWNv8yY.js @@ -0,0 +1 @@ +import{_ as p}from"./stopApi-j-lQpiZm.js";import{_ as s,r as t,o as i,c,a as e,d as o,b as a}from"./app-8OZtYazS.js";const m={},l=e("h1",{id:"终止-api-请求功能",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#终止-api-请求功能"},[e("span",null,"终止 API 请求功能")])],-1),d=e("p",null,[e("img",{src:p,alt:"stopApi",loading:"lazy"})],-1);function u(g,h){const n=t("Badge"),r=t("ColorIcon");return i(),c("div",null,[l,e("p",null,[o("版本要求: "),a(n,{text:"2022.2.2"})]),e("p",null,[o("点击 "),a(r,{icon:"stop"})]),d])}const f=s(m,[["render",u],["__file","stopRequest.html.vue"]]),A=JSON.parse('{"path":"/guide/features/stopRequest.html","title":"终止 API 请求功能","lang":"zh-CN","frontmatter":{"description":"终止 API 请求功能 版本要求: 点击 stopApi ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/stopRequest.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/stopRequest.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"终止 API 请求功能"}],["meta",{"property":"og:description","content":"终止 API 请求功能 版本要求: 点击 stopApi "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.2/stopApi.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"终止 API 请求功能"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"终止 API 请求功能\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.2/stopApi.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.08,"words":23},"filePathRelative":"guide/features/stopRequest.md","localizedDate":"2024年5月31日","autoDesc":true}');export{f as comp,A as data}; diff --git a/assets/stopRequest.html-RJ4b5d3A.js b/assets/stopRequest.html-RJ4b5d3A.js new file mode 100644 index 000000000..6d9434fbe --- /dev/null +++ b/assets/stopRequest.html-RJ4b5d3A.js @@ -0,0 +1 @@ +import{_ as s}from"./stopApi-j-lQpiZm.js";import{_ as p,r as t,o as i,c,a as e,d as o,b as a}from"./app-8OZtYazS.js";const m={},l=e("h1",{id:"stop-api-request",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#stop-api-request"},[e("span",null,"Stop API request")])],-1),d=e("p",null,[e("img",{src:s,alt:"stopApi",loading:"lazy"})],-1);function u(g,h){const r=t("Badge"),n=t("ColorIcon");return i(),c("div",null,[l,e("p",null,[o("Version required: "),a(r,{text:"2022.2.2"})]),e("p",null,[o("Click "),a(n,{icon:"stop"})]),d])}const y=p(m,[["render",u],["__file","stopRequest.html.vue"]]),f=JSON.parse('{"path":"/en/guide/features/stopRequest.html","title":"Stop API request","lang":"en-US","frontmatter":{"description":"Stop API request Version required: Click stopApi ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/stopRequest.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/stopRequest.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Stop API request"}],["meta",{"property":"og:description","content":"Stop API request Version required: Click stopApi "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.2/stopApi.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Stop API request"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Stop API request\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.2/stopApi.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.05,"words":16},"filePathRelative":"en/guide/features/stopRequest.md","localizedDate":"May 31, 2024","autoDesc":true}');export{y as comp,f as data}; diff --git a/assets/stringGenerationStrategy.html-WC-AH9Sy.js b/assets/stringGenerationStrategy.html-WC-AH9Sy.js new file mode 100644 index 000000000..99e33ca71 --- /dev/null +++ b/assets/stringGenerationStrategy.html-WC-AH9Sy.js @@ -0,0 +1 @@ +import{_ as e,o as n,c as a,a as t}from"./app-8OZtYazS.js";const r="/img/stringGenerate.png",i={},o=t("h2",{id:"策略",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#策略"},[t("span",null,"策略")])],-1),s=t("ul",null,[t("li",null,"name+random (字段名加随机字符串)"),t("li",null,"random (随机字符串)"),t("li",null,"none (不生成)")],-1),g=t("p",null,[t("img",{src:r,alt:"string generate",loading:"lazy"})],-1),l=[o,s,g];function m(c,d){return n(),a("div",null,l)}const h=e(i,[["render",m],["__file","stringGenerationStrategy.html.vue"]]),u=JSON.parse('{"path":"/guide/getstarted/stringGenerationStrategy.html","title":"String 生成策略","lang":"zh-CN","frontmatter":{"title":"String 生成策略","icon":"codestring","description":"策略 name+random (字段名加随机字符串) random (随机字符串) none (不生成) string generate ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/getstarted/stringGenerationStrategy.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/getstarted/stringGenerationStrategy.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"String 生成策略"}],["meta",{"property":"og:description","content":"策略 name+random (字段名加随机字符串) random (随机字符串) none (不生成) string generate "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/stringGenerate.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"String 生成策略"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"String 生成策略\\",\\"image\\":[\\"https://api-buddy.com/img/stringGenerate.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"策略","slug":"策略","link":"#策略","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.11,"words":34},"filePathRelative":"guide/getstarted/stringGenerationStrategy.md","localizedDate":"2024年5月31日","autoDesc":true}');export{h as comp,u as data}; diff --git a/assets/stringGenerationStrategy.html-pOf0Hx5_.js b/assets/stringGenerationStrategy.html-pOf0Hx5_.js new file mode 100644 index 000000000..798e8c299 --- /dev/null +++ b/assets/stringGenerationStrategy.html-pOf0Hx5_.js @@ -0,0 +1,5 @@ +import{_ as e,o as n,c as a,a as t}from"./app-8OZtYazS.js";const r="/img/stringGenerate_en.png",o={},i=t("div",{class:"language-text","data-ext":"text","data-title":"text"},[t("pre",{class:"language-text"},[t("code",null,`strategy +* name+random(field name + random string) +* random(random string) +* none(not generate) +`)])],-1),g=t("p",null,[t("img",{src:r,alt:"",loading:"lazy"})],-1),s=[i,g];function c(m,d){return n(),a("div",null,s)}const l=e(o,[["render",c],["__file","stringGenerationStrategy.html.vue"]]),y=JSON.parse('{"path":"/en/guide/getstarted/stringGenerationStrategy.html","title":"String generation strategy","lang":"en-US","frontmatter":{"title":"String generation strategy","icon":"codestring","description":" ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/getstarted/stringGenerationStrategy.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/getstarted/stringGenerationStrategy.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"String generation strategy"}],["meta",{"property":"og:description","content":" "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/stringGenerate_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"String generation strategy"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"String generation strategy\\",\\"image\\":[\\"https://api-buddy.com/img/stringGenerate_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.07,"words":20},"filePathRelative":"en/guide/getstarted/stringGenerationStrategy.md","localizedDate":"May 31, 2024","autoDesc":true}');export{l as comp,y as data}; diff --git a/assets/style-G3EVg8dy.css b/assets/style-G3EVg8dy.css new file mode 100644 index 000000000..5d0c6a626 --- /dev/null +++ b/assets/style-G3EVg8dy.css @@ -0,0 +1 @@ +@charset "UTF-8";html[data-theme=dark]{--text-color: #9e9e9e;--bg-color: #0c1117;--bg-color-secondary: #333;--bg-color-tertiary: #21262c;--border-color: #30363d;--box-shadow: #303030;--card-shadow: rgba(0, 0, 0, .3);--black: #fff;--dark-grey: #999;--light-grey: #666;--white: #000;--grey3: #bbb;--grey12: #333;--grey14: #111;--bg-color-light: #333;--bg-color-back: #0c1117;--bg-color-float: #333;--bg-color-blur: rgba(12, 17, 23, .9);--bg-color-float-blur: rgba(51, 51, 51, .9);--text-color-light: #a8a8a8;--text-color-lighter: #b1b1b1;--text-color-bright: #c5c5c5;--border-color-light: #2e333a;--border-color-dark: #394048}:root{--theme-color: #21d789;--text-color: #2c3e50;--bg-color: #fff;--bg-color-secondary: #f8f8f8;--bg-color-tertiary: #efeef4;--border-color: #eaecef;--box-shadow: #f0f1f2;--card-shadow: rgba(0, 0, 0, .15);--black: #000;--dark-grey: #666;--light-grey: #999;--white: #fff;--grey3: #333;--grey12: #bbb;--grey14: #eee;--navbar-height: 3.75rem;--navbar-horizontal-padding: 1.5rem;--navbar-vertical-padding: .7rem;--navbar-mobile-height: 3.25rem;--navbar-mobile-horizontal-padding: 1rem;--navbar-mobile-vertical-padding: .5rem;--sidebar-width: 18rem;--sidebar-mobile-width: 16rem;--content-width: 780px;--home-page-width: 1160px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", STHeiti, "Microsoft YaHei", SimSun, sans-serif;--font-family-heading: Georgia Pro, Crimson, Georgia, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", STHeiti, "Microsoft YaHei", SimSun, sans-serif;--font-family-mono: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;--line-numbers-width: 2.5rem;--color-transition: .3s ease;--transform-transition: .3s ease;--vp-bg: var(--bg-color);--vp-bgl: var(--bg-color-light);--vp-bglt: var(--bg-color-tertiary);--vp-c: var(--text-color);--vp-cl: var(--text-color-light);--vp-clt: var(--text-color-lighter);--vp-brc: var(--border-color);--vp-brcd: var(--border-color-dark);--vp-tc: var(--theme-color);--vp-tcl: var(--theme-color-light);--vp-ct: var(--color-transition);--vp-tt: var(--transform-transition);--bg-color-light: #fff;--bg-color-back: #f8f8f8;--bg-color-float: #fff;--bg-color-blur: rgba(255, 255, 255, .9);--bg-color-float-blur: rgba(255, 255, 255, .9);--text-color-light: #3a5169;--text-color-lighter: #476582;--text-color-bright: #6a8bad;--border-color-light: #eceef1;--border-color-dark: #cfd4db;--theme-color-dark: #1ec27b;--theme-color-light: #33e095;--theme-color-mask: rgba(33, 215, 137, .15)}.font-icon{display:inline-block}.theme-hope-content .font-icon{vertical-align:middle}:root{--badge-tip-color: #42b983;--badge-warning-color: #f4cd00;--badge-danger-color: #f55;--badge-info-color: #0295ff;--badge-note-color: #666}.vp-badge{display:inline-block;vertical-align:center;height:18px;padding:0 6px;border-radius:3px;background:var(--vp-tc);color:var(--white);font-size:14px;line-height:18px;transition:background var(--vp-ct),color var(--vp-ct)}.vp-badge+.vp-badge{margin-inline-start:5px}h1 .vp-badge,h2 .vp-badge,h3 .vp-badge,h4 .vp-badge,h5 .vp-badge,h6 .vp-badge{vertical-align:top}.vp-badge.tip{background:var(--badge-tip-color)}.vp-badge.warning{background:var(--badge-warning-color)}.vp-badge.danger{background:var(--badge-danger-color)}.vp-badge.info{background:var(--badge-info-color)}.vp-badge.note{background:var(--badge-note-color)}@media print{.bilibili-desc a{display:block}}.bilibili-iframe{margin:8px 0;border:none;border-radius:8px}@media print{.bilibili-iframe{display:none}}:root{--balloon-border-radius: 2px;--balloon-color: rgba(16, 16, 16, .95);--balloon-text-color: #fff;--balloon-font-size: 12px;--balloon-move: 4px}button[aria-label][data-balloon-pos]{overflow:visible}[aria-label][data-balloon-pos]{position:relative;cursor:pointer}[aria-label][data-balloon-pos]:after{opacity:0;pointer-events:none;transition:all .18s ease-out .18s;text-indent:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-weight:400;font-style:normal;text-shadow:none;font-size:var(--balloon-font-size);background:var(--balloon-color);border-radius:2px;color:var(--balloon-text-color);border-radius:var(--balloon-border-radius);content:attr(aria-label);padding:.5em 1em;position:absolute;white-space:nowrap;z-index:10}[aria-label][data-balloon-pos]:before{width:0;height:0;border:5px solid transparent;border-top-color:var(--balloon-color);opacity:0;pointer-events:none;transition:all .18s ease-out .18s;content:"";position:absolute;z-index:10}[aria-label][data-balloon-pos]:hover:before,[aria-label][data-balloon-pos]:hover:after,[aria-label][data-balloon-pos][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-visible]:after,[aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:before,[aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:after{opacity:1;pointer-events:none}[aria-label][data-balloon-pos].font-awesome:after{font-family:FontAwesome,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}[aria-label][data-balloon-pos][data-balloon-break]:after{white-space:pre}[aria-label][data-balloon-pos][data-balloon-break][data-balloon-length]:after{white-space:pre-line;word-break:break-word}[aria-label][data-balloon-pos][data-balloon-blunt]:before,[aria-label][data-balloon-pos][data-balloon-blunt]:after{transition:none}[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=up][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos=down]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=down][data-balloon-visible]:after{transform:translate(-50%)}[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=up][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-pos=down]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=down][data-balloon-visible]:before{transform:translate(-50%)}[aria-label][data-balloon-pos][data-balloon-pos*=-left]:after{left:0}[aria-label][data-balloon-pos][data-balloon-pos*=-left]:before{left:5px}[aria-label][data-balloon-pos][data-balloon-pos*=-right]:after{right:0}[aria-label][data-balloon-pos][data-balloon-pos*=-right]:before{right:5px}[aria-label][data-balloon-pos][data-balloon-po*=-left]:hover:after,[aria-label][data-balloon-pos][data-balloon-po*=-left][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos*=-right]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos*=-right][data-balloon-visible]:after{transform:translate(0)}[aria-label][data-balloon-pos][data-balloon-po*=-left]:hover:before,[aria-label][data-balloon-pos][data-balloon-po*=-left][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-pos*=-right]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos*=-right][data-balloon-visible]:before{transform:translate(0)}[aria-label][data-balloon-pos][data-balloon-pos^=up]:before,[aria-label][data-balloon-pos][data-balloon-pos^=up]:after{bottom:100%;transform-origin:top;transform:translateY(var(--balloon-move))}[aria-label][data-balloon-pos][data-balloon-pos^=up]:after{margin-bottom:10px}[aria-label][data-balloon-pos][data-balloon-pos=up]:before,[aria-label][data-balloon-pos][data-balloon-pos=up]:after{left:50%;transform:translate(-50%,var(--balloon-move))}[aria-label][data-balloon-pos][data-balloon-pos^=down]:before,[aria-label][data-balloon-pos][data-balloon-pos^=down]:after{top:100%;transform:translateY(calc(var(--balloon-move) * -1))}[aria-label][data-balloon-pos][data-balloon-pos^=down]:after{margin-top:10px}[aria-label][data-balloon-pos][data-balloon-pos^=down]:before{width:0;height:0;border:5px solid transparent;border-bottom-color:var(--balloon-color)}[aria-label][data-balloon-pos][data-balloon-pos=down]:after,[aria-label][data-balloon-pos][data-balloon-pos=down]:before{left:50%;transform:translate(-50%,calc(var(--balloon-move) * -1))}[aria-label][data-balloon-pos][data-balloon-pos=left]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=left][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos=right]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=right][data-balloon-visible]:after{transform:translateY(-50%)}[aria-label][data-balloon-pos][data-balloon-pos=left]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=left][data-balloon-visible]:before,[aria-label][data-balloon-pos][data-balloon-pos=right]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=right][data-balloon-visible]:before{transform:translateY(-50%)}[aria-label][data-balloon-pos][data-balloon-pos=left]:after,[aria-label][data-balloon-pos][data-balloon-pos=left]:before{right:100%;top:50%;transform:translate(var(--balloon-move),-50%)}[aria-label][data-balloon-pos][data-balloon-pos=left]:after{margin-right:10px}[aria-label][data-balloon-pos][data-balloon-pos=left]:before{width:0;height:0;border:5px solid transparent;border-left-color:var(--balloon-color)}[aria-label][data-balloon-pos][data-balloon-pos=right]:after,[aria-label][data-balloon-pos][data-balloon-pos=right]:before{left:100%;top:50%;transform:translate(calc(var(--balloon-move) * -1),-50%)}[aria-label][data-balloon-pos][data-balloon-pos=right]:after{margin-left:10px}[aria-label][data-balloon-pos][data-balloon-pos=right]:before{width:0;height:0;border:5px solid transparent;border-right-color:var(--balloon-color)}[aria-label][data-balloon-pos][data-balloon-length]:after{white-space:normal}[aria-label][data-balloon-pos][data-balloon-length=small]:after{width:80px}[aria-label][data-balloon-pos][data-balloon-length=medium]:after{width:150px}[aria-label][data-balloon-pos][data-balloon-length=large]:after{width:260px}[aria-label][data-balloon-pos][data-balloon-length=xlarge]:after{width:380px}@media screen and (max-width: 768px){[aria-label][data-balloon-pos][data-balloon-length=xlarge]:after{width:90vw}}[aria-label][data-balloon-pos][data-balloon-length=fit]:after{width:100%}.vp-site-info{position:relative;display:inline-block;overflow:hidden;width:calc(50% - 16px);margin:4px 8px;border-radius:8px;color:inherit;box-shadow:1px 1px 8px var(--card-shadow);cursor:pointer;transition:box-shadow var(--transform-transition)}@media (max-width: 959px){.vp-site-info{width:calc(100% - 24px)}}.vp-site-info:hover{background:var(--vp-bgl);box-shadow:1px 4px 16px var(--card-shadow)}.vp-site-info:hover:after{content:attr(data-name);position:absolute;top:.5rem;left:.5rem;display:block;padding:.5rem;border-radius:.25em;background:#37373780;color:#fff}.vp-site-info:before{content:"";display:inline-block;width:0;padding-top:55%}.vp-site-info-navigator{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:block}.vp-site-info-preview{position:absolute;top:0;right:0;bottom:0;left:0}.vp-site-info-detail{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem 1rem;text-align:center;opacity:1;transition:opacity ease .6s}.vp-site-info-detail:before{content:" ";position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--vp-bg);opacity:.75}.vp-site-info:hover .vp-site-info-detail{opacity:0}.vp-site-info-logo{z-index:1;height:3rem;margin:0 auto}.vp-site-info-name{z-index:1;margin-bottom:8px;border-bottom:1px solid var(--dark-grey);color:var(--black);font-weight:700;font-size:20px}.vp-site-info-desc{z-index:1;flex-shrink:1;overflow:hidden;color:var(--black);font-size:15px;line-height:1.3;text-overflow:ellipsis}.vp-site-info-source-wrapper{position:absolute;bottom:16px;inset-inline-end:16px;z-index:3}.vp-site-info-source{display:inline-block;width:20px;height:20px;padding:4px;border-radius:50%;background:var(--black);transition:transform var(--transform-transition)}.vp-site-info-source:before{display:none}.vp-site-info-source:hover{transform:scale(1.05)}.vp-site-info-source .icon{width:100%;height:100%;color:var(--white)}.vp-card{display:inline-flex;align-items:center;max-width:400px;margin:1rem .5rem;padding:1rem;border-radius:.5rem;background:var(--vp-bg);color:inherit;box-shadow:2px 2px 10px 0 var(--card-shadow);transition:background var(--vp-ct),box-shadow var(--vp-ct)}.vp-card:hover{background:var(--vp-bgl);text-decoration:none!important}.vp-card hr{margin:.25em 0}.vp-card-logo{width:3em;height:3em;margin-inline-end:1em;border-radius:50%}.vp-card-content{flex:1}.vp-card-title{font-weight:500;font-size:1.1em}.vp-card-desc{color:#888;font-size:.9em;line-height:1.5;transition:color var(--vp-ct)}.vp-card-container{display:flex;flex-wrap:wrap;align-items:stretch;place-content:stretch center}.vp-card-container .vp-card{flex-basis:calc(50% - 3rem);max-width:unset;margin:.5rem}@media (max-width: 959px){.vp-card-container .vp-card{flex-basis:100%}}@media (max-width: 719px){.vp-card-container .vp-card{font-size:.95rem}}@media (max-width: 419px){.vp-card-container .vp-card{font-size:.9rem}}.vp-banner{max-width:880px;margin:1rem .5rem;padding:2.5rem;border-radius:1.5rem;background:var(--vp-bg);color:inherit;box-shadow:2px 2px 10px 2px var(--card-shadow);transition:background var(--vp-ct),box-shadow var(--vp-ct)}@media (max-width: 719px){.vp-banner{margin:.75rem 0;padding:1rem 1.5rem}}.vp-banner-logo{float:right;width:6rem;height:6rem;margin-bottom:12px;margin-inline-start:12px}.vp-banner-title{font-weight:500;font-size:2rem;line-height:1.5}@media (max-width: 719px){.vp-banner-title{font-size:1.75rem}}.vp-banner-content{max-width:80%;font-size:1.125rem}@media (max-width: 719px){.vp-banner-content{font-size:1rem}}.vp-banner-actions{display:flex;flex-wrap:wrap}.vp-banner-action{height:3rem;margin:.25rem .5rem;padding:0 1.75rem;border-radius:1.5rem;background-color:#7f7f7f1a;color:inherit;font-size:1rem;line-height:3;text-decoration:none!important}@media (max-width: 719px){.vp-banner-action{height:2.5rem;line-height:2.5}}.vp-banner-action:hover{background-color:var(--c-border)}.vp-banner-action.primary{background:var(--vp-tc);color:var(--white)}.vp-banner-action.primary:hover{background:var(--vp-tcl)}[data-media-player]{width:100%;display:inline-flex;align-items:center;position:relative;contain:style;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none}[data-media-player] *{box-sizing:border-box}:where([data-media-player][data-view-type=video]){aspect-ratio:16 / 9}[data-media-player]:focus,[data-media-player]:focus-visible{outline:none}[data-media-player][data-view-type=video][data-started]:not([data-controls]){pointer-events:auto;cursor:none}[data-media-player] slot{display:contents}[data-media-provider]{display:flex;position:relative;box-sizing:border-box;align-items:center;border-radius:inherit;width:100%;aspect-ratio:inherit;overflow:hidden}[data-media-player]:not([data-view-type=audio]) [data-media-provider],[data-media-player][data-fullscreen] [data-media-provider]{height:100%}[data-media-player][data-view-type=audio] [data-media-provider]{display:contents;background-color:unset}[data-media-provider] audio{width:100%}:where(video:not([width]):not([height]),iframe:not([width]):not([height])){width:100%;aspect-ratio:16 / 9}:where([data-media-provider] video),:where([data-media-provider] iframe){aspect-ratio:inherit;display:inline-block;height:auto;-o-object-fit:contain;object-fit:contain;touch-action:manipulation;border-radius:inherit;width:100%}[data-media-provider] iframe{height:100%}[data-media-player][data-view-type=audio] video,[data-media-player][data-view-type=audio] iframe{display:none}[data-media-player][data-fullscreen] video{height:100%}iframe.vds-youtube[data-no-controls]{height:1000%}.vds-blocker{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:auto;aspect-ratio:inherit;pointer-events:auto;border-radius:inherit;z-index:1}[data-ended] .vds-blocker{background-color:#000}.vds-icon:focus{outline:none}.vds-google-cast{width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#dedede;font-family:sans-serif;font-weight:500}.vds-google-cast svg{--size: max(18%, 40px);width:var(--size);height:var(--size);margin-bottom:8px}.vds-google-cast-info{font-size:calc(var(--media-height) / 100 * 6)}:where(.vds-buffering-indicator){position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1}:where(.vds-buffering-indicator) :where(.vds-buffering-icon,.vds-buffering-spinner){opacity:0;pointer-events:none;transition:var(--media-buffering-transition, opacity .2s ease)}:where(.vds-buffering-indicator) :where(.vds-buffering-icon,svg.vds-buffering-spinner,.vds-buffering-spinner svg){width:var(--media-buffering-size, 96px);height:var(--media-buffering-size, 96px)}:where(.vds-buffering-indicator) :where(.vds-buffering-track,circle[data-part=track]){color:var(--media-buffering-track-color, #f5f5f5);opacity:var(--media-buffering-track-opacity, .25);stroke-width:var(--media-buffering-track-width, 8)}:where(.vds-buffering-indicator) :where(.vds-buffering-track-fill,circle[data-part=track-fill]){color:var(--media-buffering-track-fill-color, var(--media-brand));opacity:var(--media-buffering-track-fill-opacity, .75);stroke-width:var(--media-buffering-track-fill-width, 9);stroke-dasharray:100;stroke-dashoffset:var(--media-buffering-track-fill-offset, 50)}:where([data-buffering]) :where(.vds-buffering-icon,.vds-buffering-spinner){opacity:1;animation:var(--media-buffering-animation, vds-buffering-spin 1s linear infinite)}@keyframes vds-buffering-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion){:where([data-buffering]) :where(.vds-buffering-icon,.vds-buffering-spinner){animation-duration:8s}}:where(.vds-button){position:relative;display:inline-flex;justify-content:center;align-items:center;-moz-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;outline:none;border:none;border-radius:var(--media-button-border-radius, 8px);width:var(--media-button-size, 40px);height:var(--media-button-size, 40px);transition:transform .2s ease-out;contain:layout style;cursor:pointer;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;flex-shrink:0}.vds-button{border:var(--media-button-border);color:var(--media-button-color, var(--media-controls-color, #f5f5f5));padding:var(--media-button-padding, 0px)}:where([data-fullscreen] .vds-button){width:var(--media-fullscreen-button-size, 42px);height:var(--media-fullscreen-button-size, 42px)}@media screen and (max-width: 599px){:where([data-fullscreen] .vds-button){width:var(--media-sm-fullscreen-button-size, 42px);height:var(--media-sm-fullscreen-button-size, 42px)}}:where(.vds-button .vds-icon){width:var(--media-button-icon-size, 80%);height:var(--media-button-icon-size, 80%);border-radius:var(--media-button-border-radius, 8px)}:where(.vds-menu-button .vds-icon){display:flex!important}:where(.vds-button[aria-hidden=true]){display:none!important}@media (hover: hover) and (pointer: fine){.vds-button:hover{background-color:var(--media-button-hover-bg, rgb(255 255 255 / .2))}.vds-button:hover{transform:var(--media-button-hover-transform, scale(1.05));transition:var(--media-button-hover-transition, transform .2s ease-in)}.vds-button[aria-expanded=true]{transform:unset}}@media (pointer: coarse){.vds-button:hover{border-radius:var(--media-button-touch-hover-border-radius, 100%);background-color:var(--media-button-touch-hover-bg, rgb(255 255 255 / .2))}}:where(.vds-button:focus){outline:none}:where(.vds-button[data-focus],.vds-button:focus-visible){box-shadow:var(--media-focus-ring)}:where(.vds-live-button){min-width:auto;min-height:auto;width:var(--media-live-button-width, 40px);height:var(--media-live-button-height, 40px);padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;outline:none;border:none}:where(.vds-live-button-text){font-family:var(--media-font-family, sans-serif);font-size:var(--media-live-button-font-size, 12px);font-weight:var(--media-live-button-font-weight, 600);letter-spacing:var(--media-live-button-letter-spacing, 1.5px);transition:color .3s ease}.vds-live-button-text{background-color:var(--media-live-button-bg, #8a8a8a);border-radius:var(--media-live-button-border-radius, 2px);color:var(--media-live-button-color, #161616);padding:var(--media-live-button-padding, 1px 4px)}:where(.vds-live-button[data-focus] .vds-live-button-text){box-shadow:var(--media-focus-ring)}:where(.vds-live-button[data-edge]){cursor:unset}.vds-live-button[data-edge] .vds-live-button-text{background-color:var(--media-live-button-edge-bg, #dc2626);color:var(--media-live-button-edge-color, #f5f5f5)}@media (pointer: fine){:where(.vds-live-button:hover){background-color:unset}}.vds-button:not([data-paused]) .vds-play-icon,.vds-button[data-ended] .vds-play-icon,.vds-button[data-paused] .vds-pause-icon,.vds-button[data-ended] .vds-pause-icon,.vds-button:not([data-ended]) .vds-replay-icon,.vds-button[data-active] .vds-pip-enter-icon,.vds-button:not([data-active]) .vds-pip-exit-icon,.vds-button[data-active] .vds-fs-enter-icon,.vds-button:not([data-active]) .vds-fs-exit-icon,.vds-button:not([data-active]) .vds-cc-on-icon,.vds-button[data-active] .vds-cc-off-icon,.vds-button:not([data-muted]) .vds-mute-icon,.vds-button:not([data-state=low]) .vds-volume-low-icon,.vds-button:not([data-state=high]) .vds-volume-high-icon{display:none}:where(.vds-captions){--overlay-padding: var(--media-captions-padding, 1%);--cue-color: var(--media-user-text-color, var(--media-cue-color, white));--cue-bg-color: var(--media-user-text-bg, var(--media-cue-bg, rgba(0, 0, 0, .7)));--cue-default-font-size: var(--media-cue-font-size, calc(var(--overlay-height) / 100 * 4.5));--cue-font-size: calc(var(--cue-default-font-size) * var(--media-user-font-size, 1));--cue-line-height: var(--media-cue-line-height, calc(var(--cue-font-size) * 1.2));--cue-padding-x: var(--media-cue-padding-x, calc(var(--cue-font-size) * .6));--cue-padding-y: var(--media-cue-padding-x, calc(var(--cue-font-size) * .4));--cue-padding: var(--cue-padding-y) var(--cue-padding-x);position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;contain:layout style;margin:var(--overlay-padding);font-size:var(--cue-font-size);font-family:var(--media-user-font-family, sans-serif);box-sizing:border-box;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;word-spacing:normal;word-break:break-word}:where([data-fullscreen][data-orientation=portrait] .vds-captions){--cue-default-font-size: var(--media-cue-font-size, calc(var(--overlay-width) / 100 * 4.5))}:where([data-view-type=audio] .vds-captions){position:relative;margin:0}:where(.vds-captions[aria-hidden=true]){opacity:0;visibility:hidden}.vds-captions[data-example]{opacity:1!important;visibility:visible!important}:where([data-view-type=video] .vds-captions [data-part=cue-display][data-example]){--cue-text-align: center;--cue-width: 100%;--cue-top: 90%;--cue-left: 0%}:where([data-view-type=audio] .vds-captions [data-part=cue-display]){--cue-width: 100%;position:relative!important}:where(.vds-captions [data-part=cue-display]){position:absolute;direction:ltr;overflow:visible;contain:content;top:var(--cue-top);left:var(--cue-left);right:var(--cue-right);bottom:var(--cue-bottom);width:var(--cue-width, auto);height:var(--cue-height, auto);box-sizing:border-box;transform:var(--cue-transform);text-align:var(--cue-text-align);writing-mode:var(--cue-writing-mode, unset);white-space:pre-line;unicode-bidi:plaintext;min-width:-moz-min-content;min-width:min-content;min-height:-moz-min-content;min-height:min-content;background-color:var(--media-user-display-bg, var(--media-cue-display-bg));border-radius:var(--media-cue-display-border-radius)}.vds-captions [data-part=cue-display]{padding:var(--media-cue-display-padding)}:where(.vds-captions[data-dir=rtl] [data-part=cue-display]){direction:rtl}:where(.vds-captions [data-part=cue]){display:inline-block;contain:content;font-variant:var(--media-user-font-variant);border:var(--media-cue-border, unset);border-radius:var(--media-cue-border-radius, 2px);-webkit-backdrop-filter:var(--media-cue-backdrop, blur(8px));backdrop-filter:var(--media-cue-backdrop, blur(8px));line-height:var(--cue-line-height);box-sizing:border-box;box-shadow:var(--media-cue-box-shadow, var(--cue-box-shadow));white-space:var(--cue-white-space, pre-wrap);outline:var(--cue-outline);text-shadow:var(--media-user-text-shadow, var(--cue-text-shadow))}.vds-captions [data-part=cue]{background-color:var(--cue-bg-color);color:var(--cue-color);padding:var(--cue-padding)}:where(.vds-captions [data-part=cue-display][data-vertical] [data-part=cue]){--cue-padding: var(--cue-padding-x) var(--cue-padding-y)}:where(.vds-captions [data-part=region]){--anchor-x-percent: calc(var(--region-anchor-x) / 100);--anchor-x: calc(var(--region-width) * var(--anchor-x-percent));--anchor-y-percent: calc(var(--region-anchor-y) / 100);--anchor-y: calc(var(--region-height) * var(--anchor-y-percent));--vp-anchor-x: calc(var(--region-viewport-anchor-x) * 1%);--vp-anchor-y-percent: calc(var(--region-viewport-anchor-y) / 100);--vp-anchor-y: calc(var(--overlay-height) * var(--vp-anchor-y-percent));position:absolute;display:inline-flex;flex-flow:column;justify-content:flex-start;width:var(--region-width);height:var(--region-height);min-height:0px;max-height:var(--region-height);writing-mode:horizontal-tb;top:var(--region-top, calc(var(--vp-anchor-y) - var(--anchor-y)));left:var(--region-left, calc(var(--vp-anchor-x) - var(--anchor-x)));right:var(--region-right);bottom:var(--region-bottom);overflow:hidden;overflow-wrap:break-word;box-sizing:border-box}:where(.vds-captions [data-part=region][data-scroll=up]){justify-content:end}:where(.vds-captions [data-part=region][data-active][data-scroll=up]){transition:top .433s}:where(.vds-captions [data-part=region]>[data-part=cue-display]){position:relative;width:auto;left:var(--cue-offset);height:var(--cue-height, auto);text-align:var(--cue-text-align);unicode-bidi:plaintext;margin-top:2px}:where(.vds-captions [data-part=region] [data-part=cue]){position:relative;border-radius:0}:where(.vds-chapter-title){--color: var(--media-chapter-title-color, rgba(255 255 255 / .64));display:inline-block;font-family:var(--media-font-family, sans-serif);font-size:var(--media-chapter-title-font-size, 16px);font-weight:var(--media-chapter-title-font-weight, 400);color:var(--color);flex:1 1 0%;padding-inline:6px;overflow:hidden;text-align:start;white-space:nowrap;text-overflow:ellipsis}.vds-chapter-title:before{content:var(--media-chapter-title-separator, "•");display:inline-block;margin-right:var(--media-chapter-title-separator-gap, 6px);color:var(--media-chapter-title-separator-color, var(--color))}.vds-chapter-title:empty:before{content:"";margin:0}:where(.vds-controls),:where(.vds-controls-group){position:relative;display:inline-block;width:100%;box-sizing:border-box}:where([data-view-type=audio] .vds-controls){display:inline-block;max-width:100%}:where([data-view-type=video] .vds-controls){display:flex;position:absolute;flex-direction:column;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:10;opacity:0;visibility:hidden;pointer-events:none;padding:var(--media-controls-padding, 0px);transition:var(--media-controls-out-transition, opacity .2s ease-out)}:where([data-view-type=video] .vds-controls[data-visible]){opacity:1;visibility:visible;transition:var(--media-controls-in-transition, opacity .2s ease-in)}:where(.vds-controls-spacer){flex:1 1 0%;pointer-events:none}:where(.vds-gestures){display:contents}:where(.vds-gesture){position:absolute;display:block;contain:content;z-index:0;opacity:0;visibility:hidden;pointer-events:none!important}:where(.vds-icon svg){display:block;width:100%;height:100%;vertical-align:middle}:where(.vds-kb-action.hidden){opacity:0}:where(.vds-kb-text-wrapper){text-align:center;position:absolute;left:0;right:0;top:var(--media-kb-text-top, 10%);z-index:20;pointer-events:none}:where(.vds-kb-text){display:inline-block;font-size:var(--media-kb-text-size, 150%);font-family:var(--media-font-family, sans-serif);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:var(--media-kb-border-radius, 2.5px);pointer-events:none}.vds-kb-text{color:var(--media-kb-text-color, var(--default-color));background-color:var(--media-kb-text-bg, var(--default-bg));padding:var(--media-kb-text-padding, 10px 20px)}.light .vds-kb-text{--default-color: #1a1a1a;--default-bg: rgb(240 240 240 / .6)}.dark .vds-kb-text{--default-color: #f5f5f5;--default-bg: rgb(10 10 10 / .6)}:where(.vds-kb-text:empty){display:none}:where(.vds-kb-bezel){--size: var(--media-kb-bezel-size, 52px);position:absolute;left:50%;top:45%;display:flex;flex-direction:column;align-items:center;justify-content:center;width:var(--size);height:var(--size);margin-left:calc(-1 * calc(var(--size) / 2));margin-right:calc(-1 * calc(var(--size) / 2));z-index:20;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:var(--media-kb-bezel-bg, var(--default-bg));animation:var(--media-kb-bezel-animation, vds-bezel-fade .35s linear 1 normal forwards);border-radius:var(--media-kb-bezel-border-radius, calc(var(--size) / 2));pointer-events:none}.vds-kb-bezel:not(:has(svg)){display:none!important}.light .vds-kb-bezel{--default-bg: rgb(255 255 255 / .6)}.dark .vds-kb-bezel{--default-bg: rgb(10 10 10 / .6)}@media (prefers-reduced-motion){:where(.vds-kb-bezel){animation:none}}:where(.vds-kb-bezel:has(slot:empty)){opacity:0}:where(.vds-kb-action[data-action=seek-forward] .vds-kb-bezel){top:45%;left:unset;right:10%}:where(.vds-kb-action[data-action=seek-backward] .vds-kb-bezel){top:45%;left:10%}:where(.vds-kb-icon){--size: var(--media-kb-icon-size, 38px);width:var(--size);height:var(--size)}.vds-kb-icon{color:var(--media-kb-icon-color, var(--default-color))}.light .vds-kb-icon{--default-color: #1a1a1a}.dark .vds-kb-icon{--default-color: #f5f5f5}@keyframes vds-bezel-fade{0%{opacity:1}to{opacity:0;transform:scale(2)}}:where(.vds-menu-items){--color-inverse: var(--media-menu-color-inverse, var(--default-inverse));--color-gray-50: var(--media-menu-color-gray-50, var(--default-gray-50));--color-gray-100: var(--media-menu-color-gray-100, var(--default-gray-100));--color-gray-200: var(--media-menu-color-gray-200, var(--default-gray-200));--color-gray-300: var(--media-menu-color-gray-300, var(--default-gray-300));--color-gray-400: var(--media-menu-color-gray-400, var(--default-gray-400));--text-color: var(--media-menu-text-color, var(--default-text));--text-secondary-color: var(--media-menu-text-secondary-color, var(--default-text-secondary));--root-border: var(--media-menu-border, var(--default-root-border))}.light .vds-menu-items{--default-inverse: black;--default-gray-50: rgb(80 80 80 / .15);--default-gray-100: rgb(80 80 80 / .45);--default-gray-200: rgb(235 235 235 / .6);--default-gray-300: rgb(238 238 238);--default-gray-400: rgb(250 250 250);--default-text: #1a1a1a;--default-text-secondary: #6b6b6b;--default-root-border: 1px solid rgb(10 10 10 / .1)}.dark .vds-menu-items{--default-inverse: white;--default-gray-50: rgb(245 245 245 / .1);--default-gray-100: rgb(245 245 245 / .45);--default-gray-200: rgb(10 10 10 / .6);--default-gray-300: rgb(27 27 27);--default-gray-400: rgb(10 10 10);--default-text: #f5f5f5;--default-text-secondary: #8a8a8a;--default-root-border: 1px solid rgb(255 255 255 / .1)}:where(.vds-menu-items){--font-family: var(--media-font-family, sans-serif);--font-size: var(--media-menu-font-size, 14px);--font-weight: var(--media-menu-font-weight, 500);--root-bg: var(--media-menu-bg, var(--color-gray-400));--root-padding: var(--media-menu-padding, 12px);--root-border-radius: var(--media-menu-border-radius, 4px);--divider: var(--media-menu-divider, 1px solid var(--color-gray-50));--section-bg: var(--media-menu-section-bg, var(--color-gray-300));--section-border: var(--media-menu-section-border);--section-divider: var(--media-menu-section-divider, var(--divider));--top-bar-bg: var(--media-menu-top-bar-bg, var(--color-gray-200));--top-bar-divider: var(--media-menu-divider, transparent);--text-hint-color: var(--media-menu-hint-color, var(--text-secondary-color));--chapter-divider: var(--media-chapters-divider, var(--divider));--chapter-active-bg: var(--media-chapters-item-active-bg, var(--color-gray-50));--chapter-active-border-left: var(--media-chapters-item-active-border-left);--chapter-progress-bg: var(--media-chapters-progress-bg, var(--color-inverse));--chapter-time-font-size: var(--media-chapters-time-font-size, 12px);--chapter-time-font-weight: var(--media-chapters-time-font-weight, 500);--chapter-time-gap: var(--media-chapters-time-gap, 6px);--chapter-duration-bg: var(--media-chapters-duration-bg);--item-border: var(--media-menu-item-border, 0);--item-bg: var(--media-menu-item-bg, transparent);--item-hover-bg: var(--media-menu-item-hover-bg, var(--color-gray-50));--item-icon-size: var(--media-menu-item-icon-size, 18px);--item-padding: var(--media-menu-item-padding, 10px);--item-min-height: var(--media-menu-item-height, 40px);--item-border-radius: var(--media-menu-item-border-radius, 2px);--scrollbar-track-bg: var(--media-menu-scrollbar-track-bg, transparent);--scrollbar-thumb-bg: var(--media-menu-scrollbar-thumb-bg, var(--color-gray-50));--webkit-scrollbar-bg: var(--color-gray-400);--webkit-scrollbar-track-bg: var(--media-menu-scrollbar-track-bg, var(--color-gray-50));--checkbox-bg: var(--media-menu-checkbox-bg, var(--color-gray-100));--checkbox-active-bg: var(--media-menu-checkbox-bg-active, #1ba13f);--checkbox-handle-bg: var(--media-menu-checkbox-handle-bg, #f5f5f5);--checkbox-handle-border: var(--media-menu-checkbox-handle-border);--radio-icon-color: var(--media-menu-radio-icon-color, var(--text-color))}:where(.vds-menu[data-root] media-menu[data-root]){display:contents}:where(.vds-menu){font-family:var(--font-family);font-size:var(--font-size);font-weight:var(--font-weight)}:where(.vds-menu[data-disabled][data-root]){display:none}:where(.vds-menu[data-submenu]){display:inline-block}:where(.vds-menu-items:focus){outline:none}:where(.vds-menu-item:focus,.vds-radio:focus){outline:none}:where(.vds-menu-item:focus-visible,.vds-menu-item[data-focus],.vds-radio:focus-visible,.vds-radio[data-focus]){outline:none;box-shadow:var(--media-focus-ring)}:where(.vds-menu[data-open] .vds-tooltip-content){display:none!important}.vds-menu-items [data-hidden]{display:none!important}@media (prefers-reduced-motion: no-preference){:where(.vds-menu-items){scroll-behavior:smooth}}:where(.vds-menu-items){box-sizing:border-box;min-width:var(--media-menu-min-width, 280px);scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb-bg) var(--scrollbar-track-bg);transform:translateZ(0)}:where(.vds-menu-items)::-webkit-scrollbar{background-color:var(--webkit-scrollbar-bg);border-radius:var(--root-border-radius);height:6px;width:5px}:where(.vds-menu-items)::-webkit-scrollbar-track{background-color:var(--webkit-scrollbar-track-bg);border-radius:4px}:where(.vds-menu-items)::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-bg);border-radius:4px}:where(.vds-menu-items)::-webkit-scrollbar-corner{background-color:var(--scrollbar-thumb-bg)}:where(.vds-menu-button){outline:none;box-sizing:border-box}:where(.vds-menu-button .vds-rotate-icon){transition:transform .2s ease-out}:where(.vds-menu-button[aria-expanded=true] .vds-rotate-icon){transform:rotate(var(--media-menu-icon-rotate-deg, 90deg));transition:transform .2s ease-in}:where(.vds-menu-button){display:inline-flex;align-items:center;justify-content:center}@media (prefers-reduced-motion){:where(.vds-menu-button .vds-rotate-icon){transition:unset}}:where(.vds-menu-items){display:flex;align-items:center;flex-direction:column;font-family:var(--font-family);font-size:var(--font-size);font-weight:var(--font-weight);transition:height .35s ease}@media (prefers-reduced-motion){:where(.vds-menu-items){transition:unset}}:where(.vds-menu-items[data-root]){background-color:var(--root-bg);border-radius:var(--root-border-radius);box-shadow:var(--media-menu-box-shadow);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);height:var(--menu-height, auto);will-change:width,height;overflow-y:auto;overscroll-behavior:contain;opacity:0;z-index:9999999;box-sizing:border-box;max-height:var(--media-menu-max-height, 250px);filter:var( --media-menu-filter, drop-shadow(0 4px 3px rgb(0 0 0 / .07)) drop-shadow(0 2px 2px rgb(0 0 0 / .06)) )}.vds-menu-items[data-root]{border:var(--root-border);padding:var(--root-padding)}:where([data-view-type=video]) :where(.vds-menu-items[data-root]){max-height:var(--media-menu-video-max-height, calc(var(--player-height) * .7))}:where(.vds-menu-items[data-transition=height]){--scrollbar-thumb-bg: rgba(0, 0, 0, 0);pointer-events:none;overflow:hidden}.vds-menu-button[aria-disabled=true],.vds-menu-item[aria-disabled=true],.vds-menu-item[data-disabled]{display:none}:where(.vds-menu-items[data-root]){--enter-transform: translateY(0px);--exit-transform: translateY(12px)}:where(.vds-menu-items[data-root]:not([data-placement])){--enter-transform: translateY(-24px)}:where(.vds-menu-items[data-root][aria-hidden=true]){animation:var(--media-menu-exit-animation, vds-menu-exit .2s ease-out)}:where(.vds-menu-items[data-root][aria-hidden=false]){animation:var(--media-menu-enter-animation, vds-menu-enter .3s ease-out);animation-fill-mode:forwards}:where(.vds-menu-items[data-placement~=bottom]){--enter-transform: translateY(0);--exit-transform: translateY(-12px)}@keyframes vds-menu-enter{0%{opacity:0;transform:var(--exit-transform)}to{opacity:1;transform:var(--enter-transform)}}@keyframes vds-menu-exit{0%{opacity:1;transform:var(--enter-transform)}to{opacity:0;transform:var(--exit-transform)}}@media (prefers-reduced-motion){:where(.vds-menu-items){animation:none;opacity:1}}:where(media-menu-portal){display:contents}:where(.vds-menu-items[data-root]:not([data-placement])){position:fixed;left:16px;right:16px;top:unset;bottom:0;max-height:var(--media-sm-menu-portrait-max-height, 40vh);max-height:var(--media-sm-menu-portrait-max-height, 40dvh)}:where(.vds-menu-items[data-root]:not([data-placement])){max-width:480px;margin:0 auto}@media (orientation: landscape) and (pointer: coarse){:where(.vds-menu-items[data-root]:not([data-placement])){max-height:var(--media-sm-menu-landscape-max-height, min(70vh, 400px));max-height:var(--media-sm-menu-landscape-max-height, min(70dvh, 400px))}}:where(.vds-menu[data-submenu] .vds-menu-button){display:flex;align-items:center;justify-content:flex-start}:where(.vds-menu-items[data-submenu]){width:100%}:where(.vds-menu[aria-hidden=true]),:where(.vds-menu-items[data-submenu][aria-hidden=true]){display:none}:where(.vds-menu-item,.vds-radio){position:relative;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none;display:flex;align-items:center;justify-content:left;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:var(--item-border-radius);box-sizing:border-box;min-height:var(--item-min-height);font-size:var(--font-size);outline:none}.vds-menu-item,.vds-radio{color:var(--text-color);background-color:var(--item-bg);padding:var(--item-padding)}.vds-menu-item:focus-visible,.vds-menu-item[data-focus],.vds-radio:focus-visible,.vds-radio[data-focus]{cursor:pointer;background-color:var(--item-hover-bg)}@media (hover: hover) and (pointer: fine){.vds-menu-item[role]:hover,.vds-radio:hover{cursor:pointer;background-color:var(--item-hover-bg)}}:where(.vds-menu-items[data-submenu]){align-items:flex-start;justify-content:center;flex-direction:column}:where(.vds-menu-item[aria-expanded=true]){font-weight:700;border-radius:0;border-top-left-radius:var(--item-border-radius);border-top-right-radius:var(--item-border-radius)}.vds-menu-item[aria-expanded=true]{border-bottom:var(--top-bar-divider)}:where(.vds-menu-item[aria-expanded=true]){position:sticky;top:calc(-1 * var(--root-padding));left:0;width:100%;z-index:10;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);margin-bottom:4px}.vds-menu-item[aria-expanded=true]{background-color:var(--top-bar-bg)}:where(.vds-menu-item-label){flex:1 0 0%;text-align:start}:where(.vds-menu-item .vds-icon,.vds-radio .vds-icon){--size: var(--item-icon-size);width:var(--size);height:var(--size);margin-right:var(--media-menu-item-icon-spacing, 6px)}:where(.vds-menu-open-icon,.vds-menu-close-icon){--size: var(--media-menu-arrow-icon-size, 18px);width:var(--size);height:var(--size)}:where(.vds-menu-item-hint,.vds-menu-open-icon,.vds-radio-hint){color:var(--text-hint-color);font-size:var(--media-menu-hint-font-size, 13px);font-weight:var(--media-menu-hint-font-weight, 400)}:where(.vds-menu-items .vds-menu-open-icon){margin-right:0}:where(.vds-menu-items) :where(.vds-menu-item-hint,.vds-menu-open-icon){margin-left:auto}:where(.vds-menu-items) :where(.vds-menu-item-hint+.vds-menu-open-icon),:where(.vds-menu-item-hint+media-icon .vds-menu-open-icon),:where(.vds-menu-item-hint+slot>.vds-menu-open-icon){margin-left:2px}:where(.vds-menu-item[aria-hidden=true]),:where(.vds-menu-item[aria-expanded=true] .vds-menu-open-icon){display:none!important}:where(.vds-menu-items) :where(.vds-menu-item[aria-disabled=true],.vds-menu-item[data-disabled]) :where(.vds-menu-open-icon){opacity:0}:where(.vds-menu-close-icon),:where(.vds-menu-item[aria-expanded=true]>.vds-icon){display:none!important}:where(.vds-menu-item[aria-expanded=true] .vds-menu-close-icon){display:inline!important;margin-left:calc(-1 * var(--item-padding) / 2)}:where(.vds-menu-checkbox){--checkbox-width: var(--media-menu-checkbox-width, 40px);--checkbox-height: var(--media-menu-checkbox-height, 18px);--checkbox-top: calc((var(--checkbox-height) - var(--checkbox-diameter)) / 2);--checkbox-diameter: var( --media-menu-checkbox-handle-diameter, calc(var(--checkbox-height) - 2px) );--checkbox-gap: var(--media-menu-checkbox-gap, 2.5px);position:relative;display:inline-block;width:var(--checkbox-width);height:var(--checkbox-height);border-radius:calc(var(--checkbox-height) / 2);transition:.3s all ease-in-out;box-sizing:border-box;cursor:pointer;pointer-events:auto}.vds-menu-checkbox{background-color:var(--checkbox-bg)}:where(.vds-menu-checkbox:focus-visible){outline:none;box-shadow:var(--media-focus-ring)}.vds-menu-checkbox[aria-checked=true]{background-color:var(--checkbox-active-bg)}:where(.vds-menu-checkbox):after{content:"";display:inline-block;width:var(--checkbox-diameter);height:var(--checkbox-diameter);border-radius:calc(var(--checkbox-diameter) / 2);position:absolute;top:var(--checkbox-top);transform:translate(var(--checkbox-gap));transition:.3s all ease-in-out;border:var(--checkbox-handle-border);box-sizing:border-box}.vds-menu-checkbox:after{background-color:var(--checkbox-handle-bg)}:where(.vds-menu-checkbox[aria-checked=true]):after{transform:translate(calc(var(--checkbox-width) - var(--checkbox-diameter) - var(--checkbox-gap)))}@media (prefers-reduced-motion: no-preference){:where(.vds-menu-checkbox[data-active]):after{width:calc(var(--checkbox-width) - calc(var(--checkbox-gap) * 2))}}:where(.vds-menu-checkbox[aria-checked=true][data-active]):after{transform:translate(var(--checkbox-gap))}:where(.vds-menu-items .vds-slider){--media-slider-track-bg: var(--media-menu-slider-track-bg, var(--color-gray-50));--media-slider-track-fill-bg: var(--media-menu-slider-track-fill-bg, var(--color-inverse));--media-slider-height: var(--media-menu-slider-height, 32px);--track-focus-height: var(--track-height) !important}:where(.vds-menu-items .vds-slider-thumb){opacity:1!important}:where(.vds-menu-slider-item.group){flex-direction:column}:where(.vds-menu-slider-title){margin-top:4px}:where(.vds-menu-slider-body){width:100%;display:flex;align-items:center;margin-top:6px}:where(.vds-menu-slider-item .vds-icon){margin:0;color:var(--text-hint-color)}:where(.vds-menu-slider-item[data-min] .vds-icon.down,.vds-menu-slider-item[data-max] .vds-icon.up){color:var(--text-color);animation:.6s ease-in-out vds-slider-icon;transition:all 1.2s ease}@keyframes vds-slider-icon{0%{transform:scale(1)}50%{transform:scale(1.25)}to{transform:scale(1)}}:where(.vds-menu-items .vds-slider-track-fill){transition:opacity .3s ease}:where(.vds-menu-items .vds-slider[data-active] .vds-slider-track-fill){opacity:0}:where(.vds-radio-group){box-sizing:border-box;width:100%;display:flex;flex-direction:column}.vds-radio{cursor:pointer;contain:content;padding-left:calc(var(--item-icon-size) + var(--item-padding))}.vds-radio[aria-checked=true]{padding-left:0}.vds-radio .vds-icon{display:none;color:var(--radio-icon-color)}.vds-radio[aria-checked=true] .vds-icon{display:inline-block;margin-left:6px}:where(.vds-radio-hint){margin-left:auto}.vds-color-picker{width:32px;height:32px;border:0;background-color:transparent;outline:none}.vds-color-picker::-webkit-color-swatch{border-radius:2px}.vds-color-picker::-moz-color-swatch{border-radius:2px}.vds-color-picker:focus-visible::-webkit-color-swatch{box-shadow:var(--media-focus-ring)}.vds-color-picker:focus-visible::-moz-color-swatch{box-shadow:var(--media-focus-ring)}:where(.vds-menu-section){width:100%}:where(.vds-menu-item+.vds-menu-section){margin-top:8px}:where(.vds-menu-section+.vds-menu-section){margin-top:24px}:where(.vds-menu-section:first-child){margin-top:8px}:where(.vds-menu-section:last-child){margin-bottom:8px}:where(.vds-menu-section-title),:where(.vds-menu-slider-title){width:100%;display:flex;align-items:center;justify-content:space-between;color:var(--text-secondary-color);font-size:var(--media-menu-section-header-font-size, 12px);font-weight:var(--media-menu-section-header-font-weight, 500);padding-inline:2px}:where(.vds-menu-section-body){width:100%}:where(.vds-menu-section-title+.vds-menu-section-body){margin-top:var(--media-menu-section-gap, 8px)}.vds-menu-section-body{background-color:var(--section-bg);border:var(--section-border);border-radius:var(--media-menu-section-border-radius, 2px)}:where(.vds-menu-section:not([data-open]) .vds-menu-item:not(:last-child)){border-bottom:var(--section-divider)}:where(.vds-menu-section-body .vds-menu:last-child>.vds-menu-item){border-bottom:unset}.vds-menu-section[data-open],.vds-menu-section[data-open]>.vds-menu-section-body{display:contents!important;background-color:transparent!important}.vds-menu-section[data-open]>.vds-menu-section-title,.vds-menu-section[data-open]>.vds-menu-section-body>:not([data-open]){display:none}:where(.vds-chapters-menu-items){min-width:var(--media-chapters-min-width, var(--media-menu-min-width, 220px))}.vds-chapters-menu-items{padding:var(--media-chapters-padding, 0)}:where(.vds-menu-items:has(.vds-chapters-radio-group[data-thumbnails])){min-width:var(--media-chapters-with-thumbnails-min-width, 300px)}:where(.vds-chapter-radio){border-radius:0}.vds-chapter-radio{border-bottom:var(--chapter-divider);padding:var(--item-padding)}.vds-chapter-radio[aria-checked=true]{padding-left:var(--item-padding)}:where(.vds-chapter-radio:last-child){border-bottom:0}.vds-chapter-radio[aria-checked=true]{background-color:var(--chapter-active-bg);border-left:var(--chapter-active-border-left)}:where(.vds-chapter-radio[aria-checked=true]):after{content:" ";width:var(--progress);height:var(--media-chapters-progress-height, 4px);position:absolute;bottom:0;left:0}.vds-chapter-radio[aria-checked=true]:after{border-radius:var(--media-chapters-progress-border-radius, 0);background-color:var(--chapter-progress-bg)}.vds-chapters-radio-group :where(.vds-thumbnail){margin-right:var(--media-chapters-thumbnail-gap, 12px);flex-shrink:0;min-width:var(--media-chapters-thumbnail-min-width, 100px);min-height:var(--media-chapters-thumbnail-min-height, 56px);max-width:var(--media-chapters-thumbnail-max-width, 120px);max-height:var(--media-chapters-thumbnail-max-height, 68px)}.vds-chapters-radio-group .vds-thumbnail{border:var(--media-chapters-thumbnail-border, 0)}:where(.vds-chapters-radio-group .vds-chapter-radio-label){color:var(--text-secondary-color);font-size:var(--font-size);font-weight:var(--font-weight);white-space:nowrap}:where(.vds-chapter-radio[aria-checked=true] .vds-chapter-radio-label){color:var(--text-color)}:where(.vds-chapters-radio-group .vds-chapter-radio-start-time){display:inline-block;letter-spacing:var(--media-chapters-start-time-letter-spacing, .4px);border-radius:var(--media-chapters-start-time-border-radius, 2px);font-size:var(--chapter-time-font-size);font-weight:var(--chapter-time-font-weight);margin-top:var(--chapter-time-gap)}.vds-chapters-radio-group .vds-chapter-radio-start-time{color:var(--text-secondary-color);background-color:var(--section-bg);padding:var(--media-chapters-start-time-padding, 1px 4px)}:where(.vds-chapters-radio-group .vds-chapter-radio-duration){color:var(--text-hint-color);font-size:var(--chapter-time-font-size);font-weight:var(--chapter-time-font-weight);margin-top:var(--chapter-time-gap)}.vds-chapters-radio-group .vds-chapter-radio-duration{background-color:var(--chapter-duration-bg);border-radius:var(--media-chapters-duration-border-radius, 2px)}.vds-chapters-radio-group:not([data-thumbnails]) :where(.vds-thumbnail,media-thumbnail){display:none}:where(.vds-chapter-radio-content){display:flex;align-items:flex-start;flex-direction:column}:where(.vds-chapters-radio-group:not([data-thumbnails]) .vds-chapter-radio-content){width:100%;flex-direction:row;display:flex;flex-wrap:wrap;align-items:center}:where(.vds-chapters-radio-group:not([data-thumbnails]) .vds-chapter-radio-start-time){margin-top:0;margin-left:auto}:where(.vds-chapters-radio-group:not([data-thumbnails]) .vds-chapter-radio-duration){margin-top:4px;flex-basis:100%}.vds-menu-items[data-keyboard] .vds-chapters-radio-group:focus-within{padding:var(--media-chapters-focus-padding, 4px)}:where(.vds-poster){display:block;contain:content;position:absolute;top:50%;transform:translateY(-50%);left:0;opacity:0;width:100%;height:100%;z-index:1;border:0;pointer-events:none;box-sizing:border-box;transition:opacity .2s ease-out;background-color:var(--media-poster-bg, black)}:where(.vds-poster img){-o-object-fit:inherit;object-fit:inherit;-o-object-position:inherit;object-position:inherit;pointer-events:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;box-sizing:border-box}.vds-poster :where(img){border:0;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}:where(.vds-poster[data-hidden]){display:none}:where(.vds-poster[data-visible]){opacity:1}:where(.vds-slider){--width: var(--media-slider-width, 100%);--height: var(--media-slider-height, 48px);--thumb-size: var(--media-slider-thumb-size, 15px);--thumb-focus-size: var(--media-slider-focused-thumb-size, calc(var(--thumb-size) * 1.1));--track-width: var(--media-slider-track-width, 100%);--track-height: var(--media-slider-track-height, 5px);--track-focus-width: var(--media-slider-focused-track-width, var(--track-width));--track-focus-height: var(--media-slider-focused-track-height, calc(var(--track-height) * 1.25));display:inline-flex;align-items:center;width:var(--width);height:var(--height);margin:0 calc(var(--thumb-size) / 2);position:relative;contain:layout style;outline:none;pointer-events:auto;cursor:pointer;-moz-user-select:none;user-select:none;touch-action:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}:where(.vds-slider[aria-hidden=true]){display:none!important}:where(.vds-slider[aria-disabled=true]){cursor:unset}:where(.vds-slider:focus){outline:none}:where(.vds-slider:not([data-chapters])[data-focus],.vds-slider:not([data-chapters]):focus-visible) :where(.vds-slider-track){box-shadow:var(--media-focus-ring)}:where(.vds-slider .vds-slider-track){z-index:0;position:absolute;width:var(--track-width);height:var(--track-height);top:50%;left:0;border-radius:var(--media-slider-track-border-radius, 2px);transform:translateY(-50%) translateZ(0);background-color:var(--media-slider-track-bg, rgb(255 255 255 / .3));contain:strict}:where(.vds-slider[data-focus],.vds-slider:focus-visible) :where(.vds-slider-track){outline-offset:var(--thumb-size)}:where(.vds-slider:not([data-chapters])[data-active] .vds-slider-track){width:var(--track-focus-width);height:var(--track-focus-height)}:where(.vds-slider .vds-slider-track-fill){z-index:2;background-color:var(--media-slider-track-fill-bg, var(--media-brand));width:var(--slider-fill, 0%);will-change:width}:where(.vds-slider .vds-slider-thumb){position:absolute;top:50%;left:var(--slider-fill);opacity:0;contain:layout size style;width:var(--thumb-size);height:var(--thumb-size);border:var(--media-slider-thumb-border, 1px solid #cacaca);border-radius:var(--media-slider-thumb-border-radius, 9999px);background-color:var(--media-slider-thumb-bg, #fff);transform:translate(-50%,-50%) translateZ(0);transition:opacity .15s ease-in;pointer-events:none;will-change:left;z-index:2}:where(.vds-slider[data-dragging],.vds-slider[data-focus],.vds-slider:focus-visible) :where(.vds-slider-thumb){box-shadow:var(--media-slider-focused-thumb-shadow, 0 0 0 4px hsla(0, 0%, 100%, .4))}:where(.vds-slider[data-active] .vds-slider-thumb){opacity:1;transition:var(--media-slider-thumb-transition, opacity .2s ease-in, box-shadow .2s ease)}:where(.vds-slider[data-dragging] .vds-slider-thumb){width:var(--thumb-focus-size);height:var(--thumb-focus-size)}:where(.vds-slider-value){display:inline-block;contain:content;font-size:14px;font-family:var(--media-font-family, sans-serif)}:where(.vds-slider-thumbnail){display:block;contain:content;box-sizing:border-box}:where(.vds-slider-video){background-color:#000;box-sizing:border-box;contain:content;display:inline-block;border:var(--media-thumbnail-border, 1px solid white)}:where(.vds-slider-video video){display:block;height:auto;width:156px}:where(.vds-slider-video[data-loading]){opacity:0}:where(.vds-slider-video[data-hidden],.vds-slider-video[data-hidden] video){display:none;width:0px}:where(.vds-slider .vds-slider-preview){display:flex;flex-direction:column;align-items:center;opacity:0;background-color:var(--media-slider-preview-bg);border-radius:var(--media-slider-preview-border-radius, 2px);pointer-events:none;transition:opacity .2s ease-out;will-change:left,opacity;contain:layout paint style}:where(.vds-slider-preview[data-visible]){opacity:1;transition:opacity .2s ease-in}.vds-slider-value{background-color:var(--media-slider-value-bg, black);border-radius:var(--media-slider-value-border-radius, 2px);border:var(--media-slider-value-border);color:var(--media-slider-value-color, white);padding:var(--media-slider-value-padding, 1px 10px)}:where(.vds-slider-video:not([data-hidden])+.vds-slider-chapter-title,.vds-slider-thumbnail:not([data-hidden])+.vds-slider-chapter-title){margin-top:var(--media-slider-chapter-title-gap, 6px)}:where(.vds-slider-video:not([data-hidden])+.vds-slider-value,.vds-slider-thumbnail:not([data-hidden])+.vds-slider-value,.vds-slider-chapter-title+.vds-slider-value){margin-top:var(--media-slider-value-gap, 2px)}:where(.vds-slider[aria-orientation=vertical]){--width: var(--media-slider-width, 48px);--height: var(--media-slider-height, 100%);--track-width: var(--media-slider-track-width, 4px);--track-height: var(--media-slider-track-height, 100%);--track-focus-width: var(--media-slider-focused-track-width, calc(var(--track-width) * 1.25));--track-focus-height: var(--media-slider-focused-track-height, var(--track-height));margin:calc(var(--thumb-size) / 2) 0}:where(.vds-slider[aria-orientation=vertical] .vds-slider-track){top:unset;bottom:0;left:50%;transform:translate(-50%) translateZ(0)}:where(.vds-slider[aria-orientation=vertical] .vds-slider-track-fill){width:var(--track-width);height:var(--slider-fill);will-change:height;transform:translate(-50%) translateZ(0)}:where(.vds-slider[aria-orientation=vertical] .vds-slider-progress){top:unset;bottom:0;width:var(--track-width);height:var(--slider-progress, 0%);will-change:height}:where(.vds-slider[aria-orientation=vertical] .vds-slider-thumb){top:unset;bottom:var(--slider-fill);left:50%;will-change:bottom;transform:translate(-50%,50%) translateZ(0)}:where(.vds-slider[aria-orientation=vertical] .vds-slider-preview){will-change:bottom,opacity}:where([data-live] .vds-time-slider .vds-slider-track-fill){background-color:var(--media-slider-track-fill-live-bg, #dc2626)}:where(.vds-time-slider .vds-slider-progress){z-index:1;left:0;width:var(--slider-progress, 0%);will-change:width;background-color:var(--media-slider-track-progress-bg, rgb(255 255 255 / .5))}:where([data-media-player]:not([data-can-play]) .vds-time-slider .vds-slider-value){display:none}:where(.vds-slider-steps){display:flex;align-items:center;justify-content:space-between;width:100%;height:100%;position:absolute;top:0;left:0}:where(.vds-slider-step){width:var(--media-slider-step-width, 2.5px);height:calc(var(--track-height) + 1px);background-color:var(--media-slider-step-color, rgb(124, 124, 124));opacity:0;transition:opacity .3s ease}:where(.vds-slider[data-active] .vds-slider-step){opacity:1}:where(.vds-time-slider .vds-slider-chapters){position:relative;display:flex;align-items:center;width:100%;height:100%;contain:layout style;border-radius:var(--media-slider-track-border-radius, 1px)}:where(.vds-slider[data-focus],.vds-slider:focus-visible) :where(.vds-slider-chapters){box-shadow:var(--media-focus-ring);height:var(--track-height)}:where(.vds-time-slider .vds-slider-chapter){margin-right:2px}:where(.vds-time-slider .vds-slider-chapter:last-child){margin-right:0}:where(.vds-time-slider .vds-slider-chapter){position:relative;display:flex;align-items:center;width:100%;height:100%;will-change:height,transform;contain:layout style;border-radius:var(--media-slider-track-border-radius, 1px)}:where(.vds-time-slider .vds-slider-chapter .vds-slider-track-fill){width:var(--chapter-fill, 0%);will-change:width}:where(.vds-time-slider .vds-slider-chapter .vds-slider-progress){width:var(--chapter-progress, 0%);will-change:width}@media (hover: hover) and (pointer: fine){:where(.vds-time-slider:hover .vds-slider-chapters){contain:strict}:where(.vds-time-slider .vds-slider-chapter:hover:not(:only-of-type)){transform:var(--media-slider-chapter-hover-transform, scaleY(2));transition:var( --media-slider-chapter-hover-transition, transform .1s cubic-bezier(.4, 0, 1, 1) )}}:where(.vds-time-slider .vds-slider-chapter-title){font-family:var(--media-font-family, sans-serif);font-size:var(--media-slider-chapter-title-font-size, 14px);color:var(--media-slider-chapter-title-color, #f5f5f5);background-color:var(--media-slider-chapter-title-bg)}:where(.vds-thumbnail){--aspect-ratio: calc(var(--media-thumbnail-aspect-ratio, 16 / 9));--min-width: var(--media-thumbnail-min-width, 140px);--max-width: var(--media-thumbnail-max-width, 180px);display:block;width:var(--thumbnail-width);height:var(--thumbnail-height);background-color:var(--media-thumbnail-bg, black);contain:strict;overflow:hidden;box-sizing:border-box;min-width:var(--min-width);min-height:var(--media-thumbnail-min-height, calc(var(--min-width) / var(--aspect-ratio)));max-width:var(--max-width);max-height:var(--media-thumbnail-max-height, calc(var(--max-width) / var(--aspect-ratio)))}.vds-thumbnail{border:var(--media-thumbnail-border, 1px solid white)}:where(.vds-thumbnail img){min-width:unset!important;max-width:unset!important;will-change:width,height,transform}:where(.vds-thumbnail[data-loading] img){opacity:0}:where(.vds-thumbnail[aria-hidden=true]){display:none!important}:where(.vds-time-group){display:flex;align-items:center}.vds-time-divider{margin:0 var(--media-time-divider-gap, 2.5px);color:var(--media-time-divider-color, #e0e0e0)}:where(.vds-time){display:inline-block;contain:content;font-size:var(--media-time-font-size, 15px);font-weight:var(--media-time-font-weight, 400);font-family:var(--media-font-family, sans-serif);border-radius:var(--media-time-border-radius, 2px);letter-spacing:var(--media-time-letter-spacing, .025em)}.vds-time{outline:0;color:var(--media-time-color, var(--default-color));background-color:var(--media-time-bg);border:var(--media-time-border);padding:var(--media-time-padding, 2px)}:where(.vds-time:focus-visible){box-shadow:var(--media-focus-ring)}.light .vds-time{--default-color: rgb(10 10 10)}.dark .vds-time{--default-color: #f5f5f5}:where(.vds-tooltip,media-tooltip){display:contents}:where(.vds-tooltip-content){display:inline-block;box-sizing:border-box;font-family:var(--media-font-family, sans-serif);font-size:var(--media-tooltip-font-size, 13px);font-weight:var(--media-tooltip-font-weight, 500);opacity:0;pointer-events:none;white-space:nowrap;z-index:10;will-change:transform,opacity}.vds-tooltip-content{border-radius:var(--media-tooltip-border-radius, 2px);background-color:var(--media-tooltip-bg-color, var(--default-bg));border:var(--media-tooltip-border, var(--default-border));color:var(--media-tooltip-color, var(--default-color));padding:var(--media-tooltip-padding, 2px 8px)}.light .vds-tooltip-content{--default-color: #1a1a1a;--default-bg: white;--default-border: 1px solid rgb(0 0 0 / .2)}.dark .vds-tooltip-content{--default-color: #f5f5f5;--default-bg: black;--default-border: 1px solid rgb(255 255 255 / .1)}:where(.vds-menu .vds-menu-button[role=button][data-pressed] .vds-tooltip-content){opacity:0;display:none}:where(.vds-tooltip-content){--enter-transform: translateY(0px) scale(1);--exit-transform: translateY(12px) scale(.8)}:where(.vds-tooltip-content:not([data-visible])){animation:var(--media-tooltip-exit-animation, vds-tooltip-exit .2s ease-out)}:where(.vds-tooltip-content[data-visible]){animation:var(--media-tooltip-enter-animation, vds-tooltip-enter .2s ease-in);animation-fill-mode:forwards}:where(.vds-tooltip-content[data-placement~=bottom]){--enter-transform: translateY(0) scale(1);--exit-transform: translateY(-12px) scale(.8)}:where(.vds-tooltip-content[data-placement~=left]){--enter-transform: translateX(0) scale(1);--exit-transform: translateX(12px) scale(.8)}:where(.vds-tooltip-content[data-placement~=right]){--enter-transform: translateX(0) scale(1);--exit-transform: translateX(-12px) scale(.8)}@keyframes vds-tooltip-enter{0%{opacity:0;transform:var(--exit-transform)}to{opacity:1;transform:var(--enter-transform)}}@keyframes vds-tooltip-exit{0%{opacity:1;transform:var(--enter-transform)}to{opacity:0;transform:var(--exit-transform)}}@media (prefers-reduced-motion){:where(.vds-tooltip-content){animation:none}:where(.vds-tooltip-content[data-visible]){opacity:1}}[data-media-player]:not([data-paused]) .vds-play-tooltip-text,[data-media-player][data-paused] .vds-pause-tooltip-text,[data-media-player][data-pip] .vds-pip-enter-tooltip-text,[data-media-player]:not([data-pip]) .vds-pip-exit-tooltip-text,[data-media-player][data-fullscreen] .vds-fs-enter-tooltip-text,[data-media-player]:not([data-fullscreen]) .vds-fs-exit-tooltip-text,[data-media-player]:not([data-captions]) .vds-cc-on-tooltip-text,[data-media-player][data-captions] .vds-cc-off-tooltip-text,[data-media-player]:not([data-muted]) .vds-mute-tooltip-text,[data-media-player][data-muted] .vds-unmute-tooltip-text{display:none}[data-media-player] .vds-audio-layout:not([data-match]){display:none!important}:where([data-media-player][data-layout=audio]){border-radius:var(--audio-border-radius, 6px)}:where(.vds-audio-layout){position:relative;display:inline-flex;align-items:center;min-width:100%;height:60px;color:var(--audio-controls-color, var(--default-color));background-color:var(--audio-bg, var(--default-bg));border-radius:var(--audio-border-radius, 6px);box-sizing:border-box;filter:var( --audio-filter, drop-shadow(0 4px 3px rgb(0 0 0 / .07)) drop-shadow(0 2px 2px rgb(0 0 0 / .06)) )}.vds-audio-layout{border:var(--audio-border, 1px solid rgb(255 255 255 / .1))}:where([data-media-player][data-focus]:not([data-playing]) .vds-audio-layout){box-shadow:var(--media-focus-ring)}:where(.vds-audio-layout){--media-brand: var(--audio-brand, var(--default-brand));--media-font-family: var(--audio-font-family, sans-serif);--media-controls-color: var(--audio-controls-color, var(--default-controls-color));--media-menu-y-offset: 18px;--media-tooltip-y-offset: 18px;--media-slider-track-bg: var(--audio-slider-track-bg, var(--default-slider-track-bg));--media-slider-track-fill-bg: var(--audio-slider-track-bg, var(--media-brand));--media-slider-track-progress-bg: var( --audio-slider-progress-bg, var(--default-slider-progress-bg) );--media-slider-value-border: var(--audio-slider-value-border, 1px solid rgb(255 255 255 / .1));--media-slider-value-gap: var(--audio-slider-value-gap, 6px);--media-focus-ring-color: var(--audio-focus-ring-color, rgb(78 156 246));--media-focus-ring: var(--audio-focus-ring, 0 0 0 3px var(--media-focus-ring-color))}.vds-audio-layout.light,.light .vds-audio-layout{--default-brand: rgb(10 10 10);--default-color: rgb(10 10 10);--default-bg: rgb(250 250 250);--default-controls-color: rgb(10 10 10);--default-border: 1px solid rgb(100 100 100 /.2);--default-slider-track-bg: rgb(50 50 50 / .1);--default-slider-progress-bg: rgb(10 10 10 / .2)}.vds-audio-layout.dark,.dark .vds-audio-layout{--default-brand: #f5f5f5;--default-color: #f5f5f5;--default-controls-color: #f5f5f5;--default-bg: black;--default-slider-track-bg: rgb(255 255 255 / .3);--default-slider-progress-bg: rgb(255 255 255 / .5)}.vds-audio-layout .vds-controls{padding-inline:6px;border-radius:var(--audio-border-radius, 6px)}:where(.vds-audio-layout .vds-controls-group){display:flex;align-items:center;pointer-events:auto;width:100%}:where(.vds-audio-layout .vds-button){width:var(--audio-button-size, 36px);height:var(--audio-button-size, 36px);margin-right:2.5px}:where(.vds-audio-layout .vds-play-tooltip){--media-tooltip-y-offset: 18px}:where(.vds-audio-layout .vds-button){transition:max-width .14s ease-in;max-width:var(--audio-button-size, 36px)}:where(.vds-audio-layout .vds-play-button){--media-button-hover-transform: 0;--media-button-border: var(--audio-play-button-border, var(--color));--media-button-hover-bg: var(--bg-color);--media-button-touch-hover-bg: var(--bg-color);width:var(--audio-play-button-size, 32px);height:var(--audio-play-button-size, 32px);border-radius:var(--audio-play-button-border-radius, 100%);pointer-events:auto;margin-bottom:2px;overflow:hidden}.vds-audio-layout .vds-play-button{color:var(--audio-play-button-color, var(--default-color));background-color:var(--audio-play-button-bg, var(--default-bg))}.light .vds-audio-layout .vds-play-button,.vds-audio-layout.light .vds-play-button{--default-color: #f5f5f5;--default-bg: var(--media-brand)}.dark .vds-audio-layout .vds-play-button,.vds-audio-layout.dark .vds-play-button{--default-color: rgb(10 10 10);--default-bg: var(--media-brand)}:where(.vds-audio-layout .vds-caption-button:not([data-active])){opacity:var(--audio-caption-button-off-opacity, .64)}:where(.vds-audio-layout .vds-live-button){margin-right:8px}:where(.vds-audio-layout .vds-seek-button){max-width:0px;visibility:hidden}:where([data-playing] .vds-audio-layout .vds-seek-button){max-width:var(--audio-button-size, 36px);visibility:visible}:where(.vds-audio-layout .vds-settings-menu .vds-button){margin-right:0}@media (pointer: coarse){:where(.vds-audio-layout .vds-caption-button){display:none}}:where(.vds-audio-layout .vds-title){display:flex;align-items:center;position:relative;margin-left:6px;margin-right:auto;max-width:100%;opacity:1;transition:max-width .15s ease-in,opacity .15s ease-in;overflow:hidden;text-wrap:nowrap;white-space:nowrap;transition-delay:75ms}:where([data-playing] .vds-audio-layout .vds-title){opacity:0;margin:0;max-width:0px;transition:none;transition-delay:0}:where(.vds-audio-layout .vds-title-text){display:inline-flex;align-items:center}:where(.vds-audio-layout .vds-marquee .vds-title-text){animation:vds-marquee 8s linear infinite}:where(.vds-audio-layout .vds-title:hover *){animation-play-state:paused}:where(.vds-audio-layout .vds-title-text:nth-child(2)){margin-left:16px}@keyframes vds-marquee{0%{transform:translate(0)}to{transform:translate(calc(-100% - 16px))}}:where(.vds-audio-layout .vds-time){margin-inline:8px;transition:max-width .14s ease-in;font-size:var(--audio-time-font-size, 15px)}:where(.vds-audio-layout .vds-time-slider){--media-slider-preview-offset: 14px;opacity:0;max-width:0px;transform:scaleX(0);transform-origin:center left;transition:none;visibility:hidden}:where([data-media-player]:not([data-paused]) .vds-audio-layout .vds-time-slider){opacity:1;max-width:100%;transform:scaleX(1);transition:opacity .15s ease-in,transform .15s ease-in;transition-delay:75ms;visibility:visible}:where(.vds-audio-layout .vds-slider-chapter-title){color:var(--audio-slider-chapter-title-color, black)}:where(.dark .vds-audio-layout .vds-slider-chapter-title){color:var(--audio-slider-chapter-title-color, white)}:where([data-buffering] .vds-audio-layout .vds-slider-progress){--stripe-color: var(--audio-buffering-stripe-color, rgb(0 0 0 / .25));--stripe-size: var(--audio-buffering-stripe-size, 30px);width:100%!important;background-image:linear-gradient(-45deg,var(--stripe-color) 25%,transparent 25%,transparent 50%,var(--stripe-color) 50%,var(--stripe-color) 75%,transparent 75%,transparent);background-size:var(--stripe-size) var(--stripe-size);animation:vds-audio-track-progress var(--audio-buffering-stripe-speed, 2s) linear infinite}@keyframes vds-audio-track-progress{0%{background-position:0 0}to{background-position:var(--stripe-size) var(--stripe-size)}}:where(.vds-audio-layout .vds-volume){--media-slider-height: var(--audio-volume-height, 96px);--media-slider-preview-offset: 6px;--gap: var(--audio-volume-gap, 16px);position:relative;display:flex;align-items:center;justify-content:center}:where(.vds-audio-layout .vds-volume-popup){position:absolute;bottom:calc(100% + var(--gap));left:50%;opacity:0;transform:translate(-50%);transition:opacity .15s ease-out,visibility .15s ease-out;border-radius:var(--audio-volume-border-radius, 8px);filter:var(--media-volume-filter, drop-shadow(0 1px 1px rgb(0 0 0 / .05)));visibility:hidden}.vds-audio-layout .vds-volume-popup:after{content:"";position:fixed;bottom:calc(-1 * var(--gap));right:0;width:100%;height:var(--gap);z-index:1;pointer-events:auto}.vds-audio-layout .vds-volume-popup{background-color:var(--audio-volume-bg, var(--media-menu-bg, var(--default-bg)));border:var(--audio-volume-border, var(--default-border))}.light .vds-audio-layout .vds-volume-popup,.vds-audio-layout.light .vds-volume-popup{--default-bg: rgb(250 250 250);--default-border: 1px solid rgb(10 10 10 / .1)}.dark .vds-audio-layout .vds-volume-popup,.vds-audio-layout.dark .vds-volume-popup{--default-bg: rgb(10 10 10);--default-border: 1px solid rgb(255 255 255 / .1)}:where(.vds-audio-layout .vds-volume[data-active] .vds-volume-popup),:where(.vds-audio-layout .vds-volume:has([data-active]) .vds-volume-popup){transition:opacity .15s ease-in,visibility .15s ease-in;opacity:1;visibility:visible}:where(.vds-audio-layout .vds-volume[data-active] .vds-tooltip-content){display:none!important}:where(.vds-audio-layout .vds-menu-items[data-root]){max-height:var(--audio-menu-max-height, 320px)}:where(.vds-audio-layout .vds-captions){--cue-font-size: calc(var(--audio-cue-font-size, 14px) * var(--media-user-font-size, 1));display:inline-block;position:absolute;width:100%;top:unset;bottom:calc(100% + var(--audio-captions-offset, 4px));text-align:center;background-color:var(--media-user-display-bg, var(--media-cue-display-bg))}:where([data-preview] .vds-audio-layout .vds-captions),:where([data-paused] .vds-audio-layout .vds-captions){opacity:0}@media (pointer: coarse){.vds-audio-layout[data-scrubbing] :where(.vds-button,.vds-time){max-width:0!important;margin:0!important;padding:0!important;transition:max-width .15s ease-out}}[data-media-player] .vds-video-layout:not([data-match]){display:none!important}[data-media-player][data-layout=video]{background-color:var(--video-bg, black)}[data-media-player][data-layout=video]:not([data-fullscreen]){border-radius:var(--video-border-radius, 6px);border:var(--video-border, 1px solid rgb(255 255 255 / .1))}:where(.vds-video-layout){--media-brand: var(--video-brand, #f5f5f5);--media-font-family: var(--video-font-family, sans-serif);--media-controls-color: var(--video-controls-color, #f5f5f5);--media-tooltip-y-offset: 6px;--media-menu-y-offset: 6px;--media-focus-ring-color: var(--video-focus-ring-color, rgb(78 156 246));--media-focus-ring: var(--video-focus-ring, 0 0 0 3px var(--media-focus-ring-color));color:var(--video-controls-color, #f5f5f5);display:contents}:where([data-media-player][data-focus]:not([data-playing]) .vds-video-layout .vds-controls){border-radius:var(--video-border-radius, 6px);box-shadow:var(--media-focus-ring)}:where(.vds-video-layout .vds-controls[data-visible]){border-radius:var(--video-border-radius, 6px);background-image:linear-gradient(to top,rgb(0 0 0 / .6),10%,transparent,95%,rgb(0 0 0 / .3))}.vds-video-layout .vds-controls-group{align-items:center;display:flex;pointer-events:auto;z-index:0;padding:4px 6px}.vds-video-layout .vds-controls-group:first-child{z-index:50}.vds-video-layout .vds-controls-group:nth-last-child(2){padding:0 12px;z-index:11;margin-bottom:-16px}.vds-video-layout:not([data-sm]) .vds-controls-group:last-child{--media-menu-y-offset: 26px;--media-tooltip-y-offset: 26px;--media-slider-preview-offset: 26px;z-index:10}:where(.vds-video-layout .vds-button){margin-right:2.5px}:where(.vds-video-layout[data-sm] .vds-chapter-title){font-size:var(--video-sm-chapter-title-font-size, 15px)}:where([data-fullscreen] .vds-video-layout .vds-chapter-title){font-size:var(--video-fullscreen-chapter-title-font-size, 16px)}:where(.vds-video-layout:not([data-sm]) .vds-mute-button){margin-left:-2.5px;margin-right:-5px}:where(.vds-video-layout[data-sm]){--media-button-size: var(--video-sm-button-size, 36px)}:where(.vds-video-layout .vds-time-slider){--media-slider-height: 45px;flex-grow:0}:where(.vds-video-layout .vds-slider-thumbnail){--media-thumbnail-border: var(--video-slider-thumbnail-border, 1px solid #f5f5f5);border-radius:var(--video-slider-thumbnail-border-radius, 2px)}.vds-video-layout .vds-time-slider .vds-slider-value{background-color:var(--video-time-bg, unset);text-shadow:-1px -1px 0 #333333,1px -1px 0 #333333,-1px 1px 0 #333333,1px 1px 0 #333333}:where(.vds-video-layout[data-sm] .vds-time){text-shadow:unset}:where(.vds-video-layout[data-lg] .vds-volume){--gap: var(--video-volume-gap, 10px);display:contents}:where(.vds-video-layout[data-lg] .vds-volume-popup){display:contents}:where(.vds-video-layout[data-lg] .vds-volume-slider){margin:0;max-width:0;transition:all .15s ease}:where(.vds-video-layout[data-lg] .vds-volume[data-active] .vds-volume-slider),:where(.vds-video-layout[data-lg] .vds-volume:has([data-active]) .vds-volume-slider){margin-left:var(--gap);opacity:1;visibility:visible;max-width:var(--video-volume-slider-max-width, 72px)}.vds-video-layout[data-lg] .vds-volume-slider:after{content:"";position:fixed;top:0;left:calc(-1 * var(--gap));width:var(--gap);height:100%;z-index:1;pointer-events:auto}:where(.vds-video-layout[data-sm] .vds-volume){--media-slider-height: var(--video-volume-height, 96px);--media-slider-preview-offset: calc(-200% - 6px) ;--gap: var(--video-volume-gap, 10px);position:relative;display:flex;align-items:center;justify-content:center}:where(.vds-video-layout[data-sm] .vds-volume-popup){display:block;position:absolute;top:calc(100% + var(--gap));left:50%;opacity:0;transform:translate(-50%);transition:opacity .15s ease-out,visibility .15s ease-out;border-radius:var(--video-volume-border-radius, 8px);filter:var(--media-volume-filter, drop-shadow(0 1px 1px rgb(0 0 0 / .05)));visibility:hidden}.vds-video-layout[data-sm] .vds-mute-button:after{content:"";position:fixed;bottom:calc(-1 * var(--gap));right:0;width:100%;height:var(--gap);z-index:1;pointer-events:auto}.vds-video-layout .vds-volume-popup{background-color:var(--video-volume-bg, var(--media-menu-bg, var(--default-bg)));border:var(--video-volume-border, var(--default-border))}.light .vds-video-layout .vds-volume-popup,.vds-video-layout.light .vds-volume-popup{--default-bg: rgb(250 250 250);--default-border: 1px solid rgb(10 10 10 / .1)}.dark .vds-video-layout .vds-volume-popup,.vds-video-layout.dark .vds-volume-popup{--default-bg: rgb(10 10 10);--default-border: 1px solid rgb(255 255 255 / .1)}:where(.vds-video-layout[data-sm] .vds-volume[data-active] .vds-volume-popup),:where(.vds-video-layout[data-sm] .vds-volume:has([data-active]) .vds-volume-popup){transition:opacity .15s ease-in,visibility .15s ease-in;opacity:1;visibility:visible}:where(.vds-video-layout[data-sm] .vds-volume[data-active] .vds-tooltip-content){display:none!important}:where(.vds-video-layout .vds-time[data-type=current]){margin-right:2px}:where(.vds-video-layout .vds-time[data-type=current][remainder]){margin-left:2px}.vds-video-layout .vds-time{--default-color: #f5f5f5 !important}:where([data-preview] .vds-video-layout .vds-captions){opacity:0}:where(.vds-video-layout .vds-captions){z-index:10;transition:var(--video-captions-transition, bottom .3s ease-in-out)}@media (min-width: 980px){:where([data-fullscreen] .vds-video-layout .vds-captions){bottom:var(--video-lg-fullscreen-captions-offset, 54px)}}:where([data-media-player][data-controls] .vds-video-layout .vds-captions){bottom:var(--video-captions-offset, 78px)}:where([data-media-player][data-controls] .vds-video-layout[data-sm] .vds-captions){bottom:var(--video-sm-captions-offset, 48px)}:where(.vds-video-layout .vds-time-slider .vds-slider-chapter-title){width:100%;text-align:center;text-shadow:-1px -1px 0 #212121,1px -1px 0 #212121,-1px 1px 0 #212121,1px 1px 0 #212121}:where(.vds-video-layout .vds-gesture){top:0;left:0;width:100%;height:100%;z-index:0}:where(.vds-video-layout .vds-gesture[action="seek:-10"]){width:var(--video-gesture-seek-width, 20%);z-index:1}:where(.vds-video-layout .vds-gesture[action="seek:10"]){left:unset;right:0;width:var(--video-gesture-seek-width, 20%);z-index:1}@media (pointer: coarse){:where(.vds-video-layout .vds-gesture[action="toggle:paused"]){display:none}}@media not (pointer: coarse){:where([data-media-player] .vds-video-layout .vds-gesture[action="toggle:controls"]){display:none}}:where(.vds-video-layout .vds-live-button){margin-left:12px}:where(.vds-video-layout:not([data-sm]) .vds-time-group){margin-left:10px}:where(.vds-video-layout[data-sm] .vds-time){font-size:var(--video-sm-time-font-size, 14px)}:where([data-fullscreen] .vds-video-layout .vds-time){font-size:var(--video-fullscreen-time-font-size, 16px)}:where(.vds-video-layout .vds-load-container){position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:none;align-items:center;justify-content:center;pointer-events:none;z-index:99}:where([data-media-player][data-load=play]:not([data-started]) .vds-video-layout[data-match] .vds-load-container){display:flex}:where(.vds-video-layout .vds-load-container .vds-play-button){--size: var(--video-load-button-size, 56px);--color: var(--video-load-button-color, rgb(0 0 0 / .8));--bg-color: var(--video-load-button-bg, var(--media-brand));--media-button-hover-transform: 0;--media-button-border: var(--video-load-button-border, var(--color));--media-button-hover-bg: var(--video-load-button-bg, var(--media-brand));width:var(--size);height:var(--size);pointer-events:auto;margin-bottom:2px;overflow:hidden}.vds-video-layout .vds-load-container .vds-play-button{border-radius:var(--video-load-button-border-radius, 100%);color:var(--color)}.vds-video-layout .vds-load-container .vds-play-button{background-color:var(--bg-color)}:where(.vds-video-layout[data-sm] .vds-load-container .vds-play-button){--size: var(--video-sm-load-button-size, 48px);--media-button-hover-transform: translateY(0%);width:var(--size);height:var(--size);transform:translateY(0)}:where(.vds-video-layout[data-sm] .vds-controls-group:nth-last-child(2)){pointer-events:none}:where(.vds-video-layout[data-sm] .vds-controls-group:last-child){z-index:2;margin-top:-2.5px;margin-bottom:-6px}:where([data-fullscreen] .vds-video-layout[data-sm] .vds-controls-group:last-child){margin-bottom:0}.vds-video-layout[data-sm] .vds-controls-group{padding:2px}:where(.vds-video-layout[data-sm]) :where(.vds-button,.vds-slider:not(.vds-time-slider),.vds-time,.vds-time-divider,.vds-chapter-title){transition:opacity .15s ease}:where([data-media-player]:not([data-started]) .vds-video-layout[data-sm]) :where(.vds-button .vds-slider,.vds-time-group){opacity:0;visibility:hidden}:where(.vds-video-layout[data-sm] .vds-time-slider){transition:transform .1s linear}@media (pointer: coarse){:where([data-preview] .vds-video-layout:not([data-no-scrub-gesture])) :where(.vds-button,.vds-slider:not(.vds-time-slider),.vds-time,.vds-chapter-title,.vds-time-divider,.vds-captions,.vds-live-button){opacity:0}:where([data-preview] .vds-video-layout:not([data-no-scrub-gesture]) .vds-time-slider){--track-height: var(--video-sm-slider-focus-track-height, 12px);transform:translateY(-6px);transition:transform .1s linear}}:where(.vds-video-layout[data-sm] .vds-controls .vds-play-button){--size: var(--video-sm-play-button-size, 45px);--media-button-hover-transform: translateY(25%);width:var(--size);height:var(--size);transform:translateY(25%);border-radius:100%;pointer-events:auto;margin-bottom:2px;overflow:hidden}.vds-video-layout[data-sm] .vds-controls .vds-play-button{background-color:var(--video-sm-play-button-bg, rgba(0 0 0 / .6))}:where([data-media-player]:not([data-started]) .vds-video-layout[data-sm] .vds-controls-group:not(:nth-child(3))){opacity:0;visibility:hidden}:where(.vds-video-layout[data-sm] .vds-buffering-indicator){--media-buffering-size: 64px;transform:translate(-2px,-4px)}:where(.vds-video-layout .vds-start-duration .vds-time){position:absolute;right:8px;bottom:8px;margin-right:8px;margin-bottom:8px;z-index:10}.vds-video-layout .vds-start-duration .vds-time{padding:var(--video-sm-start-duration-padding, 3px 6px);color:var(--video-sm-start-duration-color, var(--video-controls-color));background-color:var(--video-sm-start-duration-bg, rgba(0 0 0 / .64))}:where([data-started] .vds-video-layout .vds-start-duration .vds-time){display:none}:where([data-media-player]:not([data-can-play]) .vds-video-layout .vds-start-duration .vds-time){opacity:0}:where(.vds-video-layout[data-sm] .vds-time[data-type=current]){margin-left:8px}:where([data-fullscreen] .vds-video-layout .vds-controls-group:nth-last-child(2)){margin-bottom:-16px}@media (orientation: portrait){:where([data-fullscreen] .vds-video-layout .vds-captions){bottom:30lvh;bottom:10dvh}}@media (orientation: landscape){:where([data-fullscreen] .vds-video-layout .vds-controls-group:nth-last-child(2)){margin-bottom:-12px}}media-community-skin[data-audio]{--audio-brand: var(--vp-tc);--audio-bg: var(--vp-bg);--audio-controls-color: var(--dark-grey);--audio-title-color: var(--vp-c);--audio-time-muted-color: var(--light-grey);--audio-play-button-bg: var(--vp-bglt);--audio-play-button-color: var(--black)}:where(media-community-skin[data-audio] [part~=media-ui]){box-shadow:2px 2px 10px 0 var(--card-shadow)}media-community-skin[data-video]{--video-brand: var(--vp-tc)}:root{--notice-width: 250px}.notice-fade-enter-active,.notice-fade-leave-active{transition:opacity .5s}.notice-fade-enter,.notice-fade-leave-to{opacity:0}.vp-notice-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1499;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@media print{.vp-notice-mask{display:none}}.vp-notice-wrapper{position:fixed;top:80px;inset-inline-end:20px;z-index:1500;overflow:hidden;width:var(--notice-width);border-radius:8px;background:var(--vp-bg);box-shadow:0 2px 6px 0 var(--card-shadow)}@media print{.vp-notice-wrapper{display:none}}.vp-notice-wrapper.fullscreen{top:50vh;right:50vw;left:unset;transform:translate(50%,-50%)}.vp-notice-title{position:relative;margin:0;padding:8px 12px;background:var(--vp-tc);color:var(--white);font-weight:500;text-align:start}.vp-notice-title .close-icon{vertical-align:middle;float:right;width:1em;height:1em;margin:auto;padding:4px;border-radius:50%;background-color:#0003;color:var(--white);cursor:pointer}html[dir=rtl] .vp-notice-title .close-icon{float:left}.vp-notice-title .close-icon:hover{background-color:#0000004d}.vp-notice-content{margin:1rem .75rem;font-size:14px;line-height:1.5}.vp-notice-footer{padding-bottom:8px;text-align:center}.vp-notice-footer-action{display:inline-block;margin:4px;padding:8px 12px;border:none;border-radius:8px;background-color:var(--vp-bglt);color:var(--vp-c);cursor:pointer}.vp-notice-footer-action:hover{background-color:var(--vp-bgl)}.vp-notice-footer-action.primary{background-color:var(--vp-tc);color:var(--white)}.vp-notice-footer-action.primary:hover{background-color:var(--vp-tcl)}@media screen{.sr-only{position:absolute;overflow:hidden;clip:rect 0,0,0,0;width:1px;height:1px;margin:-1px;padding:0;border:0}}@media print{.sr-only{display:none}}.vp-catalog-wrapper{margin-top:8px;margin-bottom:8px}.vp-catalog-wrapper.index ol{padding-inline-start:0}.vp-catalog-wrapper.index li{list-style-type:none}.vp-catalog-wrapper.index .vp-catalogs{padding-inline-start:0}.vp-catalog-wrapper.index .vp-catalog{list-style-type:none}.vp-catalog-wrapper.index .vp-catalog-title:before{content:"§" counter(catalog-item,upper-roman) " "}.vp-catalog-wrapper.index .vp-child-catalogs{counter-reset:child-catalog}.vp-catalog-wrapper.index .vp-child-catalog{counter-increment:child-catalog}.vp-catalog-wrapper.index .vp-child-catalog .vp-catalog-title:before{content:counter(catalog-item) "." counter(child-catalog) " "}.vp-catalog-wrapper.index .vp-sub-catalogs{padding-inline-start:.5rem}.vp-catalogs{margin:0;counter-reset:catalog-item}.vp-catalogs.deep{padding-inline-start:0}.vp-catalogs.deep .vp-catalog{list-style-type:none}.vp-catalogs .font-icon{vertical-align:baseline;margin-inline-end:.25rem}.vp-catalog{counter-increment:catalog-item}.vp-catalog-main-title{margin-top:calc(.5rem - var(--navbar-height, 3.6rem));margin-bottom:.5rem;padding-top:var(--navbar-height, 3.6rem);font-weight:500;font-size:1.75rem}.vp-catalog-main-title:first-child{margin-bottom:.5rem!important}.vp-catalog-main-title:only-child{margin-bottom:0!important}.vp-catalog-main-title .vp-link{text-decoration:none!important}.vp-catalog-child-title{margin-bottom:.5rem!important}.vp-catalog-child-title.has-children{margin-top:calc(.5rem - var(--navbar-height, 3.6rem));padding-top:var(--navbar-height, 3.6rem);border-bottom:1px solid var(--catalog-border-color);font-weight:500;font-size:1.3rem;transition:border-color .3s}.vp-catalog-child-title.has-children:only-child{margin-bottom:0!important}.vp-catalog-child-title .vp-link{text-decoration:none!important}.vp-catalog-sub-title{font-weight:500;font-size:1.1rem}.vp-catalog-sub-title:only-child{margin-bottom:0!important}.vp-catalog-title{color:inherit;text-decoration:none}.vp-catalog-title:hover{color:var(--catalog-active-color)}.vp-child-catalogs{margin:0}.vp-child-catalog{list-style-type:disc}.vp-sub-catalogs{counter-reset:sub-catalog}.vp-sub-catalog{counter-increment:sub-catalog}.vp-sub-catalog .vp-link:before{content:counter(catalog-item) "." counter(child-catalog) "." counter(sub-catalog) " "}.vp-sub-catalogs-wrapper{display:flex;flex-wrap:wrap}.vp-sub-catalog-link{display:inline-block;margin:4px 8px;padding:4px 8px;border-radius:6px;background-color:var(--catalog-bg-secondary-color);line-height:1.5;overflow-wrap:break-word;transition:background-color .3s,color .3s}.vp-sub-catalog-link:hover{background-color:var(--catalog-hover-color);color:var(--catalog-bg-color);text-decoration:none!important}.vp-catalog-header-anchor{font-size:.85em;float:left;margin-left:-1em;padding-right:0;margin-top:.125em;opacity:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-decoration:none;content:"¶"}@media print{.vp-catalog-header-anchor{display:none}}h2:hover .vp-catalog-header-anchor,h3:hover .vp-catalog-header-anchor{opacity:1;text-decoration:none}.vp-catalog-header-anchor:focus-visible{opacity:1}.vp-empty-catalog{font-size:1.25rem;text-align:center}:root{--catalog-bg-color: #fff;--catalog-bg-secondary-color: #f8f8f8;--catalog-border-color: #e5e5e5;--catalog-active-color: #3eaf7c;--catalog-hover-color: #71cda3}.vp-back-to-top-button{position:fixed!important;bottom:4rem;inset-inline-end:1rem;z-index:100;width:3rem;height:3rem;padding:.5rem;border-width:0;border-radius:50%;background:var(--back-to-top-bg-color);color:var(--back-to-top-color);box-shadow:2px 2px 10px 4px var(--back-to-top-shadow);cursor:pointer}@media (max-width: 959px){.vp-back-to-top-button{width:2.5rem;height:2.5rem}}@media print{.vp-back-to-top-button{display:none}}.vp-back-to-top-button:hover{color:var(--back-to-top-color-hover)}.vp-back-to-top-button .back-to-top-icon{overflow:hidden;width:100%;height:100%;background:currentcolor;border-radius:50%;-webkit-mask-image:var(--back-to-top-icon);mask-image:var(--back-to-top-icon);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:cover;mask-size:cover}.vp-scroll-progress{position:absolute;right:-2px;bottom:-2px;width:calc(100% + 4px);height:calc(100% + 4px)}.vp-scroll-progress svg{width:100%;height:100%}.vp-scroll-progress circle{opacity:.9;fill:none;stroke:currentColor;transform:rotate(-90deg);transform-origin:50% 50%;r:22;stroke-dasharray:0% 314.1593%;stroke-width:3px}@media (max-width: 959px){.vp-scroll-progress circle{r:18}}.back-to-top-enter-active,.back-to-top-leave-active{transition:opacity .3s}.back-to-top-enter-from,.back-to-top-leave-to{opacity:0}:root{--back-to-top-z-index: 5;--back-to-top-icon: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201024%201024'%3e%3cpath%20d='M512%20843.2c-36.2%200-66.4-13.6-85.8-21.8-10.8-4.6-22.6%203.6-21.8%2015.2l7%20102c.4%206.2%207.6%209.4%2012.6%205.6l29-22c3.6-2.8%209-1.8%2011.4%202l41%2064.2c3%204.8%2010.2%204.8%2013.2%200l41-64.2c2.4-3.8%207.8-4.8%2011.4-2l29%2022c5%203.8%2012.2.6%2012.6-5.6l7-102c.8-11.6-11-20-21.8-15.2-19.6%208.2-49.6%2021.8-85.8%2021.8'/%3e%3cpath%20d='m795.4%20586.2-96-98.2C699.4%20172%20513%2032%20513%2032S324.8%20172%20324.8%20488l-96%2098.2c-3.6%203.6-5.2%209-4.4%2014.2L261.2%20824c1.8%2011.4%2014.2%2017%2023.6%2010.8L419%20744s41.4%2040%2094.2%2040%2092.2-40%2092.2-40l134.2%2090.8c9.2%206.2%2021.6.6%2023.6-10.8l37-223.8c.4-5.2-1.2-10.4-4.8-14M513%20384c-34%200-61.4-28.6-61.4-64s27.6-64%2061.4-64c34%200%2061.4%2028.6%2061.4%2064S547%20384%20513%20384'/%3e%3c/svg%3e");--back-to-top-bg-color: #fff;--back-to-top-color: #3eaf7c;--back-to-top-color-hover: #71cda3;--back-to-top-shadow: rgb(0 0 0 / 20%)}:root{--external-link-icon-color: #aaa}.external-link-icon{position:relative;display:inline-block;color:var(--external-link-icon-color);vertical-align:middle;top:-1px}@media print{.external-link-icon{display:none}}.external-link-icon-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}:root{--nprogress-color: #29d;--nprogress-z-index: 1031}#nprogress{pointer-events:none}#nprogress .bar{background:var(--nprogress-color);position:fixed;z-index:var(--nprogress-z-index);top:0;left:0;width:100%;height:2px}div[class*=language-]:hover:before{display:none}div[class*=language-]:hover .vp-copy-code-button{opacity:1}.vp-copy-code-button{position:absolute;top:.5em;right:.5em;z-index:5;width:2.5rem;height:2.5rem;padding:0;border-width:0;border-radius:.5rem;background:transparent;outline:none;opacity:0;cursor:pointer;transition:opacity .4s}@media print{.vp-copy-code-button{display:none}}.vp-copy-code-button:focus,.vp-copy-code-button.copied{opacity:1}.vp-copy-code-button:hover,.vp-copy-code-button.copied{background:var(--copy-code-hover)}.vp-copy-code-button.copied .vp-copy-icon{-webkit-mask-image:var(--code-copied-icon);mask-image:var(--code-copied-icon)}.vp-copy-code-button.copied:after{content:attr(data-copied);position:absolute;top:0;right:calc(100% + .25rem);display:block;height:1.25rem;padding:.625rem;border-radius:.5rem;background:var(--copy-code-hover);color:var(--copy-code-color);font-weight:500;line-height:1.25rem;white-space:nowrap}.vp-copy-icon{width:1.25rem;height:1.25rem;padding:.625rem;background:currentcolor;color:var(--copy-code-color);font-size:1.25rem;-webkit-mask-image:var(--code-copy-icon);mask-image:var(--code-copy-icon);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:1em;mask-size:1em}:root{--code-copy-icon: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20height='20'%20width='20'%20stroke='rgba(128,128,128,1)'%20stroke-width='2'%3e%3cpath%20stroke-linecap='round'%20stroke-linejoin='round'%20d='M9%205H7a2%202%200%200%200-2%202v12a2%202%200%200%200%202%202h10a2%202%200%200%200%202-2V7a2%202%200%200%200-2-2h-2M9%205a2%202%200%200%200%202%202h2a2%202%200%200%200%202-2M9%205a2%202%200%200%201%202-2h2a2%202%200%200%201%202%202'%20/%3e%3c/svg%3e");--code-copied-icon: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20height='20'%20width='20'%20stroke='rgba(128,128,128,1)'%20stroke-width='2'%3e%3cpath%20stroke-linecap='round'%20stroke-linejoin='round'%20d='M9%205H7a2%202%200%200%200-2%202v12a2%202%200%200%200%202%202h10a2%202%200%200%200%202-2V7a2%202%200%200%200-2-2h-2M9%205a2%202%200%200%200%202%202h2a2%202%200%200%200%202-2M9%205a2%202%200%200%201%202-2h2a2%202%200%200%201%202%202m-6%209%202%202%204-4'%20/%3e%3c/svg%3e");--copy-code-color: var(--code-ln-color, #9e9e9e);--copy-code-hover: var(--code-hl-bg-color, rgb(0 0 0 / 66%))}.chartjs-title{margin:.5rem auto;font-weight:600;font-size:18px;text-align:center}.chartjs-loading{color:var(--vp-tc)}.chartjs-wrapper{overflow-x:auto;padding:.6em .4em;text-align:center;transition:all 1s}@media print{.chartjs-wrapper{page-break-inside:avoid}}@media (max-width: 719px){.chartjs-wrapper{margin:0 -1rem;padding:.6em 0}}.vp-code-tabs-nav{overflow-x:auto;margin:.85rem 0 -.85rem;padding:0;border-radius:6px 6px 0 0;background:var(--code-tabs-nav-bg-color, #3a404c);list-style:none;white-space:nowrap;transition:background var(--vp-ct)}@media print{.vp-code-tabs-nav{display:none}}@media (max-width: 419px){.vp-code-tabs-nav{margin-inline:-1.5rem;border-radius:0}}.vp-code-tab-nav{border-width:0;position:relative;min-width:3rem;margin:0;padding:6px 12px;border-radius:6px 6px 0 0;background:transparent;color:var(--code-tabs-nav-text-color, #eee);font-weight:600;font-size:.85em;line-height:1.4;cursor:pointer;transition:background var(--vp-ct),color var(--vp-ct)}.vp-code-tab-nav:hover{background:var(--code-tabs-nav-hover-color, #434a57)}.vp-code-tab-nav:before,.vp-code-tab-nav:after{content:" ";position:absolute;bottom:0;z-index:1;width:6px;height:6px}.vp-code-tab-nav:before{right:100%}.vp-code-tab-nav:after{left:100%}.vp-code-tab-nav.active{background:var(--code-bg-color, #282c34)}.vp-code-tab-nav.active:before{background:radial-gradient(12px at left top,transparent 50%,var(--code-bg-color, #282c34) 50%)}.vp-code-tab-nav.active:after{background:radial-gradient(12px at right top,transparent 50%,var(--code-bg-color, #282c34) 50%)}.vp-code-tab-nav:first-child:before{display:none}html[dir=rtl] .vp-code-tab-nav:first-child:before{display:block}html[dir=rtl] .vp-code-tab-nav:first-child:after{display:none}.vp-code-tab{display:none}@media print{.vp-code-tab{display:block}}.vp-code-tab.active{display:block}.vp-code-tab div[class*=language-]{border-top-left-radius:0;border-top-right-radius:0}@media (max-width: 419px){.vp-code-tab div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}@media print{.vp-code-tab div[class*=language-] code{white-space:pre-wrap}}.vp-code-tab-title{display:none;font-weight:500}@media print{.vp-code-tab-title{display:block}}:root{--important-title-color: #230555;--important-bg-color: #f4eefe;--important-border-color: #a371f7;--important-code-bg-color: rgb(163 113 247 / 10%);--info-title-color: #193c47;--info-bg-color: #eef9fd;--info-border-color: #4cb3d4;--info-code-bg-color: rgb(76 179 212 / 10%);--note-title-color: #474748;--note-bg-color: #fdfdfe;--note-border-color: #ccc;--note-code-bg-color: rgb(212 213 216 / 20%);--tip-title-color: #003100;--tip-bg-color: #e6f6e6;--tip-border-color: #009400;--tip-code-bg-color: rgb(0 148 0 / 15%);--warning-title-color: #4d3800;--warning-bg-color: #fff8e6;--warning-border-color: #e6a700;--warning-code-bg-color: rgb(230 167 0 / 15%);--caution-title-color: #4b1113;--caution-bg-color: #ffebec;--caution-border-color: #e13238;--caution-code-bg-color: rgb(225 50 56 / 15%);--detail-bg-color: #eee;--detail-text-color: inherit;--detail-code-bg-color: rgb(127 127 127 / 15%)}html[data-theme=dark]{--important-title-color: #f4eefe;--important-bg-color: #230555;--info-title-color: #eef9fd;--info-bg-color: #193c47;--note-title-color: #fdfdfe;--note-bg-color: #474748;--tip-title-color: #e6f6e6;--tip-bg-color: #003100;--warning-title-color: #fff8e6;--warning-bg-color: #4d3800;--caution-title-color: #ffebec;--caution-bg-color: #4b1113;--detail-bg-color: #333;--detail-text-color: #a8a8a8}.hint-container{position:relative;transition:background var(--vp-ct),border-color var(--vp-ct),color var(--vp-ct)}@media print{.hint-container{page-break-inside:avoid}}.hint-container .hint-container-title{position:relative;font-weight:600;line-height:1.25}.hint-container.important,.hint-container.info,.hint-container.note,.hint-container.tip,.hint-container.warning,.hint-container.caution{margin:1rem 0;padding:.25rem 1rem;border-inline-start-width:.3rem;border-inline-start-style:solid;border-radius:.5rem;color:inherit}@media (max-width: 419px){.hint-container.important,.hint-container.info,.hint-container.note,.hint-container.tip,.hint-container.warning,.hint-container.caution{margin-inline:-.75rem}}.hint-container.important .hint-container-title,.hint-container.info .hint-container-title,.hint-container.note .hint-container-title,.hint-container.tip .hint-container-title,.hint-container.warning .hint-container-title,.hint-container.caution .hint-container-title{padding-inline-start:1.75rem}@media print{.hint-container.important .hint-container-title,.hint-container.info .hint-container-title,.hint-container.note .hint-container-title,.hint-container.tip .hint-container-title,.hint-container.warning .hint-container-title,.hint-container.caution .hint-container-title{padding-inline-start:0}}.hint-container.important .hint-container-title:before,.hint-container.info .hint-container-title:before,.hint-container.note .hint-container-title:before,.hint-container.tip .hint-container-title:before,.hint-container.warning .hint-container-title:before,.hint-container.caution .hint-container-title:before{content:" ";position:absolute;top:calc(50% - .6125em);inset-inline-start:0;width:1.25em;height:1.25em;background-position:left;background-repeat:no-repeat}@media print{.hint-container.important .hint-container-title:before,.hint-container.info .hint-container-title:before,.hint-container.note .hint-container-title:before,.hint-container.tip .hint-container-title:before,.hint-container.warning .hint-container-title:before,.hint-container.caution .hint-container-title:before{display:none}}.hint-container.important p,.hint-container.info p,.hint-container.note p,.hint-container.tip p,.hint-container.warning p,.hint-container.caution p{line-height:1.5}.hint-container.important a,.hint-container.info a,.hint-container.note a,.hint-container.tip a,.hint-container.warning a,.hint-container.caution a{color:var(--vp-tc)}.hint-container.important{border-color:var(--important-border-color);background:var(--important-bg-color)}.hint-container.important>.hint-container-title{color:var(--important-title-color)}.hint-container.important>.hint-container-title:before{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M512 981.333a84.992 84.992 0 0 1-84.907-84.906h169.814A84.992 84.992 0 0 1 512 981.333zm384-128H128v-42.666l85.333-85.334v-256A298.325 298.325 0 0 1 448 177.92V128a64 64 0 0 1 128 0v49.92a298.325 298.325 0 0 1 234.667 291.413v256L896 810.667v42.666zm-426.667-256v85.334h85.334v-85.334h-85.334zm0-256V512h85.334V341.333h-85.334z' fill='%23a371f7'/%3E%3C/svg%3E")}.hint-container.important code{background:var(--important-code-bg-color)}.hint-container.info{border-color:var(--info-border-color);background:var(--info-bg-color)}.hint-container.info>.hint-container-title{color:var(--info-title-color)}.hint-container.info>.hint-container-title:before{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11v6h2v-6h-2zm0-4v2h2V7h-2z' fill='%234cb3d4'/%3E%3C/svg%3E")}.hint-container.info code{background:var(--info-code-bg-color)}.hint-container.note{border-color:var(--note-border-color);background:var(--note-bg-color)}.hint-container.note>.hint-container-title{color:var(--note-title-color)}.hint-container.note>.hint-container-title:before{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11v6h2v-6h-2zm0-4v2h2V7h-2z' fill='%23ccc'/%3E%3C/svg%3E")}.hint-container.note code{background:var(--note-code-bg-color)}.hint-container.tip{border-color:var(--tip-border-color);background:var(--tip-bg-color)}.hint-container.tip>.hint-container-title{color:var(--tip-title-color)}.hint-container.tip>.hint-container-title:before{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23009400' d='M7.941 18c-.297-1.273-1.637-2.314-2.187-3a8 8 0 1 1 12.49.002c-.55.685-1.888 1.726-2.185 2.998H7.94zM16 20v1a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-1h8zm-3-9.995V6l-4.5 6.005H11v4l4.5-6H13z'/%3E%3C/svg%3E")}.hint-container.tip code{background:var(--tip-code-bg-color)}.hint-container.warning{border-color:var(--warning-border-color);background:var(--warning-bg-color)}.hint-container.warning>.hint-container-title{color:var(--warning-title-color)}.hint-container.warning>.hint-container-title:before{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M576.286 752.57v-95.425q0-7.031-4.771-11.802t-11.3-4.772h-96.43q-6.528 0-11.3 4.772t-4.77 11.802v95.424q0 7.031 4.77 11.803t11.3 4.77h96.43q6.528 0 11.3-4.77t4.77-11.803zm-1.005-187.836 9.04-230.524q0-6.027-5.022-9.543-6.529-5.524-12.053-5.524H456.754q-5.524 0-12.053 5.524-5.022 3.516-5.022 10.547l8.538 229.52q0 5.023 5.022 8.287t12.053 3.265h92.913q7.032 0 11.803-3.265t5.273-8.287zM568.25 95.65l385.714 707.142q17.578 31.641-1.004 63.282-8.538 14.564-23.354 23.102t-31.892 8.538H126.286q-17.076 0-31.892-8.538T71.04 866.074q-18.582-31.641-1.004-63.282L455.75 95.65q8.538-15.57 23.605-24.61T512 62t32.645 9.04 23.605 24.61z' fill='%23e6a700'/%3E%3C/svg%3E")}.hint-container.warning code{background:var(--warning-code-bg-color)}.hint-container.caution{border-color:var(--caution-border-color);background:var(--caution-bg-color)}.hint-container.caution>.hint-container-title{color:var(--caution-title-color)}.hint-container.caution>.hint-container-title:before{background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c5.523 0 10 4.477 10 10v3.764a2 2 0 0 1-1.106 1.789L18 19v1a3 3 0 0 1-2.824 2.995L14.95 23a2.5 2.5 0 0 0 .044-.33L15 22.5V22a2 2 0 0 0-1.85-1.995L13 20h-2a2 2 0 0 0-1.995 1.85L9 22v.5c0 .171.017.339.05.5H9a3 3 0 0 1-3-3v-1l-2.894-1.447A2 2 0 0 1 2 15.763V12C2 6.477 6.477 2 12 2zm-4 9a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm8 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4z' fill='%23e13238'/%3E%3C/svg%3E")}.hint-container.caution code{background:var(--caution-code-bg-color)}.hint-container.details{position:relative;display:block;margin:1rem 0;padding:1.5rem;border-radius:.5rem;background:var(--detail-bg-color);color:var(--detail-text-color);transition:background var(--vp-tt),color var(--vp-tt)}@media (max-width: 419px){.hint-container.details{margin-inline:-.75rem}}.hint-container.details h4{margin-top:0}.hint-container.details figure:last-child,.hint-container.details p:last-child{margin-bottom:0;padding-bottom:0}.hint-container.details a{color:var(--vp-tc)}.hint-container.details code{background:var(--detail-code-bg-color)}.hint-container.details summary{position:relative;margin:-1.5rem;padding-block:1.5rem;padding-inline:4rem 1.5rem;list-style:none;cursor:pointer}.hint-container.details summary::-webkit-details-marker{display:none}.hint-container.details summary::marker{color:transparent;font-size:0}.hint-container.details summary:before,.hint-container.details summary:after{content:" ";position:absolute;top:calc(50% - .75rem);inset-inline-start:1.5rem;width:1.5rem;height:1.5rem}.hint-container.details summary:before{border-radius:50%;background:#ccc;transition:background var(--vp-ct),transform var(--vp-tt)}html[data-theme=dark] .hint-container.details summary:before{background:#555}.hint-container.details summary:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(0,0,0,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");line-height:normal;transition:transform var(--vp-tt);transform:rotate(90deg)}html[data-theme=dark] .hint-container.details summary:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(255,255,255,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E")}.hint-container.details[open]>summary{margin-bottom:.5em}.hint-container.details[open]>summary:after{transform:rotate(180deg)}:root{--tab-bg-color: var(--vp-bg);--tab-nav-text-color: var(--vp-c);--tab-nav-bg-color: #e0e0e0;--tab-nav-hover-color: #eee}html[data-theme=dark]{--tab-nav-bg-color: #34343f;--tab-nav-hover-color: #2d2d38}.vp-tabs{margin:1.5rem 0;border:2px solid var(--vp-brc);border-radius:8px}@media (max-width: 419px){.theme-hope-content>.vp-tabs{margin-inline:-1.5rem;border-radius:0}}.vp-tabs-nav{overflow-x:auto;margin:0;padding:0;border-radius:8px 8px 0 0;background:var(--tab-nav-bg-color);list-style:none;white-space:nowrap;transition:background var(--vp-ct)}@media print{.vp-tabs-nav{display:none}}@media (max-width: 419px){.vp-tabs-nav{border-radius:0}}.vp-tab-nav{border-width:0;position:relative;min-width:4rem;margin:0;padding:.5em 1em;border-radius:8px 8px 0 0;background:transparent;color:var(--tab-nav-text-color);font-weight:600;font-size:.85em;line-height:1.75;cursor:pointer;transition:background var(--vp-ct),color var(--vp-ct)}.vp-tab-nav:hover{background:var(--tab-nav-hover-color)}.vp-tab-nav:before,.vp-tab-nav:after{content:" ";position:absolute;bottom:0;z-index:1;width:8px;height:8px}.vp-tab-nav:before{right:100%}.vp-tab-nav:after{left:100%}.vp-tab-nav.active{background:var(--tab-bg-color)}.vp-tab-nav.active:before{background:radial-gradient(16px at left top,transparent 50%,var(--tab-bg-color) 50%)}.vp-tab-nav.active:after{background:radial-gradient(16px at right top,transparent 50%,var(--tab-bg-color) 50%)}.vp-tab-nav:first-child:before{display:none}.vp-tab{display:none;padding:1rem .75rem;background:var(--tab-bg-color);transition:background var(--vp-ct)}@media print{.vp-tab{display:block;padding:.5rem}}.vp-tab.active{display:block}.vp-tab:nth-child(n+2) .vp-tab-title{border-top:none}.vp-tab-title{display:none;padding:.25rem 0;border-top:1px solid var(--vp-brc);font-weight:500}@media print{.vp-tab-title{display:block}}.task-list-container{padding-inline-start:0;list-style-position:inside}.task-list-container .task-list-container{padding-inline-start:1.5em}.task-list-item{list-style:none}.task-list-item-checkbox{position:relative;cursor:pointer}.task-list-item-checkbox:after{content:" ";position:absolute;top:0;display:inline-block;box-sizing:border-box;width:1em;height:1em;padding-inline-start:0;border:1px solid #ddd;border-radius:2px;background:#fff;text-align:center;visibility:visible;transition:background var(--vp-ct),border-color var(--vp-ct)}@media print{.task-list-item-checkbox:after{border-color:var(--vp-c)}}html[data-theme=dark] .task-list-item-checkbox:after{border-color:#666;background:#333}.task-list-item-checkbox:checked:after{content:"";border-color:var(--vp-tc);background:var(--vp-tc)}@media print{.task-list-item-checkbox:checked:after{border-color:var(--vp-c);background:transparent}}html[data-theme=dark] .task-list-item-checkbox:checked:after{border-color:var(--vp-tc);background:var(--vp-tc)}.task-list-item-checkbox:checked:before{content:"";position:absolute;top:.1em;inset-inline-start:.4em;z-index:1;width:.2em;height:.5em;border:solid var(--white);border-width:0 .15em .15em 0;transform:rotate(45deg)}@media print{.task-list-item-checkbox:checked:before{border-color:var(--vp-c)}}/*! PhotoSwipe main CSS by Dmytro Semenov | photoswipe.com */.pswp{--pswp-bg: #000;--pswp-placeholder-bg: #222;--pswp-root-z-index: 100000;--pswp-preloader-color: rgba(79, 79, 79, .4);--pswp-preloader-color-secondary: rgba(255, 255, 255, .9);--pswp-icon-color: #fff;--pswp-icon-color-secondary: #4f4f4f;--pswp-icon-stroke-color: #4f4f4f;--pswp-icon-stroke-width: 2px;--pswp-error-text-color: var(--pswp-icon-color)}.pswp{position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--pswp-root-z-index);display:none;touch-action:none;outline:0;opacity:.003;contain:layout style size;-webkit-tap-highlight-color:rgba(0,0,0,0)}.pswp:focus{outline:0}.pswp *{box-sizing:border-box}.pswp img{max-width:none}.pswp--open{display:block}.pswp,.pswp__bg{transform:translateZ(0);will-change:opacity}.pswp__bg{opacity:.005;background:var(--pswp-bg)}.pswp,.pswp__scroll-wrap{overflow:hidden}.pswp__scroll-wrap,.pswp__bg,.pswp__container,.pswp__item,.pswp__content,.pswp__img,.pswp__zoom-wrap{position:absolute;top:0;left:0;width:100%;height:100%}.pswp__img,.pswp__zoom-wrap{width:auto;height:auto}.pswp--click-to-zoom.pswp--zoom-allowed .pswp__img{cursor:zoom-in}.pswp--click-to-zoom.pswp--zoomed-in .pswp__img{cursor:move;cursor:grab}.pswp--click-to-zoom.pswp--zoomed-in .pswp__img:active{cursor:grabbing}.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img,.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img:active,.pswp__img{cursor:zoom-out}.pswp__container,.pswp__img,.pswp__button,.pswp__counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.pswp__item{z-index:1;overflow:hidden}.pswp__hidden{display:none!important}.pswp__content{pointer-events:none}.pswp__content>*{pointer-events:auto}.pswp__error-msg-container{display:grid}.pswp__error-msg{margin:auto;font-size:1em;line-height:1;color:var(--pswp-error-text-color)}.pswp .pswp__hide-on-close{opacity:.005;will-change:opacity;transition:opacity var(--pswp-transition-duration) cubic-bezier(.4,0,.22,1);z-index:10;pointer-events:none}.pswp--ui-visible .pswp__hide-on-close{opacity:1;pointer-events:auto}.pswp__button{position:relative;display:block;width:50px;height:60px;padding:0;margin:0;overflow:hidden;cursor:pointer;background:none;border:0;box-shadow:none;opacity:.85;-webkit-appearance:none;-webkit-touch-callout:none}.pswp__button:hover,.pswp__button:active,.pswp__button:focus{transition:none;padding:0;background:none;border:0;box-shadow:none;opacity:1}.pswp__button:disabled{opacity:.3;cursor:auto}.pswp__icn{fill:var(--pswp-icon-color);color:var(--pswp-icon-color-secondary)}.pswp__icn{position:absolute;top:14px;left:9px;width:32px;height:32px;overflow:hidden;pointer-events:none}.pswp__icn-shadow{stroke:var(--pswp-icon-stroke-color);stroke-width:var(--pswp-icon-stroke-width);fill:none}.pswp__icn:focus{outline:0}div.pswp__img--placeholder,.pswp__img--with-bg{background:var(--pswp-placeholder-bg)}.pswp__top-bar{position:absolute;left:0;top:0;width:100%;height:60px;display:flex;flex-direction:row;justify-content:flex-end;z-index:10;pointer-events:none!important}.pswp__top-bar>*{pointer-events:auto;will-change:opacity}.pswp__button--close{margin-right:6px}.pswp__button--arrow{position:absolute;width:75px;height:100px;top:50%;margin-top:-50px}.pswp__button--arrow:disabled{display:none;cursor:default}.pswp__button--arrow .pswp__icn{top:50%;margin-top:-30px;width:60px;height:60px;background:none;border-radius:0}.pswp--one-slide .pswp__button--arrow{display:none}.pswp--touch .pswp__button--arrow{visibility:hidden}.pswp--has_mouse .pswp__button--arrow{visibility:visible}.pswp__button--arrow--prev{right:auto;left:0}.pswp__button--arrow--next{right:0}.pswp__button--arrow--next .pswp__icn{left:auto;right:14px;transform:scaleX(-1)}.pswp__button--zoom{display:none}.pswp--zoom-allowed .pswp__button--zoom{display:block}.pswp--zoomed-in .pswp__zoom-icn-bar-v{display:none}.pswp__preloader{position:relative;overflow:hidden;width:50px;height:60px;margin-right:auto}.pswp__preloader .pswp__icn{opacity:0;transition:opacity .2s linear;animation:pswp-clockwise .6s linear infinite}.pswp__preloader--active .pswp__icn{opacity:.85}@keyframes pswp-clockwise{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pswp__counter{height:30px;margin-top:15px;margin-inline-start:20px;font-size:14px;line-height:30px;color:var(--pswp-icon-color);text-shadow:1px 1px 3px var(--pswp-icon-color-secondary);opacity:.85}.pswp--one-slide .pswp__counter{display:none}.photo-swipe-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.photo-swipe-bullets-indicator{position:absolute;bottom:30px;left:50%;display:flex;flex-direction:row;align-items:center;transform:translate(-50%)}.photo-swipe-bullet{width:12px;height:6px;margin:0 5px;border-radius:3px;background:#fff;transition:width var(--vp-tt),color var(--vp-ct)}.photo-swipe-bullet.active{width:30px;background:var(--vp-tc)}.vp-footer-wrapper{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-evenly;padding-block:.75rem;padding-inline:calc(var(--sidebar-space) + 2rem) 2rem;border-top:1px solid var(--border-color);background:var(--bg-color);color:var(--dark-grey);text-align:center;transition:border-top-color var(--color-transition),background var(--color-transition),padding var(--transform-transition)}@media (max-width: 719px){.vp-footer-wrapper{padding-inline-start:2rem}}@media (min-width: 1440px){.vp-footer-wrapper{z-index:50;padding-inline-start:2rem}}@media print{.vp-footer-wrapper{margin:0!important;padding:0!important}}@media (max-width: 419px){.vp-footer-wrapper{display:block}}.no-sidebar .vp-footer-wrapper,.sidebar-collapsed .vp-footer-wrapper{padding-inline-start:2rem}.vp-footer{margin:.5rem 1rem;font-size:14px}@media print{.vp-footer{display:none}}.vp-copyright{margin:6px 0;font-size:13px}.vp-page:not(.not-found)+.vp-footer-wrapper{margin-top:-2rem}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper:not(:hover) .arrow{transform:rotate(-180deg)}.dropdown-wrapper .dropdown-title{border-width:0;background:transparent;cursor:pointer;padding:0 .25rem;color:var(--dark-grey);font-weight:500;font-size:inherit;font-family:inherit;line-height:inherit;cursor:inherit}.dropdown-wrapper .dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .icon{margin-inline-end:.25em;font-size:1em}.dropdown-wrapper .dropdown-title .arrow{display:inline-block;vertical-align:middle;width:1em;height:1em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(0,0,0,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;line-height:normal;transition:all .3s;font-size:1.2em}html[data-theme=dark] .dropdown-wrapper .dropdown-title .arrow{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(255,255,255,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E")}.dropdown-wrapper .dropdown-title .arrow.down{transform:rotate(180deg)}html[dir=rtl] .dropdown-wrapper .dropdown-title .arrow.down{transform:rotate(-180deg)}.dropdown-wrapper .dropdown-title .arrow.end{transform:rotate(90deg)}html[dir=rtl] .dropdown-wrapper .dropdown-title .arrow.end,.dropdown-wrapper .dropdown-title .arrow.start{transform:rotate(-90deg)}html[dir=rtl] .dropdown-wrapper .dropdown-title .arrow.start{transform:rotate(90deg)}.dropdown-wrapper ul{margin:0;padding:0;list-style-type:none}.dropdown-wrapper .nav-dropdown{position:absolute;top:100%;inset-inline-end:0;overflow-y:auto;box-sizing:border-box;min-width:6rem;max-height:calc(100vh - var(--navbar-height));margin:0;padding:.5rem .75rem;border:1px solid var(--grey14);border-radius:.5rem;background:var(--bg-color);box-shadow:2px 2px 10px var(--card-shadow);text-align:start;white-space:nowrap;opacity:0;visibility:hidden;transition:all .18s ease-out;transform:scale(.9)}.dropdown-wrapper:hover .nav-dropdown,.dropdown-wrapper.open .nav-dropdown{z-index:2;opacity:1;visibility:visible;transform:none}.dropdown-wrapper .nav-link{position:relative;display:block;margin-bottom:0;border-bottom:none;color:var(--dark-grey);font-weight:400;font-size:.875rem;line-height:1.7rem;transition:color var(--color-transition)}.dropdown-wrapper .nav-link:hover,.dropdown-wrapper .nav-link.active{color:var(--theme-color)}.dropdown-wrapper .dropdown-subtitle{margin:0;padding:.5rem .25rem 0;color:var(--light-grey);font-weight:600;font-size:.75rem;line-height:2;text-transform:uppercase;transition:color var(--color-transition)}.dropdown-wrapper .dropdown-subitem-wrapper{padding:0 0 .25rem}.dropdown-wrapper .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .dropdown-item:last-child .dropdown-subtitle{padding-top:0}.dropdown-wrapper .dropdown-item:last-child .dropdown-subitem-wrapper{padding-bottom:0}.nav-screen-dropdown-title{border-width:0;background:transparent;position:relative;display:flex;align-items:center;width:100%;padding:0;color:var(--dark-grey);font-size:inherit;font-family:inherit;text-align:start;cursor:pointer}.nav-screen-dropdown-title:hover,.nav-screen-dropdown-title.active{color:var(--text-color)}.nav-screen-dropdown-title .title{flex:1}.nav-screen-dropdown-title .arrow{display:inline-block;vertical-align:middle;width:1em;height:1em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(0,0,0,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;line-height:normal;transition:all .3s}html[data-theme=dark] .nav-screen-dropdown-title .arrow{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(255,255,255,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E")}.nav-screen-dropdown-title .arrow.down{transform:rotate(180deg)}html[dir=rtl] .nav-screen-dropdown-title .arrow.down{transform:rotate(-180deg)}.nav-screen-dropdown-title .arrow.end{transform:rotate(90deg)}html[dir=rtl] .nav-screen-dropdown-title .arrow.end,.nav-screen-dropdown-title .arrow.start{transform:rotate(-90deg)}html[dir=rtl] .nav-screen-dropdown-title .arrow.start{transform:rotate(90deg)}.nav-screen-dropdown{overflow:hidden;margin:.5rem 0 0;padding:0;list-style:none;transition:transform .1s ease-out;transform:scaleY(1);transform-origin:top}.nav-screen-dropdown.hide{height:0;margin:0;transform:scaleY(0)}.nav-screen-dropdown .nav-link{position:relative;display:block;padding-inline-start:.5rem;font-weight:400;line-height:2}.nav-screen-dropdown .nav-link:hover,.nav-screen-dropdown .nav-link.active{color:var(--theme-color)}.nav-screen-dropdown .nav-link .icon{font-size:1em}.nav-screen-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.nav-screen-dropdown .dropdown-subtitle{margin:0;padding-inline-start:.25rem;color:var(--light-grey);font-weight:600;font-size:.75rem;line-height:2;text-transform:uppercase;transition:color var(--color-transition)}.nav-screen-dropdown .dropdown-subtitle .nav-link{padding:0}.nav-screen-dropdown .dropdown-subitem-wrapper{margin:0;padding:0;list-style:none}.nav-screen-dropdown .dropdown-subitem{padding-inline-start:.5rem;font-size:.9em}.nav-screen-links{display:none;padding-bottom:.75rem}@media (max-width: 719px){.nav-screen-links{display:block}}.nav-screen-links .navbar-links-item{position:relative;display:block;padding:12px 4px 11px 0;border-bottom:1px solid var(--border-color);font-size:16px;line-height:1.5rem;transition:border-bottom-color var(--color-transition)}.nav-screen-links .nav-link{display:inline-block;width:100%;color:var(--dark-grey);font-weight:400}.nav-screen-links .nav-link:hover{color:var(--text-color)}.nav-screen-links .nav-link.active{color:var(--theme-color)}.appearance-title{display:block;margin:0;padding:0 .25rem;color:var(--light-grey);font-weight:600;font-size:.75rem;line-height:2;transition:color var(--color-transition)}#appearance-switch{border-width:0;background:transparent;vertical-align:middle;padding:6px;color:var(--dark-grey);cursor:pointer;transition:color var(--color-transition)}#appearance-switch:hover{color:var(--theme-color)}#appearance-switch .icon{width:1.25rem;height:1.25rem}.theme-color-title{display:block;margin:0;padding:0 .25rem;color:var(--light-grey);font-weight:600;font-size:.75rem;line-height:2;transition:color var(--color-transition)}#theme-color-picker{display:flex;margin:0;padding:0;list-style-type:none;font-size:14px}#theme-color-picker li span{display:inline-block;vertical-align:middle;width:15px;height:15px;margin:0 2px;border-radius:2px}#theme-color-picker li span.theme-color,#theme-color-picker li span.theme-color html[data-theme=dark]{background:#21d789}:root.theme-1{--theme-color: #07c3f2;--theme-color-light: #1bccf8;--theme-color-dark: #06b0da;--theme-color-mask: rgba(7, 195, 242, .15)}:root.theme-2{--theme-color: #fc801d;--theme-color-light: #fc8d34;--theme-color-dark: #fa7103;--theme-color-mask: rgba(252, 128, 29, .15)}:root.theme-3{--theme-color: #087cfa;--theme-color-light: #2189fb;--theme-color-dark: #056fe4;--theme-color-mask: rgba(8, 124, 250, .15)}:root.theme-4{--theme-color: #fe2857;--theme-color-light: #fe3e68;--theme-color-dark: #fe0b40;--theme-color-mask: rgba(254, 40, 87, .15)}@media print{.full-screen-wrapper{display:none}}.full-screen-title{display:block;margin:0;padding:0 .25rem;color:var(--light-grey);font-weight:600;font-size:.75rem;line-height:2;transition:color var(--color-transition)}.full-screen,.cancel-full-screen{border-width:0;background:transparent;vertical-align:middle;padding:.375rem;color:var(--dark-grey);cursor:pointer}.full-screen:hover,.cancel-full-screen:hover{color:var(--theme-color)}.full-screen .icon,.cancel-full-screen .icon{width:1.25rem;height:1.25rem}.enter-fullscreen-icon:hover,.cancel-fullscreen-icon{color:var(--theme-color)}.cancel-fullscreen-icon:hover{color:var(--dark-grey)}.vp-nav-screen-container{max-width:320px;margin:0 auto;padding:2rem 0 4rem}#nav-screen{position:fixed;inset:var(--navbar-height) 0 0 0;z-index:150;display:none;overflow-y:auto;padding:0 2rem;background:var(--bg-color);transition:background .5s}@media (max-width: 719px){#nav-screen{display:block}}#nav-screen.fade-enter-active,#nav-screen.fade-leave-active{transition:opacity .25s}#nav-screen.fade-enter-active .vp-nav-screen-container,#nav-screen.fade-leave-active .vp-nav-screen-container{transition:transform .25s ease}#nav-screen.fade-enter-from,#nav-screen.fade-leave-to{opacity:0}#nav-screen.fade-enter-from .vp-nav-screen-container,#nav-screen.fade-leave-to .vp-nav-screen-container{transform:translateY(-8px)}#nav-screen .icon{margin-inline-end:.25em;font-size:1em}#nav-screen img.icon{vertical-align:-.125em;height:1em}.vp-outlook-wrapper{display:flex;justify-content:space-around}.vp-nav-logo{vertical-align:top;height:var(--navbar-line-height);margin-inline-end:.8rem}.vp-nav-logo.light{display:inline-block}.vp-nav-logo.dark,html[data-theme=dark] .vp-nav-logo.light{display:none}html[data-theme=dark] .vp-nav-logo.dark{display:inline-block}.vp-site-name{position:relative;color:var(--text-color);font-size:1.25rem}@media (max-width: 719px){.vp-site-name{overflow:hidden;width:calc(100vw - 9.4rem);text-overflow:ellipsis;white-space:nowrap}}.vp-brand:hover .vp-site-name{color:var(--theme-color)}.vp-navbar .vp-nav-links{display:flex;align-items:center;font-size:.875rem}.vp-navbar .nav-item{position:relative;margin:0 .25rem;line-height:2rem}.vp-navbar .nav-item:first-child{margin-inline-start:0}.vp-navbar .nav-item:last-child{margin-inline-end:0}.vp-navbar .nav-item>.nav-link{color:var(--dark-grey)}.vp-navbar .nav-item>.nav-link:after{content:" ";position:absolute;inset:auto 50% 0;height:2px;border-radius:1px;background:var(--theme-color-light);visibility:hidden;transition:inset .2s ease-in-out}.vp-navbar .nav-item>.nav-link.active{color:var(--theme-color)}.vp-navbar .nav-item>.nav-link:hover:after,.vp-navbar .nav-item>.nav-link.active:after{inset:auto 0 0;visibility:visible}.vp-navbar .vp-repo{margin:0!important}.vp-navbar .vp-repo-link{display:inline-block;margin:auto;padding:6px;color:var(--dark-grey);line-height:1}.vp-navbar .vp-repo-link:hover,.vp-navbar .vp-repo-link:active{color:var(--theme-color)}.vp-toggle-navbar-button{border-width:0;background:transparent;cursor:pointer;position:relative;display:none;align-items:center;justify-content:center;padding:6px}@media screen and (max-width: 719px){.vp-toggle-navbar-button{display:flex}}.vp-toggle-navbar-button>span{position:relative;overflow:hidden;width:16px;height:14px}.vp-toggle-navbar-button .vp-top,.vp-toggle-navbar-button .vp-middle,.vp-toggle-navbar-button .vp-bottom{position:absolute;width:16px;height:2px;background:var(--dark-grey);transition:top .25s,background .5s,transform .25s}.vp-toggle-navbar-button .vp-top{top:0;left:0;transform:translate(0)}.vp-toggle-navbar-button .vp-middle{top:6px;left:0;transform:translate(8px)}.vp-toggle-navbar-button .vp-bottom{top:12px;left:0;transform:translate(4px)}.vp-toggle-navbar-button:hover .vp-top{top:0;left:0;transform:translate(4px)}.vp-toggle-navbar-button:hover .vp-middle{top:6;left:0;transform:translate(0)}.vp-toggle-navbar-button:hover .vp-bottom{top:12px;left:0;transform:translate(8px)}.vp-toggle-navbar-button.is-active .vp-top{top:6px;transform:translate(0) rotate(225deg)}.vp-toggle-navbar-button.is-active .vp-middle{top:6px;transform:translate(16px)}.vp-toggle-navbar-button.is-active .vp-bottom{top:6px;transform:translate(0) rotate(135deg)}.vp-toggle-navbar-button.is-active:hover .vp-top,.vp-toggle-navbar-button.is-active:hover .vp-middle,.vp-toggle-navbar-button.is-active:hover .vp-bottom{background:var(--theme-color);transition:top .25s,background .25s,transform .25s}.vp-toggle-sidebar-button{border-width:0;background:transparent;cursor:pointer;display:none;vertical-align:middle;box-sizing:content-box;width:1rem;height:1rem;padding:.5rem;font:unset;transition:transform .2s ease-in-out}@media screen and (max-width: 719px){.vp-toggle-sidebar-button{display:block;padding-inline-end:var(--navbar-mobile-horizontal-padding)}}.vp-toggle-sidebar-button:before,.vp-toggle-sidebar-button:after,.vp-toggle-sidebar-button .icon{display:block;width:100%;height:2px;border-radius:.05em;background:var(--dark-grey);transition:transform .2s ease-in-out}.vp-toggle-sidebar-button:before{content:" ";margin-top:.125em}.sidebar-open .vp-toggle-sidebar-button:before{transform:translateY(.34rem) rotate(135deg)}.vp-toggle-sidebar-button:after{content:" ";margin-bottom:.125em}.sidebar-open .vp-toggle-sidebar-button:after{transform:translateY(-.34rem) rotate(-135deg)}.vp-toggle-sidebar-button .icon{margin:.2em 0}.sidebar-open .vp-toggle-sidebar-button .icon{transform:scale(0)}.outlook-button{border-width:0;background:transparent;cursor:pointer;position:relative;padding:.375rem;color:var(--dark-grey)}.outlook-button .icon{vertical-align:middle;width:1.25rem;height:1.25rem}.outlook-dropdown{position:absolute;top:100%;inset-inline-end:0;overflow-y:auto;box-sizing:border-box;min-width:100px;margin:0;padding:.5rem .75rem;border:1px solid var(--grey14);border-radius:.25rem;background:var(--bg-color);box-shadow:2px 2px 10px var(--card-shadow);text-align:start;white-space:nowrap;opacity:0;visibility:hidden;transition:all .18s ease-out;transform:scale(.8)}.outlook-dropdown>*:not(:last-child){padding-bottom:.5rem;border-bottom:1px solid var(--grey14)}.outlook-button:hover .outlook-dropdown,.outlook-button.open .outlook-dropdown{z-index:2;opacity:1;visibility:visible;transform:scale(1)}.vp-navbar{--navbar-line-height: calc( var(--navbar-height) - var(--navbar-vertical-padding) * 2 );position:fixed;inset:0 0 auto;z-index:175;display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;height:var(--navbar-height);padding:var(--navbar-vertical-padding) var(--navbar-horizontal-padding);background:var(--navbar-bg-color);box-shadow:0 2px 8px var(--card-shadow);line-height:var(--navbar-line-height);white-space:nowrap;transition:transform ease-in-out .3s,background var(--color-transition),box-shadow var(--color-transition);-webkit-backdrop-filter:saturate(150%) blur(12px);backdrop-filter:saturate(150%) blur(12px)}@media print{.vp-navbar{display:none}}.hide-navbar .vp-navbar.auto-hide{transform:translateY(-100%)}.vp-navbar .nav-link{padding:0 .25rem;color:var(--dark-grey)}.vp-navbar .nav-link.active{color:var(--theme-color)}.vp-navbar .nav-link .icon{margin-inline-end:.25em;font-size:1em}.vp-navbar .nav-link img.icon{vertical-align:-.125em;height:1em}.vp-navbar.hide-icon .vp-nav-links .icon{display:none!important}.vp-navbar-start,.vp-navbar-end,.vp-navbar-center{display:flex;flex:1;align-items:center}.vp-navbar-start>*,.vp-navbar-end>*,.vp-navbar-center>*{position:relative;margin:0 .25rem!important}.vp-navbar-start>*:first-child,.vp-navbar-end>*:first-child,.vp-navbar-center>*:first-child{margin-inline-start:0!important}.vp-navbar-start>*:last-child,.vp-navbar-end>*:last-child,.vp-navbar-center>*:last-child{margin-inline-end:0!important}.vp-navbar-start{justify-content:start}.vp-navbar-center{justify-content:center}.vp-navbar-end{justify-content:end}.vp-sidebar-heading{display:flex;align-items:center;overflow:hidden;box-sizing:border-box;width:calc(100% - 1rem);margin:0;margin-inline:.5rem;padding:.25rem .5rem;border-width:0;border-radius:.375rem;background:transparent;color:var(--text-color);font-size:1.1em;line-height:1.5;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:color .15s ease;transform:rotate(0)}.vp-sidebar-heading.open{color:inherit}.vp-sidebar-heading.clickable:hover{background:var(--bg-color-secondary)}.vp-sidebar-heading.clickable.exact{border-inline-start-color:var(--theme-color);color:var(--theme-color)}.vp-sidebar-heading.clickable.exact a{color:inherit}.vp-sidebar-heading .vp-sidebar-title{flex:1}.vp-sidebar-heading .vp-arrow{display:inline-block;vertical-align:middle;width:1em;height:1em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(0,0,0,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;line-height:normal;transition:all .3s;font-size:1.5em}html[data-theme=dark] .vp-sidebar-heading .vp-arrow{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(255,255,255,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E")}.vp-sidebar-heading .vp-arrow.down{transform:rotate(180deg)}html[dir=rtl] .vp-sidebar-heading .vp-arrow.down{transform:rotate(-180deg)}.vp-sidebar-heading .vp-arrow.end{transform:rotate(90deg)}html[dir=rtl] .vp-sidebar-heading .vp-arrow.end,.vp-sidebar-heading .vp-arrow.start{transform:rotate(-90deg)}html[dir=rtl] .vp-sidebar-heading .vp-arrow.start{transform:rotate(90deg)}button.vp-sidebar-heading{outline:none;font-weight:inherit;font-family:inherit;line-height:inherit;text-align:start;cursor:pointer}.vp-sidebar-link{display:inline-block;box-sizing:border-box;width:calc(100% - 1rem);margin-inline:.5rem;padding:.25rem .5rem;border-radius:.375rem;color:var(--text-color);font-weight:400;font-size:1em;line-height:1.5}.vp-sidebar-link:hover{background:var(--bg-color-secondary)}.vp-sidebar-link.active{background:var(--theme-color-mask);color:var(--theme-color);font-weight:500}.vp-sidebar-link.active .icon{color:var(--theme-color)}.vp-sidebar-sub-headers .vp-sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-inline-start:none}.vp-sidebar-sub-headers .vp-sidebar-link.active{background:transparent;font-weight:500}.vp-sidebar-group:not(.collapsible) .vp-sidebar-heading:not(.clickable){color:inherit;cursor:auto}.vp-sidebar-group .vp-sidebar-group{padding-inline-start:.75rem}.vp-sidebar-group .vp-sidebar-group .vp-sidebar-heading{font-size:1em}.vp-sidebar-group .vp-sidebar-link{padding-inline-start:1.25rem}.vp-sidebar-links,.vp-sidebar-links ul{margin:0;padding:0}.vp-sidebar-links ul.vp-sidebar-sub-headers{padding-inline-start:.75rem;font-size:.95em}@media (min-width: 1440px){.has-toc .vp-sidebar-links ul.vp-sidebar-sub-headers{display:none}}.vp-sidebar-links li{list-style-type:none}.vp-sidebar>.vp-sidebar-links{padding:1.5rem 0}@media (max-width: 719px){.vp-sidebar>.vp-sidebar-links{padding:1rem 0}}.vp-sidebar>.vp-sidebar-links>li>.vp-sidebar-link{font-size:1.1em}.vp-sidebar>.vp-sidebar-links>li:not(:first-child){margin-top:.5rem}.vp-sidebar{position:fixed;top:0;bottom:0;inset-inline-start:0;z-index:1;overflow-y:auto;width:var(--sidebar-width);margin:0;padding-inline-start:calc(var(--sidebar-space) - var(--sidebar-width));background:var(--sidebar-bg-color);box-shadow:2px 0 8px var(--card-shadow);font-size:.94rem;transition:background var(--color-transition),box-shadow var(--color-transition),padding var(--transform-transition),transform var(--transform-transition);-webkit-backdrop-filter:saturate(150%) blur(12px);backdrop-filter:saturate(150%) blur(12px);scrollbar-color:var(--theme-color) var(--border-color);scrollbar-width:thin}@media (max-width: 959px){.vp-sidebar{font-size:.86em}}@media (max-width: 719px){.vp-sidebar{z-index:125;box-shadow:none;transform:translate(-100%)}html[dir=rtl] .vp-sidebar{transform:translate(100%)}}@media (min-width: 1440px){.vp-sidebar{padding-bottom:3rem;box-shadow:none;font-size:1rem}}@media print{.vp-sidebar{display:none}}.vp-sidebar a{display:inline-block;color:var(--text-color);font-weight:400}.vp-sidebar .icon{margin-inline-end:.25em;font-size:1em}.vp-sidebar img.icon{vertical-align:-.125em;height:1em}.vp-sidebar.hide-icon .icon{display:none!important}.vp-sidebar-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9;background:#00000026}.vp-sidebar-mask.fade-enter-active,.vp-sidebar-mask.fade-leave-active{transition:opacity .25s}.vp-sidebar-mask.fade-enter-from,.vp-sidebar-mask.fade-leave-to{opacity:0}.toggle-sidebar-wrapper{position:fixed;top:var(--navbar-height);bottom:0;inset-inline-start:var(--sidebar-space);z-index:100;display:flex;align-items:center;justify-content:center;font-size:2rem;transition:inset-inline-start var(--transform-transition)}@media (max-width: 719px){.toggle-sidebar-wrapper{display:none}}@media (min-width: 1440px){.toggle-sidebar-wrapper{display:none}}.toggle-sidebar-wrapper:hover{background:#7f7f7f0d;cursor:pointer}.toggle-sidebar-wrapper .arrow{display:inline-block;vertical-align:middle;width:1em;height:1em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(0,0,0,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;line-height:normal;transition:all .3s}html[data-theme=dark] .toggle-sidebar-wrapper .arrow{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(255,255,255,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E")}.toggle-sidebar-wrapper .arrow.down{transform:rotate(180deg)}html[dir=rtl] .toggle-sidebar-wrapper .arrow.down{transform:rotate(-180deg)}.toggle-sidebar-wrapper .arrow.end{transform:rotate(90deg)}html[dir=rtl] .toggle-sidebar-wrapper .arrow.end,.toggle-sidebar-wrapper .arrow.start{transform:rotate(-90deg)}html[dir=rtl] .toggle-sidebar-wrapper .arrow.start{transform:rotate(90deg)}.theme-container{display:flex;flex-direction:column;justify-content:space-between;min-height:100vh}.theme-container .vp-page{padding-top:var(--navbar-height);padding-inline-start:calc(var(--sidebar-space) + 2rem)}@media (max-width: 719px){.theme-container .vp-page{padding-inline:0}}@media (min-width: 1440px){.theme-container .vp-page{padding-inline-end:calc(100vw - var(--content-width) - var(--sidebar-space) - 6rem)}}.theme-container .vp-sidebar{top:var(--navbar-height)}.theme-container.no-navbar .vp-page{padding-top:0}.theme-container.no-navbar .vp-sidebar{top:0}@media (max-width: 719px){.theme-container.no-navbar .vp-sidebar{top:0}}@media (max-width: 719px){.theme-container.hide-navbar .vp-sidebar{top:0}}.theme-container.sidebar-collapsed .vp-page{padding-inline-start:0}.theme-container.sidebar-collapsed .vp-sidebar{box-shadow:none;transform:translate(-100%)}html[dir=rtl] .theme-container.sidebar-collapsed .vp-sidebar{transform:translate(100%)}.theme-container.sidebar-collapsed .toggle-sidebar-wrapper{inset-inline-start:0}.theme-container.no-sidebar .vp-page{padding-inline:0}@media (min-width: 1440px){.theme-container.no-sidebar.has-toc .vp-page{padding-inline-end:16rem}}.theme-container.no-sidebar .vp-toggle-sidebar-button,.theme-container.no-sidebar .toggle-sidebar-wrapper,.theme-container.no-sidebar .vp-sidebar{display:none}.theme-container.sidebar-open .vp-sidebar{box-shadow:2px 0 8px var(--card-shadow);transform:translate(0)}.vp-feature-wrapper{position:relative}.vp-feature-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background-attachment:fixed;background-position:50%;background-size:cover}.vp-feature-bg.light{display:inline-block}.vp-feature-bg.dark,html[data-theme=dark] .vp-feature-bg.light{display:none}html[data-theme=dark] .vp-feature-bg.dark{display:inline-block}.vp-feature{position:relative;z-index:1;margin:0 auto;padding:1.5rem 1rem;color:var(--text-color-lighter);text-align:center}.vp-feature-bg+.vp-feature{color:#222}html[data-theme=dark] .vp-feature-bg+.vp-feature{color:#eee}.vp-feature-bg+.vp-feature .icon{color:inherit}.vp-feature-image{height:10rem;margin:0 auto}@media (max-width: 959px){.vp-feature-image{height:8rem}}.vp-feature-image.light{display:inline-block}.vp-feature-image.dark,html[data-theme=dark] .vp-feature-image.light{display:none}html[data-theme=dark] .vp-feature-image.dark{display:inline-block}.vp-feature-header{margin-bottom:1.5rem;border-bottom:none;font-size:3rem;font-family:var(--font-family);text-align:center}@media (max-width: 959px){.vp-feature-header{font-size:2.5rem}}@media (max-width: 719px){.vp-feature-header{font-size:2.25rem}}@media (max-width: 419px){.vp-feature-header{font-size:2rem}}.vp-feature-description{font-size:1.125rem}.vp-features{z-index:1;display:flex;flex-wrap:wrap;align-items:stretch;place-content:stretch center;margin:1rem 0;text-align:start}@media print{.vp-features{display:block}}.vp-features:first-child{border-top:1px solid var(--border-color);transition:border-color var(--color-transition)}.vp-feature-item{position:relative;display:block;flex-basis:calc(33% - 3rem);margin:.5rem;padding:1rem;border-radius:.5rem;color:inherit;transition:background var(--color-transition),box-shadow var(--color-transition),transform var(--transform-transition)}@media (min-width: 1440px){.vp-feature-item{flex-basis:calc(25% - 3rem)}}@media (max-width: 959px){.vp-feature-item{flex-basis:calc(50% - 3rem)}}@media (max-width: 719px){.vp-feature-item{flex-basis:100%;font-size:.95rem}}@media (max-width: 419px){.vp-feature-item{margin:.5rem 0;font-size:.9rem}}.vp-feature-item.link{cursor:pointer}@media print{.vp-feature-item.link{text-decoration:none}}.vp-feature-item .icon{display:inline-block;height:1.1em;margin-inline-end:.5rem;color:var(--theme-color);font-weight:400;font-size:1.1em}.vp-feature-item:hover{background-color:var(--bg-color-secondary);box-shadow:0 2px 12px 0 var(--card-shadow);transform:translate(-2px,-2px);transform:scale(1.05)}.vp-feature-bg+.vp-feature .vp-feature-item:hover{background-color:transparent}.vp-feature-item:only-child{flex-basis:100%}.vp-feature-item:first-child:nth-last-child(2),.vp-feature-item:nth-child(2):last-child{flex-basis:calc(50% - 3rem)}@media (max-width: 719px){.vp-feature-item:first-child:nth-last-child(2),.vp-feature-item:nth-child(2):last-child{flex-basis:100%}}.vp-feature-title{margin:.25rem 0 .5rem;font-weight:700;font-size:1.3rem;font-family:var(--font-family)}@media (max-width: 419px){.vp-feature-title{font-size:1.2rem}}.vp-feature-details{margin:0;line-height:1.4}.vp-hero-info-wrapper{position:relative;display:flex;align-items:center;justify-content:center;margin-inline:auto}.vp-hero-info-wrapper.fullscreen{height:calc(100vh - var(--navbar-height))!important}.vp-hero-info{z-index:1;width:100%;padding-inline:2.5rem}@media (max-width: 959px){.vp-hero-info{padding-inline:1.5rem}}@media (min-width: 959px){.vp-hero-info{display:flex;align-items:center;justify-content:space-evenly}}.vp-hero-mask{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background-position:50%;background-size:cover}.vp-hero-mask:after{content:" ";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:block}.vp-hero-mask.light{display:block}html[data-theme=dark] .vp-hero-mask.light,.vp-hero-mask.dark{display:none}html[data-theme=dark] .vp-hero-mask.dark{display:block}.vp-hero-infos{z-index:1;margin:0 .5rem}.vp-hero-image{display:block;max-width:100%;max-height:18rem;margin:1rem}@media (max-width: 959px){.vp-hero-image{margin:2rem auto}}@media (max-width: 719px){.vp-hero-image{max-height:16rem;margin:1.5rem auto}}@media (max-width: 419px){.vp-hero-image{max-height:14rem}}.vp-hero-image.light{display:block}html[data-theme=dark] .vp-hero-image.light,.vp-hero-image.dark{display:none}html[data-theme=dark] .vp-hero-image.dark{display:block}#main-title{margin:.5rem 0;background:linear-gradient(120deg,var(--theme-color-light),var(--theme-color) 30%,#216fd7 100%);-webkit-background-clip:text;background-clip:text;font-weight:700;font-size:3.6rem;font-family:var(--font-family);line-height:1.5;-webkit-text-fill-color:transparent}@media (max-width: 719px){#main-title{margin:0}}@media (max-width: 959px){#main-title{font-size:2.5rem;text-align:center}}@media (max-width: 719px){#main-title{font-size:2.25rem;text-align:center}}@media (max-width: 419px){#main-title{margin:0 auto;font-size:2rem}}#main-description,.vp-hero-actions{margin:1.8rem 0}@media (max-width: 719px){#main-description,.vp-hero-actions{margin:1.5rem 0}}@media (max-width: 959px){#main-description,.vp-hero-actions{margin:1.5rem auto;text-align:center}}@media (max-width: 419px){#main-description,.vp-hero-actions{margin:1.2rem 0}}#main-description{max-width:35rem;color:var(--text-color-light);font-weight:500;font-size:1.6rem;line-height:1.3}@media (max-width: 719px){#main-description{font-size:1.4rem}}@media (max-width: 419px){#main-description{font-size:1.2rem}}.vp-hero-action{display:inline-block;overflow:hidden;min-width:4rem;margin:.5rem;padding:.5em 1.5rem;border-radius:2rem;background:var(--bg-color-secondary);color:var(--text-color);font-size:1.2rem;text-align:center;transition:color var(--color-transition),color var(--color-transition),transform var(--transform-transition)}@media (max-width: 719px){.vp-hero-action{padding:.5rem 1rem;font-size:1.1rem}}@media (max-width: 419px){.vp-hero-action{font-size:1rem}}@media print{.vp-hero-action{text-decoration:none}}.vp-hero-action:hover{background:var(--bg-color-tertiary)}.vp-hero-action.primary{border-color:var(--theme-color);background:var(--theme-color);color:var(--white)}.vp-hero-action.primary:hover{border-color:var(--theme-color-light);background:var(--theme-color-light)}.vp-project-home:not(.pure) .vp-hero-action:active{transform:scale(.96)}.vp-hero-action .icon{margin-inline-end:.25em}.vp-highlight-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.vp-highlight-wrapper:nth-child(odd) .vp-highlight{flex-direction:row-reverse}.vp-highlight{z-index:1;display:flex;flex:1;align-items:center;justify-content:flex-end;max-width:var(--home-page-width);margin:0 auto;padding:1.5rem 2.5rem;color:#222}@media (max-width: 719px){.vp-highlight{display:block;padding-inline:1.5rem;text-align:center}}html[data-theme=dark] .vp-highlight{color:#eee}.vp-highlight-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background-attachment:fixed;background-position:50%;background-size:cover}.vp-highlight-bg.light{display:inline-block}.vp-highlight-bg.dark,html[data-theme=dark] .vp-highlight-bg.light{display:none}html[data-theme=dark] .vp-highlight-bg.dark{display:inline-block}.vp-highlight-image{width:12rem;margin:2rem 4rem}@media (max-width: 959px){.vp-highlight-image{width:10rem}}@media (max-width: 719px){.vp-highlight-image{width:8rem;margin:0 auto}}.vp-highlight-image.light{display:inline-block}.vp-highlight-image.dark,html[data-theme=dark] .vp-highlight-image.light{display:none}html[data-theme=dark] .vp-highlight-image.dark{display:inline-block}.vp-highlight-info-wrapper{display:flex;flex:1;justify-content:center;padding:2rem}@media (max-width: 719px){.vp-highlight-info-wrapper{padding:1rem 0}}.vp-highlight-info-wrapper:only-child{flex:1 0 100%}.vp-highlight-info{text-align:start}.vp-highlight-header{margin-bottom:1.5rem;border-bottom:none;font-size:3rem;font-family:var(--font-family)}@media (max-width: 959px){.vp-highlight-header{font-size:2.5rem}}@media (max-width: 719px){.vp-highlight-header{font-size:2.25rem;text-align:center}}@media (max-width: 419px){.vp-highlight-header{font-size:2rem}}.vp-highlight-description{font-size:1.125rem}.vp-highlights{margin-inline-start:-1.25em;padding-inline-start:0}.vp-highlight-item-wrapper{padding:.5em .5em .5em 1.75em;border-radius:.5rem;list-style:none}.vp-highlight-item-wrapper.link{cursor:pointer}.vp-highlight-item-wrapper:hover{background-color:var(--bg-color-secondary);box-shadow:0 2px 12px 0 var(--card-shadow);transition:transform var(--transform-transition);transform:translate(-2px,-2px)}.vp-highlight-bg+.vp-highlight .vp-highlight-item-wrapper:hover{background-color:transparent}.vp-highlight-item-wrapper::marker{font-weight:700}.vp-highlight-item{display:list-item;color:inherit;list-style:initial}@media print{.vp-highlight-item{text-decoration:none}}.vp-highlight-title{margin:0;font-weight:600;font-size:1.125rem;font-family:var(--font-family)}.vp-highlight-title .icon{margin-inline-end:.25em;font-size:1em}.vp-highlight-title img.icon{vertical-align:-.125em;height:1em}.vp-highlight-details{margin:.5rem 0 0}.vp-project-home{--content-width: var(--home-page-width);display:block;flex:1;padding-top:var(--navbar-height)}@media screen{.vp-project-home .vp-hero-info-wrapper:not(.fullscreen) .vp-hero-info{max-width:var(--home-page-width)}}@media screen{.vp-project-home .vp-feature{max-width:var(--home-page-width)}}.vp-project-home .theme-hope-content{padding-bottom:1.5rem!important}.vp-project-home .theme-hope-content:empty{padding:0!important}.theme-hope-content:not(.custom)>*:first-child{margin-top:0}.vp-breadcrumb{max-width:var(--content-width, 740px);margin-inline:auto;padding-inline:2.5rem;position:relative;z-index:2;padding-top:1rem;font-size:15px}@media (max-width: 959px){.vp-breadcrumb{padding-inline:1.5rem}}@media print{.vp-breadcrumb{max-width:unset}}@media (max-width: 959px){.vp-breadcrumb{font-size:14px}}@media (max-width: 419px){.vp-breadcrumb{padding-top:.5rem;font-size:12.8px}}@media print{.vp-breadcrumb{display:none}}.vp-breadcrumb .icon{margin-inline-end:.25em;font-size:1em}.vp-breadcrumb img.icon{vertical-align:-.125em;height:1em}.vp-breadcrumb a{display:inline-block;padding:0 .5em}.vp-breadcrumb a:before{position:relative;bottom:.125rem;margin-inline-end:.25em}.vp-breadcrumb a:hover{color:var(--theme-color)}.vp-breadcrumb ol{margin:0;padding-inline-start:0;list-style:none}.vp-breadcrumb li{display:inline-block;line-height:1.5}.vp-breadcrumb li:first-child a{padding-inline-start:0}.vp-breadcrumb li:last-child a{padding-inline-end:0}.vp-breadcrumb li.is-active a{color:var(--light-grey);cursor:default;pointer-events:none}.vp-breadcrumb li+li:before{content:"/";color:var(--light-grey)}.vp-page-nav{display:flex;flex-wrap:wrap;min-height:2rem;margin-top:0;padding-block:.5rem;padding-inline:2rem;border-top:1px solid var(--border-color);transition:border-top var(--color-transition)}@media (max-width: 959px){.vp-page-nav{padding-inline:1rem}}@media print{.vp-page-nav{display:none}}.vp-page-nav .nav-link{display:inline-block;flex-grow:1;margin:.25rem;padding:.25rem .5rem;border:1px solid var(--border-color);border-radius:.25rem}.vp-page-nav .nav-link:hover{background:var(--bg-color-secondary)}.vp-page-nav .nav-link .hint{color:var(--light-grey);font-size:.875rem;line-height:2}.vp-page-nav .nav-link .arrow{display:inline-block;vertical-align:middle;width:1em;height:1em;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(0,0,0,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E");background-position:center;background-repeat:no-repeat;line-height:normal;transition:all .3s;font-size:.75rem}html[data-theme=dark] .vp-page-nav .nav-link .arrow{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(255,255,255,0.5)' d='M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z'/%3E%3C/svg%3E")}.vp-page-nav .nav-link .arrow.down{transform:rotate(180deg)}html[dir=rtl] .vp-page-nav .nav-link .arrow.down{transform:rotate(-180deg)}.vp-page-nav .nav-link .arrow.end{transform:rotate(90deg)}html[dir=rtl] .vp-page-nav .nav-link .arrow.end,.vp-page-nav .nav-link .arrow.start{transform:rotate(-90deg)}html[dir=rtl] .vp-page-nav .nav-link .arrow.start{transform:rotate(90deg)}.vp-page-nav .prev{text-align:start}.vp-page-nav .prev .icon{margin-inline-end:.25em;font-size:1em}.vp-page-nav .prev img.icon{vertical-align:-.125em;height:1em}.vp-page-nav .next{text-align:end}.vp-page-nav .next .icon{margin-inline-start:.25em;font-size:1em}.vp-page-nav .next img.icon{vertical-align:-.125em;height:1em}.page-author-item{display:inline-block;margin:0 4px;font-weight:400;overflow-wrap:break-word}.page-category-info{flex-wrap:wrap}.page-category-item{display:inline-block;margin:.125em .25em;padding:0 .25em;border-radius:.25em;background:var(--bg-color-secondary);color:var(--text-color-light);font-weight:700;font-size:.75rem;line-height:2;transition:background var(--color-transition),color var(--color-transition)}@media print{.page-category-item{padding:0;font-weight:400}.page-category-item:after{content:", "}.page-category-item:last-of-type:after{content:""}}.page-category-item.clickable>span:hover{color:var(--theme-color);cursor:pointer}.page-category-item.category0{background:#fde5e7;color:#ec2f3e}html[data-theme=dark] .page-category-item.category0{background:#340509;color:#ba111f}.page-category-item.category0:hover{background:#f9bec3}html[data-theme=dark] .page-category-item.category0:hover{background:#53080e}.page-category-item.category1{background:#ffeee8;color:#fb7649}html[data-theme=dark] .page-category-item.category1{background:#441201;color:#f54205}.page-category-item.category1:hover{background:#fed4c6}html[data-theme=dark] .page-category-item.category1:hover{background:#6d1d02}.page-category-item.category2{background:#fef5e7;color:#f5b041}html[data-theme=dark] .page-category-item.category2{background:#3e2703;color:#e08e0b}.page-category-item.category2:hover{background:#fce6c4}html[data-theme=dark] .page-category-item.category2:hover{background:#633f05}.page-category-item.category3{background:#eafaf1;color:#55d98d}html[data-theme=dark] .page-category-item.category3{background:#0c331c;color:#29b866}.page-category-item.category3:hover{background:#caf3db}html[data-theme=dark] .page-category-item.category3:hover{background:#12522d}.page-category-item.category4{background:#e6f9ee;color:#36d278}html[data-theme=dark] .page-category-item.category4{background:#092917;color:#219552}.page-category-item.category4:hover{background:#c0f1d5}html[data-theme=dark] .page-category-item.category4:hover{background:#0f4224}.page-category-item.category5{background:#e1fcfc;color:#16e1e1}html[data-theme=dark] .page-category-item.category5{background:#042929;color:#0e9595}.page-category-item.category5:hover{background:#b4f8f8}html[data-theme=dark] .page-category-item.category5:hover{background:#064242}.page-category-item.category6{background:#e4f0fe;color:#2589f6}html[data-theme=dark] .page-category-item.category6{background:#021b36;color:#0862c3}.page-category-item.category6:hover{background:#bbdafc}html[data-theme=dark] .page-category-item.category6:hover{background:#042c57}.page-category-item.category7{background:#f7f1fd;color:#bb8ced}html[data-theme=dark] .page-category-item.category7{background:#2a0b4b;color:#9851e4}.page-category-item.category7:hover{background:#eadbfa}html[data-theme=dark] .page-category-item.category7:hover{background:#431277}.page-category-item.category8{background:#fdeaf5;color:#ef59ab}html[data-theme=dark] .page-category-item.category8{background:#400626;color:#e81689}.page-category-item.category8:hover{background:#facbe5}html[data-theme=dark] .page-category-item.category8:hover{background:#670a3d}.page-original-info{position:relative;display:inline-block;vertical-align:middle;overflow:hidden;padding:0 .5em;border:.5px solid var(--dark-grey);border-radius:.75em;background:var(--bg-color);font-size:.75em;line-height:1.5!important}.page-tag-info{flex-wrap:wrap}.page-tag-item{position:relative;display:inline-block;vertical-align:middle;overflow:hidden;min-width:1.5rem;margin:.125rem;padding:.125rem .25rem .125rem .625rem;background:var(--bg-color-secondary);background:linear-gradient(135deg,transparent .75em,var(--bg-color-secondary) 0) top,linear-gradient(45deg,transparent .75em,var(--bg-color-secondary) 0) bottom;background-size:100% 52%!important;background-repeat:no-repeat!important;color:var(--text-color-light);font-weight:700;font-size:.625rem;line-height:1.5;text-align:center;transition:background var(--color-transition),color var(--color-transition)}@media print{.page-tag-item{padding:0;font-weight:400}.page-tag-item:after{content:", "}.page-tag-item:last-of-type:after{content:""}}.page-tag-item.clickable:hover{cursor:pointer}.page-tag-item.tag0{background:#fde5e7;background:linear-gradient(135deg,transparent .75em,#fde5e7 0) top,linear-gradient(45deg,transparent .75em,#fde5e7 0) bottom;color:#ec2f3e}html[data-theme=dark] .page-tag-item.tag0{background:#340509;background:linear-gradient(135deg,transparent .75em,#340509 0) top,linear-gradient(45deg,transparent .75em,#340509 0) bottom;color:#ba111f}.page-tag-item.tag0.clickable:hover{background:#f9bec3;background:linear-gradient(135deg,transparent .75em,#f9bec3 0) top,linear-gradient(45deg,transparent .75em,#f9bec3 0) bottom}html[data-theme=dark] .page-tag-item.tag0.clickable:hover{background:#53080e;background:linear-gradient(135deg,transparent .75em,#53080e 0) top,linear-gradient(45deg,transparent .75em,#53080e 0) bottom}.page-tag-item.tag1{background:#ffeee8;background:linear-gradient(135deg,transparent .75em,#ffeee8 0) top,linear-gradient(45deg,transparent .75em,#ffeee8 0) bottom;color:#fb7649}html[data-theme=dark] .page-tag-item.tag1{background:#441201;background:linear-gradient(135deg,transparent .75em,#441201 0) top,linear-gradient(45deg,transparent .75em,#441201 0) bottom;color:#f54205}.page-tag-item.tag1.clickable:hover{background:#fed4c6;background:linear-gradient(135deg,transparent .75em,#fed4c6 0) top,linear-gradient(45deg,transparent .75em,#fed4c6 0) bottom}html[data-theme=dark] .page-tag-item.tag1.clickable:hover{background:#6d1d02;background:linear-gradient(135deg,transparent .75em,#6d1d02 0) top,linear-gradient(45deg,transparent .75em,#6d1d02 0) bottom}.page-tag-item.tag2{background:#fef5e7;background:linear-gradient(135deg,transparent .75em,#fef5e7 0) top,linear-gradient(45deg,transparent .75em,#fef5e7 0) bottom;color:#f5b041}html[data-theme=dark] .page-tag-item.tag2{background:#3e2703;background:linear-gradient(135deg,transparent .75em,#3e2703 0) top,linear-gradient(45deg,transparent .75em,#3e2703 0) bottom;color:#e08e0b}.page-tag-item.tag2.clickable:hover{background:#fce6c4;background:linear-gradient(135deg,transparent .75em,#fce6c4 0) top,linear-gradient(45deg,transparent .75em,#fce6c4 0) bottom}html[data-theme=dark] .page-tag-item.tag2.clickable:hover{background:#633f05;background:linear-gradient(135deg,transparent .75em,#633f05 0) top,linear-gradient(45deg,transparent .75em,#633f05 0) bottom}.page-tag-item.tag3{background:#eafaf1;background:linear-gradient(135deg,transparent .75em,#eafaf1 0) top,linear-gradient(45deg,transparent .75em,#eafaf1 0) bottom;color:#55d98d}html[data-theme=dark] .page-tag-item.tag3{background:#0c331c;background:linear-gradient(135deg,transparent .75em,#0c331c 0) top,linear-gradient(45deg,transparent .75em,#0c331c 0) bottom;color:#29b866}.page-tag-item.tag3.clickable:hover{background:#caf3db;background:linear-gradient(135deg,transparent .75em,#caf3db 0) top,linear-gradient(45deg,transparent .75em,#caf3db 0) bottom}html[data-theme=dark] .page-tag-item.tag3.clickable:hover{background:#12522d;background:linear-gradient(135deg,transparent .75em,#12522d 0) top,linear-gradient(45deg,transparent .75em,#12522d 0) bottom}.page-tag-item.tag4{background:#e6f9ee;background:linear-gradient(135deg,transparent .75em,#e6f9ee 0) top,linear-gradient(45deg,transparent .75em,#e6f9ee 0) bottom;color:#36d278}html[data-theme=dark] .page-tag-item.tag4{background:#092917;background:linear-gradient(135deg,transparent .75em,#092917 0) top,linear-gradient(45deg,transparent .75em,#092917 0) bottom;color:#219552}.page-tag-item.tag4.clickable:hover{background:#c0f1d5;background:linear-gradient(135deg,transparent .75em,#c0f1d5 0) top,linear-gradient(45deg,transparent .75em,#c0f1d5 0) bottom}html[data-theme=dark] .page-tag-item.tag4.clickable:hover{background:#0f4224;background:linear-gradient(135deg,transparent .75em,#0f4224 0) top,linear-gradient(45deg,transparent .75em,#0f4224 0) bottom}.page-tag-item.tag5{background:#e1fcfc;background:linear-gradient(135deg,transparent .75em,#e1fcfc 0) top,linear-gradient(45deg,transparent .75em,#e1fcfc 0) bottom;color:#16e1e1}html[data-theme=dark] .page-tag-item.tag5{background:#042929;background:linear-gradient(135deg,transparent .75em,#042929 0) top,linear-gradient(45deg,transparent .75em,#042929 0) bottom;color:#0e9595}.page-tag-item.tag5.clickable:hover{background:#b4f8f8;background:linear-gradient(135deg,transparent .75em,#b4f8f8 0) top,linear-gradient(45deg,transparent .75em,#b4f8f8 0) bottom}html[data-theme=dark] .page-tag-item.tag5.clickable:hover{background:#064242;background:linear-gradient(135deg,transparent .75em,#064242 0) top,linear-gradient(45deg,transparent .75em,#064242 0) bottom}.page-tag-item.tag6{background:#e4f0fe;background:linear-gradient(135deg,transparent .75em,#e4f0fe 0) top,linear-gradient(45deg,transparent .75em,#e4f0fe 0) bottom;color:#2589f6}html[data-theme=dark] .page-tag-item.tag6{background:#021b36;background:linear-gradient(135deg,transparent .75em,#021b36 0) top,linear-gradient(45deg,transparent .75em,#021b36 0) bottom;color:#0862c3}.page-tag-item.tag6.clickable:hover{background:#bbdafc;background:linear-gradient(135deg,transparent .75em,#bbdafc 0) top,linear-gradient(45deg,transparent .75em,#bbdafc 0) bottom}html[data-theme=dark] .page-tag-item.tag6.clickable:hover{background:#042c57;background:linear-gradient(135deg,transparent .75em,#042c57 0) top,linear-gradient(45deg,transparent .75em,#042c57 0) bottom}.page-tag-item.tag7{background:#f7f1fd;background:linear-gradient(135deg,transparent .75em,#f7f1fd 0) top,linear-gradient(45deg,transparent .75em,#f7f1fd 0) bottom;color:#bb8ced}html[data-theme=dark] .page-tag-item.tag7{background:#2a0b4b;background:linear-gradient(135deg,transparent .75em,#2a0b4b 0) top,linear-gradient(45deg,transparent .75em,#2a0b4b 0) bottom;color:#9851e4}.page-tag-item.tag7.clickable:hover{background:#eadbfa;background:linear-gradient(135deg,transparent .75em,#eadbfa 0) top,linear-gradient(45deg,transparent .75em,#eadbfa 0) bottom}html[data-theme=dark] .page-tag-item.tag7.clickable:hover{background:#431277;background:linear-gradient(135deg,transparent .75em,#431277 0) top,linear-gradient(45deg,transparent .75em,#431277 0) bottom}.page-tag-item.tag8{background:#fdeaf5;background:linear-gradient(135deg,transparent .75em,#fdeaf5 0) top,linear-gradient(45deg,transparent .75em,#fdeaf5 0) bottom;color:#ef59ab}html[data-theme=dark] .page-tag-item.tag8{background:#400626;background:linear-gradient(135deg,transparent .75em,#400626 0) top,linear-gradient(45deg,transparent .75em,#400626 0) bottom;color:#e81689}.page-tag-item.tag8.clickable:hover{background:#facbe5;background:linear-gradient(135deg,transparent .75em,#facbe5 0) top,linear-gradient(45deg,transparent .75em,#facbe5 0) bottom}html[data-theme=dark] .page-tag-item.tag8.clickable:hover{background:#670a3d;background:linear-gradient(135deg,transparent .75em,#670a3d 0) top,linear-gradient(45deg,transparent .75em,#670a3d 0) bottom}.page-info{display:flex;flex-wrap:wrap;align-items:center;place-content:stretch flex-start;color:var(--dark-grey);font-size:14px}@media print{.page-info{display:flex!important}}.page-info>span{display:flex;align-items:center;max-width:100%;margin-inline-end:.5em;line-height:2}@media (min-width: 1440px){.page-info>span{font-size:1.1em}}@media (max-width: 419px){.page-info>span{margin-inline-end:.3em;font-size:.875em}}@media print{.page-info>span{display:flex!important}}.page-info .icon{position:relative;display:inline-block;vertical-align:middle;width:1em;height:1em;margin-inline-end:.25em}.page-info a{color:inherit}.page-info a:hover,.page-info a:active{color:var(--theme-color)}.vp-page-title{max-width:var(--content-width, 740px);margin-inline:auto;padding-inline:2.5rem;position:relative;z-index:1;padding-top:1rem;padding-bottom:0}@media (max-width: 959px){.vp-page-title{padding-inline:1.5rem}}@media print{.vp-page-title{max-width:unset}}@media print{.vp-page-title{padding-inline:0!important}}@media (max-width: 959px){.vp-page-title{padding-top:.5rem}}.vp-page-title h1{margin-top:calc(0px - var(--navbar-height))!important;margin-bottom:1rem;padding-top:var(--navbar-height)!important;font-size:2.2rem}@media (max-width: 959px){.vp-page-title h1{margin-bottom:.5rem}}.vp-page-title h1 .icon{margin-inline-end:.25em;color:var(--theme-color);font-size:.9em}.vp-page-title h1 img.icon{vertical-align:-.125em;height:1em}.theme-hope-content:not(.custom){padding-top:0!important}.theme-hope-content:not(.custom) h1:first-child,.theme-hope-content:not(.custom) h2:first-child,.theme-hope-content:not(.custom) h3:first-child,.theme-hope-content:not(.custom) h4:first-child,.theme-hope-content:not(.custom) h5:first-child,.theme-hope-content:not(.custom) h6:first-child{margin-top:calc(.5rem - var(--navbar-height))!important;padding-top:var(--navbar-height)!important}.theme-hope-content:not(.custom)>h1:first-child{display:none}.page-meta{max-width:var(--content-width, 740px);margin-inline:auto;padding-inline:2.5rem;display:flex;flex-wrap:wrap;justify-content:space-between;overflow:auto;padding-top:.75rem;padding-bottom:.75rem}@media (max-width: 959px){.page-meta{padding-inline:1.5rem}}@media print{.page-meta{max-width:unset}}@media print{.page-meta{margin:0!important;padding-inline:0!important}}@media (max-width: 719px){.page-meta{display:block}}.page-meta .meta-item{flex-grow:1}.page-meta .meta-item .label{font-weight:500}.page-meta .meta-item .label:not(a){color:var(--text-color-lighter)}.page-meta .meta-item .info{color:var(--dark-grey);font-weight:400}.page-meta .git-info{text-align:end}.page-meta .edit-link{margin-top:.25rem;margin-bottom:.25rem;margin-inline-end:.5rem;font-size:14px}@media print{.page-meta .edit-link{display:none}}.page-meta .edit-link .icon{position:relative;bottom:-.125em;width:1em;height:1em;margin-inline-end:.25em}.page-meta .update-time,.page-meta .contributors{margin-top:.25rem;margin-bottom:.25rem;font-size:14px}@media (max-width: 719px){.page-meta .update-time,.page-meta .contributors{font-size:13px;text-align:start}}.print-button{border-width:0;background:transparent;cursor:pointer;box-sizing:content-box;width:1rem;height:1rem;padding:.5rem;border-radius:.25em;color:inherit;font-size:1rem;transform:translateY(.25rem)}@media print{.print-button{display:none}}.toc-place-holder{margin-inline:auto;padding-inline:2.5rem;position:sticky;top:calc(var(--navbar-height) + 2rem);z-index:99;max-width:var(--content-width, 740px)}@media (max-width: 959px){.toc-place-holder{padding-inline:1.5rem}}@media print{.toc-place-holder{max-width:unset}}.toc-place-holder+.theme-hope-content:not(.custom){padding-top:0}#toc{position:absolute;inset-inline-start:calc(100% + 1rem);display:none;min-width:10rem;max-width:15rem}@media (min-width: 1440px){.has-toc #toc{display:block}}@media print{#toc{display:none!important}}#toc .toc-header{margin-bottom:.75rem;margin-inline-start:.5rem;font-weight:600;font-size:.875rem}#toc .toc-wrapper{position:relative;overflow:hidden auto;max-height:75vh;margin:0 .5rem;padding-inline-start:8px;text-overflow:ellipsis;white-space:nowrap;scroll-behavior:smooth}#toc .toc-wrapper::-webkit-scrollbar-track-piece{background:transparent}#toc .toc-wrapper::-webkit-scrollbar{width:3px}#toc .toc-wrapper::-webkit-scrollbar-thumb:vertical{background:#ddd}html[data-theme=dark] #toc .toc-wrapper::-webkit-scrollbar-thumb:vertical{background:#333}#toc .toc-wrapper:before{content:" ";position:absolute;top:0;bottom:0;inset-inline-start:0;z-index:-1;width:2px;background:var(--border-color)}#toc .toc-list{position:relative;margin:0;padding:0}#toc .toc-marker{content:" ";position:absolute;top:0;inset-inline-start:-8px;z-index:2;width:2px;height:1.7rem;background:var(--theme-color);transition:top var(--vp-tt)}#toc .toc-link{position:relative;display:block;overflow:hidden;max-width:100%;color:var(--light-grey);line-height:inherit;text-overflow:ellipsis;white-space:nowrap}#toc .toc-link.level2{padding-inline-start:0px;font-size:14px}#toc .toc-link.level3{padding-inline-start:8px;font-size:13px}#toc .toc-link.level4{padding-inline-start:16px;font-size:12px}#toc .toc-link.level5{padding-inline-start:24px;font-size:11px}#toc .toc-link.level6{padding-inline-start:32px;font-size:10px}#toc .toc-item{position:relative;box-sizing:border-box;height:1.7rem;padding:0 .5rem;list-style:none;line-height:1.7rem}#toc .toc-item:hover>.toc-link{color:var(--theme-color)}#toc .toc-item.active>.toc-link{color:var(--theme-color);font-weight:700}.vp-page{display:block;flex-grow:1;padding-bottom:2rem;transition:padding var(--transform-transition)}@media print{.vp-page{min-height:auto!important;margin:0!important;padding:0!important}}.page-cover{width:var(--content-width);margin-inline:auto}@media (max-width: 719px){.page-cover{width:100%}}.page-cover img{-o-object-fit:cover;object-fit:cover;width:100%;max-height:25vh;border-radius:.5rem}@media (max-width: 719px){.page-cover img{border-radius:0}}.vp-skip-link{top:.25rem;inset-inline-start:.25rem;z-index:999;padding:.65rem 1.5rem;border-radius:.5rem;background:var(--bg-color);color:var(--theme-color);box-shadow:var(--card-shadow);font-weight:700;font-size:.9em;text-decoration:none}@media print{.vp-skip-link{display:none}}.vp-skip-link:focus{clip:auto;width:auto;height:auto;-webkit-clip-path:none;clip-path:none}.fade-slide-y-enter-active{transition:all .3s ease!important}.fade-slide-y-leave-active{transition:all .3s cubic-bezier(1,.5,.8,1)!important}.fade-slide-y-enter-from,.fade-slide-y-leave-to{opacity:0;transform:translateY(10px)}.not-found-hint{padding:2rem}.not-found-hint .error-code{margin:0;font-weight:700;font-size:4rem;line-height:4rem}.not-found-hint .error-title{font-weight:700}.not-found-hint .error-hint{margin:0;padding:12px 0;font-weight:600;font-size:20px;line-height:20px;letter-spacing:2px}.vp-page.not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;width:100vw;max-width:var(--home-page-width);margin:0 auto;padding:calc(var(--navbar-height) + 1rem) 1rem 1rem!important;text-align:center}.vp-page.not-found .action-button{display:inline-block;box-sizing:border-box;margin:.25rem;padding:.75rem 1rem;border-width:0;border-bottom:1px solid var(--theme-color-dark);border-radius:3rem;background:var(--theme-color);color:var(--white);outline:none;font-size:1rem;transition:background .1s ease}.vp-page.not-found .action-button:hover{background:var(--theme-color-light);cursor:pointer}:root{--navbar-bg-color: var(--bg-color-float-blur);--sidebar-bg-color: var(--bg-color-blur)}html[data-theme=dark]{--navbar-bg-color: var(--bg-color-blur);--sidebar-bg-color: var(--bg-color-blur)}#app{--code-hl-bg-color: var(--code-highlight-line-color);--code-ln-color: var(--code-line-color);--code-ln-wrapper-width: var(--line-numbers-width);--code-tabs-nav-text-color: var(--code-color);--code-tabs-nav-bg-color: var(--code-border-color);--code-tabs-nav-hover-color: var(--code-highlight-line-color);--sidebar-space: var(--sidebar-width)}@media (max-width: 959px){#app{--navbar-height: var(--navbar-mobile-height);--navbar-vertical-padding: var(--navbar-mobile-vertical-padding);--navbar-horizontal-padding: var(--navbar-mobile-horizontal-padding);--sidebar-width: var(--sidebar-mobile-width)}}@media (min-width: 1440px){#app{--sidebar-space: clamp( var(--sidebar-width), max(0px, calc((100vw - var(--content-width)) / 2 - 2rem)) , 100vw )}}.DocSearch-Button,.DocSearch{--docsearch-primary-color: var(--vp-tc);--docsearch-text-color: var(--vp-c);--docsearch-highlight-color: var(--vp-tc);--docsearch-muted-color: var(--light-grey);--docsearch-container-background: rgb(9 10 17 / 80%);--docsearch-modal-background: var(--bg-color-float);--docsearch-searchbox-background: var(--bg-color-secondary);--docsearch-searchbox-focus-background: var(--vp-bg);--docsearch-searchbox-shadow: inset 0 0 0 2px var(--vp-tc);--docsearch-hit-color: var(--vp-cl);--docsearch-hit-active-color: var(--vp-bg);--docsearch-hit-background: var(--vp-bg);--docsearch-hit-shadow: 0 1px 3px 0 var(--border-color);--docsearch-footer-background: var(--vp-bg)}html[data-theme=dark] .DocSearch-Button,html[data-theme=dark] .DocSearch{--docsearch-logo-color: var(--vp-c);--docsearch-modal-shadow: inset 1px 1px 0 0 #2c2e40, 0 3px 8px 0 #000309;--docsearch-key-shadow: inset 0 -2px 0 0 #282d55, inset 0 0 1px 1px #51577d, 0 2px 2px 0 rgb(3 4 9 / 30%);--docsearch-key-gradient: linear-gradient(-225deg, #444950, #1c1e21);--docsearch-footer-shadow: inset 0 1px 0 0 rgb(73 76 106 / 50%), 0 -4px 8px 0 rgb(0 0 0 / 20%)}#nprogress{--nprogress-color: var(--vp-tc)}.search-box{--search-bg-color: var(--vp-bg);--search-accent-color: var(--vp-tc);--search-text-color: var(--vp-c);--search-border-color: var(--border-color);--search-item-text-color: var(--vp-clt);--search-item-focus-bg-color: var(--bg-color-secondary)}.external-link-icon{--external-link-icon-color: var(--light-grey)}html,body{margin:0;padding:0;background:#fff}html{font-size:16px;font-display:optional;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}@media print{html{font-size:12pt}}body{min-height:100vh;color:#2c3e50}a{color:#3eaf7c;font-weight:500;text-decoration:none;overflow-wrap:break-word}kbd{display:inline-block;min-width:1em;margin-inline:.125rem;padding:.25em;border:1px solid #eee;border-radius:.25em;box-shadow:1px 1px 4px #00000026;line-height:1;letter-spacing:-.1em;text-align:center}code{margin:0;padding:.2rem .4rem;border-radius:5px;background:#7f7f7f1f;font-size:.85em;overflow-wrap:break-word}table code{padding:.1rem .4rem}p a code{color:#3eaf7c;font-weight:400}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:500;line-height:1.25;overflow-wrap:break-word}h1:focus-visible,h2:focus-visible,h3:focus-visible,h4:focus-visible,h5:focus-visible,h6:focus-visible{outline:none}h1{font-size:2rem}h2{padding-bottom:.3rem;border-bottom:1px solid #eaecef;font-size:1.65rem}h3{font-size:1.35rem}h4{font-size:1.15rem}h5{font-size:1.05rem}h6{font-size:1rem}a.header-anchor{position:relative;color:inherit}a.header-anchor:hover:before{content:"¶";position:absolute;bottom:0;left:-.75em;color:var(--c-brand);font-size:.75em}a.header-anchor:focus-visible{outline:none}a.header-anchor:focus-visible:before{content:"¶";position:absolute;left:-.75em;color:var(--c-brand);outline:auto}p,ul,ol{line-height:1.6;overflow-wrap:break-word}@media print{p,ul,ol{line-height:1.5}}ul,ol{padding-inline-start:1.2em}blockquote{margin:1rem 0;padding:.25rem 0 .25rem 1rem;border-inline-start:.2rem solid #ddd;color:#666;font-size:1rem;overflow-wrap:break-word}blockquote>p{margin:0}hr{border:0;border-top:1px solid #eaecef}table{display:block;overflow-x:auto;margin:1rem 0;border-collapse:collapse}tr:nth-child(odd){background:#f6f8fa}th,td{padding:.6em 1em;border:1px solid #dfe2e5}pre{direction:ltr}@page{margin:2cm;font-size:12pt;size:a4}@media print{*,:after,:before{box-shadow:none!important;text-shadow:none!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}a{color:inherit;font-weight:inherit!important;font-size:inherit!important;text-decoration:underline}a[href^="http://"]:after,a[href^="https://"]:after{content:" (" attr(href) ") "}abbr[title]:after{content:" (" attr(title) ")"}pre{border:1px solid #eee;white-space:pre-wrap!important}pre>code{white-space:pre-wrap!important}blockquote{border-inline-start:.2rem solid #ddd;color:inherit}blockquote,pre{orphans:5;widows:5}img,tr,canvas{page-break-inside:avoid}}@font-face{font-weight:400;font-style:normal;font-family:Crimson;src:url(data:font/truetype;charset=utf-8;base64,AAEAAAANAIAAAwBQRkZUTYr5mwEAAAyMAAAAHEdERUYAKQATAAAMbAAAAB5PUy8yVsJ0MgAAAVgAAABgY21hcBiKDzgAAAHcAAABWGdhc3D//wADAAAMZAAAAAhnbHlmr+DBdQAAA1AAAAdsaGVhZBZwt+8AAADcAAAANmhoZWEFawEuAAABFAAAACRobXR4BksA9gAAAbgAAAAibG9jYQlsC24AAAM0AAAAHG1heHAAEQBZAAABOAAAACBuYW1lLaFDVAAACrwAAAFrcG9zdAC1AHoAAAwoAAAAPAABAAAAAQAAqBd2H18PPPUACwQAAAAAANqqufwAAAAA2qq5/AAb/9wB4QMeAAAACAACAAAAAAAAAAEAAAMs/ywAXAH9AAAAAAHhAAEAAAAAAAAAAAAAAAAAAAAEAAEAAAANAFkAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAH1AZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAIABgMAAAAAAAAAAAABEAAAAAAAAAAAAAAAUGZFZADAADAAOQMs/ywAXAMsANQAAAABAAAAAAMYAAAAAAAgAAEBpwAfAAAAAAFVAAAB/QAfAH0ALQA+ABsAPgAyACgAPgAxAAAAAAADAAAAAwAAABwAAQAAAAAAUgADAAEAAAAcAAQANgAAAAQABAABAAAAOf//AAAAL///AAAAAQAEAAAAAAADAAQABQAGAAcACAAJAAoACwAMAAABBgAAAQAAAAAAAAABAgAAAAIAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAwQFBgcICQoLDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAJgAmAGIAwAEeAZIBzgJAApYC2gNiA7YAAQAf/9wBhwMeABIAAAEGBwYHATAXFjM2NzY3ASYnJjcBgxwLCgH+zgMECxIKCgIBLgEDAwMDHhQFBgP85wMEAQgJBgMOAwMDEwAAAAIAH//9Ad0CkAAQACEAABMWFxYXNjc2NzQnJicGBwYHNyY3NjcWFxYXFAcGByYnJjcfATo6amo7OQE5OmxrOjkBXQIlJEE5IyIBIyJEOSQjAgFOkV5eBAReXoqJXl4EBF5eggJ0UlEDA09Qe3xVVgMDU1OEAAAAAAEAff/9AYACkQA+AAA3FAcGBwYHBiMGFQYXNjc2MzIXFhc2JzQnIicmJyY1JjURNjc2MSYnJicjBgcGBwYVFBUUFxYXNjc2NzIXFhXkAQEEBRgYDAMBBB4ZGhweGxofBAEDDBgZBQQBAQMEAQIDBAIFNTZCAgMDBA0XFw0LBQV3GBMVDAgEBAUKCgUCAQICAQIFCgoFBAQIDBUTGAGnLxkbBAYFAQIZGh4BAgECBQUEAwUHBwEICRYAAAAAAQAtAAAB0QKRADoAADcGFxYXITY3NjcmJyYjIgcGBwYHBisBNjc2NzY3NjUmJyYnBgcGBxQXFhc2NzY3FhcWFxYHBgcGBwYHLgEEAwMBYwURERADBwYFBAMDAg8VEx/LJkBAOhsQDwIxMkxSMjIHCAYGCSYmPTIfHwEBCgoeLkJBQg8EBQQCETAwKQICAgEBBCgUEylJSUYhJicsRDIzAgY1NRoEBQYBEyEhAwEjIjYlJCQtQlBQSAAAAAABAD7/+wG+ApEASgAANwYXFhcWFxYzNjc2NyYnJic2NzY3JicmIwYHBgcUFxYXNjc2NxYXFhcGBwYHBgcUFRQXNjc2NxYXFhcGBwYnIicmJyYnJiciBwYXPwEIBwUaHB0VZU5NBAMvLi8eIB4DAywsKzwrKxgEAwUIHR4wLRscAQMvLz8BAQYKEhEQNSYmAgImJSsWExQPCw0NFREMDQE7DgsLBQwFBgE8PWpMKSoGECQkMkAiIQIdHyUHBwcBCRscAwEbGSpCIyUOAgMCAwwIAwUEAQEoKD9XJSQBBQYODg8PAQ0NFQAAAgAb//oB4QKTACIAJQAANxQXFhchFRQXFjMyNzYjNTM2NzY1NCcmJyMRNCcmIwYHBgcBExEbAgMFASEJCRIdCAkBRgIBAQUEBTwFAwgHCQkG/vjmxgUGBgOwBQIBAwKzAgQDCBAMDQEBlAYGBgEICQf+cwEs/tQAAQA+//sBvgKTAEoAADcGFxYXFhcWMzY3NjcmJyYnIgcGBzY3NjczMjc2NzY3NjU0JyYnBgcGByMGBwYHFBcWMzY3NjMWFxYHBgcGJyInJicmJyYnIgcGFz8BCAcFGhwdFWVOTQQBMjJbFx8gFwoJCQlWKB0dFQ4JCAQDBQMdHSKXCREQEgMCBA4bGhNYJyUBAiYlKxYTFA8LDQ0VEQwNATsOCwsFDAUGATw9akU2NwMFBggrMC8uAgICExcZBgQCAgMBAwQBMVNUWAUFBAYFBAMxMTNZIyQBBQYODg8PAQ0NFQAAAgAy//oBzQKXACAAMwAANxQXFhc2NzY3NicmJyIHBgc2NzY3NCcmJwYHBgcGBwYXNyY3Njc2FxYXFgcGBwYHJicmNzM1NV5aOTsCAioqahoiIRsnWFhFAwIHQ0tMOTAZGQFbBAQaGxkXRB8fAQEfIDE9Hh4E511FRwQDPT1ZPEJBBQwLF4Y9PRMGCwwBEiwsPDZFRkkTHyAbCAcBAjAwREYsLQEFREVQAAAAAAEAKP/7AdUCiwApAAATFhcWMzI3Njc2NzYzIQYHBgcWFxYzMjcBNjc2NzQnJiMiBwYjIQYHBgcoAwYHAwYDAwELEBEdAQUJYWJXAQ8PDgcDAQ4LCQgBAQEEBhUVFv7JBgsNDAH6DQMCAQEFKRITFMjHjQcFBgMCPxYSEwoEAgMBAhkrKiAAAAADAD7/9wG/ApIAKABBAFgAADcGFxYXNjc2NyYnJicmJzQ3Njc2NyYnJiMGBwYHFhcWFxYVFAcGBwYHNyY3Njc2MzIzMhcyFxYXFhcGBwYHIicmNxMmNzY3FhcWFRQHBgcGByIjIicmJyY3PwE1M1ZQODgDAykpMQIBAyYlJQMCMC9HRjExAgIiIiMCAiMvLwNTBBQTKgEBAQECAQIBEjU1CAEdHjMrISICGAMYGSYvGxoTEx8CAQIBBAMfJCQBoU8tLQECMjFPOC4uGwIBAgEWJiU7SCYoAjEwQzopKhMBAgECEykpQAQsIiEbAQEBBywsQjUeHQEiI0QBZSMhIAECJiYvKh8gFAEBAhAfIEYAAAIAMf/6AcsClwAgADMAABMGFxYXMjc2NwYHBgcUFxYXNjc2NzY3NjUmJyYnBgcGBzcmNzY3FhcWFRQHBgcGJyYnJjc0AyopahoiIRsoV1hFAwIHQ0tMODEZGQE2NF5ZOjoBWgMfHzE9Hh4EGhoaF0QeHwUBy0dBQgUMCxeFPj0SBwsLAREsLD01RkVPV0dFBQQ8PU8UPCwtAQVFRUklIRsHCAECMDBPAAAADACWAAEAAAAAAAEABwAQAAEAAAAAAAIABwAoAAEAAAAAAAMABwBAAAEAAAAAAAQABwBYAAEAAAAAAAUAHgCeAAEAAAAAAAYABwDNAAMAAQQJAAEADgAAAAMAAQQJAAIADgAYAAMAAQQJAAMADgAwAAMAAQQJAAQADgBIAAMAAQQJAAUAPABgAAMAAQQJAAYADgC9AEMAcgBpAG0AcwBvAG4AAENyaW1zb24AAEMAcgBpAG0AcwBvAG4AAENyaW1zb24AAEMAcgBpAG0AcwBvAG4AAENyaW1zb24AAEMAcgBpAG0AcwBvAG4AAENyaW1zb24AAFYAZQByAHMAaQBvAG4AIAAxAC4AMAA7ACAARgBvAG4AdABFAGQAaQB0AG8AcgAgACgAdgAxAC4AMAApAABWZXJzaW9uIDEuMDsgRm9udEVkaXRvciAodjEuMCkAAEMAcgBpAG0AcwBvAG4AAENyaW1zb24AAAACAAAAAAAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAABAAIAEwAUABUAFgAXABgAGQAaABsAHAAAAAH//wACAAEAAAAMAAAAFgAAAAIAAQADAAwAAQAEAAAAAgAAAAAAAAABAAAAANWkJwgAAAAA2qq5/AAAAADaqrn8) format("truetype")}html,body{background:var(--bg-color);transition:background var(--color-transition)}:root{color-scheme:light}html[data-theme=dark]{color-scheme:dark}body{color:var(--text-color);font-family:var(--font-family)}@media (min-width: 1440px){body{font-size:17px}}a{color:var(--theme-color)}kbd{border-color:var(--border-color-dark);background:var(--bg-color-secondary);font-family:var(--font-family-mono)}code{font-family:var(--font-family-mono);transition:background var(--color-transition),color var(--color-transition)}html[data-theme=dark] code{background:#333}p a code{color:var(--theme-color)}blockquote{border-color:#eee;color:#666;transition:border-color var(--color-transition),color var(--color-transition)}html[data-theme=dark] blockquote{border-color:#333}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-heading)}@media (max-width: 419px){h1{font-size:1.9rem}}h2{border-color:var(--border-color);transition:border-bottom-color var(--color-transition)}hr{border-color:var(--border-color);transition:border-top-color var(--color-transition)}tr:nth-child(odd){background:var(--bg-color-secondary)}th,td{border-color:var(--border-color-dark)}@media print{@page{--text-color: #000 !important;--bg-color: #fff !important}div[class*=language-]{position:relative!important}}.theme-hope-content pre{overflow:auto;margin:.85rem 0;padding:1rem;border-radius:6px;line-height:1.375}.theme-hope-content pre code{padding:0;border-radius:0;background:transparent!important;color:var(--code-color);font-family:var(--font-family-mono);text-align:left;white-space:pre;word-spacing:normal;word-wrap:normal;word-break:normal;overflow-wrap:unset;-webkit-hyphens:none;hyphens:none;transition:color var(--color-transition);-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}@media print{.theme-hope-content pre code{white-space:pre-wrap}}.theme-hope-content .line-number{font-family:var(--font-family-mono)}div[class*=language-]{position:relative;border-radius:6px;background:var(--code-bg-color);font-size:16px;transition:background var(--color-transition)}@media (max-width: 419px){.theme-hope-content>div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}div[class*=language-]:before{content:attr(data-title);position:absolute;top:0;right:1em;z-index:3;color:var(--code-line-color);font-size:.75rem;transition:color var(--color-transition)}div[class*=language-] pre{position:relative;z-index:1;scrollbar-gutter:stable}div[class*=language-] .highlight-lines{position:absolute;top:0;bottom:0;left:0;width:100%;padding:1rem 0;line-height:1.375;-webkit-user-select:none;-moz-user-select:none;user-select:none}div[class*=language-] .highlight-line{background:var(--code-highlight-line-color);transition:background var(--color-transition)}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;top:0;bottom:0;left:0;z-index:2;width:var(--line-numbers-width);border-right:1px solid var(--code-highlight-line-color);border-radius:6px 0 0 6px;transition:border-color var(--color-transition)}@media (max-width: 419px){div[class*=language-].line-numbers-mode:after{border-radius:0}}@media print{div[class*=language-].line-numbers-mode:after{display:none}}div[class*=language-].line-numbers-mode .highlight-line{position:relative}div[class*=language-].line-numbers-mode .highlight-line:before{content:" ";position:absolute;top:0;left:0;z-index:3;display:block;width:var(--line-numbers-width);height:100%}div[class*=language-].line-numbers-mode pre{vertical-align:middle;margin-left:var(--line-numbers-width);padding-left:.5rem}@media print{div[class*=language-].line-numbers-mode pre{margin-left:0;padding-left:1rem}}div[class*=language-].line-numbers-mode .line-numbers{position:absolute;top:0;bottom:0;left:0;display:flex;flex-direction:column;width:var(--line-numbers-width);padding:1rem 0;color:var(--code-line-color);counter-reset:line-number;text-align:center;transition:color var(--color-transition)}@media print{div[class*=language-].line-numbers-mode .line-numbers{display:none}}div[class*=language-].line-numbers-mode .line-number{position:relative;z-index:4;display:flex;flex:1;align-items:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-number:before{content:counter(line-number);display:block;font-size:.8em;line-height:1;counter-increment:line-number}div[class*=language-]:not(.line-numbers-mode) .line-numbers{display:none}html[data-theme=light] #app{--code-color: #383a42;--code-line-color: rgba(56, 58, 66, .67);--code-bg-color: #ecf4fa;--code-border-color: #c3def3;--code-highlight-line-color: #d8e9f6}html[data-theme=light] code[class*=language-],html[data-theme=light] pre[class*=language-]{-moz-tab-size:2;-o-tab-size:2;tab-size:2}html[data-theme=light] code[class*=language-]::-moz-selection,html[data-theme=light] code[class*=language-] ::-moz-selection,html[data-theme=light] pre[class*=language-]::-moz-selection,html[data-theme=light] pre[class*=language-] ::-moz-selection{background:#e5e5e6;color:inherit}html[data-theme=light] code[class*=language-]::selection,html[data-theme=light] code[class*=language-] ::selection,html[data-theme=light] pre[class*=language-]::selection,html[data-theme=light] pre[class*=language-] ::selection{background:#e5e5e6;color:inherit}html[data-theme=light] .token.comment,html[data-theme=light] .token.prolog,html[data-theme=light] .token.cdata{color:#a0a1a7}html[data-theme=light] .token.doctype,html[data-theme=light] .token.punctuation,html[data-theme=light] .token.entity{color:#383a42}html[data-theme=light] .token.attr-name,html[data-theme=light] .token.class-name,html[data-theme=light] .token.boolean,html[data-theme=light] .token.constant,html[data-theme=light] .token.number,html[data-theme=light] .token.atrule{color:#b76b01}html[data-theme=light] .token.keyword{color:#a626a4}html[data-theme=light] .token.property,html[data-theme=light] .token.tag,html[data-theme=light] .token.symbol,html[data-theme=light] .token.deleted,html[data-theme=light] .token.important{color:#e45649}html[data-theme=light] .token.selector,html[data-theme=light] .token.string,html[data-theme=light] .token.char,html[data-theme=light] .token.builtin,html[data-theme=light] .token.inserted,html[data-theme=light] .token.regex,html[data-theme=light] .token.attr-value,html[data-theme=light] .token.attr-value>.token.punctuation{color:#50a14f}html[data-theme=light] .token.variable,html[data-theme=light] .token.operator,html[data-theme=light] .token.function{color:#4078f2}html[data-theme=light] .token.url{color:#0184bc}html[data-theme=light] .token.attr-value>.token.punctuation.attr-equals,html[data-theme=light] .token.special-attr>.token.attr-value>.token.value.css{color:#383a42}html[data-theme=light] .language-css .token.selector{color:#e45649}html[data-theme=light] .language-css .token.property{color:#383a42}html[data-theme=light] .language-css .token.function,html[data-theme=light] .language-css .token.url>.token.function{color:#0184bc}html[data-theme=light] .language-css .token.url>.token.string.url{color:#50a14f}html[data-theme=light] .language-css .token.important,html[data-theme=light] .language-css .token.atrule .token.rule,html[data-theme=light] .language-javascript .token.operator{color:#a626a4}html[data-theme=light] .language-javascript .token.template-string>.token.interpolation>.token.interpolation-punctuation.punctuation{color:#ca1243}html[data-theme=light] .language-json .token.operator{color:#383a42}html[data-theme=light] .language-json .token.null.keyword{color:#b76b01}html[data-theme=light] .language-markdown .token.url,html[data-theme=light] .language-markdown .token.url>.token.operator,html[data-theme=light] .language-markdown .token.url-reference.url>.token.string{color:#383a42}html[data-theme=light] .language-markdown .token.url>.token.content{color:#4078f2}html[data-theme=light] .language-markdown .token.url>.token.url,html[data-theme=light] .language-markdown .token.url-reference.url{color:#0184bc}html[data-theme=light] .language-markdown .token.blockquote.punctuation,html[data-theme=light] .language-markdown .token.hr.punctuation{color:#a0a1a7;font-style:italic}html[data-theme=light] .language-markdown .token.code-snippet{color:#50a14f}html[data-theme=light] .language-markdown .token.bold .token.content{color:#b76b01}html[data-theme=light] .language-markdown .token.italic .token.content{color:#a626a4}html[data-theme=light] .language-markdown .token.strike .token.content,html[data-theme=light] .language-markdown .token.strike .token.punctuation,html[data-theme=light] .language-markdown .token.list.punctuation,html[data-theme=light] .language-markdown .token.title.important>.token.punctuation{color:#e45649}html[data-theme=light] .token.bold{font-weight:700}html[data-theme=light] .token.comment,html[data-theme=light] .token.italic{font-style:italic}html[data-theme=light] .token.entity{cursor:help}html[data-theme=light] .token.namespace{opacity:.8}html[data-theme=dark] #app{--code-color: #abb2bf;--code-line-color: rgba(171, 178, 191, .67);--code-bg-color: #282c34;--code-border-color: #343e51;--code-highlight-line-color: #2f3542}html[data-theme=dark] code[class*=language-],html[data-theme=dark] pre[class*=language-]{text-shadow:0 1px rgba(0,0,0,.3);-moz-tab-size:2;-o-tab-size:2;tab-size:2}@media print{html[data-theme=dark] code[class*=language-],html[data-theme=dark] pre[class*=language-]{text-shadow:none}}html[data-theme=dark] code[class*=language-]::-moz-selection,html[data-theme=dark] code[class*=language-] ::-moz-selection,html[data-theme=dark] pre[class*=language-]::-moz-selection,html[data-theme=dark] pre[class*=language-] ::-moz-selection{background:#3e4451;color:inherit;text-shadow:none}html[data-theme=dark] code[class*=language-]::selection,html[data-theme=dark] code[class*=language-] ::selection,html[data-theme=dark] pre[class*=language-]::selection,html[data-theme=dark] pre[class*=language-] ::selection{background:#3e4451;color:inherit;text-shadow:none}html[data-theme=dark] .token.comment,html[data-theme=dark] .token.prolog,html[data-theme=dark] .token.cdata{color:#5c6370}html[data-theme=dark] .token.doctype,html[data-theme=dark] .token.punctuation,html[data-theme=dark] .token.entity{color:#abb2bf}html[data-theme=dark] .token.attr-name,html[data-theme=dark] .token.class-name,html[data-theme=dark] .token.boolean,html[data-theme=dark] .token.constant,html[data-theme=dark] .token.number,html[data-theme=dark] .token.atrule{color:#d19a66}html[data-theme=dark] .token.keyword{color:#c678dd}html[data-theme=dark] .token.property,html[data-theme=dark] .token.tag,html[data-theme=dark] .token.symbol,html[data-theme=dark] .token.deleted,html[data-theme=dark] .token.important{color:#e06c75}html[data-theme=dark] .token.selector,html[data-theme=dark] .token.string,html[data-theme=dark] .token.char,html[data-theme=dark] .token.builtin,html[data-theme=dark] .token.inserted,html[data-theme=dark] .token.regex,html[data-theme=dark] .token.attr-value,html[data-theme=dark] .token.attr-value>.token.punctuation{color:#98c379}html[data-theme=dark] .token.variable,html[data-theme=dark] .token.operator,html[data-theme=dark] .token.function{color:#61afef}html[data-theme=dark] .token.url{color:#56b6c2}html[data-theme=dark] .token.attr-value>.token.punctuation.attr-equals,html[data-theme=dark] .token.special-attr>.token.attr-value>.token.value.css{color:#abb2bf}html[data-theme=dark] .language-css .token.selector{color:#e06c75}html[data-theme=dark] .language-css .token.property{color:#abb2bf}html[data-theme=dark] .language-css .token.function,html[data-theme=dark] .language-css .token.url>.token.function{color:#56b6c2}html[data-theme=dark] .language-css .token.url>.token.string.url{color:#98c379}html[data-theme=dark] .language-css .token.important,html[data-theme=dark] .language-css .token.atrule .token.rule,html[data-theme=dark] .language-javascript .token.operator{color:#c678dd}html[data-theme=dark] .language-javascript .token.template-string>.token.interpolation>.token.interpolation-punctuation.punctuation{color:#be5046}html[data-theme=dark] .language-json .token.operator{color:#abb2bf}html[data-theme=dark] .language-json .token.null.keyword{color:#d19a66}html[data-theme=dark] .language-markdown .token.url,html[data-theme=dark] .language-markdown .token.url>.token.operator,html[data-theme=dark] .language-markdown .token.url-reference.url>.token.string{color:#abb2bf}html[data-theme=dark] .language-markdown .token.url>.token.content{color:#61afef}html[data-theme=dark] .language-markdown .token.url>.token.url,html[data-theme=dark] .language-markdown .token.url-reference.url{color:#56b6c2}html[data-theme=dark] .language-markdown .token.blockquote.punctuation,html[data-theme=dark] .language-markdown .token.hr.punctuation{color:#5c6370;font-style:italic}html[data-theme=dark] .language-markdown .token.code-snippet{color:#98c379}html[data-theme=dark] .language-markdown .token.bold .token.content{color:#d19a66}html[data-theme=dark] .language-markdown .token.italic .token.content{color:#c678dd}html[data-theme=dark] .language-markdown .token.strike .token.content,html[data-theme=dark] .language-markdown .token.strike .token.punctuation,html[data-theme=dark] .language-markdown .token.list.punctuation,html[data-theme=dark] .language-markdown .token.title.important>.token.punctuation{color:#e06c75}html[data-theme=dark] .token.bold{font-weight:700}html[data-theme=dark] .token.comment,html[data-theme=dark] .token.italic{font-style:italic}html[data-theme=dark] .token.entity{cursor:help}html[data-theme=dark] .token.namespace{opacity:.8}.sr-only{position:absolute;overflow:hidden;clip:rect(0,0,0,0);width:1px;height:1px;margin:-1px;padding:0;border-width:0;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media print{.theme-hope-content{margin:0!important;padding-inline:0!important}}.theme-hope-content.custom{margin:0;padding:0}.theme-hope-content:not(.custom){max-width:var(--content-width, 740px);margin:0 auto;padding:2rem 2.5rem;padding-top:0}@media (max-width: 959px){.theme-hope-content:not(.custom){padding:1.5rem}}@media (max-width: 419px){.theme-hope-content:not(.custom){padding:1rem 1.5rem}}@media print{.theme-hope-content:not(.custom){max-width:unset}}.theme-hope-content:not(.custom)>h1,.theme-hope-content:not(.custom)>h2,.theme-hope-content:not(.custom)>h3,.theme-hope-content:not(.custom)>h4,.theme-hope-content:not(.custom)>h5,.theme-hope-content:not(.custom)>h6{margin-top:calc(.5rem - var(--navbar-height));margin-bottom:.5rem;padding-top:calc(1rem + var(--navbar-height));outline:none}.theme-container.no-navbar .theme-hope-content:not(.custom)>h1,.theme-container.no-navbar .theme-hope-content:not(.custom)>h2,.theme-container.no-navbar .theme-hope-content:not(.custom)>h3,.theme-container.no-navbar .theme-hope-content:not(.custom)>h4,.theme-container.no-navbar .theme-hope-content:not(.custom)>h5,.theme-container.no-navbar .theme-hope-content:not(.custom)>h6{margin-top:1.5rem;padding-top:0}.theme-hope-content:not(.custom)>p,.theme-hope-content:not(.custom)>ul p,.theme-hope-content:not(.custom)>ol p{text-align:justify;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}@media (max-width: 419px){.theme-hope-content:not(.custom)>p,.theme-hope-content:not(.custom)>ul p,.theme-hope-content:not(.custom)>ol p{text-align:start}}@media print{.theme-hope-content:not(.custom)>p,.theme-hope-content:not(.custom)>ul p,.theme-hope-content:not(.custom)>ol p{text-align:start}}.theme-hope-content a:not(.header-anchor):hover{text-decoration:underline}.theme-hope-content img{max-width:100%}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}html[data-theme=light]::view-transition-old(root),html[data-theme=dark]::view-transition-new(root){z-index:1}html[data-theme=light]::view-transition-new(root),html[data-theme=dark]::view-transition-old(root){z-index:99999}@media (min-width: 1280px){.chart-wrapper::-webkit-scrollbar,.flowchart-wrapper::-webkit-scrollbar,.mermaid-wrapper::-webkit-scrollbar{width:8px;height:8px}.chart-wrapper::-webkit-scrollbar-track-piece,.flowchart-wrapper::-webkit-scrollbar-track-piece,.mermaid-wrapper::-webkit-scrollbar-track-piece{border-radius:8px;background:#0000001a}}html[dir=rtl] a.header-anchor:before{right:-.75em}.vp-back-to-top-button{--back-to-top-color: var(--vp-tc);--back-to-top-color-hover: var(--vp-tcl);--back-to-top-bg-color: var(--vp-bg)}#docsearch-container{min-width:145.7px!important}@media (max-width: 959px){#docsearch-container{min-width:36px!important}}.DocSearch.DocSearch-Button{margin-left:0}@media (max-width: 959px){.DocSearch.DocSearch-Button{min-width:36px!important}}.DocSearch .DocSearch-Button-Placeholder{display:inline-block;padding:4px 12px 4px 6px;font-size:14px}@media (max-width: 719px){.DocSearch .DocSearch-Button-Placeholder{display:none}}.DocSearch .DocSearch-Search-Icon{width:1.25em;height:1.25em}@media (max-width: 959px){.DocSearch .DocSearch-Button-Keys{display:none}}.DocSearch .DocSearch-Button-Key{background:var(--bg-color);box-shadow:none}:root{scrollbar-width:thin}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track-piece{border-radius:6px;background:#0000001a}::-webkit-scrollbar-thumb{border-radius:6px;background:var(--theme-color)}::-webkit-scrollbar-thumb:active{background:var(--theme-color-light)}@media (max-width: 719px){.hide-in-mobile{display:none!important}}@media (max-width: 959px){.hide-in-pad{display:none!important}}@font-face{font-family:alimamaYuanMainTitle;src:url(//at.alicdn.com/wf/webfont/jhT8CONmEHMF/Q3WwpWfTtd6n.woff2) format("woff2"),url(//at.alicdn.com/wf/webfont/jhT8CONmEHMF/fZdAkn5jCKJe.woff) format("woff");font-display:swap}@font-face{font-family:alimamaYuanMainDesc;src:url(//at.alicdn.com/wf/webfont/jhT8CONmEHMF/6yqLnXwdD2Tf.woff2) format("woff2"),url(//at.alicdn.com/wf/webfont/jhT8CONmEHMF/vw5o5LROiBFq.woff) format("woff");font-display:swap}@media (min-width: 1440px){body{font-size:16px}}h1,h2{font-family:alimamaYuanMainDesc,sans-serif;font-variation-settings:"wght" 700,"BEVL" 100}.vp-hero-action.primary:hover{background-color:#303033;color:#fff}.vp-hero-action.primary{font-family:alimamaYuanMainTitle,sans-serif;margin-top:30px;border-color:#0b1117;background-color:#303033;color:#fff}.svg-icon{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.vp-project-home{background-size:contain;background-repeat:no-repeat}.vp-project-home h2{border-bottom:none}.vp-hero-info{display:block;text-align:center}.vp-hero-info .vp-hero-image{max-height:150px;margin:0 auto}#main-description{max-width:100%;font-size:20px;color:#fff;font-family:alimamaYuanMainDesc,sans-serif;font-variation-settings:"wght" 700,"BEVL" 100}.vp-actions{margin-left:-10px}.vp-action.primary{color:#fff}.vp-features:first-child{border-top:none}.vp-feature-item:hover{background-color:#30303360}.vp-feature-item .vp-feature-title{color:#fff;font-family:alimamaYuanMainDesc,sans-serif;font-variation-settings:"wght" 700,"BEVL" 100}.vp-feature-item .vp-feature-details{color:#fff;font-weight:600}.theme-hope-content.custom{padding:0 5rem}#main-title{color:#fff;font-family:alimamaYuanMainTitle;font-variation-settings:"wght" 700,"BEVL" 100;-webkit-text-fill-color:#ffffff}.vp-navbar{background-color:#2a2a2d}.vp-navbar .nav-links{font-size:.7em}@media (min-width: 1200px){.vp-navbar .vp-site-name{font-family:alimamaYuanMainTitle,sans-serif;font-variation-settings:"wght" 700,"BEVL" 100;background-color:var(--theme-color);position:relative;color:transparent;-webkit-background-clip:text;background-clip:text}.vp-navbar .vp-site-name:after{content:"Fast Request";position:absolute;font-family:alimamaYuanMainTitle,sans-serif;font-variation-settings:"wght" 700,"BEVL" 100;left:0;background-image:linear-gradient(120deg,transparent 0%,transparent 1rem,white 2rem,transparent 3.15rem,transparent 100%);-webkit-background-clip:text;background-clip:text;background-size:200% 120%;background-repeat:no-repeat;animation:shine 5s infinite linear}@keyframes shine{0%{background-position:50% 0}to{background-position:-190% 0}}}.vp-navbar .nav-item>.nav-link{font-family:alimamaYuanMainDesc,sans-serif;font-variation-settings:"wght" 700,"BEVL" 100}.breadcrumb a,.dropdown-wrapper .dropdown-title{font-family:alimamaYuanMainDesc,sans-serif;font-variation-settings:"wght" 700,"BEVL" 100}.compare-wrapper{width:100%}.compare-wrapper .hint-container{border:none}.compare-wrapper .hint-container.info .compare-title{background:#087cfa}.compare-wrapper .hint-container.tip .compare-title{background:#21d789}.compare-wrapper .compare-title{font-size:22px;border-radius:.2rem;font-weight:900;color:var(--black);margin:1rem 0;padding:.5rem}.compare-wrapper .compare-title .icon{margin:0 .25em}.compare-wrapper ul{list-style:none;padding:0}.advantage-more{cursor:pointer;font-size:16px;padding:10px;margin-bottom:20px;background-color:#fff;position:relative;border-radius:8px;color:#000;text-decoration:none}@media (max-width: 767px){.home-advantage{display:none}}@media (min-width: 768px){.home-advantage{display:block}}.custom-container{margin:1rem 0;padding:.25rem 1rem;border-radius:.5rem;color:inherit}.custom-container-title{font-size:1.15rem;font-weight:900}.vp-site-info-name{border-bottom:none;margin-top:5px}:root{--vc-clr-primary: #000;--vc-clr-secondary: #090f207f;--vc-clr-white: #ffffff;--vc-icn-width: 1.2em;--vc-nav-width: 30px;--vc-nav-height: 30px;--vc-nav-border-radius: 0;--vc-nav-color: var(--vc-clr-primary);--vc-nav-color-hover: var(--vc-clr-secondary);--vc-nav-background: transparent;--vc-pgn-width: 12px;--vc-pgn-height: 4px;--vc-pgn-margin: 4px;--vc-pgn-border-radius: 0;--vc-pgn-background-color: var(--vc-clr-secondary);--vc-pgn-active-color: var(--vc-clr-primary)}.carousel__prev,.carousel__next{box-sizing:content-box;background:var(--vc-nav-background);border-radius:var(--vc-nav-border-radius);width:var(--vc-nav-width);height:var(--vc-nav-height);text-align:center;font-size:var(--vc-nav-height);padding:0;color:var(--vc-nav-color);display:flex;justify-content:center;align-items:center;position:absolute;border:0;cursor:pointer;margin:0 10px;top:50%;transform:translateY(-50%)}.carousel__prev:hover,.carousel__next:hover{color:var(--vc-nav-color-hover)}.carousel__next--disabled,.carousel__prev--disabled{cursor:not-allowed;opacity:.5}.carousel__prev{left:0}.carousel__next{right:0}.carousel--rtl .carousel__prev{left:auto;right:0}.carousel--rtl .carousel__next{right:auto;left:0}.carousel{position:relative;text-align:center;box-sizing:border-box;touch-action:pan-y;overscroll-behavior:none}.carousel.is-dragging{touch-action:none}.carousel *{box-sizing:border-box}.carousel__track{display:flex;padding:0!important;position:relative}.carousel__viewport{overflow:hidden}.carousel__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.carousel__icon{width:var(--vc-icn-width);height:var(--vc-icn-width);fill:currentColor}.carousel__pagination{display:flex;justify-content:center;list-style:none;line-height:0;margin:10px 0 0}.carousel__pagination-button{display:block;border:0;margin:0;cursor:pointer;padding:var(--vc-pgn-margin);background:transparent}.carousel__pagination-button:after{display:block;content:"";width:var(--vc-pgn-width);height:var(--vc-pgn-height);border-radius:var(--vc-pgn-border-radius);background-color:var(--vc-pgn-background-color)}.carousel__pagination-button:hover:after,.carousel__pagination-button--active:after{background-color:var(--vc-pgn-active-color)}.carousel__slide{scroll-snap-stop:auto;flex-shrink:0;margin:0;position:relative;display:flex;justify-content:center;align-items:center;transform:translateZ(0)}.carousel__prev,.carousel__next{box-sizing:content-box;color:var(--theme-color)}.carousel__pagination-button:after{background-color:#fff}.carousel__pagination-button:hover:after,.carousel__pagination-button--active:after{background-color:var(--theme-color)}.carousel__track{margin-top:0}/*! @docsearch/css 3.5.2 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::-moz-placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (max-width: 750px){.DocSearch-Container{position:fixed}}@media print{#docsearch-container,.DocSearch-Button{display:none}} diff --git a/assets/style-w40geAFS.js b/assets/style-w40geAFS.js new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/assets/style-w40geAFS.js @@ -0,0 +1 @@ + diff --git a/assets/swaggerDefaultValueParse.html-EOQ16yAx.js b/assets/swaggerDefaultValueParse.html-EOQ16yAx.js new file mode 100644 index 000000000..e83adcf9b --- /dev/null +++ b/assets/swaggerDefaultValueParse.html-EOQ16yAx.js @@ -0,0 +1,46 @@ +import{_ as i,r as o,o as u,c as r,a as n,d as a,b as c,w as s}from"./app-8OZtYazS.js";const k={},d=n("h1",{id:"swagger-默认值",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#swagger-默认值"},[n("span",null,"Swagger 默认值")])],-1),m=n("p",null,"已下是一些 example",-1),g=n("p",null,"优先级: swagger 配置的值 > 配置默认值",-1),v=n("div",{class:"language-java line-numbers-mode","data-ext":"java","data-title":"java"},[n("pre",{class:"language-java"},[n("code",null,[n("span",{class:"token operator"},"*"),a(),n("span",{class:"token annotation punctuation"},"@ApiParam"),a(` + +`),n("span",{class:"token annotation punctuation"},"@GetMapping"),n("span",{class:"token punctuation"},"("),a("value"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"/test/{id}"'),n("span",{class:"token punctuation"},")"),a(` +`),n("span",{class:"token keyword"},"public"),a(),n("span",{class:"token class-name"},"String"),a(),n("span",{class:"token function"},"test3"),n("span",{class:"token punctuation"},"("),n("span",{class:"token annotation punctuation"},"@ApiParam"),n("span",{class:"token punctuation"},"("),a("name "),n("span",{class:"token operator"},"="),a(),n("span",{class:"token string"},'"id"'),n("span",{class:"token punctuation"},","),a("example"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"2"'),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token annotation punctuation"},"@PathVariable"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"id"'),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token class-name"},"Integer"),a(" id"),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token punctuation"},"{"),a(` + `),n("span",{class:"token keyword"},"return"),a(),n("span",{class:"token string"},'""'),n("span",{class:"token punctuation"},";"),a(` +`),n("span",{class:"token punctuation"},"}"),a(` + +`),n("span",{class:"token annotation punctuation"},"@GetMapping"),n("span",{class:"token punctuation"},"("),a("value"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"/test/{id}"'),n("span",{class:"token punctuation"},")"),a(` +`),n("span",{class:"token keyword"},"public"),a(),n("span",{class:"token class-name"},"String"),a(),n("span",{class:"token function"},"test3"),n("span",{class:"token punctuation"},"("),n("span",{class:"token annotation punctuation"},"@ApiParam"),n("span",{class:"token punctuation"},"("),a("name "),n("span",{class:"token operator"},"="),a(),n("span",{class:"token string"},'"id"'),n("span",{class:"token punctuation"},","),a("defaultValue"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"2"'),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token annotation punctuation"},"@PathVariable"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"id"'),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token class-name"},"Integer"),a(" id"),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token punctuation"},"{"),a(` + `),n("span",{class:"token keyword"},"return"),a(),n("span",{class:"token string"},'""'),n("span",{class:"token punctuation"},";"),a(` +`),n("span",{class:"token punctuation"},"}"),a(` + + +`),n("span",{class:"token operator"},"*"),a(),n("span",{class:"token annotation punctuation"},"@ApiImplicitParam"),a(` + +`),n("span",{class:"token annotation punctuation"},"@ApiImplicitParams"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"{"),a(` + `),n("span",{class:"token annotation punctuation"},"@ApiImplicitParam"),n("span",{class:"token punctuation"},"("),a("paramType"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"query"'),n("span",{class:"token punctuation"},","),a("name"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"pageNo"'),n("span",{class:"token punctuation"},","),a("dataType"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"String"'),n("span",{class:"token punctuation"},","),a("required"),n("span",{class:"token operator"},"="),n("span",{class:"token boolean"},"true"),n("span",{class:"token punctuation"},","),a("value"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"pageNo"'),n("span",{class:"token punctuation"},","),a("defaultValue"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"1"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},","),a(` + `),n("span",{class:"token annotation punctuation"},"@ApiImplicitParam"),n("span",{class:"token punctuation"},"("),a("paramType"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"query"'),n("span",{class:"token punctuation"},","),a("name"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"pageSize"'),n("span",{class:"token punctuation"},","),a("dataType"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"String"'),n("span",{class:"token punctuation"},","),a("required"),n("span",{class:"token operator"},"="),n("span",{class:"token boolean"},"true"),n("span",{class:"token punctuation"},","),a("value"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"pageSize"'),n("span",{class:"token punctuation"},","),a("defaultValue"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"10"'),n("span",{class:"token punctuation"},")"),a(` +`),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),a(` +`),n("span",{class:"token annotation punctuation"},"@GetMapping"),n("span",{class:"token punctuation"},"("),a("value"),n("span",{class:"token operator"},"="),a('"'),n("span",{class:"token operator"},"/"),a("testPage"),n("span",{class:"token punctuation"},")"),a(` +`),n("span",{class:"token keyword"},"public"),a(),n("span",{class:"token class-name"},"String"),a(),n("span",{class:"token function"},"testPage"),n("span",{class:"token punctuation"},"("),n("span",{class:"token annotation punctuation"},"@RequestParam"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"pageNo"'),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token class-name"},"Integer"),a(" pageNo"),n("span",{class:"token punctuation"},","),a(),n("span",{class:"token annotation punctuation"},"@RequestParam"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"pageSize"'),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token class-name"},"Integer"),a(" pageSize"),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token punctuation"},"{"),a(` + `),n("span",{class:"token keyword"},"return"),a(),n("span",{class:"token string"},'""'),n("span",{class:"token punctuation"},";"),a(` +`),n("span",{class:"token punctuation"},"}"),a(` + + +`),n("span",{class:"token operator"},"*"),a(),n("span",{class:"token annotation punctuation"},"@ApiModelProperty"),a(` +`),n("span",{class:"token annotation punctuation"},"@Data"),a(` +`),n("span",{class:"token keyword"},"public"),a(),n("span",{class:"token keyword"},"class"),a(),n("span",{class:"token class-name"},"UserDto"),a(),n("span",{class:"token punctuation"},"{"),a(` + `),n("span",{class:"token annotation punctuation"},"@ApiModelProperty"),n("span",{class:"token punctuation"},"("),a("example "),n("span",{class:"token operator"},"="),a(),n("span",{class:"token string"},'"Bob"'),n("span",{class:"token punctuation"},")"),a(` + `),n("span",{class:"token keyword"},"private"),a(),n("span",{class:"token class-name"},"String"),a(" userName"),n("span",{class:"token punctuation"},";"),a(` +`),n("span",{class:"token punctuation"},"}"),a(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"})])],-1),b=n("div",{class:"language-java line-numbers-mode","data-ext":"java","data-title":"java"},[n("pre",{class:"language-java"},[n("code",null,[n("span",{class:"token operator"},"*"),a(),n("span",{class:"token annotation punctuation"},"@Parameter"),a(` + +`),n("span",{class:"token annotation punctuation"},"@GetMapping"),n("span",{class:"token punctuation"},"("),a("value"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"/test/{id}"'),n("span",{class:"token punctuation"},")"),a(` +`),n("span",{class:"token keyword"},"public"),a(),n("span",{class:"token class-name"},"String"),a(),n("span",{class:"token function"},"test3"),n("span",{class:"token punctuation"},"("),n("span",{class:"token annotation punctuation"},"@Parameter"),n("span",{class:"token punctuation"},"("),a("name "),n("span",{class:"token operator"},"="),a(),n("span",{class:"token string"},'"id"'),n("span",{class:"token punctuation"},","),a("example"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"2"'),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token annotation punctuation"},"@PathVariable"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"id"'),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token class-name"},"Integer"),a(" id"),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token punctuation"},"{"),a(` + `),n("span",{class:"token keyword"},"return"),a(),n("span",{class:"token string"},'""'),n("span",{class:"token punctuation"},";"),a(` +`),n("span",{class:"token punctuation"},"}"),a(` + +`),n("span",{class:"token operator"},"*"),a(),n("span",{class:"token annotation punctuation"},"@Schema"),n("span",{class:"token punctuation"},"("),a("swagger3"),n("span",{class:"token punctuation"},")"),a(` + +`),n("span",{class:"token annotation punctuation"},"@Data"),a(` +`),n("span",{class:"token keyword"},"public"),a(),n("span",{class:"token keyword"},"class"),a(),n("span",{class:"token class-name"},"UserDto"),a(),n("span",{class:"token punctuation"},"{"),a(` + `),n("span",{class:"token annotation punctuation"},"@Schema"),n("span",{class:"token punctuation"},"("),a("example "),n("span",{class:"token operator"},"="),a(),n("span",{class:"token string"},'"Bob"'),n("span",{class:"token punctuation"},")"),a(` + `),n("span",{class:"token keyword"},"private"),a(),n("span",{class:"token class-name"},"String"),a(" userName"),n("span",{class:"token punctuation"},";"),a(` +`),n("span",{class:"token punctuation"},"}"),a(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"})])],-1);function w(h,y){const p=o("Badge"),l=o("CodeTabs");return u(),r("div",null,[d,n("p",null,[a("版本要求: "),c(p,{text:"2022.1.4.0"})]),m,g,c(l,{id:"12",data:[{id:"swagger2"},{id:"swagger3"}]},{title0:s(({value:t,isActive:e})=>[a("swagger2")]),title1:s(({value:t,isActive:e})=>[a("swagger3")]),tab0:s(({value:t,isActive:e})=>[v]),tab1:s(({value:t,isActive:e})=>[b]),_:1})])}const _=i(k,[["render",w],["__file","swaggerDefaultValueParse.html.vue"]]),P=JSON.parse('{"path":"/guide/features/swaggerDefaultValueParse.html","title":"Swagger 默认值","lang":"zh-CN","frontmatter":{"description":"Swagger 默认值 版本要求: 已下是一些 example 优先级: swagger 配置的值 > 配置默认值 ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/swaggerDefaultValueParse.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/swaggerDefaultValueParse.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Swagger 默认值"}],["meta",{"property":"og:description","content":"Swagger 默认值 版本要求: 已下是一些 example 优先级: swagger 配置的值 > 配置默认值 "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Swagger 默认值\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.53,"words":158},"filePathRelative":"guide/features/swaggerDefaultValueParse.md","localizedDate":"2024年5月31日","autoDesc":true}');export{_ as comp,P as data}; diff --git a/assets/swaggerDefaultValueParse.html-YDphGNQt.js b/assets/swaggerDefaultValueParse.html-YDphGNQt.js new file mode 100644 index 000000000..70bcf3313 --- /dev/null +++ b/assets/swaggerDefaultValueParse.html-YDphGNQt.js @@ -0,0 +1,46 @@ +import{_ as i,r as o,o as u,c as r,a as n,d as a,b as l,w as s}from"./app-8OZtYazS.js";const k={},d=n("h1",{id:"swagger-default-value",tabindex:"-1"},[n("a",{class:"header-anchor",href:"#swagger-default-value"},[n("span",null,"Swagger default value")])],-1),m=n("p",null,"Below are some examples.",-1),g=n("p",null,[n("strong",null,"Priority"),a(": swagger default value > config default value")],-1),v=n("div",{class:"language-java line-numbers-mode","data-ext":"java","data-title":"java"},[n("pre",{class:"language-java"},[n("code",null,[n("span",{class:"token operator"},"*"),a(),n("span",{class:"token annotation punctuation"},"@ApiParam"),a(` + +`),n("span",{class:"token annotation punctuation"},"@GetMapping"),n("span",{class:"token punctuation"},"("),a("value"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"/test/{id}"'),n("span",{class:"token punctuation"},")"),a(` +`),n("span",{class:"token keyword"},"public"),a(),n("span",{class:"token class-name"},"String"),a(),n("span",{class:"token function"},"test3"),n("span",{class:"token punctuation"},"("),n("span",{class:"token annotation punctuation"},"@ApiParam"),n("span",{class:"token punctuation"},"("),a("name "),n("span",{class:"token operator"},"="),a(),n("span",{class:"token string"},'"id"'),n("span",{class:"token punctuation"},","),a("example"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"2"'),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token annotation punctuation"},"@PathVariable"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"id"'),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token class-name"},"Integer"),a(" id"),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token punctuation"},"{"),a(` + `),n("span",{class:"token keyword"},"return"),a(),n("span",{class:"token string"},'""'),n("span",{class:"token punctuation"},";"),a(` + `),n("span",{class:"token punctuation"},"}"),a(` + +`),n("span",{class:"token annotation punctuation"},"@GetMapping"),n("span",{class:"token punctuation"},"("),a("value"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"/test/{id}"'),n("span",{class:"token punctuation"},")"),a(` +`),n("span",{class:"token keyword"},"public"),a(),n("span",{class:"token class-name"},"String"),a(),n("span",{class:"token function"},"test3"),n("span",{class:"token punctuation"},"("),n("span",{class:"token annotation punctuation"},"@ApiParam"),n("span",{class:"token punctuation"},"("),a("name "),n("span",{class:"token operator"},"="),a(),n("span",{class:"token string"},'"id"'),n("span",{class:"token punctuation"},","),a("defaultValue"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"2"'),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token annotation punctuation"},"@PathVariable"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"id"'),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token class-name"},"Integer"),a(" id"),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token punctuation"},"{"),a(` + `),n("span",{class:"token keyword"},"return"),a(),n("span",{class:"token string"},'""'),n("span",{class:"token punctuation"},";"),a(` + `),n("span",{class:"token punctuation"},"}"),a(` + + + `),n("span",{class:"token operator"},"*"),a(),n("span",{class:"token annotation punctuation"},"@ApiImplicitParam"),a(` + +`),n("span",{class:"token annotation punctuation"},"@ApiImplicitParams"),n("span",{class:"token punctuation"},"("),n("span",{class:"token punctuation"},"{"),a(` + `),n("span",{class:"token annotation punctuation"},"@ApiImplicitParam"),n("span",{class:"token punctuation"},"("),a("paramType"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"query"'),n("span",{class:"token punctuation"},","),a("name"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"pageNo"'),n("span",{class:"token punctuation"},","),a("dataType"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"String"'),n("span",{class:"token punctuation"},","),a("required"),n("span",{class:"token operator"},"="),n("span",{class:"token boolean"},"true"),n("span",{class:"token punctuation"},","),a("value"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"pageNo"'),n("span",{class:"token punctuation"},","),a("defaultValue"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"1"'),n("span",{class:"token punctuation"},")"),n("span",{class:"token punctuation"},","),a(` + `),n("span",{class:"token annotation punctuation"},"@ApiImplicitParam"),n("span",{class:"token punctuation"},"("),a("paramType"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"query"'),n("span",{class:"token punctuation"},","),a("name"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"pageSize"'),n("span",{class:"token punctuation"},","),a("dataType"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"String"'),n("span",{class:"token punctuation"},","),a("required"),n("span",{class:"token operator"},"="),n("span",{class:"token boolean"},"true"),n("span",{class:"token punctuation"},","),a("value"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"pageSize"'),n("span",{class:"token punctuation"},","),a("defaultValue"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"10"'),n("span",{class:"token punctuation"},")"),a(` +`),n("span",{class:"token punctuation"},"}"),n("span",{class:"token punctuation"},")"),a(` +`),n("span",{class:"token annotation punctuation"},"@GetMapping"),n("span",{class:"token punctuation"},"("),a("value"),n("span",{class:"token operator"},"="),a('"'),n("span",{class:"token operator"},"/"),a("testPage"),n("span",{class:"token punctuation"},")"),a(` + `),n("span",{class:"token keyword"},"public"),a(),n("span",{class:"token class-name"},"String"),a(),n("span",{class:"token function"},"testPage"),n("span",{class:"token punctuation"},"("),n("span",{class:"token annotation punctuation"},"@RequestParam"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"pageNo"'),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token class-name"},"Integer"),a(" pageNo"),n("span",{class:"token punctuation"},","),a(),n("span",{class:"token annotation punctuation"},"@RequestParam"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"pageSize"'),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token class-name"},"Integer"),a(" pageSize"),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token punctuation"},"{"),a(` + `),n("span",{class:"token keyword"},"return"),a(),n("span",{class:"token string"},'""'),n("span",{class:"token punctuation"},";"),a(` + `),n("span",{class:"token punctuation"},"}"),a(` + + + `),n("span",{class:"token operator"},"*"),a(),n("span",{class:"token annotation punctuation"},"@ApiModelProperty"),a(` + `),n("span",{class:"token annotation punctuation"},"@Data"),a(` + `),n("span",{class:"token keyword"},"public"),a(),n("span",{class:"token keyword"},"class"),a(),n("span",{class:"token class-name"},"UserDto"),a(),n("span",{class:"token punctuation"},"{"),a(` + `),n("span",{class:"token annotation punctuation"},"@ApiModelProperty"),n("span",{class:"token punctuation"},"("),a("example "),n("span",{class:"token operator"},"="),a(),n("span",{class:"token string"},'"Bob"'),n("span",{class:"token punctuation"},")"),a(` + `),n("span",{class:"token keyword"},"private"),a(),n("span",{class:"token class-name"},"String"),a(" userName"),n("span",{class:"token punctuation"},";"),a(` + `),n("span",{class:"token punctuation"},"}"),a(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"})])],-1),b=n("div",{class:"language-java line-numbers-mode","data-ext":"java","data-title":"java"},[n("pre",{class:"language-java"},[n("code",null,[n("span",{class:"token operator"},"*"),a(),n("span",{class:"token annotation punctuation"},"@Parameter"),a(` + +`),n("span",{class:"token annotation punctuation"},"@GetMapping"),n("span",{class:"token punctuation"},"("),a("value"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"/test/{id}"'),n("span",{class:"token punctuation"},")"),a(` +`),n("span",{class:"token keyword"},"public"),a(),n("span",{class:"token class-name"},"String"),a(),n("span",{class:"token function"},"test3"),n("span",{class:"token punctuation"},"("),n("span",{class:"token annotation punctuation"},"@Parameter"),n("span",{class:"token punctuation"},"("),a("name "),n("span",{class:"token operator"},"="),a(),n("span",{class:"token string"},'"id"'),n("span",{class:"token punctuation"},","),a("example"),n("span",{class:"token operator"},"="),n("span",{class:"token string"},'"2"'),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token annotation punctuation"},"@PathVariable"),n("span",{class:"token punctuation"},"("),n("span",{class:"token string"},'"id"'),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token class-name"},"Integer"),a(" id"),n("span",{class:"token punctuation"},")"),a(),n("span",{class:"token punctuation"},"{"),a(` + `),n("span",{class:"token keyword"},"return"),a(),n("span",{class:"token string"},'""'),n("span",{class:"token punctuation"},";"),a(` + `),n("span",{class:"token punctuation"},"}"),a(` + + `),n("span",{class:"token operator"},"*"),a(),n("span",{class:"token annotation punctuation"},"@Schema"),n("span",{class:"token punctuation"},"("),a("swagger3"),n("span",{class:"token punctuation"},")"),a(` + +`),n("span",{class:"token annotation punctuation"},"@Data"),a(` +`),n("span",{class:"token keyword"},"public"),a(),n("span",{class:"token keyword"},"class"),a(),n("span",{class:"token class-name"},"UserDto"),a(),n("span",{class:"token punctuation"},"{"),a(` + `),n("span",{class:"token annotation punctuation"},"@Schema"),n("span",{class:"token punctuation"},"("),a("example "),n("span",{class:"token operator"},"="),a(),n("span",{class:"token string"},'"Bob"'),n("span",{class:"token punctuation"},")"),a(` + `),n("span",{class:"token keyword"},"private"),a(),n("span",{class:"token class-name"},"String"),a(" userName"),n("span",{class:"token punctuation"},";"),a(` +`),n("span",{class:"token punctuation"},"}"),a(` +`)])]),n("div",{class:"line-numbers","aria-hidden":"true"},[n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"}),n("div",{class:"line-number"})])],-1);function f(w,y){const c=o("Badge"),p=o("CodeTabs");return u(),r("div",null,[d,n("p",null,[a("Version required: "),l(c,{text:"2022.1.4"})]),m,g,l(p,{id:"12",data:[{id:"swagger2"},{id:"swagger3"}]},{title0:s(({value:t,isActive:e})=>[a("swagger2")]),title1:s(({value:t,isActive:e})=>[a("swagger3")]),tab0:s(({value:t,isActive:e})=>[v]),tab1:s(({value:t,isActive:e})=>[b]),_:1})])}const _=i(k,[["render",f],["__file","swaggerDefaultValueParse.html.vue"]]),P=JSON.parse('{"path":"/en/guide/features/swaggerDefaultValueParse.html","title":"Swagger default value","lang":"en-US","frontmatter":{"description":"Swagger default value Version required: Below are some examples. Priority: swagger default value > config default value ","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/swaggerDefaultValueParse.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/swaggerDefaultValueParse.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Swagger default value"}],["meta",{"property":"og:description","content":"Swagger default value Version required: Below are some examples. Priority: swagger default value > config default value "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Swagger default value\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.49,"words":147},"filePathRelative":"en/guide/features/swaggerDefaultValueParse.md","localizedDate":"May 31, 2024","autoDesc":true}');export{_ as comp,P as data}; diff --git a/assets/teachingVideo.html--Z7PwIhp.js b/assets/teachingVideo.html--Z7PwIhp.js new file mode 100644 index 000000000..5d5ca5d5c --- /dev/null +++ b/assets/teachingVideo.html--Z7PwIhp.js @@ -0,0 +1 @@ +import{_ as c,r as n,o as s,c as m,a as o,b as i,d as a,n as e,h as l}from"./app-8OZtYazS.js";const d="/img/bilibili.jpg",p={},g={href:"https://space.bilibili.com/370110042",target:"_blank",rel:"noopener noreferrer"},b=o("img",{src:"https://img.shields.io/static/v1?label=BiliBili&message=BiliBili&logo=bilibili&color=FC8D34",alt:"Bilibili",loading:"lazy"},null,-1),u=o("mark",null,"关注我",-1),h=o("mark",null,"一键三连",-1),_=o("p",null,[o("img",{src:d,alt:"bilibili",loading:"lazy"})],-1);function B(y,v){const r=n("ExternalLinkIcon"),t=n("BiliBili");return s(),m("div",null,[o("p",null,[o("a",g,[b,i(r)]),a(" 站系列视频,"),u,a("最快时间获得视频更新文档,给我"),h,a("是对我最大的创作鼓励")]),_,i(t,e(l({bvid:"BV1pM4m1Q7c5",ratio:"5/4"})),null,16),i(t,e(l({bvid:"BV1Ju4y1A7Qi",ratio:"5/4"})),null,16),i(t,e(l({bvid:"BV13N4y1R7B4",ratio:"5/4"})),null,16),i(t,e(l({bvid:"BV1wu4y1d7c4",ratio:"5/4"})),null,16),i(t,e(l({bvid:"BV1Nk4y1M7Wu",ratio:"5/4"})),null,16),i(t,e(l({bvid:"BV1vt4y1M7rV",ratio:"5/4"})),null,16),i(t,e(l({bvid:"BV1xg41127TF",ratio:"5/4"})),null,16),i(t,e(l({bvid:"BV1RF411u766",ratio:"5/4"})),null,16),i(t,e(l({bvid:"BV1u5411S7ih",ratio:"5/4"})),null,16),i(t,e(l({bvid:"BV1zU4y1S7pC",ratio:"5/4"})),null,16)])}const f=c(p,[["render",B],["__file","teachingVideo.html.vue"]]),k=JSON.parse('{"path":"/guide/teachingVideo.html","title":"视频教程","lang":"zh-CN","frontmatter":{"title":"视频教程","icon":"bilibili","description":"Bilibili 站系列视频,关注我最快时间获得视频更新文档,给我一键三连是对我最大的创作鼓励 bilibili ","head":[["meta",{"property":"og:url","content":"https://api-buddy.com/guide/teachingVideo.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"视频教程"}],["meta",{"property":"og:description","content":"Bilibili 站系列视频,关注我最快时间获得视频更新文档,给我一键三连是对我最大的创作鼓励 bilibili "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://img.shields.io/static/v1?label=BiliBili&message=BiliBili&logo=bilibili&color=FC8D34"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"视频教程"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"视频教程\\",\\"image\\":[\\"https://img.shields.io/static/v1?label=BiliBili&message=BiliBili&logo=bilibili&color=FC8D34\\",\\"https://api-buddy.com/img/bilibili.jpg\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.39,"words":118},"filePathRelative":"guide/teachingVideo.md","localizedDate":"2024年5月31日","autoDesc":true}');export{f as comp,k as data}; diff --git a/assets/teamwork.html-Bmj5Ql1G.js b/assets/teamwork.html-Bmj5Ql1G.js new file mode 100644 index 000000000..de069682e --- /dev/null +++ b/assets/teamwork.html-Bmj5Ql1G.js @@ -0,0 +1,5 @@ +import{_ as c}from"./refreshProjectConfig-nDUALD3E.js";import{_ as p,a as d}from"./transferData-jb4lwMnv.js";import{_ as g,r,o as m,c as h,a as e,d as t,b as o,w as a,e as u}from"./app-8OZtYazS.js";const b="/img/2023.1.3/teamDirectory.png",f={},v=u('

    原理

    基于版本控制系统,共享部分配置以及API 数据

    特性

    零部署
    私有化
    不限人数
    不限 API 数
    不限项目数
    不限功能
    离线运转
    安全

    如何使用

    基于原理,所以当我们需要共享或者拉取别人的配置或者 API 时,假设我们利用 Git 作为我们的版本控制系统,我们只需要push即可共享配置和 API 数据,pull即可获取别人提交的配置和 API 数据。

    更新配置

    版本控制系统 pull 后,例如Git pull,点击刷新项目配置按钮,即可获取其他成员提交的配置

    refreshProjectConfig

    更新 API

    版本控制系统 pull 后,例如Git pull,点击 API 刷新按钮,即可获取其他成员提交的 API

    refreshProjectConfig

    本地文件存储结构

    插件会默认在项目根目录下创建一个 .fastRequest 的目录,API 存储在 collections 目录下,配置存储在 config 目录下,API 按照 模块->类名->API 的结构进行存储,每一个目录下存放一个 directory.json 文件,用于标识该目录。 其他 API 用方法的方法名.rapi进行存储,该文件可能会在版本控制系统中因为多方修改产生冲突,最终需要用户解决冲突,并满足标准的 json 以及数据结构。

    teamDirectory

    历史数据转移

    插件默认会进行一次历史数据转移,数据转移的时候(版本<=2023.1.3 的数据),如果你的数据在版本管理系统上未提交,则不需要关心历史数据。 如果版本管理系统其他人已提交 API,则会进行覆盖。 注意如果想看 API 历史数据,可以结合版本控制系统的文件历史记录来还原,也可以结合本地文件历史记录来还原。

    如果发现数据未转移,也可手动操作!

    transferData

    文件权限

    如果发现因为Permission denied导致的错误,执行以下指令

    ',21),_=e("div",{class:"language-bash","data-ext":"sh","data-title":"sh"},[e("pre",{class:"language-bash"},[e("code",null,[e("span",{class:"token builtin class-name"},"cd"),t(),e("span",{class:"token punctuation"},"["),t("current project root dir"),e("span",{class:"token punctuation"},"]"),t(` +`),e("span",{class:"token function"},"chmod"),t(),e("span",{class:"token parameter variable"},"-R"),t(),e("span",{class:"token number"},"777"),t(` .fastRequest/* +`)])])],-1),y=e("div",{class:"language-bash","data-ext":"sh","data-title":"sh"},[e("pre",{class:"language-bash"},[e("code",null,[e("span",{class:"token builtin class-name"},"cd"),t(),e("span",{class:"token punctuation"},"["),t("current project root dir"),e("span",{class:"token punctuation"},"]"),t(` +takeown /f /r /d n .fastRequest/* +`)])])],-1);function k(A,P){const i=r("Badge"),l=r("CodeTabs");return m(),h("div",null,[e("p",null,[t("版本要求: "),o(i,{text:"2023.1.3"})]),v,o(l,{id:"66",data:[{id:"Linux"},{id:"Windows"}],"tab-id":"shell"},{title0:a(({value:n,isActive:s})=>[t("Linux")]),title1:a(({value:n,isActive:s})=>[t("Windows")]),tab0:a(({value:n,isActive:s})=>[_]),tab1:a(({value:n,isActive:s})=>[y]),_:1})])}const C=g(f,[["render",k],["__file","teamwork.html.vue"]]),D=JSON.parse('{"path":"/guide/teamwork.html","title":"团队协作","lang":"zh-CN","frontmatter":{"title":"团队协作","icon":"teamwork","description":"版本要求: 原理 基于版本控制系统,共享部分配置以及API 数据。 特性 零部署 私有化 不限人数 不限 API 数 不限项目数 不限功能 离线运转 安全 如何使用 基于原理,所以当我们需要共享或者拉取别人的配置或者 API 时,假设我们利用 Git 作为我们的版本控制系统,我们只需要push即可共享配置和 API 数据,pull即可获取别人提交的配置...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/teamwork.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/teamwork.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"团队协作"}],["meta",{"property":"og:description","content":"版本要求: 原理 基于版本控制系统,共享部分配置以及API 数据。 特性 零部署 私有化 不限人数 不限 API 数 不限项目数 不限功能 离线运转 安全 如何使用 基于原理,所以当我们需要共享或者拉取别人的配置或者 API 时,假设我们利用 Git 作为我们的版本控制系统,我们只需要push即可共享配置和 API 数据,pull即可获取别人提交的配置..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.1.3/refreshProjectConfig.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"团队协作"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"团队协作\\",\\"image\\":[\\"https://api-buddy.com/img/2023.1.3/refreshProjectConfig.png\\",\\"https://api-buddy.com/img/2023.1.3/refreshAPI.png\\",\\"https://api-buddy.com/img/2023.1.3/teamDirectory.png\\",\\"https://api-buddy.com/img/2023.1.3/transferData.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"原理","slug":"原理","link":"#原理","children":[]},{"level":2,"title":"特性","slug":"特性","link":"#特性","children":[]},{"level":2,"title":"如何使用","slug":"如何使用","link":"#如何使用","children":[{"level":3,"title":"更新配置","slug":"更新配置","link":"#更新配置","children":[]}]},{"level":2,"title":"更新 API","slug":"更新-api","link":"#更新-api","children":[]},{"level":2,"title":"本地文件存储结构","slug":"本地文件存储结构","link":"#本地文件存储结构","children":[]},{"level":2,"title":"历史数据转移","slug":"历史数据转移","link":"#历史数据转移","children":[]},{"level":2,"title":"文件权限","slug":"文件权限","link":"#文件权限","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":2.21,"words":662},"filePathRelative":"guide/teamwork.md","localizedDate":"2024年5月31日","autoDesc":true}');export{C as comp,D as data}; diff --git a/assets/teamwork.html-ps0XRtYl.js b/assets/teamwork.html-ps0XRtYl.js new file mode 100644 index 000000000..a1a910989 --- /dev/null +++ b/assets/teamwork.html-ps0XRtYl.js @@ -0,0 +1 @@ +import{_ as t}from"./refreshProjectConfig-nDUALD3E.js";import{_ as a,a as r}from"./transferData-jb4lwMnv.js";import{_ as o,r as i,o as n,c as s,a as l,d as c,b as d,e as p}from"./app-8OZtYazS.js";const m="/img/2023.1.3/teamDirectory_en.png",h={},u=p('

    Principle

    Based on version control systems, share configurations and API data.

    Features

    No deployment required
    Privatisation
    Unlimited developers
    Unlimited APIs
    Unlimited projects
    Unlimited features
    Offline work
    Safe

    How to use

    Based on the principle, so when we need to share or pull someone else's configuration or API, assuming we use Git as our version control system, we can just push to share configuration and API data, and pull to get someone else's committed configuration and API data.

    Update configuration

    After pull, click the Refresh Project Configuration button to get the configuration submitted by other members.

    refreshProjectConfig

    Update API

    After pull, for example Git pull ,click the API Refresh button to get the APIs submitted by other members.

    refreshProjectConfig

    Local file storage structure

    By default, the plugin will create a .fastRequest directory in the root directory of the project. APIs are stored in the collections directory, and configurations are stored in the config directory. APIs are stored in the structure of module->class name->API, and each directory contains a directory.json file to identify the directory. Other APIs are stored using the methodName.rapi, and conflicts may occur in this file due to multiple modifications in version control systems. Users need to resolve the conflicts and meet the standard JSON and data structures.

    Note that if you want to view the historical data of APIs, you can use the file history records of the version control system to restore them, or you can use the local file history records to restore them.

    teamDirectory

    Transfer historical data.

    By default, the plugin will perform a historical data migration. During the data migration (for data on versions <= 2023.1.3), you do not need to worry about historical data if your data has not been committed to the version control system. If someone else has already committed the API to the version control system, it will be overwritten. Note that if you want to view API historical data, you can restore it by combining the file history records of the version control system or the local file.

    If you find that the data has not been migrated, you can also manually operate it.

    transferData

    ',20);function g(f,y){const e=i("Badge");return n(),s("div",null,[l("p",null,[c("Version Required: "),d(e,{text:"2023.1.3",type:"error"})]),u])}const P=o(h,[["render",g],["__file","teamwork.html.vue"]]),k=JSON.parse('{"path":"/en/guide/teamwork.html","title":"Teamwork","lang":"en-US","frontmatter":{"title":"Teamwork","icon":"teamwork","description":"Version Required: Principle Based on version control systems, share configurations and API data. Features No deployment required Privatisation Unlimited developers Unlimited API...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/teamwork.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/teamwork.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Teamwork"}],["meta",{"property":"og:description","content":"Version Required: Principle Based on version control systems, share configurations and API data. Features No deployment required Privatisation Unlimited developers Unlimited API..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2023.1.3/refreshProjectConfig.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Teamwork"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Teamwork\\",\\"image\\":[\\"https://api-buddy.com/img/2023.1.3/refreshProjectConfig.png\\",\\"https://api-buddy.com/img/2023.1.3/refreshAPI.png\\",\\"https://api-buddy.com/img/2023.1.3/teamDirectory_en.png\\",\\"https://api-buddy.com/img/2023.1.3/transferData.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Principle","slug":"principle","link":"#principle","children":[]},{"level":2,"title":"Features","slug":"features","link":"#features","children":[]},{"level":2,"title":"How to use","slug":"how-to-use","link":"#how-to-use","children":[{"level":3,"title":"Update configuration","slug":"update-configuration","link":"#update-configuration","children":[]}]},{"level":2,"title":"Update API","slug":"update-api","link":"#update-api","children":[]},{"level":2,"title":"Local file storage structure","slug":"local-file-storage-structure","link":"#local-file-storage-structure","children":[]},{"level":2,"title":"Transfer historical data.","slug":"transfer-historical-data","link":"#transfer-historical-data","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":1.57,"words":472},"filePathRelative":"en/guide/teamwork.md","localizedDate":"May 31, 2024","autoDesc":true}');export{P as comp,k as data}; diff --git a/assets/tempRequest.html-d0W1Xrun.js b/assets/tempRequest.html-d0W1Xrun.js new file mode 100644 index 000000000..392d8f0f4 --- /dev/null +++ b/assets/tempRequest.html-d0W1Xrun.js @@ -0,0 +1 @@ +import{_ as o}from"./tempSave-uWqV754c.js";import{_ as n,r,o as p,c as m,a as e,d as t,b as s}from"./app-8OZtYazS.js";const i={},c=e("h1",{id:"临时请求保存支持",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#临时请求保存支持"},[e("span",null,"临时请求保存支持")])],-1),l=e("p",null,"目的:项目中保存任意不属于本项目的请求,用于临时调用,跟当前项目代码不关联",-1),d=e("p",null,[t("临时请求保存的 Request 的 Url 必须以 "),e("mark",null,"http"),t(" 或者 "),e("mark",null,"https"),t(" 开头")],-1),u=e("p",null,[e("img",{src:o,alt:"tempSave",loading:"lazy"})],-1);function h(g,_){const a=r("Badge");return p(),m("div",null,[c,e("p",null,[t("版本要求: "),s(a,{text:"2022.2.1"})]),l,d,u])}const q=n(i,[["render",h],["__file","tempRequest.html.vue"]]),R=JSON.parse('{"path":"/guide/features/tempRequest.html","title":"临时请求保存支持","lang":"zh-CN","frontmatter":{"description":"临时请求保存支持 版本要求: 目的:项目中保存任意不属于本项目的请求,用于临时调用,跟当前项目代码不关联 临时请求保存的 Request 的 Url 必须以 http 或者 https 开头 tempSave ","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/features/tempRequest.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/features/tempRequest.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"临时请求保存支持"}],["meta",{"property":"og:description","content":"临时请求保存支持 版本要求: 目的:项目中保存任意不属于本项目的请求,用于临时调用,跟当前项目代码不关联 临时请求保存的 Request 的 Url 必须以 http 或者 https 开头 tempSave "}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.1/tempSave.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"临时请求保存支持"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"临时请求保存支持\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.1/tempSave.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.24,"words":71},"filePathRelative":"guide/features/tempRequest.md","localizedDate":"2024年5月31日","autoDesc":true}');export{q as comp,R as data}; diff --git a/assets/tempRequest.html-nFfGSo9a.js b/assets/tempRequest.html-nFfGSo9a.js new file mode 100644 index 000000000..2acb01e89 --- /dev/null +++ b/assets/tempRequest.html-nFfGSo9a.js @@ -0,0 +1 @@ +import{_ as o}from"./tempSave_en-UAfESuzh.js";import{_ as a,r as n,o as s,c as p,a as e,d as t,b as i}from"./app-8OZtYazS.js";const m={},c=e("h1",{id:"temporary-request",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#temporary-request"},[e("span",null,"Temporary request")])],-1),d=e("p",null,[e("strong",null,"Purpose"),t(": Save any request that does not belong to this project for temporary invocation, not associated with the current project code")],-1),l=e("p",null,[t("The Url of the Request saved by the temporary request must start with "),e("mark",null,"http"),t(" or "),e("mark",null,"https"),t(".")],-1),u=e("p",null,[e("img",{src:o,alt:"tempSave",loading:"lazy"})],-1);function h(y,g){const r=n("Badge");return s(),p("div",null,[c,e("p",null,[t("Version required: "),i(r,{text:"2022.2.1"})]),d,l,u])}const f=a(m,[["render",h],["__file","tempRequest.html.vue"]]),T=JSON.parse('{"path":"/en/guide/features/tempRequest.html","title":"Temporary request","lang":"en-US","frontmatter":{"description":"Temporary request Version required: Purpose: Save any request that does not belong to this project for temporary invocation, not associated with the current project code The Url...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/features/tempRequest.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/features/tempRequest.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Temporary request"}],["meta",{"property":"og:description","content":"Temporary request Version required: Purpose: Save any request that does not belong to this project for temporary invocation, not associated with the current project code The Url..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://api-buddy.com/img/2022.2.1/tempSave_en.png"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"Temporary request"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Temporary request\\",\\"image\\":[\\"https://api-buddy.com/img/2022.2.1/tempSave_en.png\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.16,"words":48},"filePathRelative":"en/guide/features/tempRequest.md","localizedDate":"May 31, 2024","autoDesc":true}');export{f as comp,T as data}; diff --git a/assets/tempSave-uWqV754c.js b/assets/tempSave-uWqV754c.js new file mode 100644 index 000000000..d6be5c674 --- /dev/null +++ b/assets/tempSave-uWqV754c.js @@ -0,0 +1 @@ +const p="/img/2022.2.1/tempSave.png";export{p as _}; diff --git a/assets/tempSave_en-UAfESuzh.js b/assets/tempSave_en-UAfESuzh.js new file mode 100644 index 000000000..67ecc2d42 --- /dev/null +++ b/assets/tempSave_en-UAfESuzh.js @@ -0,0 +1 @@ +const e="/img/2022.2.1/tempSave_en.png";export{e as _}; diff --git a/assets/toolwindowNew-QF7S_oTa.js b/assets/toolwindowNew-QF7S_oTa.js new file mode 100644 index 000000000..ee436c2bc --- /dev/null +++ b/assets/toolwindowNew-QF7S_oTa.js @@ -0,0 +1 @@ +const o="/img/toolwindowNew.png";export{o as _}; diff --git a/assets/transferData-jb4lwMnv.js b/assets/transferData-jb4lwMnv.js new file mode 100644 index 000000000..b682e7272 --- /dev/null +++ b/assets/transferData-jb4lwMnv.js @@ -0,0 +1 @@ +const s="/img/2023.1.3/refreshAPI.png",r="/img/2023.1.3/transferData.png";export{s as _,r as a}; diff --git a/assets/twitter-vJUFHWuk.js b/assets/twitter-vJUFHWuk.js new file mode 100644 index 000000000..db8997fd8 --- /dev/null +++ b/assets/twitter-vJUFHWuk.js @@ -0,0 +1 @@ +const t="/img/twitter.png";export{t as _}; diff --git a/assets/versionCompare.html-dy0-Xjyz.js b/assets/versionCompare.html-dy0-Xjyz.js new file mode 100644 index 000000000..bb5a5731a --- /dev/null +++ b/assets/versionCompare.html-dy0-Xjyz.js @@ -0,0 +1 @@ +import{_ as n,r as o,o as k,c as m,a as e,b as t,d as s,w as i,e as d}from"./app-8OZtYazS.js";const h={},r=e("p",null,[s("The paid version will introduce more "),e("strong",null,"excellent"),s(" and "),e("strong",null,"user-friendly"),s(" functions")],-1),u={class:"compare-wrapper",style:{display:"flex"}},b={class:"hint-container info",style:{"margin-right":"15px",width:"50%"}},_={class:"compare-title"},p=e("p",null,[e("strong",null,"Deeply optimized leading smart API debugging plugin")],-1),f={class:"task-list-container"},g=d('
  • ',5),x={class:"task-list-item"},y=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-5",checked:"checked",disabled:"disabled"},null,-1),v={class:"task-list-item-label",for:"task-item-5"},A={class:"task-list-item"},P=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-6",checked:"checked",disabled:"disabled"},null,-1),w={class:"task-list-item-label",for:"task-item-6"},I={class:"task-list-item"},C=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-7",checked:"checked",disabled:"disabled"},null,-1),q={class:"task-list-item-label",for:"task-item-7"},D={class:"task-list-item"},S=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-8",checked:"checked",disabled:"disabled"},null,-1),F={class:"task-list-item-label",for:"task-item-8"},R={class:"task-list-item"},N=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-9",checked:"checked",disabled:"disabled"},null,-1),T={class:"task-list-item-label",for:"task-item-9"},V={class:"task-list-item"},E=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-10",checked:"checked",disabled:"disabled"},null,-1),z={class:"task-list-item-label",for:"task-item-10"},B={class:"task-list-item"},U=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-11",checked:"checked",disabled:"disabled"},null,-1),j={class:"task-list-item-label",for:"task-item-11"},H={class:"task-list-item"},M=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-12",checked:"checked",disabled:"disabled"},null,-1),L={class:"task-list-item-label",for:"task-item-12"},G={class:"task-list-item"},O=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-13",checked:"checked",disabled:"disabled"},null,-1),Z={class:"task-list-item-label",for:"task-item-13"},W={class:"task-list-item"},J=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-14",checked:"checked",disabled:"disabled"},null,-1),K={class:"task-list-item-label",for:"task-item-14"},Y={class:"task-list-item"},Q=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-15",checked:"checked",disabled:"disabled"},null,-1),X={class:"task-list-item-label",for:"task-item-15"},$={class:"task-list-item"},ee=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-16",checked:"checked",disabled:"disabled"},null,-1),te={class:"task-list-item-label",for:"task-item-16"},se={class:"task-list-item"},ie=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-17",checked:"checked",disabled:"disabled"},null,-1),le={class:"task-list-item-label",for:"task-item-17"},ae={class:"task-list-item"},ce=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-18",checked:"checked",disabled:"disabled"},null,-1),oe={class:"task-list-item-label",for:"task-item-18"},de={class:"task-list-item"},ne=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-19",checked:"checked",disabled:"disabled"},null,-1),ke={class:"task-list-item-label",for:"task-item-19"},me={class:"task-list-item"},he=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-20",checked:"checked",disabled:"disabled"},null,-1),re={class:"task-list-item-label",for:"task-item-20"},ue={class:"task-list-item"},be=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-21",checked:"checked",disabled:"disabled"},null,-1),_e={class:"task-list-item-label",for:"task-item-21"},pe={class:"task-list-item"},fe=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-22",checked:"checked",disabled:"disabled"},null,-1),ge={class:"task-list-item-label",for:"task-item-22"},xe={class:"task-list-item"},ye=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-23",checked:"checked",disabled:"disabled"},null,-1),ve={class:"task-list-item-label",for:"task-item-23"},Ae={class:"task-list-item"},Pe=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-24",checked:"checked",disabled:"disabled"},null,-1),we={class:"task-list-item-label",for:"task-item-24"},Ie={class:"task-list-item"},Ce=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-25",checked:"checked",disabled:"disabled"},null,-1),qe={class:"task-list-item-label",for:"task-item-25"},De={class:"task-list-item"},Se=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-26",checked:"checked",disabled:"disabled"},null,-1),Fe={class:"task-list-item-label",for:"task-item-26"},Re={class:"task-list-item"},Ne=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-27",checked:"checked",disabled:"disabled"},null,-1),Te={class:"task-list-item-label",for:"task-item-27"},Ve={class:"task-list-item"},Ee=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-28",checked:"checked",disabled:"disabled"},null,-1),ze={class:"task-list-item-label",for:"task-item-28"},Be={class:"task-list-item"},Ue=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-29",checked:"checked",disabled:"disabled"},null,-1),je={class:"task-list-item-label",for:"task-item-29"},He={class:"task-list-item"},Me=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-30",checked:"checked",disabled:"disabled"},null,-1),Le={class:"task-list-item-label",for:"task-item-30"},Ge={class:"task-list-item"},Oe=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-31",checked:"checked",disabled:"disabled"},null,-1),Ze={class:"task-list-item-label",for:"task-item-31"},We={class:"task-list-item"},Je=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-32",checked:"checked",disabled:"disabled"},null,-1),Ke={class:"task-list-item-label",for:"task-item-32"},Ye={class:"task-list-item"},Qe=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-33",checked:"checked",disabled:"disabled"},null,-1),Xe={class:"task-list-item-label",for:"task-item-33"},$e={class:"task-list-item"},et=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-34",checked:"checked",disabled:"disabled"},null,-1),tt={class:"task-list-item-label",for:"task-item-34"},st={class:"hint-container tip",style:{"margin-left":"15px",width:"50%"}},it={class:"compare-title"},lt=e("p",null,[e("strong",null,"Basic API debugging plugin")],-1),at=d('
    ',1);function ct(ot,dt){const l=o("ColorIcon"),c=o("Badge"),a=o("RouteLink");return k(),m("div",null,[r,e("div",u,[e("div",b,[e("div",_,[t(l,{icon:"restfulFastRequest"}),s("Paid Version ")]),p,t(c,{vertical:"baseline",color:"#FC801D"},{default:i(()=>[s("IDEA 2021.2")]),_:1}),t(c,{vertical:"baseline",color:"#21D789"},{default:i(()=>[s("Humanize")]),_:1}),t(c,{vertical:"baseline",color:"#FF318C"},{default:i(()=>[s("Advanced")]),_:1}),e("ul",f,[g,e("li",x,[y,e("label",v,[t(a,{to:"/en/guide/features/apiToPostman.html"},{default:i(()=>[t(l,{icon:"postman"}),s(" Export to Postman")]),_:1})])]),e("li",A,[P,e("label",w,[t(a,{to:"/en/guide/teamwork.html"},{default:i(()=>[t(l,{icon:"restfulFastRequest"}),s(" Team work support")]),_:1})])]),e("li",I,[C,e("label",q,[t(a,{to:"/en/guide/features/makeIconMove.html"},{default:i(()=>[t(l,{icon:"restfulFastRequest"}),s(" Funny icon")]),_:1})])]),e("li",D,[S,e("label",F,[t(a,{to:"/en/guide/features/script.html"},{default:i(()=>[t(l,{icon:"scriptNew"}),s(" Script")]),_:1})])]),e("li",R,[N,e("label",T,[t(a,{to:"/en/guide/features/ai.html"},{default:i(()=>[t(l,{icon:"openai"}),s(" OpenAI API Optimizing fields")]),_:1})])]),e("li",V,[E,e("label",z,[t(a,{to:"/en/guide/features/projectValueConfig.html"},{default:i(()=>[t(l,{icon:"quanjucanshu"}),s(" Project-level config")]),_:1})])]),e("li",B,[U,e("label",j,[t(a,{to:"/en/guide/features/environment.html"},{default:i(()=>[t(l,{icon:"environment"}),s(" Environment")]),_:1})])]),e("li",H,[M,e("label",L,[t(a,{to:"/en/guide/features/projectLevelDomainConfig.html"},{default:i(()=>[t(l,{icon:"domainConfigNew"}),s(" Yaml、Properties domain parse")]),_:1})])]),e("li",G,[O,e("label",Z,[t(a,{to:"/en/guide/features/stopRequest.html"},{default:i(()=>[t(l,{icon:"stop"}),s(" Stop API request")]),_:1})])]),e("li",W,[J,e("label",K,[t(a,{to:"/en/guide/features/navigateCurrentMethod.html"},{default:i(()=>[t(l,{icon:"localScope"}),s(" Navigate to current method")]),_:1})])]),e("li",Y,[Q,e("label",X,[t(a,{to:"/en/guide/features/apiGroup.html"},{default:i(()=>[t(l,{icon:"saveGroup"}),t(l,{icon:"apiParamGroupNew"}),s(" API grouping")]),_:1})])]),e("li",$,[ee,e("label",te,[t(a,{to:"/en/guide/features/tempRequest.html"},{default:i(()=>[t(l,{icon:"saveTemp"}),s(" Temporary request")]),_:1})])]),e("li",se,[ie,e("label",le,[t(a,{to:"/en/guide/features/clear.html"},{default:i(()=>[t(l,{icon:"clearNew"}),s(" Clear params")]),_:1})])]),e("li",ae,[ce,e("label",oe,[t(a,{to:"/en/guide/features/clear.html"},{default:i(()=>[t(l,{icon:"import"}),s(" cURL import")]),_:1})])]),e("li",de,[ne,e("label",ke,[t(a,{to:"/en/guide/features/copyUrl.html"},{default:i(()=>[t(l,{icon:"urlCopy"}),s(" Url copy")]),_:1})])]),e("li",me,[he,e("label",re,[t(a,{to:"/en/guide/features/historyRequest.html"},{default:i(()=>[t(l,{icon:"historyNew"}),s(" History request")]),_:1})])]),e("li",ue,[be,e("label",_e,[t(a,{to:"/en/guide/features/apiDocSync.html"},{default:i(()=>[t(l,{icon:"github"}),t(l,{icon:"gitee"}),t(l,{icon:"gitlab"}),s(" API document sync")]),_:1})])]),e("li",pe,[fe,e("label",ge,[t(a,{to:"/en/guide/features/shareApiDoc.html"},{default:i(()=>[t(l,{icon:"markdown"}),s(" API document sharing")]),_:1})])]),e("li",xe,[ye,e("label",ve,[t(a,{to:"/en/guide/features/fullScreen.html"},{default:i(()=>[t(l,{icon:"fullScreen"}),s(" FullScreen")]),_:1})])]),e("li",Ae,[Pe,e("label",we,[t(a,{to:"/en/guide/features/commonHeader.html"},{default:i(()=>[t(l,{icon:"commonHeaderNew"}),s(" Common header")]),_:1})])]),e("li",Ie,[Ce,e("label",qe,[t(a,{to:"/en/guide/features/htmlPreview.html"},{default:i(()=>[t(l,{icon:"chrome"}),s(" Html preview")]),_:1})])]),e("li",De,[Se,e("label",Fe,[t(a,{to:"/en/guide/features/apiImportExport.html"},{default:i(()=>[t(l,{icon:"export"}),s(" APIs import and export")]),_:1})])]),e("li",Re,[Ne,e("label",Te,[t(a,{to:"/en/guide/features/batchExportApiDoc.html"},{default:i(()=>[t(l,{icon:"markdown"}),s(" Batch export API doc")]),_:1})])]),e("li",Ve,[Ee,e("label",ze,[t(a,{to:"/en/guide/features/swaggerDefaultValueParse.html"},{default:i(()=>[t(l,{icon:"swagger"}),s(" Swagger default value parsing support")]),_:1})])]),e("li",Be,[Ue,e("label",je,[t(a,{to:"/en/guide/features/autoDescription.html"},{default:i(()=>[t(l,{icon:"java"}),s(" Auto Description")]),_:1})])]),e("li",He,[Me,e("label",Le,[t(a,{to:"/en/guide/features/apiPreview.html"},{default:i(()=>[t(l,{icon:"restfulFastRequest"}),s(" API list preview<")]),_:1})])]),e("li",Ge,[Oe,e("label",Ze,[t(a,{to:"/en/guide/features/apiCommentPreview.html"},{default:i(()=>[t(l,{icon:"class"}),s(" Api 注释预览")]),_:1})])]),e("li",We,[Je,e("label",Ke,[t(a,{to:"/en/guide/features/autoDomain.html"},{default:i(()=>[t(l,{icon:"restfulFastRequest"}),s(" Auto domain")]),_:1})])]),e("li",Ye,[Qe,e("label",Xe,[t(a,{to:"/en/guide/features/annualReport.html"},{default:i(()=>[t(l,{icon:"analyseNew"}),s(" Annual report")]),_:1})])]),e("li",$e,[et,e("label",tt,[t(a,{to:"/en/guide/features/"},{default:i(()=>[s("More...")]),_:1})])])])]),e("div",st,[e("div",it,[t(l,{icon:"restfulFastRequest1"}),s("Free version ")]),lt,t(c,{vertical:"baseline",color:"#FE2857"},{default:i(()=>[s("IDEA 2020.3~2021.1.3")]),_:1}),t(c,{vertical:"baseline",color:"#07C3F2"},{default:i(()=>[s("Basic usage")]),_:1}),at])])])}const kt=n(h,[["render",ct],["__file","versionCompare.html.vue"]]),mt=JSON.parse('{"path":"/en/guide/versionCompare.html","title":"Version compare","lang":"en-US","frontmatter":{"icon":"versionCompare","title":"Version compare","description":"The paid version will introduce more excellent and user-friendly functions Deeply optimized leading smart API debugging plugin API generation(user-friendly generation strategy) ...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/versionCompare.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/versionCompare.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"Version compare"}],["meta",{"property":"og:description","content":"The paid version will introduce more excellent and user-friendly functions Deeply optimized leading smart API debugging plugin API generation(user-friendly generation strategy) ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Version compare\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.06,"words":18},"filePathRelative":"en/guide/versionCompare.md","localizedDate":"May 31, 2024","autoDesc":true}');export{kt as comp,mt as data}; diff --git a/assets/versionCompare.html-j1fFeGo4.js b/assets/versionCompare.html-j1fFeGo4.js new file mode 100644 index 000000000..f7102ada9 --- /dev/null +++ b/assets/versionCompare.html-j1fFeGo4.js @@ -0,0 +1 @@ +import{_ as k,r as o,o as n,c as h,a as e,b as t,d as s,w as i,e as d}from"./app-8OZtYazS.js";const m={},b=e("p",null,[s("收费版本将推出更多"),e("strong",null,"优秀"),s("并且"),e("strong",null,"人性化"),s("的功能,欢迎大家使用!")],-1),_={class:"compare-wrapper",style:{display:"flex"}},r={class:"hint-container info",style:{"margin-right":"15px",width:"50%"}},u={class:"compare-title"},p=e("p",null,[e("strong",null,"深度优化的领先的智能 API 调试插件")],-1),f={class:"task-list-container"},x=d('
  • ',5),g={class:"task-list-item"},y=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-5",checked:"checked",disabled:"disabled"},null,-1),P={class:"task-list-item-label",for:"task-item-5"},v={class:"task-list-item"},A=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-6",checked:"checked",disabled:"disabled"},null,-1),I={class:"task-list-item-label",for:"task-item-6"},C={class:"task-list-item"},w=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-7",checked:"checked",disabled:"disabled"},null,-1),R={class:"task-list-item-label",for:"task-item-7"},N={class:"task-list-item"},S=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-8",checked:"checked",disabled:"disabled"},null,-1),q={class:"task-list-item-label",for:"task-item-8"},D={class:"task-list-item"},E=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-9",checked:"checked",disabled:"disabled"},null,-1),F={class:"task-list-item-label",for:"task-item-9"},T={class:"task-list-item"},U=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-10",checked:"checked",disabled:"disabled"},null,-1),V={class:"task-list-item-label",for:"task-item-10"},W={class:"task-list-item"},j=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-11",checked:"checked",disabled:"disabled"},null,-1),B={class:"task-list-item-label",for:"task-item-11"},L={class:"task-list-item"},z=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-12",checked:"checked",disabled:"disabled"},null,-1),G={class:"task-list-item-label",for:"task-item-12"},H={class:"task-list-item"},M=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-13",checked:"checked",disabled:"disabled"},null,-1),Z={class:"task-list-item-label",for:"task-item-13"},J={class:"task-list-item"},K=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-14",checked:"checked",disabled:"disabled"},null,-1),O={class:"task-list-item-label",for:"task-item-14"},Y={class:"task-list-item"},Q=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-15",checked:"checked",disabled:"disabled"},null,-1),X={class:"task-list-item-label",for:"task-item-15"},$={class:"task-list-item"},ee=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-16",checked:"checked",disabled:"disabled"},null,-1),te={class:"task-list-item-label",for:"task-item-16"},se={class:"task-list-item"},ie=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-17",checked:"checked",disabled:"disabled"},null,-1),le={class:"task-list-item-label",for:"task-item-17"},ae={class:"task-list-item"},ce=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-18",checked:"checked",disabled:"disabled"},null,-1),oe={class:"task-list-item-label",for:"task-item-18"},de={class:"task-list-item"},ke=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-19",checked:"checked",disabled:"disabled"},null,-1),ne={class:"task-list-item-label",for:"task-item-19"},he={class:"task-list-item"},me=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-20",checked:"checked",disabled:"disabled"},null,-1),be={class:"task-list-item-label",for:"task-item-20"},_e={class:"task-list-item"},re=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-21",checked:"checked",disabled:"disabled"},null,-1),ue={class:"task-list-item-label",for:"task-item-21"},pe={class:"task-list-item"},fe=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-22",checked:"checked",disabled:"disabled"},null,-1),xe={class:"task-list-item-label",for:"task-item-22"},ge={class:"task-list-item"},ye=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-23",checked:"checked",disabled:"disabled"},null,-1),Pe={class:"task-list-item-label",for:"task-item-23"},ve={class:"task-list-item"},Ae=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-24",checked:"checked",disabled:"disabled"},null,-1),Ie={class:"task-list-item-label",for:"task-item-24"},Ce={class:"task-list-item"},we=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-25",checked:"checked",disabled:"disabled"},null,-1),Re={class:"task-list-item-label",for:"task-item-25"},Ne={class:"task-list-item"},Se=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-26",checked:"checked",disabled:"disabled"},null,-1),qe={class:"task-list-item-label",for:"task-item-26"},De={class:"task-list-item"},Ee=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-27",checked:"checked",disabled:"disabled"},null,-1),Fe={class:"task-list-item-label",for:"task-item-27"},Te={class:"task-list-item"},Ue=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-28",checked:"checked",disabled:"disabled"},null,-1),Ve={class:"task-list-item-label",for:"task-item-28"},We={class:"task-list-item"},je=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-29",checked:"checked",disabled:"disabled"},null,-1),Be={class:"task-list-item-label",for:"task-item-29"},Le={class:"task-list-item"},ze=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-30",checked:"checked",disabled:"disabled"},null,-1),Ge={class:"task-list-item-label",for:"task-item-30"},He={class:"task-list-item"},Me=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-31",checked:"checked",disabled:"disabled"},null,-1),Ze={class:"task-list-item-label",for:"task-item-31"},Je={class:"task-list-item"},Ke=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-32",checked:"checked",disabled:"disabled"},null,-1),Oe={class:"task-list-item-label",for:"task-item-32"},Ye={class:"task-list-item"},Qe=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-33",checked:"checked",disabled:"disabled"},null,-1),Xe={class:"task-list-item-label",for:"task-item-33"},$e={class:"task-list-item"},et=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-34",checked:"checked",disabled:"disabled"},null,-1),tt={class:"task-list-item-label",for:"task-item-34"},st={class:"hint-container tip",style:{"margin-left":"15px",width:"50%"}},it={class:"compare-title"},lt=e("p",null,[e("strong",null,"基础 API 调试插件")],-1),at={class:"task-list-container"},ct=d('
  • ',5),ot={class:"task-list-item"},dt=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-40",checked:"checked",disabled:"disabled"},null,-1),kt={class:"task-list-item-label",for:"task-item-40"};function nt(ht,mt){const l=o("ColorIcon"),c=o("Badge"),a=o("RouteLink");return n(),h("div",null,[b,e("div",_,[e("div",r,[e("div",u,[t(l,{icon:"restfulFastRequest"}),s("收费版 ")]),p,t(c,{vertical:"baseline",color:"#FC801D"},{default:i(()=>[s("IDEA 2021.2+")]),_:1}),t(c,{vertical:"baseline",color:"#45b787"},{default:i(()=>[s("人性化")]),_:1}),t(c,{vertical:"baseline",color:"#eea2a4"},{default:i(()=>[s("功能丰富")]),_:1}),t(c,{vertical:"baseline",color:"#087CFA"},{default:i(()=>[s("高阶")]),_:1}),e("ul",f,[x,e("li",g,[y,e("label",P,[t(a,{to:"/guide/features/apiToPostman.html"},{default:i(()=>[t(l,{icon:"postman"}),s(" API 导出到 Postman")]),_:1})])]),e("li",v,[A,e("label",I,[t(a,{to:"/guide/teamwork.html"},{default:i(()=>[t(l,{icon:"restfulFastRequest"}),s(" 团队协作")]),_:1})])]),e("li",C,[w,e("label",R,[t(a,{to:"/guide/features/makeIconMove.html"},{default:i(()=>[t(l,{icon:"restfulFastRequest"}),s(" 动态图标")]),_:1})])]),e("li",N,[S,e("label",q,[t(a,{to:"/guide/features/script.html"},{default:i(()=>[t(l,{icon:"scriptNew"}),s(" 脚本支持")]),_:1})])]),e("li",D,[E,e("label",F,[t(a,{to:"/guide/features/ai.html"},{default:i(()=>[t(l,{icon:"openai"}),s(" AI 字段替换")]),_:1})])]),e("li",T,[U,e("label",V,[t(a,{to:"/guide/features/projectValueConfig.html"},{default:i(()=>[t(l,{icon:"quanjucanshu"}),s(" 项目级别全局参数支持")]),_:1})])]),e("li",W,[j,e("label",B,[t(a,{to:"/guide/features/environment.html"},{default:i(()=>[t(l,{icon:"environment"}),s(" Environment")]),_:1})])]),e("li",L,[z,e("label",G,[t(a,{to:"/guide/features/projectLevelDomainConfig.html"},{default:i(()=>[t(l,{icon:"domainConfigNew"}),s(" Yaml、Properties 自动识别支持")]),_:1})])]),e("li",H,[M,e("label",Z,[t(a,{to:"/guide/features/stopRequest.html"},{default:i(()=>[t(l,{icon:"stop"}),s(" 终止 API 请求功能")]),_:1})])]),e("li",J,[K,e("label",O,[t(a,{to:"/guide/features/navigateCurrentMethod.html"},{default:i(()=>[t(l,{icon:"localScope"}),s("当前方法定位")]),_:1})])]),e("li",Y,[Q,e("label",X,[t(a,{to:"/guide/features/apiGroup.html"},{default:i(()=>[t(l,{icon:"saveGroup"}),t(l,{icon:"apiParamGroupNew"}),s(" API 分组")]),_:1})])]),e("li",$,[ee,e("label",te,[t(a,{to:"/guide/features/tempRequest.html"},{default:i(()=>[t(l,{icon:"saveTemp"}),s(" 临时请求")]),_:1})])]),e("li",se,[ie,e("label",le,[t(a,{to:"/guide/features/clear.html"},{default:i(()=>[t(l,{icon:"clearNew"}),s(" 一键清除参数")]),_:1})])]),e("li",ae,[ce,e("label",oe,[t(a,{to:"/guide/features/clear.html"},{default:i(()=>[t(l,{icon:"import"}),s(" cURL 导入")]),_:1})])]),e("li",de,[ke,e("label",ne,[t(a,{to:"/guide/features/copyUrl.html"},{default:i(()=>[t(l,{icon:"urlCopy"}),s(" 一键拷贝 Url")]),_:1})])]),e("li",he,[me,e("label",be,[t(a,{to:"/guide/features/historyRequest.html"},{default:i(()=>[t(l,{icon:"historyNew"}),s(" 历史请求预览")]),_:1})])]),e("li",_e,[re,e("label",ue,[t(a,{to:"/guide/features/apiDocSync.html"},{default:i(()=>[t(l,{icon:"github"}),t(l,{icon:"gitee"}),t(l,{icon:"gitlab"}),s(" API 文档同步")]),_:1})])]),e("li",pe,[fe,e("label",xe,[t(a,{to:"/guide/features/shareApiDoc.html"},{default:i(()=>[t(l,{icon:"markdown"}),s(" API 文档分享")]),_:1})])]),e("li",ge,[ye,e("label",Pe,[t(a,{to:"/guide/features/fullScreen.html"},{default:i(()=>[t(l,{icon:"fullScreen"}),s(" 全屏")]),_:1})])]),e("li",ve,[Ae,e("label",Ie,[t(a,{to:"/guide/features/commonHeader.html"},{default:i(()=>[t(l,{icon:"commonHeaderNew"}),s(" 常用头参数")]),_:1})])]),e("li",Ce,[we,e("label",Re,[t(a,{to:"/guide/features/htmlPreview.html"},{default:i(()=>[t(l,{icon:"chrome"}),s(" Html 预览")]),_:1})])]),e("li",Ne,[Se,e("label",qe,[t(a,{to:"/guide/features/apiImportExport.html"},{default:i(()=>[t(l,{icon:"export"}),s(" APIs 导入导出")]),_:1})])]),e("li",De,[Ee,e("label",Fe,[t(a,{to:"/guide/features/batchExportApiDoc.html"},{default:i(()=>[t(l,{icon:"markdown"}),s(" 批量导出 API 文档")]),_:1})])]),e("li",Te,[Ue,e("label",Ve,[t(a,{to:"/guide/features/swaggerDefaultValueParse.html"},{default:i(()=>[t(l,{icon:"swagger"}),s(" Swagger 默认值解析")]),_:1})])]),e("li",We,[je,e("label",Be,[t(a,{to:"/guide/features/autoDescription.html"},{default:i(()=>[t(l,{icon:"java"}),s(" API 自动生成注释")]),_:1})])]),e("li",Le,[ze,e("label",Ge,[t(a,{to:"/guide/features/apiPreview.html"},{default:i(()=>[t(l,{icon:"restfulFastRequest"}),s(" API 一览表预览")]),_:1})])]),e("li",He,[Me,e("label",Ze,[t(a,{to:"/guide/features/apiCommentPreview.html"},{default:i(()=>[t(l,{icon:"class"}),s(" Api 注释预览")]),_:1})])]),e("li",Je,[Ke,e("label",Oe,[t(a,{to:"/guide/features/autoDomain.html"},{default:i(()=>[t(l,{icon:"restfulFastRequest"}),s(" 自动域名")]),_:1})])]),e("li",Ye,[Qe,e("label",Xe,[t(a,{to:"/guide/features/annualReport.html"},{default:i(()=>[t(l,{icon:"analyseNew"}),s(" 年度报告")]),_:1})])]),e("li",$e,[et,e("label",tt,[t(a,{to:"/guide/features/"},{default:i(()=>[s("更多...")]),_:1})])])])]),e("div",st,[e("div",it,[t(l,{icon:"restfulFastRequest1"}),s("免费版 ")]),lt,t(c,{vertical:"baseline",color:"#FC801D"},{default:i(()=>[s("IDEA 2020.3~2021.1.3")]),_:1}),t(c,{vertical:"baseline",color:"#07C3F2"},{default:i(()=>[s("基础使用")]),_:1}),e("ul",at,[ct,e("li",ot,[dt,e("label",kt,[t(a,{to:"/guide/features/apiToPostman.html"},{default:i(()=>[t(l,{icon:"postman"}),s(" API 导出到 Postman")]),_:1})])])])])])])}const _t=k(m,[["render",nt],["__file","versionCompare.html.vue"]]),rt=JSON.parse('{"path":"/guide/versionCompare.html","title":"版本对比","lang":"zh-CN","frontmatter":{"icon":"versionCompare","title":"版本对比","description":"收费版本将推出更多优秀并且人性化的功能,欢迎大家使用! 深度优化的领先的智能 API 调试插件 API 一键生成(更加人性化的参数生成策略) API 保存、管理 SearchEveryWhere(支持接口名称查询) cUrl 拷贝 API 导航 基础 API 调试插件 API 一键生成 API 保存、管理 SearchEveryWhere(不支持接口名...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/versionCompare.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/versionCompare.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"版本对比"}],["meta",{"property":"og:description","content":"收费版本将推出更多优秀并且人性化的功能,欢迎大家使用! 深度优化的领先的智能 API 调试插件 API 一键生成(更加人性化的参数生成策略) API 保存、管理 SearchEveryWhere(支持接口名称查询) cUrl 拷贝 API 导航 基础 API 调试插件 API 一键生成 API 保存、管理 SearchEveryWhere(不支持接口名..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-05-31T09:24:19.000Z"}],["meta",{"property":"article:modified_time","content":"2024-05-31T09:24:19.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"版本对比\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-05-31T09:24:19.000Z\\",\\"author\\":[]}"]]},"headers":[],"git":{"createdTime":1717147459000,"updatedTime":1717147459000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":1}]},"readingTime":{"minutes":0.11,"words":34},"filePathRelative":"guide/versionCompare.md","localizedDate":"2024年5月31日","autoDesc":true}');export{_t as comp,rt as data}; diff --git a/assets/vidstack-BInq9zTH-fGAq8GWc.js b/assets/vidstack-BInq9zTH-fGAq8GWc.js new file mode 100644 index 000000000..b16afd111 --- /dev/null +++ b/assets/vidstack-BInq9zTH-fGAq8GWc.js @@ -0,0 +1 @@ +const g=/(?:https:\/\/)?(?:player\.)?vimeo(?:\.com)?\/(?:video\/)?(\d+)(?:(?:\?hash=|\?h=|\/)(.*))?/,c=new Map,i=new Map;function b(n){const o=n.match(g);return{videoId:o==null?void 0:o[1],hash:o==null?void 0:o[2]}}async function w(n,o,r){if(c.has(n))return c.get(n);if(i.has(n))return i.get(n);let t=`https://vimeo.com/api/oembed.json?url=https://player.vimeo.com/video/${n}`;r&&(t=t.concat(`?h=${r}`));const s=window.fetch(t,{mode:"cors",signal:o.signal}).then(e=>e.json()).then(e=>{var l,p;const u=/vimeocdn.com\/video\/(.*)?_/,h=(p=(l=e==null?void 0:e.thumbnail_url)==null?void 0:l.match(u))==null?void 0:p[1],f=h?`https://i.vimeocdn.com/video/${h}_1920x1080.webp`:"",m={title:(e==null?void 0:e.title)??"",duration:(e==null?void 0:e.duration)??0,poster:f,pro:e.account_type!=="basic"};return c.set(n,m),m}).finally(()=>i.delete(n));return i.set(n,s),s}export{w as getVimeoVideoInfo,b as resolveVimeoVideoId}; diff --git a/assets/vidstack-CRlTZX3Z-YlNA3hI6.js b/assets/vidstack-CRlTZX3Z-YlNA3hI6.js new file mode 100644 index 000000000..d3bdffcee --- /dev/null +++ b/assets/vidstack-CRlTZX3Z-YlNA3hI6.js @@ -0,0 +1 @@ +import{I as H}from"./vidstack-DQ6dSZwe-FUyOJuAD.js";var f=' ',M=' ',o='',Z='',e='',h=' ',v='',I='',L=' ',C='',$=' ',s=' ',t='',n='',c=' ',d=' ',m='',a=' ',k=' ',u=' ',i=' ',V=' ',p='',b=' ',w='',y=' ',g=' ',x='',r=' ',l=' ';const z={airplay:M,download:$,play:p,pause:u,replay:w,mute:a,"google-cast":H,"volume-low":l,"volume-high":r,"cc-on":L,"cc-off":C,"pip-enter":V,"pip-exit":i,"fs-enter":d,"fs-exit":c,"seek-forward":g,"seek-backward":y,"menu-chapters":h,"menu-settings":x,"menu-arrow-left":Z,"menu-arrow-right":I,"menu-accessibility":f,"menu-audio":m,"menu-audio-boost-up":r,"menu-audio-boost-down":l,"menu-playback":b,"menu-speed-up":n,"menu-speed-down":t,"menu-captions":C,"menu-quality-up":e,"menu-quality-down":o,"menu-radio-check":v,"menu-font-size-up":e,"menu-font-size-down":o,"menu-opacity-up":s,"menu-opacity-down":k,"kb-play":p,"kb-pause":u,"kb-mute":a,"kb-volume-up":r,"kb-volume-down":l,"kb-fs-enter":d,"kb-fs-exit":c,"kb-pip-enter":V,"kb-pip-exit":i,"kb-cc-on":L,"kb-cc-off":C,"kb-seek-forward":n,"kb-seek-backward":t};export{z as icons}; diff --git a/assets/vidstack-CSNoShp--3DcVQJ7H.js b/assets/vidstack-CSNoShp--3DcVQJ7H.js new file mode 100644 index 000000000..16cd489f7 --- /dev/null +++ b/assets/vidstack-CSNoShp--3DcVQJ7H.js @@ -0,0 +1 @@ +import{aZ as m,e as d,b0 as i}from"./vidstack-CSaHpIQV-AmLqxEmn.js";import{I as p}from"./vidstack-DQ6dSZwe-FUyOJuAD.js";import"./app-8OZtYazS.js";const r=i('');function f(o,s){const a=m(r);a.innerHTML=p,o.append(a);const e=document.createElement("span");e.classList.add("vds-google-cast-info"),o.append(e);const n=document.createElement("span");n.classList.add("vds-google-cast-device-name"),d(()=>{const{remotePlaybackInfo:c}=s,t=c();return t!=null&&t.deviceName&&(n.textContent=t.deviceName,e.append("Google Cast on ",n)),()=>{e.textContent=""}})}export{f as insertContent}; diff --git a/assets/vidstack-CSaHpIQV-AmLqxEmn.js b/assets/vidstack-CSaHpIQV-AmLqxEmn.js new file mode 100644 index 000000000..ed8208d81 --- /dev/null +++ b/assets/vidstack-CSaHpIQV-AmLqxEmn.js @@ -0,0 +1,7 @@ +import{i as Le}from"./app-8OZtYazS.js";const Y=Symbol(0);let qt=!1,ue=!1,B=null,ft=null,_=null,R=0,ut=[],ge={};const Mn=()=>{},gt=0,rn=1,Tt=2,Jt=3;function Bn(){qt=!0,queueMicrotask(on)}function on(){if(!ut.length){qt=!1;return}ue=!0;for(let t=0;t=0;n--)ve(e[n])}function Hn(t){const e=fe();return Ct(e,t.length?t.bind(null,dt.bind(e)):t,null)}function rr(t){return Ct(B,t,null)}function Wn(t){return Ct(null,t,null)}function jn(){ue||on()}function Qt(){return B}function M(t,e){try{return Ct(e,t,null)}catch(n){be(e,n);return}}function cn(t,e=B){return e==null?void 0:e.$cx[t]}function qn(t,e,n=B){n&&(n.$cx={...n.$cx,[t]:e})}function At(t){if(!t||!B)return t||Mn;const e=B;return e.$d?Array.isArray(e.$d)?e.$d.push(t):e.$d=[e.$d,t]:e.$d=t,function(){e.$st!==Jt&&(t.call(null),Zt(e.$d)?e.$d=null:Array.isArray(e.$d)&&e.$d.splice(e.$d.indexOf(t),1))}}function dt(t=!0){if(this.$st!==Jt){if(this.$h)if(Array.isArray(this.$h))for(let e=this.$h.length-1;e>=0;e--)dt.call(this.$h[e]);else dt.call(this.$h);if(t){const e=this[Y];e&&(Array.isArray(e.$h)?e.$h.splice(e.$h.indexOf(this),1):e.$h=null),Un(this)}}}function Un(t){t.$st=Jt,t.$d&&ln(t),t.$s&&jt(t,0),t[Y]=null,t.$s=null,t.$o=null,t.$h=null,t.$cx=ge,t.$eh=null}function ln(t){try{if(Array.isArray(t.$d))for(let e=t.$d.length-1;e>=0;e--){const n=t.$d[e];n.call(n)}else t.$d.call(t.$d);t.$d=null}catch(e){be(t,e)}}function Ct(t,e,n){const i=B,s=ft;B=t,ft=n;try{return e.call(t)}finally{B=i,ft=s}}function be(t,e){if(!t||!t.$eh)throw e;let n=0,i=t.$eh.length,s=Fe(e);for(n=0;n0){t.$s.length=R+_.length;for(let r=0;r<_.length;r++)t.$s[R+r]=_[r]}else t.$s=_;let s;for(let r=R;r=e)&&(t.$e&&t.$st===gt&&(ut.push(t),qt||Bn()),t.$st=e,t.$o))for(let n=0;n"u"}function or(t){return Ee(t)||q(t)}function cr(t){return(t==null?void 0:t.constructor)===Object}function De(t){return typeof t=="number"&&!Number.isNaN(t)}function x(t){return typeof t=="string"}function Ie(t){return typeof t=="boolean"}function U(t){return typeof t=="function"}function xt(t){return Array.isArray(t)}var Me;const zn=Event,pn=Symbol("DOM_EVENT");class D extends zn{constructor(e,...n){var s,r;super(e,n[0]),this[Me]=!0,this.triggers=new Gn,this.detail=(s=n[0])==null?void 0:s.detail;const i=(r=n[0])==null?void 0:r.trigger;i&&this.triggers.add(i)}get trigger(){return this.triggers.source}get originEvent(){return this.triggers.origin}get isOriginTrusted(){var e;return((e=this.triggers.origin)==null?void 0:e.isTrusted)??!1}}Me=pn;class Gn{constructor(){this.chain=[]}get source(){return this.chain[0]}get origin(){return this.chain[this.chain.length-1]}add(e){this.chain.push(e),Xn(e)&&this.chain.push(...e.triggers)}remove(e){return this.chain.splice(this.chain.indexOf(e),1)[0]}has(e){return this.chain.some(n=>n===e)}hasType(e){return!!this.findType(e)}findType(e){return this.chain.find(n=>n.type===e)}walk(e){for(const n of this.chain){const i=e(n);if(i)return[n,i]}}[Symbol.iterator](){return this.chain.values()}}function Xn(t){return!!(t!=null&&t[pn])}class mn extends EventTarget{addEventListener(e,n,i){return super.addEventListener(e,n,i)}removeEventListener(e,n,i){return super.removeEventListener(e,n,i)}}function k(t,e,n,i){return t.addEventListener(e,n,i),At(()=>t.removeEventListener(e,n,i))}function lr(t){return!!(t!=null&&t.type.startsWith("pointer"))}function Kn(t){return!!(t!=null&&t.type.startsWith("touch"))}function ar(t){return/^(click|mouse)/.test((t==null?void 0:t.type)??"")}function gn(t){return!!(t!=null&&t.type.startsWith("key"))}function ur(t){return gn(t)&&t.key==="Enter"}function Jn(t){return gn(t)&&(t.key==="Enter"||t.key===" ")}function Qn(t){return t instanceof Node}function Ut(t,e,n){if(t)if(!n&&n!==""&&n!==0)t.removeAttribute(e);else{const i=n===!0?"":n+"";t.getAttribute(e)!==i&&t.setAttribute(e,i)}else return}function he(t,e,n){if(t)!n&&n!==0?t.style.removeProperty(e):t.style.setProperty(e,n+"");else return}function Be(t,e,n){t.classList[n?"add":"remove"](e)}function it(t,e){const n=Se(t,null,e),i=ye.bind(n);return i[Y]=!0,i.set=an.bind(n),i}function Zn(t){return Zt(t)&&Y in t}function bn(t,e){const n=Se(e==null?void 0:e.initial,t,e),i=ye.bind(n);return i[Y]=!0,i}function ti(t,e){const n=Se(null,function(){let s=t();return Zt(s)&&At(s),null},void 0);return n.$e=!0,fn(n),dt.bind(n,!0)}function fr(t){return Zn(t)&&"set"in t}const z=ti;function ei(t){return{id:Symbol(),provide:t}}function ni(t,e,n=Qt()){var s;const i=!q(e);qn(t.id,i?e:(s=t.provide)==null?void 0:s.call(t),n)}function yn(t){return cn(t.id)}function hr(t){return!q(cn(t.id))}const St=Symbol(0),vt=Symbol(0),wn=Symbol(0);var Ve;const re={};class ii{constructor(e,n,i){var o;this[Ve]=null,this.$el=it(null),this.a=null,this.d=null,this.f=null,this.g=null,this.e=null,this.o=!1,this.i=re,this.b=null,this.c=null,this.l=[],this.m=[],this.j=[],this.n=[],this.d=n,i!=null&&i.scope&&i.scope.append(n);let s=e.state,r=e.props;if(s&&(this.h=s.create(),this.k=new Proxy(this.h,{get:(l,c)=>this.h[c]()}),ni(s,this.h)),r&&(this.i=si(r),i!=null&&i.props))for(const l of Object.keys(i.props))(o=this.i[l])==null||o.set(i.props[l]);At(this.p.bind(this))}w(){M(()=>{for(const e of this.l)e()},this.d)}x(e){this.a||(this.a=e,this.$el.set(e),M(()=>{this.f=fe(),M(()=>{for(const n of this.m)n(this.a);this.q(),this.r()},this.f)},this.d),e.dispatchEvent(new Event("attached")))}s(){var e;(e=this.f)==null||e.dispose(),this.f=null,this.g=null,this.a=null,this.$el.set(null)}y(){!this.a||!this.f||!this.j.length||M(()=>{this.g=fe(),M(()=>{for(const e of this.j)e(this.a)},this.g)},this.f)}z(){var e;(e=this.g)==null||e.dispose(),this.g=null}p(){if(this.o)return;this.o=!0,M(()=>{for(const n of this.n)n(this.a)},this.d);const e=this.a;this.s(),this.d.dispose(),this.l.length=0,this.m.length=0,this.j.length=0,this.n.length=0,this.e=null,this.b=null,this.c=null,this.i=re,this.d=null,this.k=re,this.h=null,e&&delete e.$}t(e){e.onSetup&&this.l.push(e.onSetup.bind(e)),e.onAttach&&this.m.push(e.onAttach.bind(e)),e.onConnect&&this.j.push(e.onConnect.bind(e)),e.onDestroy&&this.n.push(e.onDestroy.bind(e))}q(){if(this.b)for(const e of Object.keys(this.b))U(this.b[e])?z(this.u.bind(this,e)):Ut(this.a,e,this.b[e])}r(){if(this.c)for(const e of Object.keys(this.c))U(this.c[e])?z(this.v.bind(this,e)):he(this.a,e,this.c[e])}u(e){Ut(this.a,e,this.b[e].call(this.e))}v(e){he(this.a,e,this.c[e].call(this.e))}}Ve=wn;function si(t){const e={};for(const n of Object.keys(t)){const i=t[n];e[n]=it(i,i)}return e}let Et={$$:null};function ri(t,e){return Hn(()=>{Et.$$=new ii(t,Qt(),e);const n=new t;return Et.$$.e=n,Et.$$=null,n})}class oi extends EventTarget{constructor(){super(),Et.$$&&this.attach(Et)}get el(){return this.$$.a}get $el(){return this.$$.$el()}get scope(){return this.$$.d}get attachScope(){return this.$$.f}get connectScope(){return this.$$.g}get $props(){return this.$$.i}get $state(){return this.$$.h}get state(){return this.$$.k}attach({$$:e}){return this.$$=e,e.t(this),this}addEventListener(e,n,i){this.listen(e,n,i)}removeEventListener(e,n,i){var s;(s=this.el)==null||s.removeEventListener(e,n,i)}setAttributes(e){this.$$.b||(this.$$.b={}),Object.assign(this.$$.b,e)}setStyles(e){this.$$.c||(this.$$.c={}),Object.assign(this.$$.c,e)}setCSSVars(e){this.setStyles(e)}createEvent(e,...n){return new D(e,n[0])}dispatch(e,...n){if(!this.el)return!1;const i=e instanceof Event?e:new D(e,n[0]);return Object.defineProperty(i,"target",{get:()=>this.$$.e}),Wn(()=>{var s,r;return(r=(s=this.$$)[wn])==null||r.call(s,i),this.el.dispatchEvent(i)})}dispatchEvent(e){return this.dispatch(e)}listen(e,n,i){return this.el?k(this.el,e,n,i):dn}}class dr extends oi{subscribe(e){return M(()=>z(()=>e(this.state)),this.$$.d)}destroy(){this.$$.p()}}function pr(t,e,n){t[St]||(t[St]=new Set),t[St].add(e)}function mr(t,e,n){t[vt]||(t[vt]=new Set),t[vt].add(e)}class ci{constructor(e){this.id=Symbol(0),this.record=e,this.A=Object.getOwnPropertyDescriptors(e)}create(){const e={},n=new Proxy(e,{get:(i,s)=>e[s]()});for(const i of Object.keys(this.record)){const s=this.A[i].get;e[i]=s?bn(s.bind(n)):it(this.record[i])}return e}reset(e,n){for(const i of Object.keys(e))!this.A[i].get&&(!n||n(i))&&e[i].set(this.record[i])}}function gr(t){return yn(t)}function li(t,e){for(const n of t)n(e)}function $n(t){return t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function br(t){return t.replace(/-./g,e=>e[1].toUpperCase())}function yr(t){return t.charAt(0).toUpperCase()+t.slice(1)}function wr(t){return U(t)?t():t}function $r(t){return t?"true":"false"}function ai(){const t=new Set;return{add(...e){for(const n of e)t.add(n)},empty(){for(const e of t)e();t.clear()}}}function Sr(){const t=ai();return At(t.empty),t}function vr(t){return Object.keys(t)}function ui(){let t,e;return{promise:new Promise((i,s)=>{t=i,e=s}),resolve:t,reject:e}}function fi(t){return new Promise(e=>setTimeout(e,t))}function hi(t){let e=-1,n;function i(...s){n=s,!(e>=0)&&(e=window.requestAnimationFrame(()=>{t.apply(this,n),e=-1,n=void 0}))}return i}const di=typeof window<"u"?"requestIdleCallback"in window?window.requestIdleCallback:t=>window.setTimeout(t,1):dn;function Er(t,e){return new Promise(n=>{di(i=>{t==null||t(i),n()},e)})}var P={fullscreenEnabled:0,fullscreenElement:1,requestFullscreen:2,exitFullscreen:3,fullscreenchange:4,fullscreenerror:5,fullscreen:6},He=["webkitFullscreenEnabled","webkitFullscreenElement","webkitRequestFullscreen","webkitExitFullscreen","webkitfullscreenchange","webkitfullscreenerror","-webkit-full-screen"],We=["mozFullScreenEnabled","mozFullScreenElement","mozRequestFullScreen","mozCancelFullScreen","mozfullscreenchange","mozfullscreenerror","-moz-full-screen"],je=["msFullscreenEnabled","msFullscreenElement","msRequestFullscreen","msExitFullscreen","MSFullscreenChange","MSFullscreenError","-ms-fullscreen"],C=typeof window<"u"&&typeof window.document<"u"?window.document:{},L="fullscreenEnabled"in C&&Object.keys(P)||He[0]in C&&He||We[0]in C&&We||je[0]in C&&je||[],pi={requestFullscreen:function(t){return t[L[P.requestFullscreen]]()},requestFullscreenFunction:function(t){return t[L[P.requestFullscreen]]},get exitFullscreen(){return C[L[P.exitFullscreen]].bind(C)},get fullscreenPseudoClass(){return":"+L[P.fullscreen]},addEventListener:function(t,e,n){return C.addEventListener(L[P[t]],e,n)},removeEventListener:function(t,e,n){return C.removeEventListener(L[P[t]],e,n)},get fullscreenEnabled(){return!!C[L[P.fullscreenEnabled]]},set fullscreenEnabled(t){},get fullscreenElement(){return C[L[P.fullscreenElement]]},set fullscreenElement(t){},get onfullscreenchange(){return C[("on"+L[P.fullscreenchange]).toLowerCase()]},set onfullscreenchange(t){return C[("on"+L[P.fullscreenchange]).toLowerCase()]=t},get onfullscreenerror(){return C[("on"+L[P.fullscreenerror]).toLowerCase()]},set onfullscreenerror(t){return C[("on"+L[P.fullscreenerror]).toLowerCase()]=t}};const Yt=Math.min,rt=Math.max,zt=Math.round,Vt=Math.floor,et=t=>({x:t,y:t}),mi={left:"right",right:"left",bottom:"top",top:"bottom"},gi={start:"end",end:"start"};function qe(t,e,n){return rt(t,Yt(e,n))}function Te(t,e){return typeof t=="function"?t(e):t}function pt(t){return t.split("-")[0]}function xe(t){return t.split("-")[1]}function Sn(t){return t==="x"?"y":"x"}function vn(t){return t==="y"?"height":"width"}function Oe(t){return["top","bottom"].includes(pt(t))?"y":"x"}function En(t){return Sn(Oe(t))}function bi(t,e,n){n===void 0&&(n=!1);const i=xe(t),s=En(t),r=vn(s);let o=s==="x"?i===(n?"end":"start")?"right":"left":i==="start"?"bottom":"top";return e.reference[r]>e.floating[r]&&(o=Gt(o)),[o,Gt(o)]}function yi(t){const e=Gt(t);return[de(t),e,de(e)]}function de(t){return t.replace(/start|end/g,e=>gi[e])}function wi(t,e,n){const i=["left","right"],s=["right","left"],r=["top","bottom"],o=["bottom","top"];switch(t){case"top":case"bottom":return n?e?s:i:e?i:s;case"left":case"right":return e?r:o;default:return[]}}function $i(t,e,n,i){const s=xe(t);let r=wi(pt(t),n==="start",i);return s&&(r=r.map(o=>o+"-"+s),e&&(r=r.concat(r.map(de)))),r}function Gt(t){return t.replace(/left|right|bottom|top/g,e=>mi[e])}function Si(t){return{top:0,right:0,bottom:0,left:0,...t}}function vi(t){return typeof t!="number"?Si(t):{top:t,right:t,bottom:t,left:t}}function Xt(t){const{x:e,y:n,width:i,height:s}=t;return{width:i,height:s,top:n,left:e,right:e+i,bottom:n+s,x:e,y:n}}function Ue(t,e,n){let{reference:i,floating:s}=t;const r=Oe(e),o=En(e),l=vn(o),c=pt(e),a=r==="y",f=i.x+i.width/2-s.width/2,u=i.y+i.height/2-s.height/2,h=i[l]/2-s[l]/2;let d;switch(c){case"top":d={x:f,y:i.y-s.height};break;case"bottom":d={x:f,y:i.y+i.height};break;case"right":d={x:i.x+i.width,y:u};break;case"left":d={x:i.x-s.width,y:u};break;default:d={x:i.x,y:i.y}}switch(xe(e)){case"start":d[o]-=h*(n&&a?-1:1);break;case"end":d[o]+=h*(n&&a?-1:1);break}return d}const Ei=async(t,e,n)=>{const{placement:i="bottom",strategy:s="absolute",middleware:r=[],platform:o}=n,l=r.filter(Boolean),c=await(o.isRTL==null?void 0:o.isRTL(e));let a=await o.getElementRects({reference:t,floating:e,strategy:s}),{x:f,y:u}=Ue(a,i,c),h=i,d={},p=0;for(let m=0;mW<=0)){var yt,wt;const W=(((yt=r.flip)==null?void 0:yt.index)||0)+1,O=S[W];if(O)return{data:{index:W,overflows:H},reset:{placement:O}};let T=(wt=H.filter(j=>j.overflows[0]<=0).sort((j,A)=>j.overflows[1]-A.overflows[1])[0])==null?void 0:wt.placement;if(!T)switch(d){case"bestFit":{var $t;const j=($t=H.map(A=>[A.placement,A.overflows.filter(w=>w>0).reduce((w,at)=>w+at,0)]).sort((A,w)=>A[1]-w[1])[0])==null?void 0:$t[0];j&&(T=j);break}case"initialPlacement":T=l;break}if(s!==T)return{reset:{placement:T}}}return{}}}},xi=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:i,placement:s}=e,{mainAxis:r=!0,crossAxis:o=!1,limiter:l={fn:b=>{let{x:g,y}=b;return{x:g,y}}},...c}=Te(t,e),a={x:n,y:i},f=await Tn(e,c),u=Oe(pt(s)),h=Sn(u);let d=a[h],p=a[u];if(r){const b=h==="y"?"top":"left",g=h==="y"?"bottom":"right",y=d+f[b],$=d-f[g];d=qe(y,d,$)}if(o){const b=u==="y"?"top":"left",g=u==="y"?"bottom":"right",y=p+f[b],$=p-f[g];p=qe(y,p,$)}const m=l.fn({...e,[h]:d,[u]:p});return{...m,data:{x:m.x-n,y:m.y-i}}}}};function bt(t){return xn(t)?(t.nodeName||"").toLowerCase():"#document"}function N(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function K(t){var e;return(e=(xn(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function xn(t){return t instanceof Node||t instanceof N(t).Node}function G(t){return t instanceof Element||t instanceof N(t).Element}function X(t){return t instanceof HTMLElement||t instanceof N(t).HTMLElement}function Ye(t){return typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof N(t).ShadowRoot}function kt(t){const{overflow:e,overflowX:n,overflowY:i,display:s}=V(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&!["inline","contents"].includes(s)}function Oi(t){return["table","td","th"].includes(bt(t))}function Ae(t){const e=Ce(),n=V(t);return n.transform!=="none"||n.perspective!=="none"||(n.containerType?n.containerType!=="normal":!1)||!e&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!e&&(n.filter?n.filter!=="none":!1)||["transform","perspective","filter"].some(i=>(n.willChange||"").includes(i))||["paint","layout","strict","content"].some(i=>(n.contain||"").includes(i))}function Ai(t){let e=nt(t);for(;X(e)&&!mt(e);){if(Ae(e))return e;e=nt(e)}return null}function Ce(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function mt(t){return["html","body","#document"].includes(bt(t))}function V(t){return N(t).getComputedStyle(t)}function te(t){return G(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function nt(t){if(bt(t)==="html")return t;const e=t.assignedSlot||t.parentNode||Ye(t)&&t.host||K(t);return Ye(e)?e.host:e}function On(t){const e=nt(t);return mt(e)?t.ownerDocument?t.ownerDocument.body:t.body:X(e)&&kt(e)?e:On(e)}function Ot(t,e,n){var i;e===void 0&&(e=[]),n===void 0&&(n=!0);const s=On(t),r=s===((i=t.ownerDocument)==null?void 0:i.body),o=N(s);return r?e.concat(o,o.visualViewport||[],kt(s)?s:[],o.frameElement&&n?Ot(o.frameElement):[]):e.concat(s,Ot(s,[],n))}function An(t){const e=V(t);let n=parseFloat(e.width)||0,i=parseFloat(e.height)||0;const s=X(t),r=s?t.offsetWidth:n,o=s?t.offsetHeight:i,l=zt(n)!==r||zt(i)!==o;return l&&(n=r,i=o),{width:n,height:i,$:l}}function ke(t){return G(t)?t:t.contextElement}function ht(t){const e=ke(t);if(!X(e))return et(1);const n=e.getBoundingClientRect(),{width:i,height:s,$:r}=An(e);let o=(r?zt(n.width):n.width)/i,l=(r?zt(n.height):n.height)/s;return(!o||!Number.isFinite(o))&&(o=1),(!l||!Number.isFinite(l))&&(l=1),{x:o,y:l}}const Ci=et(0);function Cn(t){const e=N(t);return!Ce()||!e.visualViewport?Ci:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function ki(t,e,n){return e===void 0&&(e=!1),!n||e&&n!==N(t)?!1:e}function ct(t,e,n,i){e===void 0&&(e=!1),n===void 0&&(n=!1);const s=t.getBoundingClientRect(),r=ke(t);let o=et(1);e&&(i?G(i)&&(o=ht(i)):o=ht(t));const l=ki(r,n,i)?Cn(r):et(0);let c=(s.left+l.x)/o.x,a=(s.top+l.y)/o.y,f=s.width/o.x,u=s.height/o.y;if(r){const h=N(r),d=i&&G(i)?N(i):i;let p=h,m=p.frameElement;for(;m&&i&&d!==p;){const b=ht(m),g=m.getBoundingClientRect(),y=V(m),$=g.left+(m.clientLeft+parseFloat(y.paddingLeft))*b.x,v=g.top+(m.clientTop+parseFloat(y.paddingTop))*b.y;c*=b.x,a*=b.y,f*=b.x,u*=b.y,c+=$,a+=v,p=N(m),m=p.frameElement}}return Xt({width:f,height:u,x:c,y:a})}const Pi=[":popover-open",":modal"];function Pe(t){return Pi.some(e=>{try{return t.matches(e)}catch{return!1}})}function Ri(t){let{elements:e,rect:n,offsetParent:i,strategy:s}=t;const r=s==="fixed",o=K(i),l=e?Pe(e.floating):!1;if(i===o||l&&r)return n;let c={scrollLeft:0,scrollTop:0},a=et(1);const f=et(0),u=X(i);if((u||!u&&!r)&&((bt(i)!=="body"||kt(o))&&(c=te(i)),X(i))){const h=ct(i);a=ht(i),f.x=h.x+i.clientLeft,f.y=h.y+i.clientTop}return{width:n.width*a.x,height:n.height*a.y,x:n.x*a.x-c.scrollLeft*a.x+f.x,y:n.y*a.y-c.scrollTop*a.y+f.y}}function Ni(t){return Array.from(t.getClientRects())}function kn(t){return ct(K(t)).left+te(t).scrollLeft}function Li(t){const e=K(t),n=te(t),i=t.ownerDocument.body,s=rt(e.scrollWidth,e.clientWidth,i.scrollWidth,i.clientWidth),r=rt(e.scrollHeight,e.clientHeight,i.scrollHeight,i.clientHeight);let o=-n.scrollLeft+kn(t);const l=-n.scrollTop;return V(i).direction==="rtl"&&(o+=rt(e.clientWidth,i.clientWidth)-s),{width:s,height:r,x:o,y:l}}function Fi(t,e){const n=N(t),i=K(t),s=n.visualViewport;let r=i.clientWidth,o=i.clientHeight,l=0,c=0;if(s){r=s.width,o=s.height;const a=Ce();(!a||a&&e==="fixed")&&(l=s.offsetLeft,c=s.offsetTop)}return{width:r,height:o,x:l,y:c}}function _i(t,e){const n=ct(t,!0,e==="fixed"),i=n.top+t.clientTop,s=n.left+t.clientLeft,r=X(t)?ht(t):et(1),o=t.clientWidth*r.x,l=t.clientHeight*r.y,c=s*r.x,a=i*r.y;return{width:o,height:l,x:c,y:a}}function ze(t,e,n){let i;if(e==="viewport")i=Fi(t,n);else if(e==="document")i=Li(K(t));else if(G(e))i=_i(e,n);else{const s=Cn(t);i={...e,x:e.x-s.x,y:e.y-s.y}}return Xt(i)}function Pn(t,e){const n=nt(t);return n===e||!G(n)||mt(n)?!1:V(n).position==="fixed"||Pn(n,e)}function Di(t,e){const n=e.get(t);if(n)return n;let i=Ot(t,[],!1).filter(l=>G(l)&&bt(l)!=="body"),s=null;const r=V(t).position==="fixed";let o=r?nt(t):t;for(;G(o)&&!mt(o);){const l=V(o),c=Ae(o);!c&&l.position==="fixed"&&(s=null),(r?!c&&!s:!c&&l.position==="static"&&!!s&&["absolute","fixed"].includes(s.position)||kt(o)&&!c&&Pn(t,o))?i=i.filter(f=>f!==o):s=l,o=nt(o)}return e.set(t,i),i}function Ii(t){let{element:e,boundary:n,rootBoundary:i,strategy:s}=t;const o=[...n==="clippingAncestors"?Pe(e)?[]:Di(e,this._c):[].concat(n),i],l=o[0],c=o.reduce((a,f)=>{const u=ze(e,f,s);return a.top=rt(u.top,a.top),a.right=Yt(u.right,a.right),a.bottom=Yt(u.bottom,a.bottom),a.left=rt(u.left,a.left),a},ze(e,l,s));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}function Mi(t){const{width:e,height:n}=An(t);return{width:e,height:n}}function Bi(t,e,n){const i=X(e),s=K(e),r=n==="fixed",o=ct(t,!0,r,e);let l={scrollLeft:0,scrollTop:0};const c=et(0);if(i||!i&&!r)if((bt(e)!=="body"||kt(s))&&(l=te(e)),i){const u=ct(e,!0,r,e);c.x=u.x+e.clientLeft,c.y=u.y+e.clientTop}else s&&(c.x=kn(s));const a=o.left+l.scrollLeft-c.x,f=o.top+l.scrollTop-c.y;return{x:a,y:f,width:o.width,height:o.height}}function oe(t){return V(t).position==="static"}function Ge(t,e){return!X(t)||V(t).position==="fixed"?null:e?e(t):t.offsetParent}function Rn(t,e){const n=N(t);if(Pe(t))return n;if(!X(t)){let s=nt(t);for(;s&&!mt(s);){if(G(s)&&!oe(s))return s;s=nt(s)}return n}let i=Ge(t,e);for(;i&&Oi(i)&&oe(i);)i=Ge(i,e);return i&&mt(i)&&oe(i)&&!Ae(i)?n:i||Ai(t)||n}const Vi=async function(t){const e=this.getOffsetParent||Rn,n=this.getDimensions,i=await n(t.floating);return{reference:Bi(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:i.width,height:i.height}}};function Hi(t){return V(t).direction==="rtl"}const Wi={convertOffsetParentRelativeRectToViewportRelativeRect:Ri,getDocumentElement:K,getClippingRect:Ii,getOffsetParent:Rn,getElementRects:Vi,getClientRects:Ni,getDimensions:Mi,getScale:ht,isElement:G,isRTL:Hi};function ji(t,e){let n=null,i;const s=K(t);function r(){var l;clearTimeout(i),(l=n)==null||l.disconnect(),n=null}function o(l,c){l===void 0&&(l=!1),c===void 0&&(c=1),r();const{left:a,top:f,width:u,height:h}=t.getBoundingClientRect();if(l||e(),!u||!h)return;const d=Vt(f),p=Vt(s.clientWidth-(a+u)),m=Vt(s.clientHeight-(f+h)),b=Vt(a),y={rootMargin:-d+"px "+-p+"px "+-m+"px "+-b+"px",threshold:rt(0,Yt(1,c))||1};let $=!0;function v(S){const I=S[0].intersectionRatio;if(I!==c){if(!$)return o();I?o(!1,I):i=setTimeout(()=>{o(!1,1e-7)},1e3)}$=!1}try{n=new IntersectionObserver(v,{...y,root:s.ownerDocument})}catch{n=new IntersectionObserver(v,y)}n.observe(t)}return o(!0),r}function qi(t,e,n,i){i===void 0&&(i={});const{ancestorScroll:s=!0,ancestorResize:r=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:c=!1}=i,a=ke(t),f=s||r?[...a?Ot(a):[],...Ot(e)]:[];f.forEach(g=>{s&&g.addEventListener("scroll",n,{passive:!0}),r&&g.addEventListener("resize",n)});const u=a&&l?ji(a,n):null;let h=-1,d=null;o&&(d=new ResizeObserver(g=>{let[y]=g;y&&y.target===a&&d&&(d.unobserve(e),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var $;($=d)==null||$.observe(e)})),n()}),a&&!c&&d.observe(a),d.observe(e));let p,m=c?ct(t):null;c&&b();function b(){const g=ct(t);m&&(g.x!==m.x||g.y!==m.y||g.width!==m.width||g.height!==m.height)&&n(),m=g,p=requestAnimationFrame(b)}return n(),()=>{var g;f.forEach(y=>{s&&y.removeEventListener("scroll",n),r&&y.removeEventListener("resize",n)}),u==null||u(),(g=d)==null||g.disconnect(),d=null,c&&cancelAnimationFrame(p)}}const Ui=xi,Yi=Ti,zi=(t,e,n)=>{const i=new Map,s={platform:Wi,...n},r={...s.platform,_c:i};return Ei(t,e,{...s,platform:r})},Xe=t=>typeof t=="object"&&t!=null&&t.nodeType===1,Ke=(t,e)=>(!e||t!=="hidden")&&t!=="visible"&&t!=="clip",ce=(t,e)=>{if(t.clientHeight{const s=(r=>{if(!r.ownerDocument||!r.ownerDocument.defaultView)return null;try{return r.ownerDocument.defaultView.frameElement}catch{return null}})(i);return!!s&&(s.clientHeightre||r>t&&o=e&&l>=n?r-t-i:o>e&&ln?o-e+s:0,Gi=t=>{const e=t.parentElement;return e??(t.getRootNode().host||null)},Tr=(t,e)=>{var n,i,s,r;if(typeof document>"u")return[];const{scrollMode:o,block:l,inline:c,boundary:a,skipOverflowHiddenElements:f}=e,u=typeof a=="function"?a:A=>A!==a;if(!Xe(t))throw new TypeError("Invalid target");const h=document.scrollingElement||document.documentElement,d=[];let p=t;for(;Xe(p)&&u(p);){if(p=Gi(p),p===h){d.push(p);break}p!=null&&p===document.body&&ce(p)&&!ce(document.documentElement)||p!=null&&ce(p,f)&&d.push(p)}const m=(i=(n=window.visualViewport)==null?void 0:n.width)!=null?i:innerWidth,b=(r=(s=window.visualViewport)==null?void 0:s.height)!=null?r:innerHeight,{scrollX:g,scrollY:y}=window,{height:$,width:v,top:S,right:I,bottom:J,left:H}=t.getBoundingClientRect(),{top:yt,right:wt,bottom:$t,left:W}=(A=>{const w=window.getComputedStyle(A);return{top:parseFloat(w.scrollMarginTop)||0,right:parseFloat(w.scrollMarginRight)||0,bottom:parseFloat(w.scrollMarginBottom)||0,left:parseFloat(w.scrollMarginLeft)||0}})(t);let O=l==="start"||l==="nearest"?S-yt:l==="end"?J+$t:S+$/2-yt+$t,T=c==="center"?H+v/2-W+wt:c==="end"?I+wt:H-W;const j=[];for(let A=0;A=0&&H>=0&&J<=b&&I<=m&&S>=Rt&&J<=ne&&H>=Nt&&I<=ee)return j;const Lt=getComputedStyle(w),Ft=parseInt(Lt.borderLeftWidth,10),_t=parseInt(Lt.borderTopWidth,10),Dt=parseInt(Lt.borderRightWidth,10),It=parseInt(Lt.borderBottomWidth,10);let Q=0,Z=0;const Mt="offsetWidth"in w?w.offsetWidth-w.clientWidth-Ft-Dt:0,Bt="offsetHeight"in w?w.offsetHeight-w.clientHeight-_t-It:0,ie="offsetWidth"in w?w.offsetWidth===0?0:Pt/w.offsetWidth:0,se="offsetHeight"in w?w.offsetHeight===0?0:at/w.offsetHeight:0;if(h===w)Q=l==="start"?O:l==="end"?O-b:l==="nearest"?Ht(y,y+b,b,_t,It,y+O,y+O+$,$):O-b/2,Z=c==="start"?T:c==="center"?T-m/2:c==="end"?T-m:Ht(g,g+m,m,Ft,Dt,g+T,g+T+v,v),Q=Math.max(0,Q+y),Z=Math.max(0,Z+g);else{Q=l==="start"?O-Rt-_t:l==="end"?O-ne+It+Bt:l==="nearest"?Ht(Rt,ne,at,_t,It+Bt,O,O+$,$):O-(Rt+at/2)+Bt/2,Z=c==="start"?T-Nt-Ft:c==="center"?T-(Nt+Pt/2)+Mt/2:c==="end"?T-ee+Dt+Mt:Ht(Nt,ee,Pt,Ft,Dt+Mt,T,T+v,v);const{scrollLeft:Re,scrollTop:Ne}=w;Q=se===0?0:Math.max(0,Math.min(Ne+Q/se,w.scrollHeight-at/se+Bt)),Z=ie===0?0:Math.max(0,Math.min(Re+Z/ie,w.scrollWidth-Pt/ie+Mt)),O+=Ne-Q,T+=Re-Z}j.push({el:w,top:Q,left:Z})}return j},le=t=>t===null?"":t+"",Xi=t=>t===null?null:t+"",Ki=t=>t===null?0:Number(t),Ji=t=>t!==null,Qi=()=>null,Zi=t=>t===null?[]:JSON.parse(t),ts=t=>t===null?{}:JSON.parse(t);function es(t){if(t===null)return Xi;switch(typeof t){case"undefined":return le;case"string":return le;case"boolean":return Ji;case"number":return Ki;case"function":return Qi;case"object":return xt(t)?Zi:ts;default:return le}}const tt=Symbol(0),Nn=Symbol(0),ot=Symbol(0),st=Symbol(0);function xr(t,e){var n,i,s;const o=class o extends t{constructor(...c){if(super(...c),this[i]=0,this[s]=null,this.keepAlive=!1,this.forwardKeepAlive=!0,this.$=M(()=>ri(e),null),this.$.$$.t(this),e.props){const a=this.$props,f=Object.getOwnPropertyDescriptors(this);for(const u of Object.keys(f))u in e.props&&(a[u].set(this[u]),delete this[u])}}static get observedAttributes(){var c;if(!this[tt]&&e.props){const a=new Map;for(const f of Object.keys(e.props)){let u=(c=this.attrs)==null?void 0:c[f],h=x(u)?u:u&&(u==null?void 0:u.attr);h!==!1&&(h||(h=$n(f)),a.set(h,{C:f,B:u&&!x(u)&&(u==null?void 0:u.converter)||es(e.props[f])}))}this[tt]=a}return this[tt]?Array.from(this[tt].keys()):[]}get scope(){return this.$.$$.d}get attachScope(){return this.$.$$.f}get connectScope(){return this.$.$$.g}get $props(){return this.$.$$.i}get $state(){return this.$.$$.h}get state(){return this.$.state}attributeChangedCallback(c,a,f){var d;const u=this.constructor;if(!u[tt]){(d=super.attributeChangedCallback)==null||d.call(this,c,a,f);return}const h=u[tt].get(c);h&&(this[h.C]=h.B(f))}connectedCallback(){var f;const c=(f=this.$)==null?void 0:f.$$;if(!c||c.o)return;if(this[ot]!==2){is.call(this);return}if(!this.isConnected)return;this.hasAttribute("keep-alive")&&(this.keepAlive=!0),c.y(),xt(this[st])&&li(this[st],this),this[st]=null;const a=super.connectedCallback;a&&M(()=>a.call(this),this.connectScope)}disconnectedCallback(){var f;const c=(f=this.$)==null?void 0:f.$$;if(!c||c.o)return;c.z();const a=super.disconnectedCallback;a&&a.call(this),!this.keepAlive&&!this.hasAttribute("keep-alive")&&setTimeout(()=>{requestAnimationFrame(()=>{this.isConnected||c.p()})},0)}[(n=tt,i=ot,s=st,Nn)](){const c=this.$.$$,a=this.constructor;if(c.o)return;const f=a[tt];if(f)for(const u of this.attributes){let h=f.get(u.name);h&&h.B&&c.i[h.C].set(h.B(this.getAttribute(u.name)))}c.w(),c.x(this),this[ot]=2,this.connectedCallback()}subscribe(c){return this.$.subscribe(c)}destroy(){this.disconnectedCallback(),this.$.destroy()}};o[n]=null;let r=o;return ns(r,e),r}function ns(t,e){const n=t.prototype,i=e.prototype;if(e.props)for(const s of Object.keys(e.props))Object.defineProperty(n,s,{enumerable:!0,configurable:!0,get(){return this.$props[s]()},set(r){this.$props[s].set(r)}});if(i[St])for(const s of i[St])Object.defineProperty(n,s,{enumerable:!0,configurable:!0,get(){return this.$[s]},set(r){this.$[s]=r}});if(i[vt])for(const s of i[vt])n[s]=function(...r){return this.$[s](...r)}}function is(){if(this[ot]!==0)return;this[ot]=1;const t=rs(this),e=t&&window.customElements.get(t.localName),n=t&&t[ot]===2;if(t&&(!e||!n)){ss.call(this,t);return}Ln.call(this,t)}async function ss(t){await window.customElements.whenDefined(t.localName),t[ot]!==2&&await new Promise(e=>(t[st]??(t[st]=[])).push(e)),Ln.call(this,t)}function Ln(t){if(this.isConnected){if(t){t.keepAlive&&t.forwardKeepAlive&&(this.keepAlive=!0,this.setAttribute("keep-alive",""));const e=this.$.$$.d;e&&t.$.$$.f.append(e)}this[Nn]()}}function rs(t){let e=t.parentNode,n=t.localName.split("-",1)[0]+"-";for(;e;){if(e.nodeType===1&&e.localName.startsWith(n))return e;e=e.parentNode}return null}function Or(t,e=!1){(e||!window.customElements.get(t.tagName))&&window.customElements.define(t.tagName,t)}const os=Symbol(0),cs=Symbol(0),ls=Symbol(0),as=Symbol(0),us=Symbol(0),fs=Symbol(0),hs=Symbol(0),ds=Symbol(0),ps=Symbol(0),F={da:os,cc:cs,z:ls,ea:as,Yc:us,Od:fs,Gf:hs,Hf:ds,If:ps},ms=(navigator==null?void 0:navigator.userAgent.toLowerCase())||"",gs=/iphone|ipad|ipod|ios|crios|fxios/i.test(ms),bs=/(iphone|ipod)/gi.test((navigator==null?void 0:navigator.platform)||""),Ar=!!window.chrome,Cr=!!window.safari||gs;function ys(){return ws()&&U(screen.orientation.unlock)}function ws(){return!q(window.screen.orientation)&&!q(window.screen.orientation.lock)}function kr(t,e){return t||(t=document.createElement("audio")),t.canPlayType(e).length>0}function Pr(t,e){return t||(t=document.createElement("video")),t.canPlayType(e).length>0}function $s(t){return t||(t=document.createElement("video")),t.canPlayType("application/vnd.apple.mpegurl").length>0}function Rr(t){return!!document.pictureInPictureEnabled&&!(t!=null&&t.disablePictureInPicture)}function Nr(t){return U(t==null?void 0:t.webkitSupportsPresentationMode)&&U(t==null?void 0:t.webkitSetPresentationMode)}async function Lr(){const t=document.createElement("video");return t.volume=.5,await fi(0),t.volume===.5}function Ss(){return(window==null?void 0:window.ManagedMediaSource)??(window==null?void 0:window.MediaSource)??(window==null?void 0:window.WebKitMediaSource)}function vs(){return(window==null?void 0:window.SourceBuffer)??(window==null?void 0:window.WebKitSourceBuffer)}function Es(){const t=Ss();if(q(t))return!1;const e=t&&U(t.isTypeSupported)&&t.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'),n=vs(),i=q(n)||!q(n.prototype)&&U(n.prototype.appendBuffer)&&U(n.prototype.remove);return!!e&&!!i}function Fr(){return Es()}const Ts=/\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx|flac)($|\?)/i,xs=new Set(["audio/mpeg","audio/ogg","audio/3gp","audio/mp4","audio/webm","audio/flac"]),Os=/\.(mp4|og[gv]|webm|mov|m4v)(#t=[,\d+]+)?($|\?)/i,As=new Set(["video/mp4","video/webm","video/3gp","video/ogg","video/avi","video/mpeg"]),Cs=/\.(m3u8)($|\?)/i,ks=/\.(mpd)($|\?)/i,Ps=new Set(["application/vnd.apple.mpegurl","audio/mpegurl","audio/x-mpegurl","application/x-mpegurl","video/x-mpegurl","video/mpegurl","application/mpegurl"]),Rs=new Set(["application/dash+xml"]);function Fn({src:t,type:e}){return x(t)?Ts.test(t)||xs.has(e)||t.startsWith("blob:")&&e==="audio/object":e==="audio/object"}function _n(t){return x(t.src)?Os.test(t.src)||As.has(t.type)||t.src.startsWith("blob:")&&t.type==="video/object"||Dn(t)&&$s():t.type==="video/object"}function Dn({src:t,type:e}){return x(t)&&Cs.test(t)||Ps.has(e)}function _r({src:t,type:e}){return x(t)&&ks.test(t)||Rs.has(e)}function Dr(t){return x(t.src)&&(Fn(t)||_n(t)||Dn(t))}function Ir(t){return typeof window.MediaStream<"u"&&t instanceof window.MediaStream}class ae{get length(){return this.ta.length}constructor(e,n){xt(e)?this.ta=e:!q(e)&&!q(n)?this.ta=[[e,n]]:this.ta=[]}start(e){return this.ta[e][0]??1/0}end(e){return this.ta[e][1]??1/0}}function Je(t){if(!t.length)return null;let e=t.start(0);for(let n=1;ne&&(e=i)}return e}function Mr(t,e,n){if(t)return k(t,e,n)}function Br(t,e){return Qn(e.target)&&t.contains(e.target)}const pe=new Set;{let t=function(){for(const e of pe)try{e()}catch{}window.requestAnimationFrame(t)};t()}function Ns(t){return pe.add(t),()=>pe.delete(t)}function Vr(t,e,n){t.hasAttribute(e)||t.setAttribute(e,n)}function Hr(t,e){if(t.hasAttribute("aria-label")||t.hasAttribute("data-no-label"))return;if(!U(e)){Ut(t,"aria-label",e);return}function n(){Ut(t,"aria-label",e())}z(n)}function Ls(t){const e=getComputedStyle(t);return e.display!=="none"&&parseInt(e.opacity)>0}function Fs(t){return!!t&&("checkVisibility"in t?t.checkVisibility({checkOpacity:!0,checkVisibilityCSS:!0}):Ls(t))}function Wr(t,e){return Ns(()=>e(Fs(t)))}function jr(t,e,n){for(;e;){if(e===t)return!0;if(n!=null&&n(e))break;e=e.parentElement}return!1}function qr(t,e){k(t,"pointerup",n=>{n.button===0&&!n.defaultPrevented&&e(n)}),k(t,"keydown",n=>{Jn(n)&&e(n)})}function Ur(t){return Kn(t)&&(t.touches.length>1||t.changedTouches.length>1)}function Yr(t){let e=Qt(),n=window.requestAnimationFrame(()=>{M(t,e),n=-1});return()=>void window.cancelAnimationFrame(n)}function zr(t,e,n){let i,s=t,r=t.parentElement,o=t.content.firstElementChild,l=[];!o&&t.firstElementChild&&(t.innerHTML=t.firstElementChild.outerHTML,t.firstElementChild.remove(),o=t.content.firstElementChild);for(let c=0;c{for(let c=0;cn.includes("left")?`calc(-1 * ${u})`:u,f=u=>c?`calc(-1 * ${u})`:u;return qi(e,t,()=>{zi(e,t,{placement:l,middleware:[...o.middleware??[],Yi({fallbackAxisSideDirection:"start",crossAxis:!1}),Ui()],...o}).then(({x:u,y:h,middlewareData:d})=>{var m;const p=!!((m=d.flip)!=null&&m.index);c=n.includes(p?"bottom":"top"),t.setAttribute("data-placement",p?n.startsWith("top")?n.replace("top","bottom"):n.replace("bottom","top"):n),Object.assign(t.style,{top:`calc(${h+"px"} + ${f(r?r+"px":`var(--${i}-y-offset, 0px)`)})`,left:`calc(${u+"px"} + ${a(s?s+"px":`var(--${i}-x-offset, 0px)`)})`})})})}function Jr(t){return getComputedStyle(t).animationName!=="none"}function Qr(t){const e=document.createElement("slot");return e.name=t,e}function Zr(t){const e=it(!1);return z(()=>{const n=t();n&&(k(n,"transitionstart",()=>e.set(!0)),k(n,"transitionend",()=>e.set(!1)))}),e}function to(t,e){function n(){const i=t();if(!i)return;e();const s=new ResizeObserver(hi(e));return s.observe(i),()=>s.disconnect()}z(n)}function eo(t){const e=_s(t),n=Ds(t);let i=!1;return bn(()=>{const s=e();return i&&!s?!1:(i=s,s||n())})}function _s(t){const e=it(!1);return z(()=>{const n=t();if(!n){e.set(!1);return}k(n,"mouseenter",()=>e.set(!0)),k(n,"mouseleave",()=>e.set(!1))}),e}function Ds(t){const e=it(!1);return z(()=>{const n=t();if(!n){e.set(!1);return}k(n,"focusin",()=>e.set(!0)),k(n,"focusout",()=>e.set(!1))}),e}function no(t){return t instanceof HTMLElement}function Is(){const t=it("dark"),e=window.matchMedia("(prefers-color-scheme: light)");function n(){t.set(e.matches?"light":"dark")}return n(),k(e,"change",n),t}function io(t,e){z(()=>{const i=e();if(i==="system"){const s=Is();z(()=>n(s()));return}n(i)});function n(i){Be(t,"light",i==="light"),Be(t,"dark",i==="dark")}}function so(t,e){const n=new URLSearchParams;for(const i of Object.keys(e))n.set(i,e[i]+"");return t+"?"+n.toString()}function ro(t,e="preconnect"){const n=document.querySelector(`link[href="${t}"]`);if(!Ee(n))return!0;const i=document.createElement("link");return i.rel=e,i.href=t,i.crossOrigin="true",document.head.append(i),!0}const Wt={};function oo(t){if(Wt[t])return Wt[t].promise;const e=ui(),n=document.querySelector(`script[src="${t}"]`);if(!Ee(n))return e.resolve(),e.promise;const i=document.createElement("script");return i.src=t,i.onload=()=>{e.resolve(),delete Wt[t]},i.onerror=()=>{e.reject(),delete Wt[t]},setTimeout(()=>document.head.append(i),0),e.promise}function Ms(t){return t==="use-credentials"?"include":x(t)?"same-origin":void 0}function co({title:t,src:e,download:n}){const i=Ie(n)||n===""?e.src:x(n)?n:n==null?void 0:n.url;return Bs({url:i,src:e,download:n})?{url:i,name:!Ie(n)&&!x(n)&&(n==null?void 0:n.filename)||t.toLowerCase()||"media"}:null}function Bs({url:t,src:e,download:n}){return x(t)&&(n&&n!==!0||Fn(e)||_n(e))}const Vs=Symbol(0),Hs=Symbol(0),Ws=Symbol(0),js=Symbol(0),qs=Symbol(0),Us=Symbol(0),Ys=Symbol(0),E={Db:Vs,ma:Hs,Eb:Ws,Z:js,hb:qs,_:Us,Mf:Ys};function Ze(t,e){return e>=t.startTime&&eo.includes(c.kind)&&c.mode==="showing");if(l!==i){if(!l){n(null),i=null;return}l.readyState==2?n(l):(n(null),M(()=>{const c=k(l,"load",()=>{n(l),c()},{once:!0})},s)),i=l}}return r(),k(t,"mode-change",r)}function lo(t,e,n){zs(t,e,i=>{if(!i){n("");return}const s=()=>{const r=i==null?void 0:i.activeCues[0];n((r==null?void 0:r.text)||"")};s(),k(i,"cue-change",s)})}var tn,en,nn;class ao extends mn{constructor(e){super(),this.id="",this.label="",this.language="",this.default=!1,this.Z=!1,this.ua=0,this.U="disabled",this.Nf={},this.$c=[],this.B=[],this.Fb=[],this[tn]=0,this[en]=null,this[nn]=null;for(const n of Object.keys(e))this[n]=e[n];this.type||(this.type="vtt"),e.content?this._h(e):e.src||(this[E.ma]=2)}static createId(e){return`vds-${e.type}-${e.kind}-${e.src??e.label??"?"}`}get metadata(){return this.Nf}get regions(){return this.$c}get cues(){return this.B}get activeCues(){return this.Fb}get readyState(){return this[E.ma]}get mode(){return this.U}set mode(e){this.setMode(e)}addCue(e,n){var r;let i=0,s=this.B.length;for(i=0;i=0){const r=this.Fb.includes(e);this.B.splice(i,1),(s=this[E._])==null||s.track.removeCue(e),this.dispatchEvent(new D("remove-cue",{detail:e,trigger:n})),r&&this[E.Eb](this.ua,n)}}setMode(e,n){var i;this.U!==e&&(this.U=e,e==="disabled"?(this.Fb=[],this.Of()):this.readyState===2?this[E.Eb](this.ua,n):this.Pf(),this.dispatchEvent(new D("mode-change",{detail:this,trigger:n})),(i=this[E.hb])==null||i.call(this))}[(tn=E.ma,en=E.hb,nn=E._,E.Eb)](e,n){if(this.ua=e,this.mode==="disabled"||!this.B.length)return;const i=[];for(let r=0,o=this.B.length;rimport("./prod-OBrTmKrB.js").then(n=>n.d),__vite__mapDeps([0,1])).then(({parseText:n,VTTCue:i,VTTRegion:s})=>{!x(e.content)||e.type==="json"?(this.Qf(e.content,i,s),this.readyState!==3&&this.Ga()):n(e.content,{type:e.type}).then(({cues:r,regions:o})=>{this.B=r,this.$c=o,this.Ga()})})}async Pf(){var e,n;if(!(!this.Z||this[E.ma]>0)){if(this[E.ma]=1,this.dispatchEvent(new D("load-start")),!this.src){this.Ga();return}try{const{parseResponse:i,VTTCue:s,VTTRegion:r}=await Le(()=>import("./prod-OBrTmKrB.js").then(c=>c.d),__vite__mapDeps([0,1])),o=(e=this[E.Db])==null?void 0:e.call(this),l=fetch(this.src,{headers:this.type==="json"?{"Content-Type":"application/json"}:void 0,credentials:Ms(o)});if(this.type==="json")this.Qf(await(await l).text(),s,r);else{const{errors:c,metadata:a,regions:f,cues:u}=await i(l,{type:this.type,encoding:this.encoding});if(((n=c[0])==null?void 0:n.code)===0)throw c[0];this.Nf=a,this.$c=f,this.B=u}this.Ga()}catch(i){this.Rf(i)}}}Ga(){if(this[E.ma]=2,!this.src||this.type!=="vtt"){const n=this[E._];if(n&&!n.managed)for(const i of this.B)n.track.addCue(i)}const e=new D("load");this[E.Eb](this.ua,e),this.dispatchEvent(e)}Rf(e){this[E.ma]=3,this.dispatchEvent(new D("error",{detail:e}))}Qf(e,n,i){try{const{regions:s,cues:r}=Ks(e,n,i);this.$c=s,this.B=r}catch(s){this.Rf(s)}}Of(e){this.dispatchEvent(new D("cue-change",{trigger:e}))}}const Gs=/captions|subtitles/;function Xs(t){return Gs.test(t.kind)}function Ks(t,e,n){const i=x(t)?JSON.parse(t):t;let s=[],r=[];return i.regions&&n&&(s=i.regions.map(o=>Object.assign(new n,o))),(i.cues||xt(i))&&(r=(xt(i)?i:i.cues).filter(o=>De(o.startTime)&&De(o.endTime)).map(o=>Object.assign(new e(0,0,""),o))),{regions:s,cues:r}}var sn;class uo extends mn{constructor(){super(...arguments),this.A=[],this[sn]=!1}get length(){return this.A.length}get readonly(){return this[F.Yc]}indexOf(e){return this.A.indexOf(e)}getById(e){return e===""?null:this.A.find(n=>n.id===e)??null}toArray(){return[...this.A]}[(sn=F.Yc,Symbol.iterator)](){return this.A.values()}[F.da](e,n){const i=this.A.length;""+i in this||Object.defineProperty(this,i,{get(){return this.A[i]}}),!this.A.includes(e)&&(this.A.push(e),this.dispatchEvent(new D("add",{detail:e,trigger:n})))}[F.cc](e,n){var s;const i=this.A.indexOf(e);i>=0&&((s=this[F.Hf])==null||s.call(this,e,n),this.A.splice(i,1),this.dispatchEvent(new D("remove",{detail:e,trigger:n})))}[F.z](e){var n;for(const i of[...this.A])this[F.cc](i,e);this.A=[],this[F.Od](!1,e),(n=this[F.Gf])==null||n.call(this)}[F.Od](e,n){this[F.Yc]!==e&&(this[F.Yc]=e,this.dispatchEvent(new D("readonly-change",{detail:e,trigger:n})))}}const Js=new ci({artist:"",artwork:null,audioTrack:null,audioTracks:[],autoPlay:!1,autoPlayError:null,audioGain:null,buffered:new ae,canLoad:!1,canLoadPoster:!1,canFullscreen:!1,canOrientScreen:ys(),canPictureInPicture:!1,canPlay:!1,clipStartTime:0,clipEndTime:0,controls:!1,get iOSControls(){return bs&&this.mediaType==="video"&&(!this.playsInline||!pi.fullscreenEnabled&&this.fullscreen)},get nativeControls(){return this.controls||this.iOSControls},controlsVisible:!1,get controlsHidden(){return!this.controlsVisible},crossOrigin:null,ended:!1,error:null,fullscreen:!1,get loop(){return this.providedLoop||this.userPrefersLoop},logLevel:"silent",mediaType:"unknown",muted:!1,paused:!0,played:new ae,playing:!1,playsInline:!1,pictureInPicture:!1,preload:"metadata",playbackRate:1,qualities:[],quality:null,autoQuality:!1,canSetQuality:!0,canSetPlaybackRate:!0,canSetVolume:!1,canSetAudioGain:!1,seekable:new ae,seeking:!1,source:{src:"",type:""},sources:[],started:!1,textTracks:[],textTrack:null,get hasCaptions(){return this.textTracks.filter(Xs).length>0},volume:1,waiting:!1,realCurrentTime:0,get currentTime(){return this.clipStartTime>0?Math.max(0,Math.min(this.realCurrentTime-this.clipStartTime,this.duration)):this.realCurrentTime},providedDuration:-1,intrinsicDuration:0,get realDuration(){return this.providedDuration>0?this.providedDuration:this.intrinsicDuration},get duration(){return this.clipEndTime>0?this.clipEndTime-this.clipStartTime:Math.max(0,this.realDuration-this.clipStartTime)},get title(){return this.providedTitle||this.inferredTitle},get poster(){return this.providedPoster||this.inferredPoster},get viewType(){return this.providedViewType!=="unknown"?this.providedViewType:this.inferredViewType},get streamType(){return this.providedStreamType!=="unknown"?this.providedStreamType:this.inferredStreamType},get currentSrc(){return this.source},get bufferedStart(){const t=Je(this.buffered)??0;return Math.max(0,t-this.clipStartTime)},get bufferedEnd(){const t=Qe(this.buffered)??0;return Math.min(this.duration,Math.max(0,t-this.clipStartTime))},get seekableStart(){const t=Je(this.seekable)??0;return Math.max(0,t-this.clipStartTime)},get seekableEnd(){const t=this.canPlay?Qe(this.seekable)??1/0:0;return this.clipEndTime>0?Math.max(this.clipEndTime,Math.max(0,t-this.clipStartTime)):t},get seekableWindow(){return Math.max(0,this.seekableEnd-this.seekableStart)},canAirPlay:!1,canGoogleCast:!1,remotePlaybackState:"disconnected",remotePlaybackType:"none",remotePlaybackLoader:null,remotePlaybackInfo:null,get isAirPlayConnected(){return this.remotePlaybackType==="airplay"&&this.remotePlaybackState==="connected"},get isGoogleCastConnected(){return this.remotePlaybackType==="google-cast"&&this.remotePlaybackState==="connected"},pointer:"fine",orientation:"landscape",width:0,height:0,mediaWidth:0,mediaHeight:0,lastKeyboardAction:null,userBehindLiveEdge:!1,liveEdgeTolerance:10,minLiveDVRWindow:60,get canSeek(){return/unknown|on-demand|:dvr/.test(this.streamType)&&Number.isFinite(this.seekableWindow)&&(!this.live||/:dvr/.test(this.streamType)&&this.seekableWindow>=this.minLiveDVRWindow)},get live(){return this.streamType.includes("live")||!Number.isFinite(this.realDuration)},get liveEdgeStart(){return this.live&&Number.isFinite(this.seekableEnd)?Math.max(0,(this.liveSyncPosition??this.seekableEnd)-this.liveEdgeTolerance):0},get liveEdge(){return this.live&&(!this.canSeek||!this.userBehindLiveEdge&&this.currentTime>=this.liveEdgeStart)},get liveEdgeWindow(){return this.live&&Number.isFinite(this.seekableEnd)?this.seekableEnd-this.liveEdgeStart:0},autoPlaying:!1,providedTitle:"",inferredTitle:"",providedLoop:!1,userPrefersLoop:!1,providedPoster:"",inferredPoster:"",inferredViewType:"unknown",providedViewType:"unknown",providedStreamType:"unknown",inferredStreamType:"unknown",liveSyncPosition:null,savedState:null}),In=new Set(["autoPlayError","autoPlaying","buffered","canPlay","error","paused","played","playing","seekable","seeking","waiting"]),Qs=new Set([...In,"ended","inferredPoster","inferredStreamType","inferredTitle","intrinsicDuration","liveSyncPosition","realCurrentTime","savedState","started","userBehindLiveEdge"]);function fo(t,e=!1){const n=e?In:Qs;Js.reset(t,i=>n.has(i)),jn()}const ho={type:"color"},po={type:"radio",values:{"Monospaced Serif":"mono-serif","Proportional Serif":"pro-serif","Monospaced Sans-Serif":"mono-sans","Proportional Sans-Serif":"pro-sans",Casual:"casual",Cursive:"cursive","Small Capitals":"capitals"}},mo={type:"slider",min:0,max:400,step:25,upIcon:null,downIcon:null},go={type:"slider",min:0,max:100,step:5,upIcon:null,downIcon:null},bo={type:"radio",values:["None","Drop Shadow","Raised","Depressed","Outline"]},me={fontFamily:"pro-sans",fontSize:"100%",textColor:"#ffffff",textOpacity:"100%",textShadow:"none",textBg:"#000000",textBgOpacity:"100%",displayBg:"#000000",displayBgOpacity:"0%"},Kt=Object.keys(me).reduce((t,e)=>({...t,[e]:it(me[e])}),{});for(const t of Object.keys(Kt)){const e=localStorage.getItem(`vds-player:${$n(t)}`);x(e)&&Kt[t].set(e)}function yo(){for(const t of Object.keys(Kt)){const e=me[t];Kt[t].set(e)}}const Zs=ei();function tr(){return yn(Zs)}function wo(){return tr().$state}function $o(t,e){return[...t].sort(e?nr:er)}function er(t,e){return t.height===e.height?(t.bitrate??0)-(e.bitrate??0):t.height-e.height}function nr(t,e){return e.height===t.height?(e.bitrate??0)-(t.bitrate??0):e.height-t.height}function ir(t){return t?"true":"false"}function So(t){return()=>ir(t())}export{So as $,mr as A,ao as B,dr as C,D,jn as E,yn as F,Yr as G,xr as H,bs as I,Kr as J,qr as K,$r as L,fr as M,Hr as N,Xs as O,hr as P,Wr as Q,Ee as R,ci as S,E as T,gr as U,oi as V,$o as W,zs as X,M as Y,fe as Z,gn as _,it as a,zr as a$,Br as a0,jr as a1,no as a2,ei as a3,Ze as a4,lr as a5,Kn as a6,Ur as a7,ar as a8,br as a9,Fn as aA,kr as aB,Tr as aC,Qn as aD,vr as aE,Kt as aF,me as aG,io as aH,Ie as aI,wo as aJ,U as aK,to as aL,or as aM,co as aN,wr as aO,eo as aP,yo as aQ,po as aR,ho as aS,bo as aT,mo as aU,go as aV,Zr as aW,Be as aX,Qr as aY,Xr as aZ,Ji as a_,ro as aa,Wn as ab,uo as ac,F as ad,xt as ae,Jn as af,_n as ag,Pr as ah,Er as ai,ui as aj,Ar as ak,gs as al,Dr as am,q as an,Lr as ao,fo as ap,Qe as aq,Je as ar,ae as as,Ms as at,dn as au,Jr as av,cr as aw,ur as ax,Ls as ay,ai as az,ys as b,Gr as b0,lo as b1,Ir as b2,Sr as b3,Cr as b4,Nr as b5,Rr as b6,$s as b7,oo as b8,so as b9,Mr as ba,bn as c,Or as d,z as e,pi as f,_r as g,Es as h,Fr as i,Dn as j,De as k,k as l,ni as m,Zs as n,At as o,rr as p,Js as q,Vr as r,Ut as s,hi as t,tr as u,yr as v,$n as w,he as x,x as y,pr as z}; +function __vite__mapDeps(indexes) { + if (!__vite__mapDeps.viteFileDeps) { + __vite__mapDeps.viteFileDeps = ["assets/prod-OBrTmKrB.js","assets/app-8OZtYazS.js"] + } + return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) +} diff --git a/assets/vidstack-CW1cJiXX-4tDZFFJS.js b/assets/vidstack-CW1cJiXX-4tDZFFJS.js new file mode 100644 index 000000000..eb96670cf --- /dev/null +++ b/assets/vidstack-CW1cJiXX-4tDZFFJS.js @@ -0,0 +1 @@ +import{aj as c,a as n,l as a,e as h,p as u,b9 as d,y as l}from"./vidstack-CSaHpIQV-AmLqxEmn.js";function p(r,t=3e3){const s=c();return setTimeout(()=>{const i=r();i&&s.reject(i)},t),s}class f{constructor(t){this.Lb=t,this.sc=n(""),this.referrerPolicy=null,t.setAttribute("frameBorder","0"),t.setAttribute("aria-hidden","true"),t.setAttribute("allow","autoplay; fullscreen; encrypted-media; picture-in-picture; accelerometer; gyroscope"),this.referrerPolicy!==null&&t.setAttribute("referrerpolicy",this.referrerPolicy)}get iframe(){return this.Lb}setup(){a(window,"message",this.Xi.bind(this)),a(this.Lb,"load",this.gd.bind(this)),h(this.Mb.bind(this))}Mb(){const t=this.sc();if(!t.length){this.Lb.setAttribute("src","");return}const s=u(()=>this.mg());this.Lb.setAttribute("src",d(t,s))}se(t,s){var i;(i=this.Lb.contentWindow)==null||i.postMessage(JSON.stringify(t),s??"*")}Xi(t){var o;const s=this.Nb();if((t.source===null||t.source===((o=this.Lb)==null?void 0:o.contentWindow))&&(!l(s)||s===t.origin)){try{const e=JSON.parse(t.data);e&&this.te(e,t);return}catch{}t.data&&this.te(t.data,t)}}}export{f as E,p as t}; diff --git a/assets/vidstack-CpPO9Fgt-6z3IyZQH.js b/assets/vidstack-CpPO9Fgt-6z3IyZQH.js new file mode 100644 index 000000000..8f4dbe852 --- /dev/null +++ b/assets/vidstack-CpPO9Fgt-6z3IyZQH.js @@ -0,0 +1,9 @@ +import{i as U}from"./app-8OZtYazS.js";import{f as st,V as G,a as w,b as Ni,l as m,o as P,p as u,i as Ui,g as Ie,h as vi,j as je,e as c,D as R,k as W,C as y,T as j,m as H,n as Gi,q as Ki,r as x,I as Wi,s as $,t as mt,v as Qi,w as Xi,x as Q,y as S,c as at,z as k,A as C,S as rt,u as T,B as Ft,E as Z,F as O,G as Ht,J as Pi,K as tt,L as Nt,M as Yi,$ as L,N as et,O as V,P as F,Q as xi,R as it,U as ce,W as Si,X as Ve,Y as Re,Z as zi,_ as Ai,a0 as Rs,a1 as Ei,a2 as Tt,a3 as ht,a4 as Bi,a5 as _s,a6 as pe,a7 as _e,a8 as Ji,a9 as Zi,aa as qt,ab as Ut,ac as Ci,ad as q,ae as N,af as ta,ag as ea,ah as sa,ai as ia,aj as Fs,ak as aa,al as na,am as ra,an as ha,ao as oa,ap as Hs,aq as fe,ar as ca,as as la,at as Vt,au as Ns,av as da,aw as ua,ax as pa,ay as fa,az as ma,aA as ba,aB as ga,aC as ya}from"./vidstack-CSaHpIQV-AmLqxEmn.js";const $a=Symbol(0),ka=Symbol(0),K={Wa:$a,Ia:ka};function me(h){return h instanceof Error?h:Error(typeof h=="string"?h:JSON.stringify(h))}function z(h,t){if(!h)throw Error("Assertion failed.")}function M(h,t=2){return Number(h.toFixed(t))}function wa(h){var t;return((t=String(h).split(".")[1])==null?void 0:t.length)??0}function Fe(h,t,e){return Math.max(h,Math.min(e,t))}const we=st.fullscreenEnabled;class Ta extends G{constructor(){super(...arguments),this.dc=!1,this.Pd=!1}get active(){return this.Pd}get supported(){return we}onConnect(){m(st,"fullscreenchange",this.Qd.bind(this)),m(st,"fullscreenerror",this.Zc.bind(this)),P(this.Fa.bind(this))}async Fa(){we&&await this.exit()}Qd(t){const e=be(this.el);e!==this.Pd&&(e||(this.dc=!1),this.Pd=e,this.dispatch("fullscreen-change",{detail:e,trigger:t}))}Zc(t){this.dc&&(this.dispatch("fullscreen-error",{detail:null,trigger:t}),this.dc=!1)}async enter(){try{return this.dc=!0,!this.el||be(this.el)?void 0:(Us(),st.requestFullscreen(this.el))}catch(t){throw this.dc=!1,t}}async exit(){if(!(!this.el||!be(this.el)))return Us(),st.exitFullscreen()}}function be(h){if(st.fullscreenElement===h)return!0;try{return h.matches(st.fullscreenPseudoClass)}catch{return!1}}function Us(){if(!we)throw Error("[vidstack] no fullscreen API")}const Xt=class Xt extends G{constructor(){super(...arguments),this.la=w(this.Jf()),this.Cb=w(!1)}get type(){return this.la()}get locked(){return this.Cb()}get portrait(){return this.la().startsWith("portrait")}get landscape(){return this.la().startsWith("landscape")}get supported(){return Xt.supported}onConnect(){if(this.supported)m(screen.orientation,"change",this.Kf.bind(this));else{const t=window.matchMedia("(orientation: landscape)");t.onchange=this.Kf.bind(this),P(()=>t.onchange=null)}P(this.Fa.bind(this))}async Fa(){this.supported&&this.Cb()&&await this.unlock()}Kf(t){this.la.set(this.Jf()),this.dispatch("orientation-change",{detail:{orientation:u(this.la),lock:this._c},trigger:t})}async lock(t){u(this.Cb)||this._c===t||(this.Lf(),await screen.orientation.lock(t),this.Cb.set(!0),this._c=t)}async unlock(){u(this.Cb)&&(this.Lf(),this._c=void 0,await screen.orientation.unlock(),this.Cb.set(!1))}Lf(){if(!this.supported)throw Error("[vidstack] no orientation API")}Jf(){return this.supported?window.screen.orientation.type:window.innerWidth>=window.innerHeight?"landscape-primary":"portrait-primary"}};Xt.supported=Ni();let Gt=Xt;function Te(h){return!S(h)&&"width"in h&&"height"in h&&W(h.width)&&W(h.height)}class va{constructor(t=void 0){this.bc=t,this.G=null,this.f=null,this.Rd=-1}setTarget(t){this.G=t}getPlayer(t){var e;return this.f?this.f:((e=t??this.G)==null||e.dispatchEvent(new R("find-media-player",{detail:s=>void(this.f=s),bubbles:!0,composed:!0})),this.f)}setPlayer(t){this.f=t}startLoading(t){this.s("media-start-loading",t)}startLoadingPoster(t){this.s("media-poster-start-loading",t)}requestAirPlay(t){this.s("media-airplay-request",t)}requestGoogleCast(t){this.s("media-google-cast-request",t)}play(t){this.s("media-play-request",t)}pause(t){this.s("media-pause-request",t)}mute(t){this.s("media-mute-request",t)}unmute(t){this.s("media-unmute-request",t)}enterFullscreen(t,e){this.s("media-enter-fullscreen-request",e,t)}exitFullscreen(t,e){this.s("media-exit-fullscreen-request",e,t)}lockScreenOrientation(t,e){this.s("media-orientation-lock-request",e,t)}unlockScreenOrientation(t){this.s("media-orientation-unlock-request",t)}enterPictureInPicture(t){this.s("media-enter-pip-request",t)}exitPictureInPicture(t){this.s("media-exit-pip-request",t)}seeking(t,e){this.s("media-seeking-request",e,t)}seek(t,e){this.s("media-seek-request",e,t)}seekToLiveEdge(t){this.s("media-live-edge-request",t)}changeVolume(t,e){this.s("media-volume-change-request",e,Math.max(0,Math.min(1,t)))}changeAudioTrack(t,e){this.s("media-audio-track-change-request",e,t)}changeQuality(t,e){this.s("media-quality-change-request",e,t)}requestAutoQuality(t){this.changeQuality(-1,t)}changeTextTrackMode(t,e,s){this.s("media-text-track-change-request",s,{index:t,mode:e})}changePlaybackRate(t,e){this.s("media-rate-change-request",e,t)}changeAudioGain(t,e){this.s("media-audio-gain-change-request",e,t)}resumeControls(t){this.s("media-resume-controls-request",t)}pauseControls(t){this.s("media-pause-controls-request",t)}togglePaused(t){const e=this.getPlayer(t==null?void 0:t.target);e&&(e.state.paused?this.play(t):this.pause(t))}toggleControls(t){const e=this.getPlayer(t==null?void 0:t.target);e&&(e.controls.showing?e.controls.hide(0,t):e.controls.show(0,t))}toggleMuted(t){const e=this.getPlayer(t==null?void 0:t.target);e&&(e.state.muted?this.unmute(t):this.mute(t))}toggleFullscreen(t,e){const s=this.getPlayer(e==null?void 0:e.target);s&&(s.state.fullscreen?this.exitFullscreen(t,e):this.enterFullscreen(t,e))}togglePictureInPicture(t){const e=this.getPlayer(t==null?void 0:t.target);e&&(e.state.pictureInPicture?this.exitPictureInPicture(t):this.enterPictureInPicture(t))}showCaptions(t){const e=this.getPlayer(t==null?void 0:t.target);if(!e)return;let s=e.state.textTracks,i=this.Rd;(!s[i]||!V(s[i]))&&(i=-1),i===-1&&(i=s.findIndex(a=>V(a)&&a.default)),i===-1&&(i=s.findIndex(a=>V(a))),i>=0&&this.changeTextTrackMode(i,"showing",t),this.Rd=-1}disableCaptions(t){const e=this.getPlayer(t==null?void 0:t.target);if(!e)return;const s=e.state.textTracks,i=e.state.textTrack;if(i){const a=s.indexOf(i);this.changeTextTrackMode(a,"disabled",t),this.Rd=a}}toggleCaptions(t){const e=this.getPlayer(t==null?void 0:t.target);e&&(e.state.textTrack?this.disableCaptions():this.showCaptions())}userPrefersLoopChange(t,e){this.s("media-user-loop-change-request",e,t)}s(t,e,s){var r,o;const i=new R(t,{bubbles:!0,composed:!0,cancelable:!0,detail:s,trigger:e});let a=(e==null?void 0:e.target)||null;a&&a instanceof y&&(a=a.el),a=!a||a===document||a===window||a===document.body||((r=this.f)==null?void 0:r.el)&&a instanceof Node&&!this.f.el.contains(a)?this.G??((o=this.getPlayer())==null?void 0:o.el):a??this.G,this.f?t==="media-play-request"&&!this.f.state.canLoad?a==null||a.dispatchEvent(i):this.f.canPlayQueue.k(t,()=>a==null?void 0:a.dispatchEvent(i)):a==null||a.dispatchEvent(i)}Va(t){}}class ot extends G{}class Pa extends ot{constructor(){super(...arguments),this.Sd=-2,this.Gb=!1,this.Sf=w(!1),this.Td=w(!1),this.ec=null,this.Ud=w(!0),this.defaultDelay=2e3}get canIdle(){return this.Ud()}set canIdle(t){this.Ud.set(t)}get hideOnMouseLeave(){const{hideControlsOnMouseLeave:t}=this.$props;return this.Sf()||t()}set hideOnMouseLeave(t){this.Sf.set(t)}get showing(){return this.$state.controlsVisible()}show(t=0,e){this.Vd(),this.Gb||this.ad(!0,t,e)}hide(t=this.defaultDelay,e){this.Vd(),this.Gb||this.ad(!1,t,e)}pause(t){this.Gb=!0,this.Vd(),this.ad(!0,0,t)}resume(t){this.Gb=!1,!this.$state.paused()&&this.ad(!1,this.defaultDelay,t)}onConnect(){c(this.Hb.bind(this))}Hb(){const{viewType:t}=this.$state;if(!this.Ud())return;if(t()==="audio"){this.show();return}c(this.$h.bind(this)),c(this.fc.bind(this));const e=this.gc.bind(this),s=this.ib.bind(this);this.listen("can-play",i=>this.show(0,i)),this.listen("play",e),this.listen("pause",s),this.listen("auto-play-fail",s)}$h(){const{started:t,pointer:e,paused:s}=this.$state;if(!t()||e()!=="fine")return;const i=this.hideOnMouseLeave;(!i||!this.Td())&&c(()=>{s()||this.listen("pointermove",this.Tf.bind(this))}),i&&(this.listen("mouseenter",this.ai.bind(this)),this.listen("mouseleave",this.bi.bind(this)))}fc(){const{paused:t,started:e,autoPlayError:s}=this.$state;if(t()||s()&&!e())return;const i=this.Tf.bind(this);c(()=>{const a=this.$state.pointer(),n=a==="coarse",r=[n?"touchend":"pointerup","keydown"];for(const o of r)this.listen(o,i,{passive:!1})})}gc(t){this.show(0,t),this.hide(void 0,t)}ib(t){this.show(0,t)}ai(t){this.Td.set(!1),this.show(0,t),this.hide(void 0,t)}bi(t){this.Td.set(!0),this.hide(0,t)}Vd(){window.clearTimeout(this.Sd),this.Sd=-1}Tf(t){var e;t.MEDIA_GESTURE||this.Gb||_e(t)||(Ai(t)&&(t.key==="Escape"?((e=this.el)==null||e.focus(),this.ec=null):this.ec&&(t.preventDefault(),requestAnimationFrame(()=>{var s;(s=this.ec)==null||s.focus(),this.ec=null}))),this.show(0,t),this.hide(this.defaultDelay,t))}ad(t,e,s){if(e===0){this.E(t,s);return}this.Sd=window.setTimeout(()=>{this.scope&&this.E(t&&!this.Gb,s)},e)}E(t,e){var s;this.$state.controlsVisible()!==t&&(this.$state.controlsVisible.set(t),!t&&document.activeElement&&((s=this.el)!=null&&s.contains(document.activeElement))&&(this.ec=document.activeElement,requestAnimationFrame(()=>{var i;(i=this.el)==null||i.focus({preventScroll:!0})})),this.dispatch("controls-change",{detail:t,trigger:e}))}}var ct=xa;function xa(h,t,e){var s=null,i=null,a=e&&e.leading,n=e&&e.trailing;a==null&&(a=!0),n==null&&(n=!a),a==!0&&(n=!1);var r=function(){s&&(clearTimeout(s),s=null)},o=function(){var l=i;r(),l&&l()},d=function(){var l=a&&!s,p=this,f=arguments;if(i=function(){return h.apply(p,f)},s||(s=setTimeout(function(){if(s=null,n)return i()},t)),l)return l=!1,i()};return d.cancel=r,d.flush=o,d}class Sa{constructor(){this.playerId="vds-player",this.mediaId=null,this.H={volume:null,muted:null,audioGain:null,time:null,lang:null,captions:null,rate:null,quality:null},this.saveTimeThrottled=ct(this.saveTime.bind(this),1e3)}async getVolume(){return this.H.volume}async setVolume(t){this.H.volume=t,this.save()}async getMuted(){return this.H.muted}async setMuted(t){this.H.muted=t,this.save()}async getTime(){return this.H.time}async setTime(t,e){const s=t<0;this.H.time=s?null:t,s||e?this.saveTime():this.saveTimeThrottled()}async getLang(){return this.H.lang}async setLang(t){this.H.lang=t,this.save()}async getCaptions(){return this.H.captions}async setCaptions(t){this.H.captions=t,this.save()}async getPlaybackRate(){return this.H.rate}async setPlaybackRate(t){this.H.rate=t,this.save()}async getAudioGain(){return this.H.audioGain}async setAudioGain(t){this.H.audioGain=t,this.save()}async getVideoQuality(){return this.H.quality}async setVideoQuality(t){this.H.quality=t,this.save()}onChange(t,e,s="vds-player"){const i=s?localStorage.getItem(s):null,a=e?localStorage.getItem(e):null;this.playerId=s,this.mediaId=e,this.H={volume:null,muted:null,audioGain:null,lang:null,captions:null,rate:null,quality:null,...i?JSON.parse(i):{},time:a?+a:null}}save(){if(!this.playerId)return;const t=JSON.stringify({...this.H,time:void 0});localStorage.setItem(this.playerId,t)}saveTime(){if(!this.mediaId)return;const t=(this.H.time??0).toString();localStorage.setItem(this.mediaId,t)}}class Aa{constructor(){this.priority=0,this.Uf=!0,this.m=null,this.J=null,this.va=new Set}canRender(t,e){return!!e}attach(t){this.m=t,t&&(t.textTracks.onchange=this.E.bind(this))}addTrack(t){this.va.add(t),this.ci(t)}removeTrack(t){var e,s;(s=(e=t[j._])==null?void 0:e.remove)==null||s.call(e),t[j._]=null,this.va.delete(t)}changeTrack(t){const e=t==null?void 0:t[j._];e&&e.track.mode!=="showing"&&(e.track.mode="showing"),this.J=t}setDisplay(t){this.Uf=t,this.E()}detach(){this.m&&(this.m.textTracks.onchange=null);for(const t of this.va)this.removeTrack(t);this.va.clear(),this.m=null,this.J=null}ci(t){var s;if(!this.m)return;const e=t[s=j._]??(t[s]=this.di(t));Tt(e)&&(this.m.append(e),e.track.mode=e.default?"showing":"disabled")}di(t){const e=document.createElement("track"),s=t.default||t.mode==="showing",i=t.src&&t.type==="vtt";return e.id=t.id,e.src=i?t.src:"",e.label=t.label,e.kind=t.kind,e.default=s,t.language&&(e.srclang=t.language),s&&!i&&this.Vf(t,e.track),e}Vf(t,e){var s;if(!(t.src&&t.type==="vtt"||(s=e.cues)!=null&&s.length))for(const i of t.cues)e.addCue(i)}E(t){for(const e of this.va){const s=e[j._];if(!s)continue;if(!this.Uf){s.track.mode=s.managed?"hidden":"disabled";continue}const i=s.track.mode==="showing";i&&this.Vf(e,s.track),e.setMode(i?"showing":"disabled",t)}}}class Ea{constructor(t){this.a=t,this.m=null,this.bd=[],this.Wf=!1,this.wa=null,this.jb=null;const e=t.textTracks;this.Wd=e,c(this.Xd.bind(this)),P(this.ei.bind(this)),m(e,"add",this.Yd.bind(this)),m(e,"remove",this.fi.bind(this)),m(e,"mode-change",this.Ha.bind(this))}Xd(){const{nativeControls:t}=this.a.$state;this.Wf=t(),this.Ha()}add(t){this.bd.push(t),Ut(this.Ha.bind(this))}remove(t){t.detach(),this.bd.splice(this.bd.indexOf(t),1),Ut(this.Ha.bind(this))}Xf(t){requestAnimationFrame(()=>{if(this.m=t,t){this.wa=new Aa,this.wa.attach(t);for(const e of this.Wd)this.Yf(e)}this.Ha()})}Yf(t){var e;V(t)&&((e=this.wa)==null||e.addTrack(t))}gi(t){var e;V(t)&&((e=this.wa)==null||e.removeTrack(t))}Yd(t){this.Yf(t.detail)}fi(t){this.gi(t.detail)}Ha(){var s,i,a,n,r,o,d;const t=this.Wd.selected;if(this.m&&(this.Wf||t!=null&&t[j.Mf])){(s=this.jb)==null||s.changeTrack(null),(i=this.wa)==null||i.setDisplay(!0),(a=this.wa)==null||a.changeTrack(t);return}if((n=this.wa)==null||n.setDisplay(!1),(r=this.wa)==null||r.changeTrack(null),!t){(o=this.jb)==null||o.changeTrack(null);return}const e=this.bd.sort((l,p)=>l.priority-p.priority).find(l=>l.canRender(t,this.m));this.jb!==e&&((d=this.jb)==null||d.detach(),e==null||e.attach(this.m),this.jb=e??null),e==null||e.changeTrack(t)}ei(){var t,e;(t=this.wa)==null||t.detach(),this.wa=null,(e=this.jb)==null||e.detach(),this.jb=null}}var He=Ca;function Ca(h,t,e){var s=null,i=null,a=function(){s&&(clearTimeout(s),i=null,s=null)},n=function(){var o=i;a(),o&&o()},r=function(){if(!t)return h.apply(this,arguments);var o=this,d=arguments,l=e&&!s;if(a(),i=function(){h.apply(o,d)},s=setTimeout(function(){if(s=null,!l){var p=i;return i=null,p()}},t),l)return i()};return r.cancel=a,r.flush=n,r}class qa extends Ci{constructor(){super(),this.Z=!1,this.kb={},this.lb=null,this.mb=null,this.bg=He(async()=>{var s;if(!this.Z)return;!this.mb&&this.lb&&(this.mb=await this.lb.getLang());const t=await((s=this.lb)==null?void 0:s.getCaptions()),e=[["captions","subtitles"],"chapters","descriptions","metadata"];for(const i of e){const a=this.getByKind(i);if(a.find(l=>l.mode==="showing"))continue;const n=this.mb?a.find(l=>l.language===this.mb):null,r=N(i)?this.kb[i.find(l=>this.kb[l])||""]:this.kb[i],o=n??r,d=o&&V(o);o&&(!d||t!==!1)&&(o.mode="showing",d&&this.cg(o))}},300),this.Zd=null,this.ag=this.hi.bind(this)}get selected(){return this.A.find(e=>e.mode==="showing"&&V(e))??null}get selectedIndex(){const t=this.selected;return t?this.indexOf(t):-1}get preferredLang(){return this.mb}set preferredLang(t){this.mb=t,this.$f(t)}add(t,e){const s=t instanceof Ft,i=s?t:new Ft(t),a=t.kind==="captions"||t.kind==="subtitles"?"captions":t.kind;return this.kb[a]&&t.default&&delete t.default,i.addEventListener("mode-change",this.ag),this[q.da](i,e),i[j.Db]=this[j.Db],this.Z&&i[j.Z](),t.default&&(this.kb[a]=i),this.bg(),this}remove(t,e){if(this.Zd=t,!!this.A.includes(t))return t===this.kb[t.kind]&&delete this.kb[t.kind],t.mode="disabled",t[j.hb]=null,t.removeEventListener("mode-change",this.ag),this[q.cc](t,e),this.Zd=null,this}clear(t){for(const e of[...this.A])this.remove(e,t);return this}getByKind(t){const e=Array.isArray(t)?t:[t];return this.A.filter(s=>e.includes(s.kind))}[j.Z](){if(!this.Z){for(const t of this.A)t[j.Z]();this.Z=!0,this.bg()}}hi(t){const e=t.detail;if(this.lb&&V(e)&&e!==this.Zd&&this.cg(e),e.mode==="showing"){const s=V(e)?["captions","subtitles"]:[e.kind];for(const i of this.A)i.mode==="showing"&&i!=e&&s.includes(i.kind)&&(i.mode="disabled")}this.dispatchEvent(new R("mode-change",{detail:t.detail,trigger:t}))}cg(t){var e,s;t.mode!=="disabled"&&this.$f(t.language),(s=(e=this.lb)==null?void 0:e.setCaptions)==null||s.call(e,t.mode==="showing")}$f(t){var e,s;(s=(e=this.lb)==null?void 0:e.setLang)==null||s.call(e,this.mb=t)}setStorage(t){this.lb=t}}const yt=Symbol(0);class qi extends Ci{get selected(){return this.A.find(t=>t.selected)??null}get selectedIndex(){return this.A.findIndex(t=>t.selected)}[q.Hf](t,e){this[q.ea](t,!1,e)}[q.da](t,e){t[yt]=!1,Object.defineProperty(t,"selected",{get(){return this[yt]},set:s=>{var i;this.readonly||((i=this[q.If])==null||i.call(this),this[q.ea](t,s))}}),super[q.da](t,e)}[q.ea](t,e,s){if(e===(t==null?void 0:t[yt]))return;const i=this.selected;t&&(t[yt]=e),(e?i!==t:i===t)&&(i&&(i[yt]=!1),this.dispatchEvent(new R("change",{detail:{prev:i,current:this.selected},trigger:s})))}}class Oa extends qi{}class Da extends qi{constructor(){super(...arguments),this.cd=!1,this.switch="current"}get auto(){return this.cd||this.readonly}[q.If](){this[K.Wa](!1)}[q.Gf](t){this[K.Ia]=void 0,this[K.Wa](!1,t)}autoSelect(t){var e;this.readonly||this.cd||!this[K.Ia]||((e=this[K.Ia])==null||e.call(this,t),this[K.Wa](!0,t))}getBySrc(t){return this.A.find(e=>e.src===t)}[K.Wa](t,e){this.cd!==t&&(this.cd=t,this.dispatchEvent(new R("auto-change",{detail:t,trigger:e})))}}function Ma(h){return h instanceof HTMLAudioElement}function La(h){return h instanceof HTMLVideoElement}function Ia(h){return Ma(h)||La(h)}const ja={togglePaused:"k Space",toggleMuted:"m",toggleFullscreen:"f",togglePictureInPicture:"i",toggleCaptions:"c",seekBackward:"j J ArrowLeft",seekForward:"l L ArrowRight",volumeUp:"ArrowUp",volumeDown:"ArrowDown",speedUp:">",slowDown:"<"},Lt=new Set(["Shift","Alt","Meta","Ctrl"]),Va='button, [role="button"]',Gs='input, textarea, select, [contenteditable], [role^="menuitem"], [role="timer"]';class Ra extends ot{constructor(t){super(),this.a=t,this.Ib=null}onConnect(){c(this.ii.bind(this))}ii(){const{keyDisabled:t,keyTarget:e}=this.$props;if(t())return;const s=e()==="player"?this.el:document,i=w(!1);s===this.el?(this.listen("focusin",()=>i.set(!0)),this.listen("focusout",a=>{this.el.contains(a.target)||i.set(!1)})):(u(i)||i.set(document.querySelector("[data-media-player]")===this.el),m(document,"focusin",a=>{const n=a.composedPath().find(r=>r instanceof Element&&r.localName==="media-player");n!==void 0&&i.set(this.el===n)})),c(()=>{i()&&(m(s,"keyup",this.hc.bind(this)),m(s,"keydown",this.ic.bind(this)),m(s,"keydown",this.ji.bind(this),{capture:!0}))})}hc(t){var a,n;const e=document.activeElement;if(!t.key||!this.$state.canSeek()||e!=null&&e.matches(Gs))return;let{method:s,value:i}=this._d(t);if(!S(i)&&!N(i)){(a=i==null?void 0:i.onKeyUp)==null||a.call(i,{event:t,player:this.a.player,remote:this.a.remote}),(n=i==null?void 0:i.callback)==null||n.call(i,t,this.a.remote);return}if(s!=null&&s.startsWith("seek")&&(t.preventDefault(),t.stopPropagation(),this.Ib?(this.dg(t,s==="seekForward"),this.Ib=null):(this.a.remote.seek(this.dd,t),this.dd=void 0)),s!=null&&s.startsWith("volume")){const r=this.el.querySelector("[data-media-volume-slider]");r==null||r.dispatchEvent(new KeyboardEvent("keyup",{key:s==="volumeUp"?"Up":"Down",shiftKey:t.shiftKey,trigger:t}))}}ic(t){var n,r,o,d;if(!t.key||Lt.has(t.key))return;const e=document.activeElement;if(e!=null&&e.matches(Gs)||ta(t)&&(e!=null&&e.matches(Va)))return;let{method:s,value:i}=this._d(t),a=!t.metaKey&&/^[0-9]$/.test(t.key);if(!S(i)&&!N(i)&&!a){(n=i==null?void 0:i.onKeyDown)==null||n.call(i,{event:t,player:this.a.player,remote:this.a.remote}),(r=i==null?void 0:i.callback)==null||r.call(i,t,this.a.remote);return}if(!s&&a){t.preventDefault(),t.stopPropagation(),this.a.remote.seek(this.$state.duration()/10*Number(t.key),t);return}if(s){switch(t.preventDefault(),t.stopPropagation(),s){case"seekForward":case"seekBackward":this.Ja(t,s,s==="seekForward");break;case"volumeUp":case"volumeDown":const l=this.el.querySelector("[data-media-volume-slider]");if(l)l.dispatchEvent(new KeyboardEvent("keydown",{key:s==="volumeUp"?"Up":"Down",shiftKey:t.shiftKey,trigger:t}));else{const f=t.shiftKey?.1:.05;this.a.remote.changeVolume(this.$state.volume()+(s==="volumeUp"?+f:-f),t)}break;case"toggleFullscreen":this.a.remote.toggleFullscreen("prefer-media",t);break;case"speedUp":case"slowDown":const p=this.$state.playbackRate();this.a.remote.changePlaybackRate(Math.max(.25,Math.min(2,p+(s==="speedUp"?.25:-.25))),t);break;default:(d=(o=this.a.remote)[s])==null||d.call(o,t)}this.$state.lastKeyboardAction.set({action:s,event:t})}}ji(t){Ia(t.target)&&this._d(t).method&&t.preventDefault()}_d(t){const e={...this.$props.keyShortcuts(),...this.a.ariaKeys},s=Object.keys(e).find(i=>{var o;const a=e[i],n=N(a)?a.join(" "):S(a)?a:a==null?void 0:a.keys,r=(o=N(n)?n:n==null?void 0:n.split(" "))==null?void 0:o.map(d=>Fa(d).replace(/Control/g,"Ctrl").split("+"));return r==null?void 0:r.some(d=>{const l=new Set(d.filter(p=>Lt.has(p)));for(const p of Lt){const f=p.toLowerCase()+"Key";if(!l.has(p)&&t[f])return!1}return d.every(p=>Lt.has(p)?t[p.toLowerCase()+"Key"]:t.key===p.replace("Space"," "))})});return{method:s,value:s?e[s]:null}}ki(t,e){const s=t.shiftKey?10:5;return this.dd=Math.max(0,Math.min((this.dd??this.$state.currentTime())+(e==="seekForward"?+s:-s),this.$state.duration()))}dg(t,e){var s;(s=this.Ib)==null||s.dispatchEvent(new KeyboardEvent(t.type,{key:e?"Right":"Left",shiftKey:t.shiftKey,trigger:t}))}Ja(t,e,s){this.$state.canSeek()&&(this.Ib||(this.Ib=this.el.querySelector("[data-media-time-slider]")),this.Ib?this.dg(t,s):this.a.remote.seeking(this.ki(t,e),t))}}const _a=["!","@","#","$","%","^","&","*","(",")"];function Fa(h){return h.replace(/Shift\+(\d)/g,(t,e)=>_a[e-1])}class Ha extends G{constructor(t){super(),this.$d=t}onAttach(t){const{$props:e,ariaKeys:s}=T(),i=t.getAttribute("aria-keyshortcuts");if(i){s[this.$d]=i,P(()=>{delete s[this.$d]});return}const a=e.keyShortcuts()[this.$d];if(a){const n=N(a)?a.join(" "):S(a)?a:a==null?void 0:a.keys;t.setAttribute("aria-keyshortcuts",N(n)?n.join(" "):n)}}}class Na{constructor(){this.name="audio"}canPlay(t){return ba(t)?!S(t.src)||t.type==="?"||ga(this.target,t.type):!1}mediaType(){return"audio"}async load(t){return new(await U(()=>import("./vidstack-audio-JFiSukRr.js"),__vite__mapDeps([0,1,2,3,4]))).AudioProvider(this.target,t)}}class Ne{constructor(){this.name="video"}canPlay(t){return ea(t)?!S(t.src)||t.type==="?"||sa(this.target,t.type):!1}mediaType(){return"video"}async load(t){return new(await U(()=>import("./vidstack-video-v9KwwqnU.js"),__vite__mapDeps([5,1,2,3,4]))).VideoProvider(this.target,t)}}const Yt=class Yt extends Ne{constructor(){super(...arguments),this.name="dash"}canPlay(t){return Yt.supported&&Ie(t)}async load(t){return new(await U(()=>import("./vidstack-dash-vJmpB4uO.js"),__vite__mapDeps([6,1,2,5,3,4]))).DASHProvider(this.target,t)}};Yt.supported=Ui();let ve=Yt;const zt=class zt extends Ne{constructor(){super(...arguments),this.name="hls"}canPlay(t){return zt.supported&&je(t)}async load(t){return new(await U(()=>import("./vidstack-hls-9FnwyM-K.js"),__vite__mapDeps([7,1,2,5,3,4]))).HLSProvider(this.target,t)}};zt.supported=vi();let Pe=zt;class Ua{constructor(){this.name="vimeo"}preconnect(){const t=["https://i.vimeocdn.com","https://f.vimeocdn.com","https://fresnel.vimeocdn.com"];for(const e of t)qt(e)}canPlay(t){return S(t.src)&&t.type==="video/vimeo"}mediaType(){return"video"}async load(t){return new(await U(()=>import("./vidstack-vimeo-bBnyvV-m.js"),__vite__mapDeps([8,1,2,4,9,10]))).VimeoProvider(this.target,t)}async loadPoster(t,e,s){const{resolveVimeoVideoId:i,getVimeoVideoInfo:a}=await U(()=>import("./vidstack-BInq9zTH-fGAq8GWc.js"),__vite__mapDeps([]));if(!S(t.src))return null;const{videoId:n,hash:r}=i(t.src);return n?a(n,s,r).then(o=>o?o.poster:null):null}}class Ga{constructor(){this.name="youtube"}preconnect(){const t=["https://www.google.com","https://i.ytimg.com","https://googleads.g.doubleclick.net","https://static.doubleclick.net"];for(const e of t)qt(e)}canPlay(t){return S(t.src)&&t.type==="video/youtube"}mediaType(){return"video"}async load(t){return new(await U(()=>import("./vidstack-youtube-M8CpvVcm.js"),__vite__mapDeps([11,1,2,9,12]))).YouTubeProvider(this.target,t)}async loadPoster(t,e,s){const{findYouTubePoster:i,resolveYouTubeVideoId:a}=await U(()=>import("./vidstack-DscYSLiW-_wDIXJ0I.js"),__vite__mapDeps([])),n=S(t.src)&&a(t.src);return n?i(n,s):null}}const ge=Symbol(0),Ka=["autoPlay","canAirPlay","canFullscreen","canGoogleCast","canLoad","canLoadPoster","canPictureInPicture","canPlay","canSeek","ended","fullscreen","isAirPlayConnected","isGoogleCastConnected","live","liveEdge","loop","mediaType","muted","paused","pictureInPicture","playing","playsInline","remotePlaybackState","remotePlaybackType","seeking","started","streamType","viewType","waiting"],Wa={artist:"",artwork:null,autoplay:!1,autoPlay:!1,clipStartTime:0,clipEndTime:0,controls:!1,currentTime:0,crossorigin:null,crossOrigin:null,duration:-1,fullscreenOrientation:"landscape",googleCast:{},load:"visible",posterLoad:"visible",logLevel:"silent",loop:!1,muted:!1,paused:!0,playsinline:!1,playsInline:!1,playbackRate:1,poster:"",preload:"metadata",preferNativeHLS:!1,src:"",title:"",controlsDelay:2e3,hideControlsOnMouseLeave:!1,viewType:"unknown",streamType:"unknown",volume:1,liveEdgeTolerance:10,minLiveDVRWindow:60,keyDisabled:!1,keyTarget:"player",keyShortcuts:ja,storage:null};class Ks extends ot{constructor(t,e){super(),this.la=t,this.La=e}async onAttach(t){const e=this.$props[this.la]();if(e==="eager")requestAnimationFrame(this.La);else if(e==="idle")ia(this.La);else if(e==="visible"){let s,i=new IntersectionObserver(a=>{this.scope&&a[0].isIntersecting&&(s==null||s(),s=void 0,this.La())});i.observe(t),s=P(()=>i.disconnect())}}}class Qa{constructor(t,e){this.V=t,this.a=e,this.c=(s,...i)=>{this.V(new R(s,{detail:i==null?void 0:i[0],trigger:i==null?void 0:i[1]}))}}async Ga(t,e){return Ut(async()=>{var qs,Os,Ds,Dt,Ms,Ls,Is;this.a;const{autoPlay:s,canPlay:i,started:a,duration:n,seekable:r,buffered:o,remotePlaybackInfo:d,playsInline:l,savedState:p,source:f}=this.a.$state;if(i())return;const b={duration:(t==null?void 0:t.duration)??n(),seekable:(t==null?void 0:t.seekable)??r(),buffered:(t==null?void 0:t.buffered)??o(),provider:this.a.$provider()};this.c("can-play",b,e),Z();let g=this.a.$provider(),{storage:v,qualities:Y}=this.a,{muted:dt,volume:Vi,clipStartTime:Ri,playbackRate:_i}=this.a.$props;await((qs=v==null?void 0:v.onLoad)==null?void 0:qs.call(v,f()));const Fi=(Os=p())==null?void 0:Os.currentTime,Es=(Ds=p())==null?void 0:Ds.paused,ue=await(v==null?void 0:v.getTime()),Cs=Fi??ue??Ri(),Hi=Es||Es!==!1&&!a()&&s();if(g){g.setVolume(await(v==null?void 0:v.getVolume())??Vi()),g.setMuted(dt()||!!await(v==null?void 0:v.getMuted()));const ut=await(v==null?void 0:v.getAudioGain())??1;ut>1&&((Ms=(Dt=g.audioGain)==null?void 0:Dt.setGain)==null||Ms.call(Dt,ut)),(Ls=g.setPlaybackRate)==null||Ls.call(g,await(v==null?void 0:v.getPlaybackRate())??_i()),(Is=g.setPlaysInline)==null||Is.call(g,l()),Cs>0&&g.setCurrentTime(Cs)}const gt=await(v==null?void 0:v.getVideoQuality());if(gt&&Y.length){let ut=null,js=1/0;for(const Mt of Y){const Vs=Math.abs(gt.width-Mt.width)+Math.abs(gt.height-Mt.height)+(gt.bitrate?Math.abs(gt.bitrate-(Mt.bitrate??0)):0);Vs0&&this.c("started",void 0,e),d.set(null)})}async kj(t){const{player:e,$state:{autoPlaying:s,muted:i}}=this.a;s.set(!0);const a=new R("auto-play-attempt",{trigger:t});try{await e.play(a)}catch{}}}class Xa{constructor(){this.i=new Map}k(t,e){this.i.set(t,e)}xe(t){const e=this.rg(t);return this.i.delete(t),e}rg(t){return this.i.get(t)}ub(t){this.i.delete(t)}Pm(){this.i.clear()}}class Oi{constructor(){this.wc=!1,this.ye=Fs(),this.i=new Map}get Qm(){return this.i.size}get Rm(){return this.wc}async Sm(){this.wc||await this.ye.promise}k(t,e){if(this.wc){e();return}this.i.delete(t),this.i.set(t,e)}xe(t){var e;(e=this.i.get(t))==null||e(),this.i.delete(t)}Xa(){this.sg(),this.wc=!0,this.i.size>0&&this.sg()}$(){this.wc=!1}z(){this.$(),this.i.clear(),this.tg()}sg(){for(const t of this.i.keys())this.xe(t);this.tg()}tg(){this.ye.resolve(),this.ye=Fs()}}class Ya extends ot{constructor(t,e,s){super(),this.Ba=t,this.g=e,this.a=s,this.zc=new Oi,this.Fe=!1,this.C=s.$provider,this.yc=new Pa,this.pd=new Ta,this.bb=new Gt}onAttach(){this.listen("fullscreen-change",this.Qd.bind(this))}onConnect(){const t=Object.getOwnPropertyNames(Object.getPrototypeOf(this)),e=this.Hj.bind(this);for(const s of t)s.startsWith("media-")&&this.listen(s,e);this.Ij(),c(this.Jj.bind(this)),c(this.Kj.bind(this)),c(this.Lj.bind(this)),c(this.Mj.bind(this)),c(this.Nj.bind(this)),c(this.Oj.bind(this)),c(this.Pj.bind(this))}onDestroy(){try{const t=this.createEvent("destroy"),{pictureInPicture:e,fullscreen:s}=this.$state;s()&&this.Lg("prefer-media",t),e()&&this.Ge(t)}catch{}this.zc.z()}Ij(){const{load:t}=this.$props,{canLoad:e}=this.$state;if(t()!=="play"||e())return;const s=this.listen("media-play-request",i=>{this.Gg(i),s()})}Jj(){const t=this.C(),e=this.$state.canPlay();return t&&e&&this.zc.Xa(),()=>{this.zc.$()}}Hj(t){t.stopPropagation(),!t.defaultPrevented&&this[t.type]&&(u(this.C)?this[t.type](t):this.zc.k(t.type,()=>{u(this.C)&&this[t.type](t)}))}async Ac(t){const{canPlay:e,paused:s,autoPlaying:i}=this.$state;if(this.Gg(t)||!u(s))return;t&&this.g.i.k("media-play-request",t);const a=u(i);try{const n=u(this.C);return ye(n,u(e)),await n.play()}catch(n){const r=this.createEvent("play-fail",{detail:me(n),trigger:t});throw r.autoPlay=a,this.Ba.V(r),n}}Gg(t){const{load:e}=this.$props,{canLoad:s}=this.$state;if(e()==="play"&&!s()){const i=this.createEvent("media-start-loading",{trigger:t});return this.dispatchEvent(i),this.zc.k("media-play-request",async()=>{try{await this.Ac(i)}catch{}}),!0}return!1}async Ee(t){const{canPlay:e,paused:s}=this.$state;if(!u(s)){t&&this.g.i.k("media-pause-request",t);try{const i=u(this.C);return ye(i,u(e)),await i.pause()}catch(i){throw this.g.i.ub("media-pause-request"),i}}}Hg(t,e){const{audioGain:s,canSetAudioGain:i}=this.$state;if(s()===t)return;const a=this.C();if(!(a!=null&&a.audioGain)||!i())throw Error("[vidstack] audio gain api not available");e&&this.g.i.k("media-audio-gain-change-request",e),a.audioGain.setGain(t)}Ig(t){const{canPlay:e,live:s,liveEdge:i,canSeek:a,liveSyncPosition:n,seekableEnd:r,userBehindLiveEdge:o}=this.$state;if(o.set(!1),u(()=>!s()||i()||!a()))return;const d=u(this.C);ye(d,u(e)),t&&this.g.i.k("media-seek-request",t);const l=r()-2;d.setCurrentTime(Math.min(l,n()??l))}async Jg(t="prefer-media",e){const s=this.Kg(t);if(Ws(t,s),!s.active)return u(this.$state.pictureInPicture)&&(this.Fe=!0,await this.Ge(e)),e&&this.g.i.k("media-enter-fullscreen-request",e),s.enter()}async Lg(t="prefer-media",e){const s=this.Kg(t);if(Ws(t,s),!!s.active){e&&this.g.i.k("media-exit-fullscreen-request",e);try{const i=await s.exit();return this.Fe&&u(this.$state.canPictureInPicture)&&await this.He(),i}finally{this.Fe=!1}}}Kg(t){const e=u(this.C);return t==="prefer-media"&&this.pd.supported||t==="media"?this.pd:e==null?void 0:e.fullscreen}async He(t){if(this.Mg(),!this.$state.pictureInPicture())return t&&this.g.i.k("media-enter-pip-request",t),await this.C().pictureInPicture.enter()}async Ge(t){if(this.Mg(),!!this.$state.pictureInPicture())return t&&this.g.i.k("media-exit-pip-request",t),await this.C().pictureInPicture.exit()}Mg(){if(!this.$state.canPictureInPicture())throw Error("[vidstack] no pip support")}Kj(){this.yc.defaultDelay=this.$props.controlsDelay()}Lj(){var s,i;const{canSetAudioGain:t}=this.$state,e=!!((i=(s=this.C())==null?void 0:s.audioGain)!=null&&i.supported);t.set(e)}Mj(){var s,i;const{canAirPlay:t}=this.$state,e=!!((i=(s=this.C())==null?void 0:s.airPlay)!=null&&i.supported);t.set(e)}Nj(){const{canGoogleCast:t,source:e}=this.$state,s=aa&&!na&&ra(e());t.set(s)}Oj(){var s,i;const{canFullscreen:t}=this.$state,e=this.pd.supported||!!((i=(s=this.C())==null?void 0:s.fullscreen)!=null&&i.supported);t.set(e)}Pj(){var s,i;const{canPictureInPicture:t}=this.$state,e=!!((i=(s=this.C())==null?void 0:s.pictureInPicture)!=null&&i.supported);t.set(e)}async"media-airplay-request"(t){try{await this.Ng(t)}catch{}}async Ng(t){var e;try{const s=(e=this.C())==null?void 0:e.airPlay;if(!(s!=null&&s.supported))throw Error("No AirPlay adapter.");return t&&this.g.i.k("media-airplay-request",t),await s.prompt()}catch(s){throw this.g.i.ub("media-airplay-request"),s}}async"media-google-cast-request"(t){try{await this.Og(t)}catch{}}async Og(t){try{const{canGoogleCast:e}=this.$state;if(!u(e)){const i=Error("Cast not available.");throw i.code="CAST_NOT_AVAILABLE",i}if(qt("https://www.gstatic.com"),!this.qd){const i=await U(()=>import("./vidstack-g0pCq79a-YiUNTYEP.js").then(a=>a.v),__vite__mapDeps([13,2,1]));this.qd=new i.GoogleCastLoader}await this.qd.prompt(this.a),t&&this.g.i.k("media-google-cast-request",t);const s=u(this.$state.remotePlaybackState)!=="disconnected";s&&this.$state.savedState.set({paused:u(this.$state.paused),currentTime:u(this.$state.currentTime)}),this.$state.remotePlaybackLoader.set(s?this.qd:null)}catch(e){throw this.g.i.ub("media-google-cast-request"),e}}"media-audio-track-change-request"(t){const{logger:e,audioTracks:s}=this.a;if(s.readonly)return;const i=t.detail,a=s[i];if(a){const n=t.type;this.g.i.k(n,t),a.selected=!0}}async"media-enter-fullscreen-request"(t){try{await this.Jg(t.detail,t)}catch(e){this.Zc(e,t)}}async"media-exit-fullscreen-request"(t){try{await this.Lg(t.detail,t)}catch(e){this.Zc(e,t)}}async Qd(t){const e=u(this.$props.fullscreenOrientation),s=t.detail;if(!(ha(e)||e==="none"||!this.bb.supported))if(s){if(this.bb.locked)return;this.dispatch("media-orientation-lock-request",{detail:e,trigger:t})}else this.bb.locked&&this.dispatch("media-orientation-unlock-request",{trigger:t})}Zc(t,e){this.Ba.V(this.createEvent("fullscreen-error",{detail:me(t)}))}async"media-orientation-lock-request"(t){const e=t.type;try{this.g.i.k(e,t),await this.bb.lock(t.detail)}catch{this.g.i.ub(e)}}async"media-orientation-unlock-request"(t){const e=t.type;try{this.g.i.k(e,t),await this.bb.unlock()}catch{this.g.i.ub(e)}}async"media-enter-pip-request"(t){try{await this.He(t)}catch(e){this.Pg(e,t)}}async"media-exit-pip-request"(t){try{await this.Ge(t)}catch(e){this.Pg(e,t)}}Pg(t,e){this.Ba.V(this.createEvent("picture-in-picture-error",{detail:me(t)}))}"media-live-edge-request"(t){const{live:e,liveEdge:s,canSeek:i}=this.$state;if(!(!e()||s()||!i())){this.g.i.k("media-seek-request",t);try{this.Ig()}catch{this.g.i.ub("media-seek-request")}}}async"media-loop-request"(t){try{this.g.Ob=!0,this.g.Bc=!0,await this.Ac(t)}catch{this.g.Ob=!1}}"media-user-loop-change-request"(t){this.$state.userPrefersLoop.set(t.detail)}async"media-pause-request"(t){if(!this.$state.paused())try{await this.Ee(t)}catch{}}async"media-play-request"(t){if(this.$state.paused())try{await this.Ac(t)}catch{}}"media-rate-change-request"(t){const{playbackRate:e,canSetPlaybackRate:s}=this.$state;if(e()===t.detail||!s())return;const i=this.C();i!=null&&i.setPlaybackRate&&(this.g.i.k("media-rate-change-request",t),i.setPlaybackRate(t.detail))}"media-audio-gain-change-request"(t){try{this.Hg(t.detail,t)}catch{}}"media-quality-change-request"(t){var n,r;const{qualities:e,storage:s,logger:i}=this.a;if(e.readonly)return;this.g.i.k("media-quality-change-request",t);const a=t.detail;if(a<0)e.autoSelect(t),t.isOriginTrusted&&((n=s==null?void 0:s.setVideoQuality)==null||n.call(s,null));else{const o=e[a];o&&(o.selected=!0,t.isOriginTrusted&&((r=s==null?void 0:s.setVideoQuality)==null||r.call(s,{id:o.id,width:o.width,height:o.height,bitrate:o.bitrate})))}}"media-pause-controls-request"(t){const e=t.type;this.g.i.k(e,t),this.yc.pause(t)}"media-resume-controls-request"(t){const e=t.type;this.g.i.k(e,t),this.yc.resume(t)}"media-seek-request"(t){const{seekableStart:e,seekableEnd:s,ended:i,canSeek:a,live:n,userBehindLiveEdge:r,clipStartTime:o}=this.$state,d=t.detail;i()&&(this.g.Bc=!0);const l=t.type;this.g.Ja=!1,this.g.i.ub(l);const p=d+o(),f=Math.floor(p)===Math.floor(s()),b=f?s():Math.min(Math.max(e()+.1,p),s()-.1);!Number.isFinite(b)||!a()||(this.g.i.k(l,t),this.C().setCurrentTime(b),n()&&t.isOriginTrusted&&Math.abs(s()-b)>=2&&r.set(!0))}"media-seeking-request"(t){const e=t.type;this.g.i.k(e,t),this.$state.seeking.set(!0),this.g.Ja=!0}"media-start-loading"(t){if(this.$state.canLoad())return;const e=t.type;this.g.i.k(e,t),this.Ba.V(this.createEvent("can-load"))}"media-poster-start-loading"(t){if(this.$state.canLoadPoster())return;const e=t.type;this.g.i.k(e,t),this.Ba.V(this.createEvent("can-load-poster"))}"media-text-track-change-request"(t){const{index:e,mode:s}=t.detail,i=this.a.textTracks[e];if(i){const a=t.type;this.g.i.k(a,t),i.setMode(s,t)}}"media-mute-request"(t){if(this.$state.muted())return;const e=t.type;this.g.i.k(e,t),this.C().setMuted(!0)}"media-unmute-request"(t){const{muted:e,volume:s}=this.$state;if(!e())return;const i=t.type;this.g.i.k(i,t),this.a.$provider().setMuted(!1),s()===0&&(this.g.i.k(i,t),this.C().setVolume(.25))}"media-volume-change-request"(t){const{muted:e,volume:s}=this.$state,i=t.detail;if(s()===i)return;const a=t.type;this.g.i.k(a,t),this.C().setVolume(i),i>0&&e()&&(this.g.i.k(a,t),this.C().setMuted(!1))}Qa(t,e,s){}}function ye(h,t){if(!(h&&t))throw Error("[vidstack] media not ready")}function Ws(h,t){if(!(t!=null&&t.supported))throw Error("[vidstack] no fullscreen support")}class za{constructor(){this.Ja=!1,this.Ob=!1,this.Bc=!1,this.i=new Xa}}const Ba=new Set(["auto-play","auto-play-fail","can-load","sources-change","source-change","load-start","abort","error","loaded-metadata","loaded-data","can-play","play","play-fail","pause","playing","seeking","seeked","waiting"]);class Ja extends ot{constructor(t,e){super(),this.g=t,this.a=e,this.u=new Map,this.rd=!1,this.sd=!1,this.Cc=!1,this.Ke=null,this.seeking=ct(s=>{const{seeking:i,realCurrentTime:a,paused:n}=this.$state;i.set(!0),a.set(s.detail),this.D("media-seeking-request",s),n()&&(this.Pb=s,this.Le())},150,{leading:!0}),this.Le=He(()=>{if(!this.Pb)return;this.sd=!0;const{waiting:s,playing:i}=this.$state;s.set(!0),i.set(!1);const a=this.createEvent("waiting",{trigger:this.Pb});this.u.set("waiting",a),this.dispatch(a),this.Pb=void 0,this.sd=!1},300)}onAttach(t){t.setAttribute("aria-busy","true"),this.listen("fullscreen-change",this["fullscreen-change"].bind(this)),this.listen("fullscreen-error",this["fullscreen-error"].bind(this)),this.listen("orientation-change",this["orientation-change"].bind(this))}onConnect(t){c(this.Qj.bind(this)),this.Rj(),this.Sj(),this.Tj(),this.Uj(),P(this.Vj.bind(this))}onDestroy(){const{audioTracks:t,qualities:e,textTracks:s}=this.a;t[q.z](),e[q.z](),s[q.z](),this.Ie()}V(t){if(!this.scope)return;const e=t.type;Ut(()=>{var s;return(s=this[t.type])==null?void 0:s.call(this,t)}),Ba.has(e)&&this.u.set(e,t),this.dispatch(t)}Uj(){this.Cc&&(requestAnimationFrame(()=>{this.scope&&this.a.remote.play(new R("dom-connect"))}),this.Cc=!1)}Vj(){var t;this.Cc||(this.Cc=!this.$state.paused(),(t=this.a.$provider())==null||t.pause())}vb(){this.Qg(),this.rd=!1,this.g.Bc=!1,this.g.Ob=!1,this.sd=!1,this.Pb=void 0,this.u.clear()}D(t,e){const s=this.g.i.xe(t);s&&(e.request=s,e.triggers.add(s))}Rj(){this.Je(),this.Rg();const t=this.a.textTracks;m(t,"add",this.Je.bind(this)),m(t,"remove",this.Je.bind(this)),m(t,"mode-change",this.Rg.bind(this))}Sj(){const t=this.a.qualities;m(t,"add",this.ld.bind(this)),m(t,"remove",this.ld.bind(this)),m(t,"change",this.Za.bind(this)),m(t,"auto-change",this.Wj.bind(this)),m(t,"readonly-change",this.Xj.bind(this))}Tj(){const t=this.a.audioTracks;m(t,"add",this.Sg.bind(this)),m(t,"remove",this.Sg.bind(this)),m(t,"change",this.Yj.bind(this))}Je(t){const{textTracks:e}=this.$state;e.set(this.a.textTracks.toArray()),this.dispatch("text-tracks-change",{detail:e(),trigger:t})}Rg(t){t&&this.D("media-text-track-change-request",t);const e=this.a.textTracks.selected,{textTrack:s}=this.$state;s()!==e&&(s.set(e),this.dispatch("text-track-change",{detail:e,trigger:t}))}Sg(t){const{audioTracks:e}=this.$state;e.set(this.a.audioTracks.toArray()),this.dispatch("audio-tracks-change",{detail:e(),trigger:t})}Yj(t){const{audioTrack:e}=this.$state;e.set(this.a.audioTracks.selected),t&&this.D("media-audio-track-change-request",t),this.dispatch("audio-track-change",{detail:e(),trigger:t})}ld(t){const{qualities:e}=this.$state;e.set(this.a.qualities.toArray()),this.dispatch("qualities-change",{detail:e(),trigger:t})}Za(t){const{quality:e}=this.$state;e.set(this.a.qualities.selected),t&&this.D("media-quality-change-request",t),this.dispatch("quality-change",{detail:e(),trigger:t})}Wj(){const{qualities:t}=this.a,e=t.auto;this.$state.autoQuality.set(e),e||this.Ie()}Tg(){this.Ie(),this.Ke=c(()=>{const{qualities:t}=this.a,{mediaWidth:e,mediaHeight:s}=this.$state,i=e(),a=s();if(i===0||a===0)return;let n=null,r=1/0;for(const o of t){const d=Math.abs(o.width-i)+Math.abs(o.height-a);d{requestAnimationFrame(()=>{this.scope&&(this.$state.inferredViewType.set(t.detail),this.dispatch("view-type-change",{detail:a,trigger:t}))})},0)}"stream-type-change"(t){const e=this.u.get("source-change");e&&t.triggers.add(e);const{streamType:s,inferredStreamType:i}=this.$state;i.set(t.detail),t.detail=s()}"rate-change"(t){var i;const{storage:e}=this.a,{canPlay:s}=this.$state;this.$state.playbackRate.set(t.detail),this.D("media-rate-change-request",t),s()&&((i=e==null?void 0:e.setPlaybackRate)==null||i.call(e,t.detail))}"remote-playback-change"(t){const{remotePlaybackState:e,remotePlaybackType:s}=this.$state,{type:i,state:a}=t.detail,n=a==="connected";s.set(i),e.set(a);const r=i==="airplay"?"media-airplay-request":"media-google-cast-request";if(n)this.D(r,t);else{const o=this.g.i.rg(r);o&&(t.request=o,t.triggers.add(o))}}"sources-change"(t){const e=this.$state.sources(),s=t.detail;this.$state.sources.set(s),this.Zj(e,s,t)}Zj(t,e,s){let{qualities:i}=this.a,a=!1,n=!1;for(const r of t){if(!Te(r))continue;if(!e.some(d=>d.src===r.src)){const d=i.getBySrc(r.src);d&&(i[q.cc](d,s),n=!0)}}n&&!i.length&&(this.$state.savedState.set(null),i[q.z](s));for(const r of e){if(!Te(r)||i.getBySrc(r.src))continue;const o={id:r.id??r.height+"p",bitrate:null,codec:null,...r,selected:!1};i[q.da](o,s),a=!0}a&&!i[K.Ia]&&(this.Tg(),i[K.Ia]=this.Tg.bind(this),i[K.Wa](!0,s))}"source-change"(t){var s,i;t.isQualityChange=((s=t.originEvent)==null?void 0:s.type)==="quality-change";const e=t.detail;this.Ug(t,t.isQualityChange),this.u.set(t.type,t),this.$state.source.set(e),(i=this.el)==null||i.setAttribute("aria-busy","true")}Ug(t,e=!1){const{audioTracks:s,qualities:i}=this.a;if(!e){s[q.z](t),i[q.z](t),Hs(this.$state,e),this.vb();return}Hs(this.$state,e),this.vb()}abort(t){const e=this.u.get("source-change");e&&t.triggers.add(e);const s=this.u.get("can-load");s&&!t.triggers.hasType("can-load")&&t.triggers.add(s)}"load-start"(t){const e=this.u.get("source-change");e&&t.triggers.add(e)}error(t){this.$state.error.set(t.detail);const e=this.u.get("abort");e&&t.triggers.add(e)}"loaded-metadata"(t){const e=this.u.get("load-start");e&&t.triggers.add(e)}"loaded-data"(t){const e=this.u.get("load-start");e&&t.triggers.add(e)}"can-play"(t){var s;const e=this.u.get("loaded-metadata");e&&t.triggers.add(e),this.Vg(t.detail),(s=this.el)==null||s.setAttribute("aria-busy","false")}"can-play-through"(t){this.Vg(t.detail);const e=this.u.get("can-play");e&&t.triggers.add(e)}Vg(t){const{seekable:e,buffered:s,intrinsicDuration:i,canPlay:a}=this.$state;a.set(!0),s.set(t.buffered),e.set(t.seekable);const n=fe(t.seekable)??1/0;i.set(n)}"duration-change"(t){const{live:e,intrinsicDuration:s,ended:i}=this.$state,a=t.detail;if(!e()){const n=Number.isNaN(a)?0:a;s.set(n),i()&&this.Wg(t)}}progress(t){const{buffered:e,bufferedEnd:s,seekable:i,seekableEnd:a,live:n,intrinsicDuration:r}=this.$state,{buffered:o,seekable:d}=t.detail,l=fe(o)??1/0,p=o.length!==e().length,f=l>s(),b=fe(d)??1/0,g=d.length!==i().length,v=b>a();(p||f)&&e.set(o),(g||v)&&i.set(d),n()&&(r.set(b),this.dispatch("duration-change",{detail:b,trigger:t}))}play(t){const{paused:e,autoPlayError:s,ended:i,autoPlaying:a,playsInline:n,pointer:r,muted:o,viewType:d,live:l,userBehindLiveEdge:p}=this.$state;if(this._j(),!e()){t.stopImmediatePropagation();return}t.autoPlay=a();const f=this.u.get("waiting");f&&t.triggers.add(f),this.D("media-play-request",t),this.u.set("play",t),e.set(!1),s.set(null),t.autoPlay&&(this.V(this.createEvent("auto-play",{detail:{muted:o()},trigger:t})),a.set(!1)),(i()||this.g.Bc)&&(this.g.Bc=!1,i.set(!1),this.V(this.createEvent("replay",{trigger:t}))),!n()&&d()==="video"&&r()==="coarse"&&this.a.remote.enterFullscreen("prefer-media",t),l()&&!p()&&this.a.remote.seekToLiveEdge(t)}_j(t){if(!u(this.a.$provider))return;const{ended:s,seekableStart:i,clipStartTime:a,clipEndTime:n,realCurrentTime:r,duration:o}=this.$state,d=r()0&&r()>=n()||Math.abs(r()-o())<.1||s();return d&&this.dispatch("media-seek-request",{detail:(a()>0?0:i())+.1,trigger:t}),d}"play-fail"(t){const{muted:e,autoPlaying:s}=this.$state,i=this.u.get("play");i&&t.triggers.add(i),this.D("media-play-request",t);const{paused:a,playing:n}=this.$state;a.set(!0),n.set(!1),this.vb(),this.u.set("play-fail",t),t.autoPlay&&(this.V(this.createEvent("auto-play-fail",{detail:{muted:e(),error:t.detail},trigger:t})),s.set(!1))}playing(t){const e=this.u.get("play"),s=this.u.get("seeked");e?t.triggers.add(e):s&&t.triggers.add(s),setTimeout(()=>this.vb(),0);const{paused:i,playing:a,live:n,liveSyncPosition:r,seekableEnd:o,started:d,currentTime:l,seeking:p,ended:f}=this.$state;if(i.set(!1),a.set(!0),p.set(!1),f.set(!1),this.g.Ob){this.g.Ob=!1;return}if(n()&&!d()&&l()===0){const b=r()??o()-2;Number.isFinite(b)&&this.a.$provider().setCurrentTime(b)}this.started(t)}started(t){const{started:e}=this.$state;e()||(e.set(!0),this.V(this.createEvent("started",{trigger:t})))}pause(t){var a;(a=this.el)!=null&&a.isConnected||(this.Cc=!0),this.D("media-pause-request",t);const e=this.u.get("seeked");e&&t.triggers.add(e);const{paused:s,playing:i}=this.$state;s.set(!0),i.set(!1),this.rd&&setTimeout(()=>{this.V(this.createEvent("end",{trigger:t})),this.rd=!1},0),this.vb()}"time-update"(t){if(this.g.Ob){t.stopImmediatePropagation();return}const{realCurrentTime:e,played:s,waiting:i,clipEndTime:a}=this.$state,n=a(),r=t.detail;e.set(r.currentTime),s.set(r.played),i.set(!1);for(const o of this.a.textTracks)o[j.Eb](r.currentTime,t);n>0&&r.currentTime>=n&&(this.rd=!0,this.dispatch("media-pause-request",{trigger:t})),this.$j()}Wg(t){const{duration:e,played:s}=this.$state,i=ca(s())??0;this.V(this.createEvent("time-update",{detail:{currentTime:e(),played:new la(i,e())},trigger:t}))}$j(){var i;const{storage:t}=this.a,{canPlay:e,realCurrentTime:s}=this.$state;e()&&((i=t==null?void 0:t.setTime)==null||i.call(t,s()))}"audio-gain-change"(t){var a;const{storage:e}=this.a,{canPlay:s,audioGain:i}=this.$state;i.set(t.detail),this.D("media-audio-gain-change-request",t),s()&&((a=e==null?void 0:e.setAudioGain)==null||a.call(e,i()))}"volume-change"(t){var r,o;const{storage:e}=this.a,{volume:s,muted:i,canPlay:a}=this.$state,n=t.detail;s.set(n.volume),i.set(n.muted||n.volume===0),this.D("media-volume-change-request",t),this.D(n.muted?"media-mute-request":"media-unmute-request",t),a()&&((r=e==null?void 0:e.setVolume)==null||r.call(e,s()),(o=e==null?void 0:e.setMuted)==null||o.call(e,i()))}seeked(t){const{seeking:e,currentTime:s,realCurrentTime:i,paused:a,seekableEnd:n,ended:r}=this.$state;if(this.g.Ja)e.set(!0),t.stopImmediatePropagation();else if(e()){const o=this.u.get("waiting");o&&t.triggers.add(o);const d=this.u.get("seeking");d&&!t.triggers.has(d)&&t.triggers.add(d),a()&&this.Qg(),e.set(!1),i.set(t.detail),this.D("media-seek-request",t);const l=t==null?void 0:t.originEvent;l!=null&&l.isTrusted&&!/seek/.test(l.type)&&this.started(t)}Math.floor(s())!==Math.floor(n())?r.set(!1):this.end(t)}waiting(t){this.sd||this.g.Ja||(t.stopImmediatePropagation(),this.Pb=t,this.Le())}end(t){const{loop:e,ended:s}=this.$state;if(!(!e()&&s())){if(e()){setTimeout(()=>{requestAnimationFrame(()=>{this.dispatch("media-loop-request",{trigger:t})})},10);return}setTimeout(()=>this.lc(t),0)}}lc(t){var r;const{storage:e}=this.a,{paused:s,seeking:i,ended:a,duration:n}=this.$state;this.Wg(t),s()||this.dispatch("pause",{trigger:t}),i()&&this.dispatch("seeked",{detail:n(),trigger:t}),a.set(!0),this.vb(),(r=e==null?void 0:e.setTime)==null||r.call(e,n(),!0),this.dispatch("ended",{trigger:t})}Qg(){this.Le.cancel(),this.$state.waiting.set(!1)}"fullscreen-change"(t){const e=t.detail;this.$state.fullscreen.set(e),this.D(e?"media-enter-fullscreen-request":"media-exit-fullscreen-request",t)}"fullscreen-error"(t){this.D("media-enter-fullscreen-request",t),this.D("media-exit-fullscreen-request",t)}"orientation-change"(t){const e=t.detail.lock;this.D(e?"media-orientation-lock-request":"media-orientation-unlock-request",t)}"picture-in-picture-change"(t){const e=t.detail;this.$state.pictureInPicture.set(e),this.D(e?"media-enter-pip-request":"media-exit-pip-request",t)}"picture-in-picture-error"(t){this.D("media-enter-pip-request",t),this.D("media-exit-pip-request",t)}"title-change"(t){t.trigger&&(t.stopImmediatePropagation(),this.$state.inferredTitle.set(t.detail))}"poster-change"(t){t.trigger&&(t.stopImmediatePropagation(),this.$state.inferredPoster.set(t.detail))}}class Za extends ot{onSetup(){this.Hb(),c(this.bk.bind(this)),c(this.ck.bind(this)),c(this.dk.bind(this)),c(this.Xd.bind(this)),c(this.Ca.bind(this)),c(this.ek.bind(this)),c(this.fk.bind(this)),c(this.gk.bind(this)),c(this.hk.bind(this)),c(this.ik.bind(this)),c(this.Me.bind(this)),c(this.jk.bind(this)),c(this.kk.bind(this)),c(this.td.bind(this))}Hb(){var s;const t={duration:"providedDuration",loop:"providedLoop",poster:"providedPoster",streamType:"providedStreamType",title:"providedTitle",viewType:"providedViewType"},e=new Set(["currentTime","paused","playbackRate","volume"]);for(const i of Object.keys(this.$props))e.has(i)||(s=this.$state[t[i]??i])==null||s.set(this.$props[i]());this.$state.muted.set(this.$props.muted()||this.$props.volume()===0)}kk(){const{viewType:t,streamType:e,title:s,poster:i,loop:a}=this.$props,n=this.$state;n.providedPoster.set(i()),n.providedStreamType.set(e()),n.providedViewType.set(t()),n.providedTitle.set(s()),n.providedLoop.set(a())}ak(){}bk(){const{artist:t,artwork:e}=this.$props;this.$state.artist.set(t()),this.$state.artwork.set(e())}td(){const{title:t}=this.$state;this.dispatch("title-change",{detail:t()})}ck(){const t=this.$props.autoPlay()||this.$props.autoplay();this.$state.autoPlay.set(t),this.dispatch("auto-play-change",{detail:t})}ik(){const t=this.$state.loop();this.dispatch("loop-change",{detail:t})}Xd(){const t=this.$props.controls();this.$state.controls.set(t)}jk(){const{poster:t}=this.$state;this.dispatch("poster-change",{detail:t()})}Ca(){const t=this.$props.crossOrigin()??this.$props.crossorigin(),e=t===!0?"":t;this.$state.crossOrigin.set(e)}ek(){const{providedDuration:t}=this.$state;t.set(this.$props.duration())}Me(){const t=this.$props.playsInline()||this.$props.playsinline();this.$state.playsInline.set(t),this.dispatch("plays-inline-change",{detail:t})}dk(){const{clipStartTime:t,clipEndTime:e}=this.$props;this.$state.clipStartTime.set(t()),this.$state.clipEndTime.set(e())}fk(){this.dispatch("live-change",{detail:this.$state.live()})}hk(){this.$state.liveEdgeTolerance.set(this.$props.liveEdgeTolerance()),this.$state.minLiveDVRWindow.set(this.$props.minLiveDVRWindow())}gk(){this.dispatch("live-edge-change",{detail:this.$state.liveEdge()})}}const kt=class kt extends ot{constructor(){super()}onConnect(){c(this.lk.bind(this)),c(this.mk.bind(this));const t=this.nk.bind(this);for(const e of kt.Xg)navigator.mediaSession.setActionHandler(e,t);P(this.Fa.bind(this))}Fa(){for(const t of kt.Xg)navigator.mediaSession.setActionHandler(t,null)}lk(){const{title:t,artist:e,artwork:s,poster:i}=this.$state;navigator.mediaSession.metadata=new MediaMetadata({title:t(),artist:e(),artwork:s()??[{src:i()}]})}mk(){const{canPlay:t,paused:e}=this.$state;navigator.mediaSession.playbackState=t()?e()?"paused":"playing":"none"}nk(t){const e=new R("media-session-action",{detail:t});switch(t.action){case"play":this.dispatch("media-play-request",{trigger:e});break;case"pause":this.dispatch("media-pause-request",{trigger:e});break;case"seekto":case"seekforward":case"seekbackward":this.dispatch("media-seek-request",{detail:W(t.seekTime)?t.seekTime:this.$state.currentTime()+(t.seekOffset??10),trigger:e});break}}};kt.Xg=["play","pause","seekforward","seekbackward","seekto"];let xe=kt,Kt=w(!1);m(document,"pointerdown",()=>{Kt.set(!1)}),m(document,"keydown",h=>{h.metaKey||h.altKey||h.ctrlKey||Kt.set(!0)});class X extends G{constructor(){super(...arguments),this.Dc=w(!1)}onConnect(t){c(()=>{if(!Kt()){this.Dc.set(!1),It(t,!1),this.listen("pointerenter",this.Oe.bind(this)),this.listen("pointerleave",this.Pe.bind(this));return}const e=document.activeElement===t;this.Dc.set(e),It(t,e),this.listen("focus",this.Ec.bind(this)),this.listen("blur",this.qk.bind(this))})}focused(){return this.Dc()}Ec(){this.Dc.set(!0),It(this.el,!0)}qk(){this.Dc.set(!1),It(this.el,!1)}Oe(){Qs(this.el,!0)}Pe(){Qs(this.el,!1)}}function It(h,t){$(h,"data-focus",t),$(h,"data-hocus",t)}function Qs(h,t){$(h,"data-hocus",t),$(h,"data-hover",t)}var tn=Object.defineProperty,en=Object.getOwnPropertyDescriptor,E=(h,t,e,s)=>{for(var i=s>1?void 0:s?en(t,e):t,a=h.length-1,n;a>=0;a--)(n=h[a])&&(i=(s?n(t,e,i):n(i))||i);return s&&i&&tn(t,e,i),i},J;const A=(J=class extends y{constructor(){super(),this.canPlayQueue=new Oi,this.Re=!1,new Za;const t={player:this,qualities:new Da,audioTracks:new Oa,storage:null,$provider:w(null),$providerSetup:w(!1),$props:this.$props,$state:this.$state};t.remote=this.remoteControl=new va(void 0),t.remote.setPlayer(this),t.textTracks=new qa,t.textTracks[j.Db]=this.$state.crossOrigin,t.textRenderers=new Ea(t),t.ariaKeys={},this.a=t,H(Gi,t),this.orientation=new Gt,new X,new Ra(t);const e=new za;this.Ba=new Ja(e,t),this.W=new Ya(this.Ba,e,t),t.delegate=new Qa(this.Ba.V.bind(this.Ba),t),typeof navigator<"u"&&"mediaSession"in navigator&&new xe,new Ks("load",this.startLoading.bind(this)),new Ks("posterLoad",this.startLoadingPoster.bind(this))}get p(){return this.a.$provider()}get vd(){return this.$props}onSetup(){this.rk(),c(this.sk.bind(this)),c(this.tk.bind(this)),c(this.fc.bind(this)),c(this.Fc.bind(this)),c(this.Qb.bind(this)),c(this.Me.bind(this)),c(this.Qe.bind(this))}onAttach(t){t.setAttribute("data-media-player",""),x(t,"tabindex","0"),x(t,"role","region"),c(this.uk.bind(this)),c(this.td.bind(this)),c(this.Yg.bind(this)),m(t,"find-media-player",this.vk.bind(this))}onConnect(t){Wi&&$(t,"data-iphone","");const e=window.matchMedia("(pointer: coarse)");this.Zg(e),e.onchange=this.Zg.bind(this);const s=new ResizeObserver(mt(this.pa.bind(this)));s.observe(t),c(this.pa.bind(this)),this.dispatch("media-player-connect",{detail:this,bubbles:!0,composed:!0}),P(()=>{s.disconnect(),e.onchange=null})}onDestroy(){this.a.player=null,this.canPlayQueue.z()}td(){const t=this.$el,{title:e,live:s,viewType:i,providedTitle:a}=this.$state,n=s(),r=Qi(i()),o=r!=="Unknown"?`${n?"Live ":""}${r}`:n?"Live":"Media",d=e();$(this.el,"aria-label",`${o} Player`+(d?` - ${d}`:"")),t!=null&&t.hasAttribute("title")&&(this.Re=!0,t==null||t.removeAttribute("title"))}Yg(){const t=this.orientation.landscape?"landscape":"portrait";this.$state.orientation.set(t),$(this.el,"data-orientation",t),this.pa()}sk(){this.$state.canPlay()&&this.p?this.canPlayQueue.Xa():this.canPlayQueue.$()}rk(){if(J[ge]){this.setAttributes(J[ge]);return}const t={"data-load":function(){return this.$props.load()},"data-captions":function(){const s=this.$state.textTrack();return!!s&&V(s)},"data-ios-controls":function(){return this.$state.iOSControls()},"data-controls":function(){return this.controls.showing},"data-buffering":function(){const{canLoad:s,canPlay:i,waiting:a}=this.$state;return s()&&(!i()||a())},"data-error":function(){const{error:s}=this.$state;return!!s()},"data-autoplay-error":function(){const{autoPlayError:s}=this.$state;return!!s()}},e={autoPlay:"autoplay",canAirPlay:"can-airplay",canPictureInPicture:"can-pip",pictureInPicture:"pip",playsInline:"playsinline",remotePlaybackState:"remote-state",remotePlaybackType:"remote-type",isAirPlayConnected:"airplay",isGoogleCastConnected:"google-cast"};for(const s of Ka){const i="data-"+(e[s]??Xi(s));t[i]=function(){return this.$state[s]()}}delete t.title,J[ge]=t,this.setAttributes(t)}vk(t){t.detail(this)}pa(){if(!this.el)return;const t=this.el.clientWidth,e=this.el.clientHeight;this.$state.width.set(t),this.$state.height.set(e),Q(this.el,"--player-width",t+"px"),Q(this.el,"--player-height",e+"px")}Zg(t){const e=t.matches?"coarse":"fine";$(this.el,"data-pointer",e),this.$state.pointer.set(e),this.pa()}get provider(){return this.p}get controls(){return this.W.yc}set controls(t){this.vd.controls.set(t)}get title(){return u(this.$state.providedTitle)}set title(t){if(this.Re){this.Re=!1;return}this.$state.providedTitle.set(t)}get qualities(){return this.a.qualities}get audioTracks(){return this.a.audioTracks}get textTracks(){return this.a.textTracks}get textRenderers(){return this.a.textRenderers}get duration(){return this.$state.duration()}set duration(t){this.vd.duration.set(t)}get paused(){return u(this.$state.paused)}set paused(t){this._g(t)}fc(){this._g(this.$props.paused())}_g(t){t?this.canPlayQueue.k("paused",()=>this.W.Ee()):this.canPlayQueue.k("paused",()=>this.W.Ac())}get muted(){return u(this.$state.muted)}set muted(t){this.vd.muted.set(t)}tk(){this.wk(this.$props.muted())}wk(t){this.canPlayQueue.k("muted",()=>{this.p&&this.p.setMuted(t)})}get currentTime(){return u(this.$state.currentTime)}set currentTime(t){this.$g(t)}Qb(){this.$g(this.$props.currentTime())}$g(t){this.canPlayQueue.k("currentTime",()=>{const{currentTime:e,clipStartTime:s,seekableStart:i,seekableEnd:a}=this.$state;t!==u(e)&&u(()=>{if(!this.p)return;const n=t+s(),r=Math.floor(n)===Math.floor(a()),o=r?a():Math.min(Math.max(i()+.1,n),a()-.1);Number.isFinite(o)&&this.p.setCurrentTime(o)})})}get volume(){return u(this.$state.volume)}set volume(t){this.vd.volume.set(t)}Fc(){this.xk(this.$props.volume())}xk(t){const e=Fe(0,t,1);this.canPlayQueue.k("volume",()=>{this.p&&this.p.setVolume(e)})}get playbackRate(){return u(this.$state.playbackRate)}set playbackRate(t){this.ah(t)}Qe(){this.ah(this.$props.playbackRate())}ah(t){this.canPlayQueue.k("rate",()=>{var e,s;this.p&&((s=(e=this.p).setPlaybackRate)==null||s.call(e,t))})}Me(){this.yk(this.$props.playsInline())}yk(t){this.canPlayQueue.k("playsinline",()=>{var e,s;this.p&&((s=(e=this.p).setPlaysInline)==null||s.call(e,t))})}uk(){var s;let t=this.$props.storage(),e=S(t)?new Sa:t;if(e!=null&&e.onChange){const{source:i}=this.$state,a=S(t)?t:(s=this.el)==null?void 0:s.id,n=at(this.zk.bind(this));c(()=>e.onChange(i(),n(),a||void 0))}this.a.storage=e,this.a.textTracks.setStorage(e),P(()=>{var i;(i=e==null?void 0:e.onDestroy)==null||i.call(e),this.a.storage=null,this.a.textTracks.setStorage(null)})}zk(){const{clipStartTime:t,clipEndTime:e}=this.$props,{source:s}=this.$state,i=s();return i.src?`${i.src}:${t()}:${e()}`:null}async play(t){return this.W.Ac(t)}async pause(t){return this.W.Ee(t)}async enterFullscreen(t,e){return this.W.Jg(t,e)}async exitFullscreen(t,e){return this.W.Lg(t,e)}enterPictureInPicture(t){return this.W.He(t)}exitPictureInPicture(t){return this.W.Ge(t)}seekToLiveEdge(t){this.W.Ig(t)}startLoading(t){this.a.delegate.c("can-load",void 0,t)}startLoadingPoster(t){this.a.delegate.c("can-load-poster",void 0,t)}requestAirPlay(t){return this.W.Ng(t)}requestGoogleCast(t){return this.W.Og(t)}setAudioGain(t,e){return this.W.Hg(t,e)}destroy(){super.destroy(),this.a.remote.setPlayer(null),this.dispatch("destroy")}},J.props=Wa,J.state=Ki,J);E([k],A.prototype,"canPlayQueue",2);E([k],A.prototype,"remoteControl",2);E([k],A.prototype,"provider",1);E([k],A.prototype,"controls",1);E([k],A.prototype,"orientation",2);E([k],A.prototype,"title",1);E([k],A.prototype,"qualities",1);E([k],A.prototype,"audioTracks",1);E([k],A.prototype,"textTracks",1);E([k],A.prototype,"textRenderers",1);E([k],A.prototype,"duration",1);E([k],A.prototype,"paused",1);E([k],A.prototype,"muted",1);E([k],A.prototype,"currentTime",1);E([k],A.prototype,"volume",1);E([k],A.prototype,"playbackRate",1);E([C],A.prototype,"play",1);E([C],A.prototype,"pause",1);E([C],A.prototype,"enterFullscreen",1);E([C],A.prototype,"exitFullscreen",1);E([C],A.prototype,"enterPictureInPicture",1);E([C],A.prototype,"exitPictureInPicture",1);E([C],A.prototype,"seekToLiveEdge",1);E([C],A.prototype,"startLoading",1);E([C],A.prototype,"startLoadingPoster",1);E([C],A.prototype,"requestAirPlay",1);E([C],A.prototype,"requestGoogleCast",1);E([C],A.prototype,"setAudioGain",1);let rr=A;function sn(h,t){return fetch(h,t).then(e=>e.text()).then(e=>/type="static"/.test(e)?"on-demand":"live")}function Di(h,t){return fetch(h,t).then(e=>e.text()).then(e=>{const s=an(e);if(s)return Di(/^https?:/.test(s)?s:new URL(s,h).href,t);const i=/EXT-X-PLAYLIST-TYPE:\s*VOD/.test(e)?"on-demand":"live";return i==="live"&&nn(e)>=10&&(/#EXT-X-DVR-ENABLED:\s*true/.test(e)||e.includes("#EXT-X-DISCONTINUITY"))?"live:dvr":i})}function an(h){const t=h.match(/#EXT-X-STREAM-INF:[^\n]+(\n[^\n]+)*/g);return t?t[0].split(` +`)[1].trim():null}function nn(h){const t=h.split(` +`);for(const e of t)if(e.startsWith("#EXT-X-TARGETDURATION")){const s=parseFloat(e.split(":")[1]);if(!isNaN(s))return s}return-1}const Se=new Map;class rn{constructor(t,e,s,i=[]){this.wd=t,this.a=e,this.X=s,this.Se=!1;const a=new ve,n=new Pe,r=new Ne,o=new Na,d=new Ga,l=new Ua,p=[d,l];this.Te=at(()=>{const b=e.$state.remotePlaybackLoader(),g=e.$props.preferNativeHLS()?[r,o,a,n,...p,...i]:[n,r,o,a,...p,...i];return b?[b,...g]:g});const{$state:f}=e;f.sources.set(Xs(e.$props.src()));for(const b of f.sources()){const g=this.Te().find(Y=>Y.canPlay(b));if(!g)continue;const v=g.mediaType(b);this.a.$state.source.set(b),this.a.$state.mediaType.set(v),this.a.$state.inferredViewType.set(v),this.X.set(g),this.Se=!0;break}}get c(){return this.a.delegate.c}connect(){const t=this.X();this.Se&&(this.bh(this.a.$state.source(),t),this.ch(t),this.Se=!1),c(this.Ak.bind(this)),c(this.Bk.bind(this)),c(this.Ck.bind(this)),c(this.Dk.bind(this)),c(this.Ek.bind(this))}Ak(){this.c("sources-change",[...Xs(this.a.$props.src()),...this.wd()])}Bk(){var n;const{$state:t}=this.a,e=t.sources(),s=u(t.source),i=this.dh(s,e);if(((n=e[0])==null?void 0:n.src)&&!i.src&&!i.type){const{crossOrigin:r}=t,o=Vt(r()),d=new AbortController;return Promise.all(e.map(l=>S(l.src)&&l.type==="?"?fetch(l.src,{method:"HEAD",credentials:o,signal:d.signal}).then(p=>(l.type=p.headers.get("content-type")||"??",Se.set(l.src,l.type),l)).catch(()=>l):l)).then(l=>{d.signal.aborted||(this.dh(u(t.source),l),Z())}),()=>d.abort()}Z()}dh(t,e){let s={src:"",type:""},i=null,a=new R("sources-change",{detail:{sources:e}}),n=this.Te(),{started:r,paused:o,currentTime:d,quality:l,savedState:p}=this.a.$state;for(const f of e){const b=n.find(g=>g.canPlay(f));if(b){s=f,i=b;break}}if(Te(s)){const f=l(),b=e.find(g=>g.src===(f==null?void 0:f.src));u(r)?p.set({paused:u(o),currentTime:u(d)}):p.set(null),b&&(s=b,a=new R("quality-change",{detail:{quality:f}}))}return zs(t,s)||this.bh(s,i,a),i!==u(this.X)&&this.ch(i,a),s}bh(t,e,s){this.c("source-change",t,s),this.c("media-type-change",(e==null?void 0:e.mediaType(t))||"unknown",s)}ch(t,e){this.a.$providerSetup.set(!1),this.c("provider-change",null,e),t&&u(()=>{var s;return(s=t.preconnect)==null?void 0:s.call(t,this.a)}),this.X.set(t),this.c("provider-loader-change",t,e)}Ck(){const t=this.a.$provider();if(!(!t||u(this.a.$providerSetup))){if(this.a.$state.canLoad()){Re(()=>t.setup(),t.scope),this.a.$providerSetup.set(!0);return}u(()=>{var e;return(e=t.preconnect)==null?void 0:e.call(t)})}}Dk(){if(!this.a.$providerSetup())return;const t=this.a.$provider(),e=this.a.$state.source(),s=u(this.a.$state.crossOrigin),i=u(this.a.$props.preferNativeHLS);if(!zs(t==null?void 0:t.currentSrc,e)){if(this.a.$state.canLoad()){const a=new AbortController;return je(e)?(i||!vi())&&Di(e.src,{credentials:Vt(s),signal:a.signal}).then(n=>{this.c("stream-type-change",n)}).catch(Ns):Ie(e)?sn(e.src,{credentials:Vt(s),signal:a.signal}).then(n=>{this.c("stream-type-change",n)}).catch(Ns):this.c("stream-type-change","on-demand"),u(()=>{const n=u(this.a.$state.preload);return t==null?void 0:t.loadSource(e,n).catch(r=>{})}),()=>a.abort()}try{S(e.src)&&qt(new URL(e.src).origin)}catch{}}}Ek(){const t=this.X(),{providedPoster:e,source:s,canLoadPoster:i}=this.a.$state;if(!t||!t.loadPoster||!s()||!i()||e())return;const a=new AbortController,n=new R("source-change",{detail:s});return t.loadPoster(s(),this.a,a).then(r=>{this.c("poster-change",r||"",n)}).catch(()=>{this.c("poster-change","",n)}),()=>{a.abort()}}}function Xs(h){return(N(h)?h:[h]).map(t=>S(t)?{src:t,type:Ys(t)}:{...t,type:Ys(t.src,t.type)})}function Ys(h,t){return S(t)&&t.length?t:S(h)&&Se.has(h)?Se.get(h):!t&&je({src:h,type:""})?"application/x-mpegurl":!t&&Ie({src:h,type:""})?"application/dash+xml":!S(h)||h.startsWith("blob:")?"video/object":h.includes("youtube")||h.includes("youtu.be")?"video/youtube":h.includes("vimeo")&&!h.includes("progressive_redirect")&&!h.includes(".m3u8")?"video/vimeo":"?"}function zs(h,t){return(h==null?void 0:h.src)===(t==null?void 0:t.src)&&(h==null?void 0:h.type)===(t==null?void 0:t.type)}class hn{constructor(t,e){this.xd=t,this.a=e,this.eh=[],c(this.Fk.bind(this))}Fk(){const t=this.xd();for(const e of this.eh)if(!t.some(s=>s.id===e.id)){const s=e.id&&this.a.textTracks.getById(e.id);s&&this.a.textTracks.remove(s)}for(const e of t){const s=e.id||Ft.createId(e);this.a.textTracks.getById(s)||(e.id=s,this.a.textTracks.add(e))}this.eh=t}}var on=Object.defineProperty,cn=Object.getOwnPropertyDescriptor,ln=(h,t,e,s)=>{for(var i=cn(t,e),a=h.length-1,n;a>=0;a--)(n=h[a])&&(i=n(t,e,i)||i);return i&&on(t,e,i),i};const Bt=class Bt extends y{constructor(){super(...arguments),this.wd=w([]),this.xd=w([]),this.X=null,this.Ue=-1}onSetup(){this.a=T(),this.fh=new rn(this.wd,this.a,this.$state.loader,this.$props.loaders())}onAttach(t){t.setAttribute("data-media-provider","")}onConnect(t){this.fh.connect(),new hn(this.xd,this.a);const e=new ResizeObserver(mt(this.pa.bind(this)));e.observe(t);const s=new MutationObserver(this.Gc.bind(this));s.observe(t,{attributes:!0,childList:!0}),this.pa(),this.Gc(),P(()=>{e.disconnect(),s.disconnect()})}load(t){window.cancelAnimationFrame(this.Ue),this.Ue=requestAnimationFrame(()=>this.Gk(t)),P(()=>{window.cancelAnimationFrame(this.Ue)})}Gk(t){if(!this.scope)return;const e=this.$state.loader(),{$provider:s}=this.a;this.X===e&&(e==null?void 0:e.target)===t&&u(s)||(this.gh(),this.X=e,e&&(e.target=t||null),!(!e||!t)&&e.load(this.a).then(i=>{this.scope&&u(this.$state.loader)===e&&this.a.delegate.c("provider-change",i)}))}onDestroy(){this.X=null,this.gh()}gh(){var t;(t=this.a)==null||t.delegate.c("provider-change",null)}pa(){if(!this.el)return;const{player:t,$state:e}=this.a,s=this.el.offsetWidth,i=this.el.offsetHeight;t&&(e.mediaWidth.set(s),e.mediaHeight.set(i),t.el&&(Q(t.el,"--media-width",s+"px"),Q(t.el,"--media-height",i+"px")))}Gc(){const t=[],e=[],s=this.el.children;for(const i of s)if(!i.hasAttribute("data-vds")){if(i instanceof HTMLSourceElement){const a={id:i.id,src:i.src,type:i.type};for(const n of["id","src","width","height","bitrate","codec"]){const r=i.getAttribute(`data-${n}`);S(r)&&(a[n]=/id|src|codec/.test(n)?r:Number(r))}t.push(a)}else if(i instanceof HTMLTrackElement){const a={src:i.src,kind:i.track.kind,language:i.srclang,label:i.label,default:i.default,type:i.getAttribute("data-type")};e.push({id:i.id||Ft.createId(a),...a})}}this.wd.set(t),this.xd.set(e),Z()}};Bt.props={loaders:[]},Bt.state=new rt({loader:null});let Ae=Bt;ln([C],Ae.prototype,"load");function $e(h,t){const e=String(h),s=e.length;if(s=3600?$e(n,2):n,p=$e(r,2),f=i&&o>0?`.${String(o).replace(/^0?\./,"")}`:"",b=`${l}:${p}${f}`;return a>0||s?`${d}:${b}`:b}function Wt(h){const t=[],{hours:e,minutes:s,seconds:i}=Mi(h);return e>0&&t.push(`${e} hour`),s>0&&t.push(`${s} min`),(i>0||t.length===0)&&t.push(`${i} sec`),t.join(" ")}const Jt=class Jt extends y{constructor(){super(...arguments),this.Ve=!1,this.Hc=-1,this.Xe=-1}onSetup(){this.a=T()}onAttach(t){t.style.display="contents"}onConnect(t){t.setAttribute("data-media-announcer",""),x(t,"role","status"),x(t,"aria-live","polite");const{busy:e}=this.$state;this.setAttributes({"aria-busy":()=>e()?"true":null}),this.Ve=!0,c(this.fc.bind(this)),c(this.Fc.bind(this)),c(this.Hk.bind(this)),c(this.Ik.bind(this)),c(this.Jk.bind(this)),c(this.Kk.bind(this)),c(this.Lk.bind(this)),Z(),this.Ve=!1}fc(){const{paused:t}=this.a.$state;this.Rb(t()?"Pause":"Play")}Ik(){const{fullscreen:t}=this.a.$state;this.Rb(t()?"Enter Fullscreen":"Exit Fullscreen")}Jk(){const{pictureInPicture:t}=this.a.$state;this.Rb(t()?"Enter PiP":"Exit PiP")}Hk(){const{textTrack:t}=this.a.$state;this.Rb(t()?"Closed-Captions On":"Closed-Captions Off")}Fc(){const{muted:t,volume:e,audioGain:s}=this.a.$state;this.Rb(t()||e()===0?"Mute":`${Math.round(e()*(s()??1)*100)}% ${this.We("Volume")}`)}Kk(){const{seeking:t,currentTime:e}=this.a.$state,s=t();this.Hc>0?(window.clearTimeout(this.Xe),this.Xe=window.setTimeout(()=>{if(!this.scope)return;const i=u(e),a=Math.abs(i-this.Hc);if(a>=1){const n=i>=this.Hc,r=Wt(a);this.Rb(`${this.We(n?"Seek Forward":"Seek Backward")} ${r}`)}this.Hc=-1,this.Xe=-1},300)):s&&(this.Hc=u(e))}We(t){var s;const{translations:e}=this.$props;return((s=e==null?void 0:e())==null?void 0:s[t||""])??t}Lk(){const{label:t,busy:e}=this.$state,s=this.We(t());if(this.Ve)return;e.set(!0);const i=window.setTimeout(()=>void e.set(!1),150);return this.el&&$(this.el,"aria-label",s),S(s)&&this.dispatch("change",{detail:s}),()=>window.clearTimeout(i)}Rb(t){const{label:e}=this.$state;e.set(t)}};Jt.props={translations:null},Jt.state=new rt({label:null,busy:!1});let Bs=Jt;const Be=class Be extends y{onSetup(){this.a=T(),c(this.Mk.bind(this))}onAttach(t){const{pictureInPicture:e,fullscreen:s}=this.a.$state;Q(t,"pointer-events","none"),x(t,"role","group"),this.setAttributes({"data-visible":this.hh.bind(this),"data-fullscreen":s,"data-pip":e}),c(()=>{this.dispatch("change",{detail:this.hh()})}),c(this.Nk.bind(this)),c(()=>{const i=s();for(const a of["top","right","bottom","left"])Q(t,`padding-${a}`,i&&`env(safe-area-inset-${a})`)})}Nk(){if(!this.el)return;const{nativeControls:t}=this.a.$state,e=t();$(this.el,"aria-hidden",e?"true":null),Q(this.el,"display",e?"none":null)}Mk(){const{controls:t}=this.a.player,{hideDelay:e,hideOnMouseLeave:s}=this.$props;t.defaultDelay=e()===2e3?this.a.$props.controlsDelay():e(),t.hideOnMouseLeave=s()}hh(){const{controlsVisible:t}=this.a.$state;return t()}};Be.props={hideDelay:2e3,hideOnMouseLeave:!1};let Js=Be;class Li extends G{constructor(t){super(),this.j=t,this.zd=-1,this.Ad=-1,this.wb=null,c(this.Ok.bind(this))}onDestroy(){var t;(t=this.wb)==null||t.call(this),this.wb=null}Ok(){const t=this.j.M();if(!t){this.hide();return}const e=this.show.bind(this),s=this.hide.bind(this);this.j.yd(t,e,s)}show(t){var e,s,i;this.Ye(),window.cancelAnimationFrame(this.Ad),this.Ad=-1,(e=this.wb)==null||e.call(this),this.wb=null,this.zd=window.setTimeout(()=>{this.zd=-1;const a=this.j.q();a&&a.style.removeProperty("display"),u(()=>this.j.E(!0,t))},((i=(s=this.j).ih)==null?void 0:i.call(s))??0)}hide(t){this.Ye(),u(()=>this.j.E(!1,t)),this.Ad=requestAnimationFrame(()=>{var s;this.Ye(),this.Ad=-1;const e=this.j.q();if(e){const i=()=>{e.style.display="none",this.wb=null};if(da(e)){(s=this.wb)==null||s.call(this);const n=m(e,"animationend",i,{once:!0});this.wb=n}else i()}})}Ye(){window.clearTimeout(this.zd),this.zd=-1}}const Rt=ht();let dn=0;const Je=class Je extends y{constructor(){super(),this.ya=`media-tooltip-${++dn}`,this.M=w(null),this.q=w(null),new X;const{showDelay:t}=this.$props;new Li({M:this.M,q:this.q,ih:t,yd(e,s,i){m(e,"touchstart",a=>a.preventDefault(),{passive:!1}),c(()=>{Kt()&&m(e,"focus",s),m(e,"blur",i)}),m(e,"mouseenter",s),m(e,"mouseleave",i)},E:this.Pk.bind(this)})}onAttach(t){t.style.setProperty("display","contents")}onSetup(){H(Rt,{M:this.M,q:this.q,Ze:this.Ze.bind(this),_e:this._e.bind(this),$e:this.$e.bind(this),af:this.af.bind(this)})}Ze(t){var s;this.M.set(t);let e=t.getAttribute("data-media-tooltip");e&&((s=this.el)==null||s.setAttribute(`data-media-${e}-tooltip`,"")),$(t,"data-describedby",this.ya)}_e(t){t.removeAttribute("data-describedby"),t.removeAttribute("aria-describedby"),this.M.set(null)}$e(t){t.setAttribute("id",this.ya),t.style.display="none",x(t,"role","tooltip"),this.q.set(t)}af(t){t.removeAttribute("id"),t.removeAttribute("role"),this.q.set(null)}Pk(t){const e=this.M(),s=this.q();e&&$(e,"aria-describedby",t?this.ya:null);for(const i of[this.el,e,s])i&&$(i,"data-visible",t)}};Je.props={showDelay:700};let Zs=Je;const Ze=class Ze extends y{constructor(){super(),new X;const{placement:t}=this.$props;this.setAttributes({"data-placement":t})}onAttach(t){this.xb(t),Object.assign(t.style,{position:"absolute",top:0,left:0,width:"max-content"})}onConnect(t){this.xb(t);const e=O(Rt);P(()=>e.af(t)),P(Ht(()=>{this.connectScope&&c(this.bf.bind(this))}))}xb(t){O(Rt).$e(t)}bf(){const{placement:t,offset:e,alignOffset:s}=this.$props;return Pi(this.el,this.Qk(),t(),{offsetVarName:"media-tooltip",xOffset:s(),yOffset:e()})}Qk(){return O(Rt).M()}};Ze.props={placement:"top center",offset:0,alignOffset:0};let ti=Ze;const ts=class ts extends G{constructor(t){super(),this.j=t,new X,t.Sb&&new Ha(t.Sb)}onSetup(){const{disabled:t}=this.$props;this.setAttributes({"data-pressed":this.j.o,"aria-pressed":this.Rk.bind(this),"aria-disabled":()=>t()?"true":null})}onAttach(t){x(t,"tabindex","0"),x(t,"role","button"),x(t,"type","button")}onConnect(t){tt(t,this.Sk.bind(this));for(const e of["click","touchstart"])this.listen(e,this.Tk.bind(this))}Rk(){return Nt(this.j.o())}Uk(t){Yi(this.j.o)&&this.j.o.set(e=>!e)}Sk(t){if(this.$props.disabled()||this.el.hasAttribute("data-disabled")){t.preventDefault(),t.stopImmediatePropagation();return}t.preventDefault(),(this.j.r??this.Uk).call(this,t)}Tk(t){this.$props.disabled()&&(t.preventDefault(),t.stopImmediatePropagation())}};ts.props={disabled:!1};let I=ts;var un=Object.defineProperty,pn=Object.getOwnPropertyDescriptor,fn=(h,t,e,s)=>{for(var i=pn(t,e),a=h.length-1,n;a>=0;a--)(n=h[a])&&(i=n(t,e,i)||i);return i&&un(t,e,i),i};const es=class es extends y{constructor(){super(),this.jh=w(!1),new I({o:this.jh})}get pressed(){return this.jh()}};es.props={disabled:!1,defaultPressed:!1};let Ee=es;fn([k],Ee.prototype,"pressed");const ss=class ss extends y{constructor(){super(),new I({o:this.o.bind(this),r:this.r.bind(this)})}onSetup(){this.a=T();const{canAirPlay:t,isAirPlayConnected:e}=this.a.$state;this.setAttributes({"data-active":e,"data-supported":t,"data-state":this.Ic.bind(this),"aria-hidden":L(()=>!t())})}onAttach(t){t.setAttribute("data-media-tooltip","airplay"),et(t,this.Jc.bind(this))}r(t){this.a.remote.requestAirPlay(t)}o(){const{remotePlaybackType:t,remotePlaybackState:e}=this.a.$state;return t()==="airplay"&&e()!=="disconnected"}Ic(){const{remotePlaybackType:t,remotePlaybackState:e}=this.a.$state;return t()==="airplay"&&e()}Jc(){const{remotePlaybackState:t}=this.a.$state;return`AirPlay ${t()}`}};ss.props=I.props;let ei=ss;const is=class is extends y{constructor(){super(),new I({o:this.o.bind(this),r:this.r.bind(this)})}onSetup(){this.a=T();const{canGoogleCast:t,isGoogleCastConnected:e}=this.a.$state;this.setAttributes({"data-active":e,"data-supported":t,"data-state":this.Ic.bind(this),"aria-hidden":L(()=>!t())})}onAttach(t){t.setAttribute("data-media-tooltip","google-cast"),et(t,this.Jc.bind(this))}r(t){this.a.remote.requestGoogleCast(t)}o(){const{remotePlaybackType:t,remotePlaybackState:e}=this.a.$state;return t()==="google-cast"&&e()!=="disconnected"}Ic(){const{remotePlaybackType:t,remotePlaybackState:e}=this.a.$state;return t()==="google-cast"&&e()}Jc(){const{remotePlaybackState:t}=this.a.$state;return`Google Cast ${t()}`}};is.props=I.props;let si=is;const as=class as extends y{constructor(){super(),new I({o:this.o.bind(this),Sb:"togglePaused",r:this.r.bind(this)})}onSetup(){this.a=T();const{paused:t,ended:e}=this.a.$state;this.setAttributes({"data-paused":t,"data-ended":e})}onAttach(t){t.setAttribute("data-media-tooltip","play"),et(t,"Play")}r(t){const e=this.a.remote;this.o()?e.pause(t):e.play(t)}o(){const{paused:t}=this.a.$state;return!t()}};as.props=I.props;let ii=as;const ns=class ns extends y{constructor(){super(),new I({o:this.o.bind(this),Sb:"toggleCaptions",r:this.r.bind(this)})}onSetup(){this.a=T(),this.setAttributes({"data-active":this.o.bind(this),"data-supported":()=>!this.Tb(),"aria-hidden":L(this.Tb.bind(this))})}onAttach(t){t.setAttribute("data-media-tooltip","caption"),et(t,"Captions")}r(t){this.a.remote.toggleCaptions(t)}o(){const{textTrack:t}=this.a.$state,e=t();return!!e&&V(e)}Tb(){const{hasCaptions:t}=this.a.$state;return!t()}};ns.props=I.props;let ai=ns;const rs=class rs extends y{constructor(){super(),new I({o:this.o.bind(this),Sb:"toggleFullscreen",r:this.r.bind(this)})}onSetup(){this.a=T();const{fullscreen:t}=this.a.$state,e=this.Kc.bind(this);this.setAttributes({"data-active":t,"data-supported":e,"aria-hidden":L(()=>!e())})}onAttach(t){t.setAttribute("data-media-tooltip","fullscreen"),et(t,"Fullscreen")}r(t){const e=this.a.remote,s=this.$props.target();this.o()?e.exitFullscreen(s,t):e.enterFullscreen(s,t)}o(){const{fullscreen:t}=this.a.$state;return t()}Kc(){const{canFullscreen:t}=this.a.$state;return t()}};rs.props={...I.props,target:"prefer-media"};let ni=rs;const hs=class hs extends y{constructor(){super(),new I({o:this.o.bind(this),Sb:"toggleMuted",r:this.r.bind(this)})}onSetup(){this.a=T(),this.setAttributes({"data-muted":this.o.bind(this),"data-state":this.Ic.bind(this)})}onAttach(t){t.setAttribute("data-media-mute-button",""),t.setAttribute("data-media-tooltip","mute"),et(t,"Mute")}r(t){const e=this.a.remote;this.o()?e.unmute(t):e.mute(t)}o(){const{muted:t,volume:e}=this.a.$state;return t()||e()===0}Ic(){const{muted:t,volume:e}=this.a.$state,s=e();if(t()||s===0)return"muted";if(s>=.5)return"high";if(s<.5)return"low"}};hs.props=I.props;let ri=hs;const os=class os extends y{constructor(){super(),new I({o:this.o.bind(this),Sb:"togglePictureInPicture",r:this.r.bind(this)})}onSetup(){this.a=T();const{pictureInPicture:t}=this.a.$state,e=this.Kc.bind(this);this.setAttributes({"data-active":t,"data-supported":e,"aria-hidden":L(()=>!e())})}onAttach(t){t.setAttribute("data-media-tooltip","pip"),et(t,"PiP")}r(t){const e=this.a.remote;this.o()?e.exitPictureInPicture(t):e.enterPictureInPicture(t)}o(){const{pictureInPicture:t}=this.a.$state;return t()}Kc(){const{canPictureInPicture:t}=this.a.$state;return t()}};os.props=I.props;let hi=os;const cs=class cs extends y{constructor(){super(),new X}onSetup(){this.a=T();const{seeking:t}=this.a.$state,{seconds:e}=this.$props,s=this.Kc.bind(this);this.setAttributes({seconds:e,"data-seeking":t,"data-supported":s,"aria-hidden":L(()=>!s())})}onAttach(t){x(t,"tabindex","0"),x(t,"role","button"),x(t,"type","button"),t.setAttribute("data-media-tooltip","seek"),et(t,this.Jc.bind(this))}onConnect(t){tt(t,this.r.bind(this))}Kc(){const{canSeek:t}=this.a.$state;return t()}Jc(){const{seconds:t}=this.$props;return`Seek ${t()>0?"forward":"backward"} ${t()} seconds`}r(t){const{seconds:e,disabled:s}=this.$props;if(s())return;const{currentTime:i}=this.a.$state,a=i()+e();this.a.remote.seek(a,t)}};cs.props={disabled:!1,seconds:30};let oi=cs;const ls=class ls extends y{constructor(){super(),new X}onSetup(){this.a=T();const{disabled:t}=this.$props,{live:e,liveEdge:s}=this.a.$state,i=()=>!e();this.setAttributes({"data-edge":s,"data-hidden":i,"aria-disabled":L(()=>t()||s()),"aria-hidden":L(i)})}onAttach(t){x(t,"tabindex","0"),x(t,"role","button"),x(t,"type","button"),t.setAttribute("data-media-tooltip","live")}onConnect(t){tt(t,this.r.bind(this))}r(t){const{disabled:e}=this.$props,{liveEdge:s}=this.a.$state;e()||s()||this.a.remote.seekToLiveEdge(t)}};ls.props={disabled:!1};let ci=ls;const bt=new rt({min:0,max:100,value:0,step:1,pointerValue:0,focused:!1,dragging:!1,pointing:!1,hidden:!1,get active(){return this.dragging||this.focused||this.pointing},get fillRate(){return li(this.min,this.max,this.value)},get fillPercent(){return this.fillRate*100},get pointerRate(){return li(this.min,this.max,this.pointerValue)},get pointerPercent(){return this.pointerRate*100}});function li(h,t,e){const s=t-h,i=e-h;return s>0?i/s:0}class Ii extends G{constructor(t){super(),this.Hb=t}onConnect(t){this.Ra=new IntersectionObserver(e=>{var s,i;(i=(s=this.Hb).callback)==null||i.call(s,e,this.Ra)},this.Hb),this.Ra.observe(t),P(this.Vk.bind(this))}Vk(){var t;(t=this.Ra)==null||t.disconnect(),this.Ra=void 0}}const Ue=ht(),$t=ht();function mn(h,t,e,s){return Fe(h,M(e,wa(s)),t)}function bn(h,t,e,s){const i=Fe(0,e,1),a=t-h,n=a*i,r=n/s,o=s*Math.round(r);return h+o}const ke={Left:-1,ArrowLeft:-1,Up:1,ArrowUp:1,Right:1,ArrowRight:1,Down:-1,ArrowDown:-1};class gn extends G{constructor(t,e){super(),this.j=t,this.a=e,this.p=null,this.cb=null,this.Ub=null,this.Bn=!1,this.cl=ct(s=>{this.db(this.Cd(s),s)},20,{leading:!0})}onSetup(){F($t)&&(this.Ra=O($t))}onConnect(){c(this.Wk.bind(this)),c(this.Xk.bind(this)),this.j.kh&&c(this.Yk.bind(this))}Yk(){var e;const{pointer:t}=this.a.$state;if(t()!=="coarse"||!this.j.kh()){this.p=null;return}this.p=(e=this.a.player.el)==null?void 0:e.querySelector("media-provider,[data-media-provider]"),this.p&&(m(this.p,"touchstart",this.Zk.bind(this),{passive:!0}),m(this.p,"touchmove",this._k.bind(this),{passive:!1}))}Zk(t){this.cb=t.touches[0]}_k(t){if(it(this.cb)||_e(t))return;const e=t.touches[0],s=e.clientX-this.cb.clientX,i=e.clientY-this.cb.clientY,a=this.$state.dragging();!a&&Math.abs(i)>5||a||(t.preventDefault(),Math.abs(s)>20&&(this.cb=e,this.Ub=this.$state.value(),this.cf(this.Ub,t)))}Wk(){const{hidden:t}=this.$props;this.listen("focus",this.Ec.bind(this)),this.listen("keydown",this.ic.bind(this)),this.listen("keyup",this.hc.bind(this)),!(t()||this.j.v())&&(this.listen("pointerenter",this.Oe.bind(this)),this.listen("pointermove",this.$k.bind(this)),this.listen("pointerleave",this.Pe.bind(this)),this.listen("pointerdown",this.al.bind(this)))}Xk(){this.j.v()||!this.$state.dragging()||(m(document,"pointerup",this.bl.bind(this),{capture:!0}),m(document,"pointermove",this.cl.bind(this)),m(document,"touchmove",this.dl.bind(this),{passive:!1}))}Ec(){this.db(this.$state.value())}df(t,e){var d,l,p,f;const{value:s,min:i,max:a,dragging:n}=this.$state,r=Math.max(i(),Math.min(t,a()));s.set(r);const o=this.createEvent("value-change",{detail:r,trigger:e});if(this.dispatch(o),(l=(d=this.j).l)==null||l.call(d,o),n()){const b=this.createEvent("drag-value-change",{detail:r,trigger:e});this.dispatch(b),(f=(p=this.j).S)==null||f.call(p,b)}}db(t,e){const{pointerValue:s,dragging:i}=this.$state;s.set(t),this.dispatch("pointer-value-change",{detail:t,trigger:e}),i()&&this.df(t,e)}Cd(t){let e,s=this.el.getBoundingClientRect(),{min:i,max:a}=this.$state;if(this.$props.orientation()==="vertical"){const{bottom:n,height:r}=s;e=(n-t.clientY)/r}else if(this.cb&&W(this.Ub)){const{width:n}=this.p.getBoundingClientRect(),r=(t.clientX-this.cb.clientX)/n,o=a()-i(),d=o*Math.abs(r);e=(r<0?this.Ub-d:this.Ub+d)/o}else{const{left:n,width:r}=s;e=(t.clientX-n)/r}return Math.max(i(),Math.min(a(),this.j.Da(bn(i(),a(),e,this.j.qa()))))}Oe(t){this.$state.pointing.set(!0)}$k(t){const{dragging:e}=this.$state;e()||this.db(this.Cd(t),t)}Pe(t){this.$state.pointing.set(!1)}al(t){if(t.button!==0)return;const e=this.Cd(t);this.cf(e,t),this.db(e,t)}cf(t,e){var a,n,r,o;const{dragging:s}=this.$state;if(s())return;s.set(!0),this.a.remote.pauseControls(e);const i=this.createEvent("drag-start",{detail:t,trigger:e});this.dispatch(i),(n=(a=this.j).ef)==null||n.call(a,i),(o=(r=this.Ra)==null?void 0:r.onDragStart)==null||o.call(r)}lh(t,e){var a,n,r,o;const{dragging:s}=this.$state;if(!s())return;s.set(!1),this.a.remote.resumeControls(e);const i=this.createEvent("drag-end",{detail:t,trigger:e});this.dispatch(i),(n=(a=this.j).Dd)==null||n.call(a,i),this.cb=null,this.Ub=null,(o=(r=this.Ra)==null?void 0:r.onDragEnd)==null||o.call(r)}ic(t){if(!Object.keys(ke).includes(t.key))return;const{key:s}=t,i=this.Cn(t);if(!it(i)){this.db(i,t),this.df(i,t);return}const a=this.Dn(t);this.Bn||(this.Bn=s===this.ff,!this.$state.dragging()&&this.Bn&&this.cf(a,t)),this.db(a,t),this.ff=s}hc(t){if(!Object.keys(ke).includes(t.key)||!it(this.Cn(t)))return;const s=this.Bn?this.$state.pointerValue():this.Dn(t);this.df(s,t),this.lh(s,t),this.ff="",this.Bn=!1}Cn(t){let e=t.key,{min:s,max:i}=this.$state;return e==="Home"||e==="PageUp"?s():e==="End"||e==="PageDown"?i():!t.metaKey&&/^[0-9]$/.test(e)?(i()-s())/10*Number(e):null}Dn(t){var Y,dt;const{key:e,shiftKey:s}=t;t.preventDefault(),t.stopPropagation();const{shiftKeyMultiplier:i}=this.$props,{min:a,max:n,value:r,pointerValue:o}=this.$state,d=this.j.qa(),l=this.j.eb(),p=s?l*i():l,f=Number(ke[e]),b=p*f,g=this.Bn?o():((dt=(Y=this.j).Y)==null?void 0:dt.call(Y))??r(),v=(g+b)/d;return Math.max(a(),Math.min(n(),Number((d*v).toFixed(3))))}bl(t){if(t.button!==0)return;t.preventDefault(),t.stopImmediatePropagation();const e=this.Cd(t);this.db(e,t),this.lh(e,t)}dl(t){t.preventDefault()}}const pt=ht(()=>({})),ds=class ds extends G{constructor(t){super(),this.j=t,this.Lc=w(!0),this.Mc=w(!0),this.jl=mt((e,s)=>{var i,a;(i=this.el)==null||i.style.setProperty("--slider-fill",e+"%"),(a=this.el)==null||a.style.setProperty("--slider-pointer",s+"%")})}onSetup(){this.a=T();const t=new X;t.attach(this),this.$state.focused=t.focused.bind(t),F(pt)||H(pt,{default:"value"}),H(Ue,{bb:this.$props.orientation,Ed:this.j.v,nh:w(null)}),c(this.N.bind(this)),c(this.fl.bind(this)),c(this.Nc.bind(this)),this.gl(),new gn(this.j,this.a).attach(this),new Ii({callback:this.gf.bind(this)}).attach(this)}onAttach(t){x(t,"role","slider"),x(t,"tabindex","0"),x(t,"autocomplete","off"),c(this.oh.bind(this))}onConnect(t){P(xi(t,this.Lc.set)),c(this.Ea.bind(this))}gf(t){this.Mc.set(t[0].isIntersecting)}Ea(){const{hidden:t}=this.$props;this.$state.hidden.set(t()||!this.Lc()||!this.Mc.bind(this))}N(){const{dragging:t,value:e,min:s,max:i}=this.$state;u(t)||e.set(mn(s(),i(),e(),this.j.qa()))}fl(){this.$state.step.set(this.j.qa())}Nc(){if(!this.j.v())return;const{dragging:t,pointing:e}=this.$state;t.set(!1),e.set(!1)}il(){return Nt(this.j.v())}gl(){const{orientation:t}=this.$props,{dragging:e,active:s,pointing:i}=this.$state;this.setAttributes({"data-dragging":e,"data-pointing":i,"data-active":s,"aria-disabled":this.il.bind(this),"aria-valuemin":this.j.Tm??this.$state.min,"aria-valuemax":this.j.hf??this.$state.max,"aria-valuenow":this.j.O,"aria-valuetext":this.j.P,"aria-orientation":t})}oh(){const{fillPercent:t,pointerPercent:e}=this.$state;this.jl(M(t(),3),M(e(),3))}};ds.props={hidden:!1,disabled:!1,step:1,keyStep:1,orientation:"horizontal",shiftKeyMultiplier:5};let _=ds;const Zt=class Zt extends y{constructor(){super(),new _({qa:this.$props.step,eb:this.$props.keyStep,Da:Math.round,v:this.$props.disabled,O:this.O.bind(this),P:this.P.bind(this)})}onSetup(){c(this.N.bind(this)),c(this.Oc.bind(this))}O(){const{value:t}=this.$state;return Math.round(t())}P(){const{value:t,max:e}=this.$state;return M(t()/e()*100,2)+"%"}N(){const{value:t}=this.$props;this.$state.value.set(t())}Oc(){const{min:t,max:e}=this.$props;this.$state.min.set(t()),this.$state.max.set(e())}};Zt.props={..._.props,min:0,max:100,value:0},Zt.state=bt;let vt=Zt;const B=new Map,jt=new Map;class Ge{constructor(t,e,s){this.$src=t,this.$crossOrigin=e,this.a=s,this.$images=w([]),c(this.kl.bind(this))}static create(t,e){const s=T();return new Ge(t,e,s)}kl(){var i;const{canLoad:t}=this.a.$state;if(!t())return;const e=this.$src(),s=new AbortController;if(e){if(S(e)&&B.has(e)){const a=B.get(e);if(B.delete(e),B.set(e,a),B.size>30){const n=B.keys().next().value;B.delete(n)}this.$images.set(B.get(e))}else if(S(e)){const a=this.$crossOrigin(),n=e+"::"+a;if(!jt.has(n)){const r=new Promise(async(o,d)=>{try{const l=await fetch(e,{signal:s.signal,credentials:Vt(a)});if(l.headers.get("content-type")==="application/json"){const f=await l.json();if(N(f))if(f[0]&&"text"in f[0])o(this.ph(f));else{for(let b=0;bimport("./prod-OBrTmKrB.js").then(f=>f.d),__vite__mapDeps([14,2])).then(async({parseResponse:f})=>{try{const{cues:b}=await f(l);o(this.ph(b))}catch(b){d(b)}})}catch(l){d(l)}}).then(o=>(s.signal.aborted||B.set(n,o),o)).catch(o=>{s.signal.aborted||this.Q(e,o)}).finally(()=>{S(n)&&jt.delete(n)});jt.set(n,r)}(i=jt.get(n))==null||i.then(r=>{s.signal.aborted||this.$images.set(r||[])})}else if(N(e))try{this.$images.set(this.ll(e))}catch(a){this.Q(e,a)}else try{this.$images.set(this.qh(e))}catch(a){this.Q(e,a)}return()=>{s.abort(),this.$images.set([])}}}ll(t){const e=this.rh();return t.map((s,i)=>(z(s.url&&S(s.url)),z("startTime"in s&&W(s.startTime)),{...s,url:S(s.url)?this.sh(s.url,e):s.url}))}qh(t){var n;z(S(t.url)),z(N(t.tiles)&&((n=t.tiles)==null?void 0:n.length));const e=new URL(t.url),s=[],i="tile_width"in t?t.tile_width:t.tileWidth,a="tile_height"in t?t.tile_height:t.tileHeight;for(const r of t.tiles)s.push({url:e,startTime:"start"in r?r.start:r.startTime,width:i,height:a,coords:{x:r.x,y:r.y}});return s}ph(t){for(let i=0;i{this.ol(),e.set(!1),s.set(null)}}tb(){const{loading:t,error:e}=this.$state;this.th(),t.set(!1),e.set(null)}Q(t){const{loading:e,error:s}=this.$state;e.set(!1),s.set(t)}Pc(){const{loading:t,hidden:e}=this.$state;return!e()&&t()}fb(){const{error:t}=this.$state;return!it(t())}Ea(){const{hidden:t}=this.$state,{duration:e}=this.a.$state,s=this.X.$images();t.set(this.fb()||!Number.isFinite(e())||s.length===0)}uh(){return this.$props.time()}nl(){let t=this.X.$images();if(!t.length)return;let e=this.uh(),{src:s,activeThumbnail:i}=this.$state,a=-1,n=null;for(let r=t.length-1;r>=0;r--){const o=t[r];if(e>=o.startTime&&(!o.endTime||e1?f:1;this.Vb(t,"--thumbnail-width",`${i*g}px`),this.Vb(t,"--thumbnail-height",`${a*g}px`),this.Vb(e,"width",`${e.naturalWidth*g}px`),this.Vb(e,"height",`${e.naturalHeight*g}px`),this.Vb(e,"transform",s.coords?`translate(-${s.coords.x*g}px, -${s.coords.y*g}px)`:""),this.Vb(e,"max-width","none")}Vb(t,e,s){t.style.setProperty(e,s),this.jf.push(()=>t.style.removeProperty(e))}ol(){for(const t of this.jf)t();this.jf=[]}};te.props={src:null,time:0,crossOrigin:null},te.state=new rt({src:"",img:null,thumbnails:[],activeThumbnail:null,crossOrigin:null,loading:!1,error:null,hidden:!1});let di=te;var yn=Object.defineProperty,$n=Object.getOwnPropertyDescriptor,kn=(h,t,e,s)=>{for(var i=$n(t,e),a=h.length-1,n;a>=0;a--)(n=h[a])&&(i=n(t,e,i)||i);return i&&yn(t,e,i),i};const ee=class ee extends y{get video(){return this.$state.video()}onSetup(){this.a=T(),this.ia=ce(vt.state),this.Ca(),this.setAttributes({"data-loading":this.Pc.bind(this),"data-hidden":this.$state.hidden,"data-error":this.fb.bind(this),"aria-hidden":L(this.$state.hidden)})}onAttach(t){c(this.pl.bind(this)),c(this.Mb.bind(this)),c(this.Ca.bind(this)),c(this.Ea.bind(this)),c(this.ql.bind(this)),c(this.rl.bind(this))}pl(){const t=this.$state.video();t&&(t.readyState>=2&&this.ed(),m(t,"canplay",this.ed.bind(this)),m(t,"error",this.Q.bind(this)))}Mb(){const{src:t}=this.$state,{canLoad:e}=this.a.$state;t.set(e()?this.$props.src():null)}Ca(){const{crossOrigin:t}=this.$props,{crossOrigin:e}=this.$state,{crossOrigin:s}=this.a.$state,i=t()!==null?t():s();e.set(i===!0?"anonymous":i)}Pc(){const{canPlay:t,hidden:e}=this.$state;return!t()&&!e()}fb(){const{error:t}=this.$state;return!it(t)}Ea(){const{src:t,hidden:e}=this.$state,{canLoad:s,duration:i}=this.a.$state;e.set(s()&&(!t()||this.fb()||!Number.isFinite(i())))}ql(){const{src:t,canPlay:e,error:s}=this.$state;t(),e.set(!1),s.set(null)}ed(t){const{canPlay:e,error:s}=this.$state;e.set(!0),s.set(null),this.dispatch("can-play",{trigger:t})}Q(t){const{canPlay:e,error:s}=this.$state;e.set(!1),s.set(t),this.dispatch("error",{trigger:t})}rl(){const{video:t,canPlay:e}=this.$state,{duration:s}=this.a.$state,{pointerRate:i}=this.ia,a=t();e()&&a&&Number.isFinite(s())&&Number.isFinite(i())&&(a.currentTime=i()*s())}};ee.props={src:null,crossOrigin:null},ee.state=new rt({video:null,src:null,crossOrigin:null,canPlay:!1,error:null,hidden:!1});let Ce=ee;kn([k],Ce.prototype,"video");var wn=Object.defineProperty,Tn=Object.getOwnPropertyDescriptor,vn=(h,t,e,s)=>{for(var i=Tn(t,e),a=h.length-1,n;a>=0;a--)(n=h[a])&&(i=n(t,e,i)||i);return i&&wn(t,e,i),i};const us=class us extends y{onSetup(){this.ia=ce(vt.state),this.Qc=O(pt),this.sl=at(this.getValueText.bind(this))}getValueText(){var g,v;const{type:t,format:e,decimalPlaces:s,padHours:i,padMinutes:a,showHours:n,showMs:r}=this.$props,{value:o,pointerValue:d,min:l,max:p}=this.ia,f=(e==null?void 0:e())??this.Qc.default,b=t()==="current"?o():d();if(f==="percent"){const Y=p()-l(),dt=b/Y*100;return(this.Qc.percent??M)(dt,s())+"%"}else return f==="time"?(this.Qc.time??le)(b,{padHrs:i(),padMins:a(),showHrs:n(),showMs:r()}):(((v=(g=this.Qc).value)==null?void 0:v.call(g,b))??b.toFixed(2))+""}};us.props={type:"pointer",format:null,showHours:!1,showMs:!1,padHours:null,padMinutes:null,decimalPlaces:2};let qe=us;vn([C],qe.prototype,"getValueText");const ps=class ps extends y{constructor(){super(...arguments),this.vh=mt(()=>{const{Ed:t,bb:e}=this.ia;if(t())return;const s=this.el,{offset:i,noClamp:a}=this.$props;s&&Pn(s,{clamp:!a(),offset:i(),orientation:e()})})}onSetup(){this.ia=O(Ue);const{active:t}=ce(vt.state);this.setAttributes({"data-visible":t})}onAttach(t){Object.assign(t.style,{position:"absolute",top:0,left:0,width:"max-content"})}onConnect(t){const{nh:e}=this.ia;e.set(t),P(()=>e.set(null)),c(this.vh.bind(this));const s=new ResizeObserver(this.vh.bind(this));s.observe(t),P(()=>s.disconnect())}};ps.props={offset:0,noClamp:!1};let ui=ps;function Pn(h,{clamp:t,offset:e,orientation:s}){const i=getComputedStyle(h),a=parseFloat(i.width),n=parseFloat(i.height),r={top:null,right:null,bottom:null,left:null};if(r[s==="horizontal"?"bottom":"left"]=`calc(100% + var(--media-slider-preview-offset, ${e}px))`,s==="horizontal"){const o=a/2;if(!t)r.left=`calc(var(--slider-pointer) - ${o}px)`;else{const d=`max(0px, calc(var(--slider-pointer) - ${o}px))`,l=`calc(100% - ${a}px)`;r.left=`min(${d}, ${l})`}}else{const o=n/2;if(!t)r.bottom=`calc(var(--slider-pointer) - ${o}px)`;else{const d=`max(${o}px, calc(var(--slider-pointer) - ${o}px))`,l=`calc(100% - ${n}px)`;r.bottom=`min(${d}, ${l})`}}Object.assign(h.style,r)}const se=class se extends y{constructor(){super(...arguments),this.wh=ct(this.Na.bind(this),25)}onSetup(){this.a=T();const{audioGain:t}=this.a.$state;H(pt,{default:"percent",value(e){return(e*(t()??1)).toFixed(2)},percent(e){return Math.round(e*(t()??1))}}),new _({qa:this.$props.step,eb:this.$props.keyStep,Da:Math.round,v:this.v.bind(this),hf:this.hf.bind(this),O:this.O.bind(this),P:this.P.bind(this),S:this.S.bind(this),l:this.l.bind(this)}).attach(this),c(this.Fc.bind(this))}onAttach(t){t.setAttribute("data-media-volume-slider",""),x(t,"aria-label","Volume");const{canSetVolume:e}=this.a.$state;this.setAttributes({"data-supported":e,"aria-hidden":L(()=>!e())})}O(){const{value:t}=this.$state,{audioGain:e}=this.a.$state;return Math.round(t()*(e()??1))}P(){const{value:t,max:e}=this.$state,{audioGain:s}=this.a.$state;return M(t()/e()*(s()??1)*100,2)+"%"}hf(){const{audioGain:t}=this.a.$state;return this.$state.max()*(t()??1)}v(){const{disabled:t}=this.$props,{canSetVolume:e}=this.a.$state;return t()||!e()}Fc(){const{muted:t,volume:e}=this.a.$state,s=t()?0:e()*100;this.$state.value.set(s),this.dispatch("value-change",{detail:s})}Na(t){if(!t.trigger)return;const e=M(t.detail/100,3);this.a.remote.changeVolume(e,t)}l(t){this.wh(t)}S(t){this.wh(t)}};se.props={..._.props,keyStep:5,shiftKeyMultiplier:2},se.state=bt;let pi=se;const ie=class ie extends y{onSetup(){this.a=T(),H(pt,{default:"percent",percent:(t,e)=>M(this.$state.value(),e)+"%"}),new _({qa:this.$props.step,eb:this.$props.keyStep,Da:Math.round,v:this.v.bind(this),O:this.O.bind(this),P:this.P.bind(this),S:this.S.bind(this),l:this.l.bind(this)}).attach(this),c(this.Oc.bind(this)),c(this.tl.bind(this))}onAttach(t){t.setAttribute("data-media-audio-gain-slider",""),x(t,"aria-label","Audio Boost");const{canSetAudioGain:e}=this.a.$state;this.setAttributes({"data-supported":e,"aria-hidden":L(()=>!e())})}O(){const{value:t}=this.$state;return Math.round(t())}P(){const{value:t}=this.$state;return t()+"%"}Oc(){const{min:t,max:e}=this.$props;this.$state.min.set(t()),this.$state.max.set(e())}tl(){const{audioGain:t}=this.a.$state,e=((t()??1)-1)*100;this.$state.value.set(e),this.dispatch("value-change",{detail:e})}v(){const{disabled:t}=this.$props,{canSetAudioGain:e}=this.a.$state;return t()||!e()}xh(t){if(!t.trigger)return;const e=M(1+t.detail/100,2);this.a.remote.changeAudioGain(e,t)}l(t){this.xh(t)}S(t){this.xh(t)}};ie.props={..._.props,step:25,keyStep:25,shiftKeyMultiplier:2,min:0,max:300},ie.state=bt;let fi=ie;const ae=class ae extends y{constructor(){super(...arguments),this.yh=ct(this.ul.bind(this),25)}onSetup(){this.a=T(),new _({qa:this.$props.step,eb:this.$props.keyStep,Da:this.Da,v:this.v.bind(this),O:this.O.bind(this),P:this.P.bind(this),S:this.S.bind(this),l:this.l.bind(this)}).attach(this),c(this.Oc.bind(this)),c(this.Qe.bind(this))}onAttach(t){t.setAttribute("data-media-speed-slider",""),x(t,"aria-label","Speed");const{canSetPlaybackRate:e}=this.a.$state;this.setAttributes({"data-supported":e,"aria-hidden":L(()=>!e())})}O(){const{value:t}=this.$state;return t()}P(){const{value:t}=this.$state;return t()+"x"}Oc(){const{min:t,max:e}=this.$props;this.$state.min.set(t()),this.$state.max.set(e())}Qe(){const{playbackRate:t}=this.a.$state,e=t();this.$state.value.set(e),this.dispatch("value-change",{detail:e})}Da(t){return M(t,2)}v(){const{disabled:t}=this.$props,{canSetPlaybackRate:e}=this.a.$state;return t()||!e()}ul(t){if(!t.trigger)return;const e=t.detail;this.a.remote.changePlaybackRate(e,t)}l(t){this.yh(t)}S(t){this.yh(t)}};ae.props={..._.props,step:.25,keyStep:.25,shiftKeyMultiplier:2,min:0,max:2},ae.state=bt;let mi=ae;const ne=class ne extends y{constructor(){super(...arguments),this.Rc=at(()=>{const{qualities:t}=this.a.$state;return Si(t())}),this.zh=ct(this.Za.bind(this),25)}onSetup(){this.a=T(),new _({qa:this.$props.step,eb:this.$props.keyStep,Da:Math.round,v:this.v.bind(this),O:this.O.bind(this),P:this.P.bind(this),S:this.S.bind(this),l:this.l.bind(this)}).attach(this),c(this.vl.bind(this)),c(this.wl.bind(this))}onAttach(t){t.setAttribute("data-media-quality-slider",""),x(t,"aria-label","Video Quality");const{qualities:e,canSetQuality:s}=this.a.$state,i=at(()=>s()&&e().length>0);this.setAttributes({"data-supported":i,"aria-hidden":L(()=>!i())})}O(){const{value:t}=this.$state;return t()}P(){const{quality:t}=this.a.$state;if(!t())return"";const{height:e,bitrate:s}=t(),i=s&&s>0?`${(s/1e6).toFixed(2)} Mbps`:null;return e?`${e}p${i?` (${i})`:""}`:"Auto"}vl(){const t=this.Rc();this.$state.max.set(Math.max(0,t.length-1))}wl(){let{quality:t}=this.a.$state,e=this.Rc(),s=Math.max(0,e.indexOf(t()));this.$state.value.set(s),this.dispatch("value-change",{detail:s})}v(){const{disabled:t}=this.$props,{canSetQuality:e,qualities:s}=this.a.$state;return t()||s().length<=1||!e()}Za(t){if(!t.trigger)return;const{qualities:e}=this.a,s=u(this.Rc)[t.detail];this.a.remote.changeQuality(e.indexOf(s),t)}l(t){this.zh(t)}S(t){this.zh(t)}};ne.props={..._.props,step:1,keyStep:1,shiftKeyMultiplier:1},ne.state=bt;let bi=ne;const re=class re extends y{constructor(){super(),this.Ah=w(null),this.mf=!1;const{noSwipeGesture:t}=this.$props;new _({kh:()=>!t(),Y:this.Y.bind(this),qa:this.qa.bind(this),eb:this.eb.bind(this),Da:this.Da,v:this.v.bind(this),O:this.O.bind(this),P:this.P.bind(this),ef:this.ef.bind(this),S:this.S.bind(this),Dd:this.Dd.bind(this),l:this.l.bind(this)})}onSetup(){this.a=T(),H(pt,{default:"time",value:this.xl.bind(this),time:this.yl.bind(this)}),this.setAttributes({"data-chapters":this.zl.bind(this)}),this.setStyles({"--slider-progress":this.Al.bind(this)}),c(this.Qb.bind(this)),c(this.Bl.bind(this))}onAttach(t){t.setAttribute("data-media-time-slider",""),x(t,"aria-label","Seek")}onConnect(t){c(this.Cl.bind(this)),Ve(this.a.textTracks,"chapters",this.Ah.set)}Al(){const{bufferedEnd:t,duration:e}=this.a.$state;return M(Math.min(t()/Math.max(e(),1),1)*100,3)+"%"}zl(){var e;const{duration:t}=this.a.$state;return((e=this.Ah())==null?void 0:e.cues.length)&&Number.isFinite(t())&&t()>0}Bl(){this.lf=ct(this.Ja.bind(this),this.$props.seekingRequestThrottle())}Qb(){if(this.$state.hidden())return;const{value:t,dragging:e}=this.$state,s=this.Y();u(e)||(t.set(s),this.dispatch("value-change",{detail:s}))}Cl(){const t=this.a.player.el,{nh:e}=O(Ue);t&&e()&&$(t,"data-preview",this.$state.active())}Ja(t,e){this.a.remote.seeking(t,e)}Dl(t,e,s){this.lf.cancel();const{live:i}=this.a.$state;if(i()&&e>=99){this.a.remote.seekToLiveEdge(s);return}this.a.remote.seek(t,s)}ef(t){const{pauseWhileDragging:e}=this.$props;if(e()){const{paused:s}=this.a.$state;this.mf=!s(),this.a.remote.pause(t)}}S(t){this.lf(this.Wb(t.detail),t)}Dd(t){const{seeking:e}=this.a.$state;u(e)||this.Ja(this.Wb(t.detail),t);const s=t.detail;this.Dl(this.Wb(s),s,t);const{pauseWhileDragging:i}=this.$props;i()&&this.mf&&(this.a.remote.play(t),this.mf=!1)}l(t){const{dragging:e}=this.$state;e()||!t.trigger||this.Dd(t)}Y(){const{currentTime:t}=this.a.$state;return this.El(t())}qa(){const t=this.$props.step()/this.a.$state.duration()*100;return Number.isFinite(t)?t:1}eb(){const t=this.$props.keyStep()/this.a.$state.duration()*100;return Number.isFinite(t)?t:1}Da(t){return M(t,3)}v(){const{disabled:t}=this.$props,{canSeek:e}=this.a.$state;return t()||!e()}O(){const{value:t}=this.$state;return Math.round(t())}P(){const t=this.Wb(this.$state.value()),{duration:e}=this.a.$state;return Number.isFinite(t)?`${Wt(t)} out of ${Wt(e())}`:"live"}Wb(t){const{duration:e}=this.a.$state;return M(t/100*e(),5)}El(t){const{liveEdge:e,duration:s}=this.a.$state,i=Math.max(0,Math.min(1,e()?1:Math.min(t,s())/s()));return Number.isNaN(i)?0:Number.isFinite(i)?i*100:100}xl(t){const e=this.Wb(t),{live:s,duration:i}=this.a.$state;return Number.isFinite(e)?(s()?e-i():e).toFixed(0):"LIVE"}yl(t,e){const s=this.Wb(t),{live:i,duration:a}=this.a.$state,n=i()?s-a():s;return Number.isFinite(s)?`${n<0?"-":""}${le(Math.abs(n),e)}`:"LIVE"}};re.props={..._.props,step:.1,keyStep:5,shiftKeyMultiplier:2,pauseWhileDragging:!1,noSwipeGesture:!1,seekingRequestThrottle:100},re.state=bt;let Oe=re;var xn=Object.defineProperty,Sn=Object.getOwnPropertyDescriptor,de=(h,t,e,s)=>{for(var i=Sn(t,e),a=h.length-1,n;a>=0;a--)(n=h[a])&&(i=n(t,e,i)||i);return i&&xn(t,e,i),i};const fs=class fs extends y{constructor(){super(...arguments),this.yb=null,this.ja=[],this.Gd=w(null),this.ka=w([]),this.Xb=w(-1),this.Hd=w(-1),this.Sc=0,this.Ml=mt(t=>{var r;let e,s=this.ka(),{clipStartTime:i}=this.a.$state,a=i(),n=this.qf(s);for(let o=this.Sc;o{const t=u(this.Gd);!this.scope||!t||!t.cues.length||(this.ka.set(this.Pl(t.cues)),this.Xb.set(0),this.Sc=0)},150,!0)}get cues(){return this.ka()}get activeCue(){return this.ka()[this.Xb()]||null}get activePointerCue(){return this.ka()[this.Hd()]||null}onSetup(){this.a=T(),this.Fd=ce(Oe.state)}onAttach(t){Ve(this.a.textTracks,"chapters",this.Bh.bind(this)),c(this.Fl.bind(this))}onConnect(){P(()=>this.z.bind(this))}onDestroy(){this.Bh(null)}setRefs(t){var e;if(this.ja=t,(e=this.nf)==null||e.dispose(),this.ja.length===1){const s=this.ja[0];s.style.width="100%",s.style.setProperty("--chapter-fill","var(--slider-fill)"),s.style.setProperty("--chapter-progress","var(--slider-progress)")}else this.ja.length>0&&Re(()=>this.Gl(),this.nf=zi())}Bh(t){u(this.Gd)!==t&&(this.z(),this.Gd.set(t))}z(){var t;this.ja=[],this.ka.set([]),this.Xb.set(-1),this.Hd.set(-1),this.Sc=0,(t=this.nf)==null||t.dispose()}Gl(){this.ja.length&&c(this.Hl.bind(this))}Hl(){const{hidden:t}=this.Fd;t()||(c(this.Il.bind(this)),c(this.Jl.bind(this)),c(this.Kl.bind(this)),c(this.Ll.bind(this)))}Il(){const t=this.ka();if(!t.length)return;let e,{clipStartTime:s,clipEndTime:i}=this.a.$state,a=s(),n=i()||t[t.length-1].endTime,r=n-a,o=100;for(let d=0;do?this.of(o,l,100):l0&&e<100),$(t,"data-ended",e===100))}Ch(t,e){let s=0,i=this.ka();if(e===0)return 0;if(e===100)return i.length-1;let{clipStartTime:a}=this.a.$state,n=a(),r=this.qf(i);for(let o=t;o=0&&s<100)return o;return 0}Ll(){this.Ml(this.Nl())}Ol(){const{bufferedEnd:t,duration:e}=this.a.$state;return M(Math.min(t()/Math.max(e(),1),1),3)*100}qf(t){var i;const{clipEndTime:e}=this.a.$state,s=e();return s>0?s:((i=t[t.length-1])==null?void 0:i.endTime)||0}pf(t,e,s,i){if(this.ka().length===0)return 0;const n=i-s,r=Math.max(0,t.startTime-s),o=Math.min(i,t.endTime)-s,d=r/n,l=d*100,p=Math.min(1,d+(o-r)/n)*100;return Math.max(0,M(e>=p?100:(e-l)/(p-l)*100,3))}Pl(t){let e=[],{clipStartTime:s,clipEndTime:i,duration:a}=this.a.$state,n=s(),r=i()||1/0;t=t.filter(l=>l.startTime<=r&&l.endTime>=n);const o=t[0];o&&o.startTime>n&&e.push(new window.VTTCue(n,o.startTime,""));for(let l=0;l0&&e.push(new window.VTTCue(p.endTime,p.endTime+b,""))}}const d=t[t.length-1];if(d){e.push(d);const l=a();l>=0&&l-d.endTime>1&&e.push(new window.VTTCue(d.endTime,a(),""))}return e}Fl(){const{source:t}=this.a.$state;t(),this.pc()}pc(){if(!this.scope)return;const{disabled:t}=this.$props;if(t()){this.ka.set([]),this.Xb.set(0),this.Sc=0;return}const e=this.Gd();if(e){const s=this.Id.bind(this);s(),P(m(e,"add-cue",s)),P(m(e,"remove-cue",s)),c(this.Ql.bind(this))}return this.yb=this.Rl(),this.yb&&c(this.Sl.bind(this)),()=>{this.yb&&(this.yb.textContent="",this.yb=null)}}Ql(){this.a.$state.duration(),this.Id()}Sl(){const t=this.activePointerCue||this.activeCue;this.yb&&(this.yb.textContent=(t==null?void 0:t.text)||"")}Tl(){let t=this.el;for(;t&&t.getAttribute("role")!=="slider";)t=t.parentElement;return t}Rl(){const t=this.Tl();return t?t.querySelector('[data-part="chapter-title"]'):null}};fs.props={disabled:!1};let ft=fs;de([k],ft.prototype,"cues");de([k],ft.prototype,"activeCue");de([k],ft.prototype,"activePointerCue");de([C],ft.prototype,"setRefs");const D=ht();function An(h,t){const e=ya(h,t);for(const{el:s,top:i,left:a}of e)s.scroll({top:i,left:a,behavior:t.behavior})}function En(h,t={}){An(h,{scrollMode:"if-needed",block:"center",inline:"center",...t})}const Cn=["a[href]","[tabindex]","input","select","button"].map(h=>`${h}:not([aria-hidden='true'])`).join(","),qn=new Set(["Escape","Tab","ArrowUp","ArrowDown","Home","PageUp","End","PageDown","Enter"," "]);class On{constructor(t){this.j=t,this.Tc=-1,this.Sa=null,this.ra=[]}get A(){return this.ra}Ul(t){m(t,"focus",this.Ec.bind(this)),this.Sa=t,P(()=>{this.Sa=null})}yd(){this.Sa&&(this.Ha(),m(this.Sa,"keyup",this.hc.bind(this)),m(this.Sa,"keydown",this.ic.bind(this)),P(()=>{this.Tc=-1,this.ra=[]}))}Ha(){this.Tc=0,this.ra=this.Vl()}Eh(t=this.Fh()){const e=this.ra[t];e&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{En(e,{behavior:"smooth",boundary:s=>!s.hasAttribute("data-root")})})})}Gh(t=!0){const e=this.Fh();this.Yb(e>=0?e:0,t)}Yb(t,e=!0){var s;this.Tc=t,this.ra[t]?(this.ra[t].focus({preventScroll:!0}),e&&this.Eh(t)):(s=this.Sa)==null||s.focus({preventScroll:!0})}Fh(){return this.ra.findIndex(t=>document.activeElement===t||t.getAttribute("role")==="menuitemradio"&&t.getAttribute("aria-checked")==="true")}Ec(){this.Tc>=0||(this.Ha(),this.Gh())}Hh(t){const e=t.target;if(pa(t)&&e instanceof Element){const s=e.getAttribute("role");return!/a|input|select|button/.test(e.localName)&&!s}return qn.has(t.key)}hc(t){this.Hh(t)&&(t.stopPropagation(),t.preventDefault())}ic(t){if(this.Hh(t))switch(t.stopPropagation(),t.preventDefault(),t.key){case"Escape":this.j.Wl(t);break;case"Tab":this.Yb(this.rf(t.shiftKey?-1:1));break;case"ArrowUp":this.Yb(this.rf(-1));break;case"ArrowDown":this.Yb(this.rf(1));break;case"Home":case"PageUp":this.Yb(0);break;case"End":case"PageDown":this.Yb(this.ra.length-1);break}}rf(t){var s;let e=this.Tc;do e=(e+t+this.ra.length)%this.ra.length;while(((s=this.ra[e])==null?void 0:s.offsetParent)===null);return e}Vl(){if(!this.Sa)return[];const t=this.Sa.querySelectorAll(Cn),e=[],s=i=>i.getAttribute("role")==="menu";for(const i of t)Tt(i)&&i.offsetParent!==null&&Ei(this.Sa,i,s)&&e.push(i);return e}}var Dn=Object.defineProperty,Mn=Object.getOwnPropertyDescriptor,Ot=(h,t,e,s)=>{for(var i=Mn(t,e),a=h.length-1,n;a>=0;a--)(n=h[a])&&(i=n(t,e,i)||i);return i&&Dn(t,e,i),i};let Ln=0;const ms=class ms extends y{constructor(){super(),this.T=w(!1),this.Ed=w(!1),this.M=w(null),this.q=w(null),this.Vc=new Set,this.Jd=null,this.Ld=!1,this.Ih=w(!1),this.Md=new Set,this.zf=!1,this.im=this.jm.bind(this),this.Cf=!1,this.gm=this.km.bind(this),this.hm=this.lm.bind(this),this.pa=mt(()=>{const e=u(this.q);if(!e)return;let s=0,i=getComputedStyle(e),a=[...e.children];for(const n of["paddingTop","paddingBottom","borderTopWidth","borderBottomWidth"])s+=parseFloat(i[n])||0;for(const n of a)if(Tt(n)&&n.style.display==="contents")a.push(...n.children);else if(n.nodeType===3)s+=parseFloat(getComputedStyle(n).fontSize);else if(Tt(n)){if(!fa(n))continue;const r=getComputedStyle(n);s+=n.offsetHeight+(parseFloat(r.marginTop)||0)+(parseFloat(r.marginBottom)||0)}Q(e,"--menu-height",s+"px")}),this.Bf=!1;const{showDelay:t}=this.$props;this.Kd=new Li({M:this.M,q:this.q,ih:t,yd:(e,s,i)=>{tt(e,n=>{this.T()?i(n):s(n)});const a=this.Xl();a&&tt(a,n=>{n.stopPropagation(),i(n)})},E:this.Yl.bind(this)})}get triggerElement(){return this.M()}get contentElement(){return this.q()}get isSubmenu(){return!!this.Uc}onSetup(){this.a=T();const t=++Ln;this.sf=`media-menu-${t}`,this.tf=`media-menu-button-${t}`,this.Zb=new On({Wl:this.close.bind(this)}),F(D)&&(this.Uc=O(D)),this.Zl(),this.setAttributes({"data-open":this.T,"data-root":!this.isSubmenu,"data-submenu":this.isSubmenu,"data-disabled":this.v.bind(this)}),H(D,{_l:this.M,q:this.q,T:this.T,_b:w(""),Um:!!this.Uc,gb:this.gb.bind(this),uf:this.uf.bind(this),vf:this.vf.bind(this),wf:this.wf.bind(this),xf:this.xf.bind(this),yf:this.yf.bind(this),$l:e=>{this.Md.add(e),P(()=>{this.Md.delete(e)})}})}onAttach(t){t.style.setProperty("display","contents")}onConnect(t){var e;c(this.am.bind(this)),this.isSubmenu&&((e=this.Uc)==null||e.yf(this))}onDestroy(){this.M.set(null),this.q.set(null),this.Jd=null,this.Md.clear()}Zl(){let t=-1,e=F($t)?O($t):null;H($t,{onDragStart:()=>{var s;(s=e==null?void 0:e.onDragStart)==null||s.call(e),window.clearTimeout(t),t=-1,this.Ld=!0},onDragEnd:()=>{var s;(s=e==null?void 0:e.onDragEnd)==null||s.call(e),t=window.setTimeout(()=>{this.Ld=!1,t=-1},300)}})}am(){const t=this.bm();this.isSubmenu||this.pa(),this.Jh(t),t&&(c(()=>{const{height:e}=this.a.$state,s=this.q();s&&Q(s,"--player-height",e()+"px")}),this.Zb.yd(),this.listen("pointerup",this.cm.bind(this)),m(window,"pointerup",this.dm.bind(this)))}uf(t){const e=t.el,s=this.isSubmenu,i=L(this.v.bind(this));x(e,"tabindex",s?"-1":"0"),x(e,"role",s?"menuitem":"button"),$(e,"id",this.tf),$(e,"aria-haspopup","menu"),$(e,"aria-expanded","false"),$(e,"data-root",!this.isSubmenu),$(e,"data-submenu",this.isSubmenu),c(()=>{$(e,"data-open",this.T()),$(e,"aria-disabled",i())}),this.M.set(e),P(()=>{this.M.set(null)})}vf(t){var a;const e=t.el;e.style.setProperty("display","none"),$(e,"id",this.sf),x(e,"role","menu"),x(e,"tabindex","-1"),$(e,"data-root",!this.isSubmenu),$(e,"data-submenu",this.isSubmenu),this.q.set(e),P(()=>this.q.set(null)),c(()=>$(e,"data-open",this.T())),this.Zb.Ul(e),this.Jh(!1);const i=this.em.bind(this);this.isSubmenu?(a=this.Uc)==null||a.$l(i):(t.listen("transitionstart",i),t.listen("transitionend",i),t.listen("animationend",this.pa),t.listen("vds-menu-resize",this.pa))}wf(t){this.Jd=t}Jh(t){const e=u(this.q);e&&$(e,"aria-hidden",Nt(!t))}xf(t){this.Ih.set(t)}Yl(t,e){var a,n,r,o,d,l;if(this.zf=Ai(e),e==null||e.stopPropagation(),this.T()===t)return;if(this.v()){t&&this.Kd.hide(e);return}(a=this.el)==null||a.dispatchEvent(new Event("vds-menu-resize",{bubbles:!0,composed:!0}));const s=this.M(),i=this.q();if(s&&($(s,"aria-controls",t&&this.sf),$(s,"aria-expanded",Nt(t))),i&&$(i,"aria-labelledby",t&&this.tf),this.T.set(t),this.fm(e),Z(),this.zf){t?i==null||i.focus():s==null||s.focus();for(const p of[this.el,i])p&&p.setAttribute("data-keyboard","")}else for(const p of[this.el,i])p&&p.removeAttribute("data-keyboard");if(this.dispatch(t?"open":"close",{trigger:e}),t)!this.isSubmenu&&this.a.activeMenu!==this&&((n=this.a.activeMenu)==null||n.close(e),this.a.activeMenu=this),(o=(r=this.Jd)==null?void 0:r.Af)==null||o.call(r,e);else{if(this.isSubmenu)for(const p of this.Vc)p.close(e);else this.a.activeMenu=null;(l=(d=this.Jd)==null?void 0:d.Vm)==null||l.call(d,e)}t&&requestAnimationFrame(this.Kh.bind(this))}Kh(){this.Bf||this.Cf||(this.Zb.Ha(),requestAnimationFrame(()=>{this.zf?this.Zb.Gh():this.Zb.Eh()}))}bm(){return!this.v()&&this.T()}v(){return this.Ed()||this.Ih()}gb(t){this.Ed.set(t)}cm(t){const e=this.q();this.Ld||e&&Rs(e,t)||t.stopPropagation()}dm(t){const e=this.q();this.Ld||e&&Rs(e,t)||this.close(t)}Xl(){var e;const t=(e=this.el)==null?void 0:e.querySelector('[data-part="close-target"]');return this.el&&t&&Ei(this.el,t,s=>s.getAttribute("role")==="menu")?t:null}fm(t){this.isSubmenu||(this.T()?this.a.remote.pauseControls(t):this.a.remote.resumeControls(t))}yf(t){this.Vc.add(t),m(t,"open",this.gm),m(t,"close",this.hm),P(this.im)}jm(t){this.Vc.delete(t)}km(t){var s;this.Cf=!0;const e=this.q();this.isSubmenu&&((s=this.triggerElement)==null||s.setAttribute("aria-hidden","true"));for(const i of this.Vc)if(i!==t.target)for(const a of[i.el,i.triggerElement])a==null||a.setAttribute("aria-hidden","true");if(e){const i=t.target.el;for(const a of e.children)a.contains(i)?a.setAttribute("data-open",""):a!==i&&a.setAttribute("data-hidden","")}}lm(t){var s;this.Cf=!1;const e=this.q();this.isSubmenu&&((s=this.triggerElement)==null||s.setAttribute("aria-hidden","false"));for(const i of this.Vc)for(const a of[i.el,i.triggerElement])a==null||a.setAttribute("aria-hidden","false");if(e)for(const i of e.children)i.removeAttribute("data-open"),i.removeAttribute("data-hidden")}em(t){const e=this.q();e&&t.propertyName==="height"&&(this.Bf=t.type==="transitionstart",$(e,"data-transition",this.Bf?"height":null),this.T()&&this.Kh());for(const s of this.Md)s(t)}open(t){u(this.T)||(this.Kd.show(t),Z())}close(t){u(this.T)&&(this.Kd.hide(t),Z())}};ms.props={showDelay:0};let nt=ms;Ot([k],nt.prototype,"triggerElement");Ot([k],nt.prototype,"contentElement");Ot([k],nt.prototype,"isSubmenu");Ot([C],nt.prototype,"open");Ot([C],nt.prototype,"close");var In=Object.defineProperty,jn=Object.getOwnPropertyDescriptor,Vn=(h,t,e,s)=>{for(var i=jn(t,e),a=h.length-1,n;a>=0;a--)(n=h[a])&&(i=n(t,e,i)||i);return i&&In(t,e,i),i};const bs=class bs extends y{constructor(){super(),this.Lh=w(null),new X}get expanded(){var t;return((t=this.n)==null?void 0:t.T())??!1}onSetup(){this.n=O(D)}onAttach(t){this.n.uf(this),c(this.Nc.bind(this)),x(t,"type","button")}onConnect(t){c(this.mm.bind(this)),this.Gc();const e=new MutationObserver(this.Gc.bind(this));e.observe(t,{attributeFilter:["data-part"],childList:!0,subtree:!0}),P(()=>e.disconnect()),tt(t,s=>{this.dispatch("select",{trigger:s})})}Nc(){this.n.xf(this.$props.disabled())}mm(){const t=this.Lh();t&&c(()=>{const e=this.n._b();e&&(t.textContent=e)})}Gc(){var e;const t=(e=this.el)==null?void 0:e.querySelector('[data-part="hint"]');this.Lh.set(t??null)}};bs.props={disabled:!1};let De=bs;Vn([k],De.prototype,"expanded");const gs=class gs extends y{constructor(){super(...arguments),this.G=null}onSetup(){this.a=T(),H(_t,{xb:this.nm.bind(this)})}onAttach(t){t.style.setProperty("display","contents")}onConnect(t){}onDestroy(){var t;(t=this.G)==null||t.remove(),this.G=null}nm(t){this.Mh(!1),this.G=t,Ht(()=>{Ht(()=>{this.connectScope&&c(this.Nc.bind(this))})})}Nc(){const{fullscreen:t}=this.a.$state,{disabled:e}=this.$props,s=e();this.Mh(s==="fullscreen"?!t():!s)}Mh(t){var i;if(!this.G)return;let e=this.om(this.$props.container());if(!e)return;const s=this.G.parentElement===e;$(this.G,"data-portal",t),t?s||(this.G.remove(),e.append(this.G)):s&&this.G.parentElement===e&&(this.G.remove(),(i=this.el)==null||i.append(this.G))}om(t){return Tt(t)?t:t?document.querySelector(t):document.body}};gs.props={container:null,disabled:!1};let gi=gs;const _t=ht(),ys=class ys extends y{constructor(){super(),new X;const{placement:t}=this.$props;this.setAttributes({"data-placement":t})}onAttach(t){if(this.n=O(D),this.n.vf(this),F(_t)){const e=O(_t);e&&(H(_t,null),e.xb(t),P(()=>e.xb(null)))}}onConnect(t){c(this.bf.bind(this))}bf(){if(!this.el)return;const t=this.$props.placement();if(t){Object.assign(this.el.style,{position:"absolute",top:0,left:0,width:"max-content"});const{offset:e,alignOffset:s}=this.$props;return Pi(this.el,this.Bd(),t,{offsetVarName:"media-menu",xOffset:s(),yOffset:e()})}else this.el.removeAttribute("style"),this.el.style.display="none"}Bd(){return this.n._l()}};ys.props={placement:null,offset:0,alignOffset:0};let yi=ys;const Me=ht();class lt extends G{constructor(){super(...arguments),this.$b=new Set,this.Ta=w(""),this.e=null,this.sm=this.E.bind(this)}get pm(){return Array.from(this.$b).map(t=>t.Ta())}get value(){return this.Ta()}set value(t){this.E(t)}onSetup(){H(Me,{add:this.qm.bind(this),remove:this.rm.bind(this)})}onAttach(t){F(D)||x(t,"role","radiogroup"),this.setAttributes({value:this.Ta})}onDestroy(){this.$b.clear()}qm(t){this.$b.has(t)||(this.$b.add(t),t.Nd=this.sm,t.Wc(t.Ta()===this.Ta()))}rm(t){t.Nd=null,this.$b.delete(t)}E(t,e){var n;const s=u(this.Ta);if(!t||t===s)return;const i=this.Nh(s),a=this.Nh(t);i==null||i.Wc(!1,e),a==null||a.Wc(!0,e),this.Ta.set(t),(n=this.l)==null||n.call(this,t,e)}Nh(t){for(const e of this.$b)if(t===u(e.Ta))return e;return null}}var Rn=Object.defineProperty,_n=Object.getOwnPropertyDescriptor,ji=(h,t,e,s)=>{for(var i=_n(t,e),a=h.length-1,n;a>=0;a--)(n=h[a])&&(i=n(t,e,i)||i);return i&&Rn(t,e,i),i};const $s=class $s extends y{get values(){return this.e.pm}get value(){return this.e.value}set value(t){this.e.value=t}constructor(){super(),this.e=new lt,this.e.l=this.l.bind(this)}onSetup(){c(this.N.bind(this))}N(){this.e.value=this.$props.value()}l(t,e){const s=this.createEvent("change",{detail:t,trigger:e});this.dispatch(s)}};$s.props={value:""};let Qt=$s;ji([k],Qt.prototype,"values");ji([k],Qt.prototype,"value");var Fn=Object.defineProperty,Hn=Object.getOwnPropertyDescriptor,Nn=(h,t,e,s)=>{for(var i=Hn(t,e),a=h.length-1,n;a>=0;a--)(n=h[a])&&(i=n(t,e,i)||i);return i&&Fn(t,e,i),i};const ks=class ks extends y{constructor(){super(),this.zb=w(!1),this.e={Ta:this.$props.value,Wc:this.Wc.bind(this),Nd:null},new X}get checked(){return this.zb()}onSetup(){this.setAttributes({value:this.$props.value,"data-checked":this.zb,"aria-checked":L(this.zb)})}onAttach(t){const e=F(D);x(t,"tabindex",e?"-1":"0"),x(t,"role",e?"menuitemradio":"radio"),c(this.N.bind(this))}onConnect(t){this.tm(),tt(t,this.r.bind(this)),P(this.Fa.bind(this))}Fa(){Re(()=>{O(Me).remove(this.e)},this.connectScope)}tm(){O(Me).add(this.e)}N(){var s,i;const{value:t}=this.$props,e=t();u(this.zb)&&((i=(s=this.e).Nd)==null||i.call(s,e))}r(t){var e,s;u(this.zb)||(this.E(!0,t),this.um(t),(s=(e=this.e).Nd)==null||s.call(e,u(this.$props.value),t))}Wc(t,e){u(this.zb)!==t&&this.E(t,e)}E(t,e){this.zb.set(t),this.dispatch("change",{detail:t,trigger:e})}um(t){this.dispatch("select",{trigger:t})}};ks.props={value:""};let Le=ks;Nn([k],Le.prototype,"checked");var Un=Object.defineProperty,Gn=Object.getOwnPropertyDescriptor,Ke=(h,t,e,s)=>{for(var i=Gn(t,e),a=h.length-1,n;a>=0;a--)(n=h[a])&&(i=n(t,e,i)||i);return i&&Un(t,e,i),i};const ws=class ws extends y{constructor(){super(),this.J=w(null),this.B=w([]),this.e=new lt,this.e.l=this.l.bind(this)}get value(){return this.e.value}get disabled(){var t;return!((t=this.B())!=null&&t.length)}onSetup(){this.a=T(),F(D)&&(this.n=O(D));const{thumbnails:t}=this.$props;this.setAttributes({"data-thumbnails":()=>!!t()})}onAttach(t){var e;(e=this.n)==null||e.wf({Af:this.Af.bind(this)})}getOptions(){const{clipStartTime:t,clipEndTime:e}=this.a.$state,s=t(),i=e()||1/0;return this.B().map((a,n)=>({cue:a,value:n.toString(),label:a.text,startTime:le(Math.max(0,a.startTime-s)),duration:Wt(Math.min(i,a.endTime)-Math.max(s,a.startTime))}))}Af(){u(()=>this.Qb())}onConnect(t){c(this.Qb.bind(this)),c(this.sa.bind(this)),c(this.vm.bind(this)),Ve(this.a.textTracks,"chapters",this.J.set)}vm(){const t=this.J();if(!t)return;const e=this.Id.bind(this,t);return e(),m(t,"add-cue",e),m(t,"remove-cue",e),()=>{this.B.set([])}}Id(t){const{clipStartTime:e,clipEndTime:s}=this.a.$state,i=e(),a=s()||1/0;this.B.set([...t.cues].filter(n=>n.startTime<=a&&n.endTime>=i))}Qb(){var d;if(!((d=this.n)!=null&&d.T()))return;if(!this.J()){this.e.value="-1";return}const{realCurrentTime:e,clipStartTime:s,clipEndTime:i}=this.a.$state,a=s(),n=i()||1/0,r=e(),o=this.B().findIndex(l=>Bi(l,r));this.e.value=o.toString(),o>=0&&Ht(()=>{if(!this.connectScope)return;const l=this.B()[o],p=this.el.querySelector("[aria-checked='true']"),f=Math.max(a,l.startTime),b=Math.min(n,l.endTime)-f,g=Math.max(0,r-f)/b*100;p&&Q(p,"--progress",M(g,3)+"%")})}sa(){var t;(t=this.n)==null||t.gb(this.disabled)}l(t,e){if(this.disabled||!e)return;const s=+t,i=this.B(),{clipStartTime:a}=this.a.$state;W(s)&&(i!=null&&i[s])&&(this.e.value=s.toString(),this.a.remote.seek(i[s].startTime-a(),e),this.dispatch("change",{detail:i[s],trigger:e}))}};ws.props={thumbnails:null};let Pt=ws;Ke([k],Pt.prototype,"value");Ke([k],Pt.prototype,"disabled");Ke([C],Pt.prototype,"getOptions");var Kn=Object.defineProperty,Wn=Object.getOwnPropertyDescriptor,We=(h,t,e,s)=>{for(var i=Wn(t,e),a=h.length-1,n;a>=0;a--)(n=h[a])&&(i=n(t,e,i)||i);return i&&Kn(t,e,i),i};const Ts=class Ts extends y{get value(){return this.e.value}get disabled(){const{audioTracks:t}=this.a.$state;return t().length<=1}constructor(){super(),this.e=new lt,this.e.l=this.l.bind(this)}onSetup(){this.a=T(),F(D)&&(this.n=O(D))}onConnect(t){c(this.N.bind(this)),c(this.sa.bind(this)),c(this.Ua.bind(this))}getOptions(){const{audioTracks:t}=this.a.$state;return t().map(e=>({track:e,label:e.label,value:e.label.toLowerCase()}))}N(){this.e.value=this.Y()}Ua(){var i;const{emptyLabel:t}=this.$props,{audioTrack:e}=this.a.$state,s=e();(i=this.n)==null||i._b.set((s==null?void 0:s.label)??t())}sa(){var t;(t=this.n)==null||t.gb(this.disabled)}Y(){const{audioTrack:t}=this.a.$state,e=t();return e?e.label.toLowerCase():""}l(t,e){if(this.disabled)return;const s=this.a.audioTracks.toArray().findIndex(i=>i.label.toLowerCase()===t);if(s>=0){const i=this.a.audioTracks[s];this.a.remote.changeAudioTrack(s,e),this.dispatch("change",{detail:i,trigger:e})}}};Ts.props={emptyLabel:"Default"};let xt=Ts;We([k],xt.prototype,"value");We([k],xt.prototype,"disabled");We([C],xt.prototype,"getOptions");var Qn=Object.defineProperty,Xn=Object.getOwnPropertyDescriptor,Qe=(h,t,e,s)=>{for(var i=Xn(t,e),a=h.length-1,n;a>=0;a--)(n=h[a])&&(i=n(t,e,i)||i);return i&&Qn(t,e,i),i};const Yn=[1,1.25,1.5,1.75,2,2.5,3,4],vs=class vs extends y{get value(){return this.e.value}get disabled(){const{gains:t}=this.$props,{canSetAudioGain:e}=this.a.$state;return!e()||t().length===0}constructor(){super(),this.e=new lt,this.e.l=this.l.bind(this)}onSetup(){this.a=T(),F(D)&&(this.n=O(D))}onConnect(t){c(this.N.bind(this)),c(this.Ua.bind(this)),c(this.sa.bind(this))}getOptions(){const{gains:t,normalLabel:e}=this.$props;return t().map(s=>({label:s===1||s===null?e:String(s*100)+"%",value:s.toString()}))}N(){this.e.value=this.Y()}Ua(){var i;const{normalLabel:t}=this.$props,{audioGain:e}=this.a.$state,s=e();(i=this.n)==null||i._b.set(s===1||s==null?t():String(s*100)+"%")}sa(){var t;(t=this.n)==null||t.gb(this.disabled)}Y(){var e;const{audioGain:t}=this.a.$state;return((e=t())==null?void 0:e.toString())??"1"}l(t,e){if(this.disabled)return;const s=+t;this.a.remote.changeAudioGain(s,e),this.dispatch("change",{detail:s,trigger:e})}};vs.props={normalLabel:"Disabled",gains:Yn};let St=vs;Qe([k],St.prototype,"value");Qe([k],St.prototype,"disabled");Qe([C],St.prototype,"getOptions");var zn=Object.defineProperty,Bn=Object.getOwnPropertyDescriptor,Xe=(h,t,e,s)=>{for(var i=Bn(t,e),a=h.length-1,n;a>=0;a--)(n=h[a])&&(i=n(t,e,i)||i);return i&&zn(t,e,i),i};const Ps=class Ps extends y{get value(){return this.e.value}get disabled(){const{hasCaptions:t}=this.a.$state;return!t()}constructor(){super(),this.e=new lt,this.e.l=this.l.bind(this)}onSetup(){this.a=T(),F(D)&&(this.n=O(D))}onConnect(t){var e;(e=super.onConnect)==null||e.call(this,t),c(this.N.bind(this)),c(this.sa.bind(this)),c(this.Ua.bind(this))}getOptions(){const{offLabel:t}=this.$props,{textTracks:e}=this.a.$state;return[{value:"off",label:t},...e().filter(V).map(s=>({track:s,label:s.label,value:this.Df(s)}))]}N(){this.e.value=this.Y()}Ua(){var i;const{offLabel:t}=this.$props,{textTrack:e}=this.a.$state,s=e();(i=this.n)==null||i._b.set(s&&V(s)&&s.mode==="showing"?s.label:t())}sa(){var t;(t=this.n)==null||t.gb(this.disabled)}Y(){const{textTrack:t}=this.a.$state,e=t();return e&&V(e)&&e.mode==="showing"?this.Df(e):"off"}l(t,e){if(this.disabled)return;if(t==="off"){const i=this.a.textTracks.selected;if(i){const a=this.a.textTracks.indexOf(i);this.a.remote.changeTextTrackMode(a,"disabled",e),this.dispatch("change",{detail:null,trigger:e})}return}const s=this.a.textTracks.toArray().findIndex(i=>this.Df(i)===t);if(s>=0){const i=this.a.textTracks[s];this.a.remote.changeTextTrackMode(s,"showing",e),this.dispatch("change",{detail:i,trigger:e})}}Df(t){return t.id+":"+t.kind+"-"+t.label.toLowerCase()}};Ps.props={offLabel:"Off"};let At=Ps;Xe([k],At.prototype,"value");Xe([k],At.prototype,"disabled");Xe([C],At.prototype,"getOptions");var Jn=Object.defineProperty,Zn=Object.getOwnPropertyDescriptor,Ye=(h,t,e,s)=>{for(var i=Zn(t,e),a=h.length-1,n;a>=0;a--)(n=h[a])&&(i=n(t,e,i)||i);return i&&Jn(t,e,i),i};const tr=[.25,.5,.75,1,1.25,1.5,1.75,2],xs=class xs extends y{get value(){return this.e.value}get disabled(){const{rates:t}=this.$props,{canSetPlaybackRate:e}=this.a.$state;return!e()||t().length===0}constructor(){super(),this.e=new lt,this.e.l=this.l.bind(this)}onSetup(){this.a=T(),F(D)&&(this.n=O(D))}onConnect(t){c(this.N.bind(this)),c(this.Ua.bind(this)),c(this.sa.bind(this))}getOptions(){const{rates:t,normalLabel:e}=this.$props;return t().map(s=>({label:s===1?e:s+"×",value:s.toString()}))}N(){this.e.value=this.Y()}Ua(){var i;const{normalLabel:t}=this.$props,{playbackRate:e}=this.a.$state,s=e();(i=this.n)==null||i._b.set(s===1?t():s+"×")}sa(){var t;(t=this.n)==null||t.gb(this.disabled)}Y(){const{playbackRate:t}=this.a.$state;return t().toString()}l(t,e){if(this.disabled)return;const s=+t;this.a.remote.changePlaybackRate(s,e),this.dispatch("change",{detail:s,trigger:e})}};xs.props={normalLabel:"Normal",rates:tr};let Et=xs;Ye([k],Et.prototype,"value");Ye([k],Et.prototype,"disabled");Ye([C],Et.prototype,"getOptions");var er=Object.defineProperty,sr=Object.getOwnPropertyDescriptor,ze=(h,t,e,s)=>{for(var i=sr(t,e),a=h.length-1,n;a>=0;a--)(n=h[a])&&(i=n(t,e,i)||i);return i&&er(t,e,i),i};const Ss=class Ss extends y{constructor(){super(),this.Rc=at(()=>{const{sort:t}=this.$props,{qualities:e}=this.a.$state;return Si(e(),t()==="descending")}),this.e=new lt,this.e.l=this.l.bind(this)}get value(){return this.e.value}get disabled(){const{canSetQuality:t,qualities:e}=this.a.$state;return!t()||e().length<=1}onSetup(){this.a=T(),F(D)&&(this.n=O(D))}onConnect(t){c(this.N.bind(this)),c(this.sa.bind(this)),c(this.Ua.bind(this))}getOptions(){const{autoLabel:t,hideBitrate:e}=this.$props;return[{value:"auto",label:t},...this.Rc().map(s=>{const i=s.bitrate&&s.bitrate>=0?`${M(s.bitrate/1e6,2)} Mbps`:null;return{quality:s,label:s.height+"p",value:this.Ef(s),bitrate:()=>e()?null:i}})]}N(){this.e.value=this.Y()}Ua(){var a;const{autoLabel:t}=this.$props,{autoQuality:e,quality:s}=this.a.$state,i=s()?s().height+"p":"";(a=this.n)==null||a._b.set(e()?t()+(i?` (${i})`:""):i)}sa(){var t;(t=this.n)==null||t.gb(this.disabled)}l(t,e){if(this.disabled)return;if(t==="auto"){this.a.remote.changeQuality(-1,e),this.dispatch("change",{detail:"auto",trigger:e});return}const{qualities:s}=this.a.$state,i=u(s).findIndex(a=>this.Ef(a)===t);if(i>=0){const a=u(s)[i];this.a.remote.changeQuality(i,e),this.dispatch("change",{detail:a,trigger:e})}}Y(){const{quality:t,autoQuality:e}=this.a.$state;if(e())return"auto";const s=t();return s?this.Ef(s):"auto"}Ef(t){return t.height+"_"+t.bitrate}};Ss.props={autoLabel:"Auto",hideBitrate:!1,sort:"descending"};let Ct=Ss;ze([k],Ct.prototype,"value");ze([k],Ct.prototype,"disabled");ze([C],Ct.prototype,"getOptions");const As=class As extends y{constructor(){super(...arguments),this.p=null,this.Ab=0,this.Oh=-1}onSetup(){this.a=T();const{event:t,action:e}=this.$props;this.setAttributes({event:t,action:e})}onAttach(t){t.setAttribute("data-media-gesture",""),t.style.setProperty("pointer-events","none")}onConnect(t){var e;this.p=(e=this.a.player.el)==null?void 0:e.querySelector("[data-media-provider]"),c(this.wm.bind(this))}wm(){let t=this.$props.event(),e=this.$props.disabled();!this.p||!t||e||(/^dbl/.test(t)&&(t=t.split(/^dbl/)[1]),(t==="pointerup"||t==="pointerdown")&&this.a.$state.pointer()==="coarse"&&(t=t==="pointerup"?"touchend":"touchstart"),m(this.p,t,this.xm.bind(this),{passive:!1}))}xm(t){if(this.$props.disabled()||_s(t)&&(t.button!==0||this.a.activeMenu)||pe(t)&&this.a.activeMenu||_e(t)||!this.ym(t))return;t.MEDIA_GESTURE=!0,t.preventDefault();const e=u(this.$props.event);if(!(e==null?void 0:e.startsWith("dbl")))this.Ab===0&&setTimeout(()=>{this.Ab===1&&this.Ph(t)},250);else if(this.Ab===1){queueMicrotask(()=>this.Ph(t)),clearTimeout(this.Oh),this.Ab=0;return}this.Ab===0&&(this.Oh=window.setTimeout(()=>{this.Ab=0},275)),this.Ab++}Ph(t){this.el.setAttribute("data-triggered",""),requestAnimationFrame(()=>{this.zm()&&this.Am(u(this.$props.action),t),requestAnimationFrame(()=>{this.el.removeAttribute("data-triggered")})})}ym(t){if(!this.el)return!1;if(_s(t)||Ji(t)||pe(t)){const e=pe(t)?t.changedTouches[0]??t.touches[0]:void 0,s=(e==null?void 0:e.clientX)??t.clientX,i=(e==null?void 0:e.clientY)??t.clientY,a=this.el.getBoundingClientRect(),n=i>=a.top&&i<=a.bottom&&s>=a.left&&s<=a.right;return t.type.includes("leave")?!n:n}return!0}zm(){const t=this.a.player.el.querySelectorAll("[data-media-gesture][data-triggered]");return Array.from(t).sort((e,s)=>+getComputedStyle(s).zIndex-+getComputedStyle(e).zIndex)[0]===this.el}Am(t,e){if(!t)return;const s=new R("will-trigger",{detail:t,cancelable:!0,trigger:e});if(this.dispatchEvent(s),s.defaultPrevented)return;const[i,a]=t.replace(/:([a-z])/,"-$1").split(":");t.includes(":fullscreen")?this.a.remote.toggleFullscreen("prefer-media",e):t.includes("seek:")?this.a.remote.seek(u(this.a.$state.currentTime)+(+a||0),e):this.a.remote[Zi(i)](e),this.dispatch("trigger",{detail:t,trigger:e})}};As.props={disabled:!1,event:void 0,action:void 0};let $i=As;class ir{constructor(t){this.ca=t,this.priority=10,this.J=null,this.Ya=ma()}attach(){}canRender(){return!0}detach(){this.Ya.empty(),this.ca.reset(),this.J=null}changeTrack(t){!t||this.J===t||(this.Ya.empty(),t.readyState<2?(this.ca.reset(),this.Ya.add(m(t,"load",()=>this.Qh(t),{once:!0}))):this.Qh(t),this.Ya.add(m(t,"add-cue",e=>{this.ca.addCue(e.detail)}),m(t,"remove-cue",e=>{this.ca.removeCue(e.detail)})),this.J=t)}Qh(t){this.ca.changeTrack({cues:[...t.cues],regions:[...t.regions]})}}const wt=class wt extends y{constructor(){super(...arguments),this.ac=-1}get L(){return wt.L}onSetup(){this.a=T(),this.setAttributes({"aria-hidden":L(this.Tb.bind(this))})}onAttach(t){t.style.setProperty("pointer-events","none")}onConnect(t){this.L()||U(()=>import("./prod-OBrTmKrB.js").then(e=>e.d),__vite__mapDeps([14,2])).then(e=>this.L.set(e)),c(this.Rh.bind(this))}Tb(){const{textTrack:t,remotePlaybackState:e,iOSControls:s}=this.a.$state,i=t();return s()||e()==="connected"||!i||!V(i)}Rh(){if(!this.L())return;const{viewType:t}=this.a.$state;return t()==="audio"?this.Cm():this.Dm()}Cm(){return c(this.pc.bind(this)),this.Gn(null),()=>{this.el.textContent=""}}pc(){if(this.Tb())return;this.Sh();const{textTrack:t}=this.a.$state;m(t(),"cue-change",this.Sh.bind(this)),c(this.Em.bind(this))}Sh(){this.el.textContent="",this.ac>=0&&this.Ff();const{realCurrentTime:t,textTrack:e}=this.a.$state,{renderVTTCueString:s}=this.L(),i=u(t),a=u(e).activeCues;for(const n of a){const r=this.Th(),o=this.Uh();o.innerHTML=s(n,i),r.append(o),this.el.append(o)}}Em(){const{realCurrentTime:t}=this.a.$state,{updateTimedVTTCueNodes:e}=this.L();e(this.el,t())}Dm(){const{CaptionsRenderer:t}=this.L(),e=new t(this.el),s=new ir(e);return this.a.textRenderers.add(s),c(this.Fm.bind(this,e)),c(this.Gm.bind(this,e)),this.Gn(e),()=>{this.el.textContent="",this.a.textRenderers.remove(s),e.destroy()}}Fm(t){t.dir=this.$props.textDir()}Gm(t){var i;if(this.Tb())return;const{realCurrentTime:e,textTrack:s}=this.a.$state;t.currentTime=e(),this.ac>=0&&((i=s())!=null&&i.activeCues[0])&&this.Ff()}Gn(t){const e=this.a.player;if(!e)return;const s=this.Bm.bind(this,t);m(e,"vds-font-change",s)}Bm(t){var s;if(this.ac>=0){this.Vh();return}const{textTrack:e}=this.a.$state;(s=e())!=null&&s.activeCues[0]?t==null||t.update(!0):this.Hm()}Hm(){var s,i;const t=this.Th();$(t,"data-example","");const e=this.Uh();$(e,"data-example",""),e.textContent=this.$props.exampleText(),t==null||t.append(e),(s=this.el)==null||s.append(t),(i=this.el)==null||i.setAttribute("data-example",""),this.Vh()}Vh(){window.clearTimeout(this.ac),this.ac=window.setTimeout(this.Ff.bind(this),2500)}Ff(){var t,e;(t=this.el)==null||t.removeAttribute("data-example"),(e=this.el)!=null&&e.querySelector("[data-example]")&&(this.el.textContent=""),this.ac=-1}Th(){const t=document.createElement("div");return $(t,"data-part","cue-display"),t}Uh(){const t=document.createElement("div");return $(t,"data-part","cue"),t}};wt.props={textDir:"ltr",exampleText:"Captions look like this."},wt.L=w(null);let ki=wt;const he=class he extends y{constructor(){super(...arguments),this.Xh=""}onSetup(){this.a=T(),this.Mb(),this.Wh(),this.Ca(),this.Ea()}onAttach(t){t.style.setProperty("pointer-events","none"),c(this.kf.bind(this)),c(this.Mb.bind(this)),c(this.Wh.bind(this)),c(this.Ca.bind(this)),c(this.Ea.bind(this));const{started:e}=this.a.$state;this.setAttributes({"data-visible":()=>!e()&&!this.$state.hidden(),"data-loading":this.Pc.bind(this),"data-error":this.fb.bind(this),"data-hidden":this.$state.hidden})}onConnect(t){c(this.Im.bind(this)),c(this.Ma.bind(this))}fb(){const{error:t}=this.$state;return!it(t())}Im(){const{canLoadPoster:t,poster:e}=this.a.$state;!t()&&e()&&qt(e(),"preconnect")}Ea(){const{src:t}=this.$props,{poster:e,nativeControls:s}=this.a.$state;this.el&&$(this.el,"display",s()?"none":null),this.$state.hidden.set(this.fb()||!(t()||e())||s())}Pc(){const{loading:t,hidden:e}=this.$state;return!e()&&t()}kf(){const t=this.$state.img();t&&(m(t,"load",this.gd.bind(this)),m(t,"error",this.Q.bind(this)))}Mb(){const{poster:t}=this.a.$props,{canLoadPoster:e,providedPoster:s,inferredPoster:i}=this.a.$state,a=this.$props.src()||"",n=a||t()||i();this.Xh===s()&&s.set(a),this.$state.src.set(e()&&n.length?n:null),this.Xh=a}Wh(){const{src:t}=this.$props,{alt:e}=this.$state,{poster:s}=this.a.$state;e.set(t()||s()?this.$props.alt():null)}Ca(){const{crossOrigin:t}=this.$props,{crossOrigin:e}=this.$state,{crossOrigin:s,poster:i}=this.a.$state,a=t()!==null?t():s();e.set(/ytimg\.com|vimeo/.test(i()||"")?null:a===!0?"anonymous":a)}Ma(){const{loading:t,error:e}=this.$state,{canLoadPoster:s,poster:i}=this.a.$state;t.set(s()&&!!i()),e.set(null)}gd(){const{loading:t,error:e}=this.$state;t.set(!1),e.set(null)}Q(t){const{loading:e,error:s}=this.$state;e.set(!1),s.set(t)}};he.props={src:null,alt:null,crossOrigin:null},he.state=new rt({img:null,src:null,alt:null,crossOrigin:null,loading:!0,error:null,hidden:!1});let wi=he;const oe=class oe extends y{constructor(){super(...arguments),this.Xc=w(null),this.Lc=w(!0),this.Mc=w(!0)}onSetup(){this.a=T(),this.Yh();const{type:t}=this.$props;this.setAttributes({"data-type":t,"data-remainder":this.Zh.bind(this)}),new Ii({callback:this.gf.bind(this)}).attach(this)}onAttach(t){t.hasAttribute("role")||c(this.Jm.bind(this)),c(this.Yh.bind(this))}onConnect(t){P(xi(t,this.Lc.set)),c(this.Ea.bind(this)),c(this.Km.bind(this))}gf(t){this.Mc.set(t[0].isIntersecting)}Ea(){const{hidden:t}=this.$props;this.$state.hidden.set(t()||!this.Lc()||!this.Mc())}Km(){if(!this.$props.toggle()){this.Xc.set(null);return}this.el&&tt(this.el,this.Lm.bind(this))}Yh(){const{hidden:t,timeText:e}=this.$state,{duration:s}=this.a.$state;if(t())return;const{type:i,padHours:a,padMinutes:n,showHours:r}=this.$props,o=this.Mm(i()),d=s(),l=this.Zh();if(!Number.isFinite(o+d)){e.set("LIVE");return}const p=l?Math.max(0,d-o):o,f=le(p,{padHrs:a(),padMins:n(),showHrs:r()});e.set((l?"-":"")+f)}Jm(){if(!this.el)return;const{toggle:t}=this.$props;$(this.el,"role",t()?"timer":null),$(this.el,"tabindex",t()?0:null)}Mm(t){const{bufferedEnd:e,duration:s,currentTime:i}=this.a.$state;switch(t){case"buffered":return e();case"duration":return s();default:return i()}}Zh(){return this.$props.remainder()&&this.Xc()!==!1}Lm(t){if(t.preventDefault(),this.Xc()===null){this.Xc.set(!this.$props.remainder());return}this.Xc.set(e=>!e)}};oe.props={type:"current",showHours:!1,padHours:null,padMinutes:null,remainder:!1,toggle:!1,hidden:!1},oe.state=new rt({timeText:"",hidden:!1});let Ti=oe;export{ei as A,Qt as B,ai as C,Ce as D,fi as E,X as F,$i as G,mi as H,bi as I,ft as J,bt as K,ci as L,Ae as M,wi as N,wa as O,hi as P,Ct as Q,Le as R,oi as S,di as T,K as U,pi as V,me as W,rr as a,De as b,Ti as c,ni as d,ri as e,ii as f,xt as g,At as h,nt as i,yi as j,Et as k,qe as l,Oe as m,ui as n,vt as o,ki as p,Bs as q,Js as r,si as s,Rt as t,Ee as u,Zs as v,ti as w,gi as x,Pt as y,St as z}; +function __vite__mapDeps(indexes) { + if (!__vite__mapDeps.viteFileDeps) { + __vite__mapDeps.viteFileDeps = ["assets/vidstack-audio-JFiSukRr.js","assets/vidstack-CSaHpIQV-AmLqxEmn.js","assets/app-8OZtYazS.js","assets/vidstack-DqOrqs52-JpMSlmyh.js","assets/vidstack-D6ttsqNA-rfrnkY7F.js","assets/vidstack-video-v9KwwqnU.js","assets/vidstack-dash-vJmpB4uO.js","assets/vidstack-hls-9FnwyM-K.js","assets/vidstack-vimeo-bBnyvV-m.js","assets/vidstack-CW1cJiXX-4tDZFFJS.js","assets/vidstack-BInq9zTH-fGAq8GWc.js","assets/vidstack-youtube-M8CpvVcm.js","assets/vidstack-DscYSLiW-_wDIXJ0I.js","assets/vidstack-g0pCq79a-YiUNTYEP.js","assets/prod-OBrTmKrB.js"] + } + return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) +} diff --git a/assets/vidstack-D6ttsqNA-rfrnkY7F.js b/assets/vidstack-D6ttsqNA-rfrnkY7F.js new file mode 100644 index 000000000..5b9bed287 --- /dev/null +++ b/assets/vidstack-D6ttsqNA-rfrnkY7F.js @@ -0,0 +1 @@ +import{an as i,k as s}from"./vidstack-CSaHpIQV-AmLqxEmn.js";class r{constructor(a){this.La=a}Xa(){i(this.ya)&&this.fg()}$(){s(this.ya)&&window.cancelAnimationFrame(this.ya),this.ya=void 0}fg(){this.ya=window.requestAnimationFrame(()=>{i(this.ya)||(this.La(),this.fg())})}}export{r as R}; diff --git a/assets/vidstack-DQ6dSZwe-FUyOJuAD.js b/assets/vidstack-DQ6dSZwe-FUyOJuAD.js new file mode 100644 index 000000000..677fdb3c5 --- /dev/null +++ b/assets/vidstack-DQ6dSZwe-FUyOJuAD.js @@ -0,0 +1 @@ +var C=' ';export{C as I}; diff --git a/assets/vidstack-DXxIKXmd-pmgBYJSv.js b/assets/vidstack-DXxIKXmd-pmgBYJSv.js new file mode 100644 index 000000000..22185be4d --- /dev/null +++ b/assets/vidstack-DXxIKXmd-pmgBYJSv.js @@ -0,0 +1 @@ +var L='',p='',o='',t='',a='',n='',l='',r='',e='',C='',h='',i='',g='',s='',d='';const y={airplay:L,"captions-off":p,"captions-on":o,download:t,"enter-fullscreen":n,"exit-fullscreen":a,"fast-forward":l,muted:r,pause:e,"enter-pip":C,"exit-pip":C,play:h,restart:i,rewind:g,settings:s,volume:d};export{y as icons}; diff --git a/assets/vidstack-DqOrqs52-JpMSlmyh.js b/assets/vidstack-DqOrqs52-JpMSlmyh.js new file mode 100644 index 000000000..b010e05d8 --- /dev/null +++ b/assets/vidstack-DqOrqs52-JpMSlmyh.js @@ -0,0 +1 @@ +import{Z as m,o as f,s as n,b2 as y,y as k,b3 as v,e as p,l as h,al as T,b4 as S,j as F,p as x,aM as w,D as $,ad as u,a as A}from"./vidstack-CSaHpIQV-AmLqxEmn.js";import{R as E}from"./vidstack-D6ttsqNA-rfrnkY7F.js";import{O as b}from"./vidstack-CpPO9Fgt-6z3IyZQH.js";let c=null,o=[],d=[];function l(){return c??(c=new AudioContext)}function C(){const s=l(),t=s.createGain();return t.connect(s.destination),o.push(t),t}function M(s,t){const i=l(),e=i.createMediaElementSource(s);return t&&e.connect(t),d.push(e),e}function G(s){const t=o.indexOf(s);t!==-1&&(o.splice(t,1),s.disconnect(),g())}function j(s){const t=d.indexOf(s);t!==-1&&(d.splice(t,1),s.disconnect(),g())}function g(){c&&o.length===0&&d.length===0&&c.close().then(()=>{c=null})}class K{constructor(t,i){this.a=t,this.E=i,this.xa=null,this.Ka=null}get currentGain(){var t,i;return((i=(t=this.xa)==null?void 0:t.gain)==null?void 0:i.value)??null}get supported(){return!0}setGain(t){const i=this.currentGain;if(t!==this.currentGain){if(t===1&&i!==1){this.removeGain();return}this.xa||(this.xa=C(),this.Ka&&this.Ka.connect(this.xa)),this.Ka||(this.Ka=M(this.a,this.xa)),this.xa.gain.value=t,this.E(t)}}removeGain(){this.xa&&(this.Ka&&this.Ka.connect(l().destination),this.eg(),this.E(null))}destroy(){this.li(),this.eg()}li(){if(this.Ka)try{j(this.Ka)}catch{}finally{this.Ka=null}}eg(){if(this.xa)try{G(this.xa)}catch{}finally{this.xa=null}}}class P{constructor(t,i){this.p=t,this.b=i,this.Ya=v(),this.jc=!1,this.ae=!1,this.be=!1,this.fa=new E(this.kc.bind(this)),this.hg=void 0,this.zi=void 0,this.mi(),p(this.ni.bind(this)),f(this.ce.bind(this))}get a(){return this.p.media}get c(){return this.b.delegate.c}ce(){this.ae=!1,this.be=!1,this.fa.$(),this.Ya.empty()}kc(){const t=this.a.currentTime;this.b.$state.realCurrentTime()!==t&&this.Jb(t)}mi(){this.F("loadstart",this.Ma),this.F("abort",this.gg),this.F("emptied",this.oi),this.F("error",this.Q),this.F("volumechange",this.Na)}pi(){this.ae||(this.Ya.add(this.F("loadeddata",this.qi),this.F("loadedmetadata",this.ri),this.F("canplay",this.ed),this.F("canplaythrough",this.si),this.F("durationchange",this.de),this.F("play",this.gc),this.F("progress",this.nb),this.F("stalled",this.ti),this.F("suspend",this.ui),this.F("ratechange",this.vi)),this.ae=!0)}wi(){this.be||(this.Ya.add(this.F("pause",this.ib),this.F("playing",this.xi),this.F("seeked",this.ob),this.F("seeking",this.yi),this.F("ended",this.lc),this.F("waiting",this.ee)),this.be=!0)}F(t,i){return h(this.a,t,i.bind(this))}Ai(t){}Jb(t,i){const e={currentTime:Math.min(t,this.b.$state.seekableEnd()),played:this.a.played};this.c("time-update",e,i)}Ma(t){if(this.a.networkState===3){this.gg(t);return}this.pi(),this.c("load-start",void 0,t)}gg(t){this.c("abort",void 0,t)}oi(){this.c("emptied",void 0,event)}qi(t){this.c("loaded-data",void 0,t)}ri(t){this.wi(),this.c("loaded-metadata",void 0,t),(T||S&&F(this.b.$state.source()))&&this.b.delegate.Ga(this.fe(),t)}fe(){return{provider:x(this.b.$provider),duration:this.a.duration,buffered:this.a.buffered,seekable:this.a.seekable}}gc(t){this.b.$state.canPlay&&this.c("play",void 0,t)}ib(t){this.a.readyState===1&&!this.jc||(this.jc=!1,this.fa.$(),this.c("pause",void 0,t))}ed(t){this.b.delegate.Ga(this.fe(),t)}si(t){this.b.$state.started()||this.c("can-play-through",this.fe(),t)}xi(t){this.a.paused||(this.jc=!1,this.c("playing",void 0,t),this.fa.Xa())}ti(t){this.c("stalled",void 0,t),this.a.readyState<3&&(this.jc=!0,this.c("waiting",void 0,t))}ee(t){this.a.readyState<3&&(this.jc=!0,this.c("waiting",void 0,t))}lc(t){this.fa.$(),this.Jb(this.a.duration,t),this.c("end",void 0,t),this.b.$state.loop()&&w(this.a.controls)&&(this.a.controls=!1)}ni(){this.b.$state.paused()&&h(this.a,"timeupdate",this.mc.bind(this))}mc(t){this.Jb(this.a.currentTime,t)}de(t){this.b.$state.ended()&&this.Jb(this.a.duration,t),this.c("duration-change",this.a.duration,t)}Na(t){const i={volume:this.a.volume,muted:this.a.muted};this.c("volume-change",i,t)}ob(t){this.Jb(this.a.currentTime,t),this.c("seeked",this.a.currentTime,t),Math.trunc(this.a.currentTime)===Math.trunc(this.a.duration)&&b(this.a.duration)>b(this.a.currentTime)&&(this.Jb(this.a.duration,t),this.a.ended||this.b.player.dispatch(new $("media-play-request",{trigger:t})))}yi(t){this.c("seeking",this.a.currentTime,t)}nb(t){const i={buffered:this.a.buffered,seekable:this.a.seekable};this.c("progress",i,t)}ui(t){this.c("suspend",void 0,t)}vi(t){this.c("rate-change",this.a.playbackRate,t)}Q(t){const i=this.a.error;if(!i)return;const e={message:i.message,code:i.code,mediaError:i};this.c("error",e,t)}}class O{constructor(t,i){this.p=t,this.b=i,this.nc.onaddtrack=this.Bi.bind(this),this.nc.onremovetrack=this.Ci.bind(this),this.nc.onchange=this.Di.bind(this),h(this.b.audioTracks,"change",this.Ei.bind(this))}get nc(){return this.p.media.audioTracks}Bi(t){const i=t.track;if(i.label==="")return;const e=i.id.toString()||`native-audio-${this.b.audioTracks.length}`,a={id:e,label:i.label,language:i.language,kind:i.kind,selected:!1};this.b.audioTracks[u.da](a,t),i.enabled&&(a.selected=!0)}Ci(t){const i=this.b.audioTracks.getById(t.track.id);i&&this.b.audioTracks[u.cc](i,t)}Di(t){let i=this.ig();if(!i)return;const e=this.b.audioTracks.getById(i.id);e&&this.b.audioTracks[u.ea](e,!0,t)}ig(){return Array.from(this.nc).find(t=>t.enabled)}Ei(t){const{current:i}=t.detail;if(!i)return;const e=this.nc.getTrackById(i.id);if(e){const a=this.ig();a&&(a.enabled=!1),e.enabled=!0}}}class D{constructor(t,i){this.a=t,this.b=i,this.scope=m(),this.K=null,this.audioGain=new K(this.a,e=>{this.b.delegate.c("audio-gain-change",e)})}setup(){new P(this,this.b),"audioTracks"in this.media&&new O(this,this.b),f(()=>{this.audioGain.destroy(),this.a.srcObject=null,this.a.removeAttribute("src");for(const t of this.a.querySelectorAll("source"))t.remove();this.a.load()})}get type(){return""}get media(){return this.a}get currentSrc(){return this.K}setPlaybackRate(t){this.a.playbackRate=t}async play(){return this.a.play()}async pause(){return this.a.pause()}setMuted(t){this.a.muted=t}setVolume(t){this.a.volume=t}setCurrentTime(t){this.a.currentTime=t}setPlaysInline(t){n(this.a,"playsinline",t)}async loadSource({src:t,type:i},e){this.a.preload=e||"",y(t)?(this.oc(),this.a.srcObject=t):(this.a.srcObject=null,k(t)?i!=="?"?this.ge({src:t,type:i}):(this.oc(),this.a.src=this.jg(t)):(this.oc(),this.a.src=window.URL.createObjectURL(t))),this.a.load(),this.K={src:t,type:i}}ge(t,i){const e=this.a.querySelector("source[data-vds]"),a=e??document.createElement("source");n(a,"src",this.jg(t.src)),n(a,"type",t.type!=="?"?t.type:i),n(a,"data-vds",""),e||this.a.append(a)}oc(){var t;(t=this.a.querySelector("source[data-vds]"))==null||t.remove()}jg(t){const{clipStartTime:i,clipEndTime:e}=this.b.$state,a=i(),r=e();return a>0&&r>0?`${t}#t=${a},${r}`:a>0?`${t}#t=${a}`:r>0?`${t}#t=0,${r}`:t}}class R{constructor(t,i){this.a=t,this.b=i,this.pb=A(!1),this.he()}get supported(){return this.pb()}he(){var t;!((t=this.a)!=null&&t.remote)||!this.kg||(this.a.remote.watchAvailability(i=>{this.pb.set(i)}).catch(()=>{this.pb.set(!1)}),p(this.Fi.bind(this)))}Fi(){if(!this.pb())return;const t=["connecting","connect","disconnect"],i=this.ie.bind(this);i(),h(this.a,"playing",i);for(const e of t)h(this.a.remote,e,i)}async prompt(){if(!this.supported)throw Error("Not supported on this platform.");return this.la==="airplay"&&this.a.webkitShowPlaybackTargetPicker?this.a.webkitShowPlaybackTargetPicker():this.a.remote.prompt()}ie(t){const i=this.a.remote.state;if(i===this.za)return;const e={type:this.la,state:i};this.b.delegate.c("remote-playback-change",e,t),this.za=i}}class J extends R{constructor(){super(...arguments),this.la="airplay"}get kg(){return"WebKitPlaybackTargetAvailabilityEvent"in window}}export{D as H,J as a}; diff --git a/assets/vidstack-DscYSLiW-_wDIXJ0I.js b/assets/vidstack-DscYSLiW-_wDIXJ0I.js new file mode 100644 index 000000000..f89ee5f3f --- /dev/null +++ b/assets/vidstack-DscYSLiW-_wDIXJ0I.js @@ -0,0 +1 @@ +const i=/(?:youtu\.be|youtube|youtube\.com|youtube-nocookie\.com)\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=|)((?:\w|-){11})/,u=new Map,s=new Map;function h(e){var t;return(t=e.match(i))==null?void 0:t[1]}async function b(e,t){if(u.has(e))return u.get(e);if(s.has(e))return s.get(e);const n=new Promise(async c=>{const r=["maxresdefault","sddefault","hqdefault"];for(const a of r)for(const f of[!0,!1]){const o=p(e,a,f);if((await fetch(o,{mode:"no-cors",signal:t.signal})).status<400){u.set(e,o),c(o);return}}}).catch(()=>"").finally(()=>s.delete(e));return s.set(e,n),n}function p(e,t,n){return`https://i.ytimg.com/${n?"vi_webp":"vi"}/${e}/${t}.${n?"webp":"jpg"}`}export{b as findYouTubePoster,h as resolveYouTubeVideoId}; diff --git a/assets/vidstack-audio-JFiSukRr.js b/assets/vidstack-audio-JFiSukRr.js new file mode 100644 index 000000000..5be42f33f --- /dev/null +++ b/assets/vidstack-audio-JFiSukRr.js @@ -0,0 +1 @@ +import{Y as i}from"./vidstack-CSaHpIQV-AmLqxEmn.js";import{H as r,a as s}from"./vidstack-DqOrqs52-JpMSlmyh.js";import"./app-8OZtYazS.js";import"./vidstack-D6ttsqNA-rfrnkY7F.js";import"./vidstack-CpPO9Fgt-6z3IyZQH.js";class m extends r{constructor(e,t){super(e,t),this.$$PROVIDER_TYPE="AUDIO",i(()=>{this.airPlay=new s(this.media,t)},this.scope)}get type(){return"audio"}setup(){super.setup(),this.type==="audio"&&this.b.delegate.c("provider-setup",this)}get audio(){return this.a}}export{m as AudioProvider}; diff --git a/assets/vidstack-dash-vJmpB4uO.js b/assets/vidstack-dash-vJmpB4uO.js new file mode 100644 index 000000000..149a5166b --- /dev/null +++ b/assets/vidstack-dash-vJmpB4uO.js @@ -0,0 +1 @@ +import{i as N,y as m,aa as _,p as R,l as E,e as x,D as g,T as y,B as $,ad as l,ah as C,aB as F,k as K,ak as j,an as A,b8 as I,aK as P,w as O}from"./vidstack-CSaHpIQV-AmLqxEmn.js";import{VideoProvider as H}from"./vidstack-video-v9KwwqnU.js";import{U as L,W as Q}from"./vidstack-CpPO9Fgt-6z3IyZQH.js";import{R as G}from"./vidstack-D6ttsqNA-rfrnkY7F.js";import"./app-8OZtYazS.js";import"./vidstack-DqOrqs52-JpMSlmyh.js";function S(n){try{return new Intl.DisplayNames(navigator.languages,{type:"language"}).of(n)??null}catch{return null}}const V=n=>`dash-${O(n)}`;class z{constructor(t,i){this.m=t,this.b=i,this.d=null,this.qb=null,this.rb={},this.sb=new Set,this.Kb=null,this.oe={},this.na=-1}get instance(){return this.d}setup(t){this.d=t().create();const i=this.Ii.bind(this);for(const e of Object.values(t.events))this.d.on(e,i);this.d.on(t.events.ERROR,this.Q.bind(this));for(const e of this.sb)e(this.d);this.b.player.dispatch("dash-instance",{detail:this.d}),this.d.initialize(this.m,void 0,!1),this.d.updateSettings({streaming:{text:{defaultEnabled:!1,dispatchForManualRendering:!0},buffer:{fastSwitchEnabled:!0}},...this.rb}),this.d.on(t.events.FRAGMENT_LOADING_STARTED,this.Ji.bind(this)),this.d.on(t.events.FRAGMENT_LOADING_COMPLETED,this.Ki.bind(this)),this.d.on(t.events.MANIFEST_LOADED,this.Li.bind(this)),this.d.on(t.events.QUALITY_CHANGE_RENDERED,this.Za.bind(this)),this.d.on(t.events.TEXT_TRACKS_ADDED,this.Mi.bind(this)),this.d.on(t.events.TRACK_CHANGE_RENDERED,this.pc.bind(this)),this.b.qualities[L.Ia]=this.je.bind(this),E(this.b.qualities,"change",this.ke.bind(this)),E(this.b.audioTracks,"change",this.le.bind(this)),this.qb=x(this.me.bind(this))}aa(t){return new g(V(t.type),{detail:t})}me(){if(!this.b.$state.live())return;const t=new G(this.ne.bind(this));return t.Xa(),t.$.bind(t)}ne(){if(!this.d)return;const t=this.d.duration()-this.d.time();this.b.$state.liveSyncPosition.set(isNaN(t)?1/0:t)}Ii(t){var i;(i=this.b.player)==null||i.dispatch(this.aa(t))}Ni(t){var a;const i=(a=this.Kb)==null?void 0:a[y._],e=(i==null?void 0:i.track).cues;if(!i||!e)return;const d=this.Kb.id,o=this.oe[d]??0,h=this.aa(t);for(let u=o;u"manualMode"in h),d=this.aa(t);for(let h=0;hs.text))==null?void 0:o.text)??((a==null?void 0:a.lang)&&S(a.lang))??(a==null?void 0:a.lang)??void 0,language:a.lang??void 0,kind:a.kind,default:a.defaultTrack});p[y._]={managed:!0,track:u},p[y.ma]=2,p[y.hb]=()=>{this.d&&(p.mode==="showing"?(this.d.setTextTrack(h),this.Kb=p):(this.d.setTextTrack(-1),this.Kb=null))},this.b.textTracks.add(p,d)}}pc(t){const{mediaType:i,newMediaInfo:e}=t;if(i==="audio"){const d=this.b.audioTracks.getById(`dash-audio-${e.index}`);if(d){const o=this.aa(t);this.b.audioTracks[l.ea](d,!0,o)}}}Za(t){if(t.mediaType!=="video")return;const i=this.b.qualities[t.newQuality];if(i){const e=this.aa(t);this.b.qualities[l.ea](i,!0,e)}}Li(t){if(this.b.$state.canPlay()||!this.d)return;const{type:i,mediaPresentationDuration:e}=t.data,d=this.aa(t);this.b.delegate.c("stream-type-change",i!=="static"?"live":"on-demand",d),this.b.delegate.c("duration-change",e,d),this.b.qualities[L.Wa](!0,d);const o=this.d.getVideoElement(),h=this.d.getTracksForTypeFromManifest("video",t.data),a=[...new Set(h.map(s=>s.mimeType))].find(s=>s&&C(o,s)),u=h.filter(s=>a===s.mimeType)[0];let r=this.d.getTracksForTypeFromManifest("audio",t.data);const p=[...new Set(r.map(s=>s.mimeType))].find(s=>s&&F(o,s));if(r=r.filter(s=>p===s.mimeType),u.bitrateList.forEach((s,f)=>{var c;const T={id:((c=s.id)==null?void 0:c.toString())??`dash-bitrate-${f}`,width:s.width??0,height:s.height??0,bitrate:s.bandwidth??0,codec:u.codec,index:f};this.b.qualities[l.da](T,d)}),K(u.index)){const s=this.b.qualities[u.index];s&&this.b.qualities[l.ea](s,!0,d)}r.forEach((s,f)=>{const c=s.labels.find(w=>navigator.languages.some(q=>w.lang&&q.toLowerCase().startsWith(w.lang.toLowerCase())))||s.labels[0],M={id:`dash-audio-${s==null?void 0:s.index}`,label:(c==null?void 0:c.text)??(s.lang&&S(s.lang))??s.lang??"",language:s.lang??"",kind:"main",mimeType:s.mimeType,codec:s.codec,index:f};this.b.audioTracks[l.da](M,d)}),o.dispatchEvent(new g("canplay",{trigger:d}))}Q(t){const{type:i,error:e}=t;switch(e.code){case 27:this.pe(e);break;default:this.qc(e);break}}Ji(){this.na>=0&&this._a()}Ki(t){t.mediaType==="text"&&requestAnimationFrame(this.Ni.bind(this,t))}pe(t){var i;this._a(),(i=this.d)==null||i.play(),this.na=window.setTimeout(()=>{this.na=-1,this.qc(t)},5e3)}_a(){clearTimeout(this.na),this.na=-1}qc(t){this.b.delegate.c("error",{message:t.message??"",code:1,error:t})}je(){var i;this.lg("video",!0);const{qualities:t}=this.b;(i=this.d)==null||i.setQualityFor("video",t.selectedIndex,!0)}lg(t,i){var e;(e=this.d)==null||e.updateSettings({streaming:{abr:{autoSwitchBitrate:{[t]:i}}}})}ke(){const{qualities:t}=this.b;!this.d||t.auto||!t.selected||(this.lg("video",!1),this.d.setQualityFor("video",t.selectedIndex,t.switch==="current"),j&&(this.m.currentTime=this.m.currentTime))}le(){if(!this.d)return;const{audioTracks:t}=this.b,i=this.d.getTracksFor("audio").find(e=>t.selected&&t.selected.id===`dash-audio-${e.index}`);i&&this.d.setCurrentTrack(i)}z(){this._a(),this.Kb=null,this.oe={}}loadSource(t){var i;this.z(),m(t.src)&&((i=this.d)==null||i.attachSource(t.src))}destroy(){var t,i;this.z(),(t=this.d)==null||t.destroy(),this.d=null,(i=this.qb)==null||i.call(this),this.qb=null}}class B{constructor(t,i,e){this.L=t,this.b=i,this.La=e,this.qe()}async qe(){const t={onLoadStart:this.Ma.bind(this),onLoaded:this.tb.bind(this),onLoadError:this.re.bind(this)};let i=await U(this.L,t);if(A(i)&&!m(this.L)&&(i=await J(this.L,t)),!i)return null;if(!window.dashjs.supportsMediaSource()){const e="[vidstack] `dash.js` is not supported in this environment";return this.b.player.dispatch(new g("dash-unsupported")),this.b.delegate.c("error",{message:e,code:4}),null}return i}Ma(){this.b.player.dispatch(new g("dash-lib-load-start"))}tb(t){this.b.player.dispatch(new g("dash-lib-loaded",{detail:t})),this.La(t)}re(t){const i=Q(t);this.b.player.dispatch(new g("dash-lib-load-error",{detail:i})),this.b.delegate.c("error",{message:i.message,code:4,error:i})}}async function J(n,t={}){var i,e,d,o,h,a,u;if(!A(n)){if((i=t.onLoadStart)==null||i.call(t),W(n))return(e=t.onLoaded)==null||e.call(t,n),n;if(v(n)){const r=n.MediaPlayer;return(d=t.onLoaded)==null||d.call(t,r),r}try{const r=(o=await n())==null?void 0:o.default;if(v(r))return(h=t.onLoaded)==null||h.call(t,r.MediaPlayer),r.MediaPlayer;if(r)(a=t.onLoaded)==null||a.call(t,r);else throw Error("");return r}catch(r){(u=t.onLoadError)==null||u.call(t,r)}}}async function U(n,t={}){var i,e,d;if(m(n)){(i=t.onLoadStart)==null||i.call(t);try{if(await I(n),!P(window.dashjs.MediaPlayer))throw Error("");const o=window.dashjs.MediaPlayer;return(e=t.onLoaded)==null||e.call(t,o),o}catch(o){(d=t.onLoadError)==null||d.call(t,o)}}}function W(n){return n&&n.prototype&&n.prototype!==Function}function v(n){return n&&"MediaPlayer"in n}const X="https://cdn.jsdelivr.net",b=class b extends H{constructor(){super(...arguments),this.$$PROVIDER_TYPE="DASH",this.rc=null,this.e=new z(this.video,this.b),this.oa=`${X}/npm/dashjs@4.7.4/dist/dash.all.min.js`}get ctor(){return this.rc}get instance(){return this.e.instance}get type(){return"dash"}get canLiveSync(){return!0}get config(){return this.e.rb}set config(t){this.e.rb=t}get library(){return this.oa}set library(t){this.oa=t}preconnect(){m(this.oa)&&_(this.oa)}setup(){super.setup(),new B(this.oa,this.b,t=>{this.rc=t,this.e.setup(t),this.b.delegate.c("provider-setup",this);const i=R(this.b.$state.source);i&&this.loadSource(i)})}async loadSource(t,i){if(!m(t.src)){this.oc();return}this.a.preload=i||"",this.ge(t,"application/x-mpegurl"),this.e.loadSource(t),this.K=t}onInstance(t){const i=this.e.instance;return i&&t(i),this.e.sb.add(t),()=>this.e.sb.delete(t)}destroy(){this.e.destroy()}};b.supported=N();let D=b;export{D as DASHProvider}; diff --git a/assets/vidstack-g0pCq79a-YiUNTYEP.js b/assets/vidstack-g0pCq79a-YiUNTYEP.js new file mode 100644 index 000000000..bd46c4a8e --- /dev/null +++ b/assets/vidstack-g0pCq79a-YiUNTYEP.js @@ -0,0 +1,7 @@ +import{i as g}from"./app-8OZtYazS.js";import{ba as p,ak as u,al as C,am as f,p as m,b8 as h}from"./vidstack-CSaHpIQV-AmLqxEmn.js";function w(){return"https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1"}function E(){var a;return!!((a=window.cast)!=null&&a.framework)}function v(){var a,e;return!!((e=(a=window.chrome)==null?void 0:a.cast)!=null&&e.isAvailable)}function l(){return s().getCastState()===cast.framework.CastState.CONNECTED}function s(){return window.cast.framework.CastContext.getInstance()}function d(){return s().getCurrentSession()}function y(){var a;return(a=d())==null?void 0:a.getSessionObj().media[0]}function P(a){var t;return((t=y())==null?void 0:t.media.contentId)===(a==null?void 0:a.src)}function S(){return{language:"en-US",autoJoinPolicy:chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED,receiverApplicationId:chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,resumeSavedSession:!0,androidReceiverCompatible:!0}}function _(a){return`Google Cast Error Code: ${a}`}function A(a,e){return p(s(),a,e)}class I{constructor(){this.name="google-cast"}get cast(){return s()}mediaType(){return"video"}canPlay(e){return u&&!C&&f(e)}async prompt(e){var i;let t,o,r;try{t=await this.Ej(e),this.f||(this.f=new cast.framework.RemotePlayer,new cast.framework.RemotePlayerController(this.f)),o=e.player.createEvent("google-cast-prompt-open",{trigger:t}),e.player.dispatchEvent(o),this.Ce(e,"connecting",o),await this.Fj(m(e.$props.googleCast)),e.$state.remotePlaybackInfo.set({deviceName:(i=d())==null?void 0:i.getCastDevice().friendlyName}),l()&&this.Ce(e,"connected",o)}catch(n){const c=n instanceof Error?n:this.De((n+"").toUpperCase(),"Prompt failed.");throw r=e.player.createEvent("google-cast-prompt-error",{detail:c,trigger:o??t,cancelable:!0}),e.player.dispatch(r),this.Ce(e,l()?"connected":"disconnected",r),c}finally{e.player.dispatch("google-cast-prompt-close",{trigger:r??o??t})}}async load(e){if(!this.f)throw Error("[vidstack] google cast player was not initialized");return new(await g(()=>import("./vidstack-google-cast-3wMXtohW.js"),__vite__mapDeps([0,1,2,3]))).GoogleCastProvider(this.f,e)}async Ej(e){if(E())return;const t=e.player.createEvent("google-cast-load-start");e.player.dispatch(t),await h(w()),await customElements.whenDefined("google-cast-launcher");const o=e.player.createEvent("google-cast-loaded",{trigger:t});if(e.player.dispatch(o),!v())throw this.De("CAST_NOT_AVAILABLE","Google Cast not available on this platform.");return o}async Fj(e){this.Gj(e);const t=await this.cast.requestSession();if(t)throw this.De(t.toUpperCase(),_(t))}Gj(e){var t;(t=this.cast)==null||t.setOptions({...S(),...e})}Ce(e,t,o){const r={type:"google-cast",state:t};e.delegate.c("remote-playback-change",r,o)}De(e,t){const o=Error(t);return o.code=e,o}}const D=Object.freeze(Object.defineProperty({__proto__:null,GoogleCastLoader:I},Symbol.toStringTag,{value:"Module"}));export{d as a,y as b,_ as c,s as g,P as h,A as l,D as v}; +function __vite__mapDeps(indexes) { + if (!__vite__mapDeps.viteFileDeps) { + __vite__mapDeps.viteFileDeps = ["assets/vidstack-google-cast-3wMXtohW.js","assets/vidstack-CSaHpIQV-AmLqxEmn.js","assets/app-8OZtYazS.js","assets/vidstack-D6ttsqNA-rfrnkY7F.js"] + } + return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) +} diff --git a/assets/vidstack-google-cast-3wMXtohW.js b/assets/vidstack-google-cast-3wMXtohW.js new file mode 100644 index 000000000..9409492e1 --- /dev/null +++ b/assets/vidstack-google-cast-3wMXtohW.js @@ -0,0 +1 @@ +import{Z as b,as as h,aE as l,o as E,D as g,p as c,l as f,e as k,ab as C,ad as y}from"./vidstack-CSaHpIQV-AmLqxEmn.js";import{R as A}from"./vidstack-D6ttsqNA-rfrnkY7F.js";import{g as v,a as L,b as p,h as m,l as S,c as j}from"./vidstack-g0pCq79a-YiUNTYEP.js";import"./app-8OZtYazS.js";class w{constructor(t){this.$a=new chrome.cast.media.MediaInfo(t.src,t.type)}build(){return this.$a}lj(t){return t.includes("live")?this.$a.streamType=chrome.cast.media.StreamType.LIVE:this.$a.streamType=chrome.cast.media.StreamType.BUFFERED,this}mj(t){return this.$a.tracks=t.map(this.nj),this}oj(t,e){return this.$a.metadata=new chrome.cast.media.GenericMediaMetadata,this.$a.metadata.title=t,this.$a.metadata.images=[{url:e}],this}nj(t,e){const s=new chrome.cast.media.Track(e,chrome.cast.media.TrackType.TEXT);return s.name=t.label,s.trackContentId=t.src,s.trackContentType="text/vtt",s.language=t.language,s.subtype=t.kind.toUpperCase(),s}}const d=chrome.cast.media.TrackType.TEXT,T=chrome.cast.media.TrackType.AUDIO;class D{constructor(t,e,s){this.od=t,this.b=e,this.Ae=s}he(){const t=this.ug.bind(this);f(this.b.audioTracks,"change",t),f(this.b.textTracks,"mode-change",t),k(this.pj.bind(this))}nd(){return this.b.$state.textTracks().filter(t=>t.src&&t.type==="vtt")}vg(){return this.b.$state.audioTracks()}xc(t){var s;const e=((s=this.od.mediaInfo)==null?void 0:s.tracks)??[];return t?e.filter(i=>i.type===t):e}qj(){const t=[],e=this.vg().find(i=>i.selected),s=this.nd().filter(i=>i.mode==="showing");if(e){const i=this.xc(T),r=this.ze(i,e);r&&t.push(r.trackId)}if(s!=null&&s.length){const i=this.xc(d);if(i.length)for(const r of s){const a=this.ze(i,r);a&&t.push(a.trackId)}}return t}pj(){const t=this.nd();if(!this.od.isMediaLoaded)return;const e=this.xc(d);for(const s of t)if(!this.ze(e,s)){C(()=>{var r;return(r=this.Ae)==null?void 0:r.call(this)});break}}rj(t){if(!this.od.isMediaLoaded)return;const e=this.vg(),s=this.nd(),i=this.xc(T),r=this.xc(d);for(const a of i){if(this.wg(e,a))continue;const n={id:a.trackId.toString(),label:a.name,language:a.language,kind:a.subtype??"main",selected:!1};this.b.audioTracks[y.da](n,t)}for(const a of r){if(this.wg(s,a))continue;const n={id:a.trackId.toString(),src:a.trackContentId,label:a.name,language:a.language,kind:a.subtype.toLowerCase()};this.b.textTracks.add(n,t)}}ug(t){if(!this.od.isMediaLoaded)return;const e=this.qj(),s=new chrome.cast.media.EditTracksInfoRequest(e);this.sj(s).catch(i=>{})}sj(t){const e=p();return new Promise((s,i)=>e==null?void 0:e.editTracksInfo(t,s,i))}wg(t,e){return t.find(s=>this.xg(s,e))}ze(t,e){return t.find(s=>this.xg(e,s))}xg(t,e){return e.name===t.label&&e.language===t.language&&e.subtype.toLowerCase()===t.kind.toLowerCase()}}class N{constructor(t,e){this.f=t,this.b=e,this.$$PROVIDER_TYPE="GOOGLE_CAST",this.scope=b(),this.K=null,this.za="disconnected",this.ua=0,this.ga=0,this.ba=new h(0,0),this.Aa=new h(0,0),this.fa=new A(this.kc.bind(this)),this.Pa=null,this.Be=!1,this.va=new D(this.f,this.b,this.Ae.bind(this))}get c(){return this.b.delegate.c}get type(){return"google-cast"}get currentSrc(){return this.K}get player(){return this.f}get cast(){return v()}get session(){return L()}get media(){return p()}get hasActiveSession(){return m(this.K)}setup(){this.tj(),this.uj(),this.va.he(),this.c("provider-setup",this)}tj(){S(cast.framework.CastContextEventType.CAST_STATE_CHANGED,this.zg.bind(this))}uj(){const t=cast.framework.RemotePlayerEventType,e={[t.IS_CONNECTED_CHANGED]:this.zg,[t.IS_MEDIA_LOADED_CHANGED]:this.Ag,[t.CAN_CONTROL_VOLUME_CHANGED]:this.Bg,[t.CAN_SEEK_CHANGED]:this.Cg,[t.DURATION_CHANGED]:this.de,[t.IS_MUTED_CHANGED]:this.Na,[t.VOLUME_LEVEL_CHANGED]:this.Na,[t.IS_PAUSED_CHANGED]:this.vj,[t.LIVE_SEEKABLE_RANGE_CHANGED]:this.nb,[t.PLAYER_STATE_CHANGED]:this.wj};this.yg=e;const s=this.xj.bind(this);for(const i of l(e))this.f.controller.addEventListener(i,s);E(()=>{for(const i of l(e))this.f.controller.removeEventListener(i,s)})}async play(){var t;if(!(!this.f.isPaused&&!this.Be)){if(this.Be){await this.Dg(!1,0);return}(t=this.f.controller)==null||t.playOrPause()}}async pause(){var t;this.f.isPaused||(t=this.f.controller)==null||t.playOrPause()}getMediaStatus(t){return new Promise((e,s)=>{var i;(i=this.media)==null||i.getStatus(t,e,s)})}setMuted(t){var s;(t&&!this.f.isMuted||!t&&this.f.isMuted)&&((s=this.f.controller)==null||s.muteOrUnmute())}setCurrentTime(t){var e;this.f.currentTime=t,this.c("seeking",t),(e=this.f.controller)==null||e.seek()}setVolume(t){var e;this.f.volumeLevel=t,(e=this.f.controller)==null||e.setVolumeLevel()}async loadSource(t){var i;if(((i=this.Pa)==null?void 0:i.src)!==t&&(this.Pa=null),m(t)){this.yj(),this.K=t;return}this.c("load-start");const e=this.zj(t),s=await this.session.loadMedia(e);if(s){this.K=null,this.c("error",Error(j(s)));return}this.K=t}destroy(){this.z(),this.Eg()}z(){this.Pa||(this.ga=0,this.ba=new h(0,0),this.Aa=new h(0,0)),this.fa.$(),this.ua=0,this.Pa=null}yj(){const t=new g("resume-session",{detail:this.session});this.Ag(t);const{muted:e,volume:s,savedState:i}=this.b.$state,r=i();this.setCurrentTime(Math.max(this.f.currentTime,(r==null?void 0:r.currentTime)??0)),this.setMuted(e()),this.setVolume(s()),(r==null?void 0:r.paused)===!1&&this.play()}Eg(){this.cast.endCurrentSession(!0);const{remotePlaybackLoader:t}=this.b.$state;t.set(null)}Aj(){const{savedState:t}=this.b.$state;t.set({paused:this.f.isPaused,currentTime:this.f.currentTime}),this.Eg()}kc(){this.Bj()}xj(t){this.yg[t.type].call(this,t)}zg(t){const e=this.cast.getCastState(),s=e===cast.framework.CastState.CONNECTED?"connected":e===cast.framework.CastState.CONNECTING?"connecting":"disconnected";if(this.za===s)return;const i={type:"google-cast",state:s},r=this.ab(t);this.za=s,this.c("remote-playback-change",i,r),s==="disconnected"&&this.Aj()}Ag(t){if(!!!this.f.isMediaLoaded)return;const s=c(this.b.$state.source);Promise.resolve().then(()=>{if(s!==c(this.b.$state.source)||!this.f.isMediaLoaded)return;this.z();const i=this.f.duration;this.Aa=new h(0,i);const r={provider:this,duration:i,buffered:this.ba,seekable:this.Fg()},a=this.ab(t);this.c("loaded-metadata",void 0,a),this.c("loaded-data",void 0,a),this.c("can-play",r,a),this.Bg(),this.Cg(t);const{volume:o,muted:n}=this.b.$state;this.setVolume(o()),this.setMuted(n()),this.fa.Xa(),this.va.rj(a),this.va.ug(a)})}Bg(){this.b.$state.canSetVolume.set(this.f.canControlVolume)}Cg(t){const e=this.ab(t);this.c("stream-type-change",this.Cj(),e)}Cj(){var e;return((e=this.f.mediaInfo)==null?void 0:e.streamType)===chrome.cast.media.StreamType.LIVE?this.f.canSeek?"live:dvr":"live":"on-demand"}Bj(){if(this.Pa)return;const t=this.f.currentTime;if(t===this.ua)return;const e=this.ga,s=this.uc(t),i={currentTime:t,played:s};this.c("time-update",i),t>e&&this.nb(),this.b.$state.seeking()&&this.c("seeked",t),this.ua=t}uc(t){return this.ga>=t?this.ba:this.ba=new h(0,this.ga=t)}de(t){if(!this.f.isMediaLoaded||this.Pa)return;const e=this.f.duration,s=this.ab(t);this.Aa=new h(0,e),this.c("duration-change",e,s)}Na(t){if(!this.f.isMediaLoaded)return;const e={muted:this.f.isMuted,volume:this.f.volumeLevel},s=this.ab(t);this.c("volume-change",e,s)}vj(t){const e=this.ab(t);this.f.isPaused?this.c("pause",void 0,e):this.c("play",void 0,e)}nb(t){const e={seekable:this.Fg(),buffered:this.ba},s=t?this.ab(t):void 0;this.c("progress",e,s)}wj(t){const e=this.f.playerState,s=chrome.cast.media.PlayerState;if(this.Be=e===s.IDLE,e===s.PAUSED)return;const i=this.ab(t);switch(e){case s.PLAYING:this.c("playing",void 0,i);break;case s.BUFFERING:this.c("waiting",void 0,i);break;case s.IDLE:this.fa.$(),this.c("pause"),this.c("end");break}}Fg(){return this.f.liveSeekableRange?new h(this.f.liveSeekableRange.start,this.f.liveSeekableRange.end):this.Aa}ab(t){return t instanceof Event?t:new g(t.type,{detail:t})}Dj(t){const{streamType:e,title:s,poster:i}=this.b.$state;return new w(t).oj(s(),i()).lj(e()).mj(this.va.nd()).build()}zj(t){var r,a;const e=this.Dj(t),s=new chrome.cast.media.LoadRequest(e),i=this.b.$state.savedState();return s.autoplay=(((r=this.Pa)==null?void 0:r.paused)??(i==null?void 0:i.paused))===!1,s.currentTime=((a=this.Pa)==null?void 0:a.time)??(i==null?void 0:i.currentTime)??0,s}async Dg(t,e){const s=c(this.b.$state.source);this.Pa={src:s,paused:t,time:e},await this.loadSource(s)}Ae(){this.Dg(this.f.isPaused,this.f.currentTime).catch(t=>{})}}export{N as GoogleCastProvider}; diff --git a/assets/vidstack-hls-9FnwyM-K.js b/assets/vidstack-hls-9FnwyM-K.js new file mode 100644 index 000000000..2d9f5b481 --- /dev/null +++ b/assets/vidstack-hls-9FnwyM-K.js @@ -0,0 +1 @@ +import{h as E,y as c,aa as w,p as f,l as v,e as S,D as u,B as _,T as m,ad as l,ak as q,an as L,b8 as D,aK as I,w as R}from"./vidstack-CSaHpIQV-AmLqxEmn.js";import{VideoProvider as $}from"./vidstack-video-v9KwwqnU.js";import{U as T,W as O}from"./vidstack-CpPO9Fgt-6z3IyZQH.js";import{R as x}from"./vidstack-D6ttsqNA-rfrnkY7F.js";import"./app-8OZtYazS.js";import"./vidstack-DqOrqs52-JpMSlmyh.js";const C=h=>R(h);class A{constructor(t,i){this.m=t,this.b=i,this.d=null,this.qb=null,this.rb={},this.sb=new Set,this.na=-1}get instance(){return this.d}setup(t){const{streamType:i}=this.b.$state,e=f(i).includes("live"),r=f(i).includes("ll-");this.d=new t({lowLatencyMode:r,backBufferLength:r?4:e?8:void 0,renderTextTracksNatively:!1,...this.rb});const n=this.Oi.bind(this);for(const o of Object.values(t.Events))this.d.on(o,n);this.d.on(t.Events.ERROR,this.Q.bind(this));for(const o of this.sb)o(this.d);this.b.player.dispatch("hls-instance",{detail:this.d}),this.d.attachMedia(this.m),this.d.on(t.Events.FRAG_LOADING,this.Pi.bind(this)),this.d.on(t.Events.AUDIO_TRACK_SWITCHED,this.Qi.bind(this)),this.d.on(t.Events.LEVEL_SWITCHED,this.Ri.bind(this)),this.d.on(t.Events.LEVEL_LOADED,this.Si.bind(this)),this.d.on(t.Events.NON_NATIVE_TEXT_TRACKS_FOUND,this.Ti.bind(this)),this.d.on(t.Events.CUES_PARSED,this.Ui.bind(this)),this.b.qualities[T.Ia]=this.je.bind(this),v(this.b.qualities,"change",this.ke.bind(this)),v(this.b.audioTracks,"change",this.le.bind(this)),this.qb=S(this.me.bind(this))}aa(t,i){return new u(C(t),{detail:i})}me(){if(!this.b.$state.live())return;const t=new x(this.ne.bind(this));return t.Xa(),t.$.bind(t)}ne(){var t;this.b.$state.liveSyncPosition.set(((t=this.d)==null?void 0:t.liveSyncPosition)??1/0)}Oi(t,i){var e;(e=this.b.player)==null||e.dispatch(this.aa(t,i))}Ti(t,i){const e=this.aa(t,i);let r=-1;for(let n=0;n{d.mode==="showing"?(this.d.subtitleTrack=n,r=n):r===n&&(this.d.subtitleTrack=-1,r=-1)},this.b.textTracks.add(d,e)}}Ui(t,i){var o;const e=(o=this.d)==null?void 0:o.subtitleTrack,r=this.b.textTracks.getById(`hls-${i.type}-${e}`);if(!r)return;const n=this.aa(t,i);for(const s of i.cues)s.positionAlign="auto",r.addCue(s,n)}Qi(t,i){const e=this.b.audioTracks[i.id];if(e){const r=this.aa(t,i);this.b.audioTracks[l.ea](e,!0,r)}}Ri(t,i){const e=this.b.qualities[i.level];if(e){const r=this.aa(t,i);this.b.qualities[l.ea](e,!0,r)}}Si(t,i){var g;if(this.b.$state.canPlay())return;const{type:e,live:r,totalduration:n,targetduration:o}=i.details,s=this.aa(t,i);this.b.delegate.c("stream-type-change",r?e==="EVENT"&&Number.isFinite(n)&&o>=10?"live:dvr":"live":"on-demand",s),this.b.delegate.c("duration-change",n,s);const d=this.d.media;this.d.currentLevel===-1&&this.b.qualities[T.Wa](!0,s);for(const a of this.d.audioTracks){const p={id:a.id.toString(),label:a.name,language:a.lang||"",kind:"main"};this.b.audioTracks[l.da](p,s)}for(const a of this.d.levels){const p={id:((g=a.id)==null?void 0:g.toString())??a.height+"p",width:a.width,height:a.height,codec:a.codecSet,bitrate:a.bitrate};this.b.qualities[l.da](p,s)}d.dispatchEvent(new u("canplay",{trigger:s}))}Q(t,i){var e;if(i.fatal)switch(i.type){case"networkError":this.pe(i.error);break;case"mediaError":(e=this.d)==null||e.recoverMediaError();break;default:this.qc(i.error);break}}Pi(){this.na>=0&&this._a()}pe(t){var i;this._a(),(i=this.d)==null||i.startLoad(),this.na=window.setTimeout(()=>{this.na=-1,this.qc(t)},5e3)}_a(){clearTimeout(this.na),this.na=-1}qc(t){this.b.delegate.c("error",{message:t.message,code:1,error:t})}je(){this.d&&(this.d.currentLevel=-1)}ke(){const{qualities:t}=this.b;!this.d||t.auto||(this.d[t.switch+"Level"]=t.selectedIndex,q&&(this.m.currentTime=this.m.currentTime))}le(){const{audioTracks:t}=this.b;this.d&&this.d.audioTrack!==t.selectedIndex&&(this.d.audioTrack=t.selectedIndex)}Vi(t){var i;this._a(),c(t.src)&&((i=this.d)==null||i.loadSource(t.src))}Wi(){var t,i;this._a(),(t=this.d)==null||t.destroy(),this.d=null,(i=this.qb)==null||i.call(this),this.qb=null}}class H{constructor(t,i,e){this.L=t,this.b=i,this.La=e,this.qe()}async qe(){const t={onLoadStart:this.Ma.bind(this),onLoaded:this.tb.bind(this),onLoadError:this.re.bind(this)};let i=await j(this.L,t);if(L(i)&&!c(this.L)&&(i=await N(this.L,t)),!i)return null;if(!i.isSupported()){const e="[vidstack] `hls.js` is not supported in this environment";return this.b.player.dispatch(new u("hls-unsupported")),this.b.delegate.c("error",{message:e,code:4}),null}return i}Ma(){this.b.player.dispatch(new u("hls-lib-load-start"))}tb(t){this.b.player.dispatch(new u("hls-lib-loaded",{detail:t})),this.La(t)}re(t){const i=O(t);this.b.player.dispatch(new u("hls-lib-load-error",{detail:i})),this.b.delegate.c("error",{message:i.message,code:4,error:i})}}async function N(h,t={}){var i,e,r,n,o;if(!L(h)){if((i=t.onLoadStart)==null||i.call(t),h.prototype&&h.prototype!==Function)return(e=t.onLoaded)==null||e.call(t,h),h;try{const s=(r=await h())==null?void 0:r.default;if(s&&s.isSupported)(n=t.onLoaded)==null||n.call(t,s);else throw Error("");return s}catch(s){(o=t.onLoadError)==null||o.call(t,s)}}}async function j(h,t={}){var i,e,r;if(c(h)){(i=t.onLoadStart)==null||i.call(t);try{if(await D(h),!I(window.Hls))throw Error("");const n=window.Hls;return(e=t.onLoaded)==null||e.call(t,n),n}catch(n){(r=t.onLoadError)==null||r.call(t,n)}}}const k="https://cdn.jsdelivr.net",b=class b extends ${constructor(){super(...arguments),this.$$PROVIDER_TYPE="HLS",this.rc=null,this.e=new A(this.video,this.b),this.oa=`${k}/npm/hls.js@^1.5.0/dist/hls.min.js`}get ctor(){return this.rc}get instance(){return this.e.instance}get type(){return"hls"}get canLiveSync(){return!0}get config(){return this.e.rb}set config(t){this.e.rb=t}get library(){return this.oa}set library(t){this.oa=t}preconnect(){c(this.oa)&&w(this.oa)}setup(){super.setup(),new H(this.oa,this.b,t=>{this.rc=t,this.e.setup(t),this.b.delegate.c("provider-setup",this);const i=f(this.b.$state.source);i&&this.loadSource(i)})}async loadSource(t,i){if(!c(t.src)){this.oc();return}this.a.preload=i||"",this.ge(t,"application/x-mpegurl"),this.e.Vi(t),this.K=t}onInstance(t){const i=this.e.instance;return i&&t(i),this.e.sb.add(t),()=>this.e.sb.delete(t)}destroy(){this.e.Wi()}};b.supported=E();let y=b;export{y as HLSProvider}; diff --git a/assets/vidstack-player-FSWKbTeV.js b/assets/vidstack-player-FSWKbTeV.js new file mode 100644 index 000000000..19572e14e --- /dev/null +++ b/assets/vidstack-player-FSWKbTeV.js @@ -0,0 +1,7 @@ +import{H as g,u as T,e as a,s as o,c as G,d as L}from"./vidstack-CSaHpIQV-AmLqxEmn.js";import{i as w}from"./app-8OZtYazS.js";import{M as C,a as H}from"./vidstack-CpPO9Fgt-6z3IyZQH.js";const h=class h extends g(HTMLElement,C){constructor(){super(...arguments),this.G=null,this.Xm=null}onSetup(){this.a=T(),this.setAttribute("keep-alive","")}onDestroy(){var t,e;(t=this.Xm)==null||t.remove(),this.Xm=null,(e=this.G)==null||e.remove(),this.G=null}onConnect(){a(()=>{var u,d,v;const t=this.$state.loader(),e=(t==null?void 0:t.name)==="youtube",i=(t==null?void 0:t.name)==="vimeo",n=e||i,l=(t==null?void 0:t.name)==="google-cast",s=t?l?this.kn():n?this.ln():t.mediaType()==="audio"?this.mn():this.an():null;if(this.G!==s){const E=((u=this.G)==null?void 0:u.parentElement)??this;(d=this.G)==null||d.remove(),this.G=s,s&&E.prepend(s),n&&s&&a(()=>{var f;const{nativeControls:X,viewType:b}=this.a.$state,p=X(),y=b()==="audio";p&&!y?(this.Xm=this.querySelector(".vds-blocker"),this.Xm||(this.Xm=document.createElement("div"),this.Xm.classList.add("vds-blocker"),s.after(this.Xm))):((f=this.Xm)==null||f.remove(),this.Xm=null),o(s,"data-no-controls",!p)})}e?s==null||s.classList.add("vds-youtube"):i&&(s==null||s.classList.add("vds-vimeo")),n||((v=this.Xm)==null||v.remove(),this.Xm=null),this.load(s)})}mn(){const t=this.G instanceof HTMLAudioElement?this.G:document.createElement("audio");o(t,"preload","none"),o(t,"aria-hidden","true");const{controls:e,crossOrigin:i}=this.a.$state;return a(()=>{o(t,"controls",e()),o(t,"crossorigin",i())}),t}an(){const t=this.G instanceof HTMLVideoElement?this.G:document.createElement("video"),{crossOrigin:e,poster:i,nativeControls:n}=this.a.$state,l=G(()=>n()?"true":null),s=G(()=>i()&&n()?i():null);return a(()=>{o(t,"controls",l()),o(t,"crossorigin",e()),o(t,"poster",s())}),t}ln(){const t=this.G instanceof HTMLIFrameElement?this.G:document.createElement("iframe"),{nativeControls:e}=this.a.$state;return a(()=>o(t,"tabindex",e()?null:-1)),t}kn(){var e;if((e=this.G)!=null&&e.classList.contains("vds-google-cast"))return this.G;const t=document.createElement("div");return t.classList.add("vds-google-cast"),w(()=>import("./vidstack-CSNoShp--3DcVQJ7H.js"),__vite__mapDeps([0,1,2,3])).then(({insertContent:i})=>{i(t,this.a.$state)}),t}};h.tagName="media-provider";let c=h;const r=class r extends g(HTMLElement,H){};r.tagName="media-player",r.attrs={autoPlay:"autoplay",crossOrigin:"crossorigin",playsInline:"playsinline",preferNativeHLS:"prefer-native-hls",minLiveDVRWindow:"min-live-dvr-window"};let m=r;L(m);L(c); +function __vite__mapDeps(indexes) { + if (!__vite__mapDeps.viteFileDeps) { + __vite__mapDeps.viteFileDeps = ["assets/vidstack-CSNoShp--3DcVQJ7H.js","assets/vidstack-CSaHpIQV-AmLqxEmn.js","assets/app-8OZtYazS.js","assets/vidstack-DQ6dSZwe-FUyOJuAD.js"] + } + return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) +} diff --git a/assets/vidstack-player-layouts-LcQTAVd6.js b/assets/vidstack-player-layouts-LcQTAVd6.js new file mode 100644 index 000000000..73ccc840e --- /dev/null +++ b/assets/vidstack-player-layouts-LcQTAVd6.js @@ -0,0 +1,827 @@ +var Fe=Object.getPrototypeOf;var Ne=Reflect.get;var dt=(e,t,s)=>Ne(Fe(e),s,t);import{C as Zt,u as y,m as Yt,a as T,e as S,a3 as Xt,F as Jt,az as Re,c as _,p as gt,t as te,o as E,aD as Ve,y as z,Y as Ee,aE as We,aF as vt,w as X,aG as Ke,aH as ee,aI as He,z as se,aJ as x,aK as _t,aL as ne,s as Q,v as ae,aM as Qe,aN as ie,X as oe,aO as J,aP as qe,au as ze,ae as B,W as Ue,aQ as je,$ as Ze,aR as Ye,aS as xt,aT as Xe,af as wt,aU as Je,aV as ts,E as es,H as Tt,l as Y,a2 as ss,aW as ns,aX as as,aY as is,_ as le,d as kt}from"./vidstack-CSaHpIQV-AmLqxEmn.js";import{i as re}from"./app-8OZtYazS.js";import{e as os,c as ls,t as Kt,A as rs,l as St,D as Ht,x as i,o as us,n as st,L as Ct,i as cs,a as ue}from"./vidstack-rsZGrNIW-cbZ7VXwC.js";const ce=Xt();function b(){return Jt(ce)}const ds={clickToPlay:!0,clickToFullscreen:!0,controls:["play-large","play","progress","current-time","mute+volume","captions","settings","pip","airplay","fullscreen"],customIcons:!1,displayDuration:!1,download:null,markers:null,invertTime:!0,thumbnails:null,toggleTime:!0,translations:null,seekTime:10,speed:[.5,.75,1,1.25,1.5,1.75,2,4]},Nt=class Nt extends Zt{onSetup(){this.a=y(),Yt(ce,{...this.$props,previewTime:T(0)})}};Nt.props=ds;let ft=Nt;function ps(e,t){const{canAirPlay:s,canFullscreen:n,canPictureInPicture:a,controlsHidden:l,currentTime:r,fullscreen:c,hasCaptions:p,isAirPlayConnected:v,paused:f,pictureInPicture:m,playing:$,pointer:g,poster:w,textTrack:A,viewType:k,waiting:L}=t.$state;e.classList.add("plyr"),e.classList.add("plyr--full-ui");const G={"plyr--airplay-active":v,"plyr--airplay-supported":s,"plyr--fullscreen-active":c,"plyr--fullscreen-enabled":n,"plyr--hide-controls":l,"plyr--is-touch":()=>g()==="coarse","plyr--loading":L,"plyr--paused":f,"plyr--pip-active":m,"plyr--pip-enabled":a,"plyr--playing":$,"plyr__poster-enabled":w,"plyr--stopped":()=>f()&&r()===0,"plyr--captions-active":A,"plyr--captions-enabled":p},R=Re();for(const M of Object.keys(G))R.add(S(()=>void e.classList.toggle(M,!!G[M]())));return R.add(S(()=>{const M=`plyr--${k()}`;return e.classList.add(M),()=>e.classList.remove(M)}),S(()=>{var V;const{$provider:M}=t,K=(V=M())==null?void 0:V.type,H=`plyr--${ms(K)?"html5":K}`;return e.classList.toggle(H,!!K),()=>e.classList.remove(H)})),()=>R.empty()}function ms(e){return e==="audio"||e==="video"}class vs extends ls{constructor(t){super(t),this.h=null,this.w=!1,this.$=null,this.w=t.type===Kt.ATTRIBUTE||t.type===Kt.BOOLEAN_ATTRIBUTE}render(t){return t!==this.h&&(this.disconnected(),this.h=t,this.isConnected&&this.Gl()),this.h?this.x(gt(this.h)):rs}reconnected(){this.Gl()}disconnected(){var t;(t=this.$)==null||t.call(this),this.$=null}Gl(){this.h&&(this.$=S(this.l.bind(this)))}x(t){return this.w?St(t):t}y(t){this.setValue(this.x(t))}l(){var t;this.y((t=this.h)==null?void 0:t.call(this))}}function o(e){return os(vs)(_(e))}class de{constructor(t,s){this._m=t,this.La=s,this.elements=new Set,this.Gc=te(this.Ha.bind(this))}connect(){this.Ha();const t=new MutationObserver(this.Gc);for(const s of this._m)t.observe(s,{childList:!0,subtree:!0});E(()=>t.disconnect()),E(this.disconnect.bind(this))}disconnect(){this.elements.clear()}assign(t,s){Ve(t)?(s.textContent="",s.append(t)):(Ht(null,s),Ht(t,s)),s.style.display||(s.style.display="contents");const n=s.firstElementChild;if(!n)return;const a=s.getAttribute("data-class");a&&n.classList.add(...a.split(" "))}Ha(t){if(t&&!t.some(a=>a.addedNodes.length))return;let s=!1,n=this._m.flatMap(a=>[...a.querySelectorAll("slot")]);for(const a of n)!a.hasAttribute("name")||this.elements.has(a)||(this.elements.add(a),s=!0);s&&this.La(this.elements)}}let fs=0,Z="data-slot-id";class Dt{constructor(t){this._m=t,this.Gc=te(this.Ha.bind(this)),this.slots=new de(t,this.Ha.bind(this))}connect(){this.slots.connect(),this.Ha();const t=new MutationObserver(this.Gc);for(const s of this._m)t.observe(s,{childList:!0});E(()=>t.disconnect())}Ha(){for(const t of this._m)for(const s of t.children){if(s.nodeType!==1)continue;const n=s.getAttribute("slot");if(!n)continue;s.style.display="none";let a=s.getAttribute(Z);a||s.setAttribute(Z,a=++fs+"");for(const l of this.slots.elements){if(l.getAttribute("name")!==n||l.getAttribute(Z)===a)continue;const r=document.importNode(s,!0);n.includes("-icon")&&r.classList.add("vds-icon"),r.style.display="",r.removeAttribute("slot"),this.slots.assign(r,l),l.setAttribute(Z,a)}}}}function pe({name:e,class:t,state:s,paths:n,viewBox:a="0 0 32 32"}){return i``}class $s{constructor(t){this._m=t,this.dn={},this.gn=!1,this.slots=new de(t,this.hn.bind(this))}connect(){this.slots.connect()}load(){this.Pf().then(t=>{this.dn=t,this.gn=!0,this.hn()})}*jn(){for(const t of Object.keys(this.dn)){const s=`${t}-icon`;for(const n of this.slots.elements)n.name===s&&(yield{icon:this.dn[t],slot:n})}}hn(){if(this.gn)for(const{icon:t,slot:s}of this.jn())this.slots.assign(t,s)}}class me extends $s{connect(){super.connect();const{player:t}=y();if(!t.el)return;let s,n=new IntersectionObserver(a=>{var l;(l=a[0])!=null&&l.isIntersecting&&(s==null||s(),s=void 0,this.load())});n.observe(t.el),s=E(()=>n.disconnect())}}function pt(e){const{style:t}=new Option;return t.color=e,t.color.match(/\((.*?)\)/)[1].replace(/,/g," ")}let Qt=!1,mt=new Set;function bs(){const{player:e}=y();mt.add(e),E(()=>mt.delete(e)),Qt||(Ee(()=>{for(const t of We(vt)){const s=vt[t],n=Ke[t],a=`--media-user-${X(t)}`,l=`vds-player:${X(t)}`;S(()=>{var v;const r=s(),c=r===n,p=c?null:hs(e,t,r);for(const f of mt)(v=f.el)==null||v.style.setProperty(a,p);c?localStorage.removeItem(l):localStorage.setItem(l,r)})}},null),Qt=!0)}function hs(e,t,s){var n;switch(t){case"fontFamily":const a=s==="capitals"?"small-caps":"";return(n=e.el)==null||n.style.setProperty("--media-user-font-variant",a),gs(s);case"fontSize":case"textOpacity":case"textBgOpacity":case"displayBgOpacity":return ys(s);case"textColor":return`rgb(${pt(s)} / var(--media-user-text-opacity, 1))`;case"textShadow":return _s(s);case"textBg":return`rgb(${pt(s)} / var(--media-user-text-bg-opacity, 1))`;case"displayBg":return`rgb(${pt(s)} / var(--media-user-display-bg-opacity, 1))`}}function ys(e){return(parseInt(e)/100).toString()}function gs(e){switch(e){case"mono-serif":return'"Courier New", Courier, "Nimbus Mono L", "Cutive Mono", monospace';case"mono-sans":return'"Deja Vu Sans Mono", "Lucida Console", Monaco, Consolas, "PT Mono", monospace';case"pro-sans":return'Roboto, "Arial Unicode Ms", Arial, Helvetica, Verdana, "PT Sans Caption", sans-serif';case"casual":return'"Comic Sans MS", Impact, Handlee, fantasy';case"cursive":return'"Monotype Corsiva", "URW Chancery L", "Apple Chancery", "Dancing Script", cursive';case"capitals":return'"Arial Unicode Ms", Arial, Helvetica, Verdana, "Marcellus SC", sans-serif + font-variant=small-caps';default:return'"Times New Roman", Times, Georgia, Cambria, "PT Serif Caption", serif'}}function _s(e){switch(e){case"drop shadow":return"rgb(34, 34, 34) 1.86389px 1.86389px 2.79583px, rgb(34, 34, 34) 1.86389px 1.86389px 3.72778px, rgb(34, 34, 34) 1.86389px 1.86389px 4.65972px";case"raised":return"rgb(34, 34, 34) 1px 1px, rgb(34, 34, 34) 2px 2px";case"depressed":return"rgb(204, 204, 204) 1px 1px, rgb(34, 34, 34) -1px -1px";case"outline":return"rgb(34, 34, 34) 0px 0px 1.86389px, rgb(34, 34, 34) 0px 0px 1.86389px, rgb(34, 34, 34) 0px 0px 1.86389px, rgb(34, 34, 34) 0px 0px 1.86389px, rgb(34, 34, 34) 0px 0px 1.86389px";default:return""}}const ve=Xt();function u(){return Jt(ve)}const xs={colorScheme:"system",download:null,customIcons:!1,disableTimeSlider:!1,menuContainer:null,menuGroup:"bottom",noAudioGain:!1,noGestures:!1,noKeyboardAnimations:!1,noModal:!1,noScrubGesture:!1,playbackRates:{min:0,max:2,step:.25},audioGains:{min:0,max:300,step:25},seekStep:10,sliderChaptersMinWidth:325,hideQualityBitrate:!1,smallWhen:!1,thumbnails:null,translations:null,when:!1};var ws=Object.defineProperty,Ts=Object.getOwnPropertyDescriptor,fe=(e,t,s,n)=>{for(var a=Ts(t,s),l=e.length-1,r;l>=0;l--)(r=e[l])&&(a=r(t,s,a)||a);return a&&ws(t,s,a),a};const Rt=class Rt extends Zt{constructor(){super(...arguments),this.cn=_(()=>{const t=this.$props.when();return this.fn(t)}),this.$m=_(()=>{const t=this.$props.smallWhen();return this.fn(t)})}get isMatch(){return this.cn()}get isSmallLayout(){return this.$m()}onSetup(){this.a=y(),this.setAttributes({"data-match":this.cn,"data-sm":()=>this.$m()?"":null,"data-lg":()=>this.$m()?null:"","data-size":()=>this.$m()?"sm":"lg","data-no-scrub-gesture":this.$props.noScrubGesture}),Yt(ve,{...this.$props,when:this.cn,smallWhen:this.$m,userPrefersAnnouncements:T(!0),userPrefersKeyboardAnimations:T(!0),menuPortal:T(null)})}onAttach(t){ee(t,this.$props.colorScheme)}fn(t){return t!=="never"&&(He(t)?t:_(()=>t(this.a.player.state))())}};Rt.props=xs;let W=Rt;fe([se],W.prototype,"isMatch");fe([se],W.prototype,"isSmallLayout");function $e(e,t){S(()=>{const{player:s}=y(),n=s.el;return n&&Q(n,"data-layout",t()&&e),()=>n==null?void 0:n.removeAttribute("data-layout")})}function C(e,t){var s;return((s=e())==null?void 0:s[t])??t}function Pt(){return o(()=>{const{translations:e,userPrefersAnnouncements:t}=u();return t()?i``:null})}function D(e,t=""){return i``}function U(e){return e.map(t=>D(t))}function d(e,t){return o(()=>C(e,t))}function At({tooltip:e}){const{translations:t}=u(),{remotePlaybackState:s}=x(),n=o(()=>{const l=C(t,"AirPlay"),r=ae(s());return`${l} ${r}`}),a=d(t,"AirPlay");return i` + + + + ${D("airplay")} + + + + ${a} + + + `}function be({tooltip:e}){const{translations:t}=u(),{remotePlaybackState:s}=x(),n=o(()=>{const l=C(t,"Google Cast"),r=ae(s());return`${l} ${r}`}),a=d(t,"Google Cast");return i` + + + + ${D("google-cast")} + + + + ${a} + + + `}function nt({tooltip:e}){const{translations:t}=u(),s=d(t,"Play"),n=d(t,"Pause");return i` + + + + ${U(["play","pause","replay"])} + + + + ${s} + ${n} + + + `}function qt({tooltip:e,ref:t=ze}){const{translations:s}=u(),n=d(s,"Mute"),a=d(s,"Unmute");return i` + + + + ${U(["mute","volume-low","volume-high"])} + + + + ${a} + ${n} + + + `}function Mt({tooltip:e}){const{translations:t}=u(),s=d(t,"Closed-Captions On"),n=d(t,"Closed-Captions Off");return i` + + + + ${U(["cc-on","cc-off"])} + + + + ${n} + ${s} + + + `}function ks(){const{translations:e}=u(),t=d(e,"Enter PiP"),s=d(e,"Exit PiP");return i` + + + + ${U(["pip-enter","pip-exit"])} + + + + ${t} + ${s} + + + `}function he({tooltip:e}){const{translations:t}=u(),s=d(t,"Enter Fullscreen"),n=d(t,"Exit Fullscreen");return i` + + + + ${U(["fs-enter","fs-exit"])} + + + + ${s} + ${n} + + + `}function zt({backward:e,tooltip:t}){const{translations:s,seekStep:n}=u(),a=e?"Seek Backward":"Seek Forward",l=d(s,a);return i` + + + (e?-1:1)*n())} + aria-label=${l} + > + ${D(e?"seek-backward":"seek-forward")} + + + + ${d(s,a)} + + + `}function ye(){const{translations:e}=u(),{live:t}=x(),s=d(e,"Skip To Live"),n=d(e,"LIVE");return t()?i` + + ${n} + + `:null}function Ot(){return o(()=>{const{download:e,translations:t}=u(),s=e();if(Qe(s))return null;const{source:n,title:a}=x(),l=n(),r=ie({title:a(),src:l,download:s});return r?i` + + + + + + + + ${d(t,"Download")} + + + `:null})}function It(){const{translations:e}=u();return i` + + `}function O(){return i`
    `}function ge(e,t){return i` + + ${t} + + `}function _e(e,t,s){let n=z(e)?document.querySelector(e):e;n||(n=document.body);const a=document.createElement("div");a.style.display="contents",a.classList.add(t),n.append(a),S(()=>{if(!a)return;const{viewType:r}=x(),c=s();Q(a,"data-view-type",r()),Q(a,"data-sm",c),Q(a,"data-lg",!c),Q(a,"data-size",c?"sm":"lg")});const{colorScheme:l}=u();return ee(a,l),a}function xe({placement:e,tooltip:t,portal:s}){const{textTracks:n}=y(),{viewType:a,clipStartTime:l,clipEndTime:r}=x(),{translations:c,thumbnails:p,menuPortal:v,noModal:f,menuGroup:m,smallWhen:$}=u();if(_(()=>{var Et;const M=l(),K=r()||1/0,H=T(null);oe(n,"chapters",H.set);const V=(Et=H())==null?void 0:Et.cues.filter(Wt=>Wt.startTime<=K&&Wt.endTime>=M);return!(V!=null&&V.length)})())return null;const w=_(()=>f()?J(e):$()?null:J(e)),A=_(()=>!$()&&m()==="bottom"&&a()==="video"?26:0),k=T(!1);function L(){k.set(!0)}function G(){k.set(!1)}const R=i` + + ${o(()=>k()?i` + + + + `:null)} + + `;return i` + + + + + ${D("menu-chapters")} + + + + ${d(c,"Chapters")} + + + ${s?ge(v,R):R} + + `}let Ss=0;function P({label:e="",value:t="",children:s}){if(!e)return i` +
    +
    ${s}
    +
    + `;const n=`vds-menu-section-${++Ss}`;return i` +
    +
    +
    ${e}
    + ${t?i`
    ${t}
    `:null} +
    +
    ${s}
    +
    + `}function j({label:e,children:t}){return i` +
    +
    ${e}
    + ${t} +
    + `}function N({label:e,icon:t,hint:s}){return i` + + ${D("menu-arrow-left","vds-menu-close-icon")} + ${t?D(t,"vds-menu-item-icon"):null} + ${o(e)} + ${s?o(s):null} + ${D("menu-arrow-right","vds-menu-open-icon")} + + `}function Cs({value:e=null,options:t,hideLabel:s=!1,children:n=null,onChange:a=null}){function l(r){const{value:c,label:p}=r;return i` + + ${D("menu-radio-check")} + ${s?null:i` + + ${z(p)?p:o(p)} + + `} + ${_t(n)?n(r):n} + + `}return i` + + ${B(t)?t.map(l):o(()=>t().map(l))} + + `}function Ds(e){return B(e)?e.map(t=>({label:t,value:t.toLowerCase()})):Object.keys(e).map(t=>({label:t,value:e[t]}))}function at(){return i` +
    +
    +
    + `}function it(){return i` + + + + `}function ot({label:e=null,value:t=null,upIcon:s="",downIcon:n="",children:a,isMin:l,isMax:r}){const c=e||t,p=[n?D(n,"down"):null,a,s?D(s,"up"):null];return i` +
    l()?"":null)} + data-max=${o(()=>r()?"":null)} + > + ${c?i` +
    + ${[e?i`
    ${e}
    `:null,t?i`
    ${t}
    `:null]} +
    +
    ${p}
    + `:p} +
    + `}const Ps={...Je,upIcon:"menu-opacity-up",downIcon:"menu-opacity-down"},Lt={...ts,upIcon:"menu-opacity-up",downIcon:"menu-opacity-down"};function As(){return o(()=>{const{hasCaptions:e}=x(),{translations:t}=u();return e()?i` + + ${N({label:()=>C(t,"Caption Styles")})} + + ${[P({label:d(t,"Font"),children:[Ms(),Os()]}),P({label:d(t,"Text"),children:[Is(),Bs(),Ls()]}),P({label:d(t,"Text Background"),children:[Gs(),Fs()]}),P({label:d(t,"Display Background"),children:[Ns(),Rs()]}),P({children:[Vs()]})]} + + + `:null})}function Ms(){return I({label:"Family",option:Ye,type:"fontFamily"})}function Os(){return I({label:"Size",option:Ps,type:"fontSize"})}function Is(){return I({label:"Color",option:xt,type:"textColor"})}function Ls(){return I({label:"Opacity",option:Lt,type:"textOpacity"})}function Bs(){return I({label:"Shadow",option:Xe,type:"textShadow"})}function Gs(){return I({label:"Color",option:xt,type:"textBg"})}function Fs(){return I({label:"Opacity",option:Lt,type:"textBgOpacity"})}function Ns(){return I({label:"Color",option:xt,type:"displayBg"})}function Rs(){return I({label:"Opacity",option:Lt,type:"displayBgOpacity"})}function Vs(){const{translations:e}=u();return i` + + `}function I({label:e,option:t,type:s}){const{player:n}=y(),{translations:a}=u(),l=vt[s],r=()=>C(a,e);function c(){es(),n.dispatchEvent(new Event("vds-font-change"))}if(t.type==="color"){let f=function(m){l.set(m.target.value),c()};return j({label:o(r),children:i` + + `})}if(t.type==="slider"){let f=function(k){l.set(k.detail+"%"),c()};const{min:m,max:$,step:g,upIcon:w,downIcon:A}=t;return ot({label:o(r),value:o(l),upIcon:w,downIcon:A,isMin:()=>l()===m+"%",isMax:()=>l()===$+"%",children:i` + parseInt(l()))} + aria-label=${o(r)} + @value-change=${f} + @drag-value-change=${f} + > + ${at()}${it()} + + `})}const p=Ds(t.values),v=()=>{var $;const f=l(),m=(($=p.find(g=>g.value===f))==null?void 0:$.label)||"";return C(a,z(m)?m:m())};return i` + + ${N({label:r,hint:v})} + + ${Cs({value:l,options:p,onChange({detail:f}){l.set(f),c()}})} + + + `}function lt({label:e,checked:t,defaultChecked:s=!1,storageKey:n,onChange:a}){const{translations:l}=u(),r=n?localStorage.getItem(n):null,c=T(!!(r??s)),p=T(!1),v=o(Ze(c)),f=d(l,e);n&&a(gt(c)),t&&S(()=>void c.set(t()));function m(w){(w==null?void 0:w.button)!==1&&(c.set(A=>!A),n&&localStorage.setItem(n,c()?"1":""),a(c(),w),p.set(!1))}function $(w){wt(w)&&m()}function g(w){w.button===0&&p.set(!0)}return i` +
    p()?"":null)} + @pointerup=${m} + @pointerdown=${g} + @keydown=${$} + >
    + `}function Es(){return o(()=>{const{translations:e}=u();return i` + + ${N({label:()=>C(e,"Accessibility"),icon:"menu-accessibility"})} + + ${[P({children:[Ws(),Ks()]}),P({children:[As()]})]} + + + `})}function Ws(){const{userPrefersAnnouncements:e,translations:t}=u(),s="Announcements";return j({label:d(t,s),children:lt({label:s,storageKey:"vds-player::announcements",onChange(n){e.set(n)}})})}function Ks(){return o(()=>{const{translations:e,userPrefersKeyboardAnimations:t,noKeyboardAnimations:s}=u(),{viewType:n}=x();if(_(()=>n()!=="video"||s())())return null;const l="Keyboard Animations";return j({label:d(e,l),children:lt({label:l,defaultChecked:!0,storageKey:"vds-player::keyboard-animations",onChange(r){t.set(r)}})})})}function Hs(){return o(()=>{const{noAudioGain:e,translations:t}=u(),{audioTracks:s,canSetAudioGain:n}=x();return _(()=>!(n()&&!e())&&s().length<=1)()?null:i` + + ${N({label:()=>C(t,"Audio"),icon:"menu-audio"})} + + ${[Qs(),qs()]} + + + `})}function Qs(){return o(()=>{const{translations:e}=u(),{audioTracks:t}=x(),s=d(e,"Default");return _(()=>t().length<=1)()?null:P({children:i` + + ${N({label:()=>C(e,"Track")})} + + + + + + + `})})}function qs(){return o(()=>{const{noAudioGain:e,translations:t}=u(),{canSetAudioGain:s}=x();if(_(()=>!s()||e())())return null;const{audioGain:a}=x();return P({label:d(t,"Boost"),value:o(()=>Math.round(((a()??1)-1)*100)+"%"),children:[ot({upIcon:"menu-audio-boost-up",downIcon:"menu-audio-boost-down",children:zs(),isMin:()=>((a()??1)-1)*100<=we(),isMax:()=>((a()??1)-1)*100===Te()})]})})}function zs(){const{translations:e}=u(),t=d(e,"Boost"),s=we,n=Te,a=Us;return i` + + ${at()}${it()} + + `}function we(){const{audioGains:e}=u(),t=e();return B(t)?t[0]??0:t.min}function Te(){const{audioGains:e}=u(),t=e();return B(t)?t[t.length-1]??300:t.max}function Us(){const{audioGains:e}=u(),t=e();return B(t)?t[1]-t[0]||25:t.step}function js(){return o(()=>{const{translations:e}=u(),{hasCaptions:t}=x(),s=d(e,"Off");return t()?i` + + ${N({label:()=>C(e,"Captions"),icon:"menu-captions"})} + + + + + + + `:null})}function Zs(){return o(()=>{const{translations:e}=u();return i` + + ${N({label:()=>C(e,"Playback"),icon:"menu-playback"})} + + ${[P({children:Ys()}),Xs(),sn()]} + + + `})}function Ys(){const{remote:e}=y(),{translations:t}=u(),s="Loop";return j({label:d(t,s),children:lt({label:s,storageKey:"vds-player::user-loop",onChange(n,a){e.userPrefersLoopChange(n,a)}})})}function Xs(){return o(()=>{const{translations:e}=u(),{canSetPlaybackRate:t,playbackRate:s}=x();return t()?P({label:d(e,"Speed"),value:o(()=>s()===1?C(e,"Normal"):s()+"x"),children:[ot({upIcon:"menu-speed-up",downIcon:"menu-speed-down",children:tn(),isMin:()=>s()===ke(),isMax:()=>s()===Se()})]}):null})}function ke(){const{playbackRates:e}=u(),t=e();return B(t)?t[0]??0:t.min}function Se(){const{playbackRates:e}=u(),t=e();return B(t)?t[t.length-1]??2:t.max}function Js(){const{playbackRates:e}=u(),t=e();return B(t)?t[1]-t[0]||.25:t.step}function tn(){const{translations:e}=u(),t=d(e,"Speed"),s=ke,n=Se,a=Js;return i` + + ${at()}${it()} + + `}function en(){const{remote:e,qualities:t}=y(),{autoQuality:s,canSetQuality:n,qualities:a}=x(),{translations:l}=u(),r="Auto";return _(()=>!n()||a().length<=1)()?null:j({label:d(l,r),children:lt({label:r,checked:s,onChange(p,v){p?e.requestAutoQuality(v):e.changeQuality(t.selectedIndex,v)}})})}function sn(){return o(()=>{const{hideQualityBitrate:e,translations:t}=u(),{canSetQuality:s,qualities:n,quality:a}=x(),l=_(()=>!s()||n().length<=1),r=_(()=>Ue(n()));return l()?null:P({label:d(t,"Quality"),value:o(()=>{var m,$;const c=(m=a())==null?void 0:m.height,p=e()?null:($=a())==null?void 0:$.bitrate,v=p&&p>0?`${(p/1e6).toFixed(2)} Mbps`:null,f=C(t,"Auto");return c?`${c}p${v?` (${v})`:""}`:f}),children:[ot({upIcon:"menu-quality-up",downIcon:"menu-quality-down",children:nn(),isMin:()=>r()[0]===a(),isMax:()=>r().at(-1)===a()}),en()]})})}function nn(){const{translations:e}=u(),t=d(e,"Quality");return i` + + ${at()}${it()} + + `}function Ce({placement:e,portal:t,tooltip:s}){return o(()=>{const{viewType:n}=x(),{translations:a,menuPortal:l,noModal:r,menuGroup:c,smallWhen:p}=u(),v=_(()=>r()?J(e):p()?null:J(e)),f=_(()=>!p()&&c()==="bottom"&&n()==="video"?26:0),m=T(!1);bs();function $(){m.set(!0)}function g(){m.set(!1)}const w=i` + + ${o(()=>m()?[Zs(),Es(),Hs(),js()]:null)} + + `;return i` + + + + + ${D("menu-settings","vds-rotate-icon")} + + + + ${d(a,"Settings")} + + + ${t?ge(l,w):w} + + `})}function Bt({orientation:e,tooltip:t}){return o(()=>{const{pointer:s,muted:n,canSetVolume:a}=x();if(s()==="coarse"&&!n())return null;if(!a())return qt({tooltip:t});const l=T(void 0),r=qe(l);return i` +
    + ${qt({tooltip:t})} +
    ${an({orientation:e})}
    +
    + `})}function an({orientation:e}={}){const{translations:t}=u(),s=d(t,"Volume");return i` + +
    +
    + + + +
    +
    + `}function Gt(){const e=T(void 0),t=T(0),{thumbnails:s,translations:n,sliderChaptersMinWidth:a,disableTimeSlider:l,seekStep:r,noScrubGesture:c}=u(),p=d(n,"Seek"),v=o(l),f=o(()=>t(){const $=e();$&&t.set($.clientWidth)}),i` + + + + +
    + + +
    + +
    +
    + `}function on(){return i` +
    + ${o(()=>{const{duration:e}=x();return e()?[i``,i`
    /
    `,i``]:null})} +
    + `}function ln(){return o(()=>{const{live:e,duration:t}=x();return e()?ye():t()?i``:null})}function De(){return o(()=>{const{live:e}=x();return e()?ye():on()})}function Pe(){return o(()=>{const{textTracks:e}=y(),{title:t,started:s}=x(),n=T(null);return oe(e,"chapters",n.set),n()&&(s()||!t())?Ae():i``})}function Ae(){return i``}class Me extends me{async Pf(){const t=(await re(()=>import("./vidstack-CRlTZX3Z-YlNA3hI6.js"),__vite__mapDeps([0,1]))).icons,s={};for(const n of Object.keys(t))s[n]=pe({name:n,paths:t[n]});return s}}var F;let rn=(F=class extends W{},F.props={...dt(F,F,"props"),when:({viewType:t})=>t==="audio",smallWhen:({width:t})=>t<576},F);function un(){return[Pt(),It(),i` + + + ${[zt({backward:!0,tooltip:"top start"}),nt({tooltip:"top"}),zt({tooltip:"top"}),cn(),Gt(),ln(),Bt({orientation:"vertical",tooltip:"top"}),Mt({tooltip:"top"}),Ot(),At({tooltip:"top"}),dn()]} + + + `]}function cn(){return o(()=>{let e=T(void 0),t=T(!1),s=y(),{title:n,started:a,currentTime:l,ended:r}=x(),{translations:c}=u(),p=ns(e),v=()=>a()||l()>0;const f=()=>{const g=r()?"Replay":v()?"Continue":"Play";return`${C(c,g)}: ${n()}`};S(()=>{var g;p()&&document.activeElement===document.body&&((g=s.player.el)==null||g.focus())});function m(){const g=e(),w=!!g&&!p()&&g.clientWidth + ${o(f)}${o(()=>v()?Ae():null)} + + `}return ne(e,m),n()?i` + + ${[$(),o(()=>t()&&!p()?$():null)]} + + `:O()})}function dn(){const e="top end";return[xe({tooltip:"top",placement:e,portal:!0}),Ce({tooltip:"top end",placement:e,portal:!0})]}const tt=class tt extends Tt(Ct,rn){constructor(){super(...arguments),this.en=T(!1)}onSetup(){this.forwardKeepAlive=!1,this.a=y(),this.classList.add("vds-audio-layout"),this.Fn()}onConnect(){$e("audio",()=>this.isMatch),this.En()}render(){return o(this.Zm.bind(this))}Zm(){return this.isMatch?un():null}En(){const{menuPortal:t}=u();S(()=>{if(!this.isMatch)return;const s=_e(this.menuContainer,"vds-audio-layout",()=>this.isSmallLayout),n=s?[this,s]:[this];return(this.$props.customIcons()?new Dt(n):new Me(n)).connect(),t.set(s),()=>{s.remove(),t.set(null)}})}Fn(){const{pointer:t}=this.a.$state;S(()=>{t()==="coarse"&&S(this.rn.bind(this))})}rn(){if(!this.en()){Y(this,"pointerdown",this.sn.bind(this),{capture:!0});return}Y(this,"pointerdown",t=>t.stopPropagation()),Y(window,"pointerdown",this.tn.bind(this))}sn(t){const{target:s}=t;ss(s)&&s.closest(".vds-time-slider")&&(t.stopImmediatePropagation(),this.setAttribute("data-scrubbing",""),this.en.set(!0))}tn(){this.en.set(!1),this.removeAttribute("data-scrubbing")}};tt.tagName="media-audio-layout",tt.attrs={smallWhen:{converter(t){return t!=="never"&&!!t}}};let $t=tt;const q=class q extends W{};q.props={...dt(q,q,"props"),when:({viewType:t})=>t==="video",smallWhen:({width:t,height:s})=>t<576||s<380};let bt=q;function Oe(){return o(()=>{const e=y(),{noKeyboardAnimations:t,userPrefersKeyboardAnimations:s}=u();if(_(()=>t()||!s())())return null;const a=T(!1),{lastKeyboardAction:l}=e.$state;S(()=>{a.set(!!l());const m=setTimeout(()=>a.set(!1),500);return()=>{a.set(!1),window.clearTimeout(m)}});const r=_(()=>{var $;const m=($=l())==null?void 0:$.action;return m&&a()?X(m):null}),c=_(()=>`vds-kb-action${a()?"":" hidden"}`),p=_(pn),v=_(()=>{const m=mn();return m?is(m):null});function f(){const m=v();return m?i` +
    +
    ${m}
    +
    + `:null}return i` +
    +
    +
    ${o(p)}
    +
    + ${o(()=>cs(l(),f()))} +
    + `})}function pn(){var n;const{$state:e}=y(),t=(n=e.lastKeyboardAction())==null?void 0:n.action,s=e.audioGain()??1;switch(t){case"toggleMuted":return e.muted()?"0%":Ut(e.volume(),s);case"volumeUp":case"volumeDown":return Ut(e.volume(),s);default:return""}}function Ut(e,t){return`${Math.round(e*t*100)}%`}function mn(){var s;const{$state:e}=y();switch((s=e.lastKeyboardAction())==null?void 0:s.action){case"togglePaused":return e.paused()?"kb-pause-icon":"kb-play-icon";case"toggleMuted":return e.muted()||e.volume()===0?"kb-mute-icon":e.volume()>=.5?"kb-volume-up-icon":"kb-volume-down-icon";case"toggleFullscreen":return`kb-fs-${e.fullscreen()?"enter":"exit"}-icon`;case"togglePictureInPicture":return`kb-pip-${e.pictureInPicture()?"enter":"exit"}-icon`;case"toggleCaptions":return e.hasCaptions()?`kb-cc-${e.textTrack()?"on":"off"}-icon`:null;case"volumeUp":return"kb-volume-up-icon";case"volumeDown":return"kb-volume-down-icon";case"seekForward":return"kb-seek-forward-icon";case"seekBackward":return"kb-seek-backward-icon";default:return null}}function vn(){return[Pt(),Ie(),rt(),Oe(),It(),i`
    `,i` + + ${[$n(),O(),i``,O(),i` + + ${Gt()} + + `,i` + + ${[nt({tooltip:"top start"}),Bt({orientation:"horizontal",tooltip:"top"}),De(),Pe(),Mt({tooltip:"top"}),fn(),At({tooltip:"top"}),be({tooltip:"top"}),Ot(),ks(),he({tooltip:"top end"})]} + + `]} + + `]}function fn(){return o(()=>{const{menuGroup:e}=u();return e()==="bottom"?Ft():null})}function $n(){return i` + + ${o(()=>{const{menuGroup:e}=u();return e()==="top"?[O(),Ft()]:null})} + + `}function bn(){return[Pt(),Ie(),rt(),It(),Oe(),i`
    `,i` + + + ${[At({tooltip:"top start"}),be({tooltip:"bottom start"}),O(),Mt({tooltip:"bottom"}),Ot(),Ft(),Bt({orientation:"vertical",tooltip:"bottom end"})]} + + + ${O()} + + + ${[O(),nt({tooltip:"top"}),O()]} + + + ${O()} + + + ${[De(),Pe(),he({tooltip:"top end"})]} + + + + ${Gt()} + + + `,yn()]}function hn(){return i` +
    + ${[rt(),nt({tooltip:"top"})]} +
    + `}function yn(){return o(()=>{const{duration:e}=x();return e()===0?null:i` +
    + +
    + `})}function rt(){return i` +
    + +
    + `}function Ft(){const{menuGroup:e,smallWhen:t}=u(),s=()=>e()==="top"||t()?"bottom":"top",n=_(()=>`${s()} ${e()==="top"?"end":"center"}`),a=_(()=>`${s()} end`);return[xe({tooltip:n,placement:a,portal:!0}),Ce({tooltip:n,placement:a,portal:!0})]}function Ie(){return o(()=>{const{noGestures:e}=u();return e()?null:i` +
    + + + + + +
    + `})}const et=class et extends Tt(Ct,bt){onSetup(){this.forwardKeepAlive=!1,this.a=y(),this.classList.add("vds-video-layout")}onConnect(){$e("video",()=>this.isMatch),this.En()}render(){return o(this.Zm.bind(this))}En(){const{menuPortal:t}=u();S(()=>{if(!this.isMatch)return;const s=_e(this.menuContainer,"vds-video-layout",()=>this.isSmallLayout),n=s?[this,s]:[this];return(this.$props.customIcons()?new Dt(n):new Me(n)).connect(),t.set(s),()=>{s.remove(),t.set(null)}})}Zm(){const{load:t}=this.a.$props,{canLoad:s,streamType:n,nativeControls:a}=this.a.$state;return!a()&&this.isMatch?t()==="play"&&!s()?hn():n()==="unknown"?rt():this.isSmallLayout?bn():vn():null}};et.tagName="media-video-layout",et.attrs={smallWhen:{converter(t){return t!=="never"&&!!t}}};let ht=et;class gn extends me{async Pf(){const t=(await re(()=>import("./vidstack-DXxIKXmd-pmgBYJSv.js"),__vite__mapDeps([]))).icons,s={};for(const n of Object.keys(t))s[n]=pe({name:n,paths:t[n],viewBox:"0 0 18 18"});return s}}function ut(e,t){var s;return((s=e())==null?void 0:s[t])??t}function _n(){return kn()}function xn(){const e=y(),{load:t}=e.$props,{canLoad:s}=e.$state;return _(()=>t()==="play"&&!s())()?[Le(),jt()]:[wn(),Tn(),jt(),Sn(),En(),Wn()]}function Le(){const e=y(),{translations:t}=b(),{title:s}=e.$state,n=o(()=>`${ut(t,"Play")}, ${s()}`);return i` + + + + `}function wn(){const{controls:e}=b();return o(()=>e().includes("play-large")?Le():null)}function Tn(){const{thumbnails:e,previewTime:t}=b();return i` + t())} + > + `}function jt(){const e=y(),{poster:t}=e.$state,s=o(()=>`background-image: url("${t()}");`);return i`
    `}function kn(){const e=new Set(["captions","pip","airplay","fullscreen"]),{controls:t}=b(),s=o(()=>t().filter(n=>!e.has(n)).map(Be));return i`
    ${s}
    `}function Sn(){const{controls:e}=b(),t=o(()=>e().map(Be));return i`
    ${t}
    `}function Be(e){switch(e){case"airplay":return Cn();case"captions":return Dn();case"current-time":return Rn();case"download":return Vn();case"duration":return Ge();case"fast-forward":return Bn();case"fullscreen":return Pn();case"mute":case"volume":case"mute+volume":return Fn(e);case"pip":return Mn();case"play":return On();case"progress":return Gn();case"restart":return In();case"rewind":return Ln();case"settings":return Kn();default:return null}}function Cn(){const{translations:e}=b();return i` + + + ${h(e,"AirPlay")} + + `}function Dn(){const{translations:e}=b(),t=h(e,"Disable captions"),s=h(e,"Enable captions");return i` + + + + ${t} + ${s} + + `}function Pn(){const{translations:e}=b(),t=h(e,"Enter Fullscreen"),s=h(e,"Exit Fullscreen");return i` + + + + ${s} + ${t} + + `}function An(){const{translations:e}=b(),t=h(e,"Mute"),s=h(e,"Unmute");return i` + + + + ${s} + ${t} + + `}function Mn(){const{translations:e}=b(),t=h(e,"Enter PiP"),s=h(e,"Exit PiP");return i` + + + + + ${s} + ${t} + + `}function On(){const{translations:e}=b(),t=h(e,"Play"),s=h(e,"Pause");return i` + + + + ${s} + ${t} + + `}function In(){const{translations:e}=b(),{remote:t}=y(),s=h(e,"Restart");function n(a){le(a)&&!wt(a)||t.seek(0,a)}return i` + + `}function Ln(){const{translations:e,seekTime:t}=b(),s=o(()=>`${ut(e,"Rewind")} ${t()}s`),n=o(()=>-1*t());return i` + + + ${s} + + `}function Bn(){const{translations:e,seekTime:t}=b(),s=o(()=>`${ut(e,"Forward")} ${t()}s`),n=o(t);return i` + + + ${s} + + `}function Gn(){let e=y(),{duration:t,viewType:s}=e.$state,{translations:n,markers:a,thumbnails:l,seekTime:r,previewTime:c}=b(),p=h(n,"Seek"),v=T(null),f=o(()=>{const k=v();return k?i`${ue(k.label)}
    `:null});function m(k){c.set(k.detail)}function $(){v.set(this)}function g(){v.set(null)}function w(){const k=l(),L=o(()=>s()==="audio");return k?i` + + + + ${f} + + + + + `:i` + + ${f} + + + `}function A(){var L;const k=t();return Number.isFinite(k)?(L=a())==null?void 0:L.map(G=>i` + + `):null}return i` +
    +
    + +
    +
    +
    + ${o(w)}${o(A)} +
    +
    +
    + `}function Fn(e){return o(()=>{const t=e==="mute"||e==="mute+volume",s=e==="volume"||e==="mute+volume";return i` +
    + ${[t?An():null,s?Nn():null]} +
    + `})}function Nn(){const{translations:e}=b(),t=h(e,"Volume");return i` + +
    +
    +
    + `}function Rn(){const e=y(),{translations:t,invertTime:s,toggleTime:n,displayDuration:a}=b(),l=T(gt(s));function r(p){!n()||a()||le(p)&&!wt(p)||l.set(v=>!v)}function c(){return o(()=>a()?Ge():null)}return o(()=>{const{streamType:p}=e.$state,v=h(t,"LIVE"),f=h(t,"Current time"),m=o(()=>!a()&&l());return p()==="live"||p()==="ll-live"?i` + + ${v} + + `:i` + + ${c()} + `})}function Ge(){const{translations:e}=b(),t=h(e,"Duration");return i` + + `}function Vn(){return o(()=>{const e=y(),{translations:t,download:s}=b(),{title:n,source:a}=e.$state,l=a(),r=s(),c=ie({title:n(),src:l,download:r}),p=h(t,"Download");return c?i` + + + ${p} + + `:null})}function En(){return o(()=>{const{clickToPlay:e,clickToFullscreen:t}=b();return[e()?i` + + `:null,t()?i` + + `:null]})}function Wn(){const e=y(),t=T(void 0),s=o(()=>{var n;return ue((n=t())==null?void 0:n.text)});return S(()=>{const n=e.$state.textTrack();if(!n)return;function a(){t.set(n==null?void 0:n.activeCues[0])}return a(),Y(n,"cue-change",a)}),i` +
    + ${s} +
    + `}function Kn(){const{translations:e}=b(),t=h(e,"Settings");return i` +
    + + + + ${t} + + +
    ${[Qn(),jn(),Yn(),zn()]}
    +
    +
    +
    + `}function ct({label:e,children:t}){const s=T(!1);return i` + s.set(!0)} @close=${()=>s.set(!1)}> + ${Hn({label:e,open:s})} + ${t} + + `}function Hn({open:e,label:t}){const{translations:s}=b(),n=o(()=>`plyr__control plyr__control--${e()?"back":"forward"}`);function a(){const l=h(s,"Go back to previous menu");return o(()=>e()?i`${l}`:null)}return i` + + + ${h(s,t)} + + + ${a()} + + `}function Qn(){return ct({label:"Audio",children:qn()})}function qn(){const{translations:e}=b();return i` + + + + `}function zn(){return ct({label:"Speed",children:Un()})}function Un(){const{translations:e,speed:t}=b();return i` + + + + `}function jn(){return ct({label:"Captions",children:Zn()})}function Zn(){const{translations:e}=b();return i` + + + + `}function Yn(){return ct({label:"Quality",children:Xn()})}function Xn(){const{translations:e}=b();return i` + + + + `}function Jn(e){return o(()=>e()?"true":"false")}function h(e,t){return o(()=>ut(e,t))}const Vt=class Vt extends Tt(Ct,ft){onSetup(){this.forwardKeepAlive=!1,this.a=y()}onConnect(){var t;(t=this.a.player.el)==null||t.setAttribute("data-layout","plyr"),E(()=>{var s;return(s=this.a.player.el)==null?void 0:s.removeAttribute("data-layout")}),ps(this,this.a),S(()=>{this.$props.customIcons()?new Dt([this]).connect():new gn([this]).connect()})}render(){return o(this.Zm.bind(this))}Zm(){const{viewType:t}=this.a.$state;return t()==="audio"?_n():t()==="video"?xn():null}};Vt.tagName="media-plyr-layout";let yt=Vt;kt($t);kt(ht);kt(yt); +function __vite__mapDeps(indexes) { + if (!__vite__mapDeps.viteFileDeps) { + __vite__mapDeps.viteFileDeps = ["assets/vidstack-CRlTZX3Z-YlNA3hI6.js","assets/vidstack-DQ6dSZwe-FUyOJuAD.js"] + } + return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) +} diff --git a/assets/vidstack-player-ui-p9274UQD.js b/assets/vidstack-player-ui-p9274UQD.js new file mode 100644 index 000000000..0360a5cdf --- /dev/null +++ b/assets/vidstack-player-ui-p9274UQD.js @@ -0,0 +1,14 @@ +import{C as l,x as $s,o as Hs,G as u,F as fs,H as a,u as x,e as c,aZ as bs,U as Cs,a_ as qs,s as o,a$ as Tt,y as bt,b0 as ys,a as ks,b1 as ws,aI as Ys,c as Os,a2 as Ls,d as s}from"./vidstack-CSaHpIQV-AmLqxEmn.js";import{F as Ss,t as Ts,b as vs,T as As,c as Zs,A as zs,C as Fs,d as Ds,L as js,e as Js,P as Ks,f as Us,S as Is,g as Xs,h as Qs,i as Vs,j as Bs,k as Rs,Q as Ps,l as Gs,m as Es,n as _s,V as Ms,o as Ws,p as ta,G as sa,q as aa,r as ea,s as ia,u as na,v as ca,w as oa,x as ra,y as ha,z as ma,R as la,B as pa,D as ga,E as ua,H as xa,I as da,J as Na,K as Ha,N as fa}from"./vidstack-CpPO9Fgt-6z3IyZQH.js";import{L as La,x as Ta}from"./vidstack-rsZGrNIW-cbZ7VXwC.js";import"./app-8OZtYazS.js";class ba extends l{onAttach(t){t.style.pointerEvents||$s(t,"pointer-events","auto")}}class Ca extends l{constructor(){super(),new Ss}onConnect(t){Hs(u(()=>{if(!this.connectScope)return;this.xb();const e=fs(Ts);Hs(()=>{const i=this.Bd();i&&e._e(i)})}))}xb(){const t=this.Bd(),e=fs(Ts);t&&e.Ze(t)}Bd(){const t=this.el.firstElementChild;return(t==null?void 0:t.localName)==="button"||(t==null?void 0:t.getAttribute("role"))==="button"?t:this.el}}class ya extends vs{}const va=ys(''),H=class H extends a(HTMLElement,As){constructor(){super(...arguments),this.Wm=this.nn()}onSetup(){this.a=x(),this.$state.img.set(this.Wm)}onConnect(){const{src:t,crossOrigin:e}=this.$state;this.Wm.parentNode!==this&&this.prepend(this.Wm),c(()=>{o(this.Wm,"src",t()),o(this.Wm,"crossorigin",e())})}nn(){return bs(va)}};H.tagName="media-thumbnail",H.attrs={crossOrigin:"crossorigin"};let N=H;const Ct=class Ct extends a(HTMLElement,Zs){onConnect(){c(()=>{this.textContent=this.$state.timeText()})}};Ct.tagName="media-time";let C=Ct;const yt=class yt extends a(HTMLElement,zs){};yt.tagName="media-airplay-button";let y=yt;const vt=class vt extends a(HTMLElement,Fs){};vt.tagName="media-caption-button";let v=vt;const Wt=class Wt extends a(HTMLElement,Ds){};Wt.tagName="media-fullscreen-button";let W=Wt;const $t=class $t extends a(HTMLElement,js){};$t.tagName="media-live-button";let $=$t;const qt=class qt extends a(HTMLElement,Js){};qt.tagName="media-mute-button";let q=qt;const kt=class kt extends a(HTMLElement,Ks){};kt.tagName="media-pip-button";let k=kt;const wt=class wt extends a(HTMLElement,Us){};wt.tagName="media-play-button";let w=wt;const Yt=class Yt extends a(HTMLElement,Is){};Yt.tagName="media-seek-button";let Y=Yt;function g(m,t){u(()=>{if(!m.connectScope)return;const e=m.querySelector("template");e&&c(()=>{const i=m.getOptions();Tt(e,i.length,(n,h)=>{const{label:r,value:d}=i[h],p=n.querySelector('[data-part="label"]');n.setAttribute("value",d),p&&(bt(r)?p.textContent=r:c(()=>{p.textContent=r()})),t==null||t(n,i[h],h)})})})}const Ot=class Ot extends a(HTMLElement,Xs){onConnect(){g(this)}};Ot.tagName="media-audio-radio-group";let O=Ot;const St=class St extends a(HTMLElement,Qs){onConnect(){g(this)}};St.tagName="media-captions-radio-group";let S=St;const At=class At extends a(HTMLElement,Vs){};At.tagName="media-menu";let A=At;const Zt=class Zt extends a(HTMLElement,vs){};Zt.tagName="media-menu-button";let Z=Zt;const zt=class zt extends a(HTMLElement,ya){};zt.tagName="media-menu-item";let z=zt;const Ft=class Ft extends a(HTMLElement,Bs){};Ft.tagName="media-menu-items";let F=Ft;const Dt=class Dt extends a(HTMLElement,Rs){onConnect(){g(this)}};Dt.tagName="media-speed-radio-group";let D=Dt;const jt=class jt extends a(HTMLElement,Ps){onConnect(){g(this,(t,e)=>{const i=e.bitrate,n=t.querySelector('[data-part="bitrate"]');i&&n&&c(()=>{n.textContent=i()||""})})}};jt.tagName="media-quality-radio-group";let j=jt;const Jt=class Jt extends N{onSetup(){super.onSetup(),this.ia=Cs(Ws.state)}onConnect(){super.onConnect(),c(this.Yh.bind(this))}Yh(){const{duration:t,clipStartTime:e}=this.a.$state;this.time=e()+this.ia.pointerRate()*t()}};Jt.tagName="media-slider-thumbnail";let J=Jt;const f=class f extends a(HTMLElement,Gs){onConnect(){c(()=>{this.textContent=this.getValueText()})}};f.tagName="media-slider-value",f.attrs={padMinutes:{converter:qs}};let K=f;const Kt=class Kt extends a(HTMLElement,Es){};Kt.tagName="media-time-slider";let U=Kt;const Ut=class Ut extends a(HTMLElement,_s){};Ut.tagName="media-slider-preview";let I=Ut;const It=class It extends a(HTMLElement,Ms){};It.tagName="media-volume-slider";let X=It;const Xt=class Xt extends a(HTMLElement,ta){};Xt.tagName="media-captions";let Q=Xt;const Qt=class Qt extends a(HTMLElement,sa){};Qt.tagName="media-gesture";let V=Qt;const Vt=class Vt extends a(HTMLElement,aa){};Vt.tagName="media-announcer";let B=Vt;const Bt=class Bt extends a(HTMLElement,ea){};Bt.tagName="media-controls";let R=Bt;const Rt=class Rt extends a(HTMLElement,ba){};Rt.tagName="media-controls-group";let P=Rt;class Wa extends l{}const Pt=class Pt extends a(HTMLElement,Wa){onSetup(){this.a=x()}onConnect(){c(this.td.bind(this))}td(){const{title:t}=this.a.$state;this.textContent=t()}};Pt.tagName="media-title";let G=Pt;const Gt=class Gt extends l{};Gt.props={defaultText:""};let E=Gt;const Et=class Et extends a(HTMLElement,E){onSetup(){this.a=x(),this.bn=ks("")}onConnect(){const t=this.a.textTracks;ws(t,"chapters",this.bn.set),c(this.pn.bind(this))}pn(){const{defaultText:t}=this.$props;this.textContent=this.bn()||t()}};Et.tagName="media-chapter-title";let _=Et;const _t=class _t extends l{onConnect(t){u(()=>{if(!this.connectScope)return;const e=t.querySelector("svg"),i=e.firstElementChild,n=i.nextElementSibling;c(this.Ha.bind(this,e,i,n))})}Ha(t,e,i){const{size:n,trackWidth:h,fillPercent:r}=this.$props;o(t,"width",n()),o(t,"height",n()),o(e,"stroke-width",h()),o(i,"stroke-width",h()),o(i,"stroke-dashoffset",100-r())}};_t.props={size:96,trackWidth:8,fillPercent:50};let M=_t;const Mt=class Mt extends a(La,M){render(){return Ta` + + `}};Mt.tagName="media-spinner";let tt=Mt;const ts=class ts extends l{};ts.props={when:!1};let st=ts;const ss=class ss extends a(HTMLElement,st){onSetup(){this.a=x()}onConnect(){c(this.qn.bind(this))}qn(){const t=this.firstElementChild,e=(t==null?void 0:t.localName)==="template",i=this.$props.when();if(!(Ys(i)?i:Os(()=>i(this.a.player.state))())){e?(this.textContent="",this.appendChild(t)):Ls(t)&&(t.style.display="none");return}e?this.append(t.content.cloneNode(!0)):Ls(t)&&(t.style.display="")}};ss.tagName="media-layout";let at=ss;const as=class as extends a(HTMLElement,ia){};as.tagName="media-google-cast-button";let et=as;const es=class es extends a(HTMLElement,na){};es.tagName="media-toggle-button";let it=es;const is=class is extends a(HTMLElement,ca){};is.tagName="media-tooltip";let nt=is;const ns=class ns extends a(HTMLElement,Ca){onConnect(){this.style.display="contents"}};ns.tagName="media-tooltip-trigger";let ct=ns;const cs=class cs extends a(HTMLElement,oa){};cs.tagName="media-tooltip-content";let ot=cs;const L=class L extends a(HTMLElement,ra){};L.tagName="media-menu-portal",L.attrs={disabled:{converter(t){return bt(t)?t:t!==null}}};let rt=L;const os=class os extends a(HTMLElement,ha){onConnect(){g(this,(t,e)=>{const{cue:i,startTime:n,duration:h}=e,r=t.querySelector(".vds-thumbnail,media-thumbnail"),d=t.querySelector('[data-part="start-time"]'),p=t.querySelector('[data-part="duration"]');d&&(d.textContent=n),p&&(p.textContent=h),r&&(r.setAttribute("time",i.startTime+""),c(()=>{const b=this.$props.thumbnails();"src"in r?r.src=b:bt(b)&&r.setAttribute("src",b)}))})}};os.tagName="media-chapters-radio-group";let ht=os;const rs=class rs extends a(HTMLElement,ma){onConnect(){g(this)}};rs.tagName="media-audio-gain-radio-group";let mt=rs;const hs=class hs extends a(HTMLElement,la){};hs.tagName="media-radio";let lt=hs;const ms=class ms extends a(HTMLElement,pa){};ms.tagName="media-radio-group";let pt=ms;const ls=class ls extends a(HTMLElement,Ws){};ls.tagName="media-slider";let gt=ls;const $a=ys(''),ps=class ps extends a(HTMLElement,ga){constructor(){super(...arguments),this.m=this.an()}onSetup(){this.a=x(),this.$state.video.set(this.m)}onConnect(){const{canLoad:t}=this.a.$state,{src:e,crossOrigin:i}=this.$state;this.m.parentNode!==this&&this.prepend(this.m),c(()=>{o(this.m,"crossorigin",i()),o(this.m,"preload",t()?"auto":"none"),o(this.m,"src",e())})}an(){return bs($a)}};ps.tagName="media-slider-video";let ut=ps;const gs=class gs extends a(HTMLElement,ua){};gs.tagName="media-audio-gain-slider";let xt=gs;const us=class us extends a(HTMLElement,xa){};us.tagName="media-speed-slider";let dt=us;const xs=class xs extends a(HTMLElement,da){};xs.tagName="media-quality-slider";let Nt=xs;const ds=class ds extends a(HTMLElement,Na){constructor(){super(...arguments),this.Ym=null}onConnect(){u(()=>{if(!this.connectScope)return;const t=this.querySelector("template");t&&(this.Ym=t,c(this.un.bind(this)))})}un(){if(!this.Ym)return;const t=Tt(this.Ym,this.cues.length||1);this.setRefs(t)}};ds.tagName="media-slider-chapters";let Ht=ds;class qa extends l{}const Ns=class Ns extends a(HTMLElement,qa){constructor(){super(...arguments),this.Ym=null}onConnect(t){u(()=>{this.connectScope&&(this.Ym=t.querySelector("template"),this.Ym&&c(this.Zm.bind(this)))})}Zm(){if(!this.Ym)return;const{min:t,max:e,step:i}=Cs(Ha),n=(e()-t())/i();Tt(this.Ym,Math.floor(n)+1)}};Ns.tagName="media-slider-steps";let ft=Ns;const T=class T extends a(HTMLElement,fa){constructor(){super(...arguments),this.Wm=document.createElement("img")}onSetup(){this.$state.img.set(this.Wm)}onConnect(){const{src:t,alt:e,crossOrigin:i}=this.$state;this.Wm.parentNode!==this&&this.prepend(this.Wm),c(()=>{o(this.Wm,"alt",e()),o(this.Wm,"crossorigin",i()),o(this.Wm,"src",t()||"")}),c(()=>{const{loading:n,hidden:h}=this.$state;this.Wm.style.display=n()||h()?"none":""})}};T.tagName="media-poster",T.attrs={crossOrigin:"crossorigin"};let Lt=T;s(at);s(R);s(P);s(Lt);s(B);s(nt);s(ct);s(ot);s(w);s(q);s(v);s(W);s(k);s(Y);s(y);s(et);s(it);s(gt);s(xt);s(X);s(U);s(dt);s(Nt);s(Ht);s(ft);s(I);s(K);s(J);s(ut);s(A);s(Z);s(rt);s(F);s(z);s(O);s(S);s(D);s(mt);s(j);s(ht);s(pt);s(lt);s(V);s(N);s(Q);s($);s(C);s(G);s(_);s(tt); diff --git a/assets/vidstack-rsZGrNIW-cbZ7VXwC.js b/assets/vidstack-rsZGrNIW-cbZ7VXwC.js new file mode 100644 index 000000000..f22722fed --- /dev/null +++ b/assets/vidstack-rsZGrNIW-cbZ7VXwC.js @@ -0,0 +1,35 @@ +/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */var P;const w=window,g=w.trustedTypes,D=g?g.createPolicy("lit-html",{createHTML:s=>s}):void 0,G="$lit$",_=`lit$${(Math.random()+"").slice(9)}$`,Y="?"+_,et=`<${Y}>`,f=document,x=()=>f.createComment(""),T=s=>s===null||typeof s!="object"&&typeof s!="function",q=Array.isArray,it=s=>q(s)||typeof(s==null?void 0:s[Symbol.iterator])=="function",L=`[ +\f\r]`,H=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,V=/-->/g,O=/>/g,v=RegExp(`>|${L}(?:([^\\s"'>=/]+)(${L}*=${L}*(?:[^ +\f\r"'\`<>=]|("|')|))|$)`,"g"),W=/'/g,j=/"/g,F=/^(?:script|style|textarea|title)$/i,st=s=>(t,...e)=>({_$litType$:s,strings:t,values:e}),ft=st(1),m=Symbol.for("lit-noChange"),d=Symbol.for("lit-nothing"),z=new WeakMap,p=f.createTreeWalker(f,129,null,!1);function J(s,t){if(!Array.isArray(s)||!s.hasOwnProperty("raw"))throw Error("invalid template strings array");return D!==void 0?D.createHTML(t):t}const nt=(s,t)=>{const e=s.length-1,i=[];let n,r=t===2?"":"",o=H;for(let $=0;$"?(o=n??H,a=-1):c[1]===void 0?a=-2:(a=o.lastIndex-c[2].length,h=c[1],o=c[3]===void 0?v:c[3]==='"'?j:W):o===j||o===W?o=v:o===V||o===O?o=H:(o=v,n=void 0);const A=o===v&&s[$+1].startsWith("/>")?" ":"";r+=o===H?l+et:a>=0?(i.push(h),l.slice(0,a)+G+l.slice(a)+_+A):l+_+(a===-2?(i.push(void 0),$):A)}return[J(s,r+(s[e]||"")+(t===2?"":"")),i]};class C{constructor({strings:t,_$litType$:e},i){let n;this.parts=[];let r=0,o=0;const $=t.length-1,l=this.parts,[h,c]=nt(t,e);if(this.el=C.createElement(h,i),p.currentNode=this.el.content,e===2){const a=this.el.content,u=a.firstChild;u.remove(),a.append(...u.childNodes)}for(;(n=p.nextNode())!==null&&l.length<$;){if(n.nodeType===1){if(n.hasAttributes()){const a=[];for(const u of n.getAttributeNames())if(u.endsWith(G)||u.startsWith(_)){const A=c[o++];if(a.push(u),A!==void 0){const tt=n.getAttribute(A.toLowerCase()+G).split(_),b=/([.?@])?(.*)/.exec(A);l.push({type:1,index:r,name:b[2],strings:tt,ctor:b[1]==="."?rt:b[1]==="?"?ht:b[1]==="@"?dt:S})}else l.push({type:6,index:r})}for(const u of a)n.removeAttribute(u)}if(F.test(n.tagName)){const a=n.textContent.split(_),u=a.length-1;if(u>0){n.textContent=g?g.emptyScript:"";for(let A=0;A2||i[0]!==""||i[1]!==""?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=d}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,n){const r=this.strings;let o=!1;if(r===void 0)t=y(this,t,e,0),o=!T(t)||t!==this._$AH&&t!==m,o&&(this._$AH=t);else{const $=t;let l,h;for(t=r[0],l=0;l{var i,n;const r=(i=e==null?void 0:e.renderBefore)!==null&&i!==void 0?i:t;let o=r._$litPart$;if(o===void 0){const $=(n=e==null?void 0:e.renderBefore)!==null&&n!==void 0?n:null;r._$litPart$=o=new M(t.insertBefore(x(),$),$,void 0,e??{})}return o._$AI(s),o};/** + * @license + * Copyright 2020 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const ct=s=>s.strings===void 0,at={},ut=(s,t=at)=>s._$AH=t;/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const K={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},k=s=>(...t)=>({_$litDirective$:s,values:t});let R=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}};/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const N=(s,t)=>{var e,i;const n=s._$AN;if(n===void 0)return!1;for(const r of n)(i=(e=r)._$AO)===null||i===void 0||i.call(e,t,!1),N(r,t);return!0},E=s=>{let t,e;do{if((t=s._$AM)===void 0)break;e=t._$AN,e.delete(s),s=t}while((e==null?void 0:e.size)===0)},X=s=>{for(let t;t=s._$AM;s=t){let e=t._$AN;if(e===void 0)t._$AN=e=new Set;else if(e.has(s))break;e.add(s),vt(t)}};function At(s){this._$AN!==void 0?(E(this),this._$AM=s,X(this)):this._$AM=s}function _t(s,t=!1,e=0){const i=this._$AH,n=this._$AN;if(n!==void 0&&n.size!==0)if(t)if(Array.isArray(i))for(let r=e;r{var t,e,i,n;s.type==K.CHILD&&((t=(i=s)._$AP)!==null&&t!==void 0||(i._$AP=_t),(e=(n=s)._$AQ)!==null&&e!==void 0||(n._$AQ=At))};class pt extends R{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,i){super._$AT(t,e,i),X(this),this.isConnected=t._$AU}_$AO(t,e=!0){var i,n;t!==this.isConnected&&(this.isConnected=t,t?(i=this.reconnected)===null||i===void 0||i.call(this):(n=this.disconnected)===null||n===void 0||n.call(this)),e&&(N(this,t),E(this))}setValue(t){if(ct(this._$Ct))this._$Ct._$AI(t,this);else{const e=[...this._$Ct._$AH];e[this._$Ci]=t,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}}/** + * @license + * Copyright 2018 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const mt=s=>s??d,B=new WeakMap,yt=k(class extends pt{render(s){return d}update(s,[t]){var e;const i=t!==this.G;return i&&this.G!==void 0&&this.ot(void 0),(i||this.rt!==this.lt)&&(this.G=t,this.dt=(e=s.options)===null||e===void 0?void 0:e.host,this.ot(this.lt=s.element)),d}ot(s){var t;if(typeof this.G=="function"){const e=(t=this.dt)!==null&&t!==void 0?t:globalThis;let i=B.get(e);i===void 0&&(i=new WeakMap,B.set(e,i)),i.get(this.G)!==void 0&&this.G.call(this.dt,void 0),i.set(this.G,s),s!==void 0&&this.G.call(this.dt,s)}else this.G.value=s}get rt(){var s,t,e;return typeof this.G=="function"?(t=B.get((s=this.dt)!==null&&s!==void 0?s:globalThis))===null||t===void 0?void 0:t.get(this.G):(e=this.G)===null||e===void 0?void 0:e.value}disconnected(){this.rt===this.lt&&this.ot(void 0)}reconnected(){this.ot(this.lt)}});/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */class I extends R{constructor(t){if(super(t),this.et=d,t.type!==K.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===d||t==null)return this.ft=void 0,this.et=t;if(t===m)return t;if(typeof t!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.et)return this.ft;this.et=t;const e=[t];return e.raw=e,this.ft={_$litType$:this.constructor.resultType,strings:e,values:[]}}}I.directiveName="unsafeHTML",I.resultType=1;const Ht=k(I);/** + * @license + * Copyright 2017 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */class U extends I{}U.directiveName="unsafeSVG",U.resultType=2;const Nt=k(U);/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: BSD-3-Clause + */const xt=k(class extends R{constructor(){super(...arguments),this.key=d}render(s,t){return this.key=s,t}update(s,[t,e]){return t!==this.key&&(ut(s),this.key=t),e}});class Tt extends HTMLElement{constructor(){super(...arguments),this.rootPart=null}connectedCallback(){this.rootPart=Q(this.render(),this,{renderBefore:this.firstChild}),this.rootPart.setConnected(!0)}disconnectedCallback(){var t;(t=this.rootPart)==null||t.setConnected(!1),this.rootPart=null,Q(null,this)}}export{d as A,Q as D,Tt as L,Ht as a,pt as c,k as e,xt as i,mt as l,yt as n,Nt as o,K as t,ft as x}; diff --git a/assets/vidstack-video-v9KwwqnU.js b/assets/vidstack-video-v9KwwqnU.js new file mode 100644 index 000000000..03404bb0e --- /dev/null +++ b/assets/vidstack-video-v9KwwqnU.js @@ -0,0 +1 @@ +import{Y as p,b5 as u,b6 as o,b7 as f,o as d,B as m,T as n,l as c,D as g}from"./vidstack-CSaHpIQV-AmLqxEmn.js";import{H as b,a as P}from"./vidstack-DqOrqs52-JpMSlmyh.js";import"./app-8OZtYazS.js";import"./vidstack-D6ttsqNA-rfrnkY7F.js";import"./vidstack-CpPO9Fgt-6z3IyZQH.js";class k{constructor(t,e){this.m=t,this.b=e,t.textTracks.onaddtrack=this.Yd.bind(this),d(this.ce.bind(this))}Yd(t){const e=t.track;if(!e||T(this.m,e))return;const i=new m({id:e.id,kind:e.kind,label:e.label??"",language:e.language,type:"vtt"});i[n._]={track:e},i[n.ma]=2,i[n.Mf]=!0;let s=0;const h=l=>{if(e.cues)for(let a=s;ae.track===t)}class x{constructor(t,e){this.m=t,this.a=e,this.E=(i,s)=>{this.a.delegate.c("picture-in-picture-change",i,s)},c(this.m,"enterpictureinpicture",this.Gi.bind(this)),c(this.m,"leavepictureinpicture",this.Hi.bind(this))}get active(){return document.pictureInPictureElement===this.m}get supported(){return o(this.m)}async enter(){return this.m.requestPictureInPicture()}exit(){return document.exitPictureInPicture()}Gi(t){this.E(!0,t)}Hi(t){this.E(!1,t)}}class y{constructor(t,e){this.m=t,this.a=e,this.U="inline",c(this.m,"webkitpresentationmodechanged",this.hb.bind(this))}get pb(){return u(this.m)}async fd(t){this.U!==t&&this.m.webkitSetPresentationMode(t)}hb(t){var i;const e=this.U;this.U=this.m.webkitPresentationMode,(i=this.a.player)==null||i.dispatch(new g("video-presentation-change",{detail:this.U,trigger:t})),["fullscreen","picture-in-picture"].forEach(s=>{(this.U===s||e===s)&&this.a.delegate.c(`${s}-change`,this.U===s,t)})}}class O{constructor(t){this.Oa=t}get active(){return this.Oa.U==="fullscreen"}get supported(){return this.Oa.pb}async enter(){this.Oa.fd("fullscreen")}async exit(){this.Oa.fd("inline")}}class w{constructor(t){this.Oa=t}get active(){return this.Oa.U==="picture-in-picture"}get supported(){return this.Oa.pb}async enter(){this.Oa.fd("picture-in-picture")}async exit(){this.Oa.fd("inline")}}class H extends b{constructor(t,e){super(t,e),this.$$PROVIDER_TYPE="VIDEO",p(()=>{if(this.airPlay=new P(t,e),u(t)){const i=new y(t,e);this.fullscreen=new O(i),this.pictureInPicture=new w(i)}else o(t)&&(this.pictureInPicture=new x(t,e))},this.scope)}get type(){return"video"}setup(){super.setup(),f(this.video)&&new k(this.video,this.b),this.b.textRenderers.Xf(this.video),d(()=>{this.b.textRenderers.Xf(null)}),this.type==="video"&&this.b.delegate.c("provider-setup",this)}get video(){return this.a}}export{H as VideoProvider}; diff --git a/assets/vidstack-vimeo-bBnyvV-m.js b/assets/vidstack-vimeo-bBnyvV-m.js new file mode 100644 index 000000000..b60b28ead --- /dev/null +++ b/assets/vidstack-vimeo-bBnyvV-m.js @@ -0,0 +1 @@ +import{Z as p,as as h,a as d,aa as k,e as u,p as l,y as v,aj as m,ad as o,l as y,ae as w,B as T}from"./vidstack-CSaHpIQV-AmLqxEmn.js";import{U as b}from"./vidstack-CpPO9Fgt-6z3IyZQH.js";import{R as $}from"./vidstack-D6ttsqNA-rfrnkY7F.js";import{E as j,t as f}from"./vidstack-CW1cJiXX-4tDZFFJS.js";import{resolveVimeoVideoId as I,getVimeoVideoInfo as R}from"./vidstack-BInq9zTH-fGAq8GWc.js";import"./app-8OZtYazS.js";const P=["bufferend","bufferstart","durationchange","ended","enterpictureinpicture","error","fullscreenchange","leavepictureinpicture","loaded","playProgress","loadProgress","pause","play","playbackratechange","qualitychange","seeked","seeking","timeupdate","volumechange","waiting"];class Q extends j{constructor(t,e){super(t),this.b=e,this.$$PROVIDER_TYPE="VIMEO",this.scope=p(),this.ga=0,this.ba=new h(0,0),this.Aa=new h(0,0),this.I=null,this.R=null,this.ue=null,this.ha=d(""),this.tc=d(!1),this.ve=null,this.K=null,this.Yi=null,this.fa=new $(this.kc.bind(this)),this.hd=null,this.cookies=!1,this.title=!0,this.byline=!0,this.portrait=!0,this.color="00ADEF",this.jd=!1}get c(){return this.b.delegate.c}get type(){return"vimeo"}get currentSrc(){return this.K}get videoId(){return this.ha()}get hash(){return this.ve}get isPro(){return this.tc()}preconnect(){k(this.Nb())}setup(){super.setup(),u(this.we.bind(this)),u(this.Zi.bind(this)),u(this._i.bind(this)),this.c("provider-setup",this)}destroy(){this.z(),this.t("destroy")}async play(){const{paused:t}=this.b.$state;return this.I||(this.I=f(()=>{if(this.I=null,t())return"Timed out."}),this.t("play")),this.I.promise}async pause(){const{paused:t}=this.b.$state;return this.R||(this.R=f(()=>{if(this.R=null,!t())return"Timed out."}),this.t("pause")),this.R.promise}setMuted(t){this.t("setMuted",t)}setCurrentTime(t){this.t("seekTo",t),this.c("seeking",t)}setVolume(t){this.t("setVolume",t),this.t("setMuted",l(this.b.$state.muted))}setPlaybackRate(t){this.t("setPlaybackRate",t)}async loadSource(t){if(!v(t.src)){this.K=null,this.ve=null,this.ha.set("");return}const{videoId:e,hash:s}=I(t.src);this.ha.set(e??""),this.ve=s??null,this.K=t}we(){this.z();const t=this.ha();if(!t){this.sc.set("");return}this.sc.set(`${this.Nb()}/video/${t}`),this.c("load-start")}Zi(){const t=this.ha();if(!t)return;const e=m(),s=new AbortController;return this.ue=e,R(t,s,this.ve).then(i=>{e.resolve(i)}).catch(i=>{e.reject()}),()=>{e.reject(),s.abort()}}_i(){const t=this.tc(),{$state:e,qualities:s}=this.b;if(e.canSetPlaybackRate.set(t),s[o.Od](!t),t)return y(s,"change",()=>{var a;if(s.auto)return;const i=(a=s.selected)==null?void 0:a.id;i&&this.t("setQuality",i)})}Nb(){return"https://player.vimeo.com"}mg(){const{keyDisabled:t}=this.b.$props,{playsInline:e,nativeControls:s}=this.b.$state,i=s();return{title:this.title,byline:this.byline,color:this.color,portrait:this.portrait,controls:i,h:this.hash,keyboard:i&&!t(),transparent:!0,playsinline:e(),dnt:!this.cookies}}kc(){this.t("getCurrentTime")}mc(t,e){if(this.jd&&t===0)return;const{realCurrentTime:s,realDuration:i,paused:a,bufferedEnd:n}=this.b.$state;if(s()===t)return;const c=s(),r={currentTime:t,played:this.uc(t)};this.c("time-update",r,e),Math.abs(c-t)>1.5&&(this.c("seeking",t,e),!a()&&n(){this.jd=!1},500))}uc(t){return this.ga>=t?this.ba:this.ba=new h(0,this.ga=t)}ob(t,e){this.c("seeked",t,e)}tb(t){var s;const e=this.ha();(s=this.ue)==null||s.promise.then(i=>{if(!i)return;const{title:a,poster:n,duration:c,pro:r}=i;this.tc.set(r),this.c("title-change",a,t),this.c("poster-change",n,t),this.c("duration-change",c,t),this.kd(c,t)}).catch(()=>{e===this.ha()&&(this.t("getVideoTitle"),this.t("getDuration"))})}kd(t,e){const{nativeControls:s}=this.b.$state,i=s();this.Aa=new h(0,t);const a={buffered:new h(0,0),seekable:this.Aa,duration:t};this.b.delegate.Ga(a,e),i||this.t("_hideOverlay"),this.t("getQualities"),this.t("getChapters")}$i(t,e,s){switch(t){case"getVideoTitle":const i=e;this.c("title-change",i,s);break;case"getDuration":const a=e;this.b.$state.canPlay()?this.c("duration-change",a,s):this.kd(a,s);break;case"getCurrentTime":this.mc(e,s);break;case"getBuffered":w(e)&&e.length&&this.ng(e[e.length-1][1],s);break;case"setMuted":this.Na(l(this.b.$state.volume),e,s);break;case"getChapters":this.aj(e);break;case"getQualities":this.ld(e,s);break}}bj(){for(const t of P)this.t("addEventListener",t)}ib(t){var e;this.fa.$(),this.c("pause",void 0,t),(e=this.R)==null||e.resolve(),this.R=null}gc(t){var e;this.fa.Xa(),this.c("play",void 0,t),(e=this.I)==null||e.resolve(),this.I=null}cj(t){const{paused:e}=this.b.$state;!e()&&!this.jd&&this.c("playing",void 0,t)}ng(t,e){const s={buffered:new h(0,t),seekable:this.Aa};this.c("progress",s,e)}dj(t){this.c("waiting",void 0,t)}ej(t){const{paused:e}=this.b.$state;e()||this.c("playing",void 0,t)}ee(t){const{paused:e}=this.b.$state;e()&&this.c("play",void 0,t),this.c("waiting",void 0,t)}Na(t,e,s){const i={volume:t,muted:e};this.c("volume-change",i,s)}aj(t){if(this.og(),!t.length)return;const e=new T({kind:"chapters",default:!0}),{realDuration:s}=this.b.$state;for(let i=0;is.id==="auto")?()=>this.t("setQuality","auto"):void 0;for(const s of t){if(s.id==="auto")continue;const i=+s.id.slice(0,-1);isNaN(i)||this.b.qualities[o.da]({id:s.id,width:i*(16/9),height:i,codec:"avc1,h.264",bitrate:-1},e)}this.Za(t.find(s=>s.active),e)}Za({id:t}={},e){if(!t)return;const s=t==="auto",i=this.b.qualities.getById(t);s?(this.b.qualities[b.Wa](s,e),this.b.qualities[o.ea](void 0,!0,e)):this.b.qualities[o.ea](i??void 0,!0,e)}fj(t,e,s){switch(t){case"ready":this.bj();break;case"loaded":this.tb(s);break;case"play":this.gc(s);break;case"playProgress":this.cj(s);break;case"pause":this.ib(s);break;case"loadProgress":this.ng(e.seconds,s);break;case"waiting":this.ee(s);break;case"bufferstart":this.dj(s);break;case"bufferend":this.ej(s);break;case"volumechange":this.Na(e.volume,l(this.b.$state.muted),s);break;case"durationchange":this.Aa=new h(0,e.duration),this.c("duration-change",e.duration,s);break;case"playbackratechange":this.c("rate-change",e.playbackRate,s);break;case"qualitychange":this.Za(e,s);break;case"fullscreenchange":this.c("fullscreen-change",e.fullscreen,s);break;case"enterpictureinpicture":this.c("picture-in-picture-change",!0,s);break;case"leavepictureinpicture":this.c("picture-in-picture-change",!1,s);break;case"ended":this.c("end",void 0,s);break;case"error":this.Q(e,s);break;case"seek":case"seeked":this.ob(e.seconds,s);break}}Q(t,e){var s;if(t.method==="setPlaybackRate"&&this.tc.set(!1),t.method==="play"){(s=this.I)==null||s.reject(t.message);return}}te(t,e){t.event?this.fj(t.event,t.data,e):t.method&&this.$i(t.method,t.value,e)}gd(){}t(t,e){return this.se({method:t,value:e})}z(){this.fa.$(),this.ga=0,this.ba=new h(0,0),this.Aa=new h(0,0),this.I=null,this.R=null,this.ue=null,this.Yi=null,this.tc.set(!1),this.og()}}export{Q as VimeoProvider}; diff --git a/assets/vidstack-youtube-M8CpvVcm.js b/assets/vidstack-youtube-M8CpvVcm.js new file mode 100644 index 000000000..738f5c034 --- /dev/null +++ b/assets/vidstack-youtube-M8CpvVcm.js @@ -0,0 +1 @@ +import{Z as m,a as y,as as r,aa as v,e as g,y as k,aw as w,k as u,aI as f}from"./vidstack-CSaHpIQV-AmLqxEmn.js";import{E as I,t as p}from"./vidstack-CW1cJiXX-4tDZFFJS.js";import{resolveYouTubeVideoId as R}from"./vidstack-DscYSLiW-_wDIXJ0I.js";import"./app-8OZtYazS.js";const c={Om:-1,pg:0,qg:1,gj:2,hj:3,ij:5};class _ extends I{constructor(t,s){super(t),this.b=s,this.$$PROVIDER_TYPE="YOUTUBE",this.scope=m(),this.ha=y(""),this.za=-1,this.md=-1,this.vc=!1,this.ga=0,this.ba=new r(0,0),this.K=null,this.I=null,this.R=null,this.language="en",this.color="red",this.cookies=!1}get c(){return this.b.delegate.c}get currentSrc(){return this.K}get type(){return"youtube"}get videoId(){return this.ha()}preconnect(){v(this.Nb())}setup(){super.setup(),g(this.we.bind(this)),this.c("provider-setup",this)}async play(){const{paused:t}=this.b.$state;return this.I||(this.I=p(()=>{if(this.I=null,t())return"Timed out."}),this.t("playVideo")),this.I.promise}async pause(){const{paused:t}=this.b.$state;return this.R||(this.R=p(()=>{this.R=null,t()}),this.t("pauseVideo")),this.R.promise}setMuted(t){t?this.t("mute"):this.t("unMute")}setCurrentTime(t){this.vc=this.b.$state.paused(),this.t("seekTo",t),this.c("seeking",t)}setVolume(t){this.t("setVolume",t*100)}setPlaybackRate(t){this.t("setPlaybackRate",t)}async loadSource(t){if(!k(t.src)){this.K=null,this.ha.set("");return}const s=R(t.src);this.ha.set(s??""),this.K=t}Nb(){return this.cookies?"https://www.youtube.com":"https://www.youtube-nocookie.com"}we(){this.z();const t=this.ha();if(!t){this.sc.set("");return}this.sc.set(`${this.Nb()}/embed/${t}`),this.c("load-start")}mg(){const{keyDisabled:t}=this.b.$props,{muted:s,playsInline:a,nativeControls:h}=this.b.$state,e=h();return{autoplay:0,cc_lang_pref:this.language,cc_load_policy:e?1:void 0,color:this.color,controls:e?1:0,disablekb:!e||t()?1:0,enablejsapi:1,fs:1,hl:this.language,iv_load_policy:e?1:3,mute:s()?1:0,playsinline:a()?1:0}}t(t,s){this.se({event:"command",func:t,args:s?[s]:void 0})}gd(){window.setTimeout(()=>this.se({event:"listening"}),100)}kd(t){this.c("loaded-metadata"),this.c("loaded-data"),this.b.delegate.Ga(void 0,t)}ib(t){var s;(s=this.R)==null||s.resolve(),this.R=null,this.c("pause",void 0,t)}mc(t,s){const{duration:a,realCurrentTime:h}=this.b.$state,e=this.za===c.pg,i=e?a():t,o={currentTime:i,played:this.uc(i)};this.c("time-update",o,s),!e&&Math.abs(i-h())>1&&this.c("seeking",i,s)}uc(t){return this.ga>=t?this.ba:this.ba=new r(0,this.ga=t)}nb(t,s,a){const h={buffered:new r(0,t),seekable:s};this.c("progress",h,a);const{seeking:e,realCurrentTime:i}=this.b.$state;e()&&t>i()&&this.ob(a)}ob(t){const{paused:s,realCurrentTime:a}=this.b.$state;window.clearTimeout(this.md),this.md=window.setTimeout(()=>{this.c("seeked",a(),t),this.md=-1},s()?100:0),this.vc=!1}lc(t){const{seeking:s}=this.b.$state;s()&&this.ob(t),this.c("pause",void 0,t),this.c("end",void 0,t)}ie(t,s){var d,n;const{started:a,paused:h,seeking:e}=this.b.$state,i=t===c.qg,o=t===c.hj,l=(h()||this.I)&&(o||i);if(o&&this.c("waiting",void 0,s),e()&&i&&this.ob(s),!a()&&l&&this.vc){(d=this.I)==null||d.reject("invalid internal play operation"),this.I=null,i&&(this.pause(),this.vc=!1);return}switch(l&&((n=this.I)==null||n.resolve(),this.I=null,this.c("play",void 0,s)),t){case c.ij:this.kd(s);break;case c.qg:this.c("playing",void 0,s);break;case c.gj:this.ib(s);break;case c.pg:this.lc(s);break}this.za=t}te({info:t},s){var i;if(!t)return;const{title:a,intrinsicDuration:h,playbackRate:e}=this.b.$state;if(w(t.videoData)&&t.videoData.title!==a()&&this.c("title-change",t.videoData.title,s),u(t.duration)&&t.duration!==h()){if(u(t.videoLoadedFraction)){const o=((i=t.progressState)==null?void 0:i.loaded)??t.videoLoadedFraction*t.duration,l=new r(0,t.duration);this.nb(o,l,s)}this.c("duration-change",t.duration,s)}if(u(t.playbackRate)&&t.playbackRate!==e()&&this.c("rate-change",t.playbackRate,s),t.progressState){const{current:o,seekableStart:l,seekableEnd:d,loaded:n,duration:b}=t.progressState;this.mc(o,s),this.nb(n,new r(l,d),s),b!==h()&&this.c("duration-change",b,s)}if(u(t.volume)&&f(t.muted)){const o={muted:t.muted,volume:t.volume/100};this.c("volume-change",o,s)}u(t.playerState)&&t.playerState!==this.za&&this.ie(t.playerState,s)}z(){this.za=-1,this.md=-1,this.ga=0,this.ba=new r(0,0),this.I=null,this.R=null,this.vc=!1}}export{_ as YouTubeProvider}; diff --git a/assets/wechatGroup-zkZOzzsF.js b/assets/wechatGroup-zkZOzzsF.js new file mode 100644 index 000000000..1454a2a4a --- /dev/null +++ b/assets/wechatGroup-zkZOzzsF.js @@ -0,0 +1 @@ +const o="/img/wechatGroup.png";export{o as _}; diff --git a/assets/whatsnew.html-PscUMwPB.js b/assets/whatsnew.html-PscUMwPB.js new file mode 100644 index 000000000..50a7706d7 --- /dev/null +++ b/assets/whatsnew.html-PscUMwPB.js @@ -0,0 +1 @@ +import{_ as p}from"./slack-roTTHLlw.js";import{_ as s}from"./twitter-vJUFHWuk.js";import{_ as u,r,o as d,c,a as t,b as e,w as a,d as i}from"./app-8OZtYazS.js";const h={},y={class:"hint-container tip"},x=t("p",{class:"hint-container-title"},"Announcement",-1),_=t("p",null,[t("strong",null,"2022.1.4+"),i(" is free trial version, you will have a 30 days free trial, if you want to compare the difference from free and paid version, you can see the release log from 2022.1.4")],-1),m=t("strong",null,"Paid vs Free->",-1),g=t("strong",null,"Buy plugin",-1),f={href:"https://github.com/dromara/fast-request/issues",target:"_blank",rel:"noopener noreferrer"},v=t("p",null,"Join and follow us to solve your question ❤️❤️❤️↓↓↓",-1),b={href:"https://join.slack.com/t/restfulfastrequest/shared_invite/zt-1we57vum8-TALhTHI2uNmPF2bx1NDyWw",target:"_blank",rel:"noopener noreferrer"},w=t("img",{src:"https://img.shields.io/static/v1?label=Slack&message=Restful Fast Request&logo=slack&color=38B580",alt:"Slack",loading:"lazy"},null,-1),k={href:"https://twitter.com/FastRequest666",target:"_blank",rel:"noopener noreferrer"},A=t("img",{src:"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34",alt:"twitter",loading:"lazy"},null,-1),F=t("tbody",null,[t("tr",null,[t("td",null,[t("img",{src:p,alt:"slack",loading:"lazy"})]),t("td",null,[t("img",{src:s,alt:"twitter",loading:"lazy"})])])],-1),P=t("hr",null,null,-1),I=t("span",null,"    ",-1),S=t("span",null,"    ",-1),z=t("p",null,"Because developing version is still in development, the documentation of developing version may not be entirely accurate and is subject to change.",-1),E=t("strong",null,"More detail ---------------->",-1),q={id:"_2024-1-7",tabindex:"-1"},C={class:"header-anchor",href:"#_2024-1-7"},R={id:"_2024-1-6-3",tabindex:"-1"},D={class:"header-anchor",href:"#_2024-1-6-3"},N={id:"_2024-1-6-2",tabindex:"-1"},T={class:"header-anchor",href:"#_2024-1-6-2"},O={id:"_2024-1-6",tabindex:"-1"},B={class:"header-anchor",href:"#_2024-1-6"},U={id:"_2024-1-5-1",tabindex:"-1"},j={class:"header-anchor",href:"#_2024-1-5-1"},M={id:"_2024-1-5",tabindex:"-1"},L={class:"header-anchor",href:"#_2024-1-5"},W={id:"_2024-1-4",tabindex:"-1"},H={class:"header-anchor",href:"#_2024-1-4"},J={id:"_2024-1-3",tabindex:"-1"},G={class:"header-anchor",href:"#_2024-1-3"},K={id:"_2024-1-2-1",tabindex:"-1"},V={class:"header-anchor",href:"#_2024-1-2-1"},Z={id:"_2024-1-2-color-pink",tabindex:"-1"},Q={class:"header-anchor",href:"#_2024-1-2-color-pink"},X={id:"_2024-1-1",tabindex:"-1"},Y={class:"header-anchor",href:"#_2024-1-1"},$={id:"_2023-2-3-1",tabindex:"-1"},tt={class:"header-anchor",href:"#_2023-2-3-1"},et={id:"_2023-2-3",tabindex:"-1"},lt={class:"header-anchor",href:"#_2023-2-3"},it={id:"_2023-2-2",tabindex:"-1"},nt={class:"header-anchor",href:"#_2023-2-2"},ot={id:"_2023-2-1-1",tabindex:"-1"},rt={class:"header-anchor",href:"#_2023-2-1-1"},at={id:"_2023-2-1",tabindex:"-1"},pt={class:"header-anchor",href:"#_2023-2-1"},st={id:"_2023-1-9",tabindex:"-1"},ut={class:"header-anchor",href:"#_2023-1-9"},dt={id:"_2023-1-8",tabindex:"-1"},ct={class:"header-anchor",href:"#_2023-1-8"},ht={id:"_2023-1-7-1",tabindex:"-1"},yt={class:"header-anchor",href:"#_2023-1-7-1"},xt={id:"_2023-1-7",tabindex:"-1"},_t={class:"header-anchor",href:"#_2023-1-7"},mt={id:"_2023-1-6",tabindex:"-1"},gt={class:"header-anchor",href:"#_2023-1-6"},ft={id:"_2023-1-5",tabindex:"-1"},vt={class:"header-anchor",href:"#_2023-1-5"},bt={id:"v2023-1-4-2",tabindex:"-1"},wt={class:"header-anchor",href:"#v2023-1-4-2"},kt={id:"v2023-1-4-1",tabindex:"-1"},At={class:"header-anchor",href:"#v2023-1-4-1"},Ft={id:"v2023-1-4",tabindex:"-1"},Pt={class:"header-anchor",href:"#v2023-1-4"},It={id:"v2023-1-3-2",tabindex:"-1"},St={class:"header-anchor",href:"#v2023-1-3-2"},zt={id:"v2023-1-2",tabindex:"-1"},Et={class:"header-anchor",href:"#v2023-1-2"},qt={id:"v2023-1-1",tabindex:"-1"},Ct={class:"header-anchor",href:"#v2023-1-1"},Rt={id:"v2022-3-1",tabindex:"-1"},Dt={class:"header-anchor",href:"#v2022-3-1"},Nt={id:"v2022-2-9",tabindex:"-1"},Tt={class:"header-anchor",href:"#v2022-2-9"},Ot={id:"v2022-2-8",tabindex:"-1"},Bt={class:"header-anchor",href:"#v2022-2-8"},Ut={id:"v2022-2-7",tabindex:"-1"},jt={class:"header-anchor",href:"#v2022-2-7"},Mt={id:"v2022-2-6",tabindex:"-1"},Lt={class:"header-anchor",href:"#v2022-2-6"},Wt={id:"v2022-2-5-2",tabindex:"-1"},Ht={class:"header-anchor",href:"#v2022-2-5-2"},Jt={id:"v2022-2-5-1",tabindex:"-1"},Gt={class:"header-anchor",href:"#v2022-2-5-1"},Kt={id:"v2022-2-5",tabindex:"-1"},Vt={class:"header-anchor",href:"#v2022-2-5"},Zt={id:"v2022-2-4-1",tabindex:"-1"},Qt={class:"header-anchor",href:"#v2022-2-4-1"},Xt={id:"v2022-2-4",tabindex:"-1"},Yt={class:"header-anchor",href:"#v2022-2-4"},$t={id:"v2022-2-3-1",tabindex:"-1"},te={class:"header-anchor",href:"#v2022-2-3-1"},ee={id:"v2022-2-3",tabindex:"-1"},le={class:"header-anchor",href:"#v2022-2-3"},ie={id:"v2022-2-2",tabindex:"-1"},ne={class:"header-anchor",href:"#v2022-2-2"},oe={id:"v2022-2-1",tabindex:"-1"},re={class:"header-anchor",href:"#v2022-2-1"},ae={id:"v2022-1-10",tabindex:"-1"},pe={class:"header-anchor",href:"#v2022-1-10"},se={id:"v2022-1-9",tabindex:"-1"},ue={class:"header-anchor",href:"#v2022-1-9"},de={id:"v2022-1-8",tabindex:"-1"},ce={class:"header-anchor",href:"#v2022-1-8"},he={id:"v2022-1-7",tabindex:"-1"},ye={class:"header-anchor",href:"#v2022-1-7"},xe={id:"v2022-1-6",tabindex:"-1"},_e={class:"header-anchor",href:"#v2022-1-6"},me={id:"v2022-1-5",tabindex:"-1"},ge={class:"header-anchor",href:"#v2022-1-5"},fe={id:"v2022-1-4-0",tabindex:"-1"},ve={class:"header-anchor",href:"#v2022-1-4-0"};function be(we,ke){const n=r("RouteLink"),o=r("ExternalLinkIcon"),l=r("Badge");return d(),c("div",null,[t("div",y,[x,_,t("p",null,[e(n,{to:"/en/guide/versionCompare.html"},{default:a(()=>[m]),_:1})]),t("p",null,[e(n,{to:"/en/guide/buy.html"},{default:a(()=>[g]),_:1})]),t("p",null,[i("Issue please refer to "),t("a",f,[i("Github"),e(o)])]),v,t("table",null,[t("thead",null,[t("tr",null,[t("th",null,[t("a",b,[w,e(o)])]),t("th",null,[t("a",k,[A,e(o)])])])]),F]),P,t("p",null,[i("important: "),e(l,{text:"Important function",color:"orange"})]),t("p",null,[i("feat: "),e(l,{text:"New function",type:"tip"}),i(),I,i(" perf: "),e(l,{text:"Optimization function",type:"info"}),i(),S,i(" fix: "),e(l,{text:"Fix or Remove function",type:"danger"})]),z]),t("p",null,[e(n,{to:"/en/guide/history.html"},{default:a(()=>[E]),_:1})]),t("h2",q,[t("a",C,[t("span",null,[i("2024.1.7 "),e(l,{text:"Free trial",type:"tip"}),i(),e(l,{text:"Developing...",color:"blue"}),i(),e(l,{text:"IDEA 2023.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Functions and environment code completion support",color:"orange"})]),t("li",null,[e(l,{text:"JSON filter support",type:"tip"})]),t("li",null,[e(l,{text:"Common Header code completion support",type:"tip"})]),t("li",null,[e(l,{text:"Default file path for multipart",type:"tip"})]),t("li",null,[e(l,{text:"SearchEveryWhere result sorting optimization",type:"info"})]),t("li",null,[e(l,{text:"Script interface optimition",type:"info"})]),t("li",null,[e(l,{text:"Map parse",type:"info"})]),t("li",null,[e(l,{text:"Several known issue optimizations",type:"info"})])]),t("h2",R,[t("a",D,[t("span",null,[i("2024.1.6.3 "),e(l,{text:"Free trial",type:"tip"}),i(),e(l,{text:"Newest version",type:"pink"}),i(),e(l,{text:"2024-08-15",color:"SandyBrown"}),i(),e(l,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Compatible with IDEA 2024.2+",type:"info"})])]),t("h2",N,[t("a",T,[t("span",null,[i("2024.1.6.2 "),e(l,{text:"Free trial",type:"tip"}),i(),e(l,{text:"Newest version",color:"pink"}),i(),e(l,{text:"2024-07-30",color:"SandyBrown"}),i(),e(l,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Combined annotation support",type:"tip"})]),t("li",null,[e(l,{text:"Message Optimization",type:"info"})]),t("li",null,[e(l,{text:"After the pre-script is executed, the data not used in the current request",type:"danger"})])]),t("h2",O,[t("a",B,[t("span",null,[i("2024.1.6 "),e(l,{text:"Free trial",type:"tip"}),i(),e(l,{text:"2024-06-24",color:"SandyBrown"}),i(),e(l,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Multi Tab window",color:"orange"})]),t("li",null,[e(l,{text:"Apis mark",type:"tip"})]),t("li",null,[e(l,{text:"Url copy in Apis & Navigate",type:"tip"})]),t("li",null,[e(l,{text:"Json path support",type:"tip"})]),t("li",null,[e(l,{text:"Url generation supports extends BaseController interface",type:"info"})]),t("li",null,[e(l,{text:"Fixed some known bugs",type:"danger"})])]),t("h2",U,[t("a",j,[t("span",null,[i("2024.1.5.1 "),e(l,{text:"Free trial",type:"tip"}),i(),e(l,{text:"2024-05-16",color:"SandyBrown"}),i(),e(l,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Entity parse",type:"danger"})])]),t("h2",M,[t("a",L,[t("span",null,[i("2024.1.5 "),e(l,{text:"Free trial",type:"tip"}),i(),e(l,{text:"2024-05-14",color:"SandyBrown"}),i(),e(l,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Add library support in pre and post script",type:"tip"})]),t("li",null,[e(l,{text:"Type drop-down box optimization",type:"info"})]),t("li",null,[e(l,{text:"Original url display optimization",type:"info"})]),t("li",null,[e(l,{text:"Apifox directory sync optimization",type:"info"})]),t("li",null,[e(l,{text:"Url input style optimization",type:"info"})]),t("li",null,[e(l,{text:"Parameter Tab automatic jump optimization",type:"info"})]),t("li",null,[e(l,{text:"cUrl import optimization",type:"info"})]),t("li",null,[e(l,{text:"Fix Api doc synchronization is successful but prompts an error",type:"danger"})])]),t("h2",W,[t("a",H,[t("span",null,[i("2024.1.4 "),e(l,{text:"Free trial",type:"tip"}),i(),e(l,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Apifox integration",color:"orange"})]),t("li",null,[e(l,{text:"AI support optimization",color:"orange"})]),t("li",null,[e(l,{text:"Change moduleHeader to apiHeader",type:"info"})]),t("li",null,[e(l,{text:"cURL import Optimization",type:"info"})]),t("li",null,[e(l,{text:"Entity parse optimization",type:"info"})]),t("li",null,[e(l,{text:"Compatible with IDEA 2024",type:"info"})]),t("li",null,[e(l,{text:"API export file suffix error",type:"danger"})])]),t("h2",J,[t("a",G,[t("span",null,[i("2024.1.3 "),e(l,{text:"Free trial",type:"tip"}),i(),e(l,{text:"2024-03-04",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[e(l,{text:"AI support optimization",color:"orange"})]),t("li",null,[e(l,{text:"Performance optimization for large response results",type:"info"})]),t("li",null,[e(l,{text:"Map type parse optimization",type:"info"})]),t("li",null,[e(l,{text:"Download does not respond in Windows system",type:"danger"})])]),t("h2",K,[t("a",V,[t("span",null,[i("2024.1.2.1 "),e(l,{text:"Free trial",type:"tip"}),i(),e(l,{text:"2024-01-24",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[e(l,{text:"No response when click send and download",type:"danger"})])]),t("h2",Z,[t("a",Q,[t("span",null,[i("2024.1.2 "),e(l,{text:"Free trial",type:"tip"}),i(' color="pink"/> '),e(l,{text:"2024-01-19",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Custom toolbar",color:"orange"})])]),t("h2",X,[t("a",Y,[t("span",null,[i("2024.1.1 "),e(l,{text:"Free trial",type:"tip"}),i(),e(l,{text:"2024-01-15",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[e(l,{text:"SearchEveryWhere support classname search",color:"orange"})]),t("li",null,[e(l,{text:"Generate .fastRequest directory strategy",color:"orange"})]),t("li",null,[e(l,{text:"Ignore field name parse support",type:"tip"})]),t("li",null,[e(l,{text:"Apis and Navigate in popup",type:"tip"})]),t("li",null,[e(l,{text:"Manual update check",type:"tip"})]),t("li",null,[e(l,{text:"Content-Disposition support optimization",type:"info"})]),t("li",null,[e(l,{text:"SearchEveryWhere performance optimization",type:"info"})]),t("li",null,[e(l,{text:"API loading performance in Navigate optimization",type:"info"})]),t("li",null,[e(l,{text:"Markdown doc add return value doc",type:"info"})]),t("li",null,[e(l,{text:"Collection generic parsing error",type:"danger"})])]),t("h2",$,[t("a",tt,[t("span",null,[i("2023.2.3.1 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"JSON5 support error",type:"danger"})])]),t("h2",et,[t("a",lt,[t("span",null,[i("2023.2.3 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Sync API to Postman",type:"tip"})]),t("li",null,[e(l,{text:"Project name drop-down box automatically switches",type:"tip"})]),t("li",null,[e(l,{text:"Environment refactoring",type:"info"})]),t("li",null,[e(l,{text:"Project domain name addition optimization",type:"info"})]),t("li",null,[e(l,{text:"Change API document sync trigger to API is saved",type:"info"})]),t("li",null,[e(l,{text:"Add @fastRequestParseIgnore support for ignore parse field",type:"info"})]),t("li",null,[e(l,{text:"SearchEveryWhere compatible idea2023.3",type:"danger"})]),t("li",null,[e(l,{text:"Error when passing non-json in body param",type:"danger"})]),t("li",null,[e(l,{text:"curl import parsing\\' error",type:"danger"})])]),t("h2",it,[t("a",nt,[t("span",null,[i("2023.2.2 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Markdown doc template config",type:"tip"})]),t("li",null,[e(l,{text:"JSON5 support",type:"tip"})]),t("li",null,[e(l,{text:"Compatible with IDEA 2023.3",type:"tip"})]),t("li",null,[e(l,{text:"History requests list show errors",type:"danger"})]),t("li",null,[e(l,{text:"History requests list show errors",type:"danger"})])]),t("h2",ot,[t("a",rt,[t("span",null,[i("2023.2.1.1 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Style optimization for Url textField in some themes",type:"tip"})]),t("li",null,[e(l,{text:"Project level header save error",type:"danger"})])]),t("h2",at,[t("a",pt,[t("span",null,[i("2023.2.1 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"UI predigestion",type:"tip"})]),t("li",null,[e(l,{text:"Support open API document in apis list",type:"tip"})]),t("li",null,[e(l,{text:"Auto domain",type:"info"})]),t("li",null,[e(l,{text:"Map parse",type:"info"})]),t("li",null,[e(l,{text:"Put show apis into right click menu",type:"info"})]),t("li",null,[e(l,{text:"Add plugin version to statistics page",type:"info"})]),t("li",null,[e(l,{text:"Many details optimized",type:"info"})]),t("li",null,[e(l,{text:"Url and cUrl copy can not replace environment variable",type:"danger"})]),t("li",null,[e(l,{text:"Curl import parsing error in form-urlencoded and -d forms",type:"danger"})])]),t("h2",st,[t("a",ut,[t("span",null,[i("2023.1.9 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Quick add Environment variable support",type:"tip"})]),t("li",null,[e(l,{text:"Add、Delete、Modify support in Environment use view",type:"tip"})]),t("li",null,[e(l,{text:"Show apis trigger in Controller",type:"tip"})]),t("li",null,[e(l,{text:"Response adds Size property",type:"tip"})]),t("li",null,[e(l,{text:"API Name Saving Optimization",type:"info"})]),t("li",null,[e(l,{text:"Input parameter trim optimization",type:"info"})]),t("li",null,[e(l,{text:"Reduce JSON tree tab size from 5MB to 2MB",type:"info"})]),t("li",null,[e(l,{text:"Remove Accept-Language header when send request",type:"danger"})]),t("li",null,[e(l,{text:"cURL copy format error of form-data",type:"danger"})]),t("li",null,[e(l,{text:"Logic error of domain configuration page in some the case",type:"danger"})])]),t("h2",dt,[t("a",ct,[t("span",null,[i("2023.1.8 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Environment",type:"tip"})]),t("li",null,[e(l,{text:"Method description length truncate",type:"info"})]),t("li",null,[e(l,{text:"Parse support for Instant",type:"info"})]),t("li",null,[e(l,{text:"Delete api directory error in Windows system",type:"danger"})])]),t("h2",ht,[t("a",yt,[t("span",null,[i("2023.1.7.1 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Add generate action in SearchEveryWhere",type:"tip"})]),t("li",null,[e(l,{text:"The main window pops up with configuration",type:"info"})]),t("li",null,[e(l,{text:"Param parse",type:"info"})]),t("li",null,[e(l,{text:"Table dragging problem",type:"info"})])]),t("h2",xt,[t("a",_t,[t("span",null,[i("2023.1.7 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"New icon",type:"tip"})]),t("li",null,[e(l,{text:"SearchEveryWhere enhance",type:"tip"})]),t("li",null,[e(l,{text:"Slack support",type:"tip"})]),t("li",null,[e(l,{text:"Compact http icon",type:"tip"})]),t("li",null,[e(l,{text:"Duplicate field",type:"tip"})]),t("li",null,[e(l,{text:"Optimize the insertion of script snippets",type:"info"})]),t("li",null,[e(l,{text:"Optimize table and textarea",type:"info"})]),t("li",null,[e(l,{text:"Optimize automatic domain parse",type:"info"})]),t("li",null,[e(l,{text:"cUrl import",type:"info"})]),t("li",null,[e(l,{text:"FullScreen",type:"info"})]),t("li",null,[e(l,{text:"Params parse",type:"info"})]),t("li",null,[e(l,{text:"Remove the .main from the module name of a Gradle project",type:"info"})]),t("li",null,[e(l,{text:"SearchEveryWhere keyword search with spaces",type:"danger"})]),t("li",null,[e(l,{text:"Optimizing numerous operational details",type:"danger"})]),t("li",null,[e(l,{text:"Batch export api doc",type:"danger"})]),t("li",null,[e(l,{text:"History request echo data",type:"danger"})])]),t("h2",mt,[t("a",gt,[t("span",null,[i("2023.1.6 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Header batch edit",type:"tip"})]),t("li",null,[e(l,{text:"Idea hang when debug in post script",type:"danger"})])]),t("h2",ft,[t("a",vt,[t("span",null,[i("2023.1.5 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Editor icon location",type:"info"})]),t("li",null,[e(l,{text:"SearchEveryWhere style confusion",type:"danger"})]),t("li",null,[e(l,{text:"URL variable replacing",type:"danger"})])]),t("h2",bt,[t("a",wt,[t("span",null,[i("v2023.1.4.2 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Domain edit error in project domain config",type:"danger"})]),t("li",null,[e(l,{text:"headers group load error",type:"danger"})])]),t("h2",kt,[t("a",At,[t("span",null,[i("v2023.1.4.1 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Fix Auto domain of multi-module project",type:"danger"})])]),t("h2",Ft,[t("a",Pt,[t("span",null,[i("v2023.1.4 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Auto domain",type:"tip"})]),t("li",null,[e(l,{text:"SearchEveryWhere supports searching URLs in jar",type:"tip"})]),t("li",null,[e(l,{text:"Set project header error in Script",type:"danger"})])]),t("h2",It,[t("a",St,[t("span",null,[i("v2023.1.3.2 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Teamwork support",type:"tip"})]),t("li",null,[e(l,{text:"OpenAI API Optimising fields support",type:"tip"})]),t("li",null,[e(l,{text:"API and API storage file jumps",type:"tip"})]),t("li",null,[e(l,{text:"Project config refresh",type:"tip"})]),t("li",null,[e(l,{text:"rfr.currentModuleName support",type:"tip"})]),t("li",null,[e(l,{text:"API doc sync supports custom branch",type:"info"})]),t("li",null,[e(l,{text:"Toolbar",type:"info"})]),t("li",null,[e(l,{text:"GET、POST、DELETE、PUT、PATCH icon",type:"info"})]),t("li",null,[e(l,{text:"LocalDateTime、LocalDate、LocalTime parse",type:"info"})]),t("li",null,[e(l,{text:"Random generate url from array url",type:"danger"})]),t("li",null,[e(l,{text:"Comment can not be generate in Kotlin",type:"danger"})])]),t("h2",zt,[t("a",Et,[t("span",null,[i("v2023.1.2 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Image render from response",type:"tip"})]),t("li",null,[e(l,{text:"Annual report",type:"tip"})]),t("li",null,[e(l,{text:"Url parse logic",type:"info"})]),t("li",null,[e(l,{text:"cUrl Import",type:"info"})]),t("li",null,[e(l,{text:"Url special character parameter encoding",type:"info"})]),t("li",null,[e(l,{text:"Add send request trigger to url field",type:"info"})]),t("li",null,[e(l,{text:"Remove title of window",type:"info"})]),t("li",null,[e(l,{text:"Patch request error in jdk11+",type:"danger"})]),t("li",null,[e(l,{text:"API name saved error",type:"danger"})])]),t("h2",qt,[t("a",Ct,[t("span",null,[i("v2023.1.1 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Add support for quickly add domain from Yml or Properties config",type:"tip"})]),t("li",null,[e(l,{text:"Add project-level domain config",type:"tip"})]),t("li",null,[e(l,{text:"Icon alignment",type:"info"})]),t("li",null,[e(l,{text:"Tool window icon in new UI",type:"info"})]),t("li",null,[e(l,{text:"Make Project-level headers value optional",type:"info"})]),t("li",null,[e(l,{text:"Cookie fetch",type:"info"})]),t("li",null,[e(l,{text:"Swagger default value for basic type",type:"danger"})]),t("li",null,[e(l,{text:"Array not parse",type:"danger"})])]),t("h2",Rt,[t("a",Dt,[t("span",null,[i("v2022.3.1 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Add @fastRequestParseIgnore comment support for parse",type:"tip"})]),t("li",null,[e(l,{text:"Add rfr.currentDomain in Script",type:"tip"})]),t("li",null,[e(l,{text:"Activation prompt optimization",type:"info"})]),t("li",null,[e(l,{text:"Reload api error in navigate when using Kotlin and Java in one project",type:"danger"})])]),t("h2",Nt,[t("a",Tt,[t("span",null,[i("v2022.2.9 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Compatible with IDEA 2022.2.4",type:"tip"})]),t("li",null,[e(l,{text:"Global animate config support",type:"tip"})]),t("li",null,[e(l,{text:"Cookie bug",type:"danger"})]),t("li",null,[e(l,{text:"Navigate tab load error",type:"danger"})])]),t("h2",Ot,[t("a",Bt,[t("span",null,[i("v2022.2.8 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Directory download file support",type:"info"})]),t("li",null,[e(l,{text:"@RequestParam support name attribute",type:"info"})]),t("li",null,[e(l,{text:"Error when check update",type:"danger"})])]),t("h2",Ut,[t("a",jt,[t("span",null,[i("v2022.2.7 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Api doc sync",type:"tip"})]),t("li",null,[e(l,{text:"Api doc show return type document",type:"tip"})]),t("li",null,[e(l,{text:"Plugin update notification mechanism",type:"info"})]),t("li",null,[e(l,{text:"Common header",type:"tip"})]),t("li",null,[e(l,{text:"Full screen",type:"tip"})]),t("li",null,[e(l,{text:"Comment preview",type:"info"})]),t("li",null,[e(l,{text:"Module header value always be checked",type:"danger"})]),t("li",null,[e(l,{text:"Parse bug",type:"danger"})]),t("li",null,[e(l,{text:"Error when use string param in body",type:"danger"})])]),t("h2",Mt,[t("a",Lt,[t("span",null,[i("v2022.2.6 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Clear params support",type:"tip"})]),t("li",null,[e(l,{text:"Api comment preview",type:"tip"})]),t("li",null,[e(l,{text:"Sort param column by key",type:"tip"})]),t("li",null,[e(l,{text:"Api doc add required column",type:"info"})]),t("li",null,[e(l,{text:"Long delay in checking for updates",type:"info"})]),t("li",null,[e(l,{text:"Long delay when first open tool window",type:"info"})]),t("li",null,[e(l,{text:"Multi print when use pre-script",type:"danger"})])]),t("h2",Wt,[t("a",Ht,[t("span",null,[i("v2022.2.5.2 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Post script cannot be cleared",type:"danger"})])]),t("h2",Jt,[t("a",Gt,[t("span",null,[i("v2022.2.5.1 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Console syntax error",type:"danger"})])]),t("h2",Kt,[t("a",Vt,[t("span",null,[i("v2022.2.5 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Add console for script",type:"tip"})]),t("li",null,[e(l,{text:"Add print script support",type:"tip"})]),t("li",null,[e(l,{text:"Add currentProjectName and currentEnvName property in build-in property",type:"tip"})]),t("li",null,[e(l,{text:"Get description from javadoc for path and request param",type:"tip"})]),t("li",null,[e(l,{text:"@RequestPart support",type:"tip"})]),t("li",null,[e(l,{text:"Add twitter in doc action group",type:"tip"})]),t("li",null,[e(l,{text:"Post script not execute when response is success but code for example is 401",type:"danger"})])]),t("h2",Zt,[t("a",Qt,[t("span",null,[i("v2022.2.4.1 "),e(l,{text:"收费",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Fix the small screen EUAL agreement cannot display the agree button",type:"danger"})])]),t("h2",Xt,[t("a",Yt,[t("span",null,[i("v2022.2.4 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"New logo",type:"tip"})]),t("li",null,[e(l,{text:"Support parse date by annotation's pattern",type:"tip"})]),t("li",null,[e(l,{text:"Support parse url of BaseController",type:"tip"})]),t("li",null,[e(l,{text:"Change auto update configurable",type:"info"})]),t("li",null,[e(l,{text:"Parameter encoding",type:"info"})]),t("li",null,[e(l,{text:"Parse error when map not contains generics",type:"danger"})]),t("li",null,[e(l,{text:"Post script can not add or remove header",type:"danger"})])]),t("h2",$t,[t("a",te,[t("span",null,[i("v2022.2.3.1 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Parameter cannot be cleared",type:"danger"})])]),t("h2",ee,[t("a",le,[t("span",null,[i("v2022.2.3 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Pre-request Script",type:"tip"})]),t("li",null,[e(l,{text:"Post-request Script",type:"tip"})]),t("li",null,[e(l,{text:"One-click copy Url",type:"tip"})]),t("li",null,[e(l,{text:"Compatible with IDEA 2021.2.1",type:"info"})]),t("li",null,[e(l,{text:"RequestParam defaultValue parse",type:"info"})]),t("li",null,[e(l,{text:"Apply table cell value change when click send request",type:"info"})]),t("li",null,[e(l,{text:"Url can not generate after close tool window and reopen",type:"danger"})]),t("li",null,[e(l,{text:"Jax-rs PATCH not supported",type:"danger"})])]),t("h2",ie,[t("a",ne,[t("span",null,[i("v2022.2.2 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Add stop API request function",type:"tip"})]),t("li",null,[e(l,{text:"Batch export API doc",type:"tip"})]),t("li",null,[e(l,{text:"Add annotations when export to Postman",type:"tip"})]),t("li",null,[e(l,{text:"Editor hangs in case of a large amount of response data",type:"info"})]),t("li",null,[e(l,{text:"The experience and tips in some scenarios",type:"info"})]),t("li",null,[e(l,{text:"SearchEveryWhere err in EAP/New ui version",type:"danger"})]),t("li",null,[e(l,{text:"Error when modify number param in Multipart",type:"danger"})]),t("li",null,[e(l,{text:"History request delete operation error in some cases",type:"danger"})])]),t("h2",oe,[t("a",re,[t("span",null,[i("v2022.2.1 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"API grouping parameter save support",type:"tip"})]),t("li",null,[e(l,{text:"Temporary request save support",type:"tip"})]),t("li",null,[e(l,{text:"Add support for cURL import",type:"tip"})]),t("li",null,[e(l,{text:"Add Response Header in response",type:"tip"})]),t("li",null,[e(l,{text:"Add support for Url suffix",type:"tip"})]),t("li",null,[e(l,{text:"Optimized parameter parsing",type:"info"})]),t("li",null,[e(l,{text:"Optimize shortcut keys",type:"info"})]),t("li",null,[e(l,{text:"Fix Word export bug",type:"danger"})])]),t("h2",ae,[t("a",pe,[t("span",null,[i("v2022.1.10 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Add support for history request preview",type:"tip"})]),t("li",null,[e(l,{text:"Add support for description search in SearchEveryWhere",type:"tip"})]),t("li",null,[e(l,{text:"Add request timeout settings",type:"tip"})]),t("li",null,[e(l,{text:"Shortcut key conflict optimization",type:"info"})]),t("li",null,[e(l,{text:"Text editor character display cursor positioning optimization",type:"info"})]),t("li",null,[e(l,{text:"Curl output format optimization",type:"info"})]),t("li",null,[e(l,{text:"Optimization @Consumes(APPLICATION_JSON) ineffective problem(JAX-RS)",type:"info"})])]),t("h2",se,[t("a",ue,[t("span",null,[i("v2022.1.9 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Add shortcut keys for tool window jump",type:"tip"})]),t("li",null,[e(l,{text:"Add auto add cookie support",type:"tip"})]),t("li",null,[e(l,{text:"Add support for html preview in response raw",type:"tip"})]),t("li",null,[e(l,{text:"Ignore field parsing optimizations",type:"info"})]),t("li",null,[e(l,{text:"Generic parameter parsing support",type:"info"})]),t("li",null,[e(l,{text:"Improve project global config",type:"info"})]),t("li",null,[e(l,{text:"Interface optimization",type:"info"})]),t("li",null,[e(l,{text:"Save API insertion order optimization",type:"info"})]),t("li",null,[e(l,{text:"APIs list view optimization",type:"info"})]),t("li",null,[e(l,{text:"Optimized export preview",type:"info"})]),t("li",null,[e(l,{text:"Fixed bug when editing params at the same time delete param",type:"danger"})])]),t("h2",de,[t("a",ce,[t("span",null,[i("v2022.1.8 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Project-level global parameters support",type:"tip"})]),t("li",null,[e(l,{text:"Optimized response data quickly add to headers",type:"info"})]),t("li",null,[e(l,{text:"Optimized cookies quickly added to the header",type:"info"})]),t("li",null,[e(l,{text:"Postman export optimization",type:"info"})]),t("li",null,[e(l,{text:"Fix navigate tree scan bug",type:"danger"})]),t("li",null,[e(l,{text:"Fix some bug",type:"danger"})])]),t("h2",he,[t("a",ye,[t("span",null,[i("v2022.1.7 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Kotlin spring framework support",type:"tip"})]),t("li",null,[e(l,{text:"Add SearchEveryWhere scope search strategy",type:"tip"})]),t("li",null,[e(l,{text:"Add toggleUseSoftWrap support in editor",type:"tip"})]),t("li",null,[e(l,{text:"Add support for add to Global Header from response",type:"tip"})]),t("li",null,[e(l,{text:"Add support for navigating to the current method",type:"tip"})]),t("li",null,[e(l,{text:"Optimize automatic binding projectName for saved api under multiple modules",type:"info"})])]),t("h2",xe,[t("a",_e,[t("span",null,[i("v2022.1.6 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Add support for one click to add cookie to header",type:"tip"})]),t("li",null,[e(l,{text:"Add support for sharing API to Word and html",type:"tip"})]),t("li",null,[e(l,{text:"Fix bug for `Basic Authorization` don't carry Basic",type:"danger"})]),t("li",null,[e(l,{text:"Removes the drag function in APIs tab",type:"danger"})])]),t("h2",me,[t("a",ge,[t("span",null,[i("v2022.1.5 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Add support for automatically generating parameter descriptions",type:"tip"})]),t("li",null,[e(l,{text:"Add support for generate API documentation",type:"tip"})]),t("li",null,[e(l,{text:"Add support for single class API list preview",type:"tip"})]),t("li",null,[e(l,{text:"Remove text/html in Accept param in default header",type:"danger"})]),t("li",null,[e(l,{text:"Fix some bugs",type:"danger"})])]),t("h2",fe,[t("a",ve,[t("span",null,[i("v2022.1.4.0 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"SearchEveryWhere highlight optimization",type:"info"})]),t("li",null,[e(l,{text:"Add support for import and export APIs",type:"tip"})]),t("li",null,[e(l,{text:"Add support for run APIs",type:"tip"})]),t("li",null,[e(l,{text:"Add timeout for api request",type:"tip"})]),t("li",null,[e(l,{text:"Compatible with idea 2022.1",type:"info"})]),t("li",null,[e(l,{text:"Make it optional for automatically generate parameters",type:"tip"})]),t("li",null,[e(l,{text:"Swagger annotation default value parameter parsing support",type:"tip"})]),t("li",null,[e(l,{text:"Merged Send and Send and Download buttons",type:"info"})]),t("li",null,[e(l,{text:"APIs user interface optimization",type:"info"})]),t("li",null,[e(l,{text:"API Navigate rename to Navigate in tab",type:"info"})]),t("li",null,[e(l,{text:"Optimize the user guide of features",type:"info"})]),t("li",null,[e(l,{text:"Url generation optimization",type:"info"})]),t("li",null,[e(l,{text:"Fix Light files should have PSI only in one project",type:"danger"})])])])}const Ie=u(h,[["render",be],["__file","whatsnew.html.vue"]]),Se=JSON.parse('{"path":"/en/guide/whatsnew.html","title":"History changes","lang":"en-US","frontmatter":{"title":"History changes","icon":"whats-new","description":" Announcement 2022.1.4+ is free trial version, you will have a 30 days free trial, if you want to compare the difference from free and paid version, you can see the release log ...","head":[["link",{"rel":"alternate","hreflang":"zh-cn","href":"https://api-buddy.com/guide/whatsnew.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/en/guide/whatsnew.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"History changes"}],["meta",{"property":"og:description","content":" Announcement 2022.1.4+ is free trial version, you will have a 30 days free trial, if you want to compare the difference from free and paid version, you can see the release log ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://img.shields.io/static/v1?label=Slack&message=Restful%20Fast%20Request&logo=slack&color=38B580"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-21T12:02:42.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"History changes"}],["meta",{"property":"article:modified_time","content":"2024-08-21T12:02:42.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"History changes\\",\\"image\\":[\\"https://img.shields.io/static/v1?label=Slack&message=Restful%20Fast%20Request&logo=slack&color=38B580\\",\\"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34\\",\\"https://api-buddy.com/img/slack.png\\",\\"https://api-buddy.com/img/twitter.png\\"],\\"dateModified\\":\\"2024-08-21T12:02:42.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"2024.1.7","slug":"_2024-1-7","link":"#_2024-1-7","children":[]},{"level":2,"title":"2024.1.6.3","slug":"_2024-1-6-3","link":"#_2024-1-6-3","children":[]},{"level":2,"title":"2024.1.6.2","slug":"_2024-1-6-2","link":"#_2024-1-6-2","children":[]},{"level":2,"title":"2024.1.6","slug":"_2024-1-6","link":"#_2024-1-6","children":[]},{"level":2,"title":"2024.1.5.1","slug":"_2024-1-5-1","link":"#_2024-1-5-1","children":[]},{"level":2,"title":"2024.1.5","slug":"_2024-1-5","link":"#_2024-1-5","children":[]},{"level":2,"title":"2024.1.4","slug":"_2024-1-4","link":"#_2024-1-4","children":[]},{"level":2,"title":"2024.1.3","slug":"_2024-1-3","link":"#_2024-1-3","children":[]},{"level":2,"title":"2024.1.2.1","slug":"_2024-1-2-1","link":"#_2024-1-2-1","children":[]},{"level":2,"title":"2024.1.2 color=\\"pink\\"/>","slug":"_2024-1-2-color-pink","link":"#_2024-1-2-color-pink","children":[]},{"level":2,"title":"2024.1.1","slug":"_2024-1-1","link":"#_2024-1-1","children":[]},{"level":2,"title":"2023.2.3.1","slug":"_2023-2-3-1","link":"#_2023-2-3-1","children":[]},{"level":2,"title":"2023.2.3","slug":"_2023-2-3","link":"#_2023-2-3","children":[]},{"level":2,"title":"2023.2.2","slug":"_2023-2-2","link":"#_2023-2-2","children":[]},{"level":2,"title":"2023.2.1.1","slug":"_2023-2-1-1","link":"#_2023-2-1-1","children":[]},{"level":2,"title":"2023.2.1","slug":"_2023-2-1","link":"#_2023-2-1","children":[]},{"level":2,"title":"2023.1.9","slug":"_2023-1-9","link":"#_2023-1-9","children":[]},{"level":2,"title":"2023.1.8","slug":"_2023-1-8","link":"#_2023-1-8","children":[]},{"level":2,"title":"2023.1.7.1","slug":"_2023-1-7-1","link":"#_2023-1-7-1","children":[]},{"level":2,"title":"2023.1.7","slug":"_2023-1-7","link":"#_2023-1-7","children":[]},{"level":2,"title":"2023.1.6","slug":"_2023-1-6","link":"#_2023-1-6","children":[]},{"level":2,"title":"2023.1.5","slug":"_2023-1-5","link":"#_2023-1-5","children":[]},{"level":2,"title":"v2023.1.4.2","slug":"v2023-1-4-2","link":"#v2023-1-4-2","children":[]},{"level":2,"title":"v2023.1.4.1","slug":"v2023-1-4-1","link":"#v2023-1-4-1","children":[]},{"level":2,"title":"v2023.1.4","slug":"v2023-1-4","link":"#v2023-1-4","children":[]},{"level":2,"title":"v2023.1.3.2","slug":"v2023-1-3-2","link":"#v2023-1-3-2","children":[]},{"level":2,"title":"v2023.1.2","slug":"v2023-1-2","link":"#v2023-1-2","children":[]},{"level":2,"title":"v2023.1.1","slug":"v2023-1-1","link":"#v2023-1-1","children":[]},{"level":2,"title":"v2022.3.1","slug":"v2022-3-1","link":"#v2022-3-1","children":[]},{"level":2,"title":"v2022.2.9","slug":"v2022-2-9","link":"#v2022-2-9","children":[]},{"level":2,"title":"v2022.2.8","slug":"v2022-2-8","link":"#v2022-2-8","children":[]},{"level":2,"title":"v2022.2.7","slug":"v2022-2-7","link":"#v2022-2-7","children":[]},{"level":2,"title":"v2022.2.6","slug":"v2022-2-6","link":"#v2022-2-6","children":[]},{"level":2,"title":"v2022.2.5.2","slug":"v2022-2-5-2","link":"#v2022-2-5-2","children":[]},{"level":2,"title":"v2022.2.5.1","slug":"v2022-2-5-1","link":"#v2022-2-5-1","children":[]},{"level":2,"title":"v2022.2.5","slug":"v2022-2-5","link":"#v2022-2-5","children":[]},{"level":2,"title":"v2022.2.4.1","slug":"v2022-2-4-1","link":"#v2022-2-4-1","children":[]},{"level":2,"title":"v2022.2.4","slug":"v2022-2-4","link":"#v2022-2-4","children":[]},{"level":2,"title":"v2022.2.3.1","slug":"v2022-2-3-1","link":"#v2022-2-3-1","children":[]},{"level":2,"title":"v2022.2.3","slug":"v2022-2-3","link":"#v2022-2-3","children":[]},{"level":2,"title":"v2022.2.2","slug":"v2022-2-2","link":"#v2022-2-2","children":[]},{"level":2,"title":"v2022.2.1","slug":"v2022-2-1","link":"#v2022-2-1","children":[]},{"level":2,"title":"v2022.1.10","slug":"v2022-1-10","link":"#v2022-1-10","children":[]},{"level":2,"title":"v2022.1.9","slug":"v2022-1-9","link":"#v2022-1-9","children":[]},{"level":2,"title":"v2022.1.8","slug":"v2022-1-8","link":"#v2022-1-8","children":[]},{"level":2,"title":"v2022.1.7","slug":"v2022-1-7","link":"#v2022-1-7","children":[]},{"level":2,"title":"v2022.1.6","slug":"v2022-1-6","link":"#v2022-1-6","children":[]},{"level":2,"title":"v2022.1.5","slug":"v2022-1-5","link":"#v2022-1-5","children":[]},{"level":2,"title":"v2022.1.4.0","slug":"v2022-1-4-0","link":"#v2022-1-4-0","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1724241762000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":5},{"name":"kings","email":"963987632@qq.com","commits":3}]},"readingTime":{"minutes":11.34,"words":3403},"filePathRelative":"en/guide/whatsnew.md","localizedDate":"May 31, 2024","autoDesc":true}');export{Ie as comp,Se as data}; diff --git a/assets/whatsnew.html-kGsVOFAh.js b/assets/whatsnew.html-kGsVOFAh.js new file mode 100644 index 000000000..dfecf753e --- /dev/null +++ b/assets/whatsnew.html-kGsVOFAh.js @@ -0,0 +1 @@ +import{_ as s}from"./wechatGroup-zkZOzzsF.js";import{_ as u}from"./twitter-vJUFHWuk.js";import{_ as r,r as o,o as d,c as h,a as t,b as e,w as a,d as n}from"./app-8OZtYazS.js";const c={},x={class:"hint-container tip"},_=t("p",{class:"hint-container-title"},"公告",-1),y=t("p",null,"插件版本 2022.1.4+即氪金版(但是你可以免费试用 30 天后再决定是否值得氪金),对比氪金版和免费有什么更强大的功能,只需要看更新日志>=2021.1.4+的,或者简单看一下以下的对比",-1),g=t("strong",null,"收费版 VS 免费版->",-1),v=t("strong",null,"License",-1),f=t("strong",null,"购买插件",-1),m=t("strong",null,"群公告",-1),b={href:"https://github.com/dromara/fast-request/issues",target:"_blank",rel:"noopener noreferrer"},k=t("em",null,"Github",-1),A=t("th",null,[t("img",{src:"https://img.shields.io/static/v1?label=wechat&message=微信技术群&logo=wechat&color=07C160",alt:"微信技术群",loading:"lazy"})],-1),w={href:"https://twitter.com/FastRequest666",target:"_blank",rel:"noopener noreferrer"},I=t("img",{src:"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34",alt:"twitter",loading:"lazy"},null,-1),S=t("tbody",null,[t("tr",null,[t("td",null,[t("img",{src:s,alt:"wechat group",loading:"lazy"})]),t("td",null,[t("img",{src:u,alt:"twitter",loading:"lazy"})])]),t("tr",null,[t("td",null,[n("如果扫码失败请直接搜微信号"),t("mark",null,"FastRequest99")]),t("td",null,"欢迎关注官方 Twitter")])],-1),P=t("hr",null,null,-1),E=t("span",null,"    ",-1),C=t("span",null,"    ",-1),R=t("span",null,"    ",-1),T=t("p",null,"由于开发版本仍在开发中,开发版本的文档可能不完全准确,可能会发生变化。",-1),U=t("strong",null,"务必查看变更详情----------------->",-1),D={id:"_2024-1-7",tabindex:"-1"},N={class:"header-anchor",href:"#_2024-1-7"},L={id:"_2024-1-6-3",tabindex:"-1"},B={class:"header-anchor",href:"#_2024-1-6-3"},q={id:"_2024-1-6-2",tabindex:"-1"},W={class:"header-anchor",href:"#_2024-1-6-2"},M={id:"_2024-1-6",tabindex:"-1"},J={class:"header-anchor",href:"#_2024-1-6"},F={id:"_2024-1-5-1",tabindex:"-1"},z={class:"header-anchor",href:"#_2024-1-5-1"},O={id:"_2024-1-5",tabindex:"-1"},H={class:"header-anchor",href:"#_2024-1-5"},G={id:"_2024-1-4",tabindex:"-1"},j={class:"header-anchor",href:"#_2024-1-4"},V={id:"_2024-1-3",tabindex:"-1"},K={class:"header-anchor",href:"#_2024-1-3"},Z={id:"_2024-1-2-1",tabindex:"-1"},X={class:"header-anchor",href:"#_2024-1-2-1"},Y={id:"_2024-1-2",tabindex:"-1"},Q={class:"header-anchor",href:"#_2024-1-2"},$={id:"_2024-1-1",tabindex:"-1"},tt={class:"header-anchor",href:"#_2024-1-1"},et={id:"_2023-2-3-1",tabindex:"-1"},lt={class:"header-anchor",href:"#_2023-2-3-1"},nt={id:"_2023-2-3",tabindex:"-1"},it={class:"header-anchor",href:"#_2023-2-3"},ot={id:"_2023-2-2",tabindex:"-1"},at={class:"header-anchor",href:"#_2023-2-2"},pt={id:"_2023-2-1-1",tabindex:"-1"},st={class:"header-anchor",href:"#_2023-2-1-1"},ut={id:"_2023-2-1",tabindex:"-1"},rt={class:"header-anchor",href:"#_2023-2-1"},dt={id:"_2023-1-9",tabindex:"-1"},ht={class:"header-anchor",href:"#_2023-1-9"},ct={id:"_2023-1-8",tabindex:"-1"},xt={class:"header-anchor",href:"#_2023-1-8"},_t={id:"_2023-1-7-1",tabindex:"-1"},yt={class:"header-anchor",href:"#_2023-1-7-1"},gt={id:"_2023-1-7",tabindex:"-1"},vt={class:"header-anchor",href:"#_2023-1-7"},ft={id:"_2023-1-6",tabindex:"-1"},mt={class:"header-anchor",href:"#_2023-1-6"},bt={id:"_2023-1-5",tabindex:"-1"},kt={class:"header-anchor",href:"#_2023-1-5"},At={id:"_2023-1-4-2",tabindex:"-1"},wt={class:"header-anchor",href:"#_2023-1-4-2"},It={id:"_2023-1-4-1",tabindex:"-1"},St={class:"header-anchor",href:"#_2023-1-4-1"},Pt={id:"_2023-1-4",tabindex:"-1"},Et={class:"header-anchor",href:"#_2023-1-4"},Ct={id:"_2023-1-3-2",tabindex:"-1"},Rt={class:"header-anchor",href:"#_2023-1-3-2"},Tt={id:"_2023-1-2",tabindex:"-1"},Ut={class:"header-anchor",href:"#_2023-1-2"},Dt={id:"_2023-1-1",tabindex:"-1"},Nt={class:"header-anchor",href:"#_2023-1-1"},Lt={id:"_2022-3-1",tabindex:"-1"},Bt={class:"header-anchor",href:"#_2022-3-1"},qt={id:"_2022-2-9",tabindex:"-1"},Wt={class:"header-anchor",href:"#_2022-2-9"},Mt={id:"_2022-2-8",tabindex:"-1"},Jt={class:"header-anchor",href:"#_2022-2-8"},Ft={id:"v2022-2-7",tabindex:"-1"},zt={class:"header-anchor",href:"#v2022-2-7"},Ot={id:"v2022-2-6",tabindex:"-1"},Ht={class:"header-anchor",href:"#v2022-2-6"},Gt={id:"v2022-2-5-2",tabindex:"-1"},jt={class:"header-anchor",href:"#v2022-2-5-2"},Vt={id:"v2022-2-5-1",tabindex:"-1"},Kt={class:"header-anchor",href:"#v2022-2-5-1"},Zt={id:"v2022-2-5",tabindex:"-1"},Xt={class:"header-anchor",href:"#v2022-2-5"},Yt={id:"v2022-2-4-1",tabindex:"-1"},Qt={class:"header-anchor",href:"#v2022-2-4-1"},$t={id:"v2022-2-4",tabindex:"-1"},te={class:"header-anchor",href:"#v2022-2-4"},ee={id:"v2022-2-3-1",tabindex:"-1"},le={class:"header-anchor",href:"#v2022-2-3-1"},ne={id:"v2022-2-3",tabindex:"-1"},ie={class:"header-anchor",href:"#v2022-2-3"},oe={id:"v2022-2-2",tabindex:"-1"},ae={class:"header-anchor",href:"#v2022-2-2"},pe={id:"v2022-2-1",tabindex:"-1"},se={class:"header-anchor",href:"#v2022-2-1"},ue={id:"v2022-1-10",tabindex:"-1"},re={class:"header-anchor",href:"#v2022-1-10"},de={id:"v2022-1-9",tabindex:"-1"},he={class:"header-anchor",href:"#v2022-1-9"},ce={id:"v2022-1-8",tabindex:"-1"},xe={class:"header-anchor",href:"#v2022-1-8"},_e={id:"v2022-1-7",tabindex:"-1"},ye={class:"header-anchor",href:"#v2022-1-7"},ge={id:"v2022-1-6",tabindex:"-1"},ve={class:"header-anchor",href:"#v2022-1-6"},fe={id:"v2022-1-5",tabindex:"-1"},me={class:"header-anchor",href:"#v2022-1-5"},be={id:"v2022-1-4-0",tabindex:"-1"},ke={class:"header-anchor",href:"#v2022-1-4-0"};function Ae(we,Ie){const i=o("RouteLink"),p=o("ExternalLinkIcon"),l=o("Badge");return d(),h("div",null,[t("div",x,[_,y,t("p",null,[e(i,{to:"/guide/versionCompare.html"},{default:a(()=>[g]),_:1})]),t("p",null,[n("购买"),v,n("流程请参考"),e(i,{to:"/guide/buy.html"},{default:a(()=>[f]),_:1}),n(" 或者进入微信群里查看"),m]),t("p",null,[n("Issue 提报请到"),t("a",b,[k,e(p)])]),t("table",null,[t("thead",null,[t("tr",null,[A,t("th",null,[t("a",w,[I,e(p)])])])]),S]),P,t("p",null,[n("important: "),e(l,{text:"重要功能",color:"orange"}),n(),E,n("feat: "),e(l,{text:"新功能",type:"tip"}),n(),C,n(" perf: "),e(l,{text:"优化",type:"info"}),n(),R,n(" fix: "),e(l,{text:"修复/移除",type:"danger"})]),T]),t("p",null,[e(i,{to:"/guide/history.html"},{default:a(()=>[U]),_:1})]),t("h2",D,[t("a",N,[t("span",null,[n("2024.1.7 "),e(l,{text:"免费试用",type:"tip"}),n(),e(l,{text:"开发中...",color:"blue"}),n(),e(l,{text:"IDEA 2023.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(l,{text:"函数与变量支持代码补全",color:"orange"})]),t("li",null,[e(l,{text:"JSON filter支持",type:"tip"})]),t("li",null,[e(l,{text:"Header 常用值支持代码补全",type:"tip"})]),t("li",null,[e(l,{text:"文件默认值支持",type:"tip"})]),t("li",null,[e(l,{text:"SearchEveryWhere 结果排序优化",type:"info"})]),t("li",null,[e(l,{text:"Script界面优化",type:"info"})]),t("li",null,[e(l,{text:"Map 解析优化",type:"info"})]),t("li",null,[e(l,{text:"若干已知问题优化",type:"info"})])]),t("h2",L,[t("a",B,[t("span",null,[n("2024.1.6.3 "),e(l,{text:"免费试用",type:"tip"}),n(),e(l,{text:"最新版",type:"pink"}),n(),e(l,{text:"2024-08-15",color:"SandyBrown"}),n(),e(l,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(l,{text:"兼容 IDEA 2024.2+",type:"info"})])]),t("h2",q,[t("a",W,[t("span",null,[n("2024.1.6.2 "),e(l,{text:"免费试用",type:"tip"}),n(),e(l,{text:"最新版",type:"pink"}),n(),e(l,{text:"2024-07-30",color:"SandyBrown"}),n(),e(l,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(l,{text:"组合注解支持",type:"tip"})]),t("li",null,[e(l,{text:"消息提示优化",type:"info"})]),t("li",null,[e(l,{text:"前置脚本执行后无法在当前请求获取到数据",type:"danger"})])]),t("h2",M,[t("a",J,[t("span",null,[n("2024.1.6 "),e(l,{text:"免费试用",type:"tip"}),n(),e(l,{text:"2024-06-24",color:"SandyBrown"}),n(),e(l,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(l,{text:"多 Tab 窗口",color:"orange"})]),t("li",null,[e(l,{text:"Apis 标记",type:"tip"})]),t("li",null,[e(l,{text:"Apis 与 Navigate 标签页 Url 复制",type:"tip"})]),t("li",null,[e(l,{text:"Json path",type:"tip"})]),t("li",null,[e(l,{text:"Url生成支持继承BaseController是接口",type:"info"})]),t("li",null,[e(l,{text:"修复了一些已知 bug",type:"danger"})])]),t("h2",F,[t("a",z,[t("span",null,[n("2024.1.5.1 "),e(l,{text:"免费试用",type:"tip"}),n(),e(l,{text:"2024-05-16",color:"SandyBrown"}),n(),e(l,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(l,{text:"实体类解析",type:"danger"})])]),t("h2",O,[t("a",H,[t("span",null,[n("2024.1.5 "),e(l,{text:"免费试用",type:"tip"}),n(),e(l,{text:"2024-05-14",color:"SandyBrown"}),n(),e(l,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(l,{text:"脚本增加 Add script library支持",type:"tip"})]),t("li",null,[e(l,{text:"类型下拉框优化",type:"info"})]),t("li",null,[e(l,{text:"原始url展示优化",type:"info"})]),t("li",null,[e(l,{text:"Apifox目录同步优化",type:"info"})]),t("li",null,[e(l,{text:"Url输入框样式优化",type:"info"})]),t("li",null,[e(l,{text:"参数 Tab 自动跳转优化",type:"info"})]),t("li",null,[e(l,{text:"cUrl 同一 url 匹配 method type优化",type:"info"})]),t("li",null,[e(l,{text:"Api doc同步成功但是提示报错",type:"danger"})])]),t("h2",G,[t("a",j,[t("span",null,[n("2024.1.4 "),e(l,{text:"免费试用",type:"tip"}),n(),e(l,{text:"2024-04-08",color:"SandyBrown"}),n(),e(l,{text:"IDEA 2022.3+",color:"pink"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Apifox 集成",color:"orange"})]),t("li",null,[e(l,{text:"AI支持优化",color:"orange"})]),t("li",null,[e(l,{text:"变更 moduleHeader 为 apiHeader",type:"info"})]),t("li",null,[e(l,{text:"cURL导入优化",type:"info"})]),t("li",null,[e(l,{text:"实体解析优化",type:"info"})]),t("li",null,[e(l,{text:"兼容 IDEA 2024",type:"info"})]),t("li",null,[e(l,{text:"API 导出文件后缀错误",type:"danger"})])]),t("h2",V,[t("a",K,[t("span",null,[n("2024.1.3 "),e(l,{text:"免费试用",type:"tip"}),n(),e(l,{text:"2024-03-04",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[e(l,{text:"AI支持优化",color:"orange"})]),t("li",null,[e(l,{text:"超大响应结果性能优化",type:"info"})]),t("li",null,[e(l,{text:"Map入参类型解析优化",type:"info"})]),t("li",null,[e(l,{text:"windows系统下载文件无响应",type:"danger"})])]),t("h2",Z,[t("a",X,[t("span",null,[n("2024.1.2.1 "),e(l,{text:"免费试用",type:"tip"}),n(),e(l,{text:"2024-01-24",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[e(l,{text:"点击send and download无响应",type:"danger"})])]),t("h2",Y,[t("a",Q,[t("span",null,[n("2024.1.2 "),e(l,{text:"免费试用",type:"tip"}),n(),e(l,{text:"2024-01-19",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[e(l,{text:"自定义工具栏",color:"orange"})])]),t("h2",$,[t("a",tt,[t("span",null,[n("2024.1.1 "),e(l,{text:"免费试用",type:"tip"}),n(),e(l,{text:"最新版",color:"pink"}),n(),e(l,{text:"2024-01-15",color:"SandyBrown"})])])]),t("ul",null,[t("li",null,[e(l,{text:"SearchEveryWhere 支持类名搜索",color:"orange"})]),t("li",null,[e(l,{text:".fastRequest目录生成策略",color:"orange"})]),t("li",null,[e(l,{text:"忽略字段名解析支持",type:"tip"})]),t("li",null,[e(l,{text:"Apis,Navigate弹框打开支持",type:"tip"})]),t("li",null,[e(l,{text:"手动更新检测",type:"tip"})]),t("li",null,[e(l,{text:"Content-Disposition支持优化",type:"info"})]),t("li",null,[e(l,{text:"SearchEveryWhere性能优化",type:"info"})]),t("li",null,[e(l,{text:"Navigate中的api加载性能优化",type:"info"})]),t("li",null,[e(l,{text:"Markdown文档批量api导出增加返回值文档",type:"info"})]),t("li",null,[e(l,{text:"集合泛型解析错误",type:"danger"})])]),t("h2",et,[t("a",lt,[t("span",null,[n("2023.2.3.1 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"JSON5 支持错误",type:"danger"})])]),t("h2",nt,[t("a",it,[t("span",null,[n("2023.2.3 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"API同步至Postman",color:"orange"})]),t("li",null,[e(l,{text:"自动域名切换项目名下拉框自动切换",type:"tip"})]),t("li",null,[e(l,{text:"Environment重构",type:"info"})]),t("li",null,[e(l,{text:"项目域名添加优化",type:"info"})]),t("li",null,[e(l,{text:"api文档同步触发在api保存的时候",type:"info"})]),t("li",null,[e(l,{text:"忽略字段使用 @fastRequestParseIgnore",type:"info"})]),t("li",null,[e(l,{text:"SearchEveryWhere 兼容 idea2023.3",type:"danger"})]),t("li",null,[e(l,{text:"body中传非json报错",type:"danger"})]),t("li",null,[e(l,{text:"curl导入解析\\'错误",type:"danger"})])]),t("h2",ot,[t("a",at,[t("span",null,[n("2023.2.2 "),e(l,{text:"Free trial",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Markdown文档模板配置",type:"tip"})]),t("li",null,[e(l,{text:"JSON5支持",type:"tip"})]),t("li",null,[e(l,{text:"兼容IDEA 2023.3",type:"tip"})]),t("li",null,[e(l,{text:"历史请求显示错误",type:"danger"})])]),t("h2",pt,[t("a",st,[t("span",null,[n("2023.2.1.1 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Url输入框针对某些主题下的样式优化",type:"tip"})]),t("li",null,[e(l,{text:"项目级别请求头保存错误",type:"danger"})])]),t("h2",ut,[t("a",rt,[t("span",null,[n("2023.2.1 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"UI简化",type:"tip"})]),t("li",null,[e(l,{text:"api文档支持保存和打开",type:"tip"})]),t("li",null,[e(l,{text:"bilibili视频教程直达",type:"tip"})]),t("li",null,[e(l,{text:"自动域名优化",type:"info"})]),t("li",null,[e(l,{text:"Map解析优化",type:"info"})]),t("li",null,[e(l,{text:"show apis放入到右键菜单",type:"info"})]),t("li",null,[e(l,{text:"统计页面加入了版本号",type:"info"})]),t("li",null,[e(l,{text:"众多细节优化",type:"info"})]),t("li",null,[e(l,{text:"url和curl拷贝有environment变量的时候url没替换变量",type:"danger"})]),t("li",null,[e(l,{text:"curl以form-urlencoded和-d形式导入解析错乱",type:"danger"})])]),t("h2",dt,[t("a",ht,[t("span",null,[n("2023.1.9 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"快捷添加Environment变量",type:"tip"})]),t("li",null,[e(l,{text:"Environment使用界面增删改支持",type:"tip"})]),t("li",null,[e(l,{text:"Show apis快捷触发",type:"tip"})]),t("li",null,[e(l,{text:"Response新增Size属性",type:"tip"})]),t("li",null,[e(l,{text:"Api名称保存优化",type:"info"})]),t("li",null,[e(l,{text:"输入参数trim优化",type:"info"})]),t("li",null,[e(l,{text:"缩减JSON tab展示树大小从5M->2M",type:"info"})]),t("li",null,[e(l,{text:"发送请求移除默认请求头Accept-Language",type:"danger"})]),t("li",null,[e(l,{text:"curl拷贝form-data格式错误",type:"danger"})]),t("li",null,[e(l,{text:"域名配置页修改回显逻辑错误",type:"danger"})])]),t("h2",ct,[t("a",xt,[t("span",null,[n("2023.1.8 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Environment",type:"tip"})]),t("li",null,[e(l,{text:"方法描述截断",type:"info"})]),t("li",null,[e(l,{text:"Instant类型解析",type:"info"})]),t("li",null,[e(l,{text:"Windows系统APIs中目录删除",type:"danger"})])]),t("h2",_t,[t("a",yt,[t("span",null,[n("2023.1.7.1 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"SearchEveryWhere增加自动生成策略",type:"tip"})]),t("li",null,[e(l,{text:"主窗口弹出配置化",type:"info"})]),t("li",null,[e(l,{text:"参数解析",type:"info"})]),t("li",null,[e(l,{text:"table托拉拽问题",type:"info"})])]),t("h2",gt,[t("a",vt,[t("span",null,[n("2023.1.7 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"全新扁平化图标",type:"tip"})]),t("li",null,[e(l,{text:"SearchEveryWhere加入过滤条件",type:"tip"})]),t("li",null,[e(l,{text:"精简版http图标",type:"tip"})]),t("li",null,[e(l,{text:"字段拷贝",type:"tip"})]),t("li",null,[e(l,{text:"脚本片段插入优化",type:"info"})]),t("li",null,[e(l,{text:"table与textarea优化",type:"info"})]),t("li",null,[e(l,{text:"自动域名解析优化",type:"info"})]),t("li",null,[e(l,{text:"cUrl导入",type:"info"})]),t("li",null,[e(l,{text:"全屏操作",type:"info"})]),t("li",null,[e(l,{text:"参数解析",type:"info"})]),t("li",null,[e(l,{text:"Gradle项目的模块名去除.main",type:"info"})]),t("li",null,[e(l,{text:"SearchEveryWhere关键字带空格搜索",type:"danger"})]),t("li",null,[e(l,{text:"众多操作细节优化",type:"danger"})]),t("li",null,[e(l,{text:"批量导出api文档",type:"danger"})]),t("li",null,[e(l,{text:"历史请求回显问题",type:"danger"})])]),t("h2",ft,[t("a",mt,[t("span",null,[n("2023.1.6 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"header批量编辑",type:"tip"})]),t("li",null,[e(l,{text:"后置脚本发起请求idea debug卡死",type:"danger"})])]),t("h2",bt,[t("a",kt,[t("span",null,[n("2023.1.5 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"编辑器图标位置",type:"info"})]),t("li",null,[e(l,{text:"SearchEveryWhere样式错乱",type:"danger"})]),t("li",null,[e(l,{text:"URL变量替换",type:"danger"})])]),t("h2",At,[t("a",wt,[t("span",null,[n("2023.1.4.2 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"项目级配置域名编辑错误",type:"danger"})]),t("li",null,[e(l,{text:"headers分组加载错误",type:"danger"})])]),t("h2",It,[t("a",St,[t("span",null,[n("2023.1.4.1 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"修复多模块项目自动域名找不到配置文件",type:"danger"})])]),t("h2",Pt,[t("a",Et,[t("span",null,[n("2023.1.4 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"自动域名",type:"tip"})]),t("li",null,[e(l,{text:"SearchEveryWhere支持搜索jar包中的url",type:"tip"})]),t("li",null,[e(l,{text:"Script项目级别头设置失败",type:"danger"})])]),t("h2",Ct,[t("a",Rt,[t("span",null,[n("2023.1.3.2 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"重量级更新:团队协作支持",type:"tip"})]),t("li",null,[e(l,{text:"OpenAI API接口优化字段支持",type:"tip"})]),t("li",null,[e(l,{text:"API与存储文件跳转",type:"tip"})]),t("li",null,[e(l,{text:"项目配置刷新",type:"tip"})]),t("li",null,[e(l,{text:"rfr.currentModuleName支持",type:"tip"})]),t("li",null,[e(l,{text:"Api文档同步支持自定义分支",type:"info"})]),t("li",null,[e(l,{text:"工具栏",type:"info"})]),t("li",null,[e(l,{text:"LocalDateTime、LocalDate、LocalTime解析优化",type:"info"})]),t("li",null,[e(l,{text:"GET、POST、DELETE、PUT、PATCH图标",type:"info"})]),t("li",null,[e(l,{text:"Mapping为数组的时候URL随机生成",type:"danger"})]),t("li",null,[e(l,{text:"Kotlin字段注释未生成",type:"danger"})])]),t("h2",Tt,[t("a",Ut,[t("span",null,[n("2023.1.2 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"图片响应渲染",type:"tip"})]),t("li",null,[e(l,{text:"年度报告",type:"tip"})]),t("li",null,[e(l,{text:"Url解析逻辑",type:"info"})]),t("li",null,[e(l,{text:"cUrl导入",type:"info"})]),t("li",null,[e(l,{text:"Url特殊字符编码",type:"info"})]),t("li",null,[e(l,{text:"Url输入框回车事件",type:"info"})]),t("li",null,[e(l,{text:"移除窗口插件标题",type:"info"})]),t("li",null,[e(l,{text:"jdk11+的idea版本中Patch请求失败",type:"danger"})]),t("li",null,[e(l,{text:"API名字保存错误",type:"danger"})])]),t("h2",Dt,[t("a",Nt,[t("span",null,[n("2023.1.1 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Yml和Properties文件的域名解析支持",type:"tip"})]),t("li",null,[e(l,{text:"项目级别域名配置",type:"tip"})]),t("li",null,[e(l,{text:"图标排版",type:"info"})]),t("li",null,[e(l,{text:"新UI工具窗口图标",type:"info"})]),t("li",null,[e(l,{text:"项目级别头参数可选",type:"info"})]),t("li",null,[e(l,{text:"Cookie取值",type:"info"})]),t("li",null,[e(l,{text:"基础类型Swagger默认值解析",type:"danger"})]),t("li",null,[e(l,{text:"数组不解析",type:"danger"})])]),t("h2",Lt,[t("a",Bt,[t("span",null,[n("2022.3.1 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"注释增加@fastRequestParseIgnore用来忽略字段解析",type:"tip"})]),t("li",null,[e(l,{text:"Script中增加rfr.currentDomain支持",type:"tip"})]),t("li",null,[e(l,{text:"激活提示优化",type:"info"})]),t("li",null,[e(l,{text:"Kotlin和Java混编导致Navigate加载api失败",type:"danger"})])]),t("h2",qt,[t("a",Wt,[t("span",null,[n("2022.2.9 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"兼容IDEA2022.2.4",type:"tip"})]),t("li",null,[e(l,{text:"全局动画配置",type:"tip"})]),t("li",null,[e(l,{text:"多Cookie值错误",type:"danger"})]),t("li",null,[e(l,{text:"导航Navigate tab加载错误",type:"danger"})])]),t("h2",Mt,[t("a",Jt,[t("span",null,[n("2022.2.8 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"下载文件适配",type:"info"})]),t("li",null,[e(l,{text:"@RequestParam支持name解析",type:"info"})]),t("li",null,[e(l,{text:"检查更新报错",type:"danger"})])]),t("h2",Ft,[t("a",zt,[t("span",null,[n("v2022.2.7 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Api文档同步",type:"tip"})]),t("li",null,[e(l,{text:"Api文档显示返回值类型参数文档",type:"tip"})]),t("li",null,[e(l,{text:"插件更新通知机制",type:"tip"})]),t("li",null,[e(l,{text:"公共请求头",type:"tip"})]),t("li",null,[e(l,{text:"全屏",type:"tip"})]),t("li",null,[e(l,{text:"注释预览",type:"info"})]),t("li",null,[e(l,{text:"模块头一直被选中",type:"danger"})]),t("li",null,[e(l,{text:"解析bug",type:"danger"})]),t("li",null,[e(l,{text:"body中传string参数报错",type:"danger"})])]),t("h2",Ot,[t("a",Ht,[t("span",null,[n("v2022.2.6 "),e(l,{text:"免费试用",type:"tip"}),n(),e(l,{text:"最新版",type:"info"})])])]),t("ul",null,[t("li",null,[e(l,{text:"一键清除参数",type:"tip"})]),t("li",null,[e(l,{text:"API注释预览",type:"tip"})]),t("li",null,[e(l,{text:"参数列根据key排序",type:"tip"})]),t("li",null,[e(l,{text:"Api文档导出新增required列",type:"info"})]),t("li",null,[e(l,{text:"优化内网检查更新延迟较长",type:"info"})]),t("li",null,[e(l,{text:"第一次打开工具窗口有短暂卡顿现象",type:"info"})]),t("li",null,[e(l,{text:"前置脚本多次打印",type:"danger"})])]),t("h2",Gt,[t("a",jt,[t("span",null,[n("v2022.2.5.2 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"后置脚本无法清空",type:"danger"})])]),t("h2",Vt,[t("a",Kt,[t("span",null,[n("v2022.2.5.1 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Console语法报错",type:"danger"})])]),t("h2",Zt,[t("a",Xt,[t("span",null,[n("v2022.2.5 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"添加Console控制台",type:"tip"})]),t("li",null,[e(l,{text:"添加打印语法支持",type:"tip"})]),t("li",null,[e(l,{text:"内置变量rfr添加currentProjectName、currentEnvName属性",type:"tip"})]),t("li",null,[e(l,{text:"从Javadoc读取注释",type:"tip"})]),t("li",null,[e(l,{text:"@RequestPart支持",type:"tip"})]),t("li",null,[e(l,{text:"新增推特",type:"tip"})]),t("li",null,[e(l,{text:"后置脚本在请求成功但响应是401不执行",type:"danger"})])]),t("h2",Yt,[t("a",Qt,[t("span",null,[n("v2022.2.4.1 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"修复小屏EUAL协议无法显示同意按钮",type:"danger"})])]),t("h2",$t,[t("a",te,[t("span",null,[n("v2022.2.4 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"全新的Logo",type:"tip"})]),t("li",null,[e(l,{text:"支持通过注释解析日期",type:"tip"})]),t("li",null,[e(l,{text:"支持解析BaseController",type:"tip"})]),t("li",null,[e(l,{text:"自动更新可配置化",type:"info"})]),t("li",null,[e(l,{text:"参数编码传参优化",type:"info"})]),t("li",null,[e(l,{text:"Map不带泛型解析错误",type:"danger"})]),t("li",null,[e(l,{text:"后置脚本删除添加头信息失败",type:"danger"})])]),t("h2",ee,[t("a",le,[t("span",null,[n("v2022.2.3.1 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"修复参数无法清除的bug",type:"danger"})])]),t("h2",ne,[t("a",ie,[t("span",null,[n("v2022.2.3 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"前置脚本",type:"tip"})]),t("li",null,[e(l,{text:"后置脚本",type:"tip"})]),t("li",null,[e(l,{text:"一键拷贝Url",type:"tip"})]),t("li",null,[e(l,{text:"兼容IDEA2021.2.1+",type:"info"})]),t("li",null,[e(l,{text:"RequestParam defaultValue属性解析",type:"info"})]),t("li",null,[e(l,{text:"点击按钮时触发表格单元格值更改",type:"info"})]),t("li",null,[e(l,{text:"关闭RFR工具窗口后点击火箭第一次url无法生成",type:"danger"})]),t("li",null,[e(l,{text:"Jax-rs PATCH支持",type:"danger"})])]),t("h2",oe,[t("a",ae,[t("span",null,[n("v2022.2.2 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"终止API请求功能",type:"tip"})]),t("li",null,[e(l,{text:"批量导出API文档",type:"tip"})]),t("li",null,[e(l,{text:"导出到Postman添加注释",type:"tip"})]),t("li",null,[e(l,{text:"响应数据量巨大情况下卡顿优化",type:"info"})]),t("li",null,[e(l,{text:"某些场景下的体验和提示",type:"info"})]),t("li",null,[e(l,{text:"新UI及EAP下SearchEveryWhere报错",type:"danger"})]),t("li",null,[e(l,{text:"Multipart修改数字类型参数报错",type:"danger"})]),t("li",null,[e(l,{text:"某些情况下历史请求删除操作报错",type:"danger"})])]),t("h2",pe,[t("a",se,[t("span",null,[n("v2022.2.1 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"API分组参数保存支持",type:"tip"})]),t("li",null,[e(l,{text:"临时请求保存支持",type:"tip"})]),t("li",null,[e(l,{text:"cURL导入支持",type:"tip"})]),t("li",null,[e(l,{text:"Response Header展示",type:"tip"})]),t("li",null,[e(l,{text:"添加对Url尾缀支持",type:"tip"})]),t("li",null,[e(l,{text:"优化快捷键",type:"info"})]),t("li",null,[e(l,{text:"优化解析",type:"info"})]),t("li",null,[e(l,{text:"修复Word导出bug",type:"danger"})])]),t("h2",ue,[t("a",re,[t("span",null,[n("v2022.1.10 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"添加对历史请求预览的支持",type:"tip"})]),t("li",null,[e(l,{text:"超时时间自定义设置",type:"tip"})]),t("li",null,[e(l,{text:"SearchEveryWhere支持方法注释搜索",type:"info"})]),t("li",null,[e(l,{text:"快捷键冲突优化",type:"info"})]),t("li",null,[e(l,{text:"文本编辑器字符显示光标定位优化",type:"info"})]),t("li",null,[e(l,{text:"Curl输出格式优化",type:"info"})]),t("li",null,[e(l,{text:"优化@Consumes(APPLICATION_JSON)不生效问题(JAX-RS)",type:"info"})])]),t("h2",de,[t("a",he,[t("span",null,[n("v2022.1.9 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"工具窗口跳转增加快捷键",type:"tip"})]),t("li",null,[e(l,{text:"添加自动添加Cookie支持",type:"tip"})]),t("li",null,[e(l,{text:"响应raw中增加html预览",type:"tip"})]),t("li",null,[e(l,{text:"APIs列表视图优化",type:"info"})]),t("li",null,[e(l,{text:"忽略字段解析优化",type:"info"})]),t("li",null,[e(l,{text:"泛型参数解析支持",type:"info"})]),t("li",null,[e(l,{text:"完善项目全局参数",type:"info"})]),t("li",null,[e(l,{text:"修复编辑参数时同时按删除参数导致报错",type:"info"})]),t("li",null,[e(l,{text:"界面优化",type:"info"})]),t("li",null,[e(l,{text:"保存API插入顺序优化",type:"info"})]),t("li",null,[e(l,{text:"优化了导出预览",type:"info"})])]),t("h2",ce,[t("a",xe,[t("span",null,[n("v2022.1.8 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"项目级别全局参数支持",type:"tip"})]),t("li",null,[e(l,{text:"优化响应数据快速添加到头",type:"info"})]),t("li",null,[e(l,{text:"优化cookie快速添加到头",type:"info"})]),t("li",null,[e(l,{text:"Postman导出优化",type:"info"})]),t("li",null,[e(l,{text:"修复navigate树扫描bug",type:"info"})]),t("li",null,[e(l,{text:"修复了一些bug",type:"danger"})])]),t("h2",_e,[t("a",ye,[t("span",null,[n("v2022.1.7 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"Kotlin spring系列框架支持",type:"tip"})]),t("li",null,[e(l,{text:"新增SearchEveryWhere范围搜索策略",type:"tip"})]),t("li",null,[e(l,{text:"编辑器ToggleUseSoftWrap支持",type:"tip"})]),t("li",null,[e(l,{text:"响应数据一键添加Global Header支持",type:"tip"})]),t("li",null,[e(l,{text:"添加导航到当前方法的支持",type:"tip"})]),t("li",null,[e(l,{text:"优化多模块下保存的API回显自动绑定项目",type:"info"})])]),t("h2",ge,[t("a",ve,[t("span",null,[n("v2022.1.6 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"添加一键添加Cookie到Header的支持",type:"tip"})]),t("li",null,[e(l,{text:"添加API分享Word和html的支持",type:"tip"})]),t("li",null,[e(l,{text:"修复了Basic authorization没有携带Basic字符串",type:"danger"})]),t("li",null,[e(l,{text:"移除了APIs标签下的拉拽功能",type:"danger"})])]),t("h2",fe,[t("a",me,[t("span",null,[n("v2022.1.5 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"添加对自动生成参数描述的支持",type:"tip"})]),t("li",null,[e(l,{text:"添加一键生成API文档的支持",type:"tip"})]),t("li",null,[e(l,{text:"添加单个类的API整体预览",type:"tip"})]),t("li",null,[e(l,{text:"移除了Accept头上的text/html",type:"danger"})]),t("li",null,[e(l,{text:"修复了一些bug",type:"danger"})])]),t("h2",be,[t("a",ke,[t("span",null,[n("v2022.1.4.0 "),e(l,{text:"免费试用",type:"tip"})])])]),t("ul",null,[t("li",null,[e(l,{text:"APIs导入导出支持",type:"tip"})]),t("li",null,[e(l,{text:"APIs支持直接运行",type:"tip"})]),t("li",null,[e(l,{text:"API请求增加超时设置",type:"tip"})]),t("li",null,[e(l,{text:"url生成优化之多url随机生成",type:"tip"})]),t("li",null,[e(l,{text:"自动生成参数可选化",type:"tip"})]),t("li",null,[e(l,{text:"swagger注解默认值参数解析支持",type:"tip"})]),t("li",null,[e(l,{text:"兼容idea 2022.1",type:"info"})]),t("li",null,[e(l,{text:"SearchEveryWhere高亮优化",type:"info"})]),t("li",null,[e(l,{text:"对Send和Send and Download按钮进行了合并",type:"info"})]),t("li",null,[e(l,{text:"APIs界面优化",type:"info"})]),t("li",null,[e(l,{text:"Tab页API Navigate重命名Navigate",type:"info"})]),t("li",null,[e(l,{text:"使用引导上的细节优化",type:"info"})]),t("li",null,[e(l,{text:"修复了Light files should have PSI only in one project",type:"danger"})])])])}const Ce=r(c,[["render",Ae],["__file","whatsnew.html.vue"]]),Re=JSON.parse('{"path":"/guide/whatsnew.html","title":"历史变更","lang":"zh-CN","frontmatter":{"title":"历史变更","icon":"whats-new","description":" 公告 插件版本 2022.1.4+即氪金版(但是你可以免费试用 30 天后再决定是否值得氪金),对比氪金版和免费有什么更强大的功能,只需要看更新日志>=2021.1.4+的,或者简单看一下以下的对比 购买License流程请参考 或者进入微信群里查看群公告 Issue 提报请到Github important: 由于开发版本仍在开发中,开发版本的文档...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://api-buddy.com/en/guide/whatsnew.html"}],["meta",{"property":"og:url","content":"https://api-buddy.com/guide/whatsnew.html"}],["meta",{"property":"og:site_name","content":"Fast Request"}],["meta",{"property":"og:title","content":"历史变更"}],["meta",{"property":"og:description","content":" 公告 插件版本 2022.1.4+即氪金版(但是你可以免费试用 30 天后再决定是否值得氪金),对比氪金版和免费有什么更强大的功能,只需要看更新日志>=2021.1.4+的,或者简单看一下以下的对比 购买License流程请参考 或者进入微信群里查看群公告 Issue 提报请到Github important: 由于开发版本仍在开发中,开发版本的文档..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://img.shields.io/static/v1?label=wechat&message=微信技术群&logo=wechat&color=07C160"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-08-21T12:02:42.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:alt","content":"历史变更"}],["meta",{"property":"article:modified_time","content":"2024-08-21T12:02:42.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"历史变更\\",\\"image\\":[\\"https://img.shields.io/static/v1?label=wechat&message=微信技术群&logo=wechat&color=07C160\\",\\"https://img.shields.io/static/v1?label=Twitter&message=FastRequest666&logo=twitter&color=FC8D34\\",\\"https://api-buddy.com/img/wechatGroup.png\\",\\"https://api-buddy.com/img/twitter.png\\"],\\"dateModified\\":\\"2024-08-21T12:02:42.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"2024.1.7","slug":"_2024-1-7","link":"#_2024-1-7","children":[]},{"level":2,"title":"2024.1.6.3","slug":"_2024-1-6-3","link":"#_2024-1-6-3","children":[]},{"level":2,"title":"2024.1.6.2","slug":"_2024-1-6-2","link":"#_2024-1-6-2","children":[]},{"level":2,"title":"2024.1.6","slug":"_2024-1-6","link":"#_2024-1-6","children":[]},{"level":2,"title":"2024.1.5.1","slug":"_2024-1-5-1","link":"#_2024-1-5-1","children":[]},{"level":2,"title":"2024.1.5","slug":"_2024-1-5","link":"#_2024-1-5","children":[]},{"level":2,"title":"2024.1.4","slug":"_2024-1-4","link":"#_2024-1-4","children":[]},{"level":2,"title":"2024.1.3","slug":"_2024-1-3","link":"#_2024-1-3","children":[]},{"level":2,"title":"2024.1.2.1","slug":"_2024-1-2-1","link":"#_2024-1-2-1","children":[]},{"level":2,"title":"2024.1.2","slug":"_2024-1-2","link":"#_2024-1-2","children":[]},{"level":2,"title":"2024.1.1","slug":"_2024-1-1","link":"#_2024-1-1","children":[]},{"level":2,"title":"2023.2.3.1","slug":"_2023-2-3-1","link":"#_2023-2-3-1","children":[]},{"level":2,"title":"2023.2.3","slug":"_2023-2-3","link":"#_2023-2-3","children":[]},{"level":2,"title":"2023.2.2","slug":"_2023-2-2","link":"#_2023-2-2","children":[]},{"level":2,"title":"2023.2.1.1","slug":"_2023-2-1-1","link":"#_2023-2-1-1","children":[]},{"level":2,"title":"2023.2.1","slug":"_2023-2-1","link":"#_2023-2-1","children":[]},{"level":2,"title":"2023.1.9","slug":"_2023-1-9","link":"#_2023-1-9","children":[]},{"level":2,"title":"2023.1.8","slug":"_2023-1-8","link":"#_2023-1-8","children":[]},{"level":2,"title":"2023.1.7.1","slug":"_2023-1-7-1","link":"#_2023-1-7-1","children":[]},{"level":2,"title":"2023.1.7","slug":"_2023-1-7","link":"#_2023-1-7","children":[]},{"level":2,"title":"2023.1.6","slug":"_2023-1-6","link":"#_2023-1-6","children":[]},{"level":2,"title":"2023.1.5","slug":"_2023-1-5","link":"#_2023-1-5","children":[]},{"level":2,"title":"2023.1.4.2","slug":"_2023-1-4-2","link":"#_2023-1-4-2","children":[]},{"level":2,"title":"2023.1.4.1","slug":"_2023-1-4-1","link":"#_2023-1-4-1","children":[]},{"level":2,"title":"2023.1.4","slug":"_2023-1-4","link":"#_2023-1-4","children":[]},{"level":2,"title":"2023.1.3.2","slug":"_2023-1-3-2","link":"#_2023-1-3-2","children":[]},{"level":2,"title":"2023.1.2","slug":"_2023-1-2","link":"#_2023-1-2","children":[]},{"level":2,"title":"2023.1.1","slug":"_2023-1-1","link":"#_2023-1-1","children":[]},{"level":2,"title":"2022.3.1","slug":"_2022-3-1","link":"#_2022-3-1","children":[]},{"level":2,"title":"2022.2.9","slug":"_2022-2-9","link":"#_2022-2-9","children":[]},{"level":2,"title":"2022.2.8","slug":"_2022-2-8","link":"#_2022-2-8","children":[]},{"level":2,"title":"v2022.2.7","slug":"v2022-2-7","link":"#v2022-2-7","children":[]},{"level":2,"title":"v2022.2.6","slug":"v2022-2-6","link":"#v2022-2-6","children":[]},{"level":2,"title":"v2022.2.5.2","slug":"v2022-2-5-2","link":"#v2022-2-5-2","children":[]},{"level":2,"title":"v2022.2.5.1","slug":"v2022-2-5-1","link":"#v2022-2-5-1","children":[]},{"level":2,"title":"v2022.2.5","slug":"v2022-2-5","link":"#v2022-2-5","children":[]},{"level":2,"title":"v2022.2.4.1","slug":"v2022-2-4-1","link":"#v2022-2-4-1","children":[]},{"level":2,"title":"v2022.2.4","slug":"v2022-2-4","link":"#v2022-2-4","children":[]},{"level":2,"title":"v2022.2.3.1","slug":"v2022-2-3-1","link":"#v2022-2-3-1","children":[]},{"level":2,"title":"v2022.2.3","slug":"v2022-2-3","link":"#v2022-2-3","children":[]},{"level":2,"title":"v2022.2.2","slug":"v2022-2-2","link":"#v2022-2-2","children":[]},{"level":2,"title":"v2022.2.1","slug":"v2022-2-1","link":"#v2022-2-1","children":[]},{"level":2,"title":"v2022.1.10","slug":"v2022-1-10","link":"#v2022-1-10","children":[]},{"level":2,"title":"v2022.1.9","slug":"v2022-1-9","link":"#v2022-1-9","children":[]},{"level":2,"title":"v2022.1.8","slug":"v2022-1-8","link":"#v2022-1-8","children":[]},{"level":2,"title":"v2022.1.7","slug":"v2022-1-7","link":"#v2022-1-7","children":[]},{"level":2,"title":"v2022.1.6","slug":"v2022-1-6","link":"#v2022-1-6","children":[]},{"level":2,"title":"v2022.1.5","slug":"v2022-1-5","link":"#v2022-1-5","children":[]},{"level":2,"title":"v2022.1.4.0","slug":"v2022-1-4-0","link":"#v2022-1-4-0","children":[]}],"git":{"createdTime":1717147459000,"updatedTime":1724241762000,"contributors":[{"name":"Kings","email":"963987632@qq.com","commits":5},{"name":"kings","email":"963987632@qq.com","commits":4}]},"readingTime":{"minutes":14.77,"words":4432},"filePathRelative":"guide/whatsnew.md","localizedDate":"2024年5月31日","autoDesc":true}');export{Ce as comp,Re as data}; diff --git a/baidu_verify_codeva-OWrPlOc2wg.html b/baidu_verify_codeva-OWrPlOc2wg.html new file mode 100644 index 000000000..2949d3dee --- /dev/null +++ b/baidu_verify_codeva-OWrPlOc2wg.html @@ -0,0 +1 @@ +10ffbdc05854598c3624fb8df88be459 diff --git a/en/compare.snippet.html b/en/compare.snippet.html new file mode 100644 index 000000000..ae0e348f1 --- /dev/null +++ b/en/compare.snippet.html @@ -0,0 +1,51 @@ + + + + + + + + + + Fast Request + + + + + +
    Skip to main content


    Free version

    Basic API debugging plugin

    IDEA 2020.3~2021.1.3Basic usage
    Last update:
    + + + diff --git a/en/contact.snippet.html b/en/contact.snippet.html new file mode 100644 index 000000000..e55926345 --- /dev/null +++ b/en/contact.snippet.html @@ -0,0 +1,51 @@ + + + + + + + + + + Fast Request + + + + + + + + + diff --git a/en/guide/buy.html b/en/guide/buy.html new file mode 100644 index 000000000..ecb1b9037 --- /dev/null +++ b/en/guide/buy.html @@ -0,0 +1,51 @@ + + + + + + + + + + Buy Plugin | Fast Request + + + + + +
    Skip to main content

    Buy Plugin


    ❤️Thanks for supporting the original, support official edition.❤️

    Two ways to buy

    Registering a JetBrains account to purchase can facilitate the follow-up to find the license, and it is not easy to lose.

    Documentationopen in new window how to buy a plugin provided by JetBrains, or you can refer to the following steps.

    Step0: Go to the plugin activation page

    Click Activate Plugin. Of course, you can also try the plugin first. It's free for 30 days. Please click start trial.

    Step1: Click Buy license

    step2: Choose a package

    • package 1: Monthly Subscription
    • package 2: Yearly Subscription(Recommended)

    Step3: Email confirmation(Email mode)

    If you have not registered a JetBrains account and logged in, you will enter this page, where you need to enter the email address that accepts the license. Click next to enter the purchase confirmation page.

    Step4: Type in the information and pay

    Step5: Type in the License information to activate the plugin

    Online activation

    Click help->Register Plugins...->Add New License

    Log in to your JetBrains account.

    Offline activation

    • 2.Enter the activation code in the Activation code

    Buy

    Tips💡

    License info

    Please keep your activation code information safe and do not leak the License information.

    If you have some questions, please join Slackopen in new window and contact me

    Last update:
    + + + diff --git a/en/guide/concatGroup.html b/en/guide/concatGroup.html new file mode 100644 index 000000000..60671f76a --- /dev/null +++ b/en/guide/concatGroup.html @@ -0,0 +1,51 @@ + + + + + + + + + + Contacts | Fast Request + + + + + + + + + diff --git a/en/guide/eula.html b/en/guide/eula.html new file mode 100644 index 000000000..130794c2f --- /dev/null +++ b/en/guide/eula.html @@ -0,0 +1,51 @@ + + + + + + + + + + EULA | Fast Request + + + + + +
    Skip to main content

    EULA


    Restful Fast Request for JetBrains IDEs EULA

    Developer(s)” means DKingSoft.

    JetBrains” means JetBrains s.r.o. with its registered office at Na Hrebenech II 1718/10, Prague, 14000, Czech Republic, registered with the Commercial Register kept by the Municipal Court of Prague, Section C, file 86211, ID.Nr.: 265 02 275.

    JetBrains Affiliate” means the subsidiary and/or any associated companies of JetBrains.

    JetBrains Marketplace” means any platform operated by JetBrains or a JetBrains Affiliate on which JetBrains or a JetBrains Affiliate markets Plugins for JetBrains Products, including the website https://plugins.jetbrains.com and/or any other website or other platform, whether named JetBrains Marketplace, JetBrains Plugins Repository, or otherwise.

    JetBrains Product” means any software program or service made available by JetBrains.

    Plugin” means the Plugin for JetBrains Product that Developer makes available under this EULA.

    Plugin Information” means the following information and materials: (a) JetBrains Marketplace Plugin title, tags / category, name(s) of Developer(s), product description, icon, logo or banner images, and any other information related to Plugins; (b) the metadata, graphics, artwork, images, trademarks, trade names, logos and other descriptive or identifying information and materials associated with Developer or appears in connection with Plugin; and (c) in the case of cloud hosted Plugins, an XML/JSON descriptor of Plugin.

    Plugin Users” means users that are able to access and use Plugin concurrently.

    You” means an individual or an entity concluding this EULA.

    This EULA governs the terms of use of Plugin made available to You via JetBrains Marketplace. This EULA is entered into between You and Developer.

    If Plugin is a paid Plugin, you must ensure that the maximum number of Plugin Users does not exceed the number of Plugin Users for which you have purchased Plugin.

    You are authorized to use Plugin in accordance with its documentation provided by Developer and for the period of time specified by Developer.

    You are not permitted to:

    • Edit, alter, modify, adapt, translate or otherwise change the whole or any part of the Software nor permit the whole or any part of the Software to be combined with or become incorporated in any other software, nor decompile, disassemble or reverse engineer the Software or attempt to do any such things
    • Reproduce, copy, distribute, resell or otherwise use the Software for any commercial purpose
    • Allow any third party to use the Software on behalf of or for the benefit of any third party
    • Use the Software in any way which breaches any applicable local, national or international law
    • Use the Software for any purpose that DKingSoft considers is a breach of this EULA agreement

    Plugin is protected by copyright and other intellectual property laws and treaties. Developer or its licensors own all title, copyright and other intellectual property rights in Plugin.

    DKingSoft reserves the right to grant licences to use the Software to third parties.

    ALL PLUGINS ARE PROVIDED TO YOU ON AN ”AS IS” AND ”AS AVAILABLE” BASIS WITHOUT WARRANTIES. USE OF PLUGINS IS AT YOUR OWN RISK. DEVELOPER MAKES NO WARRANTY AS TO PLUGIN’S USE OR PERFORMANCE. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, DEVELOPER DISCLAIMS ALL OTHER WARRANTIES AND CONDITIONS, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, WITH REGARD TO PLUGINS, AND THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT SERVICES. DEVELOPER DOES NOT WARRANT THAT PLUGINS ARE ACCURATE, RELIABLE, OR CORRECT; THAT PLUGIN MEETS YOUR REQUIREMENTS; THAT PLUGINS WILL BE AVAILABLE AT ANY PARTICULAR TIME OR LOCATION, UNINTERRUPTED, OR SECURE; THAT ANY DEFECTS OR ERRORS WILL BE CORRECTED; OR THAT PLUGINS ARE FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS.

    IN NO EVENT WILL DEVELOPER BE LIABLE FOR ANY DIRECT OR INDIRECT COSTS, LOSSES, OR DAMAGES ASSOCIATED WITH THE USE OF DEVELOPER’S PLUGINS.

    DEVELOPER SHALL NOT BE LIABLE TO YOU FOR ANY LOST PROFITS OR CONSEQUENTIAL DAMAGES, HOWEVER CAUSED, AND IN NO EVENT WILL DEVELOPER’S AGGREGATE LIABILITY ARISING OUT OF OR RELATED TO THIS AGREEMENT OR THE USE OF PLUGIN EXCEED THE FEES WHICH YOU PAID VIA JETBRAINS PLUGIN MARKETPLACE SERVICE FOR PLUGINS IN THE THREE-MONTH PERIOD PRECEDING THE CLAIM. THIS LIMITATION WILL APPLY EVEN IF DEVELOPER HAS BEEN ADVISED OF THE POSSIBILITY OF THE LIABILITY EXCEEDING THE AMOUNT AND NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY. JETBRAINS’ LIABILITY IS EXCLUDED IN ITS ENTIRETY AS JETBRAINS IS NOT A PARTY TO THE CONTRACTUAL RELATIONSHIP BETWEEN DEVELOPER AND CUSTOMER.

    THIS EULA AGREEMENT, AND ANY DISPUTE ARISING OUT OF OR IN CONNECTION WITH THIS EULA AGREEMENT, SHALL BE GOVERNED BY AND CONSTRUED IN ACCORDANCE WITH THE LAWS.

    Update: 2022-08-20

    Last update:
    + + + diff --git a/en/guide/faq.html b/en/guide/faq.html new file mode 100644 index 000000000..cef603901 --- /dev/null +++ b/en/guide/faq.html @@ -0,0 +1,121 @@ + + + + + + + + + + FAQ | Fast Request + + + + + +
    Skip to main content

    FAQ


    Keywords meaning

    S: Skill Q: Question A: Answer

    We will constantly update the problems encountered by developers and the corresponding solutions.

    S: Slow operations are prohibited on EDT

    Slow operations are prohibited on EDT error.

    Fill into the keywords ide.slow.operations.assertion in SearchEveryWhere and uncheck them like following.

    slowOperationsConfig

    S: Send button is disabled, but there is no notification message

    You need to manually turn on the notification message. If notification messages are not turned on, many messages cannot be displayed, so IDEA's message notification settings need to be configured. Other situations are handled similarly.

    Go to Setting-> Appearance & Behavior->Nofications , check Display ballon notifications and Enable system notifications. If Fast Request is checked in Don't ask again nofications, this item needs to be removed.

    enableNotifications

    S: Timeout setting

    Default: 60 s

    Click the plug-in settings button Manage Configuration and set the values of Connect Timeout and Read Timeout.

    manageConfig

    timeout

    S: Quickly add domain

    Please refer Project-level domain config (Plugin version>=2023.1.1)

    S: APIs lost

    So sorry to inform you that installing the 2023.1.3 version of (have been hidden) will cause loss of historical APIs, and you will need to manually retrieve the data. Here's what you need to do:

    1. Download 2023.1.3.2+ version of plugin
    2. Go to the .idea directory in your project, right-click and click on "Local history", find the change log about .idea/FastRequestCollection.xml (the title contains "Deleting"), and locate the last version. Copy the contents of this version and paste them into .idea/fastRequest/fastRequestCollection.xml
    3. Restart IntelliJ IDEA.
    4. Click on the icon in the APIs tab and do transfer

    dataTransfer20231

    S: Url error

    urlError

    Solution
    1. Configure the correct domain name and enable the 2 drop-down boxes for the project and environment
    2. Set the correct URL, for example, to replace the variable {id} on the URL, you can replace the variable in the Path Param tab

    S: How to ignore the field of the entity

    Way 1: Use one of the following 2 annotations.

    com.fasterxml.jackson.annotation.JsonIgnore
    +
    +com.alibaba.fastjson.annotation.JSONField(serialize = false)
    +

    Way 2: Add the static modifier to the field.

    Way 3: Add @fastRequestParseIgnore in comment

    /**
    + * xxx description
    + * @fastRequestParseIgnore
    + */
    +private String someIgnoreField;
    +

    Way 4: Ignore field name ignoreFiled

    Only need to add field names in the configuration to ignore target fields in the entity class.

    S: Quick locate

    After getting the focus of the window or pop-up box, enter the letters to position, then use the arrow or the arrow for jump position

    For example:

    apiDocExample

    S: Multi-file upload

    Enter multiple values and set the field type to file

    multiFileUpload

    S: Pass text/plain param in body

    Please add Content-Type: text/plain in the header

    Consider using add header by Common header

    S: No controller, how to send a request

    Refer to Temporary request

    S: Get code hints while writing scripts

    Copy the code and delete it after finish the script

    import cn.hutool.http.HttpUtil
    +
    +def request = HttpUtil.createGet("shouldremove")
    +def response = request.execute()
    +

    S: API doc sync

    When you modify your method, the API returned from the APIs list is the API saved before you update it. At this time, if you want to ensure that the online API document is your modified one, you need to click (save) or click again and then sync api doc.

    Recommendation: There is no need to create a repo in Github, Gitee, and Gitlab in advance. Plug-ins will automatically help create a repo. Developers only need to provide the repo name.

    S: APIs echo

    For the saved API, you modify it again, and you need manually fill in the parameters and save it. If you don't want the parameters you saved before at all, you can just click (Re generate).

    Please ensure that click save button every time you modify api params.

    S: Best Visual Effects

    Adjust tool window width to 610+ pixel and will achieve the best visual effect

    Q: Header likes Origin not effect

    Because the restrictedHeaders strategy of sun.net.www.protocol.http.HttpURLConnection . If you want to use the following headers, you need to configure vm parameters for IDEA

    private static final String[] restrictedHeaders = {
    +        /* Restricted by XMLHttpRequest2 */
    +        //"Accept-Charset",
    +        //"Accept-Encoding",
    +        "Access-Control-Request-Headers",
    +        "Access-Control-Request-Method",
    +        "Connection", /* close is allowed */
    +        "Content-Length",
    +        //"Cookie",
    +        //"Cookie2",
    +        "Content-Transfer-Encoding",
    +        //"Date",
    +        //"Expect",
    +        "Host",
    +        "Keep-Alive",
    +        "Origin",
    +        // "Referer",
    +        // "TE",
    +        "Trailer",
    +        "Transfer-Encoding",
    +        "Upgrade",
    +        //"User-Agent",
    +        "Via"
    +    };
    +

    Click help->Edit Custom Vm Options...,add the following config in idea.vmoptions(linux) or idea64.exe.vmoptions(windows)

    -Dsun.net.http.allowRestrictedHeaders=true
    +

    Q: Response return Unexpected end of file from server

    1. Network connection was lost
    +2. The server decided to close the connection
    +3. Something in between the client and the server (nginx, router, etc) terminated the request
    +4. The server-side api requires a proxy but IDEA is not configured, especially for some intranet projects
    +

    How to set IDEA proxy: Setting-> Appearance & Behavior->System Settings->HTTP Proxy

    Q: Spring Get request with array/collection parameter reports 400 error

    For example Url = http://localhost:8081/test?a[0].b[0].token=xxx&a[0].b[0].name=yyy

    Add the following configuration:

    import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
    +import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
    +import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
    +import org.springframework.context.annotation.Bean;
    +import org.springframework.context.annotation.Configuration;
    +
    +@Configuration
    +public class WebConfig {
    +
    +    @Bean
    +    public ConfigurableServletWebServerFactory webServerFactory() {
    +        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
    +        factory.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> connector.setProperty("relaxedQueryChars", "|{}[]\\"));
    +        return factory;
    +    }
    +
    +}
    +

    Q: Action buttons are not visible

    Click Options and check Show Toolbar

    Q: Generate parameters、jump error

    A: Do not have methods with the same method name in the controller code

    Q: Left icon missing

    Left icon missing.

    A: Open config setting->Editor->Gutter icons->show gutter icon

    Q: After entering the parameters, the API call found that the parameters were invalid

    A: Plugin version less than 2022.2.3, when editing a value in the table, you need to click in the blank space after editing the value, then send the request. The bug has been fixed in the 2022.2.3+ version.

    Q: Why the plugin doesn't respond

    A: Please configure the relevant configuration according to the steps introduced in the first chapter first, and then click the icon.

    Q: Idea freezes after clicking the fastRequest icon

    A: :The entity class you designed is nested and recursive, the plugin does not support.

    public class A{
    +    private B b;
    +    private int xx;
    +}
    +public class B{
    +    private A a;
    +    private String xx;
    +}
    +

    If you don't need the B property in the above case, then you can manually add a static keywords to property B when generating

    public class A{
    +    private static B b;
    +    private int xx;
    +}
    +
    Last update:
    + + + diff --git a/en/guide/feature.html b/en/guide/feature.html new file mode 100644 index 000000000..39c1b8a3c --- /dev/null +++ b/en/guide/feature.html @@ -0,0 +1,120 @@ + + + + + + + + + + Features | Fast Request + + + + + +
    Skip to main content

    Features


    Deprecated,Please click here

    Make icon move 2022.2.4

    Developers can freely choose and switch the color you want in the drop-down box, and can make it moving

    newLogo

    newLogoConfig

    Debug API & send request 2.0.0

    example

    In new version, send button have move to toolbar

    sendRequest

    SearchEveryWhere support 2.1.1

    example
    +/url              (search by url)
    +get /list         (search by get method and url)
    +post /save        (search by post method and url)
    +description keywords  (search by keywords)
    +

    searchEveryWhere

    Send and download 2.0.2

    example_download

    Script 2022.2.3+

    Scripts allow developers to more flexibly, dynamically and easily modify some input parameters of the request process and the processing of responses. Please refer to Script

    scriptProject

    scriptModule

    APIs export to Postman 2.1.2

    export2postman

    API List 2.0.1

    API name value calculate:

    1. If the method uses swagger annotation @io.swagger.annotations.ApiOperation,Then take the value of the annotation
    2. If there is no swagger annotation,Then take the java Doc description of the method
    3. If two above not matched, return New Request

    API name value supports modification

    apisapiManager

    Save Request 2.0.0

    Special Note

    1.The saved request will be put in Default Group by default, support drag and drop into other groups,Of course, it is best to join the module group, please see API group automatic association

    2.API Name:If the api uses swagger annotations @ApiOperation("xxx"),The api is named xxx,If there is no swagger annotation,Use javadoc as the name of the api,Otherwise it will be named New Request

    if (@ApiOperation("xxx"))
    +    apiName = xxx
    +else if(java doc)
    +    apiName = java doc
    +else
    +    apiName = New Request
    +

    example_download

    API grouping parameter save support 2022.2.1

    Purpose: Save parameters of different combinations under one API

    The original save operation will be classified into the Default group by default

    How to:After entering the parameters, click Save group param request

    groupSave

    Toggle parameter

    The following is the query of the book list in 3 languages

    apiParamGroup

    Temporary request save support 2022.2.1

    Purpose: Save any request that does not belong to this project for temporary invocation, not associated with the current project code

    The Url of the Request saved by the temporary request must start with http or https

    tempSave

    Regenetate 2.0.0

    Special Note

    If you have saved a request,But if you want to completely re-modify the parameters, then you can choose this operation

    regenerate

    CURL copy 1.1.4

    After generate the method url and parameters, click on the toolbarcurl

    curl

    Quickly add header 2.0.0

    If your request requires a token and the token can be obtained through a login interface, then you don't need to manually add it each time, just visit the login interface and then process it through the following operations

    fastAddToken

    API group automatic association 2.0.6

    The API group is to save the saved apis into different groups to distinguish different apis,When in a multi-module project,plugin support scan modules in projects,and quickly add the module name to the group, this way will add the group to the root group

    v2.1.2 will automatically create module group

    apiGroup

    Special Note

    1. If the module group is not created, then when saving the request, the saved request will be placed in the Default Group
    2. If you create a module group, when you save the request, it will be automatically classified into the corresponding Module Group according to the module where the current API is located.
    3. Of course, you can move the API to the corresponding smaller group by dragging

    Module supports quick search(Put the cursor on the list and enter keywords)

    moduleSearch

    Json grammar check 2.0.6

    The upper right corner of the json parameter input box provides a json syntax check. If the json is incorrect, the corresponding error will be prompted
    Of course it also supports formatting and other operations

    json

    API navigate tree 2.0.7

    Select the tree and enter keywords
    +Press Enter again or double-click the left mouse button to locate the API
    +
    +Hover the mouse to display the doc of the api
    +
    +The API Navigate tree is lazy loaded by default, you need to click the refresh button,
    +and every time you add an API, you also need to refresh to get it
    +
    +Lazy loading helps to speed up idea startup
    +

    apinavi

    Headers group(Automatic switching) 2.0.7

    Scenes:Multi-module projects such as SpringBoot have different header parameters in different projects and different environments. In order to quickly switch headers, header grouping is introduced.
    +Operation method:
    +1.Modify in the headers group, constraint: the input value must be in standard json format
    +2.Switch the environment or project name directly, and then enter the corresponding key and value values in the headers form
    +

    headerSwitch

    APIs import and export 2022.1.4

    Using this function, you can easily share your existing APIs with other developers, or import to IDEA on other devices

    Attention

    • A new file named fastRequestCollection.xml will be added when exporting,You can't rename it, it is exported to the current project path by default.

    • When importing, it will do a default backup,And will generate a file named fastRequestCollection-yyyyMMddHHmmssSSS.xml under the .idea folder , If it is imported by mistake, it can be restored by importing it

    • Click file->Reload All from Disk to force refresh to get fastRequestCollection.xml if it is not visible

    headerSwitch

    Swagger default value parsing support 2022.1.4

    Below are some examples

    Priority: swagger default value > config default value

    swagger2
    * @ApiParam
    +
    +@GetMapping(value="/test/{id}")
    +public String test3(@ApiParam(name = "id",example="2") @PathVariable("id") Integer id) {
    +    return "";
    +}
    +
    +@GetMapping(value="/test/{id}")
    +public String test3(@ApiParam(name = "id",defaultValue="2") @PathVariable("id") Integer id) {
    +    return "";
    +}
    +
    +
    +* @ApiImplicitParam
    +
    +@ApiImplicitParams({
    +    @ApiImplicitParam(paramType="query",name="pageNo",dataType="String",required=true,value="pageNo",defaultValue="1"),
    +    @ApiImplicitParam(paramType="query",name="pageSize",dataType="String",required=true,value="pageSize",defaultValue="10")
    +})
    +@GetMapping(value="/testPage)
    +public String testPage(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize) {
    +    return "";
    +}
    +
    +
    +* @ApiModelProperty
    +@Data
    +public class UserDto {
    +    @ApiModelProperty(example = "Bob")
    +    private String userName;
    +}
    +

    Auto Description 2022.1.5

    Field description need to conform to standard javadoc. Please use/**some description*/

    You can hide or show description by toggle click

    paramDescription

    API share document 2022.1.5+

    Please note that the API in word form is implemented in html, so don't feel strange, just export it

    Response Example requires running your API to be displayed

    shareDocButton

    apiDocExample

    API list preview 2022.1.5

    After focusing on the window, enter the keyword, and you can quickly search according to the path keyword of the API

    apiDocExample

    Project-level global parameters support 2022.1.8

    Support global parameters within the project level, not affected by multiple modules.

    Configure priority api header > project header>global header

    projectConfigParam

    cURL import 2022.2.1

    importByCurl

    After you generate the url of the method, sometimes you will switch to another place in the code, and then want to start debugging the API method, you can use this function to quickly locate the code

    navigate2CurrentMethod

    History request 2022.1.0

    Hidden skills: Double-click the record to display details

    history :::

    Stop API request 2022.2.2

    stopApi

    Batch export API doc 2022.2.2

    batchExportApiDoc

    One click copy url 2022.2.3

    copyUrl

    Html preview in response raw 2022.1.9

    The response of the html return type is no longer truncated in raw, and the html can be previewed at the same time

    rawHtmlPreview

    Api comment preview 2022.2.6

    showCommentConfigshowCommentInClassshowCommentInNavigate

    Last update:
    + + + diff --git a/en/guide/features/ai.html b/en/guide/features/ai.html new file mode 100644 index 000000000..f5d2b5f31 --- /dev/null +++ b/en/guide/features/ai.html @@ -0,0 +1,61 @@ + + + + + + + + + + AI | Fast Request + + + + + +
    Skip to main content

    AI


    AI

    Version required: 2024.1.4+

    1. Introduce

    AI

    In order to make AI's responses more accurate, we have made AI settings more refined and added 3 dimensions: SummaryExample questionExample question's answer. This design allows the AI to train a question and answer session so that the results are more in line with expectations.

    We can try to express various possibilities of the question in the Summary, and the give an example in Example question and Example question's answer.

    The following is a case of using AI to help optimize JSON messages

    Summary
    You are an excellent JSON handler. Whenever a user sends you a JSON, you should respond to
    +the user in a fixed JSON formatand replace the values in the JSON fields with
    +human-readable content according to the meaning of the JSON keys. You will only modify
    +the values in the JSON without changing its structure.
    +

    Tips

    The value selected in the editor needs to be replaced with ${SELECTION}. The complete example is as following.

    ${SELECTION} can be quickly generated through the {} icon in the editor.

    2. Api key configuration

    1. OpenAIopen in new window needs to be pasted into the Api key field after generation in web page.
    2. CodeGeeXopen in new window need to click Get api key and log in. Plugin will complete the api key automatically.
    3. Custom OpenAI refer to the first method to obtain the API key.

    3. Trigger AI prompt

    After selecting the content in the editor, click the prompt line.

    Last update:
    + + + diff --git a/en/guide/features/annualReport.html b/en/guide/features/annualReport.html new file mode 100644 index 000000000..f47d79d0f --- /dev/null +++ b/en/guide/features/annualReport.html @@ -0,0 +1,51 @@ + + + + + + + + + + Annual report | Fast Request + + + + + + + + + diff --git a/en/guide/features/apiCommentPreview.html b/en/guide/features/apiCommentPreview.html new file mode 100644 index 000000000..8e149ddd0 --- /dev/null +++ b/en/guide/features/apiCommentPreview.html @@ -0,0 +1,51 @@ + + + + + + + + + + Api comment preview | Fast Request + + + + + + + + + diff --git a/en/guide/features/apiDocSync.html b/en/guide/features/apiDocSync.html new file mode 100644 index 000000000..b5ae21f4e --- /dev/null +++ b/en/guide/features/apiDocSync.html @@ -0,0 +1,54 @@ + + + + + + + + + + API document sync | Fast Request + + + + + +
    Skip to main content

    API document sync


    API document sync

    Version required: 2022.2.7+

    Introduction

    Used to synchronize API documents to Github、 Gitee、 Gitlab, and generate online documents and share them with other partners.

    apiSync

    Attention

    • If there is no network in the intranet, please use self-host GitLab. GitLab only supports v4 and does not support other versions.
    • If the configured repo does not exist in the cloud, a private repo will be created by default.
    • The project access has been 404. The solution is to set the repo as public or pull the partner to the repo to become a member when sharing.
    • A project corresponds to synchronizing a repo. After determining a repo and synchronizing some documents, keep the repo the same because history cannot be synchronized.

    Configuration

    apiSyncSetting

    Note: The naming policy determines the name of the file synchronized to the cloud. The file name comes from the Javadoc or Swagger method naming annotation. If JavaDoc is checked, please ensure that the naming of the Javadoc and Swagger method must be short. Otherwise, the file name in the cloud will be very long. In this case, consider checking the method name to synchronize.

    Token

    When checking the permissions, you must ensure that the minimum permissions are checked to support the API sync and that the token is within the valid time frame.

    Github:must check 'repo'
    +Gitlab:must check 'api'
    +Gitee:must check 'projects'
    +

    githubToken

    gitlabToken

    giteeToken

    Last update:
    + + + diff --git a/en/guide/features/apiGroup.html b/en/guide/features/apiGroup.html new file mode 100644 index 000000000..412fe1008 --- /dev/null +++ b/en/guide/features/apiGroup.html @@ -0,0 +1,51 @@ + + + + + + + + + + API group | Fast Request + + + + + + + + + diff --git a/en/guide/features/apiImportExport.html b/en/guide/features/apiImportExport.html new file mode 100644 index 000000000..3a573cbed --- /dev/null +++ b/en/guide/features/apiImportExport.html @@ -0,0 +1,51 @@ + + + + + + + + + + APIs import and export | Fast Request + + + + + +
    Skip to main content

    APIs import and export


    APIs import and export

    Version Required: 2022.1.4 Deprecated

    Using this function, you can easily share your existing APIs with other developers or import them to IDEA on other devices.

    Attention

    • A new file named fastRequestCollection.xml will be added when exporting. You should not rename it. The plugin will export it to the current project path by default.

    • When importing, it will do a default backup and generate a file named fastRequestCollection-yyyyMMddHHmmssSSS.xml under the .idea folder. If fastRequestCollection.xml is imported by mistake, it can be restored by importing it.

    • Click file->Reload All from Disk to force a refresh to get fastRequestCollection.xml if it is not visible.

    exportImportApis

    Last update:
    + + + diff --git a/en/guide/features/apiList.html b/en/guide/features/apiList.html new file mode 100644 index 000000000..15804e77e --- /dev/null +++ b/en/guide/features/apiList.html @@ -0,0 +1,51 @@ + + + + + + + + + + API list | Fast Request + + + + + + + + + diff --git a/en/guide/features/apiNavigateTree.html b/en/guide/features/apiNavigateTree.html new file mode 100644 index 000000000..321539b3d --- /dev/null +++ b/en/guide/features/apiNavigateTree.html @@ -0,0 +1,51 @@ + + + + + + + + + + API navigate tree | Fast Request + + + + + + + + + diff --git a/en/guide/features/apiPreview.html b/en/guide/features/apiPreview.html new file mode 100644 index 000000000..91cf6c4e1 --- /dev/null +++ b/en/guide/features/apiPreview.html @@ -0,0 +1,51 @@ + + + + + + + + + + API list preview | Fast Request + + + + + + + + + diff --git a/en/guide/features/apiToDoc.html b/en/guide/features/apiToDoc.html new file mode 100644 index 000000000..5fc56df3e --- /dev/null +++ b/en/guide/features/apiToDoc.html @@ -0,0 +1,51 @@ + + + + + + + + + + API to document | Fast Request + + + + + +
    Skip to main content

    API to document


    API to document

    Version required: 2022.1.5+

    Please note that the API in word form is implemented in Html, so don't feel strange. Just export it.

    Response Example requires running your API to be displayed.

    shareDocButton

    apiDocExample

    Last update:
    + + + diff --git a/en/guide/features/apiToPostman.html b/en/guide/features/apiToPostman.html new file mode 100644 index 000000000..dc9f56a0a --- /dev/null +++ b/en/guide/features/apiToPostman.html @@ -0,0 +1,51 @@ + + + + + + + + + + APIs export to Postman | Fast Request + + + + + + + + + diff --git a/en/guide/features/apifox.html b/en/guide/features/apifox.html new file mode 100644 index 000000000..3975a7bb7 --- /dev/null +++ b/en/guide/features/apifox.html @@ -0,0 +1,51 @@ + + + + + + + + + + Apifox integration | Fast Request + + + + + +
    Skip to main content

    Apifox integration


    Apifox integration

    Version required: 2024.1.4+

    apifoxIntegration

    1. API access token configuration

    apifoxGenerateApikey

    Setting path: Avatar -> Account Setting-> API Access Token

    Expiration

    Note that after the validity period of the Api key, the plugin's Apifox synchronization function will no longer work, so it is recommended to check no Expriation when creating the Api Access token.

    2. Mapping project

    apifoxConfigProject

    After we have correctly set the Api access token, we need to make a mapping association between the IDEA project and the Apifox project. Click to refresh the project. When the project is loaded, click on the team option and check the target project.

    3. Environment sync

    apifoxSyncEnvironment

    Environment sync function will synchronize all domain names, variables, and global parameters of the project to Apifox as service parameters, variables, and global parameters. It is recommended to execute this step before API sync

    4. API sync

    apifoxSyncApi

    To synchronize the API, you need to save the API first. It can be triggered manually or automatically. For automatic triggering, you need to check the Sync after save option in the Apifox sync setting.

    Last update:
    + + + diff --git a/en/guide/features/autoDescription.html b/en/guide/features/autoDescription.html new file mode 100644 index 000000000..c6090ee44 --- /dev/null +++ b/en/guide/features/autoDescription.html @@ -0,0 +1,51 @@ + + + + + + + + + + Auto Description | Fast Request + + + + + + + + + diff --git a/en/guide/features/autoDomain.html b/en/guide/features/autoDomain.html new file mode 100644 index 000000000..bb0d59571 --- /dev/null +++ b/en/guide/features/autoDomain.html @@ -0,0 +1,51 @@ + + + + + + + + + + Auto domain | Fast Request + + + + + +
    Skip to main content

    Auto domain


    Auto domain

    Version required: 2023.1.4

    Trigger point

    When clicking on the left side of the method, if no domain is configured, it will be automatically created.

    Project name

    The project name is taken from the api module name

    Why? For example, there are two modules' APIs under the project, Module-1 and Module-2. If the domain name value of Module-1 is already stored and when clicking the on the left of the API method under Module-2, the old version cannot automatically switch the project name.

    It is recommended not to manually add the project name later because the plugin cannot find the mapping relationship, which may easily result in using the domain name of Module-1 instead of the domain name of Module-2 when saving the API of Module-2.

    Therefore, another benefit of auto domain name is the automatic switching of API domain names. If it does not exist, it will be automatically generated. If there is a need for improvement, developers only need to modify the domain name value! The plugin will automatically adapt!

    Configuration file parsing logic

    1. Read application.yml or bootstrap.yml. If the configuration server.port or server.servlet.context-path can be found, take the configuration.
    2. If the above configuration files cannot find server.port or server.servlet.context-path, read spring.profiles.active as the variable env. Then look for application-env.yml or bootstrap-env.yml to find the configuration server.port or server.servlet.context-path.
    3. The logic for properties files is similar.
    4. If the above configurations cannot be found, use port=8080, context-path=/.
    5. The project name is taken from the module name.
    6. spring.profiles.active does not support Maven variables parse, for example spring.profiles.active=@active.env@.

    Config switch

    autoDomain

    Last update:
    + + + diff --git a/en/guide/features/basicAuth.html b/en/guide/features/basicAuth.html new file mode 100644 index 000000000..161896454 --- /dev/null +++ b/en/guide/features/basicAuth.html @@ -0,0 +1,51 @@ + + + + + + + + + + Basic auth | Fast Request + + + + + + + + + diff --git a/en/guide/features/batchExportApiDoc.html b/en/guide/features/batchExportApiDoc.html new file mode 100644 index 000000000..186a7f511 --- /dev/null +++ b/en/guide/features/batchExportApiDoc.html @@ -0,0 +1,51 @@ + + + + + + + + + + Batch export API doc | Fast Request + + + + + + + + + diff --git a/en/guide/features/bulkEdit.html b/en/guide/features/bulkEdit.html new file mode 100644 index 000000000..88563395a --- /dev/null +++ b/en/guide/features/bulkEdit.html @@ -0,0 +1,54 @@ + + + + + + + + + + Headers batch edit | Fast Request + + + + + + + + + diff --git a/en/guide/features/clear.html b/en/guide/features/clear.html new file mode 100644 index 000000000..ad331deec --- /dev/null +++ b/en/guide/features/clear.html @@ -0,0 +1,51 @@ + + + + + + + + + + Clear | Fast Request + + + + + + + + + diff --git a/en/guide/features/commonHeader.html b/en/guide/features/commonHeader.html new file mode 100644 index 000000000..633fb347e --- /dev/null +++ b/en/guide/features/commonHeader.html @@ -0,0 +1,51 @@ + + + + + + + + + + Common header | Fast Request + + + + + +
    Skip to main content

    Common header


    Common header

    Version required: 2022.2.7

    This function helps to quickly add some standard Header parameters and supports multiple selections.

    commonHeader

    Last update:
    + + + diff --git a/en/guide/features/copyCurl.html b/en/guide/features/copyCurl.html new file mode 100644 index 000000000..72f5f6711 --- /dev/null +++ b/en/guide/features/copyCurl.html @@ -0,0 +1,51 @@ + + + + + + + + + + cURL copy | Fast Request + + + + + + + + + diff --git a/en/guide/features/copyUrl.html b/en/guide/features/copyUrl.html new file mode 100644 index 000000000..a772d70db --- /dev/null +++ b/en/guide/features/copyUrl.html @@ -0,0 +1,51 @@ + + + + + + + + + + Single url copy | Fast Request + + + + + + + + + diff --git a/en/guide/features/curlImport.html b/en/guide/features/curlImport.html new file mode 100644 index 000000000..1b990ff2f --- /dev/null +++ b/en/guide/features/curlImport.html @@ -0,0 +1,51 @@ + + + + + + + + + + cURL import | Fast Request + + + + + + + + + diff --git a/en/guide/features/customToolbar.html b/en/guide/features/customToolbar.html new file mode 100644 index 000000000..bb8c6104e --- /dev/null +++ b/en/guide/features/customToolbar.html @@ -0,0 +1,51 @@ + + + + + + + + + + Custom toolbar | Fast Request + + + + + + + + + diff --git a/en/guide/features/debugApi.html b/en/guide/features/debugApi.html new file mode 100644 index 000000000..42de1aea6 --- /dev/null +++ b/en/guide/features/debugApi.html @@ -0,0 +1,51 @@ + + + + + + + + + + Debug API & send request | Fast Request + + + + + + + + + diff --git a/en/guide/features/docAndContact.html b/en/guide/features/docAndContact.html new file mode 100644 index 000000000..80499ac59 --- /dev/null +++ b/en/guide/features/docAndContact.html @@ -0,0 +1,51 @@ + + + + + + + + + + Document / Contact | Fast Request + + + + + + + + + diff --git a/en/guide/features/downloadApi.html b/en/guide/features/downloadApi.html new file mode 100644 index 000000000..7fdff598d --- /dev/null +++ b/en/guide/features/downloadApi.html @@ -0,0 +1,51 @@ + + + + + + + + + + Download file | Fast Request + + + + + + + + + diff --git a/en/guide/features/environment.html b/en/guide/features/environment.html new file mode 100644 index 000000000..9bb5df282 --- /dev/null +++ b/en/guide/features/environment.html @@ -0,0 +1,51 @@ + + + + + + + + + + Environment | Fast Request + + + + + +
    Skip to main content

    Environment


    Version required: 2023.1.8

    In Environment, you can store variables and use {{key}} to replace fixed or magic values elsewhere.

    You can use {{key}} in this places:

    • Url
    • Headers
    • Path Params
    • URL Params
    • Body
      • JSON
      • Form URL-Encoded
      • Multipart

    Define

    The Tab value of Environment is taken from the project domain config. Key needs to satisfy the regular expression ^[a-z A-Z_][a-z A-Z 0-9_]

    environment

    Tips

    After focusing on the table, you can enter the key value to quickly locate the rows

    Usage

    Enter {{key}}} directly in Value column to replace the fixed value or magic value, when value replaced, if the environment contains this key, it will be highlighted in green. The current Environment pop value can be displayed after 500 ms of mouse hovering.

    useEnvironmentVariable

    You can also select a single row and click and select from the list.

    chooseEnvironmentVariable

    Tip

    After focusing on the table, you can enter the key value to quickly locate the rows

    Script

    Please refer to Script -> demo -> Set an Environment variable

    environmentScript

    Last update:
    + + + diff --git a/en/guide/features/fullScreen.html b/en/guide/features/fullScreen.html new file mode 100644 index 000000000..3ac4f2e6d --- /dev/null +++ b/en/guide/features/fullScreen.html @@ -0,0 +1,51 @@ + + + + + + + + + + Full screen | Fast Request + + + + + + + + + diff --git a/en/guide/features/function.html b/en/guide/features/function.html new file mode 100644 index 000000000..a8cee7333 --- /dev/null +++ b/en/guide/features/function.html @@ -0,0 +1,59 @@ + + + + + + + + + + Function | Fast Request + + + + + +
    Skip to main content

    Function


    Function

    Path:Project Global Config -> Functions

    Use {@functionName} to replace the fixed value. Methods must be paramaterless, otherwise it won't work.

    Pressing the shortcut key after typing {@, it will invoke the auto-completion of the function.

    Developers can use the built-in api in the JDK to write own custom functions, such as 5-length random strings.

    public String randomString() {
    +    StringBuilder sb = new StringBuilder(5);
    +    for (int i = 0; i < 5; i++) {
    +        int randomIndex = RANDOM.nextInt(CHAR_NORMAL.length());
    +        sb.append(CHAR_NORMAL.charAt(randomIndex));
    +    }
    +    return sb.toString();
    +}
    +

    Also you can use java-fakeropen in new window library to customize various types of random parameters.

    Code completion shortcut path

    Under Setting -> Keymap ====> Main Menu->Code->Code Completion->Basic

    Last update:
    + + + diff --git a/en/guide/features/headerGroup.html b/en/guide/features/headerGroup.html new file mode 100644 index 000000000..5fa5fc879 --- /dev/null +++ b/en/guide/features/headerGroup.html @@ -0,0 +1,51 @@ + + + + + + + + + + Headers group | Fast Request + + + + + +
    Skip to main content
    + + + diff --git a/en/guide/features/historyRequest.html b/en/guide/features/historyRequest.html new file mode 100644 index 000000000..ddfd8f76b --- /dev/null +++ b/en/guide/features/historyRequest.html @@ -0,0 +1,51 @@ + + + + + + + + + + History request | Fast Request + + + + + + + + + diff --git a/en/guide/features/htmlPreview.html b/en/guide/features/htmlPreview.html new file mode 100644 index 000000000..f67afb70b --- /dev/null +++ b/en/guide/features/htmlPreview.html @@ -0,0 +1,51 @@ + + + + + + + + + + Html preview | Fast Request + + + + + + + + + diff --git a/en/guide/features/index.html b/en/guide/features/index.html new file mode 100644 index 000000000..9031d2a55 --- /dev/null +++ b/en/guide/features/index.html @@ -0,0 +1,51 @@ + + + + + + + + + + Features | Fast Request + + + + + +
    Skip to main content

    Features


    Last update:
    + + + diff --git a/en/guide/features/jsonGrammarCheck.html b/en/guide/features/jsonGrammarCheck.html new file mode 100644 index 000000000..93f1ba0d3 --- /dev/null +++ b/en/guide/features/jsonGrammarCheck.html @@ -0,0 +1,51 @@ + + + + + + + + + + Json grammar check | Fast Request + + + + + + + + + diff --git a/en/guide/features/makeIconMove.html b/en/guide/features/makeIconMove.html new file mode 100644 index 000000000..96dc66879 --- /dev/null +++ b/en/guide/features/makeIconMove.html @@ -0,0 +1,51 @@ + + + + + + + + + + Make icon move | Fast Request + + + + + + + + + diff --git a/en/guide/features/markdownDocTemplateConfig.html b/en/guide/features/markdownDocTemplateConfig.html new file mode 100644 index 000000000..f9171071d --- /dev/null +++ b/en/guide/features/markdownDocTemplateConfig.html @@ -0,0 +1,142 @@ + + + + + + + + + + Markdown doc template config | Fast Request + + + + + +
    Skip to main content

    Markdown doc template config


    Markdown doc template config

    Version required: 2023.2.2+

    Provides a custom format for local markdown and Online API doc.

    Tech stack

    1. Velocityopen in new window
    2. Markdown

    Build-in variable

    Content variable

    KeyParameter typeDescription
    urlStringFinal url
    originUrlStringOrigin url, contains the name of the original path variable
    namingPolicyStringAPI namingPolicy, fixed value[1.byMethodName:by java method name 2.byDoc:by JavaDoc or Swagger method description]
    methodNameStringJava method name
    methodDescriptionStringMethod description, comes from javadoc or Swagger method description
    methodTypeStringMethod type, for example Get,Post,Put,Delete,Patch
    headerListList<Header>Header params
    pathKeyValueListList<KeyValue>Url Path params
    urlParamsKeyValueListList<KeyValue>Url Query params
    multipartKeyValueListList<KeyValue>Multipart params
    urlEncodedKeyValueListList<KeyValue>Form Url-Encoded params
    jsonParamStringJson params
    jsonParamDocumentStringJson params document
    responseExampleStringResponse
    returnDocumentStringResponse params document

    Syntax variables

    KeyDescription
    H1Markdown #
    H2Markdown ##
    H3Markdown ###
    H4Markdown ####
    H5Markdown #####
    H6Markdown ######

    Parameter type

    KeyParameter typeDescription
    enabledBooleanEnable flag
    typeStringKey of Header
    valueStringValue of Header

    KeyValue

    KeyParameter typeDescription
    enabledBooleanEnable flag
    keyStringParameter key
    typeStringParameter type, fixed value [Object Array String Number Boolean]
    valueObjectParameter value
    commentStringParameter description

    Default template

        #if (${namingPolicy}=='byDoc')
    +    $H1 ${methodDescription}
    +    #else
    +    $H1 $!{methodName}
    +
    +    $H3 Method description
    +
    +    ```
    +    $!{methodDescription}
    +    ```
    +    #end
    +
    +    > URL: $!{url}
    +    >
    +    > Origin Url: $!{originUrl}
    +    >
    +    > Type: $!{methodType}
    +
    +
    +    $H3 Request headers
    +
    +    |Header Name| Header Value|
    +    |---------|------|
    +    #foreach( $h in ${headerList})
    +    |$h.type|$h.value|
    +    #end
    +
    +    $H3 Parameters
    +
    +    $H5 Path parameters
    +
    +    | Parameter | Type | Value | Description |
    +    |---------|------|------|------------|
    +    #foreach( $node in ${pathKeyValueList})
    +    |$node.key|$!{node.type}|$!{node.value}|$!{node.comment}|
    +    #end
    +
    +
    +    $H5 URL parameters
    +
    +    |Required| Parameter | Type | Value | Description |
    +    |---------|---------|------|------|------------|
    +    #foreach( $node in ${urlParamsKeyValueList})
    +    |$!{node.enabled}|$!{node.key}|$!{node.type}|$!{node.value}|$!{node.comment}|
    +    #end
    +
    +
    +    $H5 Body parameters
    +
    +    $H6 JSON
    +
    +    ```
    +    ${jsonParam}
    +    ```
    +
    +    $H6 JSON document
    +
    +    ```
    +    ${jsonParamDocument}
    +    ```
    +
    +
    +    $H5 Form URL-Encoded
    +    |Required| Parameter | Type | Value | Description |
    +    |---------|---------|------|------|------------|
    +    #foreach( $node in ${urlEncodedKeyValueList})
    +    |$!{node.enabled}|$!{node.key}|$!{node.type}|$!{node.value}|$!{node.comment}|
    +    #end
    +
    +
    +    $H5 Multipart
    +    |Required | Parameter | Type | Value | Description |
    +    |---------|---------|------|------|------------|
    +    #foreach( $node in ${multipartKeyValueList})
    +    |$!{node.enabled}|$!{node.key}|$!{node.type}|$!{node.value}|$!{node.comment}|
    +    #end
    +
    +
    +    $H3 Response
    +
    +    $H5 Response example
    +
    +    ```
    +    $!{responseExample}
    +    ```
    +
    +    $H5 Response document
    +    ```
    +    $!{returnDocument}
    +    ```
    +
    +
    Last update:
    + + + diff --git a/en/guide/features/navigateCurrentMethod.html b/en/guide/features/navigateCurrentMethod.html new file mode 100644 index 000000000..dd5d767d3 --- /dev/null +++ b/en/guide/features/navigateCurrentMethod.html @@ -0,0 +1,51 @@ + + + + + + + + + + Navigate to current method | Fast Request + + + + + + + + + diff --git a/en/guide/features/navigateCurrentMethodJson.html b/en/guide/features/navigateCurrentMethodJson.html new file mode 100644 index 000000000..abf09f54c --- /dev/null +++ b/en/guide/features/navigateCurrentMethodJson.html @@ -0,0 +1,51 @@ + + + + + + + + + + Multi-tab window | Fast Request + + + + + +
    Skip to main content

    Multi-tab window


    Multi-tab window

    Version required: 2023.1.3

    You can locate the file where the current method stores data. And open in debug window.

    The rapi file ultimately stores data in json format and is displayed in the form of a debugging window. If you encounter a data conflict, please open and edit it in json format.

    openInTabAction

    The current API can be opened in Tab through the following Action options.

    openInTabAction

    You can right-click on apis and select Open in Tab

    openTabInApis

    Last update:
    + + + diff --git a/en/guide/features/parseStrategy.html b/en/guide/features/parseStrategy.html new file mode 100644 index 000000000..edce262b2 --- /dev/null +++ b/en/guide/features/parseStrategy.html @@ -0,0 +1,59 @@ + + + + + + + + + + Parse strategy | Fast Request + + + + + +
    Skip to main content

    Parse strategy


    Parse strategy

    Data mapping

    Learn more

    How to ignore the field

    Way 1: Use one of the following 2 annotations.

    com.fasterxml.jackson.annotation.JsonIgnore
    +
    +com.alibaba.fastjson.annotation.JSONField(serialize = false)
    +

    Way 2: Add the static modifier to the field.

    Way 3: Add @fastRequestParseIgnore in comment

    /**
    + * xxx description
    + * @fastRequestParseIgnore
    + */
    +private String someIgnoreField;
    +

    Way 4: Ignore field name ignoreFiled

    Only need to add field names in the configuration to ignore target fields in the entity class.

    Last update:
    + + + diff --git a/en/guide/features/postmanSync.html b/en/guide/features/postmanSync.html new file mode 100644 index 000000000..91d5f86d7 --- /dev/null +++ b/en/guide/features/postmanSync.html @@ -0,0 +1,51 @@ + + + + + + + + + + Postman Sync | Fast Request + + + + + +
    Skip to main content

    Postman Sync


    Postman Sync

    Version required: 2023.2.3

    Tips

    To make the data synchronised to Postman more complete, it is recommended to select the sync after API save option in the Postman config of the plugin then trigger the synchronization by saving the API.

    It is also recommended to use this function to synchronize the API instead of exporting

    Postman API usage

    The plugin uses the Postman API to sync data. So it should be noted that Postman resource usageopen in new window has a limit,click the link and pay attention to the Postman API Usage column, which can be used free of charge up to 1,000 times per month. Exceeding the quota will cause sync to fail!

    postmanSync

    Api key

    API key is used to perform manual actions using the Postman Online API. These actions include creating collections, creating directories, creating requests, and more.

    Open https://postman.co/settings/me/api-keysopen in new window and login, and then generate an API key. It is recommended to create an API key without an expiration date.

    postmanApiKey

    WorkspaceId

    The Workspace ID is the identifier for a Postman workspace. There are 2 strategies to create a workspace.

    1. Create one workspace for each project.(Recommended)
    2. Create one workspace to represent a company, and use different collections to represent different projects within the company.

    Get WorkspaceId using the following steps↓↓↓

    1. Create a workspace (Ignore if exist)

    createWorkspace

    1. Click Workspace and click the Workspace info icon (Note that it is not click "Workspace Settings")

    showWorkspaceId

    1. Copy Workspace id

    workspaceInfo

    Initial value & Current value

    Variable in Environment contains Initial value and Current value,Initial value is shared with your team,but Current value only store in your local. Request will finally use Current value.

    Restful Fast Request in fact sync the Initial value of Environment.

    So, if the environment values are updated in the plugin and sync successfully to Postman, when executing a request, Postman will not immediately use the synchronized values. Instead, you will need to manually replace the values in the environment tab or perform a complete replacement by clicking on "Reset All".

    workspaceInfo

    Pre and Post script

    Due to language differences, the plugin does not synchronize pre-request and post-request scripts. Therefore, when using the plugin, it is recommended to write common scripts in the project-level config. This way, after synchronizing with Postman, you only need to write pre-request and post-request scripts at the collection level in Postman.

    postmanScript

    Note

    1. It is recommended to check the option "Sync to Postman after saving". If not checked, you need to save manually before triggering and then click on the Sync button.
    2. For teamwork, if multiple identical collections appear in the same workspace, you only need to manually replace the collection ID in the configuration with one of them.
    3. For teamwork, if multiple identical folders appear in the same collection, you can use the pmFolderId property in the .fastRequest/collections/ROOT/moduleName/className/directory.json file from one of them.
    4. For teamwork, if the same API exists twice in Postman, you can ensure consistency by modifying the pmRequestId and pmResponseId of one of the data. You can use Multi-tab window to locate the stored file. The best way is to use Git to manage and commit the rapi files to keep the underlying storage data consistent.
    Last update:
    + + + diff --git a/en/guide/features/projectConfigRefresh.html b/en/guide/features/projectConfigRefresh.html new file mode 100644 index 000000000..0b5411af8 --- /dev/null +++ b/en/guide/features/projectConfigRefresh.html @@ -0,0 +1,51 @@ + + + + + + + + + + Project config refresh | Fast Request + + + + + +
    Skip to main content

    Project config refresh


    Project config refresh

    Version required: 2023.1.3

    When the configuration file is updated, this function allows the UI to refresh the configuration as well.

    refreshProjectConfig

    Last update:
    + + + diff --git a/en/guide/features/projectLevelDomainConfig.html b/en/guide/features/projectLevelDomainConfig.html new file mode 100644 index 000000000..5df759610 --- /dev/null +++ b/en/guide/features/projectLevelDomainConfig.html @@ -0,0 +1,51 @@ + + + + + + + + + + Project-level domain config | Fast Request + + + + + +
    Skip to main content

    Project-level domain config


    Project-level domain config

    This function allows developers to add a domain quickly.

    Version required: 2023.1.1+

    Suggestion

    It is recommended to use project-level domain config,original config Setting manager will be used as global config and will have a lower priority than project level config.

    The advantage of using project-level config is that when there are many projects, the drop-down box options will be reduced (excluding the config of other projects)

    Tips

    1. Project name: The project name of the API. If auto domain is turned on, for single-module projects, the project name will be automatically set to the project name, and for multi-modules, it will be the module name. Manual replacement is not recommended.
    2. Env: Different environments, for example, local、dev、test、prod.
    3. Domain: The domain value corresponding to the project name and environment name.

    Auto domain or Generate by config file

    1. Refer to this document for auth domain, and finally only need to modify the domain name value if not the value you want.
    2. Generate by config file: Select application.properties or application.yml in the project, click on the icon .

    projectLevelDomainConfig

    How value comes from

    1. For file with environment names such as application-dev.properties, plugin will automatically adapt the variables between - and . as environment names.
    2. Project name comes from module name
    3. Domain = http://localhost:port/context-path

    Manually configure the domain.

    projectLevelDomainDialog

    Click on the Project-level domain config to manually enter the corresponding value.

    Last update:
    + + + diff --git a/en/guide/features/projectValueConfig.html b/en/guide/features/projectValueConfig.html new file mode 100644 index 000000000..347a5acb1 --- /dev/null +++ b/en/guide/features/projectValueConfig.html @@ -0,0 +1,51 @@ + + + + + + + + + + Project-level config | Fast Request + + + + + + + + + diff --git a/en/guide/features/quickAddHeader.html b/en/guide/features/quickAddHeader.html new file mode 100644 index 000000000..5729a4578 --- /dev/null +++ b/en/guide/features/quickAddHeader.html @@ -0,0 +1,51 @@ + + + + + + + + + + Quickly add header | Fast Request + + + + + + + + + diff --git a/en/guide/features/regenerate.html b/en/guide/features/regenerate.html new file mode 100644 index 000000000..87b413a0a --- /dev/null +++ b/en/guide/features/regenerate.html @@ -0,0 +1,51 @@ + + + + + + + + + + Re generate | Fast Request + + + + + + + + + diff --git a/en/guide/features/saveRequest.html b/en/guide/features/saveRequest.html new file mode 100644 index 000000000..400eb9171 --- /dev/null +++ b/en/guide/features/saveRequest.html @@ -0,0 +1,57 @@ + + + + + + + + + + Save request | Fast Request + + + + + + + + + diff --git a/en/guide/features/script.html b/en/guide/features/script.html new file mode 100644 index 000000000..1bba6cf81 --- /dev/null +++ b/en/guide/features/script.html @@ -0,0 +1,51 @@ + + + + + + + + + + Script | Fast Request + + + + + + + + + diff --git a/en/guide/features/searchEveryWhere.html b/en/guide/features/searchEveryWhere.html new file mode 100644 index 000000000..ffff6af53 --- /dev/null +++ b/en/guide/features/searchEveryWhere.html @@ -0,0 +1,56 @@ + + + + + + + + + + SearchEveryWhere | Fast Request + + + + + + + + + diff --git a/en/guide/features/settingManager.html b/en/guide/features/settingManager.html new file mode 100644 index 000000000..9a6084e35 --- /dev/null +++ b/en/guide/features/settingManager.html @@ -0,0 +1,51 @@ + + + + + + + + + + Setting manager | Fast Request + + + + + + + + + diff --git a/en/guide/features/shareApiDoc.html b/en/guide/features/shareApiDoc.html new file mode 100644 index 000000000..2ff5cb222 --- /dev/null +++ b/en/guide/features/shareApiDoc.html @@ -0,0 +1,51 @@ + + + + + + + + + + API document share | Fast Request + + + + + +
    Skip to main content

    API document share


    API document share

    Please note that the API in word form is implemented in html, so don't feel strange, just export it.

    Response Example requires running your API to be displayed.

    shareDocButton

    apiDocExample

    Last update:
    + + + diff --git a/en/guide/features/stopRequest.html b/en/guide/features/stopRequest.html new file mode 100644 index 000000000..0bb3b39fb --- /dev/null +++ b/en/guide/features/stopRequest.html @@ -0,0 +1,51 @@ + + + + + + + + + + Stop API request | Fast Request + + + + + + + + + diff --git a/en/guide/features/swaggerDefaultValueParse.html b/en/guide/features/swaggerDefaultValueParse.html new file mode 100644 index 000000000..b8ef171c5 --- /dev/null +++ b/en/guide/features/swaggerDefaultValueParse.html @@ -0,0 +1,96 @@ + + + + + + + + + + Swagger default value | Fast Request + + + + + +
    Skip to main content

    Swagger default value


    Swagger default value

    Version required: 2022.1.4

    Below are some examples.

    Priority: swagger default value > config default value

    swagger2
    * @ApiParam
    +
    +@GetMapping(value="/test/{id}")
    +public String test3(@ApiParam(name = "id",example="2") @PathVariable("id") Integer id) {
    +        return "";
    +        }
    +
    +@GetMapping(value="/test/{id}")
    +public String test3(@ApiParam(name = "id",defaultValue="2") @PathVariable("id") Integer id) {
    +        return "";
    +        }
    +
    +
    +        * @ApiImplicitParam
    +
    +@ApiImplicitParams({
    +        @ApiImplicitParam(paramType="query",name="pageNo",dataType="String",required=true,value="pageNo",defaultValue="1"),
    +        @ApiImplicitParam(paramType="query",name="pageSize",dataType="String",required=true,value="pageSize",defaultValue="10")
    +})
    +@GetMapping(value="/testPage)
    +        public String testPage(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize) {
    +        return "";
    +        }
    +
    +
    +        * @ApiModelProperty
    +        @Data
    +        public class UserDto {
    +        @ApiModelProperty(example = "Bob")
    +        private String userName;
    +        }
    +
    Last update:
    + + + diff --git a/en/guide/features/tempRequest.html b/en/guide/features/tempRequest.html new file mode 100644 index 000000000..b05ad919b --- /dev/null +++ b/en/guide/features/tempRequest.html @@ -0,0 +1,51 @@ + + + + + + + + + + Temporary request | Fast Request + + + + + + + + + diff --git a/en/guide/getstarted/dataMapping.html b/en/guide/getstarted/dataMapping.html new file mode 100644 index 000000000..6899618c0 --- /dev/null +++ b/en/guide/getstarted/dataMapping.html @@ -0,0 +1,53 @@ + + + + + + + + + + Data mapping | Fast Request + + + + + +
    Skip to main content

    Data mapping


    Custom type mapping

    Scenes: there are 10 attributes in com.baomidou.mybatisplus.extension.plugins.pagination.Page, but we just need size and current property.

    A total of 2 values need to be set for custom type mapping.

    Java Type is the corresponding object type. It must contain the package name and class name.

    com.baomidou.mybatisplus.extension.plugins.pagination.Page
    +

    Default value must be in json format

    { "size": 10, "current": 1 }
    +

    Default type mapping

    This configuration determines that the basic java type will be resolved to the appropriate value, supporting modification.

    Ignore data mapping

    This configuration determines whether the corresponding class is resolved or not and requires full path of java class(packageName+className)

    Last update:
    + + + diff --git a/en/guide/getstarted/icon.html b/en/guide/getstarted/icon.html new file mode 100644 index 000000000..8b11fcc8f --- /dev/null +++ b/en/guide/getstarted/icon.html @@ -0,0 +1,51 @@ + + + + + + + + + + Icon and type mapping | Fast Request + + + + + + + + + diff --git a/en/guide/getstarted/index.html b/en/guide/getstarted/index.html new file mode 100644 index 000000000..619a112f5 --- /dev/null +++ b/en/guide/getstarted/index.html @@ -0,0 +1,51 @@ + + + + + + + + + + Getstarted | Fast Request + + + + + + + + + diff --git a/en/guide/getstarted/otherConfig.html b/en/guide/getstarted/otherConfig.html new file mode 100644 index 000000000..179826c12 --- /dev/null +++ b/en/guide/getstarted/otherConfig.html @@ -0,0 +1,56 @@ + + + + + + + + + + Other config | Fast Request + + + + + +
    Skip to main content

    Other config


    Controller url fixed variable can replace by config. For example controller like this

    @RequestMapping("/api/${api-module}/user")
    +@Controller
    +public class XxxController(){
    +  //code ...
    +}
    +

    The actual url is /api/base/user,Then ${api-module} can be replaced by the following configuration

    Last update:
    + + + diff --git a/en/guide/getstarted/projectEnv.html b/en/guide/getstarted/projectEnv.html new file mode 100644 index 000000000..a6d9c387a --- /dev/null +++ b/en/guide/getstarted/projectEnv.html @@ -0,0 +1,52 @@ + + + + + + + + + + Project/Env/Domain | Fast Request + + + + + +
    Skip to main content

    Project/Env/Domain


    Suggestion

    It is recommended to use Project-level domain config,original config will be used as global config and will have a lower priority than project level config.

    The advantage of using project-level config is that when there are many projects, the drop-down box options will be reduced (excluding the config of other projects).

    Set up the mapping relationship, Configure the URL prefix address of the corresponding environment under the corresponding project.

    The icon P means Project, and the icon E means Environment
    +

    dropdownProject

    dropdownEnv

    Last update:
    + + + diff --git a/en/guide/getstarted/shortcut.html b/en/guide/getstarted/shortcut.html new file mode 100644 index 000000000..6ef13ac5b --- /dev/null +++ b/en/guide/getstarted/shortcut.html @@ -0,0 +1,51 @@ + + + + + + + + + + Shortcut | Fast Request + + + + + +
    Skip to main content

    Shortcut


    Shortcut keys help improve the operation's speed, and professional use will make the process more easier.

    • How to

    setting -> keymap -> fill in FastRequest -> Right-click the corresponding entry to modify

    Last update:
    + + + diff --git a/en/guide/getstarted/start.html b/en/guide/getstarted/start.html new file mode 100644 index 000000000..9236993a6 --- /dev/null +++ b/en/guide/getstarted/start.html @@ -0,0 +1,51 @@ + + + + + + + + + + Get started | Fast Request + + + + + +
    Skip to main content

    Get started


    If you are already familiar with the basic operations of Fast Request, you can go directly to the features page.

    Paid version
    1. Click on method left
    2. If the result of Auto domain did not meet expectations,change the domain in Project-level domain config
    3. Click send button for sending request

    Contacts

    Join and follow us to solve your question ❤️❤️❤️

    Slackopen in new windowtwitteropen in new window
    Slacktwitter
    Last update:
    + + + diff --git a/en/guide/getstarted/stringGenerationStrategy.html b/en/guide/getstarted/stringGenerationStrategy.html new file mode 100644 index 000000000..9d660c9a7 --- /dev/null +++ b/en/guide/getstarted/stringGenerationStrategy.html @@ -0,0 +1,55 @@ + + + + + + + + + + String generation strategy | Fast Request + + + + + + + + + diff --git a/en/guide/history.html b/en/guide/history.html new file mode 100644 index 000000000..e04085f5e --- /dev/null +++ b/en/guide/history.html @@ -0,0 +1,167 @@ + + + + + + + + + + What's New | Fast Request + + + + + +
    Skip to main content

    What's New


    Announcement

    Paid vs FreeBuy plugin

    Issue report please refer to GitHubopen in new window

    Join and follow us to solve your question ❤️❤️❤️↓↓↓

    Slackopen in new windowtwitteropen in new window
    slacktwitter

    Because developing version is still in development, the documentation of developing version may not be entirely accurate and is subject to change.

    2024.1.7 Free trial Developing... IDEA 2023.3+

    • Functions and environment code completion support
    • JSON filter support
    • Common Header code completion support
    • Default file path for multipart
    • SearchEveryWhere result sorting optimization
    • Script interface optimition
    • Map parse
    • Several known issue optimizations

    Functions and environment code completion support Important feature

    Support environment value like {{xx}} and function value {@functionName} code completion

    For more information about function support, see ----> Function

    JSON filter support New feature

    jsonFilter

    When there are many fields in JSON, but only part of them are needed, this feature can help filter the JSON fields.

    Common Header code completion support New feature

    header

    Code completion is supported for some common header keys, such as Authorization

    Default file path for multipart New feature

    jsonFilter

    Multipart type fields can be set default path by this setting.

    SearchEveryWhere result sorting optimization Optimization

    searchEveryWhere

    Optimized the collation for matching by URL path

    2024.1.6.3 Free trial Newest version 2024-08-15 IDEA 2022.3+

    • Compatible with IDEA 2024.2+

    2024.1.6.2 Free trial Newest version 2024-07-30 IDEA 2022.3+

    • Combined annotation support
    • Message Optimization
    • After the pre-script is executed, the data not used in the current request

    Combined annotation support New feature

    Support the annotation like the following

    @Target(ElementType.TYPE)
    +@Retention(RetentionPolicy.RUNTIME)
    +@Documented
    +@RestController
    +@RequestMapping
    +public @interface CustomRestController {
    +
    +    @AliasFor(annotation = RequestMapping.class)
    +    String name() default "";
    +
    +    @AliasFor(annotation = RequestMapping.class)
    +    String[] value() default {};
    +}
    +

    2024.1.6 Free trial 2024-06-24 IDEA 2022.3+

    • Multi Tab window
    • Apis mark
    • Url copy in Apis & Navigate
    • Json path support
    • Url generation supports extends BaseController interface
    • Fixed some known bugs

    Multi Tab window Important feature

    Open rapi file to display the debugging interface and supports multi-Tab opening. More detail please refer Multi-tab window

    Apis mark New feature

    Added support for mark APIs in the Apis tab, marking them with red highlight dots, and added mark Api searche condation. Developers can mark the important APIs to make them more visible

    Url copy in Apis & Navigate New feature

    Right-click option supports copying original URL

    Json path support New feature

    jsonPath

    Support json path search In Body->Raw and Response->Pretty tab, but this depends on JSONPathopen in new window plugin.

    2024.1.5.1 Free trial 2024-05-16 IDEA 2022.3+

    • Entity parse

    2024.1.5 Free trial 2024-05-14 IDEA 2022.3+

    • Add library support in pre and post script
    • Type drop-down box optimization
    • Original url display optimization
    • Apifox directory sync optimization
    • Url input style optimization
    • Parameter Tab automatic jump optimization
    • cUrl import optimization
    • Fix Api doc synchronization is successful but prompts an error

    Add library support in pre and post script New feature

    Add a button to allow adding script library to get the Code completionopen in new window function.

    Type drop-down box optimization Optimization

    The drop-down box uses a more clear English type and uses different colors to distinguish different types.

    Original url display optimization Optimization

    Url in run tab, and APIs tab is displayed as the original URL, the path parameters will no longer replace.

    cUrl import optimization Optimization

    Url is the same, but the method type (Get, Post, etc.) is different, the binding pairs are optimized so that they can match correctly.

    2024.1.4 Free trial 2024-04-08 IDEA 2022.3+

    • Apifox integration
    • AI support optimization
    • Change moduleHeader to apiHeader
    • cURL import Optimization
    • Entity parse optimization
    • Compatible with IDEA 2024
    • API export file suffix error

    Apifox integration Important feature

    Apifox integration supports synchronization of APIs, environment variables, domain name information, etc. Just configure an API key and set the project mapping relationship to synchronize.

    AI support optimization Important feature

    AI

    In order to make AI's responses more accurate, we have made AI settings more refined and added 3 dimensions: SummaryExample questionExample question's answer. This design allows the AI to train a question and answer session so that the results are more in line with expectations.

    We can try to express various possibilities of the question in the Summary, and the give an example in Example question and Example question's answer.

    The following is a case of using AI to help optimize JSON messages. For more details, please refer to AI.

    Summary
    You are an excellent JSON handler. Whenever a user sends you a JSON, you should respond to
    +the user in a fixed JSON formatand replace the values in the JSON fields with
    +human-readable content according to the meaning of the JSON keys. You will only modify
    +the values in the JSON without changing its structure.
    +

    Change moduleHeader to apiHeader Optimization

    Header

    1. The variable moduleHeader in the pre-script and post-script is changed to apiHeader.
    2. The scope of the Header tab in the main interface has been changed to only face the API level. That is, each API can have different Headers. If you need a public Header, please go to Project Level Header setting.

    cURL import Optimization Optimization

    在去除域名后,如果 Url 与项目中方法的 Url 一致则自动绑定。

    2024.1.3 Free trial 2024-03-04

    • AI support optimization
    • Performance optimization for large response results
    • Map type parse optimization
    • Download does not respond in Windows system

    AI support optimization Important feature

    Added three forms of AI support: OpenAi, CodeGeeX, and Private deployment AI. Through prompt, selected text can be replaced with another text.

    AI action has added the following tabs: Body -> JSON, Body -> Form URL-Encoded -> Text,URL Params -> Text

    2024.1.2.1 Free trial 2024-01-24

    • No response when click send and download

    2024.1.2 Free trial 2024-01-19

    • Custom toolbar

    Custom toolbar Important feature

    customToolbar

    Using the custom toolbar option, select the functionalities you want to use and hide other function buttons. Then restart IDEA.

    2024.1.1 Free trial 2024-01-15

    • SearchEveryWhere support classname search
    • Generate .fastRequest directory strategy
    • Ignore field name parse support
    • Apis and Navigate in popup
    • Manual update check
    • Content-Disposition support optimization
    • SearchEveryWhere performance optimization
    • API loading performance in Navigate optimization
    • Markdown doc add return value doc
    • Collection generic parsing error

    SearchEveryWhere support classname search Important feature

    searchEveryWhere

    Support enters the class name where the Url is located to search for all APIs under this class.

    Generate .fastRequest directory strategy Important feature

    When Project is opened by default, the .fastRequest directory will no longer be generated. Only when you operate plugin, it will be generated.

    Ignore field name parse support New feature

    ignoreFiled

    Only need to add field names in the configuration to ignore target fields in the entity class.

    Apis and Navigate in popup New feature

    You can quickly open the Apis and Navigate window to view information through shortcut keys. When the window is open, press ESC to close the window.

    Manual update check New feature

    manualUpdateCheck

    Click to check for plugin updates

    SearchEveryWhere performance optimization Optimization

    The SearchEveryWhere search logic has been optimized to greatly improve the search performance of large projects.

    We tested a project with 7000 APIs and the search response was very fast

    Content-Disposition support optimization Optimization

    Content-Disposition supports the following 2 formats, and also supports file name transcoding.

    Content-Disposition:attachment; filename*=UTF-8''fastRequest%20.txt
    +Content-Disposition:attachment; filename=fastRequest.txt
    +

    2023.2.3.1 Free trial 2023-12-20

    • JSON5 support error

    2023.2.3 Free trial 2023-12-19

    • Sync API to Postman
    • Project name drop-down box automatically switches
    • Environment refactoring
    • Project domain name addition optimization
    • Change API document sync trigger to API is saved
    • Add @fastRequestParseIgnore support for ignore parse field
    • SearchEveryWhere compatible idea2023.3
    • Error when passing non-json in body param
    • curl import parsing\' error

    Sync API to Postman Important feature

    You only need to configure the token of Postman and the ID of the workspace to upload the API to Postman.Enjoy what fast request do not support.

    To make the data synchronised to Postman more complete, it is recommended to select the sync after API save option in the Postman config of the plugin then trigger the synchronisation by saving the API.

    More details please refer Postman sync

    Project name drop-down box automatically switches New feature

    When generating parameters for APIs under different modules, if auto domain name is enabled, the project name drop-down box will automatically switch

    Environment refactoring Optimization

    environment

    Environment contains Current value and Initial value. Initial value can be shared by submitting config fine in .fastRequest/config/fastRequestCurrentProjectEnvironment.json.

    Project domain name addition optimization Optimization

    The module name is automatically recognized as a drop-down box option, and you can also customize it.

    projectName

    Add @fastRequestParseIgnore support for ignore parse field Optimization

    To ignore parsing for entity field, you can add @fast Request Parse Ignore to the annotation. The original annotation @parse Ignore is still applicable.

    /**
    + * xxx description
    + * @fastRequestParseIgnore
    + */
    +private String someIgnoreField ;
    +

    2023.2.2 Free trial 2023-11-24

    • Markdown doc template config
    • JSON5 support
    • Compatible with IDEA 2023.3
    • History requests list show errors

    Markdown doc template config New feature

    Provides a custom format for local markdown and Online API doc.View more detail

    JSON5 support New feature

    json5 JSON5 format support for Request body, JSON field comment support

    2023.2.1.1 Free trial

    • Style optimization for Url textField in some themes
    • Project level header save error

    2023.2.1 Free trial

    • UI predigestion
    • Support open API document in apis list
    • Auto domain
    • Map parse
    • Put show apis into right click menu
    • Add plugin version to statistics page
    • Many details optimized
    • Url and cUrl copy can not replace environment variable
    • Curl import parsing error in form-urlencoded and -d forms

    UI predigestion New feature

    urlInputWithMethod Simplify the three horizontal components of the old version (method drop-down box, url input box, and response drop-down box) into one, and remove the response drop-down box to increase simplicity.

    Support open API document in apis list New feature

    openDoc

    Put show apis into right click menu Optimization

    openDoc

    Add plugin version to statistics page Optimization

    pluginVersion

    2023.1.9 Free trial

    • Quick add Environment variable support
    • Add、Delete、Modify support in Environment use view
    • Show apis trigger in Controller
    • Response adds Size property
    • API Name Saving Optimization
    • Input parameter trim optimization
    • Reduce JSON tree tab size from 5MB to 2MB
    • Remove Accept-Language header when send request
    • cURL copy format error of form-data
    • Logic error of domain configuration page in some the case

    Quick add Environment variable support New feature

    quickAddEnvironmentVariable Click the "Add" button to select a line and add it to the environment variables, which can quickly save the variable to the current Env.

    Add、Delete、Modify support in Environment use view New feature

    environmentVariableEditRemoveModify

    Show apis trigger in Controller New feature

    showApis Right-click in the Controller in any position to invoke Generate, chooseShow apis , all APIs in the current controller can be displayed.

    Response adds Size property New feature

    responseSize.png

    2023.1.8 Free trial

    • Environment
    • Method description length truncate
    • Parse support for Instant
    • Delete api directory error in Windows system

    Environment New feature

    Add nvironment variable support, more detail

    Method description length truncate Optimization

    methodDescriptionLength

    You can truncate the method description process when the method name is too long, resulting in display or data saving.

    Such as in SearchEveryWhere

    2023.1.7.1 Free trial

    • Add generate action in SearchEveryWhere
    • The main window pops up with configuration
    • Param parse
    • Table dragging problem

    Add generate action in SearchEveryWhere New feature

    searchEveryWhere After select Auto-generate icon, you can echo or automatically generate API-related URLs and parameter in SearchEveryWhere

    The main window pops up with configuration Optimization

    Add a config Show main tool window when action trigger in Setting->Request Fast Request->Other config.

    Param parse Optimization

    Parsing optimization for the input parameters with @RequestBody Set<String>set. By default, strings are enclosed in double quotation marks.

    spring
    @PostMapping("test3")
    +public Set<String> test3(@RequestBody Set<String>set) {
    +    return set;
    +}
    +

    2023.1.7 Free trial

    • New icon
    • SearchEveryWhere enhance
    • Slack support
    • Compact http icon
    • Duplicate field
    • Optimize the insertion of script snippets
    • Optimize table and textarea
    • Optimize automatic domain parse
    • cUrl import
    • FullScreen
    • Params parse
    • Remove the .main from the module name of a Gradle project
    • SearchEveryWhere keyword search with spaces
    • Optimizing numerous operational details
    • Batch export api doc
    • History request echo data

    New icon New feature

    toolwindowNew

    SearchEveryWhere enhance New feature

    searchEveryWhere Add modulemethodTypelibrary condition

    Slack support New feature

    If you have any question, please click Slackopen in new window and join in.

    We will help you solve your problems. Thanks!

    Compact http icon New feature

    You can also change it in setting -> Restful Fast Request -> Use compact http icon

    MethodNew IconOld Icon
    Getget_darkget_dark
    Postpost_darkpost_dark
    Deletedelete_darkdelete_dark
    Putput_darkput_dark
    Patchpatch_darkpatch_dark

    Duplicate field New feature

    fieldDup Support field line duplicate, mark key end with -dup for duplicate key, plugin will do not change key for collection field, developers need to modify manually.

    2023.1.6 Free trial

    • Header batch edit
    • Idea hang when debug in post script

    Header batch edit New feature

    batchEdit

    2023.1.5 Free trial

    • Editor icon location
    • SearchEveryWhere style confusion
    • URL variable replacing

    Editor icon location Optimization

    editorAction Move from the original button where it is easy to block the text to the upper right corner of the editor

    SearchEveryWhere style confusion

    This issue accompanies many versions and this version completely fixes it.

    SearchEveryWhere, from now on, will not have the problem of the tab width increasing and causing the tab to not be fully displayed.

    v2023.1.4.2 Free trial

    • Domain edit error in project domain config
    • headers group load error

    v2023.1.4.1 Free trial

    • Fix Auto domain of multi-module project

    v2023.1.4 Free trial

    • Auto domain
    • SearchEveryWhere supports searching URLs in jar
    • Set project header error in Script

    Auto domain New feature

    Automatically identify or add a default domain,---->More detail

    v2023.1.3.2 Free trial

    • Teamwork support
    • OpenAI API Optimising fields support
    • API and API storage file jumps
    • Project config refresh
    • rfr.currentModuleName support
    • API doc sync supports custom branch
    • Toolbar
    • GET、POST、DELETE、PUT、PATCH icon
    • LocalDateTime、LocalDate、LocalTime parse
    • Response text not format in IDEA 2023.1
    • Random generate url from array url
    • Comment can not be generate in Kotlin

    FAQ:API data lost after install 2023.1.3

    OpenAI API Optimising fields support New feature

    ai Replace some random fields with the OpenAI APIopen in new window

    API and API storage file jumps New feature

    jumpToJsonData

    jump from apis Implementation of the API and the saved json data for associative jumping

    Project config refresh New feature

    refreshProjectConfig When the configuration file is updated, this function allows the UI to refresh the configuration as well.

    rfr.currentModuleName support New feature

    Get the module name of the current API. Please see it in script.

    API doc sync supports custom branch Optimization

    apiSyncSupportBranch Support custom branch, as in some cases the 'master' branch is protected and does not allow push

    Toolbar Optimization

    htoolbar

    vtoolbar

    toolbarSetting

    1. Add vertical toolbar support.
    2. Button position adjustment

    GET、POST、DELETE、PUT、PATCH icon Optimization

    toolbar Rounded corners and adjusted background colour for icons.

    v2023.1.2 Free trial

    • Image render from response
    • Annual report
    • Url parse logic
    • cUrl Import
    • Url special character parameter encoding
    • Add send request trigger to url field
    • Remove title of window
    • Patch request error in jdk11+
    • API name saved error

    Image render from response New feature

    imageRender Automatically render images for requests that respond to image.

    Annual report New feature

    annualReport Statistics for previous years of operation.

    Url parse logic Optimization

    Optimised the final result of url splicing against variables. For example, splicing several variables finally calculates a url

    Plugin will calculate final url to /test/a.htm

    public class MyConstant {
    +  public static final String MODULE_NAME = "a";
    +  public static final String DYNAMIC_WEB_SUFFIX = ".htm";
    +  public static final String REPAYMENT_REPAY = MODULE_NAME + DYNAMIC_WEB_SUFFIX;
    +}
    +@PostMapping(MyConstant.REPAYMENT_REPAY)
    +  public String test2() {
    +  return "";
    +}
    +

    cUrl import Optimization

    1. automatic parsing of query param into Url params tab page
    2. json parsing optimization
    3. Known bug fixes

    Url special character parameter encoding Optimization

    We have done some optimization, no longer need to encode special characters in url params.

    Add send request trigger to url field Optimization

    Add Enter key listener to url field that can send the request.

    v2023.1.1 Free trial

    • Add support for quickly add domain from Yml or Properties config
    • Add project-level domain config
    • Icon alignment
    • Tool window icon in new UI
    • Make Project-level headers value optional
    • Cookie fetch
    • Swagger default value for basic type
    • Array not parse

    Project-level domain config New feature

    projectLevelDomainConfig

    projectLevelDomainDialog Supports fast config domain directly from the yml or properties file,for more detail, please see Project-level domain config

    Icon alignment Optimization

    The buttons have been categorised to make it easier for developers to find and understand the function of the corresponding button.

    Tool window icon in new UI Optimization

    The clarity of the tool window icons has been optimised under the new UI.

    v2022.3.1 Free trial

    • Add @fastRequestParseIgnore comment support for parse
    • Add rfr.currentDomain in Script
    • Activation prompt optimization
    • Reload api error in navigate when using Kotlin and Java in one project

    Add @parseIgnore comment support for parse New feature

    The following code, the plugin will ignore parsing this field. Please use @parseIgnore

    /**
    + * xxx description
    + * @parseIgnore
    + */
    +private String someIgnoreField ;
    +

    Add rfr.currentDomain in Script New feature

    You can get the current domain link in the Script through rfr.currentDomain

    v2022.2.9 Free trial

    • Compatible with IDEA 2022.2.4
    • Global animate config support
    • Cookie bug
    • Navigate tab load error

    Global animate config support New feature

    animateConfig You can close animate in this global config, if close, icon animation will stop

    v2022.2.8 Free trial

    • Directory download file support
    • @RequestParam support name attribute
    • Error when check update

    Directory download file support New feature

    When response contains content-disposition:attachment, click send will automatically adapt the download

    v2022.2.7 Free trial

    • Api doc sync
    • Api doc show return type document
    • Plugin update alert mechanism
    • Common header
    • Full screen
    • Comment preview
    • Module header value always be checked
    • Parse bug
    • Error when use string param in body

    Api sync New feature

    Online Api doc sync---->More detail

    Api doc show return type document

    returnValueDoc

    Plugin update notification mechanism New feature

    upgradeNotice

    Change from an explicit dialog box to a notification, at the same time automatic updates have been changed to turn on, if you want to turn it off, please go to the configuration page and turn it off manually. But I recommend turning it on, so that you can receive updates in time.

    Note that the previous version of the update will still be a pop-up dialog, this version onwards will be a message notification.

    Common header New feature

    commonHeader---->More detail

    Full screen New feature

    fullScreen---->More detail

    Comment preview Optimization

    fullScreen

    v2022.2.6 Free trial

    • Clear params support
    • Api comment preview
    • Sort param column by key
    • Api doc add required column
    • Long delay in checking for updates
    • Long delay when first open tool window
    • Multi print when use pre-script

    Clear params support New feature

    clear clear all

    clearColumnValue batch clean column value

    Api comment preview New feature

    showCommentConfigshowCommentInClassshowCommentInNavigate

    Sort param column by key New feature

    sortColumn

    v2022.2.5.2 Free trial

    • Post script cannot be cleared

    v2022.2.5.1 Free trial

    • Console syntax error

    v2022.2.5 Free trial

    • Add console for script
    • Add print script support
    • Add currentProjectName and currentEnvName property in build-in property
    • Get description from javadoc for path and request param
    • @RequestPart support
    • Add twitter in doc action group
    • Post script not execute when response is success but code for example is 401

    Console support New feature

    console Console helps developers print some info you wanted

    More info please see script->console

    Add currentProjectName and currentEnvName property in build-in property New feature

    You can use these 2 variables for some judgment

    More info please see script->Built-in variable->rfr

    Get description from javadoc for path and request param New feature

    parseDocDesc Parse parameter comments in the form of Javadoc, suitable for path parameters and request param is a parameter of non-entity class

    twitter New feature

    If you have a Twitter account, please follow me, thank you

    twitterAction

    v2022.2.4.1 Free trial

    • Fix the small screen EUAL agreement cannot display the agree button

    v2022.2.4 Free trial

    • New logo
    • Support parse date by annotation's pattern
    • Support parse url of BaseController
    • Change auto update configurable
    • Parameter encoding
    • Parse error when map not contains generics
    • Post script can not add or remove header

    New logo New feature

    Developers can freely choose and switch the color you want in the drop-down box, and can make it moving

    Support parse date by DateTimeFormat annotation pattern New feature

    dateTimeFormat

    Support parse url of BaseController New feature

    baseController

    Change auto update configurable Optimization

    autoUpdate If you don't need to receive automatic updates, you can turn it off and update it manually (recommend open)

    v2022.2.3.1 Free trial

    • Fix the bug that the parameter cannot be cleared

    v2022.2.3 Free trial

    • Pre-request Script
    • Post-request Script
    • One-click copy Url
    • Compatible with IDEA 2021.2.1
    • RequestParam defaultValue parse
    • Apply table cell value change when click send request
    • Url can not generate after close tool window and reopen
    • Jax-rs PATCH not supported

    Script support New feature

    scriptProject

    scriptModule

    Scripts allow developers to more flexibly, dynamically and easily modify some input parameters of the request process and the processing of responses. Please refer to Script

    One-click copy Url New feature

    copyUrl

    Apply table cell value change when click send request Optimization

    Before 2022.2.3, when entering the parameters in the table, if the cursor is still inside the table, click the action button at this time, and in some scenarios, an error will be reported or the value cannot be modified, and the problem is solved in this version.

    How the old version deals with it: FAQ:After entering the parameters, the API call found that the parameters were invalid

    v2022.2.2 Free trial

    • Add stop API request function
    • Batch export API doc
    • Add annotations when export to Postman
    • Editor hangs in case of a large amount of response data
    • The experience and tips in some scenarios
    • SearchEveryWhere err in EAP/New ui version
    • Error when modify number param in Multipart
    • History request delete operation error in some cases

    Add stop API request function New feature

    stopApi

    Batch export API doc New feature

    batchExportApiDoc

    v2022.2.1 Free trial

    • API grouping parameter save support
    • Temporary request save support
    • Add support for cURL import
    • Add Response Header in response
    • Add support for Url suffix
    • Optimized parameter parsing
    • Optimize shortcut keys
    • Fix Word export bug

    API grouping parameter save support New feature

    Purpose: Save parameters of different combinations under one API

    The original save operation will be classified into the Default group by default

    How to:After entering the parameters, click Save group param request

    groupSave

    Toggle parameter

    The following is the query of the book list in 3 languages

    apiParamGroup

    Temporary request save support New feature

    tempSave

    Purpose: Save any request that does not belong to this project for temporary invocation, not associated with the current project code

    The Url of the Request saved by the temporary request must start with http or https

    cURL import New feature

    importByCurl

    Note that if you need to bind a method, you need to place the cursor on the method name

    Add Response Header in response New feature

    responseHeader

    Add support for Url suffix New feature

    responseHeader

    Purpose: Some requests need to add .do at the end of the url

    Optimized parameter parsing Optimization

    Optimized parsing of List<Entity>

    v2022.1.10 Free trial

    • Add support for history request preview
    • Add support for description search in SearchEveryWhere
    • Add request timeout settings
    • Shortcut key conflict optimization
    • Text editor character display cursor positioning optimization
    • Curl output format optimization
    • Optimization @Consumes(APPLICATION_JSON) ineffective problem(JAX-RS)

    Add support for history request preview New feature

    history Hidden skills: Double-click the record to display details

    Add support for description search in SearchEveryWhere Optimization

    searchEveryWhereDescription Support description search API

    Add request timeout settings New feature

    timeoutSetting Default value: 60 seconds

    Optimization Optimization

    • Shortcut key conflict optimization
      • Added Shift to the three shortcut keys for opening windows
    • Text editor character display cursor positioning optimization
      • When the text editor generates a string, it focuses on the first line by default

    v2022.1.9 Free trial

    • Add shortcut keys for tool window jump
    • Add auto add cookie support
    • Add support for html preview in response raw
    • Ignore field parsing optimizations
    • Generic parameter parsing support
    • Improve project global config
    • Interface optimization
    • Save API insertion order optimization
    • APIs list view optimization
    • Optimized export preview
    • Fixed bug when editing params at the same time delete param

    Add shortcut keys for tool window jump New feature

    toolwindowShortcut Provides shortcut keys to jump quickly, you can change it in setting -> Keymap

    Add auto add cookie support New feature

    autoStoreCookie Then automatically stored in == project global parameters == If enable this configuration,cookie will automatically store in Project Global Config -> cookies,This configuration is enabled by default.

    Add support for html preview in response raw Optimization

    rawHtmlPreview The response of the html return type is no longer truncated in raw, and the html can be previewed at the same time

    Ignore field parsing optimizations Optimization

    • Ignore parsing annotated by `@JsonIgnore`、`@JSONField(serialize = false)` fields
    • Ignore parsing`transient` keyword-decorated fields

    Generic parameter parsing support Optimization

    Support for such generic parameter parsing

    @Data
    +public class CommonDTO<T,R> implements Serializable {
    +    private String accessToken;
    +    private String appKey;
    +    private String clientId;
    +    private T data;
    +    private List<R> dataList;
    +}
    +
    +@PostMapping(value = "/apply")
    +public Integer loanApply(@RequestBody CommonDTO<Book, TestDTO> req){
    +    return 1;
    +}
    +

    Improve project global config Optimization

    projectConfigParam Added URL ParamsURL-Encoded ParamsCookies

    Optimization

    • Interface optimization
      • Optimized tab spacing(narrow under windows)、background color
    • Save API insertion order optimization
      • The post-saved API will be placed on top

    APIs list view optimization New feature

    apisList The rendering of the APIs interface has been optimized,Newly saved api icons are automatically optimized by default,The API saved in history can be right-clicked to select and change

    v2022.1.8 Free trial

    • Project-level global parameters support
    • Optimized response data quickly add to headers
    • Optimized cookies quickly added to the header
    • Postman export optimization
    • Fix navigate tree scan bug
    • Fix some bug

    Project-level global parameters support New feature

    projectConfigParam

    Support global parameters within the project level, not affected by multiple modules.

    Configure priority api header > project header>global header

    Quickly add to header parameters Optimization

    add2projectConfig

    cookie2projectConfig

    Change add params to global header to add params to project global header

    Cookie is also like this

    v2022.1.7 Free trial

    • Kotlin spring framework support
    • Add SearchEveryWhere scope search strategy
    • Add toggleUseSoftWrap support in editor
    • Add support for add to Global Header from response
    • Add support for navigating to the current method
    • Optimize automatic binding projectName for saved api under multiple modules

    Kotlin spring framework support New feature

    kotlinSupport

    Add SearchEveryWhere scope search strategy Optimization

    searchEveryWhereStrategy The 2022.1.7 version can search for mapping in SpringBoot feign or controller by default

    The default search strategy is to search based on annotations, and two options are provided. If you need to exclude interfaces similar in SpringBoot feign interface during the search process, you can remove the check of Interface to deal with it.

    Add toggleUseSoftWrap support in editor

    toggleUseSoftWrap

    Add support for add to Global Header from response New feature

    add2GlobalHeader It is recommended to use in multi-module projects, because Add to Headers can only be added to the current module project

    Add support for navigating to the current method

    navigate2CurrentMethod After you generate the url of the method, sometimes you will switch to another place in the code, and then want to start debugging the API method, you can use this function to quickly locate the code

    Optimize automatic binding projectName for saved api under multiple modules Optimization

    Optimized the need to manually switch the project drop-down box for the saved api echo under the multi-module

    v2022.1.6 Free trial

    • Add support for one click to add cookie to header
    • Add support for sharing API to Word and html
    • Fix bug for `Basic Authorization` don't carry Basic
    • Removes the drag function in APIs tab

    Add support for one click to add cookie to header New feature

    addCookie2Header For those that require cookie support for login, you can quickly add the cookie in the response to the Header to achieve this

    Add support for sharing API to Word and html New feature

    shareApi Please note that the API in word form is implemented in html, so don't feel strange, just export it

    v2022.1.5 Free trial

    • Add support for automatically generating parameter descriptions
    • Add support for generate API documentation
    • Add support for single class API list preview
    • Remove text/html in Accept param in default header
    • Fix some bugs

    Add support for automatically generating parameter descriptions New feature

    paramDescription You can hide or show description by toggle click

    Add support for generate API documentation New feature

    shareDocButton

    apiDocExample After generating parameters, you can generate a Markdown document directly by sharing

    Add support for single class API list preview New feature

    apiDocExample After focusing on the window, enter the keyword, and you can quickly search according to the path keyword of the API

    v2022.1.4 Free trial

    require idea 2021.2+

    • SearchEveryWhere highlight optimization
    • Add support for import and export APIs
    • Add support for run APIs
    • Add timeout for api request
    • Compatible with idea 2022.1
    • Make it optional for automatically generate parameters
    • Swagger annotation default value parameter parsing support
    • Merged Send and Send and Download buttons
    • APIs user interface optimization
    • API Navigate rename to Navigate in tab
    • Optimize the user guide of features
    • Url generation optimization
    • Fix Light files should have PSI only in one project

    SearchEveryWhere highlight optimization Optimization

    help Highlight search keywords to speed up the search for the API you really want to find.At the same time, the javadoc corresponding to the api is displayed

    Add support for import and export APIs New feature

    exportImportApis Using this function, you can easily share your existing APIs with other developers, or import to IDEA on other devices

    More info Features->APIs import and export

    Add support for run APIs New feature

    runInApiManagement You can run your saved requests directly in the APIs tab

    Automatically generate parameter optionals Optimization

    generateSwitch

    Merged Send and Send and Download buttons Optimization

    mergeRunAndDownload The buttons have been merged, because we usually use Send but not Send and Download, which reduces the number of toolbar buttons and looks simpler

    Swagger default value parsing support New feature

    Added the parsing of the default value of swagger annotations, which is more user-friendly of input parameters

    • @ApiParam(swagger2)
    • @ApiImplicitParam(swagger2)
    • @ApiModelProperty(swagger2)
    • @Parameter(swagger3)
    • @Schema(swagger3)

    More info Features->swagger default value parsing support

    Optimize the user guide of features New feature

    help We have added a ? option in different windows to display some guidelines. For first-time users, it's easier to operate

    And with the iteration of the version, more prompt operation guidelines may be added in the future

    Url generation optimization Optimization

    Historical logic will only take the first url, that is, test1, considering that in actual use, it is possible that you need another url, so random support has been added.

    The following method url will be randomly generated to /url1/test1,/url1/test2,/url2/test1,/url2/test2 by click

    @RequestMapping({"url1","url2"})
    +@RestController
    +public class MultiUrlController {
    +    @GetMapping(value = {"test1","test2"})
    +    public Integer testUrl(){
    +        return 1;
    +    }
    +}
    +

    Expression support. The following demo url will be generated to /url/public/test1

    public class Constant {
    +  public static final String PUBLIC_URL = "/public";
    +}
    +@RequestMapping("url")
    +@RestController
    +public class MultiUrlController {
    +  @GetMapping(value = Constant.PUBLIC_URL + "/test1")
    +  public Integer testUrl(){
    +    return 1;
    +  }
    +}
    +

    API Navigate rename to Navigate in tab Optimization

    In the case where the tool window is relatively small, the API Navigate will be hidden. In order to display more content in the smallest tool window as possible, the name is shorter.

    v2.1.3 Free

    • Add encode support for special symbol in parameter
    • Add global headers to curl

    v2.1.2 Free

    • Add support for export api to Postman
    • Open the idea lazy loading API Navigate tree for the first time
    • SearchEveryWhere show module
    • Optimize URL parsing
    • Optimize the display of api navigate tree
    • Optimize the group when save api
    • Global header params support

    Optimize URL parsing New feature

    support parse like following example

    no longer need to configure the URL Replace Config separately

    Scene 1: URLS are class constant references
    @RequestMapping(Url1.URL_TEST)
    +@RestController
    +public class UrlTestController {
    +    private static final String URL= "xxx";
    +
    +    @GetMapping(value = URL)
    +    public Integer testUrl(){
    +        return 1;
    +    }
    +}
    +

    Add support for export api to Postman New feature

    export2postman

    SearchEveryWhere show module New feature

    searchEveryWhereModule

    Optimize the group when save api New feature

    when saving the api,it will save to a group named controller's name
    +
    +

    save2ControllerGroup

    Global header params support New feature

    globalRequestHeader

    v2.1.1 Free

    • SearchEveryWhere support
    • Add a what's new button to view the latest version at any time
    • Optimize the parsing of enum
    • Add support for http redirect

    SearchEveryWhere support New feature

    example
    +/url
    +get /list         (used for search get method)
    +post /save        (used for search post method)
    +

    searchEveryWhere

    Quick view of the latest version New feature

    whatsnewNotifcation

    v2.1.0.2 Free

    v2.1.0.1 Free

    • Fix get param error

    v2.1.0 Free

    • Fix post api parse error when using @RequestBody and @RequestParam
    • Parsing support for nested classes
    • Add support for url parse from the path property of the @RequestMapping in controller class level
    • Added support for Api Tree scanning with @RequestMapping class

    v2.0.9 Free

    • Fix "Slow operations are prohibited on EDT" for 2021.3+
    • Fix add headers from response
    • Add project-level configuration,env and project will not change while switch project
    • Add format action icon to textEditor

    Add headers from response New feature

    if your api need token in header,you can do like this to add params to header from response
    +

    format

    Add format action icon to textEditor New feature

    format

    v2.0.8.1 Free

    • Fix conflicting error when searchEveryWhere
    • Adjust position of toolbar action button
    • remove unnecessary dependence,size 11.1M->5.9M

    v2.0.8 Free

    • Fix npe when first add project/env
    • Json tree response character rendering maximum limit
    • Add support for filter by methodType in Api navigate
    • Add support for ignoring parameter parsing
    • Fix some EDT problem
    • Send/sendDownload button support for custom shortcut keys
    • Fix response text not show in 2021.3

    send/sendDownload button support for custom shortcut keys New feature

    shortcut is available anywhere to trigger the event,No longer need to focus on the tool window
    +

    shortcutSendAndDownload

    Add support for filter by methodType in Api navigate New feature

    shortcutSendAndDownload

    v2.0.7 Free

    • Add support for api navigate tree
    • Add support for automatic switching of Headers with project and environment switching
    • Optimized Windows system. In some cases, downloading files cannot pop up the directory
    • Optimize the parameter parse of @RequestParam
    • Optimize tool window project and env drop-down components and layout
    • Optimize the prompt message of curl copy
    • Optimize the prompt message of curl regenerate
    • Add confirm operation when delete project and env config
    • Fix the order of json field output is disrupted
    • Move send button to toolbar and support keyboard shortcut

    API navigate tree New feature

    Select the tree and enter keywords
    +Press Enter again or double-click the left mouse button to locate the API
    +
    +Hover the mouse to display the doc of the api
    +

    apinavi

    Headers Automatic switching New feature

    Scenes:Multi-module projects such as SpringBoot have different header parameters in different projects and different environments.
    +In order to quickly switch headers, header grouping is coming.
    +Operation method:
    +1.Modify in the headers group, constraint: the input value must be in standard json format
    +2.Switch the environment or project name directly, and then enter the corresponding key and value values in the headers form
    +

    headerSwitch

    Optimize the parameter parse of @RequestParam New feature

    @RequestParam parameters will be prioritized according to the alias
    @RequestParam("nameAlias")List<String> nameList param name will be nameAlias

    Move send button to toolbar and support keyboard shortcut New feature

    send request: alt =
    +send and download: alt -
    +Prerequisites:Tool window needs to be focused
    +

    toolbarSend

    Optimize tool window project and env drop-down box and layout New feature

    Icon p represents project
    +Icon e represents environment
    +

    dropdownProject

    dropdownEnv

    v2.0.6 Free

    • Fix "Light files should have PSI only in one project"
    • Add support for json syntax check
    • Add support for PATCH method
    • Added support for saving the API to the corresponding module group
    • Fix null value in response not output
    • Add support for JAX-RS
    • Display what's new

    Without affecting the use, sometimes it will pop up "Light files should have PSI only in one project".This has fixed in 2.0.6

    json grammar check New feature

    json

    API group automatic association New feature

    apiGroup

    Module supports quick search apiGroup

    JAX-RS support New feature

    apiGroup

    Show what's new New feature

    Will only be shown once apiGroup

    v2.0.5 Free

    • JSON built-in editor support
    • Fix checkbox hidden when change param by text
    • Fix headers param show error when reshow the api
    • Optimized the request progress bar display

    v2.0.4 Free

    • Fix the interface confusion caused by the response content aisle
    • Optimization of response JSON ultra long display
    • Optimized icon size
    • Migrate Chinese documents to Gitee

    v2.0.3 Free

    • Add confirmation when deleting api
    • Added the support of selecting all parameters and inverting selection
    • Fix param parse for java.util.Set
    • Fix parse like 【@RequestParam
    • Fix the confusion of the quick add header interface

    v2.0.2 Free

    • Fix that the A request is displayed to the B project in the case of multiple open projects
    • Fix array and list param parse error decorate by @ResponseBody
    • Fix List without generic parse error
    • Add support for send and download
    • Show progressbar while sending request
    • Brand new document[click the doc icon in the toolbar]
    • Some optimization

    v2.0.1 Free

    • rename from Fast Request to Restful Fast Request
    • merge Json、Form URL-Encoded、Multipart to Body Tab to reduce the tool window width
    • fix bug when modify config in global mode
    • add get、post、delete、put icon to saved request
    • saved request support more search strategy
    • rename tab name from collection to APIs
    • support parse java.time.YearMonth

    v2.0.0 Free

    • support store request
    • support params optional
    • optimal iu
    • fix some bugs
    Last update:
    + + + diff --git a/en/guide/index.html b/en/guide/index.html new file mode 100644 index 000000000..c96285390 --- /dev/null +++ b/en/guide/index.html @@ -0,0 +1,51 @@ + + + + + + + + + + Guide | Fast Request + + + + + + + + + diff --git a/en/guide/install.html b/en/guide/install.html new file mode 100644 index 000000000..0b0848f06 --- /dev/null +++ b/en/guide/install.html @@ -0,0 +1,51 @@ + + + + + + + + + + Install | Fast Request + + + + + +
    Skip to main content

    Install


    Click to install

    Online install

    Search Restful Fast Request in idea plugin marketplace

    download

    Offline install

    Applicable to intranet use or trial version usage

    a. Go to https://plugins.jetbrains.com/plugin/16988-restful-fast-request/versionsopen in new window and download zip file

    b. Go to setting -> plugins -> Install plugin from disk

    c. Select the downloaded zip file and restart (Be careful not to unzip the zip file)

    installLocal

    EAP

    IDEA version required 2021.2+

    The EAP version is a pre-release and may be relatively unstable, but many users will want to try out some advanced features in advance. So you can try it out.

    To install the EAP version, you need to download the corresponding EAP package. Please refer to Offline install and ignore the first step.

    Download eap packageopen in new window

    Note

    When using EAP versions, it is essential to note that upgrading from a lower version to a higher version of EAP will not cause any problems, but when downgrading from a higher version to a lower stable version, some data generated by the new features in the EAP version may be lost.

    Last update:
    + + + diff --git a/en/guide/introduce.html b/en/guide/introduce.html new file mode 100644 index 000000000..850052372 --- /dev/null +++ b/en/guide/introduce.html @@ -0,0 +1,54 @@ + + + + + + + + + + Introduction | Fast Request + + + + + +
    Skip to main content

    Introduction


    Slackopen in new windowtwitteropen in new windowopen in new windowopen in new windowJetbrains Pluginsopen in new windowVersionDownloads JetBrains Plugins

    estful ast equestopen in new window is an IDEA plugin similar to Postman that helps developers debug APIs efficiently. It is a powerful restful API toolkit plugin which helps you quickly generate URL and params by the existing method. Restful Fast Request = API debug tool + API manager tool + API search tool. It has a beautiful interface to compose requests, inspect server responses, store your API request and export API request. Plugin helps you debug requests just in IntelliJ IDEA frame.

    Compared with the HTTP Client, Restful Fast Request not only has the built-in functions of the HTTP Client but also provides a friendly, easy-to-understand and intuitive interface, which makes it more convenient and simple for users to debug the API. At the same time, various types of parameters also provide different customization methods to make them more flexible. And it integrates additional features such as search, Postman integration, Swagger support and so on.

    PURPOSE

    The purpose of the plugin is to simplify development and improve efficiency. Our vision is to become the best partner of IDEA, just like Contra's 1P, 2P, base-friend collocation, and double the efficiency.

    Supported framework

    Spring framework (Spring MVC / Spring Boot)
    +JAX-RS
    +Kotlin Spring framework
    +
    API tool comparison

    Recommendation

    If a new version comes out, please update to the latest version as soon as possible(Plugins will always add new features or fix bugs you didn't find during the upgrade process).

    About author

    Kings

    Make it easier...faster...stronger...

    Platform support

    Last update:
    + + + diff --git a/en/guide/priceAdjust.html b/en/guide/priceAdjust.html new file mode 100644 index 000000000..e4f4220cb --- /dev/null +++ b/en/guide/priceAdjust.html @@ -0,0 +1,51 @@ + + + + + + + + + + Price adjust | Fast Request + + + + + +
    Skip to main content

    Price adjust


    Since the introduction of subscriptions, we have not increased the pricing of the plugin. During this time, we are constantly developing new features; so far, we have had 19 versions, adding many very useful features, for example, API doc sync, and it is a very cost-effective plugin. We also lower the cost of subscriptions by up to 40% when you renew. It is our way of thanking you for your loyalty.

    However, we are at the point where we need to increase our subscription prices. The new prices will come into effect on January 1, 2023. It will be adjusted from $1/month to $1.9/month for individual use and from $2/month to $2.9/month for organization use, and the annual subscription price will be 10 times the monthly subscription price (10 months).

    Prepay at the current price for more than one year

    For both new and existing customers, we are extending the maximum permissible renewal period, and you can go to License pageopen in new window to renew your subscription. There are now three years for individual subscriptions and two years for business subscriptions. While this will require an upfront payment, it will allow you to renew at the current price for more than one year in advance.

    2022-11-15 Kings

    Last update:
    + + + diff --git a/en/guide/script.html b/en/guide/script.html new file mode 100644 index 000000000..2b2809657 --- /dev/null +++ b/en/guide/script.html @@ -0,0 +1,148 @@ + + + + + + + + + + Script | Fast Request + + + + + +
    Skip to main content

    Script


    Function: Developers can use Groovy scripts to customize some logic, which makes the API more flexible, such as dynamically encrypting and signing parameters and putting them in the header rather than directly writing dead.

    Language: Groovyopen in new window

    The groovy syntax is almost identical to Java.

    Script flow chart

    Test Project

    https://github.com/kings1990/fast-request-samplesopen in new window

    Built-in variable

    Notice

    Developers should pay attention to the fact that the built-in variable has been declared in the script edited by themselves instead of creating a new Request or Response object. Otherwise, it may cause unexpected errors.

    Plugin use hutoolopen in new window cn.hutool.http.HttpRequest to send request

    request 2022.2.3️

    • Remark: Contains request-related information, such as url, header, body, parameters
    • Type: cn.hutool.http.HttpRequest

    Parameters can be dynamically adjusted by modifying the request value.

    response 2022.2.3️

    • Remark: Contains response information
    • Type: cn.hutool.http.HttpResponse

    You can get the result of the response through the response value.

    rfr 2022.2.3️

    • Remark: Contains some properties related to plugin interaction

    rfr.projectHeader 2022.2.3️

    Remark: Contains project-level headers, which can be modified to dynamically set values in the UI
    +Type: java.util.LinkedHashMap
    +

    rfr.apiHeader 2022.2.3️

    Remark: Contains module level headers, which can be modified to dynamically set values in the UI
    +Type: java.util.LinkedHashMap
    +

    rfr.currentProjectName 2022.2.5️

    Remark: The project name of the item currently selected in the drop-down box
    +Type: java.lang.String
    +

    rfr.currentEnvName 2022.2.5️

    Remark: The name of the environment currently selected in the drop-down box
    +Type: java.lang.String
    +

    rfr.currentDomain 2022.3.1️

    Remark: Get the currently active domain link
    +Type: java.lang.String
    +

    rfr.currentModuleName 2022.3.1️

    Remark: Get the currently module name of the API
    +Type: java.lang.String
    +

    Import third jar

    Built-in Jar

    com.alibaba:fastjson:1.2.78
    +cn.hutool:hutool-all:5.8.5
    +com.google.guava:guava:30.1.1-jre
    +

    The version of Jar will be updated from time to time. If you find a bug, please contact up to upgrade.

    Developers can use the tools and methods provided by the above three Jars to reference directly in the script without relying on third-party Jar.

    Go to Demo to learn how to get Code completionopen in new window.

    Downloading the jar may take extra time.

    @Grab("org.apache.commons:commons-lang3:3.12.0")
    +import org.apache.commons.lang3.StringUtils
    +
    +String debug = request.header("debug")
    +if(StringUtils.isNotBlank(debug)){
    +    //some logic
    +}
    +
    //Note the file: prefix here
    +this.class.classLoader.addURL(new URL("file:/path/to/jar"))
    +def StringUtils = Class.forName("org.apache.commons.lang3.StringUtils").getDeclaredConstructor().newInstance()
    +
    +String debug = request.header("debug")//get header
    +if(StringUtils.isNotBlank(debug)){
    +    //some logic
    +}
    +

    Scope and order

    Scope: Project-level and Single API levelProject-level needs to click Project-level config.

    Project-level will effort all APIs in the project, and Single API level only affects one API.

    Execute order:Project-level->Single API level

    scriptScope

    Console 2022.2.5

    The console helps developers print some info you want.

    console.info("info")
    +console.print("print info")
    +console.warn("warn")
    +console.success("success")
    +console.error("error")
    +
    +

    console

    Demo

    Code completion support

    Add the following dependency to the project (if there is none), then you can use Code completionopen in new window for the plugin's core classes in the editor (quickly importing classes, getting method hints, etc.).

    1. Sign parameter

    Create a new xxx.groovy file in your local idea, paste the following code. After appropriate modification, it can ensure that the local can run normally and then paste the code into the script.

    • Note that the final script needs to remove this line of code

    HttpRequest request = HttpUtil.createPost("http://localhost:8081/book/add")

    import cn.hutool.core.util.CharsetUtil
    +import cn.hutool.core.util.StrUtil
    +import cn.hutool.crypto.digest.DigestUtil
    +import cn.hutool.http.HttpRequest
    +import cn.hutool.http.HttpUtil
    +
    +//Script logic begins
    +String body = StrUtil.str(request.bodyBytes(), CharsetUtil.CHARSET_UTF_8)
    +body = "xxxx"//just for test
    +String sign = DigestUtil.md5Hex(body)
    +request.header("sign",sign)
    +

    2. Use the response of a request as the Header parameter of the request.

    Note that the logic of obtaining the token must be handled in conjunction with the data structure returned by the http response. For example, if response returns

    {
    +  "success": true,
    +  "code": 200,
    +  "data": {
    +    "token": "xxxxx"
    +  }
    +}
    +

    It needs to be written like this

    String token = JSON.parseObject(myResponse.body()).getJSONObject("data").getString("token")

    import cn.hutool.core.util.CharsetUtil
    +import cn.hutool.core.util.StrUtil
    +import cn.hutool.crypto.digest.DigestUtil
    +import cn.hutool.http.HttpRequest
    +import cn.hutool.http.HttpResponse
    +import cn.hutool.http.HttpUtil
    +import com.alibaba.fastjson.JSON
    +
    +HttpRequest myRequest = HttpUtil.createPost("http://localhost:8081/api/v1.0/login")
    +HttpResponse myResponse = myRequest.execute()
    +if(myResponse.isOk()){
    +    String token = JSON.parseObject(myResponse.body()).getString("token")
    +    request.header("token",token)
    +}
    +

    3. Set an environment variable

    If response returns

    {
    +  "success": true,
    +  "code": 200,
    +  "data": {
    +    "token": "xxxxx"
    +  }
    +}
    +

    You can add this code in the post-script

    import cn.hutool.core.util.CharsetUtil
    +import cn.hutool.core.util.StrUtil
    +import cn.hutool.crypto.digest.DigestUtil
    +import cn.hutool.http.HttpRequest
    +import cn.hutool.http.HttpResponse
    +import cn.hutool.http.HttpUtil
    +import com.alibaba.fastjson.JSON
    +
    +HttpRequest myRequest = HttpUtil.createPost("http://localhost:8081/api/v1.0/login")
    +HttpResponse myResponse = myRequest.execute()
    +if(myResponse.isOk()){
    +    String token = JSON.parseObject(myResponse.body()).getJSONObject("data").getString("token")
    +    rfr.environment.put("token",token)
    +}
    +

    Note

    • Groovy scripts are not sensitive to ;, Java uses ; as the end of the statement code, Groovy uses a newline to indicate the end of a code
    • The built-in variable has been declared. For example, in Demo 2, if an additional request needs to be created, the variable name needs to be noted that it cannot be the same as the built-in variable.

    Script contribute 🌟

    In order to make the script more powerful, community script are welcome, and developers can donate the script in comments

    • Format
    /**
    + * Author:Kings
    + * Main Page:https://github.com/kings1990
    + * Function:xxxxx
    + */
    +
    +//Script begin
    +....
    +

    scriptDonate

    Last update:
    + + + diff --git a/en/guide/teamwork.html b/en/guide/teamwork.html new file mode 100644 index 000000000..6967853dd --- /dev/null +++ b/en/guide/teamwork.html @@ -0,0 +1,51 @@ + + + + + + + + + + Teamwork | Fast Request + + + + + +
    Skip to main content

    Teamwork


    Version Required: 2023.1.3

    Principle

    Based on version control systems, share configurations and API data.

    Features

    No deployment required
    Privatisation
    Unlimited developers
    Unlimited APIs
    Unlimited projects
    Unlimited features
    Offline work
    Safe

    How to use

    Based on the principle, so when we need to share or pull someone else's configuration or API, assuming we use Git as our version control system, we can just push to share configuration and API data, and pull to get someone else's committed configuration and API data.

    Update configuration

    After pull, click the Refresh Project Configuration button to get the configuration submitted by other members.

    refreshProjectConfig

    Update API

    After pull, for example Git pull ,click the API Refresh button to get the APIs submitted by other members.

    refreshProjectConfig

    Local file storage structure

    By default, the plugin will create a .fastRequest directory in the root directory of the project. APIs are stored in the collections directory, and configurations are stored in the config directory. APIs are stored in the structure of module->class name->API, and each directory contains a directory.json file to identify the directory. Other APIs are stored using the methodName.rapi, and conflicts may occur in this file due to multiple modifications in version control systems. Users need to resolve the conflicts and meet the standard JSON and data structures.

    Note that if you want to view the historical data of APIs, you can use the file history records of the version control system to restore them, or you can use the local file history records to restore them.

    teamDirectory

    Transfer historical data.

    By default, the plugin will perform a historical data migration. During the data migration (for data on versions <= 2023.1.3), you do not need to worry about historical data if your data has not been committed to the version control system. If someone else has already committed the API to the version control system, it will be overwritten. Note that if you want to view API historical data, you can restore it by combining the file history records of the version control system or the local file.

    If you find that the data has not been migrated, you can also manually operate it.

    transferData

    Last update:
    + + + diff --git a/en/guide/versionCompare.html b/en/guide/versionCompare.html new file mode 100644 index 000000000..2dacb1b0c --- /dev/null +++ b/en/guide/versionCompare.html @@ -0,0 +1,51 @@ + + + + + + + + + + Version compare | Fast Request + + + + + + + + + diff --git a/en/guide/whatsnew.html b/en/guide/whatsnew.html new file mode 100644 index 000000000..14c031c26 --- /dev/null +++ b/en/guide/whatsnew.html @@ -0,0 +1,51 @@ + + + + + + + + + + History changes | Fast Request + + + + + +
    Skip to main content

    History changes


    Announcement

    2022.1.4+ is free trial version, you will have a 30 days free trial, if you want to compare the difference from free and paid version, you can see the release log from 2022.1.4

    Paid vs Free->

    Buy plugin

    Issue please refer to Githubopen in new window

    Join and follow us to solve your question ❤️❤️❤️↓↓↓

    Slackopen in new windowtwitteropen in new window
    slacktwitter

    important: Important function

    feat: New function      perf: Optimization function      fix: Fix or Remove function

    Because developing version is still in development, the documentation of developing version may not be entirely accurate and is subject to change.

    More detail ---------------->

    2024.1.7 Free trial Developing... IDEA 2023.3+

    • Functions and environment code completion support
    • JSON filter support
    • Common Header code completion support
    • Default file path for multipart
    • SearchEveryWhere result sorting optimization
    • Script interface optimition
    • Map parse
    • Several known issue optimizations

    2024.1.6.3 Free trial Newest version 2024-08-15 IDEA 2022.3+

    • Compatible with IDEA 2024.2+

    2024.1.6.2 Free trial Newest version 2024-07-30 IDEA 2022.3+

    • Combined annotation support
    • Message Optimization
    • After the pre-script is executed, the data not used in the current request

    2024.1.6 Free trial 2024-06-24 IDEA 2022.3+

    • Multi Tab window
    • Apis mark
    • Url copy in Apis & Navigate
    • Json path support
    • Url generation supports extends BaseController interface
    • Fixed some known bugs

    2024.1.5.1 Free trial 2024-05-16 IDEA 2022.3+

    • Entity parse

    2024.1.5 Free trial 2024-05-14 IDEA 2022.3+

    • Add library support in pre and post script
    • Type drop-down box optimization
    • Original url display optimization
    • Apifox directory sync optimization
    • Url input style optimization
    • Parameter Tab automatic jump optimization
    • cUrl import optimization
    • Fix Api doc synchronization is successful but prompts an error

    2024.1.4 Free trial IDEA 2022.3+

    • Apifox integration
    • AI support optimization
    • Change moduleHeader to apiHeader
    • cURL import Optimization
    • Entity parse optimization
    • Compatible with IDEA 2024
    • API export file suffix error

    2024.1.3 Free trial 2024-03-04

    • AI support optimization
    • Performance optimization for large response results
    • Map type parse optimization
    • Download does not respond in Windows system

    2024.1.2.1 Free trial 2024-01-24

    • No response when click send and download

    2024.1.2 Free trial color="pink"/> 2024-01-19

    • Custom toolbar

    2024.1.1 Free trial 2024-01-15

    • SearchEveryWhere support classname search
    • Generate .fastRequest directory strategy
    • Ignore field name parse support
    • Apis and Navigate in popup
    • Manual update check
    • Content-Disposition support optimization
    • SearchEveryWhere performance optimization
    • API loading performance in Navigate optimization
    • Markdown doc add return value doc
    • Collection generic parsing error

    2023.2.3.1 Free trial

    • JSON5 support error

    2023.2.3 Free trial

    • Sync API to Postman
    • Project name drop-down box automatically switches
    • Environment refactoring
    • Project domain name addition optimization
    • Change API document sync trigger to API is saved
    • Add @fastRequestParseIgnore support for ignore parse field
    • SearchEveryWhere compatible idea2023.3
    • Error when passing non-json in body param
    • curl import parsing\' error

    2023.2.2 Free trial

    • Markdown doc template config
    • JSON5 support
    • Compatible with IDEA 2023.3
    • History requests list show errors
    • History requests list show errors

    2023.2.1.1 Free trial

    • Style optimization for Url textField in some themes
    • Project level header save error

    2023.2.1 Free trial

    • UI predigestion
    • Support open API document in apis list
    • Auto domain
    • Map parse
    • Put show apis into right click menu
    • Add plugin version to statistics page
    • Many details optimized
    • Url and cUrl copy can not replace environment variable
    • Curl import parsing error in form-urlencoded and -d forms

    2023.1.9 Free trial

    • Quick add Environment variable support
    • Add、Delete、Modify support in Environment use view
    • Show apis trigger in Controller
    • Response adds Size property
    • API Name Saving Optimization
    • Input parameter trim optimization
    • Reduce JSON tree tab size from 5MB to 2MB
    • Remove Accept-Language header when send request
    • cURL copy format error of form-data
    • Logic error of domain configuration page in some the case

    2023.1.8 Free trial

    • Environment
    • Method description length truncate
    • Parse support for Instant
    • Delete api directory error in Windows system

    2023.1.7.1 Free trial

    • Add generate action in SearchEveryWhere
    • The main window pops up with configuration
    • Param parse
    • Table dragging problem

    2023.1.7 Free trial

    • New icon
    • SearchEveryWhere enhance
    • Slack support
    • Compact http icon
    • Duplicate field
    • Optimize the insertion of script snippets
    • Optimize table and textarea
    • Optimize automatic domain parse
    • cUrl import
    • FullScreen
    • Params parse
    • Remove the .main from the module name of a Gradle project
    • SearchEveryWhere keyword search with spaces
    • Optimizing numerous operational details
    • Batch export api doc
    • History request echo data

    2023.1.6 Free trial

    • Header batch edit
    • Idea hang when debug in post script

    2023.1.5 Free trial

    • Editor icon location
    • SearchEveryWhere style confusion
    • URL variable replacing

    v2023.1.4.2 Free trial

    • Domain edit error in project domain config
    • headers group load error

    v2023.1.4.1 Free trial

    • Fix Auto domain of multi-module project

    v2023.1.4 Free trial

    • Auto domain
    • SearchEveryWhere supports searching URLs in jar
    • Set project header error in Script

    v2023.1.3.2 Free trial

    • Teamwork support
    • OpenAI API Optimising fields support
    • API and API storage file jumps
    • Project config refresh
    • rfr.currentModuleName support
    • API doc sync supports custom branch
    • Toolbar
    • GET、POST、DELETE、PUT、PATCH icon
    • LocalDateTime、LocalDate、LocalTime parse
    • Random generate url from array url
    • Comment can not be generate in Kotlin

    v2023.1.2 Free trial

    • Image render from response
    • Annual report
    • Url parse logic
    • cUrl Import
    • Url special character parameter encoding
    • Add send request trigger to url field
    • Remove title of window
    • Patch request error in jdk11+
    • API name saved error

    v2023.1.1 Free trial

    • Add support for quickly add domain from Yml or Properties config
    • Add project-level domain config
    • Icon alignment
    • Tool window icon in new UI
    • Make Project-level headers value optional
    • Cookie fetch
    • Swagger default value for basic type
    • Array not parse

    v2022.3.1 Free trial

    • Add @fastRequestParseIgnore comment support for parse
    • Add rfr.currentDomain in Script
    • Activation prompt optimization
    • Reload api error in navigate when using Kotlin and Java in one project

    v2022.2.9 Free trial

    • Compatible with IDEA 2022.2.4
    • Global animate config support
    • Cookie bug
    • Navigate tab load error

    v2022.2.8 Free trial

    • Directory download file support
    • @RequestParam support name attribute
    • Error when check update

    v2022.2.7 Free trial

    • Api doc sync
    • Api doc show return type document
    • Plugin update notification mechanism
    • Common header
    • Full screen
    • Comment preview
    • Module header value always be checked
    • Parse bug
    • Error when use string param in body

    v2022.2.6 Free trial

    • Clear params support
    • Api comment preview
    • Sort param column by key
    • Api doc add required column
    • Long delay in checking for updates
    • Long delay when first open tool window
    • Multi print when use pre-script

    v2022.2.5.2 Free trial

    • Post script cannot be cleared

    v2022.2.5.1 Free trial

    • Console syntax error

    v2022.2.5 Free trial

    • Add console for script
    • Add print script support
    • Add currentProjectName and currentEnvName property in build-in property
    • Get description from javadoc for path and request param
    • @RequestPart support
    • Add twitter in doc action group
    • Post script not execute when response is success but code for example is 401

    v2022.2.4.1 收费

    • Fix the small screen EUAL agreement cannot display the agree button

    v2022.2.4 Free trial

    • New logo
    • Support parse date by annotation's pattern
    • Support parse url of BaseController
    • Change auto update configurable
    • Parameter encoding
    • Parse error when map not contains generics
    • Post script can not add or remove header

    v2022.2.3.1 Free trial

    • Parameter cannot be cleared

    v2022.2.3 Free trial

    • Pre-request Script
    • Post-request Script
    • One-click copy Url
    • Compatible with IDEA 2021.2.1
    • RequestParam defaultValue parse
    • Apply table cell value change when click send request
    • Url can not generate after close tool window and reopen
    • Jax-rs PATCH not supported

    v2022.2.2 Free trial

    • Add stop API request function
    • Batch export API doc
    • Add annotations when export to Postman
    • Editor hangs in case of a large amount of response data
    • The experience and tips in some scenarios
    • SearchEveryWhere err in EAP/New ui version
    • Error when modify number param in Multipart
    • History request delete operation error in some cases

    v2022.2.1 Free trial

    • API grouping parameter save support
    • Temporary request save support
    • Add support for cURL import
    • Add Response Header in response
    • Add support for Url suffix
    • Optimized parameter parsing
    • Optimize shortcut keys
    • Fix Word export bug

    v2022.1.10 Free trial

    • Add support for history request preview
    • Add support for description search in SearchEveryWhere
    • Add request timeout settings
    • Shortcut key conflict optimization
    • Text editor character display cursor positioning optimization
    • Curl output format optimization
    • Optimization @Consumes(APPLICATION_JSON) ineffective problem(JAX-RS)

    v2022.1.9 Free trial

    • Add shortcut keys for tool window jump
    • Add auto add cookie support
    • Add support for html preview in response raw
    • Ignore field parsing optimizations
    • Generic parameter parsing support
    • Improve project global config
    • Interface optimization
    • Save API insertion order optimization
    • APIs list view optimization
    • Optimized export preview
    • Fixed bug when editing params at the same time delete param

    v2022.1.8 Free trial

    • Project-level global parameters support
    • Optimized response data quickly add to headers
    • Optimized cookies quickly added to the header
    • Postman export optimization
    • Fix navigate tree scan bug
    • Fix some bug

    v2022.1.7 Free trial

    • Kotlin spring framework support
    • Add SearchEveryWhere scope search strategy
    • Add toggleUseSoftWrap support in editor
    • Add support for add to Global Header from response
    • Add support for navigating to the current method
    • Optimize automatic binding projectName for saved api under multiple modules

    v2022.1.6 Free trial

    • Add support for one click to add cookie to header
    • Add support for sharing API to Word and html
    • Fix bug for `Basic Authorization` don't carry Basic
    • Removes the drag function in APIs tab

    v2022.1.5 Free trial

    • Add support for automatically generating parameter descriptions
    • Add support for generate API documentation
    • Add support for single class API list preview
    • Remove text/html in Accept param in default header
    • Fix some bugs

    v2022.1.4.0 Free trial

    • SearchEveryWhere highlight optimization
    • Add support for import and export APIs
    • Add support for run APIs
    • Add timeout for api request
    • Compatible with idea 2022.1
    • Make it optional for automatically generate parameters
    • Swagger annotation default value parameter parsing support
    • Merged Send and Send and Download buttons
    • APIs user interface optimization
    • API Navigate rename to Navigate in tab
    • Optimize the user guide of features
    • Url generation optimization
    • Fix Light files should have PSI only in one project
    Last update:
    + + + diff --git a/en/index.html b/en/index.html new file mode 100644 index 000000000..315f7cbd0 --- /dev/null +++ b/en/index.html @@ -0,0 +1,51 @@ + + + + + + + + + + Api Buddy | Fast Request + + + + + +
    Skip to main content
    Fast Request

    Fast Request

    Born to simplify debugging APIs

    Get Started

    + + + diff --git a/font/BOBOHEI-2.otf b/font/BOBOHEI-2.otf new file mode 100644 index 000000000..726588276 Binary files /dev/null and b/font/BOBOHEI-2.otf differ diff --git a/guide/activity.html b/guide/activity.html new file mode 100644 index 000000000..3bd7af0c3 --- /dev/null +++ b/guide/activity.html @@ -0,0 +1,51 @@ + + + + + + + + + + 活动 | Fast Request + + + + + +
    跳至主要內容

    活动


    20231205

    B站粉丝突破1000,我决定抽个奖,感谢开发者的支持。关注+点赞+留言下方视频,进行抽奖,赠送1年license,已购买的开发者可以延长插件license到期时间1年

    官网: https://api-buddy.com/guide/activity.html#_20231205open in new window

    抽奖程序:https://injectrl.github.io/BiliCLOnline/open in new window

    规则如下:

    1. 预期抽出3个幸运开发者,如果点赞和留言多考虑增加
    2. 抽奖规则会去除重复UID,刷评论无效
    3. 抽奖公布时间12月27号,结果以直播或者录制视频的形式反馈。
    4. 未点赞或关注作者视为放弃

    20230524

    使用答疑,欢迎提出问题,还有免费 License 赠送

    使用答疑

    20221024

    微信参与抽奖 1 年 license 8 名,半年 license 15 名

    活动 1

    • 活动时间: 2022-10-09 12:00 ~ 2022-10-19 18:00
    • 活动要求:
      • 内容: 关于 IDEA 插件 Fast Request 的使用体验、技巧、教程等(需原创)
      • 形式: oschina 博客、BiliBili 视频
      • 要求: 获得 3000+阅读量或者播放量
    • 活动奖励: 1 年免费 Fast Request 授权 License (已有可累加到期年限),共 5 个名额,根据内容质量及阅读和播放量综合排名决定胜出者

    上次编辑于:
    + + + diff --git a/guide/buy.html b/guide/buy.html new file mode 100644 index 000000000..3da2bf2bb --- /dev/null +++ b/guide/buy.html @@ -0,0 +1,51 @@ + + + + + + + + + + 购买 | Fast Request + + + + + +
    跳至主要內容

    购买


    ❤️插件的发展离不开各位开发者的支持,感谢您支持原创,支持正版️❤️

    购买分为 2 种方式

    注册 jetbrains 账号购买方式可以方便后续找 license,且不容易丢失

    请参考 JetBrains 提供的 文档open in new window,也可以参考以下作者提供的几个步骤。

    Step0: 前往插件激活页面

    点击激活插件,当然你也可以先免费试用插件 30 天,点击 start trial。

    Step1: 点击 Buy license

    Step2: 选择一个套餐点击 Buy

    • 套餐 1: 按月计费订阅
    • 套餐 2: 按年计费订阅(推荐)

    Step3: 邮箱确认(非 jetbrains 账号方式购买)

    如果您没有注册 jetbrains 账号并登录,则会进入此页面,这边需要输入接受 license 的邮箱地址 点击 next 进入购买确认页面

    Step4: 填写信息并点击支付宝或者微信扫码付款

    Step5: 填写 License 信息激活插件

    在线激活

    点击 help->Register Plugins...->Add New License

    需要登录 Jetbrains 账号

    离线激活

    • 2.在 Activation code 中输入激活码

    Tips💡

    License 信息

    请妥善保存好您的激活码信息,不要泄露证书信息

    如果您还有其他疑问,请加入群聊联系我 ↓↓↓

    wechat group

    入正

    上次编辑于:
    + + + diff --git a/guide/concatGroup.html b/guide/concatGroup.html new file mode 100644 index 000000000..b0ecd1eba --- /dev/null +++ b/guide/concatGroup.html @@ -0,0 +1,51 @@ + + + + + + + + + + 群聊 | Fast Request + + + + + +
    跳至主要內容

    群聊


    1. 加入微信群购买享折扣️, 教程已放群公告,不定期发放 license 福利以及活动通告
    2. 群里全都是 Javaer,经常会讨论一些技术问题,热点新闻,跳槽,吐槽等,可以帮助你学到一些东西。
    3. 如果群二维码过期请直接添加二维码下方作者微信

    Slackopen in new window

    微信技术群插件开发技术群
    wechat group插件开发技术群
    如果扫码失败,请直接搜微信号FastRequest99开发出类似的iBlogopen in new windowBean Assistantopen in new window
    的插件教学,如果你也想开发插件请进群
    上次编辑于:
    + + + diff --git a/guide/eula.html b/guide/eula.html new file mode 100644 index 000000000..2204a5487 --- /dev/null +++ b/guide/eula.html @@ -0,0 +1,51 @@ + + + + + + + + + + EULA | Fast Request + + + + + +
    跳至主要內容

    EULA


    Restful Fast Request for JetBrains IDEs EULA

    开发者”指 DKingSoft。

    JetBrains”是指 JetBrains sro,其注册办事处位于捷克共和国布拉格 Na Hrebenech II 1718/10,14000,在布拉格市法院保存的商业登记处注册,C 部分,文件 86211,ID.Nr.:265 02 275。

    JetBrains Affiliate”是指 JetBrains 的子公司和/或任何关联公司。

    JetBrains Marketplace”是指由 JetBrains 或 JetBrains 附属公司运营的任何平台,JetBrains 或 JetBrains 附属公司在其上销售 JetBrains 产品的插件,包括网站 https://plugins.jetbrains.com 和/或任何其他网站或其他平台,无论是命名为 JetBrains Marketplace、JetBrains Plugins Repository 或其他名称。

    JetBrains 产品”是指 JetBrains 提供的任何软件程序或服务。

    插件”是指开发人员根据本 EULA 提供的适用于 JetBrains 产品的插件。

    插件信息”是指以下信息和材料:(a) JetBrains Marketplace 插件标题、标签/类别、开发者名称、产品描述、图标、徽标或横幅图像,以及与插件相关的任何其他信息; (b) 与开发者相关或与插件相关的元数据、图形、艺术品、图像、商标、商品名称、徽标和其他描述性或识别信息和材料;(c) 在云托管插件的情况下,插件的 XML/JSON 描述符。

    插件用户”是指能够同时访问和使用插件的用户。

    ”是指签订本 EULA 的个人或实体。

    本 EULA 管辖通过 JetBrains Marketplace 向您提供的插件的使用条款。本 EULA 在您和开发者之间签订。

    本插件为付费插件(版本>=2022.1.4),您必须确保插件用户的最大数量不超过您为其购买插件的插件用户数量。

    您被授权根据开发者提供的文档并在开发者指定的期限内使用插件。

    您不得:

    • 编辑、更改、修改、改编、翻译或以其他方式更改本软件的全部或任何部分,不允许将本软件的全部或任何部分与任何其他软件组合或合并到任何其他软件中,也不得反编译、反汇编或反向工程软件或尝试做任何此类事情
    • 出于任何商业目的复制、复制、分发、转售或以其他方式使用本软件
    • 允许任何第三方代表任何第三方或为任何第三方的利益使用本软件
    • 以任何违反任何适用的当地、国家或国际法律的方式使用本软件
    • 将软件用于 DKingSoft 认为违反本 EULA 协议的任何目的

    插件受版权和其他知识产权法律和条约的保护。开发者或其许可方拥有插件中的所有所有权、版权和其他知识产权。

    DKingSoft 保留向第三方授予使用本软件的许可的权利。

    所有插件均按“原样”和“可用”提供给您,使用插件的风险由您自己承担。开发者对插件的使用或性能不做任何保证。在适用法律允许的最大范围内,开发商否认所有其他明示或默示的保证和条件,包括但不限于对适销性、特定用途的适用性、所有权和不侵权的默示保证插件,以及提供或未能提供支持服务。开发者不保证插件是准确、可靠或正确的;该插件满足您的要求;插件将在任何特定时间或地点可用,不间断或安全;将纠正任何缺陷或错误;或者插件没有病毒或其他有害成分。

    在任何情况下,开发者均不对与使用开发者插件相关的任何直接或间接成本、损失或损害负责。

    开发者不对您造成的任何利润损失或间接损害承担责任,无论是何种原因造成的,并且在任何情况下,开发者因本协议或使用插件而产生的或与之相关的总责任都不会超过您通过 JETBRAINS 插件市场服务支付的费用适用于索赔前三个月内的插件。即使开发商已被告知责任可能超过金额,并且任何有限补救措施的基本目的未能实现,此限制仍将适用。JETBRAINS 不承担全部责任,因为 JETBRAINS 不是开发者和客户之间合同关系的一方。

    本 EULA 协议以及由本 EULA 协议引起或与之相关的任何争议均应受法律管辖并按法律解释。

    更新时间: 2022-08-20

    上次编辑于:
    + + + diff --git a/guide/faq.html b/guide/faq.html new file mode 100644 index 000000000..9af772ab8 --- /dev/null +++ b/guide/faq.html @@ -0,0 +1,121 @@ + + + + + + + + + + FAQ | Fast Request + + + + + +
    跳至主要內容

    FAQ


    关键字含义

    S: 技巧 Q: 问题 A: 答案

    我们将持续更新开发者遇到的问题以及解决方案

    S: Slow operations are prohibited on EDT

    报错Slow operations are prohibited on EDT相关错误。

    在 SearchEveryWhere 中输入关键字 ide.slow.operations.assertion ,并将下图所示的关闭。

    slowOperationsConfig

    S: 发送按钮被禁用,但是没有任何提示

    需要手动开启通知消息。如果通知消息不开启,很多提示都不能被展现,所以需要配置 IDEA 的消息通知设置。其他情况类同处理。

    需要前往 Setting-> Appearance & Behavior->Nofications 选中 Display ballon notificationsEnable system notifications. 如果Don't ask again nofications勾选了FastRequest,则需要移除条目。

    enableNotifications

    S: 超时时间设置

    默认: 60 秒

    点击插件设置按钮管理配置,设置ConnectTimeout和ReadTimeout的值。

    manageConfig

    timeout

    S: 快捷添加域名

    请参考 项目级别域名配置 (插件版本>=2023.1.1)

    S: APIs 丢失

    非常抱歉,安装过 2023.1.3 版本的(已隐藏)会导致历史 apis 丢失,此时需要手动找回数据。请不要回退插件版本

    1. 下载插件版本>=2023.1.3.2+的版本
    2. 找到项目下的.idea 目录,右键并点击 Local history(本地历史记录),找到关于.idea/FastRequestCollection.xml的变更日志(标题包含了 Deleting),找到最后一个版本,把其中的内容拷贝到.idea/fastRequest/fastRequestCollection.xml中,
    3. 重启 idea
    4. 在 APIs tab 下点击图标并确认数据转移

    dataTransfer20231

    S: Url 错误

    urlError

    解决办法
    1. 配置正确的域名,并启用项目和环境2个下拉框
    2. 设置正确的url,例如需要将url上的变量{id}替换,可以在Path Param tab中替换变量

    S: 解析如何忽略某个字段

    方式 1: 给字段使用如下 2 种注解中的一种

    com.fasterxml.jackson.annotation.JsonIgnore
    +
    +com.alibaba.fastjson.annotation.JSONField(serialize = false)
    +

    方式 2: 给字段增加 static 修饰符

    方式 3:注释上加@fastRequestParseIgnore

    /**
    + * xxx description
    + * @fastRequestParseIgnore
    + */
    +private String someIgnoreField ;
    +

    方式 4: 忽略字段名解析配置

    ignoreFiled

    只需要在配置中增加字段名,即可将实体类中的特定字段忽略生成

    S: 快速定位

    获取到窗口或者弹出框焦点以后,输入需要搜索的字母,快读定位,然后使用箭头或者箭头进行跳跃定位

    例如:

    apiDocExample

    S: 多文件上传

    输入多个值并将字段类型设置为 file

    multiFileUpload

    S: Body 中想直接传 text

    在 header 中加入Content-Type: text/plain

    考虑使用常用头参数快速添加

    S: 没有 Controller,如何发送请求

    参考临时请求

    S: 写脚本时得到提示

    复制一下代码,完成脚本编辑后删除

    import cn.hutool.http.HttpUtil
    +
    +def request = HttpUtil.createGet("shouldremove")
    +def response = request.execute()
    +

    S: API 文档同步

    当你修改了你的接口参数,从 APIs 列表双击回来的 api 是你未更新前保存的 API,此时你想保证在线 API 文档是你修改后的, 需要再点一下 (保存) 或者左侧图标 ,再进行同步。

    建议:不需要提前在 Github、Gitee、Gitlab 创建仓库,插件自动会帮助创建,开发者只需要提供仓库名就行

    S: APIs 回显

    针对保存后的 api,又进行了修改,那么你需要手动补参数并保存。如果你完全不想要之前的参数了,直接点击(重新生成)

    请确保你每次修改参数后点击保存按钮

    S: 最佳视觉效果

    调整工具窗口宽度至610+像素,达到最佳视觉效果

    Q: Origin等请求头失效

    由于 sun.net.www.protocol.http.HttpURLConnection 设置了受限标头,以下一些请求头如果想使用,则需要给IDEA配置vm参数

    private static final String[] restrictedHeaders = {
    +        /* Restricted by XMLHttpRequest2 */
    +        //"Accept-Charset",
    +        //"Accept-Encoding",
    +        "Access-Control-Request-Headers",
    +        "Access-Control-Request-Method",
    +        "Connection", /* close is allowed */
    +        "Content-Length",
    +        //"Cookie",
    +        //"Cookie2",
    +        "Content-Transfer-Encoding",
    +        //"Date",
    +        //"Expect",
    +        "Host",
    +        "Keep-Alive",
    +        "Origin",
    +        // "Referer",
    +        // "TE",
    +        "Trailer",
    +        "Transfer-Encoding",
    +        "Upgrade",
    +        //"User-Agent",
    +        "Via"
    +    };
    +

    点击 help->Edit Custom Vm Options...,在 idea.vmoptions(linux) 或者 idea64.exe.vmoptions (windows)中加入加入如下配置

    -Dsun.net.http.allowRestrictedHeaders=true
    +

    Q: 响应返回Unexpected end of file from server

    1. 网络连接丢失
    +2. 服务器决定关闭连接
    +3. 客户端和服务器之间的某些东西(nginx、路由器等)终止了请求
    +4. 服务端 api 需要代理但是 IDEA 没有配置,尤其是一些内网项目
    +

    IDEA配置代理: Setting-> Appearance & Behavior->System Settings->HTTP Proxy

    Q: Spring Get参数带数组/集合参数报 400错误

    例如Url http://localhost:8081/test?a[0].b[0].token=xxx&a[0].b[0].name=yyy

    加入如下配置

    import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
    +import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
    +import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
    +import org.springframework.context.annotation.Bean;
    +import org.springframework.context.annotation.Configuration;
    +
    +@Configuration
    +public class WebConfig {
    +
    +    @Bean
    +    public ConfigurableServletWebServerFactory webServerFactory() {
    +        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
    +        factory.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> connector.setProperty("relaxedQueryChars", "|{}[]\\"));
    +        return factory;
    +    }
    +
    +}
    +

    Q: 操作按钮不可见

    点击 Options 勾选 Show Toolbar

    Q: 生成参数、跳转错乱

    A: controller 代码里面不要出现方法名一样的方法

    Q: 左侧图标不显示

    左侧图标不显示。

    A: 打开配置 setting->Editor->Gutter icons->show gutter icon

    B: 检查是否安装了 forestx 插件,该插件目前会引起 Fast Request 插件图标不展示

    Q: 输入参数后调用 API 发现无效

    A: 插件版本小于 2022.2.3 的在 table 控件编辑某个值的时候,需要在编辑完值后先在空白处点一下,再发送请求,该问题在 2022.2.3+版本得到修复

    Q: 为啥插件没反应

    A: 请先完善配置,参考快速开始,再点击图标

    Q: 点击图标后 idea 卡死

    A: 你设计的实体类嵌套递归,插件不支持,比如说 A 实体类有 B 实体类的属性,B 实体类有 A 实体类的属性

    public class A {
    +    private B b;
    +    private int xx;
    +}
    +public class B {
    +    private A a;
    +    private String xx;
    +}
    +

    以上这种情况如果你不需要 B 属性,那么你可以在生成的时候手动给 B 加一个 static 属性

    public class A {
    +    private static B b;
    +    private int xx;
    +}
    +
    上次编辑于:
    + + + diff --git a/guide/feature.html b/guide/feature.html new file mode 100644 index 000000000..7a749b490 --- /dev/null +++ b/guide/feature.html @@ -0,0 +1,117 @@ + + + + + + + + + + 功能 | Fast Request + + + + + +
    跳至主要內容

    功能


    不再维护请点击这边的文档

    让图标动起来 2022.2.4

    开发者可以在下拉框里面自由选择并切换你想要的颜色,并且可以让它动起来(性能佳)

    newLogo

    newLogoConfig

    调试 API 发送请求 2.0.0

    example

    新版本中发送按钮在工具栏

    sendRequest

    SearchEveryWhere 支持 2.1.1

    输入案例
    +/url              (查询指定url)
    +get /list         (指定get方式指定url)
    +post /save        (指定post方式指定url)
    +方法关键字          (查询指定描述)
    +

    searchEveryWhere

    针对响应是文件的 API 2.0.2

    点击 Send and download

    example_download

    脚本 2022.2.3+

    脚本可以让开发者更加灵活地、动态地、方便地修改请求过程的一些入参,以及响应的处理
    具体请参考-------> 脚本

    scriptProject

    scriptModule

    API 导出到 Postman 2.1.2

    export2postman

    API 列表 2.0.1

    API 列表 name 取值:

    1. 如果方法使用了 swagger 的@io.swagger.annotations.ApiOperation,则取该注解的 value 值
    2. 如果没有 swagger 直接修饰,则取方法的 javaDoc 描述
    3. 如果以上都没有则返回 New Request

    API 的 name 值支持修改

    apiapiManager

    保存请求 2.0.0

    特别说明

    1. 保存的请求默认会放入Default Group中,支持拉拽放入别的组,当然最好是加入 module 分组,请查看 api 分组自动关联

    2. API 取名:如果 api 使用了 swagger 注解@ApiOperation("xxx"),则 api 取名 xxx,如果没加 swagger 注解,则使用 javadoc 作为 api 的名称,否则将取名 New Request

    if (@ApiOperation("xxx"))
    +    apiName = xxx
    +else if(java doc)
    +    apiName = java doc
    +else
    +    apiName = New Request
    +

    example_download

    API 分组参数保存支持 2022.2.1

    目的:一个 API 下保存不同组合的参数

    B 站教程open in new window

    如何操作:输入参数后点击分组请求保存

    原保存操作将默认归类到 Default 分组

    groupSave

    切换参数

    以下是 book 列表 3 种语言的查询

    apiParamGroup

    临时请求保存支持 2022.2.1

    目的:项目中保存任意不属于本项目的请求,用于临时调用,跟当前项目代码不关联

    临时请求保存的 Request 的 Url 必须以http或者https开头

    tempSave

    重新生成请求 2.0.0

    特别说明

    如果你已经保存一个请求,但是想彻底重新修改其中的参数,那么你可以选择该操作

    regenerate

    CURL 拷贝 1.1.4

    必须是先生成方法 url 及参数后,点击工具栏curl

    curl

    快速添加 header 2.0.0

    如果你的请求需要一个 token 而 token 可以通过一个登陆接口得到,那么你可以不用每次手动添加,只需要访问一下登录接口再通过以下操作来处理

    fastAddToken

    API 分组自动关联 2.0.6

    api 分组是为了将保存的 api 保存到不同分组以便区分不同的 api,当处于多模块的项目情况下,支持扫描项目中的 module,并且快速得将 module 添加到分组中,这种方式会将分组添加到 root 下

    v2.1.2 保存 api 的时候自动创建 module group

    apiGroup

    特别说明

    1. 如果没有创建 module 分组,那么保存请求的时候会将保存的请求放入 Default Group
    2. 如果创建 module 分组,那么保存请求的时候会自动根据当前 API 所处于的 module 自动归类到对应的 Module Group
    3. 当然你可以通过拉拽的方式自行移动 API 到对应的更小的 group,并不冲突

    模块支持快速搜索(光标焦点放在列表上输入关键字即可)

    moduleSearch

    Json 语法检查 2.0.6

    右上角提供了 json 语法检查,如果输入有误会提示对应的错误
    当然也支持格式化等操作

    json

    API 导航树 2.0.7

    选中树输入关键字,再按回车或者鼠标左键双击即可定位到API
    +
    +悬浮鼠标显示api的doc
    +
    +API Navigate树默认是懒加载的,需要点击刷新按钮,同样每次新增了API你也需要刷新才能得到
    +懒加载有利于加快idea启动速度
    +

    apinavi

    Headers 分组 2.0.7

    场景:SpringBoot等多模块项目不同项目、不同环境下头参数不同,为了快速自动切换headers,引入了header分组
    +操作方式:
    +1.在headers group里修改约束:输入的值必须是标准json格式
    +2.直接切换环境,然后再headers表格中输入对应的key、value值
    +

    headerSwitch

    APIs 导入导出 2022.1.4.0

    利用改功能,你可以非常方便得将自己已有的 APIs 分享给别的开发者,或者导入到其他设备上的 IDEA

    注意点

    • 导出的时候会新增一个名为 fastRequestCollection.xml 的 xml 文件,你不能重命名它, 默认导出到当前项目路径下

    • 导入的时候会做默认备份,并且会在.idea 文件夹下生成一个名为 fastRequestCollection-yyyyMMddHHmmssSSS.xml 的文件, 如果是导入误操作,可以通过导入它来还原

    • 如果 fastRequestCollection.xml 不可见,点击 file->Reload All from Disk 来强制刷新

    headerSwitch

    swagger 默认值解析支持 2022.1.4.0

    以下是一些 example

    优先级: swagger 配置的值 > 配置默认值

    swagger2
    * @ApiParam
    +
    +@GetMapping(value="/test/{id}")
    +public String test3(@ApiParam(name = "id",example="2") @PathVariable("id") Integer id) {
    +    return "";
    +}
    +
    +@GetMapping(value="/test/{id}")
    +public String test3(@ApiParam(name = "id",defaultValue="2") @PathVariable("id") Integer id) {
    +    return "";
    +}
    +
    +
    +* @ApiImplicitParam
    +
    +@ApiImplicitParams({
    +    @ApiImplicitParam(paramType="query",name="pageNo",dataType="String",required=true,value="pageNo",defaultValue="1"),
    +    @ApiImplicitParam(paramType="query",name="pageSize",dataType="String",required=true,value="pageSize",defaultValue="10")
    +})
    +@GetMapping(value="/testPage)
    +public String testPage(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize) {
    +    return "";
    +}
    +
    +
    +* @ApiModelProperty
    +@Data
    +public class UserDto {
    +    @ApiModelProperty(example = "Bob")
    +    private String userName;
    +}
    +

    API 自动生成注释 2022.1.5

    字段注释需要符合标准注释规范,使用/**描述*/

    可以通过点击隐藏或显示 Description

    paramDescription

    API 生成 Markdown 文档 2022.1.5

    请注意 word 形式的 API 内部采用 html 来实现的,所以不要觉得奇怪,导出就行

    Response Example 需要运行你的 API 后才会被显示

    shareDocButton

    apiDocExample

    API 一览表预览 2022.1.5

    聚焦窗口后输入关键字,根据 API 的路径关键字可以快速搜索

    apiDocExample

    项目级别全局参数支持 2022.1.8

    支持项目级别内的全局参数,不受多模块影响

    配置优先级api头 > 项目级别全局请求头 > 全局请求头

    projectConfigParam

    cURL 导入 2022.2.1

    importByCurl

    请注意如果需要绑定方法,则需要将光标放置到方法名上

    当前方法定位 2022.1.7

    当你生成好方法的 url 以后,又切换到代码中的别的地方,然后又想开始调试该 API 方法,可以通过此功能快速定位到代码

    navigate2CurrentMethod

    历史请求预览 2022.1.10

    隐藏技能:双击记录可以展示详情

    history

    终止 API 请求功能 2022.2.2

    stopApi

    批量导出 API 文档 2022.2.2

    batchExportApiDoc

    一键拷贝 Url 2022.2.3

    copyUrl

    Raw 中 html 预览 2022.1.9

    可以对 html 进行预览

    rawHtmlPreview

    Api 注释预览 2022.2.6

    showCommentConfigshowCommentInClassshowCommentInNavigate

    上次编辑于:
    + + + diff --git a/guide/features/ai.html b/guide/features/ai.html new file mode 100644 index 000000000..7f9f036e5 --- /dev/null +++ b/guide/features/ai.html @@ -0,0 +1,60 @@ + + + + + + + + + + AI | Fast Request + + + + + +
    跳至主要內容

    AI


    AI

    版本要求: 2024.1.4+

    1.功能

    AI

    为了将 AI 的回复更加精准,我们将 AI 的 设置更加精细化,加入了3个维度,加入了概述提问范例提问范例结果。此设计即让 AI 先训练一次问答,从而使得结果更加符合预期

    我们可以在概述中尽量表述问题的各种可能,并在提问范例提问范例结果中给于概述中描述的样本。

    以下是一个让 AI 帮忙优化 JSON 报文的指令案例

    概述
    你是一位优秀的 JSON 处理程序。每当用户向您发送 JSON 时,您都应该以固定的 JSON 格式响应用户,并根据
    +JSON 键的含义将 JSON 字段中的值替换为人类可读的内容。您只需修改 JSON 中的值,而无需更改其结构。
    +

    提示

    编辑器中选中的值需要用 ${SELECTION} 来替换,完整例子如下。

    ${SELECTION} 可以通过指令设置框中的{}图标快速生成

    2. Api key 获取与配置

    1. OpenAIopen in new window 需要在生成后粘贴进 Api key 输入框
    2. CodeGeeXopen in new window 只需要点击 Get api key 登录后即可自动补全
    3. Custom OpenAI 即私有化部署的 OpenAI 服务,参考第 1 种方式获取 Api key

    3. 触发 AI 指令

    选中编辑器中的内容以后,再点击指令。

    上次编辑于:
    + + + diff --git a/guide/features/annualReport.html b/guide/features/annualReport.html new file mode 100644 index 000000000..0f1e68ea9 --- /dev/null +++ b/guide/features/annualReport.html @@ -0,0 +1,51 @@ + + + + + + + + + + 年度报告 | Fast Request + + + + + + + + + diff --git a/guide/features/apiAssociation.html b/guide/features/apiAssociation.html new file mode 100644 index 000000000..84c1dc0ea --- /dev/null +++ b/guide/features/apiAssociation.html @@ -0,0 +1,51 @@ + + + + + + + + + + API 分组自动关联 | Fast Request + + + + + +
    跳至主要內容

    API 分组自动关联


    API 分组自动关联

    版本要求: 2.0.6 废弃

    api 分组是为了将保存的 api 保存到不同分组以便区分不同的 api,当处于多模块的项目情况下,支持扫描项目中的 module,并且快速得将 module 添加到分组中,这种方式会将分组添加到 root 下

    v2.1.2 保存 api 的时候自动创建 module group

    apiGroup

    特别说明

    1. 如果没有创建 module 分组,那么保存请求的时候会将保存的请求放入 Default Group
    2. 如果创建 module 分组,那么保存请求的时候会自动根据当前 API 所处于的 module 自动归类到对应的 Module Group
    3. 当然你可以通过拉拽的方式自行移动 API 到对应的更小的 group,并不冲突

    模块支持快速搜索(光标焦点放在列表上输入关键字即可)

    moduleSearch

    上次编辑于:
    + + + diff --git a/guide/features/apiCommentPreview.html b/guide/features/apiCommentPreview.html new file mode 100644 index 000000000..f8bda5793 --- /dev/null +++ b/guide/features/apiCommentPreview.html @@ -0,0 +1,51 @@ + + + + + + + + + + Api 注释预览 | Fast Request + + + + + + + + + diff --git a/guide/features/apiDocSync.html b/guide/features/apiDocSync.html new file mode 100644 index 000000000..cb888e7af --- /dev/null +++ b/guide/features/apiDocSync.html @@ -0,0 +1,51 @@ + + + + + + + + + + API 文档同步 | Fast Request + + + + + +
    跳至主要內容

    API 文档同步


    API 文档同步

    版本要求: 2022.2.7+

    介绍

    用于将 API 文档同步至 Github、 Gitee、 Gitlab, 生成在线文档,分享给其他的小伙伴看。

    apiSync

    注意点

    • 内网无网络情况下请用私有域名 gitlab,gitlab 只支持 v4 不支持其他版本,不行考虑升级
    • 如果配置后的仓库在云端不存在,则默认创建私有的仓库
    • 项目访问 404 了,解决办法是分享的时候需要将仓库设置为 public 或者将小伙伴拉至仓库成为某一个成员
    • 一个项目对应同步一个仓库,确定好一个仓库并且同步了一部分文档以后,不要再在后面切换修改仓库,历史记录无法同步

    配置介绍

    apiSyncSetting

    注意点: 命名策略决定了同步至云端的文件名称,文件名称来自 Javadoc 或者 Swagger 方法命名注解,如果勾选使用 javadoc,请确保 Javadoc 和 Swagger 方法命名一定要简短, 否则云端的文件名会非常长,这种情况下考虑勾选方法名来同步。

    Token

    生成的 token 需要勾选对应的最小权限来支持 api 同步,同时需要确保 token 在有时间效期内

    • Gitee: 必须勾选 projects
    • Github: 必须勾选 repo
    • Gitlab: 必须勾选 api

    giteeToken

    githubToken

    gitlabToken

    上次编辑于:
    + + + diff --git a/guide/features/apiGroup.html b/guide/features/apiGroup.html new file mode 100644 index 000000000..cf4c75336 --- /dev/null +++ b/guide/features/apiGroup.html @@ -0,0 +1,51 @@ + + + + + + + + + + API 分组 | Fast Request + + + + + + + + + diff --git a/guide/features/apiImportExport.html b/guide/features/apiImportExport.html new file mode 100644 index 000000000..dd9340182 --- /dev/null +++ b/guide/features/apiImportExport.html @@ -0,0 +1,51 @@ + + + + + + + + + + APIs 导入导出 | Fast Request + + + + + +
    跳至主要內容

    APIs 导入导出


    APIs 导入导出

    版本要求: 2022.1.4.0 废弃

    利用该功能,你可以非常方便得将自己已有的 APIs 分享给别的开发者,或者导入到其他设备上的 IDEA。

    注意点

    • 导出的时候会新增一个名为 fastRequestCollection.xml 的 xml 文件,你不能重命名它, 默认导出到当前项目路径下。

    • 导入的时候会做默认备份,并且会在.idea 文件夹下生成一个名为 fastRequestCollection-yyyyMMddHHmmssSSS.xml 的文件, 如果是导入误操作,可以通过导入它来还原。

    • 如果 fastRequestCollection.xml 不可见,点击 file->Reload All from Disk 来强制刷新。

    exportImportApis

    上次编辑于:
    + + + diff --git a/guide/features/apiList.html b/guide/features/apiList.html new file mode 100644 index 000000000..731bea473 --- /dev/null +++ b/guide/features/apiList.html @@ -0,0 +1,51 @@ + + + + + + + + + + API 列表 | Fast Request + + + + + + + + + diff --git a/guide/features/apiNavigateTree.html b/guide/features/apiNavigateTree.html new file mode 100644 index 000000000..573773d31 --- /dev/null +++ b/guide/features/apiNavigateTree.html @@ -0,0 +1,51 @@ + + + + + + + + + + API 导航树 | Fast Request + + + + + + + + + diff --git a/guide/features/apiPreview.html b/guide/features/apiPreview.html new file mode 100644 index 000000000..84db632bd --- /dev/null +++ b/guide/features/apiPreview.html @@ -0,0 +1,51 @@ + + + + + + + + + + API 一览表预览 | Fast Request + + + + + + + + + diff --git a/guide/features/apiToDoc.html b/guide/features/apiToDoc.html new file mode 100644 index 000000000..83b7f21a7 --- /dev/null +++ b/guide/features/apiToDoc.html @@ -0,0 +1,51 @@ + + + + + + + + + + API 生成文档 | Fast Request + + + + + +
    跳至主要內容

    API 生成文档


    API 生成文档

    版本要求: 2022.1.5

    请注意 word 形式的 API 内部采用 html 来实现的,所以不要觉得奇怪,导出就行。

    Response Example 需要运行你的 API 后才会被显示

    shareDocButton

    apiDocExample

    上次编辑于:
    + + + diff --git a/guide/features/apiToPostman.html b/guide/features/apiToPostman.html new file mode 100644 index 000000000..07bc4b449 --- /dev/null +++ b/guide/features/apiToPostman.html @@ -0,0 +1,51 @@ + + + + + + + + + + API 导出到 Postman | Fast Request + + + + + + + + + diff --git a/guide/features/apifox.html b/guide/features/apifox.html new file mode 100644 index 000000000..5b44eff1d --- /dev/null +++ b/guide/features/apifox.html @@ -0,0 +1,51 @@ + + + + + + + + + + Apifox 集成 | Fast Request + + + + + +
    跳至主要內容

    Apifox 集成


    Apifox 集成

    版本要求: 2024.1.4+

    apifoxIntegration

    1. 配置 API access token

    apifoxGenerateApikey

    参考 Apifox 官方文档 Apifox 开放 APIopen in new window, 获取 API access token 的功能路径:头像-账号设置- API 访问令牌

    有效期

    需要注意的是,过了 Api access token的有效期,插件关于 Apifox 同步的功能将全部失效,所以建议在创建 Api access token 的时候设置为无限期

    2. 映射项目

    apifoxConfigProject

    当我们正确设置好 Api access token 之后,需要对 IDEA 项目与 Apifox 的项目进行一个映射关联,点击刷新项目,当项目加载完毕以后,点开团队选项,勾选对应的项目即可。

    3. 同步 Environment

    apifoxSyncEnvironment

    同步 Environment 会将项目的不同环境的域名、变量、全局参数全部同步至 Apifox,作为 Apifox 的服务参数、变量以及全局参数。这一步建议放在 API 同步之前先执行

    4. 同步 API

    apifoxSyncApi

    同步 API 需要先将 API 进行保存,可以手动触发,也可以自动触发,自动触发需要在 Apifox 同步设置中勾选保存 API 后同步 Apifox选项。

    5.视频教程

    Bilibili视频教程open in new window

    上次编辑于:
    + + + diff --git a/guide/features/autoDescription.html b/guide/features/autoDescription.html new file mode 100644 index 000000000..f2d56aade --- /dev/null +++ b/guide/features/autoDescription.html @@ -0,0 +1,51 @@ + + + + + + + + + + API 自动生成注释 | Fast Request + + + + + + + + + diff --git a/guide/features/autoDomain.html b/guide/features/autoDomain.html new file mode 100644 index 000000000..947a6f5d0 --- /dev/null +++ b/guide/features/autoDomain.html @@ -0,0 +1,51 @@ + + + + + + + + + + 自动域名 | Fast Request + + + + + +
    跳至主要內容

    自动域名


    自动域名

    版本要求: 2023.1.4

    触发点

    方法左侧点击的时候,如果没有配置域名,则自动创建一个。

    项目名取值

    自动生成的配置项目名取自当前 API 的模块名。

    为什么呢?因为比方说项目下有 2 个模块Module-1Module-2的 API,如果Module-1的域名已存储,在Module-2下的 API 点击方法左侧点击的时候, 老版本做不到自动切换项目名。

    建议后期不要手动添加项目名,因为插件无法找到映射关系,这容易导致 API 保存的时候本该是用Module-2的域名,结果用了Module-1的域名。

    所以自动域名的另外一个好使是API 域名的自动切换,如果没有则自动生成,如果有需改改进,开发者只需要修改域名值即可!插件将自动适配!

    配置文件解析逻辑

    1. 读取application.yml或者bootstrap.yml。如果找到配置server.port或者server.servlet.context-path,则取该配置。
    2. 如果以上配置文件无法找到server.port或者server.servlet.context-path,则读取spring.profiles.active,作为变量env。接着寻找application-env.yml或者bootstrap-env.yml,寻找配置server.port或者server.servlet.context-path
    3. properties 文件逻辑类似
    4. 以上配置无法找到则port=8080,context-path=/
    5. 项目名称取自模块名
    6. spring.profiles.active不支持 Maven 变量读取解析,例如spring.profiles.active=@active.env@
    7. 针对历史已保存的 api,插件不做自动域名处理;针对新的 API,如果开关开启,将自动创建域名

    配置开关

    autoDomain

    上次编辑于:
    + + + diff --git a/guide/features/basicAuth.html b/guide/features/basicAuth.html new file mode 100644 index 000000000..807113325 --- /dev/null +++ b/guide/features/basicAuth.html @@ -0,0 +1,51 @@ + + + + + + + + + + Basic auth | Fast Request + + + + + + + + + diff --git a/guide/features/batchExportApiDoc.html b/guide/features/batchExportApiDoc.html new file mode 100644 index 000000000..f43280337 --- /dev/null +++ b/guide/features/batchExportApiDoc.html @@ -0,0 +1,51 @@ + + + + + + + + + + 批量导出 API 文档 | Fast Request + + + + + + + + + diff --git a/guide/features/bulkEdit.html b/guide/features/bulkEdit.html new file mode 100644 index 000000000..a9c95b317 --- /dev/null +++ b/guide/features/bulkEdit.html @@ -0,0 +1,54 @@ + + + + + + + + + + Headers批量编辑 | Fast Request + + + + + + + + + diff --git a/guide/features/clear.html b/guide/features/clear.html new file mode 100644 index 000000000..75744a745 --- /dev/null +++ b/guide/features/clear.html @@ -0,0 +1,51 @@ + + + + + + + + + + Clear | Fast Request + + + + + + + + + diff --git a/guide/features/commonHeader.html b/guide/features/commonHeader.html new file mode 100644 index 000000000..877f7b5be --- /dev/null +++ b/guide/features/commonHeader.html @@ -0,0 +1,51 @@ + + + + + + + + + + 常用头参数 | Fast Request + + + + + + + + + diff --git a/guide/features/copyCurl.html b/guide/features/copyCurl.html new file mode 100644 index 000000000..6f284ecc8 --- /dev/null +++ b/guide/features/copyCurl.html @@ -0,0 +1,51 @@ + + + + + + + + + + CURL 拷贝 | Fast Request + + + + + + + + + diff --git a/guide/features/copyUrl.html b/guide/features/copyUrl.html new file mode 100644 index 000000000..5d45b9eb2 --- /dev/null +++ b/guide/features/copyUrl.html @@ -0,0 +1,51 @@ + + + + + + + + + + 一键拷贝 Url | Fast Request + + + + + + + + + diff --git a/guide/features/curlImport.html b/guide/features/curlImport.html new file mode 100644 index 000000000..7cc1a092a --- /dev/null +++ b/guide/features/curlImport.html @@ -0,0 +1,51 @@ + + + + + + + + + + cURL 导入 | Fast Request + + + + + + + + + diff --git a/guide/features/customToolbar.html b/guide/features/customToolbar.html new file mode 100644 index 000000000..60e7f8cae --- /dev/null +++ b/guide/features/customToolbar.html @@ -0,0 +1,51 @@ + + + + + + + + + + 自定义工具栏 | Fast Request + + + + + + + + + diff --git a/guide/features/debugApi.html b/guide/features/debugApi.html new file mode 100644 index 000000000..0784b9033 --- /dev/null +++ b/guide/features/debugApi.html @@ -0,0 +1,51 @@ + + + + + + + + + + 调试 API 发送请求 | Fast Request + + + + + + + + + diff --git a/guide/features/docAndContact.html b/guide/features/docAndContact.html new file mode 100644 index 000000000..e39ca7a91 --- /dev/null +++ b/guide/features/docAndContact.html @@ -0,0 +1,51 @@ + + + + + + + + + + 文档/快速联系 | Fast Request + + + + + + + + + diff --git a/guide/features/downloadApi.html b/guide/features/downloadApi.html new file mode 100644 index 000000000..70e887cb9 --- /dev/null +++ b/guide/features/downloadApi.html @@ -0,0 +1,51 @@ + + + + + + + + + + 下载文件 | Fast Request + + + + + + + + + diff --git a/guide/features/environment.html b/guide/features/environment.html new file mode 100644 index 000000000..dbcc0a6ba --- /dev/null +++ b/guide/features/environment.html @@ -0,0 +1,51 @@ + + + + + + + + + + Environment | Fast Request + + + + + +
    跳至主要內容

    Environment


    版本要求: 2023.1.8

    Environment中可以设置存储一些变量,并且在其他地方使用{{key}}来替换固定值或者魔法值。

    可以在以下场景中使用{{key}}

    • Url
    • Headers
    • Path Params
    • URL Params
    • Body
      • JSON
      • Form URL-Encoded
      • Multipart

    定义

    Environment的Tab值取自项目域名配置中的环境,key需要满足正则表达式^[a-zA-Z_$][a-zA-Z0-9_$]*$

    environment

    小技巧

    聚焦表格后,可以输入key值来快速定位行

    使用

    在Value中直接输入{{key}}来替换固定值或者魔法值,当替换后,如果Environment中包含此key则会绿色高亮。鼠标悬浮500ms后可以显示当前的Environment值

    useEnvironmentVariable

    也可以选中单行,并点击从列表从选择。

    chooseEnvironmentVariable

    小技巧

    聚焦表格后,可以输入key值来快速定位行

    脚本

    参考 脚本 -> demo -> 设置一个Environment变量

    environmentScript

    上次编辑于:
    + + + diff --git a/guide/features/fullScreen.html b/guide/features/fullScreen.html new file mode 100644 index 000000000..719055cad --- /dev/null +++ b/guide/features/fullScreen.html @@ -0,0 +1,51 @@ + + + + + + + + + + 全屏 | Fast Request + + + + + + + + + diff --git a/guide/features/function.html b/guide/features/function.html new file mode 100644 index 000000000..bd7b7abde --- /dev/null +++ b/guide/features/function.html @@ -0,0 +1,59 @@ + + + + + + + + + + 函数 | Fast Request + + + + + +
    跳至主要內容

    函数


    函数

    路径:项目级别配置 -> Functions

    使用 {@函数名} 形式来替换魔法值。函数必须是无参数的,否则不能正常工作。

    输入{@后按快捷键可以唤起函数自动补全。

    开发者可以利用 jdk 中自带的类写属于自己定制化的函数,例如随机 5 个字符串

    public String randomString() {
    +    StringBuilder sb = new StringBuilder(5);
    +    for (int i = 0; i < 5; i++) {
    +        int randomIndex = RANDOM.nextInt(CHAR_NORMAL.length());
    +        sb.append(CHAR_NORMAL.charAt(randomIndex));
    +    }
    +    return sb.toString();
    +}
    +

    更可以使用 java-fakeropen in new window 库,定制各种类型的参数随机生成。

    代码补全快捷键路径

    Setting -> Keymap 下的 Main Menu->Code->Code Completion->Basic

    上次编辑于:
    + + + diff --git a/guide/features/headerGroup.html b/guide/features/headerGroup.html new file mode 100644 index 000000000..4bcd77141 --- /dev/null +++ b/guide/features/headerGroup.html @@ -0,0 +1,55 @@ + + + + + + + + + + Headers 分组 | Fast Request + + + + + +
    跳至主要內容
    + + + diff --git a/guide/features/headersGroup.html b/guide/features/headersGroup.html new file mode 100644 index 000000000..866937586 --- /dev/null +++ b/guide/features/headersGroup.html @@ -0,0 +1,55 @@ + + + + + + + + + + Headers 分组 | Fast Request + + + + + +
    跳至主要內容

    Headers 分组


    Headers 分组

    版本要求: 2.0.7

    场景:SpringBoot等多模块项目不同项目、不同环境下头参数不同,为了快速自动切换headers,引入了header分组
    +操作方式:
    +1.在headers group里修改约束:输入的值必须是标准json格式
    +2.直接切换环境,然后再headers表格中输入对应的key、value值
    +

    headerSwitch

    上次编辑于:
    + + + diff --git a/guide/features/historyRequest.html b/guide/features/historyRequest.html new file mode 100644 index 000000000..737bd862a --- /dev/null +++ b/guide/features/historyRequest.html @@ -0,0 +1,51 @@ + + + + + + + + + + 历史请求预览 | Fast Request + + + + + + + + + diff --git a/guide/features/htmlPreview.html b/guide/features/htmlPreview.html new file mode 100644 index 000000000..406457b17 --- /dev/null +++ b/guide/features/htmlPreview.html @@ -0,0 +1,51 @@ + + + + + + + + + + Html 预览 | Fast Request + + + + + + + + + diff --git a/guide/features/index.html b/guide/features/index.html new file mode 100644 index 000000000..35c9b928d --- /dev/null +++ b/guide/features/index.html @@ -0,0 +1,51 @@ + + + + + + + + + + 功能列表 | Fast Request + + + + + +
    跳至主要內容

    功能列表


    上次编辑于:
    + + + diff --git a/guide/features/jsonGrammarCheck.html b/guide/features/jsonGrammarCheck.html new file mode 100644 index 000000000..05c7925a8 --- /dev/null +++ b/guide/features/jsonGrammarCheck.html @@ -0,0 +1,51 @@ + + + + + + + + + + Json 语法检查 | Fast Request + + + + + + + + + diff --git a/guide/features/makeIconMove.html b/guide/features/makeIconMove.html new file mode 100644 index 000000000..93187a6bd --- /dev/null +++ b/guide/features/makeIconMove.html @@ -0,0 +1,51 @@ + + + + + + + + + + 让图标动起来 | Fast Request + + + + + + + + + diff --git a/guide/features/markdownDocTemplateConfig.html b/guide/features/markdownDocTemplateConfig.html new file mode 100644 index 000000000..677d97d8d --- /dev/null +++ b/guide/features/markdownDocTemplateConfig.html @@ -0,0 +1,142 @@ + + + + + + + + + + Markdown文档模板配置 | Fast Request + + + + + +
    跳至主要內容

    Markdown文档模板配置


    Markdown文档模板配置

    版本要求: 2023.2.2+

    提供了导出文档和Api在线文档的自定义格式实现.

    实现技术

    1. Velocityopen in new window
    2. Markdown

    内置变量

    内容变量

    变量参数类型说明
    urlString最终url
    originUrlString原始url,包含路径原值变量名
    namingPolicyString命名策略,固定值[1.byMethodName:根据方法名 2.byDoc:根据JavaDoc或者Swagger方法描述]
    methodNameStringJava方法名
    methodDescriptionString方法描述,来源javadoc或者Swagger方法描述
    methodTypeString方法类型,例如Get,Post,Put,Delete,Patch
    headerListList<Header>头参数
    pathKeyValueListList<KeyValue>Url路径参数
    urlParamsKeyValueListList<KeyValue>Url Query参数
    multipartKeyValueListList<KeyValue>Multipart参数
    urlEncodedKeyValueListList<KeyValue>Form Url-Encoded参数
    jsonParamStringJson参数
    jsonParamDocumentStringJson参数文档
    responseExampleString响应
    returnDocumentString响应参数文档

    语法变量

    变量说明
    H1Markdown #
    H2Markdown ##
    H3Markdown ###
    H4Markdown ####
    H5Markdown #####
    H6Markdown ######

    参数类型

    变量参数类型说明
    enabledBoolean是否启用
    typeStringHeader的key值
    valueStringHeader的value值

    KeyValue

    变量参数类型说明
    enabledBoolean是否启用
    keyString参数Key
    typeString参数类型,固定格式[Object Array String Number Boolean]
    valueObject参数Value
    commentString参数备注

    默认模板

        #if (${namingPolicy}=='byDoc')
    +    $H1 ${methodDescription}
    +    #else
    +    $H1 $!{methodName}
    +
    +    $H3 Method description
    +
    +    ```
    +    $!{methodDescription}
    +    ```
    +    #end
    +
    +    > URL: $!{url}
    +    >
    +    > Origin Url: $!{originUrl}
    +    >
    +    > Type: $!{methodType}
    +
    +
    +    $H3 Request headers
    +
    +    |Header Name| Header Value|
    +    |---------|------|
    +    #foreach( $h in ${headerList})
    +    |$h.type|$h.value|
    +    #end
    +
    +    $H3 Parameters
    +
    +    $H5 Path parameters
    +
    +    | Parameter | Type | Value | Description |
    +    |---------|------|------|------------|
    +    #foreach( $node in ${pathKeyValueList})
    +    |$node.key|$!{node.type}|$!{node.value}|$!{node.comment}|
    +    #end
    +
    +
    +    $H5 URL parameters
    +
    +    |Required| Parameter | Type | Value | Description |
    +    |---------|---------|------|------|------------|
    +    #foreach( $node in ${urlParamsKeyValueList})
    +    |$!{node.enabled}|$!{node.key}|$!{node.type}|$!{node.value}|$!{node.comment}|
    +    #end
    +
    +
    +    $H5 Body parameters
    +
    +    $H6 JSON
    +
    +    ```
    +    ${jsonParam}
    +    ```
    +
    +    $H6 JSON document
    +
    +    ```
    +    ${jsonParamDocument}
    +    ```
    +
    +
    +    $H5 Form URL-Encoded
    +    |Required| Parameter | Type | Value | Description |
    +    |---------|---------|------|------|------------|
    +    #foreach( $node in ${urlEncodedKeyValueList})
    +    |$!{node.enabled}|$!{node.key}|$!{node.type}|$!{node.value}|$!{node.comment}|
    +    #end
    +
    +
    +    $H5 Multipart
    +    |Required | Parameter | Type | Value | Description |
    +    |---------|---------|------|------|------------|
    +    #foreach( $node in ${multipartKeyValueList})
    +    |$!{node.enabled}|$!{node.key}|$!{node.type}|$!{node.value}|$!{node.comment}|
    +    #end
    +
    +
    +    $H3 Response
    +
    +    $H5 Response example
    +
    +    ```
    +    $!{responseExample}
    +    ```
    +
    +    $H5 Response document
    +    ```
    +    $!{returnDocument}
    +    ```
    +
    +
    上次编辑于:
    + + + diff --git a/guide/features/navigateCurrentMethod.html b/guide/features/navigateCurrentMethod.html new file mode 100644 index 000000000..8f4b8e547 --- /dev/null +++ b/guide/features/navigateCurrentMethod.html @@ -0,0 +1,51 @@ + + + + + + + + + + 当前方法定位 | Fast Request + + + + + + + + + diff --git a/guide/features/navigateCurrentMethodJson.html b/guide/features/navigateCurrentMethodJson.html new file mode 100644 index 000000000..58ae0d69d --- /dev/null +++ b/guide/features/navigateCurrentMethodJson.html @@ -0,0 +1,51 @@ + + + + + + + + + + 多窗口 Tab | Fast Request + + + + + +
    跳至主要內容

    多窗口 Tab


    多窗口 Tab

    版本要求: 2024.1.6

    可以定位到当前方法存储数据的文件,并以调试窗口形式打开

    rapi文件最终存储的是 json 格式的数据数据,并且以调试窗口形式展现,如果遇到数据冲突,请用 json 格式打开并编辑

    openInTabAction

    当前 API 可以通过以下 Action 选项来使它在 Tab 中打开

    openInTabAction

    你可以右键 Apis 中的条目后选择 Tab 中打开

    openTabInApis

    上次编辑于:
    + + + diff --git a/guide/features/parseStrategy.html b/guide/features/parseStrategy.html new file mode 100644 index 000000000..ebcad1211 --- /dev/null +++ b/guide/features/parseStrategy.html @@ -0,0 +1,59 @@ + + + + + + + + + + 字段解析 | Fast Request + + + + + +
    跳至主要內容

    字段解析


    字段解析

    类型映射

    了解详情

    忽略字段

    方式 1: 给字段使用如下 2 种注解中的一种

    com.fasterxml.jackson.annotation.JsonIgnore
    +
    +com.alibaba.fastjson.annotation.JSONField(serialize = false)
    +

    方式 2: 给字段增加 static 修饰符

    方式 3:注释上加@fastRequestParseIgnore

    /**
    + * xxx description
    + * @fastRequestParseIgnore
    + */
    +private String someIgnoreField ;
    +

    方式 4: 忽略字段名解析配置

    ignoreFiled

    只需要在配置中增加字段名,即可将实体类中的特定字段忽略生成

    上次编辑于:
    + + + diff --git a/guide/features/postmanSync.html b/guide/features/postmanSync.html new file mode 100644 index 000000000..e1e6de987 --- /dev/null +++ b/guide/features/postmanSync.html @@ -0,0 +1,51 @@ + + + + + + + + + + Postman 集成 | Fast Request + + + + + +
    跳至主要內容

    Postman 集成


    Postman 集成

    版本要求: 2023.2.3

    提示

    由于历史原因,历史保存的持久化数据丢失了一部分字段,为了能够将同步至postman的数据更完整, 建议在插件postman配置中勾上保存后同步postman选项,通过保存操作来触发同步.

    同时推荐使用该功能来同步api而不是导出

    Postman API 用量问题

    插件使用 Postman API 来同步数据,需要注意的是 Postman 同步涉及到 Postman API 的用量open in new window问题,点击链接需要注意 Postman API Usage 这一栏,每月最多免费使用 1000次。超过额度会导致同步失败!

    postmanSync

    Api key

    Api key 用于使用 Postman 在线 API 执行一些手工行为.例如创建Collection创建目录创建 Request 等行为.

    打开 https://postman.co/settings/me/api-keysopen in new window 并登录,并执行创建.注意最好是创建一个没有有效期的Api key.

    postmanApiKey

    WorkspaceId

    Workspace id 是 Postman 工作空间的Id. 有2中策略来创建Workspace

    1. 每个项目来区分创建1个Workspace(推荐)
    2. 创建1个Workspace表示某个公司的,不同的Collection来表示公司下面不同的项目

    获取WorkspaceId的步骤如下↓↓↓

    a. 创建一个 Workspace,已有则忽略

    createWorkspace

    b. 点击 Workspace,并点击Workspace的info图标(注意不是点击Workspace Settings)

    showWorkspaceId

    c.复制得到Workspace id

    workspaceInfo

    Initial value 与 Current value

    Environment 中变量的值包含 Initial valueCurrent value,Initial value是云端共享的,与之对应的Current value仅保留在本地. Postman中实际Request使用的是Current value.

    但是,Restful Fast Request在对 Environment 同步的时候同步的是 Initial value.

    所以如果插件中更新了 Environment 值,并且同步到了 Postman ,此时在 Postman 中执行 Request 并不会立刻使用同步的值, 而是需要在 Environment 中手工替换或者全部替换(点击Reset All).

    workspaceInfo

    前后置脚本

    因为语言的不同,插件并不会同步前后置脚本.所以在使用插件的时候最好把一些共用的脚本写在项目级别配置中的前后置脚本,这样子也只需要在同步到Postman以后, 在Postman中的Collection级别下写前后置脚本.

    postmanScript

    注意事项

    1. 推荐勾选保存后即同步到Postman,如果没有勾选,则在手动触发的时候需要先保存,再点击同步
    2. 多方协作,如果发现同一个workspace出现多个相同的collection,只需使用其中一方的collection id在配置中手动替换即可
    3. 多方协作,如果发现同一个collection出现多个相同的folder,只需使用其中一方的.fastRequest/collections/ROOT/模块名/类名/directory.json中的pmFolderId属性即可
    4. 多方协作,如果发现同一个api在postman上有2份,则可以通过修改其中一份数据的pmRequestIdpmResponseId来是他们保持统一,可以通过 多窗口 Tab来定位存储的文件.最好的方式是通过git管理提交rapi文件使api底层存储数据保持一致
    上次编辑于:
    + + + diff --git a/guide/features/projectConfigRefresh.html b/guide/features/projectConfigRefresh.html new file mode 100644 index 000000000..bde411c75 --- /dev/null +++ b/guide/features/projectConfigRefresh.html @@ -0,0 +1,51 @@ + + + + + + + + + + 项目配置刷新 | Fast Request + + + + + + + + + diff --git a/guide/features/projectLevelDomainConfig.html b/guide/features/projectLevelDomainConfig.html new file mode 100644 index 000000000..18a973d15 --- /dev/null +++ b/guide/features/projectLevelDomainConfig.html @@ -0,0 +1,54 @@ + + + + + + + + + + Project 级别域名配置 | Fast Request + + + + + +
    跳至主要內容

    Project 级别域名配置


    Project 级别域名配置

    作用:本功能可以让开发者一键添加域名配置

    版本要求: 2023.1.1+

    建议

    建议使用项目级别域名配置,原来的 管理配置将作为全配置配置,并且优先级小于项目级别配置,建议项目域名以项目级别隔离而不要使用全局配置。

    使用项目级别配置的好处是当项目多的时候,下拉框选项将减少(排除了其他项目的配置),只取本项目级别域名与全局域名配置的交集。

    提示

    1. 项目名: Api 对应的项目名称。如果开启了自动域名,单模块项目,项目名将自动设置为项目名词,多模块则为模块名。不建议手动替换
    2. 环境名: 不同的环境,例如将本地命名为 local,开发环境命名为 dev,测试环境命名为 test,生产环境命名为 prod
    3. 域名: 项目名与环境名下对应的域名

    自动域名 or 配置文件快速生成

    1. 自动域名:参考此文档,最后根据实际情况只需要修改域名值

    2. 配置文件快速生成:选择项目中的application.properties或者application.yml,通过配置文件,点击图标,可以快捷添加配置。

    projectLevelDomainConfig

    变量来源

    a. 针对带有环境名如`application-dev.properties`,插件将自动适配`-`与`.`之间的变量作为环境名。
    +b. 项目名来源于模块名
    +c. 域名=`http://localhost:port/context-path`
    +

    2.手动配置域名

    projectLevelDomainDialog

    点击项目级别域名手动输入对应的值

    上次编辑于:
    + + + diff --git a/guide/features/projectValueConfig.html b/guide/features/projectValueConfig.html new file mode 100644 index 000000000..1e172f177 --- /dev/null +++ b/guide/features/projectValueConfig.html @@ -0,0 +1,51 @@ + + + + + + + + + + 项目级别全局参数支持 | Fast Request + + + + + + + + + diff --git a/guide/features/quickAddHeader.html b/guide/features/quickAddHeader.html new file mode 100644 index 000000000..541c5acd4 --- /dev/null +++ b/guide/features/quickAddHeader.html @@ -0,0 +1,51 @@ + + + + + + + + + + 快速添加 header | Fast Request + + + + + + + + + diff --git a/guide/features/regenerate.html b/guide/features/regenerate.html new file mode 100644 index 000000000..9fee1c516 --- /dev/null +++ b/guide/features/regenerate.html @@ -0,0 +1,51 @@ + + + + + + + + + + 重新生成请求 | Fast Request + + + + + + + + + diff --git a/guide/features/saveRequest.html b/guide/features/saveRequest.html new file mode 100644 index 000000000..764751fb4 --- /dev/null +++ b/guide/features/saveRequest.html @@ -0,0 +1,57 @@ + + + + + + + + + + 保存请求 | Fast Request + + + + + +
    跳至主要內容

    保存请求


    保存请求

    特别说明

    API 取名:如果 api 使用了 swagger 注解 @ApiOperation("xxx"),则 api 取名 xxx,如果没加 swagger 注解,则使用 javadoc 作为 api 的名称,否则将取名 New Request

    if (@ApiOperation("xxx"))
    +    apiName = xxx
    +else if(java doc)
    +    apiName = java doc
    +else
    +    apiName = New Request
    +

    example_download

    上次编辑于:
    + + + diff --git a/guide/features/script.html b/guide/features/script.html new file mode 100644 index 000000000..73d4c1571 --- /dev/null +++ b/guide/features/script.html @@ -0,0 +1,51 @@ + + + + + + + + + + 脚本 | Fast Request + + + + + + + + + diff --git a/guide/features/searchEveryWhere.html b/guide/features/searchEveryWhere.html new file mode 100644 index 000000000..2d6317359 --- /dev/null +++ b/guide/features/searchEveryWhere.html @@ -0,0 +1,56 @@ + + + + + + + + + + SearchEveryWhere | Fast Request + + + + + + + + + diff --git a/guide/features/settingManager.html b/guide/features/settingManager.html new file mode 100644 index 000000000..8231709d6 --- /dev/null +++ b/guide/features/settingManager.html @@ -0,0 +1,51 @@ + + + + + + + + + + 管理配置 | Fast Request + + + + + + + + + diff --git a/guide/features/shareApiDoc.html b/guide/features/shareApiDoc.html new file mode 100644 index 000000000..64ffeac07 --- /dev/null +++ b/guide/features/shareApiDoc.html @@ -0,0 +1,51 @@ + + + + + + + + + + API 文档分享 | Fast Request + + + + + +
    跳至主要內容

    API 文档分享


    API 文档分享

    请注意 word 形式的 API 内部采用 html 来实现的,所以不要觉得奇怪,导出就行

    Response Example 需要运行你的 API 后才会被显示

    shareDocButton

    apiDocExample

    上次编辑于:
    + + + diff --git a/guide/features/stopRequest.html b/guide/features/stopRequest.html new file mode 100644 index 000000000..88d994027 --- /dev/null +++ b/guide/features/stopRequest.html @@ -0,0 +1,51 @@ + + + + + + + + + + 终止 API 请求功能 | Fast Request + + + + + + + + + diff --git a/guide/features/swaggerDefaultValueParse.html b/guide/features/swaggerDefaultValueParse.html new file mode 100644 index 000000000..dc2e9d0da --- /dev/null +++ b/guide/features/swaggerDefaultValueParse.html @@ -0,0 +1,96 @@ + + + + + + + + + + Swagger 默认值 | Fast Request + + + + + +
    跳至主要內容

    Swagger 默认值


    Swagger 默认值

    版本要求: 2022.1.4.0

    已下是一些 example

    优先级: swagger 配置的值 > 配置默认值

    swagger2
    * @ApiParam
    +
    +@GetMapping(value="/test/{id}")
    +public String test3(@ApiParam(name = "id",example="2") @PathVariable("id") Integer id) {
    +    return "";
    +}
    +
    +@GetMapping(value="/test/{id}")
    +public String test3(@ApiParam(name = "id",defaultValue="2") @PathVariable("id") Integer id) {
    +    return "";
    +}
    +
    +
    +* @ApiImplicitParam
    +
    +@ApiImplicitParams({
    +    @ApiImplicitParam(paramType="query",name="pageNo",dataType="String",required=true,value="pageNo",defaultValue="1"),
    +    @ApiImplicitParam(paramType="query",name="pageSize",dataType="String",required=true,value="pageSize",defaultValue="10")
    +})
    +@GetMapping(value="/testPage)
    +public String testPage(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize) {
    +    return "";
    +}
    +
    +
    +* @ApiModelProperty
    +@Data
    +public class UserDto {
    +    @ApiModelProperty(example = "Bob")
    +    private String userName;
    +}
    +
    上次编辑于:
    + + + diff --git a/guide/features/tempRequest.html b/guide/features/tempRequest.html new file mode 100644 index 000000000..41c23e116 --- /dev/null +++ b/guide/features/tempRequest.html @@ -0,0 +1,51 @@ + + + + + + + + + + 临时请求保存支持 | Fast Request + + + + + + + + + diff --git a/guide/getstarted/dataMapping.html b/guide/getstarted/dataMapping.html new file mode 100644 index 000000000..a3c51e5ab --- /dev/null +++ b/guide/getstarted/dataMapping.html @@ -0,0 +1,53 @@ + + + + + + + + + + 类型映射 | Fast Request + + + + + +
    跳至主要內容

    类型映射


    自定义类型映射

    场景: 分页实体类 com.baomidou.mybatisplus.extension.plugins.pagination.Page 中有 n 个属性,但是我只需要 sizecurrent

    自定义类型映射一共需要设置 2 个值,即解析的类型以及对应的模板值。

    Java Type 为对应的对象类型,必须是包含包名和类名

    com.baomidou.mybatisplus.extension.plugins.pagination.Page
    +

    Default value 必须是 JSON 格式

    { "size": 10"current": 1 }
    +

    custom data mapping

    默认类型映射

    该配置决定 Java 基础类型解析成对应的值,支持修改

    default data mapping

    忽略类型映射

    该配置决定对应的类是否解析,需要配置全路径(packageName+className)

    ignore data mapping

    上次编辑于:
    + + + diff --git a/guide/getstarted/icon.html b/guide/getstarted/icon.html new file mode 100644 index 000000000..827dfa013 --- /dev/null +++ b/guide/getstarted/icon.html @@ -0,0 +1,51 @@ + + + + + + + + + + 类型 Icon 映射 | Fast Request + + + + + + + + + diff --git a/guide/getstarted/index.html b/guide/getstarted/index.html new file mode 100644 index 000000000..d8a14d5cd --- /dev/null +++ b/guide/getstarted/index.html @@ -0,0 +1,51 @@ + + + + + + + + + + Getstarted | Fast Request + + + + + + + + + diff --git a/guide/getstarted/otherConfig.html b/guide/getstarted/otherConfig.html new file mode 100644 index 000000000..f37e139a3 --- /dev/null +++ b/guide/getstarted/otherConfig.html @@ -0,0 +1,56 @@ + + + + + + + + + + 其他配置 | Fast Request + + + + + +
    跳至主要內容

    其他配置


    控制器上的 url 固定变量可以由配置替换,例如类控制器上 url 写法如下:

    @RequestMapping("/api/${api-module}/user")
    +@Controller
    +public class XxxController(){
    +  //code ...
    +}
    +

    实际的 url 是 /api/base/user,那么可以通过以下配置来替换 ${api-module} 变量

    other config

    上次编辑于:
    + + + diff --git a/guide/getstarted/projectEnv.html b/guide/getstarted/projectEnv.html new file mode 100644 index 000000000..4f222a029 --- /dev/null +++ b/guide/getstarted/projectEnv.html @@ -0,0 +1,51 @@ + + + + + + + + + + 项目/环境/域名 | Fast Request + + + + + +
    跳至主要內容

    项目/环境/域名


    建议

    建议使用 项目级别域名配置,原来的配置将作为全配置配置,并且优先级小于项目级别配置。

    使用项目级别配置的好处是当项目多的时候,下拉框选项将减少(排除了其他项目的配置),只取本项目级别域名与全局域名配置的交集。

    设置映射关系,配置对应项目下对应环境的 url 前缀地址

    project env url

    • 图标 P 含义为 Project
    • 图标 E 含义为 Environment

    dropdownProject

    dropdownEnv

    上次编辑于:
    + + + diff --git a/guide/getstarted/shortcut.html b/guide/getstarted/shortcut.html new file mode 100644 index 000000000..d3ac31958 --- /dev/null +++ b/guide/getstarted/shortcut.html @@ -0,0 +1,51 @@ + + + + + + + + + + 快捷键 | Fast Request + + + + + + + + + diff --git a/guide/getstarted/start.html b/guide/getstarted/start.html new file mode 100644 index 000000000..233243246 --- /dev/null +++ b/guide/getstarted/start.html @@ -0,0 +1,51 @@ + + + + + + + + + + 快速开始 | Fast Request + + + + + +
    跳至主要內容

    快速开始


    如果您已经熟悉 Fast Request的基本操作,那么您可以直接转入到功能介绍页

    付费版
    1. 点击在方法左侧的 fastRequest 的图标
    2. 如果自动域名的结果不符合预期,则在Project 级别域名配置里面修改域名
    3. 点击发送请求按钮发送请求

    视频教程↓↓↓

    更多视频教程

    🤝 联系我们

    如果遇到了问题,请通过以下方式联系我们,将会有更快为你解决问题,同时群里全部都是 Javaer,经常会讨论一些技术问题,热点新闻,跳槽,吐槽等,可以帮助你学到一些东西。

    微信技术群twitteropen in new window
    wechat grouptwitter
    如果扫码失败请直接搜微信号 FastRequest99欢迎关注官方 Twitter
    上次编辑于:
    + + + diff --git a/guide/getstarted/stringGenerationStrategy.html b/guide/getstarted/stringGenerationStrategy.html new file mode 100644 index 000000000..c0a593d4c --- /dev/null +++ b/guide/getstarted/stringGenerationStrategy.html @@ -0,0 +1,51 @@ + + + + + + + + + + String 生成策略 | Fast Request + + + + + + + + + diff --git a/guide/history.html b/guide/history.html new file mode 100644 index 000000000..d23646c55 --- /dev/null +++ b/guide/history.html @@ -0,0 +1,158 @@ + + + + + + + + + + 最新变化 | Fast Request + + + + + +
    跳至主要內容

    最新变化


    公告

    收费版 VS 免费版

    购买License流程请参考购买插件 或者进入微信群里查看群公告,Issue 提报请到Githubopen in new window

    微信技术群插件开发技术群
    wechat group插件开发技术群
    如果扫码失败请直接搜微信号FastRequest99开发出类似的iBlogopen in new windowBean Assistantopen in new window
    的插件教学,如果你也想开发插件请进群

    由于开发版本仍在开发中,开发版本的文档可能不完全准确,因此可能会发生变化。

    2024.1.7 免费试用 开发中... IDEA 2023.3+

    • 函数与变量支持代码补全
    • JSON filter支持
    • Header 常用值支持代码补全
    • 文件默认值支持
    • SearchEveryWhere 结果排序优化
    • Script界面优化
    • Map 解析优化
    • 若干已知问题优化

    函数与变量支持代码补全 重要功能

    支持变量 {{xx}}{@函数名}的代码补全

    函数支持更多信息请参考---->函数

    JSON filter支持 新功能

    jsonFilter

    当 JSON 字段较多,但是只需要一部分的时候,可以通过该功能对 JSON进行字段过滤

    Header 常用值支持代码补全 新功能

    header

    对于一些例如 Authorization 的请求头支持代码补全

    文件默认值支持 新功能

    jsonFilter

    Multipart 类型字段可以通过该配置设置默认文件路径

    SearchEveryWhere 结果排序优化 优化

    searchEveryWhere

    按照Url 路径优化了匹配的排序规则,将匹配度高的排在前面

    2024.1.6.3 免费试用 最新版 2024-08-15 IDEA 2022.3+

    • 兼容 IDEA 2024.2+

    2024.1.6.2 免费试用 2024-07-30 IDEA 2022.3+

    • 组合注解支持
    • 消息提示优化
    • 前置脚本执行后无法在当前请求获取到数据

    组合注解支持 新功能

    针对如下类型的自定义 RestController 注解在 Controller 类中的扫描支持

    @Target(ElementType.TYPE)
    +@Retention(RetentionPolicy.RUNTIME)
    +@Documented
    +@RestController
    +@RequestMapping
    +public @interface CustomRestController {
    +
    +    @AliasFor(annotation = RequestMapping.class)
    +    String name() default "";
    +
    +    @AliasFor(annotation = RequestMapping.class)
    +    String[] value() default {};
    +}
    +

    2024.1.6 免费试用 2024-06-24 IDEA 2022.3+

    • 多 Tab 窗口
    • Apis 标记
    • Apis 与 Navigate 标签页 Url 复制
    • Json path
    • Url生成支持继承BaseController是接口
    • 修复了一些已知 bug

    多 Tab 窗口 重要功能

    rapi文件打开展现调试界面,支持多 Tab 打开。更多请查阅多 Tab 窗口

    Apis 标记 新功能

    增加了对 Apis 标签页中对 Api 的标记支持,使其标记红色高亮圆点,并增加了标记 Api 搜索。 可将一些常用的 Api 标记,便于后续的查找。

    Apis 与 Navigate 标签页 Url 复制 新功能

    右键选项支持复制原始 Url

    Json path 新功能

    jsonPath

    Body->RawResponse->Pretty tab下支持 Json 路径查找,但是这依赖于 JSONPathopen in new window 插件.

    2024.1.5.1 免费试用 2024-05-16 IDEA 2022.3+

    • 实体类解析

    2024.1.5 免费试用 2024-05-14 IDEA 2022.3+

    • 脚本增加 Add script library支持
    • 类型下拉框优化
    • 原始url展示优化
    • Apifox目录同步优化
    • Url输入框样式优化
    • 参数 Tab 自动跳转优化
    • cUrl 同一 url 匹配 method type优化
    • Api doc同步成功但是提示报错

    脚本增加 Add script library支持 新功能

    提示脚本库增加 library 支持,使得具备 Code completionopen in new window 功能

    类型下拉框优化 优化

    下拉框使用更加明确的英文类型,并使用不同颜色区分不同的类型

    原始url展示优化 优化

    调试界面 Url 输入框和 APIs 界面 url 展示成原始 url,不对路径参数进行替换。

    cUrl 同一 url 匹配 method type优化 优化

    针对匹配到的 url 一样,但是方法的类型(Get、Post等)不一样的绑定配对进行了优化,使得他们可以正确的匹配。

    2024.1.4 免费试用 2024-04-08 IDEA 2022.3+

    • Apifox 集成
    • AI支持优化
    • 变更 moduleHeader 为 apiHeader
    • cURL导入优化
    • 实体解析优化
    • 兼容 IDEA 2024
    • API 导出文件后缀错误

    Apifox 集成 重要功能

    Apifox集成,支持同步 API、环境变量、域名信息等。只要配置一个 API key,并设定项目映射关系即可进行同步。

    更多信息请点击 Apifox 集成

    Bilibili视频教程open in new window

    AI支持优化 重要功能

    AI

    为了将 AI 的回复更加精准,我们将 AI 的 设置更加精细化,加入了3个维度,加入了概述提问范例提问范例结果。此设计即让 AI 先训练一次问答,从而使得结果更加符合预期

    我们可以在概述中尽量表述问题的各种可能,并在提问范例提问范例结果中给于概述中描述的样本。

    以下是一个让 AI 帮忙优化 JSON 报文的案例,更多详情请参考 AI

    概述
    你是一位优秀的 JSON 处理程序。每当用户向您发送 JSON 时,您都应该以固定的 JSON 格式响应用户,并根据
    +JSON 键的含义将 JSON 字段中的值替换为人类可读的内容。您只需修改 JSON 中的值,而无需更改其结构。
    +

    变更 moduleHeader 为 apiHeader 优化

    Header

    1. 前置、后置脚本中的变量 moduleHeader 变更 为apiHeader
    2. 主界面 Header 选项卡作用域变更为仅面向 API 级别, 即每个 API 可以拥有不同的 Header,如果需要公共 Header,请前往项目级别 Header 设置。

    cURL导入优化 优化

    在去除域名后,如果 Url 与项目中方法的 Url 一致则自动绑定。

    2024.1.3 免费试用 2024-03-04

    • AI支持优化
    • 超大响应结果性能优化
    • Map入参类型解析优化
    • windows系统下载文件无响应

    AI支持优化 重要功能

    增加了 OpenAi、CodeGeeX、自定义三种形式的 AI 支持,通过可配置化的指令,可将选中的文本替换成目标文本。

    可以在 Body -> JSON, Body -> Form URL-Encoded -> Text,URL Params -> Text 3个 Tab 下操作。

    2024.1.2.1 免费试用 2024-01-24

    • 点击send and download无响应

    2024.1.2 免费试用 2024-01-19

    • 自定义工具栏

    自定义工具栏 重要功能

    customToolbar

    使用自定义工具栏,选择自己需要使用的功能,将其他功能按钮进行隐藏,设置完成需要重启 IDEA

    2024.1.1 免费试用 2024-01-15

    • SearchEveryWhere 支持类名搜索
    • .fastRequest目录生成策略
    • 忽略字段名解析支持
    • Apis,Navigate弹框打开支持
    • 手动更新检测
    • Content-Disposition支持优化
    • SearchEveryWhere性能优化
    • Navigate中的api加载性能优化
    • Markdown文档批量api导出增加返回值文档
    • 集合泛型解析错误

    SearchEveryWhere 支持类名搜索 重要功能

    searchEveryWhere

    输入 Url 所在的类名,即可搜索该类下面的所有 API

    .fastRequest目录生成策略 重要功能

    默认打开 Project 不再生成.fastRequest目录,只有操作插件才生成

    忽略字段名解析支持 新功能

    ignoreFiled

    只需要在配置中增加字段名,即可将实体类中的特定字段忽略生成

    Apis,Navigate弹框打开支持 新功能

    可以通过快捷键快速打开 Apis 和 Navigate 窗口查看信息, 窗口打开的情况下再按 ESC 可以关闭窗口

    手动更新检测 新功能

    manualUpdateCheck

    点击检查插件更新

    SearchEveryWhere性能优化 优化

    优化了SearchEveryWhere搜索逻辑,大大提生大项目的搜索性能。我们测试了拥有 7000个 API 的项目,搜索响应非常快

    Content-Disposition支持优化 优化

    文件下载支持针对一下 2 种格式的支持,同时支持文件名转码

    Content-Disposition:attachment; filename*=UTF-8''fastRequest%20.txt
    +Content-Disposition:attachment; filename=fastRequest.txt
    +

    2023.2.3.1 免费试用 2023-12-20

    • JSON5 支持错误

    2023.2.3 免费试用 2023-12-19

    • API同步至Postman
    • 自动域名切换项目名下拉框自动切换
    • Environment重构
    • 项目域名添加优化
    • api文档同步触发在api保存的时候
    • 忽略字段使用 @fastRequestParseIgnore
    • SearchEveryWhere 兼容 idea2023.3
    • body中传非json报错
    • curl导入解析\'错误

    API同步至Postman 重要功能

    仅需配置Postman的token和对应workspace的ID即可将API云上传到Postman.享受fast request不支持的功能.

    由于历史原因,历史保存的持久化数据丢失了一部分字段,为了能够将同步至postman的数据更完整, 建议在插件postman配置中勾上保存后同步postman选项,通过保存操作来触发同步.

    更多详情参考Postman 同步

    自动域名切换项目名下拉框自动切换 新功能

    不同 Module 下的 API 生成参数的时候,如果开启了自动域名,自动切换项目名下拉框

    Environment重构 优化

    environment

    Environment区分为本地值(Current value)和共享值(Initial value)

    Initial value可以通过提交 .fastRequest/config/fastRequestCurrentProjectEnvironment.json 实现共享

    项目域名添加优化 优化

    projectName

    自动识别 module 名称作为下拉框选项,也可以自定义输入.

    忽略字段使用@fastRequestParseIgnore 优化

    针对实体类字段忽略解析,可以在注释中添加@fastRequestParseIgnore来实现,原来的注解@parseIgnore依然适用

    /**
    + * xxx description
    + * @fastRequestParseIgnore
    + */
    +private String someIgnoreField ;
    +

    2023.2.2 免费试用 2023-11-24

    • Markdown文档模板配置
    • JSON5支持
    • 兼容IDEA 2023.3
    • 历史请求显示错误

    Markdown文档模板配置 新功能

    提供了导出文档和Api在线文档的自定义格式实现.查看更多详情

    JSON5支持 新功能

    json5

    请求体JSON5格式支持,json字段注释支持

    2023.2.1.1 免费试用

    • Url输入框针对某些主题下的样式优化
    • 项目级别请求头保存错误

    2023.2.1 免费试用

    • UI简化
    • api文档支持保存和打开
    • bilibili视频教程直达
    • 自动域名优化
    • Map解析优化
    • show apis放入到右键菜单
    • 统计页面加入了版本号
    • 众多细节优化
    • url和curl拷贝有environment变量的时候url没替换变量
    • curl以form-urlencoded和-d形式导入解析错乱

    UI简化 新功能

    urlInputWithMethod

    将老版本横向的3个组件(method下拉框,url输入框,响应下拉框)简化为1个,并且移除响应下拉框.增加简捷度

    api文档支持保存和打开 新功能

    openDoc

    apis放入到右键菜单 优化

    openDoc

    统计页面加入了版本号 优化

    pluginVersion

    2023.1.9 免费试用

    • 快捷添加Environment变量
    • Environment使用界面增删改支持
    • Show apis快捷触发
    • Response新增Size属性
    • Api名称保存优化
    • 输入参数trim优化
    • 缩减JSON tab展示树大小从5M->2M
    • 发送请求移除默认请求头Accept-Language
    • curl拷贝form-data格式错误
    • 域名配置页修改回显逻辑错误

    快捷添加Environment变量 新功能

    quickAddEnvironmentVariable

    选中一行需要添加到环境变量的点击添加按钮,可以快捷将该变量保存到当前Env中

    Environment使用界面增删改支持 新功能

    environmentVariableEditRemoveModify

    Show apis快捷触发 新功能

    showApis

    在Controller中任意位置右键唤起 Generate,选择Show apis 即可展示当前控制器中的所有API

    Response新增Size属性 新功能

    responseSize.png

    Api名称保存优化 优化

    详看Bilibili视频讲解 -> IDEA插件Fast Request之API命名机制open in new window

    2023.1.8 免费试用

    • Environment
    • 方法描述截断
    • Instant类型解析
    • Windows系统APIs中目录删除

    Environment 新功能

    引入了 nvironment变量,详情

    方法描述截断 优化

    methodDescriptionLength

    针对方法名过于长,导致显示或者数据保存的时候方法描述过程,可以进行截断设置。例如SearchEveryWhere

    2023.1.7.1 免费试用

    • SearchEveryWhere增加自动生成策略
    • 主窗口弹出配置化
    • 参数解析
    • table托拉拽问题

    SearchEveryWhere增加自动生成策略 新功能

    searchEveryWhere

    选择自动生成后,即可回显或者自动生成API相关url及参数信息

    主窗口弹出配置化 优化

    设置->Request Fast Request->其他配置中增加了配置项动作触发时显示主工具窗口

    参数解析 优化

    针对入参为@RequestBody Set<String>set的解析优化,默认给字符串加双引号

    spring
    @PostMapping("test3")
    +public Set<String> test3(@RequestBody Set<String>set) {
    +    return set;
    +}
    +

    2023.1.7 免费试用

    • 全新扁平化图标
    • SearchEveryWhere加入过滤条件
    • 精简版http图标
    • 字段拷贝
    • 脚本片段插入优化
    • table与textarea优化
    • 自动域名解析优化
    • cUrl导入
    • 全屏操作
    • 参数解析
    • Gradle项目的模块名去除.main
    • SearchEveryWhere关键字带空格搜索
    • 众多操作细节优化
    • 批量导出api文档
    • 历史请求回显问题

    全新扁平化图标 新功能

    toolwindowNew

    SearchEveryWhere 加入过滤条件 新功能

    searchEveryWhere

    支持modulemethodTypelibrary搜索

    精简版 http 图标 新功能

    同时支持在 setting -> Restful Fast Request -> 使用精简http图标 修改

    方法名新图标老图标
    Getget_darkget_dark
    Postpost_darkpost_dark
    Deletedelete_darkdelete_dark
    Putput_darkput_dark
    Patchpatch_darkpatch_dark

    字段拷贝 新功能

    fieldDup

    支持字段行拷贝,key用-dup结尾标注。集合场景不变更key,开发者需要自行处理修改下标

    2023.1.6 免费试用

    • Header批量编辑
    • 后置脚本发起请求idea debug卡死

    Header 批量编辑 新功能

    batchEdit

    2023.1.5 免费试用

    • 编辑器图标位置
    • SearchEveryWhere样式错乱
    • URL变量替换

    编辑器图标位置 优化

    editorAction

    从原先按钮容易挡住文本的位置移至编辑器右上角

    SearchEveryWhere 样式错乱

    这个问题伴随了很多版本,该版本彻底修复了。SearchEveryWhere 不会出现 Tab 宽度变大而导致 Tab 显示不全

    2023.1.4.2 免费试用

    • 项目级配置域名编辑错误
    • headers分组加载错误

    2023.1.4.1 免费试用

    • 修复多模块项目自动域名找不到配置文件

    2023.1.4 免费试用

    • 自动域名
    • SearchEveryWhere支持搜索jar包中的url
    • Script项目级别头设置失败

    自动域名 新功能

    自动识别或增加一个默认的域名,---->详情

    2023.1.3.2 免费试用

    • 重量级更新:团队协作支持
    • OpenAI API接口优化字段支持
    • API与存储文件跳转
    • 项目配置刷新
    • rfr.currentModuleName支持
    • Api文档同步支持自定义分支
    • 工具栏
    • LocalDateTime、LocalDate、LocalTime解析优化
    • GET、POST、DELETE、PUT、PATCH图标
    • IDEA 2023.1 响应未格式化
    • Mapping为数组的时候URL随机生成
    • Kotlin字段注释未生成

    FAQ:安装过 2023.1.3 版本的数据丢失

    OpenAI API 接口优化字段支持 新功能

    AI

    利用OpenAI 接口open in new window,替换随机字段值。注意由于 API 是非结构向数据,所以返回的内容可能会有误差。

    API 与存储文件跳转 新功能

    jumpToJsonData

    API列表跳转到json

    实现 API 以及底层保存的 json 数据进行关联跳转

    项目配置刷新 新功能

    refreshProjectConfig

    配置文件更新后,UI 实现项目级别配置更新

    rfr.currentModuleName 支持 新功能

    脚本中用于获取当前 API 所属模块支持

    Api 文档同步支持自定义分支 优化

    apiSyncSupportBranch

    支持特定分支,因为有些情况下 master 被保护不允许 push

    工具栏 优化

    htoolbar

    vtoolbar

    toolbarSetting

    1. 垂直工具栏支持
    2. 按钮位置调整和折叠

    GET、POST、DELETE、PUT、PATCH 图标 优化

    toolbar

    对图标进行了圆角处理,并且调整了背景色

    2023.1.2 免费试用

    • 图片响应渲染
    • 年度报告
    • Url解析逻辑
    • cUrl导入
    • Url特殊字符编码
    • Url输入框回车事件
    • 移除窗口插件标题
    • jdk11+的idea版本中Patch请求失败
    • API名字保存错误

    图片响应渲染 新功能

    imageRender

    针对响应是图片的请求,自动渲染出图片,适合验证码场景

    年度报告 新功能

    annualReport

    统计了历年操作的数据,你是否要来PK一把。此处省略 1 个狗头

    Url 解析逻辑 优化

    优化了 url 针对变量拼接的最终结果,例如几个变量拼接最终计算出一个 url。

    插件将最终计算出 url=/test/a.htm

    public class MyConstant {
    +  public static final String MODULE_NAME = "a";
    +  public static final String DYNAMIC_WEB_SUFFIX = ".htm";
    +  public static final String REPAYMENT_REPAY = MODULE_NAME + DYNAMIC_WEB_SUFFIX;
    +}
    +@PostMapping(MyConstant.REPAYMENT_REPAY)
    +  public String test2() {
    +  return "";
    +}
    +

    cUrl 导入 优化

    1. 自动解析 query param 进入Url params tab 页
    2. json 解析优化
    3. 已知 bug 修复

    Url 特殊字符编码 优化

    针对带 query param 的 url 中的参数值待特殊字符进行了处理,不需要用户再额外进行特殊编码再传参

    Url 输入框回车事件 优化

    url 输入框点击回车,自动发送请求

    2023.1.1 免费试用

    • Yml和Properties文件的域名解析支持
    • 项目级别域名配置
    • 图标排版
    • 新UI工具窗口图标
    • 项目级别头参数可选
    • Cookie取值
    • 基础类型Swagger默认值解析
    • 数组不解析

    项目级别域名配置 新功能

    projectLevelDomainConfig

    projectLevelDomainDialog

    支持直接从ymlproperties配置文件快速配置域名,更多详情请查看 项目域名配置

    图标排版 优化

    对按钮进行了归类整理,让开发者更加容易找到和理解对应按钮的功能。

    新 UI 工具窗口图标 优化

    新 UI 下工具窗口图标清晰度进行了优化。

    2022.3.1 免费试用

    • 注释增加@fastRequestParseIgnore用来忽略字段解析
    • Script中增加rfr.currentDomain支持
    • 激活提示优化
    • Kotlin和Java混编导致Navigate加载api失败

    注释增加@fastRequestParseIgnore 用来忽略字段解析 新功能

    以下的代码,插件会忽略解析该字段,请使用@fastRequestParseIgnore

    /**
    + * xxx description
    + * @fastRequestParseIgnore
    + */
    +private String someIgnoreField ;
    +

    Script 中增加 rfr.currentDomain 支持 新功能

    在脚本中可以通过rfr.currentDomain获取当前作用的域名

    2022.2.9 免费试用

    • 兼容IDEA2022.2.4
    • 全局动画配置
    • 多Cookie值错误
    • 导航Navigate tab加载错误

    全局动画配置 优化

    animateConfig

    你可以在此关闭全局动画,如果关闭了,图标将不再动

    2022.2.8 免费试用

    • 自动适配下载
    • @RequestParam支持name解析
    • 检查更新报错

    下载文件适配 优化

    当 response 加了content-disposition:attachment,点击 send 自动适配下载

    v2022.2.7 免费试用

    • Api文档同步
    • Api文档显示返回值类型参数文档
    • 插件更新通知机制
    • 公共请求头
    • 全屏
    • 注释预览
    • 模块头一直被选中
    • 解析bug
    • body中传string参数报错

    Api 文档同步 新功能

    在线文档同步---->详情

    Api 文档显示返回值类型参数文档 新功能

    returnValueDoc

    插件更新通知机制 新功能

    upgradeNotice

    从显式的对话框改为通知,同时自动更新也修改为打开了,如果你想关闭,请到配置页面手动关闭它,但我建议开启它,这样子就可以及时接收到更新。

    需要注意的是,前一个版本的更新依然会是弹窗,这个版本以后就是消息通知机制了

    公共请求头 新功能

    commonHeader

    ---->详情

    全屏 新功能

    fullScreen

    ---->详情

    注释预览 优化

    fullScreen

    v2022.2.6 免费试用

    • 一键清除参数
    • API注释预览
    • 参数列根据key排序
    • Api文档导出新增required列
    • 优化内网检查更新延迟较长
    • 第一次打开工具窗口有短暂卡顿现象
    • 前置脚本多次打印

    一键清除参数 新功能

    clear 全局清空

    clearColumnValue 批量清空列值

    API 注释预览 新功能

    showCommentConfigshowCommentInClassshowCommentInNavigate

    参数列根据 key 排序 新功能

    sortColumn

    v2022.2.5.2 免费试用

    • 后置脚本无法清空

    v2022.2.5.1 免费试用

    • Console语法报错

    v2022.2.5 免费试用

    • 添加Console控制台
    • 添加打印语法支持
    • 内置变量rfr添加currentProjectName、currentEnvName属性
    • 从Javadoc读取注释
    • @RequestPart支持
    • 新增推特
    • 后置脚本在请求成功但响应是401不执行

    Console 支持 新功能

    console

    Console 帮助开发者打印一些你想要的信息

    更多信息请看-----> script->console

    内置变量 rfr 添加 currentProjectName、currentEnvName 属性 新功能

    可以使用这 2 个变量用于一些判断

    更多信息请看-----> script->内置变量->rfr

    从 Javadoc 读取注释 新功能

    console

    读取 Javadoc 形式的参数注释,适用于 path 参数以及 request param 是非实体类的参数

    新增推特 新功能

    有推特账号的请关注我,感谢

    twitterAction

    v2022.2.4.1 免费试用

    • 修复小屏EUAL协议无法显示同意按钮

    v2022.2.4 免费试用

    • 全新的Logo
    • 支持通过注释解析日期
    • 支持解析BaseController
    • 自动更新可配置化
    • 参数编码传参优化
    • Map不带泛型解析错误
    • 后置脚本删除添加头信息失败

    全新的 Logo 新功能

    开发者可以在下拉框里面自由选择并切换你想要的颜色,并且可以让它动起来(性能佳)

    支持通过 DateTimeFormat 注释解析日期 新功能

    dateTimeFormat

    支持解析 BaseController 新功能

    baseController

    自动更新可配置化 优化

    如果你不需要接收自动更新,则可以关闭,通过手动的形式更新(建议开启) autoUpdate

    v2022.2.3.1 免费试用

    • 修复参数无法清除的bug

    v2022.2.3 免费试用

    • 前置脚本
    • 后置脚本
    • 一键拷贝Url
    • 兼容IDEA2021.2.1+
    • RequestParam defaultValue属性解析
    • 点击按钮时触发表格单元格值更改
    • 关闭RFR工具窗口后点击火箭第一次url无法生成
    • Jax-rs PATCH支持

    脚本支持 新功能

    scriptProject

    scriptModule

    脚本可以让开发者更加灵活地、动态地、方便地修改请求过程的一些入参,以及响应的处理
    具体请参考-------> 脚本

    一键拷贝 Url 新功能

    copyUrl

    点击按钮时触发表格单元格值更改 优化

    2022.2.3 版本之前在输入表格中的参数时候,若光标还在表格内部,此时去点击操作按钮,某些场景下会报错或者值无法被修改,该问题在此版本得到解决

    老版本如何处理: FAQ:输入参数后调用 API 发现无效

    v2022.2.2 免费试用

    • 终止API请求功能
    • 批量导出API文档
    • 导出到Postman添加注释
    • 响应数据量巨大情况下卡顿优化
    • 某些场景下的体验和提示
    • 新UI及EAP下SearchEveryWhere报错
    • Multipart修改数字类型参数报错
    • 某些情况下历史请求删除操作报错

    终止 API 请求功能 新功能

    stopApi

    批量导出 API 文档 新功能

    batchExportApiDoc

    v2022.2.1 免费试用

    • API分组参数保存支持
    • 临时请求保存支持
    • cURL导入支持
    • Response Header展示
    • 添加对Url尾缀支持
    • 优化快捷键
    • 优化解析
    • 修复Word导出bug

    API 分组参数保存支持 新功能

    目的:一个 API 下保存不同组合的参数

    B 站教程open in new window

    原保存操作将默认归类到 Default 分组

    如何操作:输入参数后点击分组请求保存

    groupSave

    切换参数

    以下是 book 列表 3 种语言的查询

    apiParamGroup

    临时请求保存支持 新功能

    目的:保存任意不属于本项目的请求,用于临时调用,跟当前项目代码不关联

    临时请求保存的 Request 的 Url 必须以http或者https开头

    tempSave

    cURL 导入支持 新功能

    importByCurl

    请注意如果需要绑定方法,则需要将光标放置到方法名上

    Response Header 展示 新功能

    responseHeader

    添加对 Url 尾缀支持 新功能

    responseHeader

    目的:有些请求需要在 url 结尾加上.do

    优化解析 优化

    优化了List<Entity>的解析

    v2022.1.10 免费试用

    • 添加对历史请求预览的支持
    • 超时时间自定义设置
    • SearchEveryWhere支持方法注释搜索
    • 快捷键冲突优化
    • 文本编辑器字符显示光标定位优化
    • Curl输出格式优化
    • 优化@Consumes(APPLICATION_JSON)不生效问题(JAX-RS)

    添加对历史请求预览的支持 新功能

    history

    隐藏技能:双击记录可以展示详情

    超时时间自定义设置 新功能

    timeoutSetting

    默认: 60 秒

    SearchEveryWhere 支持方法注释搜索 优化

    searchEveryWhereDescription

    支持注释搜索 API

    优化 优化

    • 快捷键冲突优化
      • 将打开创建的三个快捷键统一加上了Shift
    • 文本编辑器字符显示光标定位优化
      • 文本编辑器生成字符串的时候默认聚焦到第一行

    v2022.1.9 免费试用

    • 工具窗口跳转增加快捷键
    • 添加自动添加Cookie支持
    • 响应raw中增加html预览
    • APIs列表视图优化
    • 忽略字段解析优化
    • 泛型参数解析支持
    • 完善项目全局参数
    • 修复编辑参数时同时按删除参数导致报错
    • 界面优化
    • 保存API插入顺序优化
    • 优化了导出预览

    工具窗口跳转增加快捷键 新功能

    toolwindowShortcut

    提供了快捷键可以快速跳转,可以在setting->Keymap中修改

    添加自动添加 Cookie 支持 新功能

    autoStoreCookie

    开启此配置,cookie 再自动存入项目全局参数中的cookies中,此配置默认开启

    响应 raw 中增加 html 预览 新功能

    rawHtmlPreview

    raw 中不再截断 html 返回类型的响应,同时可以对 html 进行预览

    忽略字段解析优化 优化

    • 忽略解析使用`@JsonIgnore`、`@JSONField(serialize = false)`注解的字段
    • 忽略解析`transient`关键字修饰的字段

    泛型参数解析支持 优化

    支持此类泛型参数解析

    @Data
    +public class CommonDTO<TR> implements Serializable {
    +    private String accessToken;
    +    private String appKey;
    +    private String clientId;
    +    private T data;
    +    private List<R> dataList;
    +}
    +
    +@PostMapping(value = "/apply")
    +public Integer loanApply(@RequestBody CommonDTO<BookTestDTO> req){
    +    return 1;
    +}
    +

    完善项目全局参数 优化

    projectConfigParam

    加入了URL ParamsURL-Encoded ParamsCookies

    优化 优化

    • 界面优化
      • 优化了 tab 间距(windows 下不正常)、背景颜色、个别突出的 tab 颜色等
    • 保存 API 插入顺序优化
      • 后保存的放在最上面

    APIs 列表视图优化 优化

    apisList

    渲染进行了优化,新保存的 api 图标会自动优化,历史保存的 api 可以右键进行选择变更

    v2022.1.8 免费试用

    • 项目级别全局参数支持
    • 优化响应数据快速添加到头
    • 优化cookie快速添加到头
    • Postman导出优化
    • 修复navigate树扫描bug
    • 修复了一些bug

    项目级别全局参数支持 新功能

    projectConfigParam

    支持项目级别内的全局参数,不受多模块影响

    配置优先级api头 > 项目级别全局请求头 > 全局请求头

    快速添加到头参数 优化

    add2projectConfig

    cookie2projectConfig

    原响应结果从添加到 全局请求头 变更为添加到 项目全局请求头,cookie 也是如此

    v2022.1.7 免费试用

    • Kotlin spring系列框架支持
    • 新增SearchEveryWhere范围搜索策略
    • 编辑器ToggleUseSoftWrap支持
    • 响应数据一键添加Global Header支持
    • 添加导航到当前方法的支持
    • 优化多模块下保存的API回显自动绑定项目

    Kotlin spring 系列框架支持 新功能

    kotlinSupport

    添加了 Kotlin 语言下,Spring 系列框架支持

    新增 SearchEveryWhere 范围搜索策略 新功能

    searchEveryWhereStrategy

    2022.1.7 版本默认可以搜索到 feign 或者 controller 中的 mapping

    默认搜索策略是根据注解来搜索的,再提供 2 种选项,如果在搜索过程中需要排除类似 feign 中的接口,可以通过去除 Interface 的勾选来处理.

    编辑器 ToggleUseSoftWrap 支持 新功能

    toggleUseSoftWrap

    响应数据一键添加 Global Header 支持 新功能

    add2GlobalHeader

    多模块项目下建议使用,因为 Add to Headers 只能添加到当前模块项目下

    添加导航到当前方法的支持 新功能

    navigate2CurrentMethod

    当你生成好方法的 url 以后,又切换到代码中的别的地方,然后又想开始调试该 API 方法,可以通过此功能快速定位到代码

    优化多模块下保存的 API 回显自动绑定项目 优化

    优化了多模块下下针对保存的 api 回显需要手动切换项目下拉框

    v2022.1.6 免费试用

    • 添加一键添加Cookie到Header的支持
    • 添加API分享Word和html的支持
    • 修复了Basic authorization没有携带Basic字符串
    • 移除了APIs标签下的拉拽功能

    添加一键添加 Cookie 到 Header 的支持 新功能

    addCookie2Header

    针对登录需要 Cookie 支持的,可以将响应中的 Cookie 快速添加到 Header 来实现

    添加 API 分享 Word 和 html 的支持 新功能

    shareApi

    请注意 word 形式的 API 内部采用 html 来实现的,所以不要觉得奇怪,导出就行

    v2022.1.5 免费试用

    • 添加对自动生成参数描述的支持
    • 添加一键生成API文档的支持
    • 添加单个类的API整体预览
    • 移除了Accept头上的text/html
    • 修复了一些bug

    添加对自动生成参数描述的支持 新功能

    paramDescription

    可选择性的对描述进行隐藏

    添加一键生成 API 文档的支持 新功能

    shareDocButton

    apiDocExample

    点击生成参数后,可通过分享直接生成 Markdown 文档

    添加单个类的 API 整体预览 新功能

    apiDocExample

    聚焦窗口后输入关键字可快速定位

    v2022.1.4 免费试用

    idea 版本 2021.3+

    • APIs导入导出支持
    • APIs支持直接运行
    • API请求增加超时设置
    • url生成优化之多url随机生成
    • 自动生成参数可选化
    • swagger注解默认值参数解析支持
    • 兼容idea 2022.1
    • SearchEveryWhere高亮优化
    • 对Send和Send and Download按钮进行了合并
    • APIs界面优化
    • Tab页API Navigate重命名Navigate
    • 使用引导上的细节优化
    • 修复了Light files should have PSI only in one project

    SearchEveryWhere 高亮优化 优化

    searchEveryWhereHighlight

    高亮展示搜索关键字,加快真实想要查找的 API 的查找速度,同时展示 api 对应的 javadoc

    APIs 导入导出支持 新功能

    exportImportApis

    增加对 APIs 的导入导出支持,利用改功能,你可以非常方便得将自己已有的 APIs 分享给别的开发者,或者导入到其他设备上的 IDEA

    更多详情请看 功能->APIs 导入导出

    APIs 支持直接运行 新功能

    runInApiManagement

    你可以在 APIs tab 页直接运行你保存的请求

    自动生成参数可选化 优化

    generateSwitch

    swagger 注解默认值参数解析支持 新功能

    增加了 swagger 注解默认值的解析,该功能对于入参的传递更加人性化

    • @ApiParam(swagger2)
    • @ApiImplicitParam(swagger2)
    • @ApiModelProperty(swagger2)
    • @Parameter(swagger3)
    • @Schema(swagger3)

    更多详情请看 功能->swagger 默认值解析支持

    对 Send 和 Send and Download 按钮进行了合并 优化

    mergeRunAndDownload 对按钮进行了合并,因为常见的操作都是非下载操作,减少了工具栏按钮个数,看上去更加简捷

    使用引导上的细节优化 优化

    help 我们在不同的操作窗口,增加?选项用来展示一些注意事项及操作指引,对于初次使用的用户,操作门槛更低

    并且随着版本的迭代,后续可能会加入更多的提示操作指引

    url 解析优化 优化

    历史逻辑只会取第一个 url 即 test1,考虑到实际使用中,有可能你需要的是另外一个 url,所以添加了随机支持

    以下 demo,url 将随着点击随机生成 /url1/test1,/url1/test2,/url2/test1,/url2/test2

    @RequestMapping({"url1","url2"})
    +@RestController
    +public class MultiUrlController {
    +    @GetMapping(value = {"test1","test2"})
    +    public Integer testUrl(){
    +        return 1;
    +    }
    +}
    +

    支持变量计算,以下 demo 将生成 /url/public/test1

    public class Constant {
    +    public static final String PUBLIC_URL = "/public";
    +}
    +@RequestMapping("url")
    +@RestController
    +public class MultiUrlController {
    +    @GetMapping(value = Constant.PUBLIC_URL + "/test1")
    +    public Integer testUrl(){
    +        return 1;
    +    }
    +}
    +

    Tab 页 API Navigate 重命名 Navigate 优化

    在工具窗口比较小的情况下,API Navigate 会被隐藏,为了在尽可能小的工具窗口展示更多内容,所以命名更加简短

    v2.1.3 免费

    • 参数特殊符号编码支持
    • curl 加入 global headers

    v2.1.2 免费

    • 添加对导出 api 到 Postman 的支持
    • 首次打开 idea 懒加载 API Navigate 树
    • SearchEveryWhere module 标识
    • Url 解析优化
    • API navigate tree 展示优化
    • API 保存分组优化
    • 全局请求头支持

    Url 解析优化 新功能

    支持以下 example 的解析

    不再需要单独配置 url replace config

    场景 1: url 是类常量引用
    @RequestMapping(Url1.URL_TEST)
    +@RestController
    +public class UrlTestController {
    +    private static final String URL= "xxx";
    +
    +    @GetMapping(value = URL)
    +    public Integer testUrl(){
    +        return 1;
    +    }
    +}
    +

    添加对导出 api 到 Postman 的支持 新功能

    export2postman

    SearchEveryWhere module 标识 新功能

    searchEveryWhereModule

    API 保存分组优化 新功能

    保存api的时候,api将会保存到对应的请求指定到控制器名所在的分组(更加直观)
    +

    save2ControllerGroup

    全局请求头支持 新功能

    globalRequestHeader

    v2.1.1 免费

    • SearchEveryWhere 支持
    • 增加一个最新按钮可以随时查看最新版本
    • 优化枚举的解析
    • 增加对 http 重定向的支持

    SearchEveryWhere support 新功能

    输入案例
    +/url              (查询指定url)
    +get /list         (指定get方式指定url)
    +post /save        (指定post方式指定url)
    +

    searchEveryWhere

    最新版本快速查看 优化

    whatsnewNotifcation

    v2.1.0.2 免费

    v2.1.0.1 免费

    • 修复 Get 参数错误

    v2.1.0 免费

    • 修复 POST 形式的 API 中@RequestBody、@RequestParam 混合使用参数解析导致请求 400 异常
    • 对嵌套类的解析支持
    • 增加支持对控制器类级别@RequestMapping(path="/xxx")path 的解析
    • Api tree 针对带@RequestMapping 类的扫描支持

    v2.0.9 免费

    • 2021.3+版本修复"Slow operations are prohibited on EDT"
    • 修复快速从 response 添加 Headers
    • 添加项目级别的配置,切换项目 env 和 project 不受变化
    • 文本编辑器添加了快捷格式化按钮

    从 response 添加 Headers 新功能

    如果你的api需要再header里面塞入token,你可以像这样子从响应里面快速加参数塞入headers
    +

    format

    文本编辑器添加了快捷格式化按钮 新功能

    format

    v2.0.8.1 免费

    • 修复 searchEveryWhere 冲突警告
    • 调整低版本 idea 工具栏操作按钮至工具栏顶部位置
    • 移除多余依赖,插件从 11.1M 降至 5.9M

    v2.0.8 免费

    • 修复初次添加项目或环境 npe
    • json 树响应字符渲染最大限制
    • 添加 Api navigate 对 methodType 的支持
    • 添加对忽略参数解析的支持
    • 线程导致的 EDT 问题
    • send/sendDownload 支持自定义快捷键
    • 修复 2021.3 响应不显示

    send/sendDownload 支持自定义快捷键 新功能

    快捷键在任意位置点击均可触发,不再需要聚焦到工具窗口
    +

    shortcutSendAndDownload

    添加 Api navigate 对 methodType 的支持 新功能

    shortcutSendAndDownload

    v2.0.7 免费

    • 添加 API 导航树
    • 添加 Headers 随项目和环境切换自动切换的支持
    • 优化 windows 系统某些情况下下载文件无法弹出目录
    • 优化@RequestParam 的参数解析
    • 优化工具窗口 project 和 env 下拉组件及布局
    • curl 拷贝提示优化
    • regenerate 提示优化
    • 删除 project 和 env 配置增加确认操作
    • 修复 json 字段输出循序被打乱
    • 将发送请求按钮至工具栏同时支持快捷键

    API 导航树 新功能

    选中树输入关键字,再按回车或者鼠标左键双击即可定位到API
    +
    +悬浮鼠标显示api的doc
    +

    apinavi

    Headers 自动切换 新功能

    场景:SpringBoot等多模块项目不同项目、不同环境下头参数不同,为了快速自动切换headers,引入了header分组
    +操作方式:
    +1.在headers group里修改约束:输入的值必须是标准json格式
    +2.直接切换环境,然后再headers表格中输入对应的key、value值
    +

    headerSwitch

    优化@RequestParam 的参数解析 新功能

    @RequestParam 注解的参数将优先按照别名
    @RequestParam("nameAlias")List<String> nameList 输入参数将变成 nameAlias

    将发送请求按钮至工具栏同时支持快捷键 新功能

    send request: alt =
    +send and download: alt -
    +前提条件:工具窗口需要被聚焦
    +

    toolbarSend

    优化工具窗口 project 和 env 下拉组件及布局 新功能

    图标p代表project
    +图标e代表environment
    +

    dropdownProject

    dropdownEnv

    v2.0.6 免费

    • Fix "Light files should have PSI only in one project"
    • 添加对 json 的语法支持
    • 添加对 PATCH 的支持
    • 添加 API 保存时候存入对应的模块分组的支持
    • 修复响应中 null 值不输出的问题
    • 添加对 JAX-RS 的支持
    • 最新功能展示

    在不影响使用的情况下,有时候会经常弹出Light files should have PSI only in one project.2.0.6 版本得到修复

    json 语法支持 新功能

    json

    添加 API 保存时候存入对应的模块分组的支持 新功能

    apiGroup

    同时模块支持快速搜索 apiGroup

    JAX-RS 的支持 新功能

    apiGroup

    最新功能展示 新功能

    只会展示一次 apiGroup

    v2.0.5 免费

    • JSON 内置编辑器支持
    • 修复全选参数框隐藏问题
    • 修复 API 回显 Headers 参数异常
    • 优化了请求进度条显示

    v2.0.4 免费

    • 修复因 response 内容过道导致的界面错乱问题
    • Response json 超长显示优化
    • 优化图标尺寸
    • 中文文档迁移至 gitee

    v2.0.3 免费

    • 删除 API 的时候增加了确认
    • 添加了参数全选反选的功能
    • 修复诸如【@RequestParam(value="address[]") Set address】的参数解析
    • 修复快速添加 headers 界面错乱

    v2.0.2 免费

    • 修复项目多开情况下 A 请求显示到 B 项目
    • 修复@ResponseBody 修饰的数组与集合解析问题
    • 修复 List 参数无泛型解析问题
    • 添加对文件下载的支持
    • 发送请求时展示进度条
    • 全新的 document,点击工具栏 doc 图标
    • 一些优化

    v2.0.1 免费

    • rename from Fast Request to Restful Fast Request
    • Json、Form URL-Encoded、Multipart Tab 合并减小工具窗口宽度
    • 修复全局配置下修改配置报错
    • 将 get、post、delete、put 图标添加到保存的请求
    • 保存的请求支持更多搜索策略
    • tab 重命名 collection->APIs
    • YearMonth 解析支持

    v2.0.0 免费

    • 支持请求的存储
    • 支持参数可选
    • 优化了 UI
    • 修复了一些 bug
    上次编辑于:
    + + + diff --git a/guide/index.html b/guide/index.html new file mode 100644 index 000000000..10b3157f8 --- /dev/null +++ b/guide/index.html @@ -0,0 +1,51 @@ + + + + + + + + + + Guide | Fast Request + + + + + +
    跳至主要內容

    Guide


    + + + diff --git a/guide/install.html b/guide/install.html new file mode 100644 index 000000000..ff32a1734 --- /dev/null +++ b/guide/install.html @@ -0,0 +1,51 @@ + + + + + + + + + + 安装 | Fast Request + + + + + +
    跳至主要內容

    安装


    点击安装

    在线安装(推荐)

    IDEA 插件市场搜索 Restful Fast Request 并安装

    download

    离线安装

    适用内网使用或者体验版使用

    1. 前往 https://plugins.jetbrains.com/plugin/16988-restful-fast-request/versionsopen in new window 下载安装包
    2. 前往 setting → plugins → Install plugin from disk
    3. 选择下载好的安装包并重启 (请不要解压压缩包)

    installLocal

    EAP

    IDEA 版本 2021.2+

    eap 版本为抢先版本,可能会相对不大稳定,但是很多用户希望提前使用一些高级的功能,那么可以尝试使用.

    eap 版本需要先去下载对应的 eap 压缩包,安装请参考方式离线安装,忽略步骤 a

    前往下载open in new window

    注意

    使用 eap 版本的时候需要注意,一般低版本升级到高版本的 eap 不大会出什么问题,但是从高版本的 eap 版本降级到低版本的稳定版本,eap 版本中一些新的功能保存的数据, 可能会丢失

    上次编辑于:
    + + + diff --git a/guide/introduce.html b/guide/introduce.html new file mode 100644 index 000000000..5800860ce --- /dev/null +++ b/guide/introduce.html @@ -0,0 +1,54 @@ + + + + + + + + + + 简介 | Fast Request + + + + + +
    跳至主要內容

    简介


    twitteropen in new windowopen in new windowopen in new windowJetbrains Pluginsopen in new windowVersion Downloads JetBrains Plugins Slackopen in new window

    estful ast equestopen in new window 是一个类似于 Postman 的 IDEA 插件。它是一个强大的 restful api 工具包插件,可以根据已有的方法帮助您快速生成 url 和 params。 Restful Fast Request = API调试工具 + API管理工具 + API搜索工具。 它有一个漂亮的界面来完成请求、检查服务器响应、存储你的 api 请求和导出 api 请求。插件帮助你在 IDEA 界面内更快更高效得调试你的 API

    对比于 HTTP Client,Fast Request 不仅拥有 HTTP Client 内置的功能,还提供了友好易懂直观的界面,让使用者调试 API 的时候能够更加方便、简捷。同时各种类型参数也提供了不同的定制方式,更加灵活。而且集成了搜索、Postman 集成,Swagger 支持等额外的功能。

    宗旨

    插件的宗旨是为简化开发、提高效率而生,我们的愿景是成为 IDEA 最好的搭档,就像魂斗罗中的 1P、2P,基友搭配,效率翻倍。

    支持的框架

    Spring体系框架 (Spring MVC / Spring Boot)
    +JAX-RS
    +Kotlin Spring体系框架
    +
    API 工具对比

    建议

    如果有新版本出来,请尽快更新到最新的版本。(插件往往在升级过程中会加入新的功能或者修复你未发现的 bug)

    关于作者

    Kings

    Make it easier...faster...stronger...

    职务: 从事 java 软件开发。Restful Fast Request 作者、设计师、星推官

    🤝 联系我们

    如果遇到了问题,请通过以下方式联系我们,将会有更快为你解决问题,同时群里全部都是 Javaer,经常会讨论一些技术问题,热点新闻,跳槽,吐槽等,可以帮助你学到一些东西。

    微信技术群twitteropen in new window
    wechat grouptwitter
    如果扫码失败请直接搜微信号 FastRequest99欢迎关注官方 Twitter

    支持

    上次编辑于:
    + + + diff --git a/guide/java.html b/guide/java.html new file mode 100644 index 000000000..8336fef61 --- /dev/null +++ b/guide/java.html @@ -0,0 +1,51 @@ + + + + + + + + + + Java资源 | Fast Request + + + + + +
    跳至主要內容

    Java资源


    优秀博客社区

    在互联网上,有许多非常优秀的博客、论坛和网站,它们提供了丰富的信息资源和知识分享平台,可以帮助我们更好地了解和学习各种知识。

    大家可以根据自己的需求,进一步发掘和了解这些优秀的资源和平台,学到更多的技能。

    上次编辑于:
    + + + diff --git a/guide/link.html b/guide/link.html new file mode 100644 index 000000000..e9950e42c --- /dev/null +++ b/guide/link.html @@ -0,0 +1,52 @@ + + + + + + + + + + 友情链接 | Fast Request + + + + + +
    跳至主要內容

    友情链接


    vuepress-theme-hope
    一个具有强大功能的 vuepress 主题

    Restful Fast Request 首页的 logo 及背景由 森阳 提供,感谢她的创作,如果要插画和 logo 商业化合作小伙伴可以找她

    邮件:sssenyang@qq.com | 微信:ArtSenyang
    +

    Dromara 组织成员项目

    Hutool
    A set of tools that keep Java sweet.
    Sa-Token
    一个轻量级 java 权限认证框架,让鉴权变得简单、优雅!
    LiteFlow
    轻量,快速,稳定可编排的组件式规则引擎
    HertzBeat
    易用友好的开源实时监控系统
    Forest
    声明式HTTP客户端框架,减轻您的开发负担
    Easy-Es
    傻瓜级ElasticSearch搜索引擎ORM框架
    MaxKey
    业界领先的身份管理和认证产品
    Dynamictp
    基于配置中心的轻量级动态可监控线程池
    Gobrs-Async
    高性能多线程并发编程与动态编排框架
    Jpom
    简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件
    Northstar
    致力于降低量化交易门槛的程序化交易系统
    Mendmix
    开源分布式云原生架构一站式解决方案
    Sureness
    Focus on Protection of API
    Dante Cloud
    简洁优雅 · 稳定高效 | 宁静致远 · 精益求精
    x-easypdf
    一个用搭积木的方式构建pdf的框架
    image-combiner
    专门用于图片合成的工具
    TLog
    轻量级的分布式日志标记追踪神器
    Cubic
    一站式问题分析解决平台
    Easy-Trans
    一个注解搞定数据翻译,减少30%SQL代码量

    低代码

    Snowy Admin
    国内首个国密前后分离快速开发平台

    工具

    Stream-Query
    封装 热门orm常用操作 封装 使用stream进行数据返回处理
    上次编辑于:
    + + + diff --git a/guide/priceAdjust.html b/guide/priceAdjust.html new file mode 100644 index 000000000..67e82314f --- /dev/null +++ b/guide/priceAdjust.html @@ -0,0 +1,51 @@ + + + + + + + + + + 价格调整 | Fast Request + + + + + +
    跳至主要內容

    价格调整


    自 Restful Fast Request 推出订阅以来,我们从未提高过插件的价格,并且我们一直在不断地更新新的功能,速度相当快,甚至有些人都跟不上更新的节奏,到此为止我们一共迭代了 19 个版本,加了许多许多非常实用的功能,例如 API 文档同步,是一个性价比非常高的插件。 我们同时也为用户提供最低至六折的续费优惠(第二年八折),同时还有国内群折扣码,这也是我们感激长期使用的忠实用户的一种方式。

    然而,我们也到了需要提高订阅价格的时间节点。新价格将于 2023 年 1 月 1 日生效。个人版将从原来的$1/月调整至$1.9/月,组织版将从原来的$2/月调整至$2.9/月,年订阅价格是月订阅价格的 10 倍(按 10 个月收费)。

    在新价格生效前按当前价格预付订阅

    我们为新老客户调整了预付订阅的长度限制,开发者可以前往账户中心open in new window,按当前价格进行超过一年的提前续订。现在,个人订阅允许最多至三年,企业订阅最多至两年。

    2022-11-15 Kings

    上次编辑于:
    + + + diff --git a/guide/script.html b/guide/script.html new file mode 100644 index 000000000..6b9f094b2 --- /dev/null +++ b/guide/script.html @@ -0,0 +1,150 @@ + + + + + + + + + + 脚本 | Fast Request + + + + + +
    跳至主要內容

    脚本


    脚本的作用: 开发者可以利用 Groovy 脚本来自定义一些逻辑,从而使得 api 更加灵活,例如对参数进行动态加密签名,放入 header,而不是直接写死

    实现技术: Groovyopen in new window

    看到 Groovy 不熟悉请不要慌,语法和 Java 几乎一致(Java 就是香,手动一个狗头)

    脚本流程图

    测试项目

    https://github.com/kings1990/fast-request-samplesopen in new window

    内置变量

    注意

    开发者在自己编辑的脚本中,应该注意内置变量已被声明,而不是再去 new 一个 Request 或者 Response 对象,对象名是 request 或者 response,否则可能会造成不可预期的错误

    插件底层采用hutoolopen in new windowcn.hutool.http.HttpRequest来实现请求的发送

    request 2022.2.3️

    • 作用: 包含了请求相关的信息,例如 url、header、body、各种参数
    • 类型: cn.hutool.http.HttpRequest

    可以通过修改 request 值来动态调整参数

    response 2022.2.3️

    • 作用: 包含了请求响应的信息
    • 类型: cn.hutool.http.HttpResponse

    可以通过 response 值来获取响应的结果

    rfr 2022.2.3️

    • 作用: 包含了跟插件交互相关的一些属性,用于后期定制

    rfr.projectHeader 2022.2.3️

    作用: 包含了项目级别头,可以通过修改来动态往UI里面设置值
    +类型: java.util.LinkedHashMap<String,String>
    +

    rfr.apiHeader 2022.2.3️

    作用: 包含了模块级别头,可以通过修改来动态往UI里面设置值
    +类型: java.util.LinkedHashMap<String,String>
    +

    rfr.currentProjectName 2022.2.5️

    作用: 当前下拉框选择的项目名
    +类型: java.lang.String
    +

    rfr.currentEnvName 2022.2.5️

    作用: 当前下拉框选择的环境名称
    +类型: java.lang.String
    +

    rfr.currentDomain 2022.3.1️

    作用: 当前作用的域名
    +类型: java.lang.String
    +

    rfr.currentModuleName 2023.1.3️

    作用: 当前API的模块名
    +类型: java.lang.String
    +

    rfr.environment 2023.1.8

    作用: 当前环境的变量
    +类型: java.util.LinkedHashMap<String,String>
    +

    引入第三方 Jar

    内置的 Jar

    com.alibaba:fastjson:1.2.78
    +cn.hutool:hutool-all:5.8.5
    +com.google.guava:guava:30.1.1-jre
    +

    Jar 的版本会不定期更新,如果发现 bug 请联系作者要求作者升级

    开发者可以利用以上 3 个 Jar 所提供的工具方法,直接在脚本中引用,不需要再依赖第三方的 Jar(hutool 就是香,已经加入许多工具类)

    前往Demo查看如何获得Code completionopen in new window功能

    下载 jar 可能会需要花费额外的时间

    @Grab("org.apache.commons:commons-lang3:3.12.0")
    +import org.apache.commons.lang3.StringUtils
    +
    +String debug = request.header("debug")
    +if(StringUtils.isNotBlank(debug)){
    +    //some logic
    +}
    +
    //注意此处的file:前缀
    +this.class.classLoader.addURL(new URL("file:/path/to/jar"))
    +def StringUtils = Class.forName("org.apache.commons.lang3.StringUtils").getDeclaredConstructor().newInstance()
    +
    +String debug = request.header("debug")//获取header
    +if(StringUtils.isNotBlank(debug)){
    +    //some logic
    +}
    +

    作用范围与顺序

    分为项目级别单API级别,项目全局作用需要点击 项目级别全局参数支持 进行配置

    项目级别将作用项目中所有的 API,单 API 级别只作用于单个 API。

    执行顺序:项目级别->单API级别

    scriptScope

    Console 2022.2.5

    Console 帮助开发者打印一些你想要的信息

    console.info("info")
    +console.print("print info")
    +console.warn("warn")
    +console.success("success")
    +console.error("error")
    +
    +

    console

    Demo

    Code completion支持

    在项目中加入如下依赖(如果没有),即可在编辑器脚本中处理针对插件核心类的Code completionopen in new window功能(快速导入类(import)、得到方法提示等操作)

    1. 签名参数

    在你的本地新建一个 xxx.groovy 文件,粘贴以下代码,适当修改后,能保证本地可以正常运行,再把代码粘贴到脚本中

    • 注意最终脚本需要删除这行代码

    HttpRequest request = HttpUtil.createPost("http://localhost:8081/book/add")

    import cn.hutool.core.util.CharsetUtil
    +import cn.hutool.core.util.StrUtil
    +import cn.hutool.crypto.digest.DigestUtil
    +import cn.hutool.http.HttpRequest
    +import cn.hutool.http.HttpUtil
    +
    +//脚本逻辑正式开始
    +String body = StrUtil.str(request.bodyBytes(), CharsetUtil.CHARSET_UTF_8)
    +body = "xxxx"//just for test
    +String sign = DigestUtil.md5Hex(body)
    +request.header("sign",sign)
    +

    2. 利用某一个请求的响应充当请求的 Header 参数

    注意获取 token 的逻辑得结合接口返回的数据结构来处理。例如返回

    {
    +  "success": true,
    +  "code": 200,
    +  "data": {
    +    "token": "xxxxx"
    +  }
    +}
    +

    则需要这么写 JSON.parseObject(myResponse.body()).getJSONObject("data").getString("token")

    import cn.hutool.core.util.CharsetUtil
    +import cn.hutool.core.util.StrUtil
    +import cn.hutool.crypto.digest.DigestUtil
    +import cn.hutool.http.HttpRequest
    +import cn.hutool.http.HttpResponse
    +import cn.hutool.http.HttpUtil
    +import com.alibaba.fastjson.JSON
    +
    +HttpRequest myRequest = HttpUtil.createPost("http://localhost:8081/api/v1.0/login")
    +HttpResponse myResponse = myRequest.execute()
    +if(myResponse.isOk()){
    +    String token = JSON.parseObject(myResponse.body()).getString("token")
    +    request.header("token",token)
    +}
    +

    3. 设置一个Environment变量

    假定响应报文格式

    {
    +  "success": true,
    +  "code": 200,
    +  "data": {
    +    "token": "xxxxx"
    +  }
    +}
    +

    在后置脚本中植入以下代码

    import cn.hutool.core.util.CharsetUtil
    +import cn.hutool.core.util.StrUtil
    +import cn.hutool.crypto.digest.DigestUtil
    +import cn.hutool.http.HttpRequest
    +import cn.hutool.http.HttpResponse
    +import cn.hutool.http.HttpUtil
    +import com.alibaba.fastjson.JSON
    +
    +HttpRequest myRequest = HttpUtil.createPost("http://localhost:8081/api/v1.0/login")
    +HttpResponse myResponse = myRequest.execute()
    +if(myResponse.isOk()){
    +    String token = JSON.parseObject(myResponse.body()).getJSONObject("data").getString("token")
    +    rfr.environment.put("token",token)
    +}
    +

    注意点

    • Groovy 脚本对 ; 不敏感,Java 用;作为语句代码的结束,Groovy 用换行表示一句代码的结束
    • 内置变量已被申明,例如 Demo2 中需要额外新建一个请求,变量命名需要注意不能与内置变量相同

    脚本投稿 🌟

    为了将脚本做的更加强大,评论区开放社区脚本投递,欢迎将强大脚本通过下方留言 的形式上报,让更多人使用你开发的脚本

    • 格式
    /**
    + * 作者:Kings
    + * 主页:https://github.com/kings1990
    + * 功能:xxxxx
    + */
    +
    +//脚本内容
    +....
    +

    scriptDonate

    上次编辑于:
    + + + diff --git a/guide/sponsor.html b/guide/sponsor.html new file mode 100644 index 000000000..60fea395b --- /dev/null +++ b/guide/sponsor.html @@ -0,0 +1,51 @@ + + + + + + + + + + 赞助 | Fast Request + + + + + +
    跳至主要內容

    赞助


    优势

    1. 本软件下载量 Downloads
    2. 每次软件更新均会在软件内部推送更新链接,告知用户返回网站查看相关的更新日志
    3. 软件内部增设文档按钮可以快速返回网站首页,促使开发者前往网站查看功能
    4. 开发者也会让软件用户主动先去看文档,再提问

    综上因素,赞助者将在本站有更大机会得到曝光.

    为什么要赞助

    首页上墙需提供的资料

    提供 Logo(透明背景最佳、256×256px) 、链接、横向 logo(660*150px)、背景主页(宽度370px下显示清晰即可,提供超过尺寸的会被压缩)

    联系我们

    1. 扫码添加微信,添加好友时请备注:赞助
    2. 好友添加成功后请发送赞助支付截图
    上次编辑于:
    + + + diff --git a/guide/sponsorList.html b/guide/sponsorList.html new file mode 100644 index 000000000..182f735b7 --- /dev/null +++ b/guide/sponsorList.html @@ -0,0 +1,51 @@ + + + + + + + + + + 赞助列表 | Fast Request + + + + + + + + + diff --git a/guide/teachingVideo.html b/guide/teachingVideo.html new file mode 100644 index 000000000..77517bf1c --- /dev/null +++ b/guide/teachingVideo.html @@ -0,0 +1,51 @@ + + + + + + + + + + 视频教程 | Fast Request + + + + + + + + + diff --git a/guide/teamwork.html b/guide/teamwork.html new file mode 100644 index 000000000..a024a8e62 --- /dev/null +++ b/guide/teamwork.html @@ -0,0 +1,55 @@ + + + + + + + + + + 团队协作 | Fast Request + + + + + +
    跳至主要內容

    团队协作


    版本要求: 2023.1.3

    原理

    基于版本控制系统,共享部分配置以及API 数据

    特性

    零部署
    私有化
    不限人数
    不限 API 数
    不限项目数
    不限功能
    离线运转
    安全

    如何使用

    基于原理,所以当我们需要共享或者拉取别人的配置或者 API 时,假设我们利用 Git 作为我们的版本控制系统,我们只需要push即可共享配置和 API 数据,pull即可获取别人提交的配置和 API 数据。

    更新配置

    版本控制系统 pull 后,例如Git pull,点击刷新项目配置按钮,即可获取其他成员提交的配置

    refreshProjectConfig

    更新 API

    版本控制系统 pull 后,例如Git pull,点击 API 刷新按钮,即可获取其他成员提交的 API

    refreshProjectConfig

    本地文件存储结构

    插件会默认在项目根目录下创建一个 .fastRequest 的目录,API 存储在 collections 目录下,配置存储在 config 目录下,API 按照 模块->类名->API 的结构进行存储,每一个目录下存放一个 directory.json 文件,用于标识该目录。 其他 API 用方法的方法名.rapi进行存储,该文件可能会在版本控制系统中因为多方修改产生冲突,最终需要用户解决冲突,并满足标准的 json 以及数据结构。

    teamDirectory

    历史数据转移

    插件默认会进行一次历史数据转移,数据转移的时候(版本<=2023.1.3 的数据),如果你的数据在版本管理系统上未提交,则不需要关心历史数据。 如果版本管理系统其他人已提交 API,则会进行覆盖。 注意如果想看 API 历史数据,可以结合版本控制系统的文件历史记录来还原,也可以结合本地文件历史记录来还原。

    如果发现数据未转移,也可手动操作!

    transferData

    文件权限

    如果发现因为Permission denied导致的错误,执行以下指令

    Linux
    cd [current project root dir]
    +chmod -R 777 .fastRequest/*
    +
    上次编辑于:
    + + + diff --git a/guide/versionCompare.html b/guide/versionCompare.html new file mode 100644 index 000000000..cc7e260cf --- /dev/null +++ b/guide/versionCompare.html @@ -0,0 +1,51 @@ + + + + + + + + + + 版本对比 | Fast Request + + + + + +
    跳至主要內容

    版本对比


    收费版本将推出更多优秀并且人性化的功能,欢迎大家使用!

    免费版

    基础 API 调试插件

    IDEA 2020.3~2021.1.3基础使用
    上次编辑于:
    + + + diff --git a/guide/whatsnew.html b/guide/whatsnew.html new file mode 100644 index 000000000..ae45d1379 --- /dev/null +++ b/guide/whatsnew.html @@ -0,0 +1,51 @@ + + + + + + + + + + 历史变更 | Fast Request + + + + + +
    跳至主要內容

    历史变更


    公告

    插件版本 2022.1.4+即氪金版(但是你可以免费试用 30 天后再决定是否值得氪金),对比氪金版和免费有什么更强大的功能,只需要看更新日志>=2021.1.4+的,或者简单看一下以下的对比

    收费版 VS 免费版->

    购买License流程请参考购买插件 或者进入微信群里查看群公告

    Issue 提报请到Githubopen in new window

    微信技术群twitteropen in new window
    wechat grouptwitter
    如果扫码失败请直接搜微信号FastRequest99欢迎关注官方 Twitter

    important: 重要功能     feat: 新功能      perf: 优化      fix: 修复/移除

    由于开发版本仍在开发中,开发版本的文档可能不完全准确,可能会发生变化。

    务必查看变更详情----------------->

    2024.1.7 免费试用 开发中... IDEA 2023.3+

    • 函数与变量支持代码补全
    • JSON filter支持
    • Header 常用值支持代码补全
    • 文件默认值支持
    • SearchEveryWhere 结果排序优化
    • Script界面优化
    • Map 解析优化
    • 若干已知问题优化

    2024.1.6.3 免费试用 最新版 2024-08-15 IDEA 2022.3+

    • 兼容 IDEA 2024.2+

    2024.1.6.2 免费试用 最新版 2024-07-30 IDEA 2022.3+

    • 组合注解支持
    • 消息提示优化
    • 前置脚本执行后无法在当前请求获取到数据

    2024.1.6 免费试用 2024-06-24 IDEA 2022.3+

    • 多 Tab 窗口
    • Apis 标记
    • Apis 与 Navigate 标签页 Url 复制
    • Json path
    • Url生成支持继承BaseController是接口
    • 修复了一些已知 bug

    2024.1.5.1 免费试用 2024-05-16 IDEA 2022.3+

    • 实体类解析

    2024.1.5 免费试用 2024-05-14 IDEA 2022.3+

    • 脚本增加 Add script library支持
    • 类型下拉框优化
    • 原始url展示优化
    • Apifox目录同步优化
    • Url输入框样式优化
    • 参数 Tab 自动跳转优化
    • cUrl 同一 url 匹配 method type优化
    • Api doc同步成功但是提示报错

    2024.1.4 免费试用 2024-04-08 IDEA 2022.3+

    • Apifox 集成
    • AI支持优化
    • 变更 moduleHeader 为 apiHeader
    • cURL导入优化
    • 实体解析优化
    • 兼容 IDEA 2024
    • API 导出文件后缀错误

    2024.1.3 免费试用 2024-03-04

    • AI支持优化
    • 超大响应结果性能优化
    • Map入参类型解析优化
    • windows系统下载文件无响应

    2024.1.2.1 免费试用 2024-01-24

    • 点击send and download无响应

    2024.1.2 免费试用 2024-01-19

    • 自定义工具栏

    2024.1.1 免费试用 最新版 2024-01-15

    • SearchEveryWhere 支持类名搜索
    • .fastRequest目录生成策略
    • 忽略字段名解析支持
    • Apis,Navigate弹框打开支持
    • 手动更新检测
    • Content-Disposition支持优化
    • SearchEveryWhere性能优化
    • Navigate中的api加载性能优化
    • Markdown文档批量api导出增加返回值文档
    • 集合泛型解析错误

    2023.2.3.1 免费试用

    • JSON5 支持错误

    2023.2.3 Free trial

    • API同步至Postman
    • 自动域名切换项目名下拉框自动切换
    • Environment重构
    • 项目域名添加优化
    • api文档同步触发在api保存的时候
    • 忽略字段使用 @fastRequestParseIgnore
    • SearchEveryWhere 兼容 idea2023.3
    • body中传非json报错
    • curl导入解析\'错误

    2023.2.2 Free trial

    • Markdown文档模板配置
    • JSON5支持
    • 兼容IDEA 2023.3
    • 历史请求显示错误

    2023.2.1.1 免费试用

    • Url输入框针对某些主题下的样式优化
    • 项目级别请求头保存错误

    2023.2.1 免费试用

    • UI简化
    • api文档支持保存和打开
    • bilibili视频教程直达
    • 自动域名优化
    • Map解析优化
    • show apis放入到右键菜单
    • 统计页面加入了版本号
    • 众多细节优化
    • url和curl拷贝有environment变量的时候url没替换变量
    • curl以form-urlencoded和-d形式导入解析错乱

    2023.1.9 免费试用

    • 快捷添加Environment变量
    • Environment使用界面增删改支持
    • Show apis快捷触发
    • Response新增Size属性
    • Api名称保存优化
    • 输入参数trim优化
    • 缩减JSON tab展示树大小从5M->2M
    • 发送请求移除默认请求头Accept-Language
    • curl拷贝form-data格式错误
    • 域名配置页修改回显逻辑错误

    2023.1.8 免费试用

    • Environment
    • 方法描述截断
    • Instant类型解析
    • Windows系统APIs中目录删除

    2023.1.7.1 免费试用

    • SearchEveryWhere增加自动生成策略
    • 主窗口弹出配置化
    • 参数解析
    • table托拉拽问题

    2023.1.7 免费试用

    • 全新扁平化图标
    • SearchEveryWhere加入过滤条件
    • 精简版http图标
    • 字段拷贝
    • 脚本片段插入优化
    • table与textarea优化
    • 自动域名解析优化
    • cUrl导入
    • 全屏操作
    • 参数解析
    • Gradle项目的模块名去除.main
    • SearchEveryWhere关键字带空格搜索
    • 众多操作细节优化
    • 批量导出api文档
    • 历史请求回显问题

    2023.1.6 免费试用

    • header批量编辑
    • 后置脚本发起请求idea debug卡死

    2023.1.5 免费试用

    • 编辑器图标位置
    • SearchEveryWhere样式错乱
    • URL变量替换

    2023.1.4.2 免费试用

    • 项目级配置域名编辑错误
    • headers分组加载错误

    2023.1.4.1 免费试用

    • 修复多模块项目自动域名找不到配置文件

    2023.1.4 免费试用

    • 自动域名
    • SearchEveryWhere支持搜索jar包中的url
    • Script项目级别头设置失败

    2023.1.3.2 免费试用

    • 重量级更新:团队协作支持
    • OpenAI API接口优化字段支持
    • API与存储文件跳转
    • 项目配置刷新
    • rfr.currentModuleName支持
    • Api文档同步支持自定义分支
    • 工具栏
    • LocalDateTime、LocalDate、LocalTime解析优化
    • GET、POST、DELETE、PUT、PATCH图标
    • Mapping为数组的时候URL随机生成
    • Kotlin字段注释未生成

    2023.1.2 免费试用

    • 图片响应渲染
    • 年度报告
    • Url解析逻辑
    • cUrl导入
    • Url特殊字符编码
    • Url输入框回车事件
    • 移除窗口插件标题
    • jdk11+的idea版本中Patch请求失败
    • API名字保存错误

    2023.1.1 免费试用

    • Yml和Properties文件的域名解析支持
    • 项目级别域名配置
    • 图标排版
    • 新UI工具窗口图标
    • 项目级别头参数可选
    • Cookie取值
    • 基础类型Swagger默认值解析
    • 数组不解析

    2022.3.1 免费试用

    • 注释增加@fastRequestParseIgnore用来忽略字段解析
    • Script中增加rfr.currentDomain支持
    • 激活提示优化
    • Kotlin和Java混编导致Navigate加载api失败

    2022.2.9 免费试用

    • 兼容IDEA2022.2.4
    • 全局动画配置
    • 多Cookie值错误
    • 导航Navigate tab加载错误

    2022.2.8 免费试用

    • 下载文件适配
    • @RequestParam支持name解析
    • 检查更新报错

    v2022.2.7 免费试用

    • Api文档同步
    • Api文档显示返回值类型参数文档
    • 插件更新通知机制
    • 公共请求头
    • 全屏
    • 注释预览
    • 模块头一直被选中
    • 解析bug
    • body中传string参数报错

    v2022.2.6 免费试用 最新版

    • 一键清除参数
    • API注释预览
    • 参数列根据key排序
    • Api文档导出新增required列
    • 优化内网检查更新延迟较长
    • 第一次打开工具窗口有短暂卡顿现象
    • 前置脚本多次打印

    v2022.2.5.2 免费试用

    • 后置脚本无法清空

    v2022.2.5.1 免费试用

    • Console语法报错

    v2022.2.5 免费试用

    • 添加Console控制台
    • 添加打印语法支持
    • 内置变量rfr添加currentProjectName、currentEnvName属性
    • 从Javadoc读取注释
    • @RequestPart支持
    • 新增推特
    • 后置脚本在请求成功但响应是401不执行

    v2022.2.4.1 免费试用

    • 修复小屏EUAL协议无法显示同意按钮

    v2022.2.4 免费试用

    • 全新的Logo
    • 支持通过注释解析日期
    • 支持解析BaseController
    • 自动更新可配置化
    • 参数编码传参优化
    • Map不带泛型解析错误
    • 后置脚本删除添加头信息失败

    v2022.2.3.1 免费试用

    • 修复参数无法清除的bug

    v2022.2.3 免费试用

    • 前置脚本
    • 后置脚本
    • 一键拷贝Url
    • 兼容IDEA2021.2.1+
    • RequestParam defaultValue属性解析
    • 点击按钮时触发表格单元格值更改
    • 关闭RFR工具窗口后点击火箭第一次url无法生成
    • Jax-rs PATCH支持

    v2022.2.2 免费试用

    • 终止API请求功能
    • 批量导出API文档
    • 导出到Postman添加注释
    • 响应数据量巨大情况下卡顿优化
    • 某些场景下的体验和提示
    • 新UI及EAP下SearchEveryWhere报错
    • Multipart修改数字类型参数报错
    • 某些情况下历史请求删除操作报错

    v2022.2.1 免费试用

    • API分组参数保存支持
    • 临时请求保存支持
    • cURL导入支持
    • Response Header展示
    • 添加对Url尾缀支持
    • 优化快捷键
    • 优化解析
    • 修复Word导出bug

    v2022.1.10 免费试用

    • 添加对历史请求预览的支持
    • 超时时间自定义设置
    • SearchEveryWhere支持方法注释搜索
    • 快捷键冲突优化
    • 文本编辑器字符显示光标定位优化
    • Curl输出格式优化
    • 优化@Consumes(APPLICATION_JSON)不生效问题(JAX-RS)

    v2022.1.9 免费试用

    • 工具窗口跳转增加快捷键
    • 添加自动添加Cookie支持
    • 响应raw中增加html预览
    • APIs列表视图优化
    • 忽略字段解析优化
    • 泛型参数解析支持
    • 完善项目全局参数
    • 修复编辑参数时同时按删除参数导致报错
    • 界面优化
    • 保存API插入顺序优化
    • 优化了导出预览

    v2022.1.8 免费试用

    • 项目级别全局参数支持
    • 优化响应数据快速添加到头
    • 优化cookie快速添加到头
    • Postman导出优化
    • 修复navigate树扫描bug
    • 修复了一些bug

    v2022.1.7 免费试用

    • Kotlin spring系列框架支持
    • 新增SearchEveryWhere范围搜索策略
    • 编辑器ToggleUseSoftWrap支持
    • 响应数据一键添加Global Header支持
    • 添加导航到当前方法的支持
    • 优化多模块下保存的API回显自动绑定项目

    v2022.1.6 免费试用

    • 添加一键添加Cookie到Header的支持
    • 添加API分享Word和html的支持
    • 修复了Basic authorization没有携带Basic字符串
    • 移除了APIs标签下的拉拽功能

    v2022.1.5 免费试用

    • 添加对自动生成参数描述的支持
    • 添加一键生成API文档的支持
    • 添加单个类的API整体预览
    • 移除了Accept头上的text/html
    • 修复了一些bug

    v2022.1.4.0 免费试用

    • APIs导入导出支持
    • APIs支持直接运行
    • API请求增加超时设置
    • url生成优化之多url随机生成
    • 自动生成参数可选化
    • swagger注解默认值参数解析支持
    • 兼容idea 2022.1
    • SearchEveryWhere高亮优化
    • 对Send和Send and Download按钮进行了合并
    • APIs界面优化
    • Tab页API Navigate重命名Navigate
    • 使用引导上的细节优化
    • 修复了Light files should have PSI only in one project
    上次编辑于:
    + + + diff --git a/html/showside.html b/html/showside.html new file mode 100644 index 000000000..6dc527cfe --- /dev/null +++ b/html/showside.html @@ -0,0 +1,271 @@ + + + + + + diff --git a/html/showside_en.html b/html/showside_en.html new file mode 100644 index 000000000..8a491cbfc --- /dev/null +++ b/html/showside_en.html @@ -0,0 +1,283 @@ + + + + + + diff --git a/img/2022.2.1/apiParamGroup.png b/img/2022.2.1/apiParamGroup.png new file mode 100644 index 000000000..9c11afa74 Binary files /dev/null and b/img/2022.2.1/apiParamGroup.png differ diff --git a/img/2022.2.1/apiParamGroup_en.gif b/img/2022.2.1/apiParamGroup_en.gif new file mode 100644 index 000000000..234e21966 Binary files /dev/null and b/img/2022.2.1/apiParamGroup_en.gif differ diff --git a/img/2022.2.1/apiParamGroup_en.png b/img/2022.2.1/apiParamGroup_en.png new file mode 100644 index 000000000..665e93c33 Binary files /dev/null and b/img/2022.2.1/apiParamGroup_en.png differ diff --git a/img/2022.2.1/groupSave.png b/img/2022.2.1/groupSave.png new file mode 100644 index 000000000..f7333127e Binary files /dev/null and b/img/2022.2.1/groupSave.png differ diff --git a/img/2022.2.1/groupSave_en.png b/img/2022.2.1/groupSave_en.png new file mode 100644 index 000000000..fedd719bf Binary files /dev/null and b/img/2022.2.1/groupSave_en.png differ diff --git a/img/2022.2.1/importByCurl.gif b/img/2022.2.1/importByCurl.gif new file mode 100644 index 000000000..bc35f08e0 Binary files /dev/null and b/img/2022.2.1/importByCurl.gif differ diff --git a/img/2022.2.1/importByCurl.png b/img/2022.2.1/importByCurl.png new file mode 100644 index 000000000..d040df7c6 Binary files /dev/null and b/img/2022.2.1/importByCurl.png differ diff --git a/img/2022.2.1/importByCurl_en.gif b/img/2022.2.1/importByCurl_en.gif new file mode 100644 index 000000000..8126a41d9 Binary files /dev/null and b/img/2022.2.1/importByCurl_en.gif differ diff --git a/img/2022.2.1/importByCurl_en.png b/img/2022.2.1/importByCurl_en.png new file mode 100644 index 000000000..cddce55aa Binary files /dev/null and b/img/2022.2.1/importByCurl_en.png differ diff --git a/img/2022.2.1/responseHeader.png b/img/2022.2.1/responseHeader.png new file mode 100644 index 000000000..62e7256e1 Binary files /dev/null and b/img/2022.2.1/responseHeader.png differ diff --git a/img/2022.2.1/tempSave.png b/img/2022.2.1/tempSave.png new file mode 100644 index 000000000..435afcbcc Binary files /dev/null and b/img/2022.2.1/tempSave.png differ diff --git a/img/2022.2.1/tempSave_en.png b/img/2022.2.1/tempSave_en.png new file mode 100644 index 000000000..4dc7babb7 Binary files /dev/null and b/img/2022.2.1/tempSave_en.png differ diff --git a/img/2022.2.1/urlSuffix.png b/img/2022.2.1/urlSuffix.png new file mode 100644 index 000000000..7e556e995 Binary files /dev/null and b/img/2022.2.1/urlSuffix.png differ diff --git a/img/2022.2.2/batchExportApiDoc.png b/img/2022.2.2/batchExportApiDoc.png new file mode 100644 index 000000000..d36efbc8c Binary files /dev/null and b/img/2022.2.2/batchExportApiDoc.png differ diff --git a/img/2022.2.2/stopApi.gif b/img/2022.2.2/stopApi.gif new file mode 100644 index 000000000..cd06e0731 Binary files /dev/null and b/img/2022.2.2/stopApi.gif differ diff --git a/img/2022.2.2/stopApi.png b/img/2022.2.2/stopApi.png new file mode 100644 index 000000000..2caf010ef Binary files /dev/null and b/img/2022.2.2/stopApi.png differ diff --git a/img/2022.2.3/copyUrl.png b/img/2022.2.3/copyUrl.png new file mode 100644 index 000000000..26a869d79 Binary files /dev/null and b/img/2022.2.3/copyUrl.png differ diff --git a/img/2022.2.3/scriptDonate.png b/img/2022.2.3/scriptDonate.png new file mode 100644 index 000000000..86d586dd2 Binary files /dev/null and b/img/2022.2.3/scriptDonate.png differ diff --git a/img/2022.2.3/scriptDonate_en.png b/img/2022.2.3/scriptDonate_en.png new file mode 100644 index 000000000..5ac4bd710 Binary files /dev/null and b/img/2022.2.3/scriptDonate_en.png differ diff --git a/img/2022.2.3/scriptModule.png b/img/2022.2.3/scriptModule.png new file mode 100644 index 000000000..8fd9d40cd Binary files /dev/null and b/img/2022.2.3/scriptModule.png differ diff --git a/img/2022.2.3/scriptModule_en.png b/img/2022.2.3/scriptModule_en.png new file mode 100644 index 000000000..1bcb403ed Binary files /dev/null and b/img/2022.2.3/scriptModule_en.png differ diff --git a/img/2022.2.3/scriptProject.png b/img/2022.2.3/scriptProject.png new file mode 100644 index 000000000..110592c40 Binary files /dev/null and b/img/2022.2.3/scriptProject.png differ diff --git a/img/2022.2.3/scriptProject_en.png b/img/2022.2.3/scriptProject_en.png new file mode 100644 index 000000000..a3cf47a90 Binary files /dev/null and b/img/2022.2.3/scriptProject_en.png differ diff --git a/img/2022.2.4/autoUpdate.png b/img/2022.2.4/autoUpdate.png new file mode 100644 index 000000000..11fe6a6cf Binary files /dev/null and b/img/2022.2.4/autoUpdate.png differ diff --git a/img/2022.2.4/baseController.png b/img/2022.2.4/baseController.png new file mode 100644 index 000000000..841a43e69 Binary files /dev/null and b/img/2022.2.4/baseController.png differ diff --git a/img/2022.2.4/dateTimeFormat.png b/img/2022.2.4/dateTimeFormat.png new file mode 100644 index 000000000..1a711782c Binary files /dev/null and b/img/2022.2.4/dateTimeFormat.png differ diff --git a/img/2022.2.4/newLogo.gif b/img/2022.2.4/newLogo.gif new file mode 100644 index 000000000..2db960a2d Binary files /dev/null and b/img/2022.2.4/newLogo.gif differ diff --git a/img/2022.2.4/newLogo.png b/img/2022.2.4/newLogo.png new file mode 100644 index 000000000..68f8d711f Binary files /dev/null and b/img/2022.2.4/newLogo.png differ diff --git a/img/2022.2.4/newLogoConfig.png b/img/2022.2.4/newLogoConfig.png new file mode 100644 index 000000000..5d394bb74 Binary files /dev/null and b/img/2022.2.4/newLogoConfig.png differ diff --git a/img/2022.2.5/console.png b/img/2022.2.5/console.png new file mode 100644 index 000000000..e25692b0f Binary files /dev/null and b/img/2022.2.5/console.png differ diff --git a/img/2022.2.5/console_en.png b/img/2022.2.5/console_en.png new file mode 100644 index 000000000..cd70ae4a1 Binary files /dev/null and b/img/2022.2.5/console_en.png differ diff --git a/img/2022.2.5/parseDocDesc.png b/img/2022.2.5/parseDocDesc.png new file mode 100644 index 000000000..e2290d59e Binary files /dev/null and b/img/2022.2.5/parseDocDesc.png differ diff --git a/img/2022.2.5/twitterAction.png b/img/2022.2.5/twitterAction.png new file mode 100644 index 000000000..50f3a2b2b Binary files /dev/null and b/img/2022.2.5/twitterAction.png differ diff --git a/img/2022.2.6/clear.gif b/img/2022.2.6/clear.gif new file mode 100644 index 000000000..37298bac2 Binary files /dev/null and b/img/2022.2.6/clear.gif differ diff --git a/img/2022.2.6/clear.png b/img/2022.2.6/clear.png new file mode 100644 index 000000000..c0cf78f31 Binary files /dev/null and b/img/2022.2.6/clear.png differ diff --git a/img/2022.2.6/clearColumnValue.png b/img/2022.2.6/clearColumnValue.png new file mode 100644 index 000000000..dcebdec11 Binary files /dev/null and b/img/2022.2.6/clearColumnValue.png differ diff --git a/img/2022.2.6/showCommentConfig.png b/img/2022.2.6/showCommentConfig.png new file mode 100644 index 000000000..339be6745 Binary files /dev/null and b/img/2022.2.6/showCommentConfig.png differ diff --git a/img/2022.2.6/showCommentInClass.png b/img/2022.2.6/showCommentInClass.png new file mode 100644 index 000000000..f2a06852a Binary files /dev/null and b/img/2022.2.6/showCommentInClass.png differ diff --git a/img/2022.2.6/showCommentInNavigate.png b/img/2022.2.6/showCommentInNavigate.png new file mode 100644 index 000000000..71ea2c146 Binary files /dev/null and b/img/2022.2.6/showCommentInNavigate.png differ diff --git a/img/2022.2.6/sortColumn.png b/img/2022.2.6/sortColumn.png new file mode 100644 index 000000000..3f5d07774 Binary files /dev/null and b/img/2022.2.6/sortColumn.png differ diff --git a/img/2022.2.7/apiSync.png b/img/2022.2.7/apiSync.png new file mode 100644 index 000000000..b00c4dc3b Binary files /dev/null and b/img/2022.2.7/apiSync.png differ diff --git a/img/2022.2.7/apiSyncSetting.png b/img/2022.2.7/apiSyncSetting.png new file mode 100644 index 000000000..6a035b14c Binary files /dev/null and b/img/2022.2.7/apiSyncSetting.png differ diff --git a/img/2022.2.7/apiSyncSetting_en.png b/img/2022.2.7/apiSyncSetting_en.png new file mode 100644 index 000000000..6872167f0 Binary files /dev/null and b/img/2022.2.7/apiSyncSetting_en.png differ diff --git a/img/2022.2.7/apiSync_en.png b/img/2022.2.7/apiSync_en.png new file mode 100644 index 000000000..05ed319bc Binary files /dev/null and b/img/2022.2.7/apiSync_en.png differ diff --git a/img/2022.2.7/commentPreview.png b/img/2022.2.7/commentPreview.png new file mode 100644 index 000000000..b4607c95e Binary files /dev/null and b/img/2022.2.7/commentPreview.png differ diff --git a/img/2022.2.7/commonHeader.gif b/img/2022.2.7/commonHeader.gif new file mode 100644 index 000000000..eb34def6f Binary files /dev/null and b/img/2022.2.7/commonHeader.gif differ diff --git a/img/2022.2.7/commonHeader.png b/img/2022.2.7/commonHeader.png new file mode 100644 index 000000000..5aff98c0f Binary files /dev/null and b/img/2022.2.7/commonHeader.png differ diff --git a/img/2022.2.7/commonHeader_en.png b/img/2022.2.7/commonHeader_en.png new file mode 100644 index 000000000..d6d3d2ab7 Binary files /dev/null and b/img/2022.2.7/commonHeader_en.png differ diff --git a/img/2022.2.7/fullScreen.png b/img/2022.2.7/fullScreen.png new file mode 100644 index 000000000..d92285fc2 Binary files /dev/null and b/img/2022.2.7/fullScreen.png differ diff --git a/img/2022.2.7/giteeToken.png b/img/2022.2.7/giteeToken.png new file mode 100644 index 000000000..a77b51f3f Binary files /dev/null and b/img/2022.2.7/giteeToken.png differ diff --git a/img/2022.2.7/githubToken.png b/img/2022.2.7/githubToken.png new file mode 100644 index 000000000..7b0dd0cb4 Binary files /dev/null and b/img/2022.2.7/githubToken.png differ diff --git a/img/2022.2.7/gitlabToken.png b/img/2022.2.7/gitlabToken.png new file mode 100644 index 000000000..3af7d86ae Binary files /dev/null and b/img/2022.2.7/gitlabToken.png differ diff --git a/img/2022.2.7/returnValueDoc.png b/img/2022.2.7/returnValueDoc.png new file mode 100644 index 000000000..646058cca Binary files /dev/null and b/img/2022.2.7/returnValueDoc.png differ diff --git a/img/2022.2.7/upgradeNotice.png b/img/2022.2.7/upgradeNotice.png new file mode 100644 index 000000000..e721e7274 Binary files /dev/null and b/img/2022.2.7/upgradeNotice.png differ diff --git a/img/2022.2.7/upgradeNotice_en.png b/img/2022.2.7/upgradeNotice_en.png new file mode 100644 index 000000000..31e45afb0 Binary files /dev/null and b/img/2022.2.7/upgradeNotice_en.png differ diff --git a/img/2022.2.9/animateConfig.png b/img/2022.2.9/animateConfig.png new file mode 100644 index 000000000..160af30ab Binary files /dev/null and b/img/2022.2.9/animateConfig.png differ diff --git a/img/2022.2.9/animateConfig_en.png b/img/2022.2.9/animateConfig_en.png new file mode 100644 index 000000000..3ef2e4c8d Binary files /dev/null and b/img/2022.2.9/animateConfig_en.png differ diff --git a/img/2023.1.1/projectLevelDomainConfig.png b/img/2023.1.1/projectLevelDomainConfig.png new file mode 100644 index 000000000..f78a32e40 Binary files /dev/null and b/img/2023.1.1/projectLevelDomainConfig.png differ diff --git a/img/2023.1.1/projectLevelDomainConfig_en.png b/img/2023.1.1/projectLevelDomainConfig_en.png new file mode 100644 index 000000000..e2c6f7901 Binary files /dev/null and b/img/2023.1.1/projectLevelDomainConfig_en.png differ diff --git a/img/2023.1.1/projectLevelDomainDialog.png b/img/2023.1.1/projectLevelDomainDialog.png new file mode 100644 index 000000000..f6c9d7d08 Binary files /dev/null and b/img/2023.1.1/projectLevelDomainDialog.png differ diff --git a/img/2023.1.1/projectLevelDomainDialog_en.png b/img/2023.1.1/projectLevelDomainDialog_en.png new file mode 100644 index 000000000..a973e19af Binary files /dev/null and b/img/2023.1.1/projectLevelDomainDialog_en.png differ diff --git a/img/2023.1.2/annualReport.png b/img/2023.1.2/annualReport.png new file mode 100644 index 000000000..5b0796d2d Binary files /dev/null and b/img/2023.1.2/annualReport.png differ diff --git a/img/2023.1.2/annualReport_en.png b/img/2023.1.2/annualReport_en.png new file mode 100644 index 000000000..f2ff649f6 Binary files /dev/null and b/img/2023.1.2/annualReport_en.png differ diff --git a/img/2023.1.2/imageRender.png b/img/2023.1.2/imageRender.png new file mode 100644 index 000000000..ba847deca Binary files /dev/null and b/img/2023.1.2/imageRender.png differ diff --git a/img/2023.1.3/ai.gif b/img/2023.1.3/ai.gif new file mode 100644 index 000000000..170c69f85 Binary files /dev/null and b/img/2023.1.3/ai.gif differ diff --git a/img/2023.1.3/apiSyncSupportBranch.png b/img/2023.1.3/apiSyncSupportBranch.png new file mode 100644 index 000000000..945b00e7d Binary files /dev/null and b/img/2023.1.3/apiSyncSupportBranch.png differ diff --git a/img/2023.1.3/apis.png b/img/2023.1.3/apis.png new file mode 100644 index 000000000..c2b0beb32 Binary files /dev/null and b/img/2023.1.3/apis.png differ diff --git a/img/2023.1.3/htoolbar.png b/img/2023.1.3/htoolbar.png new file mode 100644 index 000000000..70b67b13e Binary files /dev/null and b/img/2023.1.3/htoolbar.png differ diff --git a/img/2023.1.3/jumpToJsonData.png b/img/2023.1.3/jumpToJsonData.png new file mode 100644 index 000000000..1085301df Binary files /dev/null and b/img/2023.1.3/jumpToJsonData.png differ diff --git a/img/2023.1.3/listJump2JsonData.png b/img/2023.1.3/listJump2JsonData.png new file mode 100644 index 000000000..f6ed04536 Binary files /dev/null and b/img/2023.1.3/listJump2JsonData.png differ diff --git a/img/2023.1.3/listJump2JsonData_zh.png b/img/2023.1.3/listJump2JsonData_zh.png new file mode 100644 index 000000000..f077782bf Binary files /dev/null and b/img/2023.1.3/listJump2JsonData_zh.png differ diff --git a/img/2023.1.3/refreshAPI.png b/img/2023.1.3/refreshAPI.png new file mode 100644 index 000000000..1b6706c5f Binary files /dev/null and b/img/2023.1.3/refreshAPI.png differ diff --git a/img/2023.1.3/refreshProjectConfig.png b/img/2023.1.3/refreshProjectConfig.png new file mode 100644 index 000000000..53260fd1b Binary files /dev/null and b/img/2023.1.3/refreshProjectConfig.png differ diff --git a/img/2023.1.3/teamDirectory.png b/img/2023.1.3/teamDirectory.png new file mode 100644 index 000000000..53a1720d0 Binary files /dev/null and b/img/2023.1.3/teamDirectory.png differ diff --git a/img/2023.1.3/teamDirectory_en.png b/img/2023.1.3/teamDirectory_en.png new file mode 100644 index 000000000..fb854da65 Binary files /dev/null and b/img/2023.1.3/teamDirectory_en.png differ diff --git a/img/2023.1.3/toolbarSetting.png b/img/2023.1.3/toolbarSetting.png new file mode 100644 index 000000000..f9080bb1e Binary files /dev/null and b/img/2023.1.3/toolbarSetting.png differ diff --git a/img/2023.1.3/transferData.png b/img/2023.1.3/transferData.png new file mode 100644 index 000000000..b214a6312 Binary files /dev/null and b/img/2023.1.3/transferData.png differ diff --git a/img/2023.1.3/vtoolbar.png b/img/2023.1.3/vtoolbar.png new file mode 100644 index 000000000..38cbb07db Binary files /dev/null and b/img/2023.1.3/vtoolbar.png differ diff --git a/img/2023.1.4/autoDomain.png b/img/2023.1.4/autoDomain.png new file mode 100644 index 000000000..abca9370f Binary files /dev/null and b/img/2023.1.4/autoDomain.png differ diff --git a/img/2023.1.4/autoDomain_en.png b/img/2023.1.4/autoDomain_en.png new file mode 100644 index 000000000..a57272ebc Binary files /dev/null and b/img/2023.1.4/autoDomain_en.png differ diff --git a/img/2023.1.5/editorAction.png b/img/2023.1.5/editorAction.png new file mode 100644 index 000000000..cd41ba14e Binary files /dev/null and b/img/2023.1.5/editorAction.png differ diff --git a/img/2023.1.6/batchEdit.png b/img/2023.1.6/batchEdit.png new file mode 100644 index 000000000..c16c03823 Binary files /dev/null and b/img/2023.1.6/batchEdit.png differ diff --git a/img/2023.1.6/batchEdit_en.png b/img/2023.1.6/batchEdit_en.png new file mode 100644 index 000000000..f3a45e579 Binary files /dev/null and b/img/2023.1.6/batchEdit_en.png differ diff --git a/img/2023.1.7.1/searchEveryWhere.png b/img/2023.1.7.1/searchEveryWhere.png new file mode 100644 index 000000000..63da68c50 Binary files /dev/null and b/img/2023.1.7.1/searchEveryWhere.png differ diff --git a/img/2023.1.7/fieldDup.png b/img/2023.1.7/fieldDup.png new file mode 100644 index 000000000..cdac068f8 Binary files /dev/null and b/img/2023.1.7/fieldDup.png differ diff --git a/img/2023.1.7/searchEveryWhere.png b/img/2023.1.7/searchEveryWhere.png new file mode 100644 index 000000000..9d4c3077a Binary files /dev/null and b/img/2023.1.7/searchEveryWhere.png differ diff --git a/img/2023.1.8/chooseEnvironmentVariable.png b/img/2023.1.8/chooseEnvironmentVariable.png new file mode 100644 index 000000000..7a08b6f20 Binary files /dev/null and b/img/2023.1.8/chooseEnvironmentVariable.png differ diff --git a/img/2023.1.8/environment.png b/img/2023.1.8/environment.png new file mode 100644 index 000000000..2ab25bd67 Binary files /dev/null and b/img/2023.1.8/environment.png differ diff --git a/img/2023.1.8/environmentScript.png b/img/2023.1.8/environmentScript.png new file mode 100644 index 000000000..539d26e44 Binary files /dev/null and b/img/2023.1.8/environmentScript.png differ diff --git a/img/2023.1.8/environmentScript_en.png b/img/2023.1.8/environmentScript_en.png new file mode 100644 index 000000000..7b60d1d42 Binary files /dev/null and b/img/2023.1.8/environmentScript_en.png differ diff --git a/img/2023.1.8/methodDescriptionLength.png b/img/2023.1.8/methodDescriptionLength.png new file mode 100644 index 000000000..ad868a0b2 Binary files /dev/null and b/img/2023.1.8/methodDescriptionLength.png differ diff --git a/img/2023.1.8/methodDescriptionLength_en.png b/img/2023.1.8/methodDescriptionLength_en.png new file mode 100644 index 000000000..912621be1 Binary files /dev/null and b/img/2023.1.8/methodDescriptionLength_en.png differ diff --git a/img/2023.1.8/useEnvironmentVariable.png b/img/2023.1.8/useEnvironmentVariable.png new file mode 100644 index 000000000..68d6bc41e Binary files /dev/null and b/img/2023.1.8/useEnvironmentVariable.png differ diff --git a/img/2023.1.9/environmentVariableEditRemoveModify.png b/img/2023.1.9/environmentVariableEditRemoveModify.png new file mode 100644 index 000000000..af24f46a9 Binary files /dev/null and b/img/2023.1.9/environmentVariableEditRemoveModify.png differ diff --git a/img/2023.1.9/environmentVariableEditRemoveModify_en.png b/img/2023.1.9/environmentVariableEditRemoveModify_en.png new file mode 100644 index 000000000..b7e77652f Binary files /dev/null and b/img/2023.1.9/environmentVariableEditRemoveModify_en.png differ diff --git a/img/2023.1.9/quickAddEnvironmentVariable.png b/img/2023.1.9/quickAddEnvironmentVariable.png new file mode 100644 index 000000000..63e7ba253 Binary files /dev/null and b/img/2023.1.9/quickAddEnvironmentVariable.png differ diff --git a/img/2023.1.9/responseSize.png b/img/2023.1.9/responseSize.png new file mode 100644 index 000000000..b60a44758 Binary files /dev/null and b/img/2023.1.9/responseSize.png differ diff --git a/img/2023.1.9/showApis.gif b/img/2023.1.9/showApis.gif new file mode 100644 index 000000000..8b5285f57 Binary files /dev/null and b/img/2023.1.9/showApis.gif differ diff --git a/img/2023.2.1/openDoc.png b/img/2023.2.1/openDoc.png new file mode 100644 index 000000000..cf83dab09 Binary files /dev/null and b/img/2023.2.1/openDoc.png differ diff --git a/img/2023.2.1/openDoc_en.png b/img/2023.2.1/openDoc_en.png new file mode 100644 index 000000000..40759c3bd Binary files /dev/null and b/img/2023.2.1/openDoc_en.png differ diff --git a/img/2023.2.1/pluginVersion.png b/img/2023.2.1/pluginVersion.png new file mode 100644 index 000000000..1dba529db Binary files /dev/null and b/img/2023.2.1/pluginVersion.png differ diff --git a/img/2023.2.1/showApis.png b/img/2023.2.1/showApis.png new file mode 100644 index 000000000..be67d4c06 Binary files /dev/null and b/img/2023.2.1/showApis.png differ diff --git a/img/2023.2.1/urlInputWithMethod.png b/img/2023.2.1/urlInputWithMethod.png new file mode 100644 index 000000000..62817cd6e Binary files /dev/null and b/img/2023.2.1/urlInputWithMethod.png differ diff --git a/img/2023.2.2/json5.png b/img/2023.2.2/json5.png new file mode 100644 index 000000000..faac1c224 Binary files /dev/null and b/img/2023.2.2/json5.png differ diff --git a/img/2023.2.3/createWorkspace.png b/img/2023.2.3/createWorkspace.png new file mode 100644 index 000000000..79aa30edc Binary files /dev/null and b/img/2023.2.3/createWorkspace.png differ diff --git a/img/2023.2.3/environment.png b/img/2023.2.3/environment.png new file mode 100644 index 000000000..22a463143 Binary files /dev/null and b/img/2023.2.3/environment.png differ diff --git a/img/2023.2.3/environment_en.png b/img/2023.2.3/environment_en.png new file mode 100644 index 000000000..68ef0167b Binary files /dev/null and b/img/2023.2.3/environment_en.png differ diff --git a/img/2023.2.3/postmanApiKey.png b/img/2023.2.3/postmanApiKey.png new file mode 100644 index 000000000..e501cbfc3 Binary files /dev/null and b/img/2023.2.3/postmanApiKey.png differ diff --git a/img/2023.2.3/postmanScript.png b/img/2023.2.3/postmanScript.png new file mode 100644 index 000000000..30041c681 Binary files /dev/null and b/img/2023.2.3/postmanScript.png differ diff --git a/img/2023.2.3/postmanSync.png b/img/2023.2.3/postmanSync.png new file mode 100644 index 000000000..6bb979607 Binary files /dev/null and b/img/2023.2.3/postmanSync.png differ diff --git a/img/2023.2.3/postmanSync_en.png b/img/2023.2.3/postmanSync_en.png new file mode 100644 index 000000000..aa2ca40e5 Binary files /dev/null and b/img/2023.2.3/postmanSync_en.png differ diff --git a/img/2023.2.3/projectName.png b/img/2023.2.3/projectName.png new file mode 100644 index 000000000..adefd5e5c Binary files /dev/null and b/img/2023.2.3/projectName.png differ diff --git a/img/2023.2.3/projectName_en.png b/img/2023.2.3/projectName_en.png new file mode 100644 index 000000000..b40fc95fa Binary files /dev/null and b/img/2023.2.3/projectName_en.png differ diff --git a/img/2023.2.3/resetEnvironmentValue.png b/img/2023.2.3/resetEnvironmentValue.png new file mode 100644 index 000000000..9f6c8a212 Binary files /dev/null and b/img/2023.2.3/resetEnvironmentValue.png differ diff --git a/img/2023.2.3/showWorkspaceId.png b/img/2023.2.3/showWorkspaceId.png new file mode 100644 index 000000000..ef3521b77 Binary files /dev/null and b/img/2023.2.3/showWorkspaceId.png differ diff --git a/img/2023.2.3/workspaceInfo.png b/img/2023.2.3/workspaceInfo.png new file mode 100644 index 000000000..ab77b6500 Binary files /dev/null and b/img/2023.2.3/workspaceInfo.png differ diff --git a/img/2024.1.1/apis.png b/img/2024.1.1/apis.png new file mode 100644 index 000000000..0199110b2 Binary files /dev/null and b/img/2024.1.1/apis.png differ diff --git a/img/2024.1.1/apis_en.png b/img/2024.1.1/apis_en.png new file mode 100644 index 000000000..f97f919b1 Binary files /dev/null and b/img/2024.1.1/apis_en.png differ diff --git a/img/2024.1.1/ignoreFiled.png b/img/2024.1.1/ignoreFiled.png new file mode 100644 index 000000000..fa6eb66cf Binary files /dev/null and b/img/2024.1.1/ignoreFiled.png differ diff --git a/img/2024.1.1/ignoreFiled_en.png b/img/2024.1.1/ignoreFiled_en.png new file mode 100644 index 000000000..f67fe6a93 Binary files /dev/null and b/img/2024.1.1/ignoreFiled_en.png differ diff --git a/img/2024.1.1/manualUpdateCheck.png b/img/2024.1.1/manualUpdateCheck.png new file mode 100644 index 000000000..f80108fad Binary files /dev/null and b/img/2024.1.1/manualUpdateCheck.png differ diff --git a/img/2024.1.1/navigate.png b/img/2024.1.1/navigate.png new file mode 100644 index 000000000..0199110b2 Binary files /dev/null and b/img/2024.1.1/navigate.png differ diff --git a/img/2024.1.1/navigate_en.png b/img/2024.1.1/navigate_en.png new file mode 100644 index 000000000..1d75bae6a Binary files /dev/null and b/img/2024.1.1/navigate_en.png differ diff --git a/img/2024.1.1/searchEveryWhere.png b/img/2024.1.1/searchEveryWhere.png new file mode 100644 index 000000000..968a9235b Binary files /dev/null and b/img/2024.1.1/searchEveryWhere.png differ diff --git a/img/2024.1.1/searchEveryWhere_en.png b/img/2024.1.1/searchEveryWhere_en.png new file mode 100644 index 000000000..0e0076ab4 Binary files /dev/null and b/img/2024.1.1/searchEveryWhere_en.png differ diff --git a/img/2024.1.2/customToolbar.png b/img/2024.1.2/customToolbar.png new file mode 100644 index 000000000..0f2b7bda1 Binary files /dev/null and b/img/2024.1.2/customToolbar.png differ diff --git a/img/2024.1.2/customToolbar_en.png b/img/2024.1.2/customToolbar_en.png new file mode 100644 index 000000000..610e46c55 Binary files /dev/null and b/img/2024.1.2/customToolbar_en.png differ diff --git a/img/2024.1.3/aiManagenemt.png b/img/2024.1.3/aiManagenemt.png new file mode 100644 index 000000000..a7cbd28ac Binary files /dev/null and b/img/2024.1.3/aiManagenemt.png differ diff --git a/img/2024.1.3/aiManagenemt_en.png b/img/2024.1.3/aiManagenemt_en.png new file mode 100644 index 000000000..e06974670 Binary files /dev/null and b/img/2024.1.3/aiManagenemt_en.png differ diff --git a/img/2024.1.3/aiPromptChoose.png b/img/2024.1.3/aiPromptChoose.png new file mode 100644 index 000000000..5406a75a8 Binary files /dev/null and b/img/2024.1.3/aiPromptChoose.png differ diff --git a/img/2024.1.3/aiPromptChoose_en.png b/img/2024.1.3/aiPromptChoose_en.png new file mode 100644 index 000000000..c9fbb8478 Binary files /dev/null and b/img/2024.1.3/aiPromptChoose_en.png differ diff --git a/img/2024.1.3/aiPromptEdit.png b/img/2024.1.3/aiPromptEdit.png new file mode 100644 index 000000000..70e99833e Binary files /dev/null and b/img/2024.1.3/aiPromptEdit.png differ diff --git a/img/2024.1.3/aiPromptEdit_en.png b/img/2024.1.3/aiPromptEdit_en.png new file mode 100644 index 000000000..e73c62e8c Binary files /dev/null and b/img/2024.1.3/aiPromptEdit_en.png differ diff --git a/img/2024.1.4/ai.png b/img/2024.1.4/ai.png new file mode 100644 index 000000000..5384e6396 Binary files /dev/null and b/img/2024.1.4/ai.png differ diff --git a/img/2024.1.4/ai_en.png b/img/2024.1.4/ai_en.png new file mode 100644 index 000000000..8d7a5b448 Binary files /dev/null and b/img/2024.1.4/ai_en.png differ diff --git a/img/2024.1.4/apifoxConfig.png b/img/2024.1.4/apifoxConfig.png new file mode 100644 index 000000000..73e9c22f2 Binary files /dev/null and b/img/2024.1.4/apifoxConfig.png differ diff --git a/img/2024.1.4/apifoxConfig_en.png b/img/2024.1.4/apifoxConfig_en.png new file mode 100644 index 000000000..f69c23baa Binary files /dev/null and b/img/2024.1.4/apifoxConfig_en.png differ diff --git a/img/2024.1.4/apifoxIntegration.png b/img/2024.1.4/apifoxIntegration.png new file mode 100644 index 000000000..84e5201e5 Binary files /dev/null and b/img/2024.1.4/apifoxIntegration.png differ diff --git a/img/2024.1.4/apifoxIntegration_en.png b/img/2024.1.4/apifoxIntegration_en.png new file mode 100644 index 000000000..880457cd0 Binary files /dev/null and b/img/2024.1.4/apifoxIntegration_en.png differ diff --git a/img/2024.1.4/header.png b/img/2024.1.4/header.png new file mode 100644 index 000000000..1415bbd5a Binary files /dev/null and b/img/2024.1.4/header.png differ diff --git a/img/2024.1.5/addLibrary.png b/img/2024.1.5/addLibrary.png new file mode 100644 index 000000000..9ee3317da Binary files /dev/null and b/img/2024.1.5/addLibrary.png differ diff --git a/img/2024.1.5/addLibrary_en.png b/img/2024.1.5/addLibrary_en.png new file mode 100644 index 000000000..b05a9a3db Binary files /dev/null and b/img/2024.1.5/addLibrary_en.png differ diff --git a/img/2024.1.5/originUrl.png b/img/2024.1.5/originUrl.png new file mode 100644 index 000000000..78e9a134a Binary files /dev/null and b/img/2024.1.5/originUrl.png differ diff --git a/img/2024.1.5/typeDropdown.png b/img/2024.1.5/typeDropdown.png new file mode 100644 index 000000000..158da7a6b Binary files /dev/null and b/img/2024.1.5/typeDropdown.png differ diff --git a/img/2024.1.6/jsonPath.png b/img/2024.1.6/jsonPath.png new file mode 100644 index 000000000..7aad697f6 Binary files /dev/null and b/img/2024.1.6/jsonPath.png differ diff --git a/img/2024.1.6/mark1.png b/img/2024.1.6/mark1.png new file mode 100644 index 000000000..9fdd6ee94 Binary files /dev/null and b/img/2024.1.6/mark1.png differ diff --git a/img/2024.1.6/mark1_en.png b/img/2024.1.6/mark1_en.png new file mode 100644 index 000000000..3e3ee47d8 Binary files /dev/null and b/img/2024.1.6/mark1_en.png differ diff --git a/img/2024.1.6/mark2.png b/img/2024.1.6/mark2.png new file mode 100644 index 000000000..9b996c82b Binary files /dev/null and b/img/2024.1.6/mark2.png differ diff --git a/img/2024.1.6/multiTab.png b/img/2024.1.6/multiTab.png new file mode 100644 index 000000000..939b24ff4 Binary files /dev/null and b/img/2024.1.6/multiTab.png differ diff --git a/img/2024.1.6/openInTabAction.png b/img/2024.1.6/openInTabAction.png new file mode 100644 index 000000000..d4c5cc9eb Binary files /dev/null and b/img/2024.1.6/openInTabAction.png differ diff --git a/img/2024.1.6/openTabInApis.png b/img/2024.1.6/openTabInApis.png new file mode 100644 index 000000000..0c10e37df Binary files /dev/null and b/img/2024.1.6/openTabInApis.png differ diff --git a/img/2024.1.6/openTabInApis_en.png b/img/2024.1.6/openTabInApis_en.png new file mode 100644 index 000000000..a2a066a33 Binary files /dev/null and b/img/2024.1.6/openTabInApis_en.png differ diff --git a/img/2024.1.6/urlCopyInApis.png b/img/2024.1.6/urlCopyInApis.png new file mode 100644 index 000000000..454d47dff Binary files /dev/null and b/img/2024.1.6/urlCopyInApis.png differ diff --git a/img/2024.1.6/urlCopyInApis_en.png b/img/2024.1.6/urlCopyInApis_en.png new file mode 100644 index 000000000..43e4b1a0b Binary files /dev/null and b/img/2024.1.6/urlCopyInApis_en.png differ diff --git a/img/2024.1.6/urlCopyInNav.png b/img/2024.1.6/urlCopyInNav.png new file mode 100644 index 000000000..e035f3b40 Binary files /dev/null and b/img/2024.1.6/urlCopyInNav.png differ diff --git a/img/2024.1.6/urlCopyInNav_en.png b/img/2024.1.6/urlCopyInNav_en.png new file mode 100644 index 000000000..7915162ed Binary files /dev/null and b/img/2024.1.6/urlCopyInNav_en.png differ diff --git a/img/2024.1.7/defaultMultipartFile.png b/img/2024.1.7/defaultMultipartFile.png new file mode 100644 index 000000000..f35a8c05d Binary files /dev/null and b/img/2024.1.7/defaultMultipartFile.png differ diff --git a/img/2024.1.7/defaultMultipartFileEn.png b/img/2024.1.7/defaultMultipartFileEn.png new file mode 100644 index 000000000..f32a43962 Binary files /dev/null and b/img/2024.1.7/defaultMultipartFileEn.png differ diff --git a/img/2024.1.7/function.png b/img/2024.1.7/function.png new file mode 100644 index 000000000..72e4edcc1 Binary files /dev/null and b/img/2024.1.7/function.png differ diff --git a/img/2024.1.7/functionConfig.png b/img/2024.1.7/functionConfig.png new file mode 100644 index 000000000..61aa4abb2 Binary files /dev/null and b/img/2024.1.7/functionConfig.png differ diff --git a/img/2024.1.7/functionConfigEn.png b/img/2024.1.7/functionConfigEn.png new file mode 100644 index 000000000..4c320e9a4 Binary files /dev/null and b/img/2024.1.7/functionConfigEn.png differ diff --git a/img/2024.1.7/functionEn.png b/img/2024.1.7/functionEn.png new file mode 100644 index 000000000..f51de5505 Binary files /dev/null and b/img/2024.1.7/functionEn.png differ diff --git a/img/2024.1.7/functionInBody.png b/img/2024.1.7/functionInBody.png new file mode 100644 index 000000000..66149706b Binary files /dev/null and b/img/2024.1.7/functionInBody.png differ diff --git a/img/2024.1.7/functionInBodyEn.png b/img/2024.1.7/functionInBodyEn.png new file mode 100644 index 000000000..e1e2862ec Binary files /dev/null and b/img/2024.1.7/functionInBodyEn.png differ diff --git a/img/2024.1.7/header.png b/img/2024.1.7/header.png new file mode 100644 index 000000000..a1b69f6b4 Binary files /dev/null and b/img/2024.1.7/header.png differ diff --git a/img/2024.1.7/jsonFilter.png b/img/2024.1.7/jsonFilter.png new file mode 100644 index 000000000..21b75a57c Binary files /dev/null and b/img/2024.1.7/jsonFilter.png differ diff --git a/img/2024.1.7/jsonFilterEn.png b/img/2024.1.7/jsonFilterEn.png new file mode 100644 index 000000000..182b90a19 Binary files /dev/null and b/img/2024.1.7/jsonFilterEn.png differ diff --git a/img/2024.1.7/searchEveryWhere.png b/img/2024.1.7/searchEveryWhere.png new file mode 100644 index 000000000..0650f5969 Binary files /dev/null and b/img/2024.1.7/searchEveryWhere.png differ diff --git a/img/IntelliJ_IDEA.svg b/img/IntelliJ_IDEA.svg new file mode 100644 index 000000000..c7862cd30 --- /dev/null +++ b/img/IntelliJ_IDEA.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/img/activity/20221024-1.png b/img/activity/20221024-1.png new file mode 100644 index 000000000..5b94ab66f Binary files /dev/null and b/img/activity/20221024-1.png differ diff --git a/img/activity/20221024.png b/img/activity/20221024.png new file mode 100644 index 000000000..7bdc72287 Binary files /dev/null and b/img/activity/20221024.png differ diff --git a/img/activity/activity1.png b/img/activity/activity1.png new file mode 100644 index 000000000..c4da0b449 Binary files /dev/null and b/img/activity/activity1.png differ diff --git a/img/add2GlobalHeader.png b/img/add2GlobalHeader.png new file mode 100644 index 000000000..0ec3a1149 Binary files /dev/null and b/img/add2GlobalHeader.png differ diff --git a/img/add2projectConfig.png b/img/add2projectConfig.png new file mode 100644 index 000000000..f7483db9b Binary files /dev/null and b/img/add2projectConfig.png differ diff --git a/img/addCookie2Header.png b/img/addCookie2Header.png new file mode 100644 index 000000000..8128b0a2b Binary files /dev/null and b/img/addCookie2Header.png differ diff --git a/img/apiDocExample.png b/img/apiDocExample.png new file mode 100644 index 000000000..d9dcca2ed Binary files /dev/null and b/img/apiDocExample.png differ diff --git a/img/apiGroup.gif b/img/apiGroup.gif new file mode 100644 index 000000000..7c10c459a Binary files /dev/null and b/img/apiGroup.gif differ diff --git a/img/apiGroup_en.gif b/img/apiGroup_en.gif new file mode 100644 index 000000000..3bc44ea41 Binary files /dev/null and b/img/apiGroup_en.gif differ diff --git a/img/apiManager.png b/img/apiManager.png new file mode 100644 index 000000000..209e5a8f3 Binary files /dev/null and b/img/apiManager.png differ diff --git a/img/apiManager_en.png b/img/apiManager_en.png new file mode 100644 index 000000000..476541ca3 Binary files /dev/null and b/img/apiManager_en.png differ diff --git a/img/apiPreview.gif b/img/apiPreview.gif new file mode 100644 index 000000000..7160e942d Binary files /dev/null and b/img/apiPreview.gif differ diff --git a/img/apinav.gif b/img/apinav.gif new file mode 100644 index 000000000..d2e27bf16 Binary files /dev/null and b/img/apinav.gif differ diff --git a/img/apisList.png b/img/apisList.png new file mode 100644 index 000000000..548c06465 Binary files /dev/null and b/img/apisList.png differ diff --git a/img/apis_hd.png b/img/apis_hd.png new file mode 100644 index 000000000..924e19779 Binary files /dev/null and b/img/apis_hd.png differ diff --git a/img/apis_hd_en.png b/img/apis_hd_en.png new file mode 100644 index 000000000..88df7706b Binary files /dev/null and b/img/apis_hd_en.png differ diff --git a/img/autoStoreCookie.png b/img/autoStoreCookie.png new file mode 100644 index 000000000..1b70d4f19 Binary files /dev/null and b/img/autoStoreCookie.png differ diff --git a/img/banner/bg1.svg b/img/banner/bg1.svg new file mode 100644 index 000000000..1be710bb1 --- /dev/null +++ b/img/banner/bg1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/basicAuth.png b/img/basicAuth.png new file mode 100644 index 000000000..ff6d7f8d8 Binary files /dev/null and b/img/basicAuth.png differ diff --git a/img/bg.svg b/img/bg.svg new file mode 100644 index 000000000..02dac96e6 --- /dev/null +++ b/img/bg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/bg1.svg b/img/bg1.svg new file mode 100644 index 000000000..95f767d67 --- /dev/null +++ b/img/bg1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/bg2.svg b/img/bg2.svg new file mode 100644 index 000000000..6daffb068 --- /dev/null +++ b/img/bg2.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/bg3.svg b/img/bg3.svg new file mode 100644 index 000000000..df19bf196 --- /dev/null +++ b/img/bg3.svg @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/bg4.svg b/img/bg4.svg new file mode 100644 index 000000000..3b93e59f0 --- /dev/null +++ b/img/bg4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/bilibili.jpg b/img/bilibili.jpg new file mode 100644 index 000000000..a7422f571 Binary files /dev/null and b/img/bilibili.jpg differ diff --git a/img/bilibili/20230524.jpg b/img/bilibili/20230524.jpg new file mode 100644 index 000000000..0d720a081 Binary files /dev/null and b/img/bilibili/20230524.jpg differ diff --git a/img/buy/accountLicense.png b/img/buy/accountLicense.png new file mode 100644 index 000000000..c4c0c499a Binary files /dev/null and b/img/buy/accountLicense.png differ diff --git a/img/buy/activate.png b/img/buy/activate.png new file mode 100644 index 000000000..a647952f9 Binary files /dev/null and b/img/buy/activate.png differ diff --git a/img/buy/activate_en.png b/img/buy/activate_en.png new file mode 100644 index 000000000..fe7290737 Binary files /dev/null and b/img/buy/activate_en.png differ diff --git a/img/buy/none.png b/img/buy/none.png new file mode 100644 index 000000000..2f5c20129 Binary files /dev/null and b/img/buy/none.png differ diff --git a/img/buy/offline.png b/img/buy/offline.png new file mode 100644 index 000000000..f925c212a Binary files /dev/null and b/img/buy/offline.png differ diff --git a/img/buy/offlineCodeDownload.png b/img/buy/offlineCodeDownload.png new file mode 100644 index 000000000..a0058c5f5 Binary files /dev/null and b/img/buy/offlineCodeDownload.png differ diff --git a/img/buy/step0.png b/img/buy/step0.png new file mode 100644 index 000000000..1ac9ca73e Binary files /dev/null and b/img/buy/step0.png differ diff --git a/img/buy/step1.png b/img/buy/step1.png new file mode 100644 index 000000000..08513c28f Binary files /dev/null and b/img/buy/step1.png differ diff --git a/img/buy/step2.png b/img/buy/step2.png new file mode 100644 index 000000000..341a5e726 Binary files /dev/null and b/img/buy/step2.png differ diff --git a/img/buy/step3.png b/img/buy/step3.png new file mode 100644 index 000000000..ad41d7354 Binary files /dev/null and b/img/buy/step3.png differ diff --git a/img/buy/step4.png b/img/buy/step4.png new file mode 100644 index 000000000..3511453e6 Binary files /dev/null and b/img/buy/step4.png differ diff --git a/img/buy/step5.png b/img/buy/step5.png new file mode 100644 index 000000000..747d1766e Binary files /dev/null and b/img/buy/step5.png differ diff --git a/img/commonConfig.png b/img/commonConfig.png new file mode 100644 index 000000000..45c516697 Binary files /dev/null and b/img/commonConfig.png differ diff --git a/img/cookie2projectConfig.png b/img/cookie2projectConfig.png new file mode 100644 index 000000000..b72ff0a45 Binary files /dev/null and b/img/cookie2projectConfig.png differ diff --git a/img/curl.png b/img/curl.png new file mode 100644 index 000000000..17b08ad63 Binary files /dev/null and b/img/curl.png differ diff --git a/img/curlCopyNew.png b/img/curlCopyNew.png new file mode 100644 index 000000000..7659ed4ed Binary files /dev/null and b/img/curlCopyNew.png differ diff --git a/img/curl_en.png b/img/curl_en.png new file mode 100644 index 000000000..3cf217114 Binary files /dev/null and b/img/curl_en.png differ diff --git a/img/customDataMapping.png b/img/customDataMapping.png new file mode 100644 index 000000000..7c922850f Binary files /dev/null and b/img/customDataMapping.png differ diff --git a/img/customDataMapping_en.png b/img/customDataMapping_en.png new file mode 100644 index 000000000..47fc4ff4f Binary files /dev/null and b/img/customDataMapping_en.png differ diff --git a/img/dataMapping.png b/img/dataMapping.png new file mode 100644 index 000000000..5675467f1 Binary files /dev/null and b/img/dataMapping.png differ diff --git a/img/defaultDataMapping.png b/img/defaultDataMapping.png new file mode 100644 index 000000000..9e9f747fe Binary files /dev/null and b/img/defaultDataMapping.png differ diff --git a/img/defaultDataMapping_en.png b/img/defaultDataMapping_en.png new file mode 100644 index 000000000..d88768cf1 Binary files /dev/null and b/img/defaultDataMapping_en.png differ diff --git a/img/dingding.jpg b/img/dingding.jpg new file mode 100644 index 000000000..22b000d78 Binary files /dev/null and b/img/dingding.jpg differ diff --git a/img/docAndContact.png b/img/docAndContact.png new file mode 100644 index 000000000..2e2658f6f Binary files /dev/null and b/img/docAndContact.png differ diff --git a/img/docAndContact_en.png b/img/docAndContact_en.png new file mode 100644 index 000000000..df21c7e17 Binary files /dev/null and b/img/docAndContact_en.png differ diff --git a/img/download.png b/img/download.png new file mode 100644 index 000000000..beb823d79 Binary files /dev/null and b/img/download.png differ diff --git a/img/downloadFile.gif b/img/downloadFile.gif new file mode 100644 index 000000000..9c564b4a6 Binary files /dev/null and b/img/downloadFile.gif differ diff --git a/img/downloadFile.png b/img/downloadFile.png new file mode 100644 index 000000000..282af5ded Binary files /dev/null and b/img/downloadFile.png differ diff --git a/img/dropdownEnv.png b/img/dropdownEnv.png new file mode 100644 index 000000000..7c563de29 Binary files /dev/null and b/img/dropdownEnv.png differ diff --git a/img/dropdownProject.png b/img/dropdownProject.png new file mode 100644 index 000000000..ca65c164f Binary files /dev/null and b/img/dropdownProject.png differ diff --git a/img/example.gif b/img/example.gif new file mode 100644 index 000000000..472726bb5 Binary files /dev/null and b/img/example.gif differ diff --git a/img/example_en.gif b/img/example_en.gif new file mode 100644 index 000000000..472726bb5 Binary files /dev/null and b/img/example_en.gif differ diff --git a/img/export2postman.gif b/img/export2postman.gif new file mode 100644 index 000000000..437683228 Binary files /dev/null and b/img/export2postman.gif differ diff --git a/img/exportImportApis.gif b/img/exportImportApis.gif new file mode 100644 index 000000000..38ab6e412 Binary files /dev/null and b/img/exportImportApis.gif differ diff --git a/img/faq/dataTransfer202313.png b/img/faq/dataTransfer202313.png new file mode 100644 index 000000000..a1414013e Binary files /dev/null and b/img/faq/dataTransfer202313.png differ diff --git a/img/faq/enableNotifications.png b/img/faq/enableNotifications.png new file mode 100644 index 000000000..b4ed38f80 Binary files /dev/null and b/img/faq/enableNotifications.png differ diff --git a/img/faq/showToolbar.png b/img/faq/showToolbar.png new file mode 100644 index 000000000..43bd7ba70 Binary files /dev/null and b/img/faq/showToolbar.png differ diff --git a/img/faq/slowOperationsConfig.png b/img/faq/slowOperationsConfig.png new file mode 100644 index 000000000..d053ba90c Binary files /dev/null and b/img/faq/slowOperationsConfig.png differ diff --git a/img/faq/timeout.png b/img/faq/timeout.png new file mode 100644 index 000000000..5e9e25b0e Binary files /dev/null and b/img/faq/timeout.png differ diff --git a/img/faq/timeout_en.png b/img/faq/timeout_en.png new file mode 100644 index 000000000..fb527d427 Binary files /dev/null and b/img/faq/timeout_en.png differ diff --git a/img/fastAddToken.gif b/img/fastAddToken.gif new file mode 100644 index 000000000..87ab888b7 Binary files /dev/null and b/img/fastAddToken.gif differ diff --git a/img/fastAddToken_en.gif b/img/fastAddToken_en.gif new file mode 100644 index 000000000..0a113a1b3 Binary files /dev/null and b/img/fastAddToken_en.gif differ diff --git a/img/fastRequest.svg b/img/fastRequest.svg new file mode 100644 index 000000000..a4ae5640b --- /dev/null +++ b/img/fastRequest.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/fastRequest_dark.svg b/img/fastRequest_dark.svg new file mode 100644 index 000000000..9b68dcb8b --- /dev/null +++ b/img/fastRequest_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/features/aiPromptExample.png b/img/features/aiPromptExample.png new file mode 100644 index 000000000..b1d0f7793 Binary files /dev/null and b/img/features/aiPromptExample.png differ diff --git a/img/features/aiPromptExample_en.png b/img/features/aiPromptExample_en.png new file mode 100644 index 000000000..8e7a4954d Binary files /dev/null and b/img/features/aiPromptExample_en.png differ diff --git a/img/features/aiPromptTrigger.png b/img/features/aiPromptTrigger.png new file mode 100644 index 000000000..b0d00082d Binary files /dev/null and b/img/features/aiPromptTrigger.png differ diff --git a/img/features/apifoxConfigProject.png b/img/features/apifoxConfigProject.png new file mode 100644 index 000000000..ec59755e7 Binary files /dev/null and b/img/features/apifoxConfigProject.png differ diff --git a/img/features/apifoxConfigProject_en.png b/img/features/apifoxConfigProject_en.png new file mode 100644 index 000000000..9ac25a222 Binary files /dev/null and b/img/features/apifoxConfigProject_en.png differ diff --git a/img/features/apifoxGenerateApikey.png b/img/features/apifoxGenerateApikey.png new file mode 100644 index 000000000..a78f4eb33 Binary files /dev/null and b/img/features/apifoxGenerateApikey.png differ diff --git a/img/features/apifoxGenerateApikey_en.png b/img/features/apifoxGenerateApikey_en.png new file mode 100644 index 000000000..c25a05c1f Binary files /dev/null and b/img/features/apifoxGenerateApikey_en.png differ diff --git a/img/features/apifoxSyncApi.png b/img/features/apifoxSyncApi.png new file mode 100644 index 000000000..0f5769119 Binary files /dev/null and b/img/features/apifoxSyncApi.png differ diff --git a/img/features/apifoxSyncApi_en.png b/img/features/apifoxSyncApi_en.png new file mode 100644 index 000000000..5945405f7 Binary files /dev/null and b/img/features/apifoxSyncApi_en.png differ diff --git a/img/features/apifoxSyncEnvironment.png b/img/features/apifoxSyncEnvironment.png new file mode 100644 index 000000000..a407f2601 Binary files /dev/null and b/img/features/apifoxSyncEnvironment.png differ diff --git a/img/features/apifoxSyncEnvironment_en.png b/img/features/apifoxSyncEnvironment_en.png new file mode 100644 index 000000000..3735c0e96 Binary files /dev/null and b/img/features/apifoxSyncEnvironment_en.png differ diff --git a/img/format.gif b/img/format.gif new file mode 100644 index 000000000..e96d94ec7 Binary files /dev/null and b/img/format.gif differ diff --git a/img/generateSwitch.png b/img/generateSwitch.png new file mode 100644 index 000000000..05f729134 Binary files /dev/null and b/img/generateSwitch.png differ diff --git a/img/generateSwitch_en.png b/img/generateSwitch_en.png new file mode 100644 index 000000000..18babbffa Binary files /dev/null and b/img/generateSwitch_en.png differ diff --git a/img/globalRequestHeader.png b/img/globalRequestHeader.png new file mode 100644 index 000000000..105cd8748 Binary files /dev/null and b/img/globalRequestHeader.png differ diff --git a/img/headerGroup.png b/img/headerGroup.png new file mode 100644 index 000000000..064c0fc28 Binary files /dev/null and b/img/headerGroup.png differ diff --git a/img/headerSwitch.gif b/img/headerSwitch.gif new file mode 100644 index 000000000..b3c175885 Binary files /dev/null and b/img/headerSwitch.gif differ diff --git a/img/help.png b/img/help.png new file mode 100644 index 000000000..fd1bc1622 Binary files /dev/null and b/img/help.png differ diff --git a/img/history.png b/img/history.png new file mode 100644 index 000000000..1ba284581 Binary files /dev/null and b/img/history.png differ diff --git a/img/history_en.png b/img/history_en.png new file mode 100644 index 000000000..d048db01b Binary files /dev/null and b/img/history_en.png differ diff --git a/img/howToUse.gif b/img/howToUse.gif new file mode 100644 index 000000000..2e6857d7c Binary files /dev/null and b/img/howToUse.gif differ diff --git a/img/howToUse_en.gif b/img/howToUse_en.gif new file mode 100644 index 000000000..83e145803 Binary files /dev/null and b/img/howToUse_en.gif differ diff --git a/img/http/delete_dark.svg b/img/http/delete_dark.svg new file mode 100644 index 000000000..08a7d5816 --- /dev/null +++ b/img/http/delete_dark.svg @@ -0,0 +1,4 @@ + + +DEL + \ No newline at end of file diff --git a/img/http/get_dark.svg b/img/http/get_dark.svg new file mode 100644 index 000000000..f329338a0 --- /dev/null +++ b/img/http/get_dark.svg @@ -0,0 +1,4 @@ + + + GET + \ No newline at end of file diff --git a/img/http/new/delete_dark.svg b/img/http/new/delete_dark.svg new file mode 100644 index 000000000..6cb2c1f7f --- /dev/null +++ b/img/http/new/delete_dark.svg @@ -0,0 +1,5 @@ + + + +D + diff --git a/img/http/new/get_dark.svg b/img/http/new/get_dark.svg new file mode 100644 index 000000000..4a6937d92 --- /dev/null +++ b/img/http/new/get_dark.svg @@ -0,0 +1,5 @@ + + + +G + diff --git a/img/http/new/patch_dark.svg b/img/http/new/patch_dark.svg new file mode 100644 index 000000000..a3766d5f4 --- /dev/null +++ b/img/http/new/patch_dark.svg @@ -0,0 +1,5 @@ + + + +P + diff --git a/img/http/new/post_dark.svg b/img/http/new/post_dark.svg new file mode 100644 index 000000000..afa461395 --- /dev/null +++ b/img/http/new/post_dark.svg @@ -0,0 +1,5 @@ + + + +P + diff --git a/img/http/new/put_dark.svg b/img/http/new/put_dark.svg new file mode 100644 index 000000000..8085f1c2a --- /dev/null +++ b/img/http/new/put_dark.svg @@ -0,0 +1,5 @@ + + + +P + diff --git a/img/http/patch_dark.svg b/img/http/patch_dark.svg new file mode 100644 index 000000000..6fbed21d2 --- /dev/null +++ b/img/http/patch_dark.svg @@ -0,0 +1,4 @@ + + + PATCH + \ No newline at end of file diff --git a/img/http/post_dark.svg b/img/http/post_dark.svg new file mode 100644 index 000000000..d7b886da2 --- /dev/null +++ b/img/http/post_dark.svg @@ -0,0 +1,4 @@ + + +POST + \ No newline at end of file diff --git a/img/http/put_dark.svg b/img/http/put_dark.svg new file mode 100644 index 000000000..d0f171d12 --- /dev/null +++ b/img/http/put_dark.svg @@ -0,0 +1,4 @@ + + +PUT + \ No newline at end of file diff --git a/img/icon/array.svg b/img/icon/array.svg new file mode 100644 index 000000000..df89defb8 --- /dev/null +++ b/img/icon/array.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/icon/boolean.svg b/img/icon/boolean.svg new file mode 100644 index 000000000..d57c5c058 --- /dev/null +++ b/img/icon/boolean.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/icon/curl_dark.svg b/img/icon/curl_dark.svg new file mode 100644 index 000000000..0004464b0 --- /dev/null +++ b/img/icon/curl_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/icon/file.svg b/img/icon/file.svg new file mode 100644 index 000000000..139ce306d --- /dev/null +++ b/img/icon/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/icon/number.svg b/img/icon/number.svg new file mode 100644 index 000000000..a10cca7d7 --- /dev/null +++ b/img/icon/number.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/icon/object.svg b/img/icon/object.svg new file mode 100644 index 000000000..dc466f8f0 --- /dev/null +++ b/img/icon/object.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/icon/string.svg b/img/icon/string.svg new file mode 100644 index 000000000..174e6fd59 --- /dev/null +++ b/img/icon/string.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/ignoreDataMapping.png b/img/ignoreDataMapping.png new file mode 100644 index 000000000..54bb95152 Binary files /dev/null and b/img/ignoreDataMapping.png differ diff --git a/img/ignoreDataMapping_en.png b/img/ignoreDataMapping_en.png new file mode 100644 index 000000000..25445f0d7 Binary files /dev/null and b/img/ignoreDataMapping_en.png differ diff --git a/img/index/0.png b/img/index/0.png new file mode 100644 index 000000000..5ea45a82f Binary files /dev/null and b/img/index/0.png differ diff --git a/img/index/1.png b/img/index/1.png new file mode 100644 index 000000000..9e4a54b99 Binary files /dev/null and b/img/index/1.png differ diff --git a/img/index/2.png b/img/index/2.png new file mode 100644 index 000000000..1d82ccd79 Binary files /dev/null and b/img/index/2.png differ diff --git a/img/index/3.png b/img/index/3.png new file mode 100644 index 000000000..2853f9fb7 Binary files /dev/null and b/img/index/3.png differ diff --git a/img/index/4.png b/img/index/4.png new file mode 100644 index 000000000..9e0a4f7d5 Binary files /dev/null and b/img/index/4.png differ diff --git a/img/index/5.png b/img/index/5.png new file mode 100644 index 000000000..e74302d40 Binary files /dev/null and b/img/index/5.png differ diff --git a/img/index/6.png b/img/index/6.png new file mode 100644 index 000000000..23e23e412 Binary files /dev/null and b/img/index/6.png differ diff --git a/img/installLocal.png b/img/installLocal.png new file mode 100644 index 000000000..4e9519a0c Binary files /dev/null and b/img/installLocal.png differ diff --git a/img/jaxrs.gif b/img/jaxrs.gif new file mode 100644 index 000000000..1862ab89a Binary files /dev/null and b/img/jaxrs.gif differ diff --git a/img/json.png b/img/json.png new file mode 100644 index 000000000..d9e37325e Binary files /dev/null and b/img/json.png differ diff --git a/img/json_en.png b/img/json_en.png new file mode 100644 index 000000000..fa8b49d2f Binary files /dev/null and b/img/json_en.png differ diff --git a/img/kotlinSupport.png b/img/kotlinSupport.png new file mode 100644 index 000000000..e7eb6f65e Binary files /dev/null and b/img/kotlinSupport.png differ diff --git a/img/link/cubic-logo.png b/img/link/cubic-logo.png new file mode 100644 index 000000000..5cff75d8f Binary files /dev/null and b/img/link/cubic-logo.png differ diff --git a/img/link/dantecloud.png b/img/link/dantecloud.png new file mode 100644 index 000000000..ce8b6bfb2 Binary files /dev/null and b/img/link/dantecloud.png differ diff --git a/img/link/dynamictp-logo.png b/img/link/dynamictp-logo.png new file mode 100644 index 000000000..869382b04 Binary files /dev/null and b/img/link/dynamictp-logo.png differ diff --git a/img/link/easy-es.png b/img/link/easy-es.png new file mode 100644 index 000000000..6b5aead7e Binary files /dev/null and b/img/link/easy-es.png differ diff --git a/img/link/easypdf.png b/img/link/easypdf.png new file mode 100644 index 000000000..7a7605fec Binary files /dev/null and b/img/link/easypdf.png differ diff --git a/img/link/fastRequest.gif b/img/link/fastRequest.gif new file mode 100644 index 000000000..7cdd59faf Binary files /dev/null and b/img/link/fastRequest.gif differ diff --git a/img/link/forest-logo.png b/img/link/forest-logo.png new file mode 100644 index 000000000..7264a893e Binary files /dev/null and b/img/link/forest-logo.png differ diff --git a/img/link/gitee-logo.png b/img/link/gitee-logo.png new file mode 100644 index 000000000..1144c9ac8 Binary files /dev/null and b/img/link/gitee-logo.png differ diff --git a/img/link/gobrs-async.png b/img/link/gobrs-async.png new file mode 100644 index 000000000..d30a693d4 Binary files /dev/null and b/img/link/gobrs-async.png differ diff --git a/img/link/hertzbeat-logo.png b/img/link/hertzbeat-logo.png new file mode 100644 index 000000000..bf9a5f42c Binary files /dev/null and b/img/link/hertzbeat-logo.png differ diff --git a/img/link/hertzbeat.svg b/img/link/hertzbeat.svg new file mode 100644 index 000000000..5ba605816 --- /dev/null +++ b/img/link/hertzbeat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/link/hmily-logo.png b/img/link/hmily-logo.png new file mode 100644 index 000000000..e9836d16c Binary files /dev/null and b/img/link/hmily-logo.png differ diff --git a/img/link/hutool-logo.png b/img/link/hutool-logo.png new file mode 100644 index 000000000..14869cd89 Binary files /dev/null and b/img/link/hutool-logo.png differ diff --git a/img/link/hutool.svg b/img/link/hutool.svg new file mode 100644 index 000000000..047ecf719 --- /dev/null +++ b/img/link/hutool.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/link/imageCombiner.png b/img/link/imageCombiner.png new file mode 100644 index 000000000..37c68bc47 Binary files /dev/null and b/img/link/imageCombiner.png differ diff --git a/img/link/jpom-logo.png b/img/link/jpom-logo.png new file mode 100644 index 000000000..3ff53a684 Binary files /dev/null and b/img/link/jpom-logo.png differ diff --git a/img/link/koalas-logo.png b/img/link/koalas-logo.png new file mode 100644 index 000000000..2dec83d5a Binary files /dev/null and b/img/link/koalas-logo.png differ diff --git a/img/link/lite-flow.png b/img/link/lite-flow.png new file mode 100644 index 000000000..5fa9357a3 Binary files /dev/null and b/img/link/lite-flow.png differ diff --git a/img/link/maxkey-logo.png b/img/link/maxkey-logo.png new file mode 100644 index 000000000..d7049df65 Binary files /dev/null and b/img/link/maxkey-logo.png differ diff --git a/img/link/mendmix-logo.png b/img/link/mendmix-logo.png new file mode 100644 index 000000000..12ce82c69 Binary files /dev/null and b/img/link/mendmix-logo.png differ diff --git a/img/link/myth-logo.png b/img/link/myth-logo.png new file mode 100644 index 000000000..8584d13a4 Binary files /dev/null and b/img/link/myth-logo.png differ diff --git a/img/link/northstar-logo.png b/img/link/northstar-logo.png new file mode 100644 index 000000000..a457c8dc3 Binary files /dev/null and b/img/link/northstar-logo.png differ diff --git a/img/link/oschina-logo.png b/img/link/oschina-logo.png new file mode 100644 index 000000000..baa0619a3 Binary files /dev/null and b/img/link/oschina-logo.png differ diff --git a/img/link/preview/cubic.png b/img/link/preview/cubic.png new file mode 100644 index 000000000..8e1e96a8e Binary files /dev/null and b/img/link/preview/cubic.png differ diff --git a/img/link/preview/danteCloud.png b/img/link/preview/danteCloud.png new file mode 100644 index 000000000..dc7e93b76 Binary files /dev/null and b/img/link/preview/danteCloud.png differ diff --git a/img/link/preview/dynamictp.png b/img/link/preview/dynamictp.png new file mode 100644 index 000000000..a3a447a67 Binary files /dev/null and b/img/link/preview/dynamictp.png differ diff --git a/img/link/preview/easy-es.png b/img/link/preview/easy-es.png new file mode 100644 index 000000000..ef5d34d7a Binary files /dev/null and b/img/link/preview/easy-es.png differ diff --git a/img/link/preview/easy-trans.png b/img/link/preview/easy-trans.png new file mode 100644 index 000000000..289bad3ee Binary files /dev/null and b/img/link/preview/easy-trans.png differ diff --git a/img/link/preview/forest.png b/img/link/preview/forest.png new file mode 100644 index 000000000..d420f823f Binary files /dev/null and b/img/link/preview/forest.png differ diff --git a/img/link/preview/gobrsAsync.png b/img/link/preview/gobrsAsync.png new file mode 100644 index 000000000..6350baef0 Binary files /dev/null and b/img/link/preview/gobrsAsync.png differ diff --git a/img/link/preview/hertzbeat.png b/img/link/preview/hertzbeat.png new file mode 100644 index 000000000..e647ba0d9 Binary files /dev/null and b/img/link/preview/hertzbeat.png differ diff --git a/img/link/preview/hope.png b/img/link/preview/hope.png new file mode 100644 index 000000000..a565969ed Binary files /dev/null and b/img/link/preview/hope.png differ diff --git a/img/link/preview/hutool.png b/img/link/preview/hutool.png new file mode 100644 index 000000000..5ebf8ca66 Binary files /dev/null and b/img/link/preview/hutool.png differ diff --git a/img/link/preview/imageCombiner.png b/img/link/preview/imageCombiner.png new file mode 100644 index 000000000..5df91eae9 Binary files /dev/null and b/img/link/preview/imageCombiner.png differ diff --git a/img/link/preview/jpom.png b/img/link/preview/jpom.png new file mode 100644 index 000000000..54c7612da Binary files /dev/null and b/img/link/preview/jpom.png differ diff --git a/img/link/preview/liteflow.png b/img/link/preview/liteflow.png new file mode 100644 index 000000000..bf95282df Binary files /dev/null and b/img/link/preview/liteflow.png differ diff --git a/img/link/preview/maxkey.png b/img/link/preview/maxkey.png new file mode 100644 index 000000000..e660ae4fd Binary files /dev/null and b/img/link/preview/maxkey.png differ diff --git a/img/link/preview/mendmix.png b/img/link/preview/mendmix.png new file mode 100644 index 000000000..60f51ce6a Binary files /dev/null and b/img/link/preview/mendmix.png differ diff --git a/img/link/preview/northstar.png b/img/link/preview/northstar.png new file mode 100644 index 000000000..0105d7002 Binary files /dev/null and b/img/link/preview/northstar.png differ diff --git a/img/link/preview/sa-token.png b/img/link/preview/sa-token.png new file mode 100644 index 000000000..683f352f6 Binary files /dev/null and b/img/link/preview/sa-token.png differ diff --git a/img/link/preview/stream-query.png b/img/link/preview/stream-query.png new file mode 100644 index 000000000..f9690e2c7 Binary files /dev/null and b/img/link/preview/stream-query.png differ diff --git a/img/link/preview/sureness.png b/img/link/preview/sureness.png new file mode 100644 index 000000000..7d5cae50c Binary files /dev/null and b/img/link/preview/sureness.png differ diff --git a/img/link/preview/tlog.png b/img/link/preview/tlog.png new file mode 100644 index 000000000..f31f12a54 Binary files /dev/null and b/img/link/preview/tlog.png differ diff --git a/img/link/preview/xeasypdf.png b/img/link/preview/xeasypdf.png new file mode 100644 index 000000000..dd67b7474 Binary files /dev/null and b/img/link/preview/xeasypdf.png differ diff --git a/img/link/preview/xiaonuo.png b/img/link/preview/xiaonuo.png new file mode 100644 index 000000000..3d017649e Binary files /dev/null and b/img/link/preview/xiaonuo.png differ diff --git a/img/link/raincat-logo.png b/img/link/raincat-logo.png new file mode 100644 index 000000000..cbfd62188 Binary files /dev/null and b/img/link/raincat-logo.png differ diff --git a/img/link/sa-token.png b/img/link/sa-token.png new file mode 100644 index 000000000..9fefa3c99 Binary files /dev/null and b/img/link/sa-token.png differ diff --git a/img/link/snowy.png b/img/link/snowy.png new file mode 100644 index 000000000..b40e5deeb Binary files /dev/null and b/img/link/snowy.png differ diff --git a/img/link/sureness-logo.png b/img/link/sureness-logo.png new file mode 100644 index 000000000..36cdf3276 Binary files /dev/null and b/img/link/sureness-logo.png differ diff --git a/img/link/tlog-logo.png b/img/link/tlog-logo.png new file mode 100644 index 000000000..5c5dc8407 Binary files /dev/null and b/img/link/tlog-logo.png differ diff --git a/img/logo/homepage.png b/img/logo/homepage.png new file mode 100644 index 000000000..b72ae6bcc Binary files /dev/null and b/img/logo/homepage.png differ diff --git a/img/logo/logo.svg b/img/logo/logo.svg new file mode 100644 index 000000000..a84da911f --- /dev/null +++ b/img/logo/logo.svg @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/logoDark.gif b/img/logoDark.gif new file mode 100644 index 000000000..d0151384d Binary files /dev/null and b/img/logoDark.gif differ diff --git a/img/logoDark1.gif b/img/logoDark1.gif new file mode 100644 index 000000000..9be04e953 Binary files /dev/null and b/img/logoDark1.gif differ diff --git a/img/logoLight.gif b/img/logoLight.gif new file mode 100644 index 000000000..0d3299e3d Binary files /dev/null and b/img/logoLight.gif differ diff --git a/img/logoLight1.gif b/img/logoLight1.gif new file mode 100644 index 000000000..f54bf62d6 Binary files /dev/null and b/img/logoLight1.gif differ diff --git a/img/logoLine.gif b/img/logoLine.gif new file mode 100644 index 000000000..3ae07bd03 Binary files /dev/null and b/img/logoLine.gif differ diff --git a/img/manageConfig.png b/img/manageConfig.png new file mode 100644 index 000000000..042de993e Binary files /dev/null and b/img/manageConfig.png differ diff --git a/img/manageConfig_en.png b/img/manageConfig_en.png new file mode 100644 index 000000000..9234ed033 Binary files /dev/null and b/img/manageConfig_en.png differ diff --git a/img/mergeRunAndDownload.png b/img/mergeRunAndDownload.png new file mode 100644 index 000000000..cec147e0c Binary files /dev/null and b/img/mergeRunAndDownload.png differ diff --git a/img/methodFilter.png b/img/methodFilter.png new file mode 100644 index 000000000..be82ed313 Binary files /dev/null and b/img/methodFilter.png differ diff --git a/img/moduleSearch.gif b/img/moduleSearch.gif new file mode 100644 index 000000000..819710763 Binary files /dev/null and b/img/moduleSearch.gif differ diff --git a/img/navigate2CurrentMethod.png b/img/navigate2CurrentMethod.png new file mode 100644 index 000000000..9dcd81506 Binary files /dev/null and b/img/navigate2CurrentMethod.png differ diff --git a/img/newLogoIcon.png b/img/newLogoIcon.png new file mode 100644 index 000000000..c7be9d605 Binary files /dev/null and b/img/newLogoIcon.png differ diff --git a/img/org/OSChina.svg b/img/org/OSChina.svg new file mode 100644 index 000000000..44e341b21 --- /dev/null +++ b/img/org/OSChina.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/org/gitee.svg b/img/org/gitee.svg new file mode 100644 index 000000000..f7c296f1c --- /dev/null +++ b/img/org/gitee.svg @@ -0,0 +1 @@ +logo_gitee@1xCreated with Sketch. \ No newline at end of file diff --git a/img/org/hutool.svg b/img/org/hutool.svg new file mode 100644 index 000000000..9fda81362 --- /dev/null +++ b/img/org/hutool.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/otherConfig.png b/img/otherConfig.png new file mode 100644 index 000000000..9a1f1188e Binary files /dev/null and b/img/otherConfig.png differ diff --git a/img/otherConfig_en.png b/img/otherConfig_en.png new file mode 100644 index 000000000..46cc47531 Binary files /dev/null and b/img/otherConfig_en.png differ diff --git a/img/paramDescription.png b/img/paramDescription.png new file mode 100644 index 000000000..220359e65 Binary files /dev/null and b/img/paramDescription.png differ diff --git a/img/pay/alipay.png b/img/pay/alipay.png new file mode 100644 index 000000000..0d8514ef6 Binary files /dev/null and b/img/pay/alipay.png differ diff --git a/img/pay/wechat.jpg b/img/pay/wechat.jpg new file mode 100644 index 000000000..b519c5d95 Binary files /dev/null and b/img/pay/wechat.jpg differ diff --git a/img/pluginDevelopGroup.png b/img/pluginDevelopGroup.png new file mode 100644 index 000000000..eb8c98b2e Binary files /dev/null and b/img/pluginDevelopGroup.png differ diff --git a/img/projectConfigParam.png b/img/projectConfigParam.png new file mode 100644 index 000000000..c8979b41d Binary files /dev/null and b/img/projectConfigParam.png differ diff --git a/img/projectConfigParam_en.png b/img/projectConfigParam_en.png new file mode 100644 index 000000000..8021746a8 Binary files /dev/null and b/img/projectConfigParam_en.png differ diff --git a/img/projectEnvUrl.png b/img/projectEnvUrl.png new file mode 100644 index 000000000..78ab9c96e Binary files /dev/null and b/img/projectEnvUrl.png differ diff --git a/img/projectEnvUrl_en.png b/img/projectEnvUrl_en.png new file mode 100644 index 000000000..2f93bdfad Binary files /dev/null and b/img/projectEnvUrl_en.png differ diff --git a/img/projectGlobalParam.png b/img/projectGlobalParam.png new file mode 100644 index 000000000..66feee955 Binary files /dev/null and b/img/projectGlobalParam.png differ diff --git a/img/quickAddHeaders.gif b/img/quickAddHeaders.gif new file mode 100644 index 000000000..92a0ed728 Binary files /dev/null and b/img/quickAddHeaders.gif differ diff --git a/img/rawHtmlPreview.png b/img/rawHtmlPreview.png new file mode 100644 index 000000000..bce8954a4 Binary files /dev/null and b/img/rawHtmlPreview.png differ diff --git a/img/regenerate.png b/img/regenerate.png new file mode 100644 index 000000000..c0ce483e2 Binary files /dev/null and b/img/regenerate.png differ diff --git a/img/regenerateNew.png b/img/regenerateNew.png new file mode 100644 index 000000000..f04f336e5 Binary files /dev/null and b/img/regenerateNew.png differ diff --git a/img/regenerate_en.png b/img/regenerate_en.png new file mode 100644 index 000000000..bccc4d1df Binary files /dev/null and b/img/regenerate_en.png differ diff --git a/img/rfr.svg b/img/rfr.svg new file mode 100644 index 000000000..27f041936 --- /dev/null +++ b/img/rfr.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/runInApiManagement.png b/img/runInApiManagement.png new file mode 100644 index 000000000..80393e9ec Binary files /dev/null and b/img/runInApiManagement.png differ diff --git a/img/save2ControllerGroup.png b/img/save2ControllerGroup.png new file mode 100644 index 000000000..2890a1ee5 Binary files /dev/null and b/img/save2ControllerGroup.png differ diff --git a/img/saveRequest.png b/img/saveRequest.png new file mode 100644 index 000000000..d17c94307 Binary files /dev/null and b/img/saveRequest.png differ diff --git a/img/saveRequest_en.png b/img/saveRequest_en.png new file mode 100644 index 000000000..9b6dd54a7 Binary files /dev/null and b/img/saveRequest_en.png differ diff --git a/img/script.png b/img/script.png new file mode 100644 index 000000000..41aaa0d15 Binary files /dev/null and b/img/script.png differ diff --git a/img/script.svg b/img/script.svg new file mode 100644 index 000000000..21f156022 --- /dev/null +++ b/img/script.svg @@ -0,0 +1 @@ +Start前置脚本Do request后置脚本End \ No newline at end of file diff --git a/img/script_en.png b/img/script_en.png new file mode 100644 index 000000000..cd2ac58af Binary files /dev/null and b/img/script_en.png differ diff --git a/img/script_en.svg b/img/script_en.svg new file mode 100644 index 000000000..a3e3d4a53 --- /dev/null +++ b/img/script_en.svg @@ -0,0 +1 @@ +StartPre-request scriptDo requestPost-request scriptEnd \ No newline at end of file diff --git a/img/searchEveryWhere.gif b/img/searchEveryWhere.gif new file mode 100644 index 000000000..11c6a8db0 Binary files /dev/null and b/img/searchEveryWhere.gif differ diff --git a/img/searchEveryWhereDescription.png b/img/searchEveryWhereDescription.png new file mode 100644 index 000000000..a728e3d41 Binary files /dev/null and b/img/searchEveryWhereDescription.png differ diff --git a/img/searchEveryWhereHighlight.png b/img/searchEveryWhereHighlight.png new file mode 100644 index 000000000..fcb25c9b2 Binary files /dev/null and b/img/searchEveryWhereHighlight.png differ diff --git a/img/searchEveryWhereModule.png b/img/searchEveryWhereModule.png new file mode 100644 index 000000000..d9c6c831c Binary files /dev/null and b/img/searchEveryWhereModule.png differ diff --git a/img/searchEveryWhereStrategy.png b/img/searchEveryWhereStrategy.png new file mode 100644 index 000000000..5540afc67 Binary files /dev/null and b/img/searchEveryWhereStrategy.png differ diff --git a/img/searchEveryWhere_en.png b/img/searchEveryWhere_en.png new file mode 100644 index 000000000..4519e4551 Binary files /dev/null and b/img/searchEveryWhere_en.png differ diff --git a/img/sendRequest.png b/img/sendRequest.png new file mode 100644 index 000000000..92ae259b1 Binary files /dev/null and b/img/sendRequest.png differ diff --git a/img/settingManager.png b/img/settingManager.png new file mode 100644 index 000000000..9d0302e4b Binary files /dev/null and b/img/settingManager.png differ diff --git a/img/settingManager_en.png b/img/settingManager_en.png new file mode 100644 index 000000000..4058bb56e Binary files /dev/null and b/img/settingManager_en.png differ diff --git a/img/shareApi.png b/img/shareApi.png new file mode 100644 index 000000000..d81b53ace Binary files /dev/null and b/img/shareApi.png differ diff --git a/img/shareApi_en.png b/img/shareApi_en.png new file mode 100644 index 000000000..ce513ab5a Binary files /dev/null and b/img/shareApi_en.png differ diff --git a/img/shareDocButton.png b/img/shareDocButton.png new file mode 100644 index 000000000..aa1c2fec7 Binary files /dev/null and b/img/shareDocButton.png differ diff --git a/img/shortcut.png b/img/shortcut.png new file mode 100644 index 000000000..6a4d7a52d Binary files /dev/null and b/img/shortcut.png differ diff --git a/img/shortcutSendAndDownload.png b/img/shortcutSendAndDownload.png new file mode 100644 index 000000000..2f53a9703 Binary files /dev/null and b/img/shortcutSendAndDownload.png differ diff --git a/img/skill/multiFileUpload.png b/img/skill/multiFileUpload.png new file mode 100644 index 000000000..48d61d7d3 Binary files /dev/null and b/img/skill/multiFileUpload.png differ diff --git a/img/skill/urlError.png b/img/skill/urlError.png new file mode 100644 index 000000000..7ee38cbf0 Binary files /dev/null and b/img/skill/urlError.png differ diff --git a/img/skill/urlError_en.png b/img/skill/urlError_en.png new file mode 100644 index 000000000..82345279a Binary files /dev/null and b/img/skill/urlError_en.png differ diff --git a/img/slack.png b/img/slack.png new file mode 100644 index 000000000..87e05388e Binary files /dev/null and b/img/slack.png differ diff --git a/img/sponsor/apifox-home.png b/img/sponsor/apifox-home.png new file mode 100644 index 000000000..904694eb3 Binary files /dev/null and b/img/sponsor/apifox-home.png differ diff --git a/img/sponsor/apifox-line.png b/img/sponsor/apifox-line.png new file mode 100644 index 000000000..20bf4b4f6 Binary files /dev/null and b/img/sponsor/apifox-line.png differ diff --git a/img/sponsor/apifox.png b/img/sponsor/apifox.png new file mode 100644 index 000000000..3f7731298 Binary files /dev/null and b/img/sponsor/apifox.png differ diff --git a/img/sponsor/jnpfsoft-home.png b/img/sponsor/jnpfsoft-home.png new file mode 100644 index 000000000..7662205f8 Binary files /dev/null and b/img/sponsor/jnpfsoft-home.png differ diff --git a/img/sponsor/jnpfsoft-logo.png b/img/sponsor/jnpfsoft-logo.png new file mode 100644 index 000000000..ba33a9a69 Binary files /dev/null and b/img/sponsor/jnpfsoft-logo.png differ diff --git a/img/sponsor/jnpfsoft.png b/img/sponsor/jnpfsoft.png new file mode 100644 index 000000000..a6c526207 Binary files /dev/null and b/img/sponsor/jnpfsoft.png differ diff --git a/img/sponsor/mnhs.svg b/img/sponsor/mnhs.svg new file mode 100644 index 000000000..181233ff5 --- /dev/null +++ b/img/sponsor/mnhs.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/img/sponsor/mybatisCodeHelperPro.svg b/img/sponsor/mybatisCodeHelperPro.svg new file mode 100644 index 000000000..3d631a8bb --- /dev/null +++ b/img/sponsor/mybatisCodeHelperPro.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/img/sponsorIndex.png b/img/sponsorIndex.png new file mode 100644 index 000000000..fc2f44b12 Binary files /dev/null and b/img/sponsorIndex.png differ diff --git a/img/start.png b/img/start.png new file mode 100644 index 000000000..0633334bd Binary files /dev/null and b/img/start.png differ diff --git a/img/start.svg b/img/start.svg new file mode 100644 index 000000000..4e7e25c3f --- /dev/null +++ b/img/start.svg @@ -0,0 +1 @@ +开始配置环境名设置域名返回主界面选择项目名选择环境名点击方法左侧火箭R字图标点击发送按钮配置项目名 \ No newline at end of file diff --git a/img/start_en.svg b/img/start_en.svg new file mode 100644 index 000000000..ed7dfe67e --- /dev/null +++ b/img/start_en.svg @@ -0,0 +1 @@ +StartAdd envSet domainReturn main interfaceSelect projectSelect envClick R iconClick send buttonAdd project \ No newline at end of file diff --git a/img/stringGenerate.png b/img/stringGenerate.png new file mode 100644 index 000000000..1dddcbcbd Binary files /dev/null and b/img/stringGenerate.png differ diff --git a/img/stringGenerate_en.png b/img/stringGenerate_en.png new file mode 100644 index 000000000..3f26ec29a Binary files /dev/null and b/img/stringGenerate_en.png differ diff --git a/img/telegram.png b/img/telegram.png new file mode 100644 index 000000000..65454807c Binary files /dev/null and b/img/telegram.png differ diff --git a/img/timeoutSetting.png b/img/timeoutSetting.png new file mode 100644 index 000000000..d27782c66 Binary files /dev/null and b/img/timeoutSetting.png differ diff --git a/img/toggleUseSoftWrap.png b/img/toggleUseSoftWrap.png new file mode 100644 index 000000000..b38fb1cf9 Binary files /dev/null and b/img/toggleUseSoftWrap.png differ diff --git a/img/toolbarSend.png b/img/toolbarSend.png new file mode 100644 index 000000000..83d0b4ee2 Binary files /dev/null and b/img/toolbarSend.png differ diff --git a/img/toolwindow.png b/img/toolwindow.png new file mode 100644 index 000000000..4fd04a9bf Binary files /dev/null and b/img/toolwindow.png differ diff --git a/img/toolwindowNew.png b/img/toolwindowNew.png new file mode 100644 index 000000000..d9de2862c Binary files /dev/null and b/img/toolwindowNew.png differ diff --git a/img/toolwindowNew_en.png b/img/toolwindowNew_en.png new file mode 100644 index 000000000..6ee6ebba6 Binary files /dev/null and b/img/toolwindowNew_en.png differ diff --git a/img/toolwindowShortcut.png b/img/toolwindowShortcut.png new file mode 100644 index 000000000..398dd866b Binary files /dev/null and b/img/toolwindowShortcut.png differ diff --git a/img/twitter.png b/img/twitter.png new file mode 100644 index 000000000..94a4bd4b8 Binary files /dev/null and b/img/twitter.png differ diff --git a/img/wechat.jpg b/img/wechat.jpg new file mode 100644 index 000000000..8bfb5a5ad Binary files /dev/null and b/img/wechat.jpg differ diff --git a/img/wechatGroup.png b/img/wechatGroup.png new file mode 100644 index 000000000..dcd0cbfda Binary files /dev/null and b/img/wechatGroup.png differ diff --git a/img/wechatRfr.jpg b/img/wechatRfr.jpg new file mode 100644 index 000000000..16ef183ff Binary files /dev/null and b/img/wechatRfr.jpg differ diff --git a/img/whatsnew.png b/img/whatsnew.png new file mode 100644 index 000000000..664da7915 Binary files /dev/null and b/img/whatsnew.png differ diff --git a/img/whatsnewNotifcation.png b/img/whatsnewNotifcation.png new file mode 100644 index 000000000..620fd9bc2 Binary files /dev/null and b/img/whatsnewNotifcation.png differ diff --git a/img/whatsnew_en.png b/img/whatsnew_en.png new file mode 100644 index 000000000..54845de60 Binary files /dev/null and b/img/whatsnew_en.png differ diff --git a/img/whySponsor.png b/img/whySponsor.png new file mode 100644 index 000000000..86bf1d42f Binary files /dev/null and b/img/whySponsor.png differ diff --git a/img/youtrackSubmit.png b/img/youtrackSubmit.png new file mode 100644 index 000000000..9e0739b3f Binary files /dev/null and b/img/youtrackSubmit.png differ diff --git a/img/zhishixingqiu.png b/img/zhishixingqiu.png new file mode 100644 index 000000000..d12fc5347 Binary files /dev/null and b/img/zhishixingqiu.png differ diff --git a/index.html b/index.html new file mode 100644 index 000000000..286ed59bd --- /dev/null +++ b/index.html @@ -0,0 +1,51 @@ + + + + + + + + + + Api Buddy | Fast Request + + + + + +
    跳至主要內容
    Fast Request

    Fast Request

    为简化调试API而生

    快速上手

    Slackopen in new windowTwitteropen in new windowgithubopen in new window Jetbrains Pluginsopen in new window Version Downloads

    🌈 赞助商

    1. 赞助可以为您带来什么(必看)

    2. 成为赞助者

    Apifox
    API 设计、开发、测试一体化协作平台
    引迈信息
    一键生成表单信息

    优势

    🥇 功能

    免费版

    基础 API 调试插件

    IDEA 2020.3~2021.1.3基础使用

    🎉 致谢

    Restful Fast Request简称RFR自从 2021 年上线以来获得了很多人的支持。目前微信社区群 1000 多人,下载超过 Downloads,感谢各位支持者的一路同行,我们会努力提升软件的人性化程度,同时也让软件变得有趣。

    感谢 OSCHINA 和 Gitee 官方平台对RFR项目的推荐和肯定。Restful Fast Request2021open in new window 年度获得"OSC 年度最受欢迎个人项目" Top 15 殊荣。

    设计师森阳sssenyang@qq.com logo设计

    🤝 联系我们

    如果遇到了问题,请通过以下方式联系我们,将会有更快为你解决问题,同时群里全部都是 Javaer,经常会讨论一些技术问题,热点新闻,跳槽,吐槽等,可以帮助你学到一些东西。

    微信技术群twitteropen in new window
    wechat grouptwitter
    如果扫码失败请直接搜微信号 FastRequest99欢迎关注官方 Twitter
    + + + diff --git a/js/ad.js b/js/ad.js new file mode 100644 index 000000000..fbe9072e6 --- /dev/null +++ b/js/ad.js @@ -0,0 +1,22 @@ +function ABDetected() { + var adBlockDetected_div = document.createElement("div"); + document.body.appendChild(adBlockDetected_div); + var navbar = document.querySelector(".vp-navbar"); + navbar.style.cssText = "transition:top 300ms;top:33px"; + adBlockDetected_div.style.cssText = + "position: fixed; top: 0; left: 0; width: 100%; background: #E01E5A; color: #fff; z-index: 9999999999; font-size: 14px; text-align: center; line-height: 1.5; font-weight: bold; padding-top: 6px; padding-bottom: 6px;"; + adBlockDetected_div.innerHTML = + "我们的广告服务商 并不跟踪您的隐私,为了支持本站的长期运营,请将我们的网站 加入广告拦截器的白名单。"; + document.getElementsByTagName("body")[0].appendChild(adBlockDetected_div); + // add a close button to the right side of the div + var adBlockDetected_close = document.createElement("div"); + adBlockDetected_close.style.cssText = + "position: absolute; top: 0; right: 10px; width: 30px; height: 30px; background: #E01E5A; color: #fff; z-index: 9999999999; line-height: 30px; cursor: pointer;"; + adBlockDetected_close.innerHTML = "×"; + adBlockDetected_div.appendChild(adBlockDetected_close); + // add a click event to the close button + adBlockDetected_close.onclick = function () { + this.parentNode.parentNode.removeChild(this.parentNode); + navbar.style.cssText = "transition:top 300ms;top:0"; + }; +} diff --git a/js/baidu.js b/js/baidu.js new file mode 100644 index 000000000..5db0d9cb8 --- /dev/null +++ b/js/baidu.js @@ -0,0 +1,7 @@ +var _hmt = _hmt || []; +(function () { + var hm = document.createElement("script"); + hm.src = "https://hm.baidu.com/hm.js?3f42577ac1e8b55e43134363d33f2e80"; + var s = document.getElementsByTagName("script")[0]; + s.parentNode.insertBefore(hm, s); +})(); diff --git a/js/baiduGithub.js b/js/baiduGithub.js new file mode 100644 index 000000000..20033842d --- /dev/null +++ b/js/baiduGithub.js @@ -0,0 +1,7 @@ +var _hmt = _hmt || []; +(function () { + var hm = document.createElement("script"); + hm.src = "https://hm.baidu.com/hm.js?043378ed18afa16da4e4afdd6707d92f"; + var s = document.getElementsByTagName("script")[0]; + s.parentNode.insertBefore(hm, s); +})(); diff --git a/js/gtag.js b/js/gtag.js new file mode 100644 index 000000000..a941d8f8f --- /dev/null +++ b/js/gtag.js @@ -0,0 +1,678 @@ + +// Copyright 2012 Google Inc. All rights reserved. + +(function(){ + +var data = { +"resource": { + "version":"1", + + "macros":[{"function":"__e"},{"vtp_signal":0,"function":"__c","vtp_value":0},{"function":"__c","vtp_value":"google.cn"},{"function":"__c","vtp_value":0},{"vtp_signal":0,"function":"__c","vtp_value":0},{"function":"__c","vtp_value":"google.cn"},{"function":"__c","vtp_value":0}], + "tags":[{"function":"__ogt_1p_data_v2","priority":14,"vtp_isAutoEnabled":true,"vtp_autoCollectExclusionSelectors":["list",["map","exclusionSelector",""]],"vtp_isEnabled":true,"vtp_cityType":"CSS_SELECTOR","vtp_manualEmailEnabled":false,"vtp_firstNameType":"CSS_SELECTOR","vtp_countryType":"CSS_SELECTOR","vtp_cityValue":"","vtp_emailType":"CSS_SELECTOR","vtp_regionType":"CSS_SELECTOR","vtp_autoEmailEnabled":true,"vtp_postalCodeValue":"","vtp_lastNameValue":"","vtp_phoneType":"CSS_SELECTOR","vtp_phoneValue":"","vtp_streetType":"CSS_SELECTOR","vtp_autoPhoneEnabled":false,"vtp_postalCodeType":"CSS_SELECTOR","vtp_emailValue":"","vtp_firstNameValue":"","vtp_streetValue":"","vtp_lastNameType":"CSS_SELECTOR","vtp_autoAddressEnabled":false,"vtp_regionValue":"","vtp_countryValue":"","vtp_isAutoCollectPiiEnabledFlag":false,"tag_id":10},{"function":"__ccd_ga_first","priority":13,"vtp_instanceDestinationId":"G-Y8G30ZWCYE","tag_id":25},{"function":"__set_product_settings","priority":12,"vtp_instanceDestinationId":"G-Y8G30ZWCYE","vtp_foreignTldMacroResult":["macro",5],"vtp_isChinaVipRegionMacroResult":["macro",6],"tag_id":24},{"function":"__ogt_google_signals","priority":11,"vtp_googleSignals":"DISABLED","vtp_instanceDestinationId":"G-Y8G30ZWCYE","vtp_serverMacroResult":["macro",4],"tag_id":23},{"function":"__ccd_ga_regscope","priority":10,"vtp_settingsTable":["list",["map","redactFieldGroup","DEVICE_AND_GEO","disallowAllRegions",false,"disallowedRegions",""],["map","redactFieldGroup","GOOGLE_SIGNALS","disallowAllRegions",true,"disallowedRegions",""]],"vtp_instanceDestinationId":"G-Y8G30ZWCYE","tag_id":22},{"function":"__ccd_em_download","priority":9,"vtp_includeParams":true,"vtp_instanceDestinationId":"G-Y8G30ZWCYE","tag_id":21},{"function":"__ccd_em_form","priority":8,"vtp_includeParams":true,"vtp_instanceDestinationId":"G-Y8G30ZWCYE","tag_id":20},{"function":"__ccd_em_outbound_click","priority":7,"vtp_includeParams":true,"vtp_instanceDestinationId":"G-Y8G30ZWCYE","tag_id":19},{"function":"__ccd_em_page_view","priority":6,"vtp_historyEvents":true,"vtp_includeParams":true,"vtp_instanceDestinationId":"G-Y8G30ZWCYE","tag_id":18},{"function":"__ccd_em_scroll","priority":5,"vtp_includeParams":true,"vtp_instanceDestinationId":"G-Y8G30ZWCYE","tag_id":17},{"function":"__ccd_em_site_search","priority":4,"vtp_searchQueryParams":"q,s,search,query,keyword","vtp_includeParams":true,"vtp_instanceDestinationId":"G-Y8G30ZWCYE","tag_id":16},{"function":"__ccd_em_video","priority":3,"vtp_includeParams":true,"vtp_instanceDestinationId":"G-Y8G30ZWCYE","tag_id":15},{"function":"__ccd_conversion_marking","priority":2,"vtp_conversionRules":["list",["map","matchingRules","{\"type\":5,\"args\":[{\"stringValue\":\"purchase\"},{\"contextValue\":{\"namespaceType\":1,\"keyParts\":[\"eventName\"]}}]}"]],"vtp_instanceDestinationId":"G-Y8G30ZWCYE","tag_id":14},{"function":"__ccd_auto_redact","priority":1,"vtp_redactEmail":true,"vtp_instanceDestinationId":"G-Y8G30ZWCYE","tag_id":13},{"function":"__gct","vtp_trackingId":"G-Y8G30ZWCYE","vtp_sessionDuration":0,"vtp_googleSignals":["macro",1],"vtp_foreignTld":["macro",2],"vtp_restrictDomain":["macro",3],"vtp_eventSettings":["map"],"tag_id":7},{"function":"__ccd_ga_last","priority":0,"vtp_instanceDestinationId":"G-Y8G30ZWCYE","tag_id":12}], + "predicates":[{"function":"_eq","arg0":["macro",0],"arg1":"gtm.js"},{"function":"_eq","arg0":["macro",0],"arg1":"gtm.init"}], + "rules":[[["if",0],["add",14]],[["if",1],["add",0,15,13,12,11,10,9,8,7,6,5,4,3,2,1]]] +}, +"runtime":[ [50,"__ccd_auto_redact",[46,"a"],[50,"v",[46,"bk"],[36,[2,[15,"bk"],"replace",[7,[15,"u"],"\\$1"]]]],[50,"w",[46,"bk"],[52,"bl",["c",[15,"bk"]]],[52,"bm",[7]],[65,"bn",[2,[15,"bl"],"split",[7,""]],[46,[53,[52,"bo",[7,["v",[15,"bn"]]]],[52,"bp",["d",[15,"bn"]]],[22,[12,[15,"bp"],[45]],[46,[36,["d",["v",[15,"bk"]]]]]],[22,[21,[15,"bp"],[15,"bn"]],[46,[2,[15,"bo"],"push",[7,[15,"bp"]]],[22,[21,[15,"bn"],[2,[15,"bn"],"toLowerCase",[7]]],[46,[2,[15,"bo"],"push",[7,["d",[2,[15,"bn"],"toLowerCase",[7]]]]]],[46,[22,[21,[15,"bn"],[2,[15,"bn"],"toUpperCase",[7]]],[46,[2,[15,"bo"],"push",[7,["d",[2,[15,"bn"],"toUpperCase",[7]]]]]]]]]]],[22,[18,[17,[15,"bo"],"length"],1],[46,[2,[15,"bm"],"push",[7,[0,[0,"(?:",[2,[15,"bo"],"join",[7,"|"]]],")"]]]],[46,[2,[15,"bm"],"push",[7,[16,[15,"bo"],0]]]]]]]],[36,[2,[15,"bm"],"join",[7,""]]]],[50,"x",[46,"bk","bl","bm"],[52,"bn",["z",[15,"bk"],[15,"bm"]]],[22,[28,[15,"bn"]],[46,[36,[15,"bk"]]]],[22,[28,[17,[15,"bn"],"search"]],[46,[36,[15,"bk"]]]],[41,"bo"],[3,"bo",[17,[15,"bn"],"search"]],[65,"bp",[15,"bl"],[46,[53,[52,"bq",[7,["v",[15,"bp"]],["w",[15,"bp"]]]],[65,"br",[15,"bq"],[46,[53,[52,"bs",[30,[16,[15,"t"],[15,"br"]],[43,[15,"t"],[15,"br"],["b",[0,[0,"([?&]",[15,"br"]],"=)([^&]*)"],"gi"]]]],[3,"bo",[2,[15,"bo"],"replace",[7,[15,"bs"],[0,"$1",[15,"r"]]]]]]]]]]],[22,[20,[15,"bo"],[17,[15,"bn"],"search"]],[46,[36,[15,"bk"]]]],[22,[20,[16,[15,"bo"],0],"&"],[46,[3,"bo",[2,[15,"bo"],"substring",[7,1]]]]],[22,[21,[16,[15,"bo"],0],"?"],[46,[3,"bo",[0,"?",[15,"bo"]]]]],[22,[20,[15,"bo"],"?"],[46,[3,"bo",""]]],[43,[15,"bn"],"search",[15,"bo"]],[36,["ba",[15,"bn"],[15,"bm"]]]],[50,"z",[46,"bk","bl"],[22,[20,[15,"bl"],[17,[15,"s"],"PATH"]],[46,[3,"bk",[0,[15,"y"],[15,"bk"]]]]],[36,["g",[15,"bk"]]]],[50,"ba",[46,"bk","bl"],[41,"bm"],[3,"bm",""],[22,[20,[15,"bl"],[17,[15,"s"],"URL"]],[46,[53,[41,"bn"],[3,"bn",""],[22,[30,[17,[15,"bk"],"username"],[17,[15,"bk"],"password"]],[46,[3,"bn",[0,[15,"bn"],[0,[0,[0,[17,[15,"bk"],"username"],[39,[17,[15,"bk"],"password"],":",""]],[17,[15,"bk"],"password"]],"@"]]]]],[3,"bm",[0,[0,[0,[17,[15,"bk"],"protocol"],"//"],[15,"bn"]],[17,[15,"bk"],"host"]]]]]],[36,[0,[0,[0,[15,"bm"],[17,[15,"bk"],"pathname"]],[17,[15,"bk"],"search"]],[17,[15,"bk"],"hash"]]]],[50,"bb",[46,"bk","bl"],[41,"bm"],[3,"bm",[2,[15,"bk"],"replace",[7,[15,"n"],[15,"r"]]]],[22,[30,[20,[15,"bl"],[17,[15,"s"],"URL"]],[20,[15,"bl"],[17,[15,"s"],"PATH"]]],[46,[53,[52,"bn",["z",[15,"bm"],[15,"bl"]]],[22,[20,[15,"bn"],[44]],[46,[36,[15,"bm"]]]],[52,"bo",[17,[15,"bn"],"search"]],[52,"bp",[2,[15,"bo"],"replace",[7,[15,"o"],[15,"r"]]]],[22,[20,[15,"bo"],[15,"bp"]],[46,[36,[15,"bm"]]]],[43,[15,"bn"],"search",[15,"bp"]],[3,"bm",["ba",[15,"bn"],[15,"bl"]]]]]],[36,[15,"bm"]]],[50,"bc",[46,"bk"],[22,[20,[15,"bk"],[15,"q"]],[46,[36,[17,[15,"s"],"PATH"]]],[46,[22,[21,[2,[15,"p"],"indexOf",[7,[15,"bk"]]],[27,1]],[46,[36,[17,[15,"s"],"URL"]]],[46,[36,[17,[15,"s"],"TEXT"]]]]]]],[50,"bd",[46,"bk","bl"],[41,"bm"],[3,"bm",false],[52,"bn",["f",[15,"bk"]]],[38,[15,"bn"],[46,"string","array","object"],[46,[5,[46,[52,"bo",["bb",[15,"bk"],[15,"bl"]]],[22,[21,[15,"bk"],[15,"bo"]],[46,[36,[15,"bo"]]]],[4]]],[5,[46,[53,[41,"bp"],[3,"bp",0],[63,[7,"bp"],[23,[15,"bp"],[17,[15,"bk"],"length"]],[33,[15,"bp"],[3,"bp",[0,[15,"bp"],1]]],[46,[53,[52,"bq",["bd",[16,[15,"bk"],[15,"bp"]],[17,[15,"s"],"TEXT"]]],[22,[21,[15,"bq"],[44]],[46,[43,[15,"bk"],[15,"bp"],[15,"bq"]],[3,"bm",true]]]]]]],[4]]],[5,[46,[54,"bp",[15,"bk"],[46,[53,[52,"bq",["bd",[16,[15,"bk"],[15,"bp"]],[17,[15,"s"],"TEXT"]]],[22,[21,[15,"bq"],[44]],[46,[43,[15,"bk"],[15,"bp"],[15,"bq"]],[3,"bm",true]]]]]],[4]]]]],[36,[39,[15,"bm"],[15,"bk"],[44]]]],[50,"bj",[46,"bk","bl"],[52,"bm",[30,[2,[15,"bk"],"getMetadata",[7,[15,"bi"]]],[7]]],[22,[20,[2,[15,"bm"],"indexOf",[7,[15,"bl"]]],[27,1]],[46,[2,[15,"bm"],"push",[7,[15,"bl"]]]]],[2,[15,"bk"],"setMetadata",[7,[15,"bi"],[15,"bm"]]]],[52,"b",["require","internal.createRegex"]],[52,"c",["require","decodeUriComponent"]],[52,"d",["require","encodeUriComponent"]],[52,"e",[13,[41,"$0"],[3,"$0",["require","internal.getFlags"]],["$0"]]],[52,"f",["require","getType"]],[52,"g",["require","parseUrl"]],[52,"h",["require","internal.registerCcdCallback"]],[52,"i",[17,[15,"a"],"instanceDestinationId"]],[52,"j",[17,[15,"a"],"redactEmail"]],[52,"k",[17,[15,"a"],"redactQueryParams"]],[52,"l",[39,[15,"k"],[2,[15,"k"],"split",[7,","]],[7]]],[52,"m","is_sgtm_prehit"],[22,[1,[28,[17,[15,"l"],"length"]],[28,[15,"j"]]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[52,"n",["b","[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}","gi"]],[52,"o",["b",[0,"([A-Z0-9._-]|%25|%2B)+%40[A-Z0-9.-]","+\\.[A-Z]{2,}"],"gi"]],[52,"p",[7,"page_location","page_referrer","page_path","link_url","video_url","form_destination"]],[52,"q","page_path"],[52,"r","(redacted)"],[52,"s",[8,"TEXT",0,"URL",1,"PATH",2]],[52,"t",[8]],[52,"u",["b","([\\\\^$.|?*+(){}]|\\[|\\[)","g"]],[52,"y","http://."],[52,"be",15],[52,"bf",16],[52,"bg",23],[52,"bh",24],[52,"bi","event_usage"],["h",[15,"i"],[51,"",[7,"bk"],[22,[15,"j"],[46,[53,[52,"bl",[2,[15,"bk"],"getHitKeys",[7]]],[65,"bm",[15,"bl"],[46,[53,[22,[20,[15,"bm"],"_sst_parameters"],[46,[6]]],[52,"bn",[2,[15,"bk"],"getHitData",[7,[15,"bm"]]]],[22,[28,[15,"bn"]],[46,[6]]],[52,"bo",["bc",[15,"bm"]]],[52,"bp",["bd",[15,"bn"],[15,"bo"]]],[22,[21,[15,"bp"],[44]],[46,[2,[15,"bk"],"setHitData",[7,[15,"bm"],[15,"bp"]]],["bj",[15,"bk"],[39,[2,[15,"bk"],"getMetadata",[7,[15,"m"]]],[15,"bg"],[15,"be"]]]]]]]]]]],[22,[17,[15,"l"],"length"],[46,[65,"bl",[15,"p"],[46,[53,[52,"bm",[2,[15,"bk"],"getHitData",[7,[15,"bl"]]]],[22,[28,[15,"bm"]],[46,[6]]],[52,"bn",[39,[20,[15,"bl"],[15,"q"]],[17,[15,"s"],"PATH"],[17,[15,"s"],"URL"]]],[52,"bo",["x",[15,"bm"],[15,"l"],[15,"bn"]]],[22,[21,[15,"bo"],[15,"bm"]],[46,[2,[15,"bk"],"setHitData",[7,[15,"bl"],[15,"bo"]]],["bj",[15,"bk"],[39,[2,[15,"bk"],"getMetadata",[7,[15,"m"]]],[15,"bh"],[15,"bf"]]]]]]]]]]]],[2,[15,"a"],"gtmOnSuccess",[7]]] + ,[50,"__ccd_conversion_marking",[46,"a"],[22,[30,[28,[17,[15,"a"],"conversionRules"]],[20,[17,[17,[15,"a"],"conversionRules"],"length"],0]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[52,"b",["require","internal.copyPreHit"]],[52,"c",["require","internal.evaluateBooleanExpression"]],[52,"d",["require","internal.registerCcdCallback"]],[52,"e","is_conversion"],[52,"f","is_first_visit"],[52,"g","is_first_visit_conversion"],[52,"h","is_session_start"],[52,"i","is_session_start_conversion"],[52,"j","first_visit"],[52,"k","session_start"],[41,"l"],[41,"m"],["d",[17,[15,"a"],"instanceDestinationId"],[51,"",[7,"n"],[52,"o",[8,"preHit",[15,"n"]]],[65,"p",[17,[15,"a"],"conversionRules"],[46,[22,["c",[17,[15,"p"],"matchingRules"],[15,"o"]],[46,[2,[15,"n"],"setMetadata",[7,[15,"e"],true]],[4]]]]],[22,[2,[15,"n"],"getMetadata",[7,[15,"f"]]],[46,[22,[28,[15,"l"]],[46,[53,[52,"p",["b",[15,"n"],[8,"omitHitData",true,"omitMetadata",true]]],[2,[15,"p"],"setEventName",[7,[15,"j"]]],[3,"l",[8,"preHit",[15,"p"]]]]]],[65,"p",[17,[15,"a"],"conversionRules"],[46,[22,["c",[17,[15,"p"],"matchingRules"],[15,"l"]],[46,[2,[15,"n"],"setMetadata",[7,[15,"g"],true]],[4]]]]]]],[22,[2,[15,"n"],"getMetadata",[7,[15,"h"]]],[46,[22,[28,[15,"m"]],[46,[53,[52,"p",["b",[15,"n"],[8,"omitHitData",true,"omitMetadata",true]]],[2,[15,"p"],"setEventName",[7,[15,"k"]]],[3,"m",[8,"preHit",[15,"p"]]]]]],[65,"p",[17,[15,"a"],"conversionRules"],[46,[22,["c",[17,[15,"p"],"matchingRules"],[15,"m"]],[46,[2,[15,"n"],"setMetadata",[7,[15,"i"],true]],[4]]]]]]]]],[2,[15,"a"],"gtmOnSuccess",[7]],[36]] + ,[50,"__ccd_em_download",[46,"a"],[50,"r",[46,"x"],[36,[1,[15,"x"],[21,[2,[2,[15,"x"],"toLowerCase",[7]],"match",[7,[15,"q"]]],[45]]]]],[50,"s",[46,"x"],[52,"y",[2,[17,[15,"x"],"pathname"],"split",[7,"."]]],[52,"z",[39,[18,[17,[15,"y"],"length"],1],[16,[15,"y"],[37,[17,[15,"y"],"length"],1]],""]],[36,[16,[2,[15,"z"],"split",[7,"/"]],0]]],[50,"t",[46,"x"],[36,[39,[12,[2,[17,[15,"x"],"pathname"],"substring",[7,0,1]],"/"],[17,[15,"x"],"pathname"],[0,"/",[17,[15,"x"],"pathname"]]]]],[50,"u",[46,"x"],[41,"y"],[3,"y",""],[22,[1,[15,"x"],[17,[15,"x"],"href"]],[46,[53,[41,"z"],[3,"z",[2,[17,[15,"x"],"href"],"indexOf",[7,"#"]]],[3,"y",[39,[23,[15,"z"],0],[17,[15,"x"],"href"],[2,[17,[15,"x"],"href"],"substring",[7,0,[15,"z"]]]]]]]],[36,[15,"y"]]],[50,"w",[46,"x"],[52,"y",[8]],[43,[15,"y"],[15,"j"],true],[43,[15,"y"],[15,"f"],true],[43,[15,"x"],"eventMetadata",[15,"y"]]],[52,"b",[13,[41,"$0"],[3,"$0",["require","internal.getFlags"]],["$0"]]],[52,"c",["require","internal.getProductSettingsParameter"]],[52,"d",["require","templateStorage"]],[52,"e",[15,"__module_ccdEmDownloadActivity"]],[52,"f","speculative"],[52,"g","ae_block_downloads"],[52,"h","file_download"],[52,"i","isRegistered"],[52,"j","em_event"],[52,"k",[17,[15,"a"],"instanceDestinationId"]],[22,["c",[15,"k"],[15,"g"]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[2,[15,"e"],"registerDownloadActivityCallback",[7,[15,"k"],[17,[15,"a"],"includeParams"]]],[22,[2,[15,"d"],"getItem",[7,[15,"i"]]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[52,"l",["require","internal.addDataLayerEventListener"]],[52,"m",["require","internal.enableAutoEventOnLinkClick"]],[52,"n",["require","internal.getDestinationIds"]],[52,"o",["require","parseUrl"]],[52,"p",["require","internal.sendGtagEvent"]],[52,"q",[0,"^(pdf|xlsx?|docx?|txt|rtf|csv|exe|key|pp(s|t|tx)|7z|pkg|rar|gz|zip|avi|","mov|mp4|mpe?g|wmv|midi?|mp3|wav|wma)$"]],[52,"v",["m",[8,"checkValidation",true]]],[22,[28,[15,"v"]],[46,[2,[15,"a"],"gtmOnFailure",[7]],[36]]],[2,[15,"d"],"setItem",[7,[15,"i"],true]],["l","gtm.linkClick",[51,"",[7,"x","y"],["y"],[52,"z",[8,"eventId",[16,[15,"x"],"gtm.uniqueEventId"]]],[22,[16,[15,"b"],"enableDeferAllEnhancedMeasurement"],[46,[43,[15,"z"],"deferrable",true]]],[52,"ba",[16,[15,"x"],"gtm.elementUrl"]],[52,"bb",["o",[15,"ba"]]],[22,[28,[15,"bb"]],[46,[36]]],[52,"bc",["s",[15,"bb"]]],[22,[28,["r",[15,"bc"]]],[46,[36]]],[52,"bd",[8,"link_id",[16,[15,"x"],"gtm.elementId"],"link_url",["u",[15,"bb"]],"link_text",[16,[15,"x"],"gtm.elementText"],"file_name",["t",[15,"bb"]],"file_extension",[15,"bc"]]],["w",[15,"z"]],["p",["n"],[15,"h"],[15,"bd"],[15,"z"]]],[15,"v"]],[2,[15,"a"],"gtmOnSuccess",[7]]] + ,[50,"__ccd_em_form",[46,"a"],[50,"t",[46,"z"],[52,"ba",[30,[16,[15,"z"],[15,"l"]],[8]]],[43,[15,"ba"],"event_usage",[7,8]],[43,[15,"z"],[15,"l"],[15,"ba"]]],[50,"u",[46,"z","ba"],[52,"bb",[30,[16,[15,"z"],[15,"l"]],[8]]],[43,[15,"bb"],[15,"k"],true],[43,[15,"bb"],[15,"f"],true],[22,[1,[15,"o"],[16,[15,"ba"],"gtm.formCanceled"]],[46,[43,[15,"bb"],[15,"m"],true]]],[43,[15,"z"],[15,"l"],[15,"bb"]]],[52,"b",[13,[41,"$0"],[3,"$0",["require","internal.getFlags"]],["$0"]]],[52,"c",["require","internal.getProductSettingsParameter"]],[52,"d",["require","templateStorage"]],[52,"e",[15,"__module_ccdEmFormActivity"]],[52,"f","speculative"],[52,"g","ae_block_form"],[52,"h","form_submit"],[52,"i","form_start"],[52,"j","isRegistered"],[52,"k","em_event"],[52,"l","eventMetadata"],[52,"m","form_event_canceled"],[52,"n",[17,[15,"a"],"instanceDestinationId"]],[52,"o",[28,[28,[16,[15,"b"],"enableFormSkipValidation"]]]],[22,["c",[15,"n"],[15,"g"]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[2,[15,"e"],"registerFormActivityCallback",[7,[17,[15,"a"],"instanceDestinationId"],[17,[15,"a"],"skipValidation"],[17,[15,"a"],"includeParams"]]],[22,[2,[15,"d"],"getItem",[7,[15,"j"]]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[2,[15,"d"],"setItem",[7,[15,"j"],true]],[52,"p",["require","internal.addFormInteractionListener"]],[52,"q",["require","internal.addFormSubmitListener"]],[52,"r",["require","internal.getDestinationIds"]],[52,"s",["require","internal.sendGtagEvent"]],[52,"v",[8]],[52,"w",[51,"",[7,"z","ba"],[22,[15,"ba"],[46,["ba"]]],[52,"bb",[16,[15,"z"],"gtm.elementId"]],[22,[16,[15,"v"],[15,"bb"]],[46,[36]]],[43,[15,"v"],[15,"bb"],true],[52,"bc",[8,"form_id",[15,"bb"],"form_name",[16,[15,"z"],"gtm.interactedFormName"],"form_destination",[16,[15,"z"],"gtm.elementUrl"],"form_length",[16,[15,"z"],"gtm.interactedFormLength"],"first_field_id",[16,[15,"z"],"gtm.interactedFormFieldId"],"first_field_name",[16,[15,"z"],"gtm.interactedFormFieldName"],"first_field_type",[16,[15,"z"],"gtm.interactedFormFieldType"],"first_field_position",[16,[15,"z"],"gtm.interactedFormFieldPosition"]]],[52,"bd",[8,"eventId",[17,[15,"a"],"gtmEventId"]]],[22,[16,[15,"b"],"enableDeferAllEnhancedMeasurement"],[46,[43,[15,"bd"],"deferrable",true]]],["t",[15,"bd"]],["u",[15,"bd"],[15,"z"]],["s",["r"],[15,"i"],[15,"bc"],[15,"bd"]]]],[52,"x",[16,[15,"b"],"useEnableAutoEventOnFormApis"]],[52,"y",[51,"",[7,"z","ba"],["w",[15,"z"],[44]],[52,"bb",[8,"form_id",[16,[15,"z"],"gtm.elementId"],"form_name",[16,[15,"z"],"gtm.interactedFormName"],"form_destination",[16,[15,"z"],"gtm.elementUrl"],"form_length",[16,[15,"z"],"gtm.interactedFormLength"],"form_submit_text",[39,[15,"x"],[16,[15,"z"],"gtm.formSubmitElementText"],[16,[15,"z"],"gtm.formSubmitButtonText"]]]],[43,[15,"bb"],"event_callback",[15,"ba"]],[52,"bc",[8,"eventId",[17,[15,"a"],"gtmEventId"]]],[22,[16,[15,"b"],"enableDeferAllEnhancedMeasurement"],[46,[43,[15,"bc"],"deferrable",true]]],["t",[15,"bc"]],["u",[15,"bc"],[15,"z"]],["s",["r"],[15,"h"],[15,"bb"],[15,"bc"]]]],[22,[15,"x"],[46,[53,[52,"z",["require","internal.addDataLayerEventListener"]],[52,"ba",["require","internal.enableAutoEventOnFormSubmit"]],[52,"bb",["require","internal.enableAutoEventOnFormInteraction"]],[52,"bc",["bb"]],[22,[28,[15,"bc"]],[46,[2,[15,"a"],"gtmOnFailure",[7]],[36]]],["z","gtm.formInteract",[15,"w"],[15,"bc"]],[52,"bd",["ba",[8,"checkValidation",[28,[15,"o"]],"waitForTags",false]]],[22,[28,[15,"bd"]],[46,[2,[15,"a"],"gtmOnFailure",[7]],[36]]],["z","gtm.formSubmit",[15,"y"],[15,"bd"]]]],[46,["p",[15,"w"]],["q",[15,"y"],[8,"waitForCallbacks",false,"checkValidation",[28,[15,"o"]]]]]],[2,[15,"a"],"gtmOnSuccess",[7]]] + ,[50,"__ccd_em_outbound_click",[46,"a"],[50,"s",[46,"y"],[22,[28,[15,"y"]],[46,[36,[44]]]],[41,"z"],[3,"z",""],[22,[1,[15,"y"],[17,[15,"y"],"href"]],[46,[53,[41,"ba"],[3,"ba",[2,[17,[15,"y"],"href"],"indexOf",[7,"#"]]],[3,"z",[39,[23,[15,"ba"],0],[17,[15,"y"],"href"],[2,[17,[15,"y"],"href"],"substring",[7,0,[15,"ba"]]]]]]]],[36,[15,"z"]]],[50,"t",[46,"y"],[22,[28,[15,"y"]],[46,[36,[44]]]],[41,"z"],[3,"z",[17,[15,"y"],"hostname"]],[52,"ba",[2,[15,"z"],"match",[7,"^www\\d*\\."]]],[22,[1,[15,"ba"],[16,[15,"ba"],0]],[46,[3,"z",[2,[15,"z"],"substring",[7,[17,[16,[15,"ba"],0],"length"]]]]]],[36,[15,"z"]]],[50,"u",[46,"y"],[22,[28,[15,"y"]],[46,[36,false]]],[52,"z",[2,[17,[15,"y"],"hostname"],"toLowerCase",[7]]],[41,"ba"],[3,"ba",[2,["t",["q",["p"]]],"toLowerCase",[7]]],[41,"bb"],[3,"bb",[37,[17,[15,"z"],"length"],[17,[15,"ba"],"length"]]],[22,[1,[18,[15,"bb"],0],[29,[2,[15,"ba"],"charAt",[7,0]],"."]],[46,[32,[15,"bb"],[3,"bb",[37,[15,"bb"],1]]],[3,"ba",[0,".",[15,"ba"]]]]],[22,[1,[19,[15,"bb"],0],[12,[2,[15,"z"],"indexOf",[7,[15,"ba"],[15,"bb"]]],[15,"bb"]]],[46,[36,false]]],[36,true]],[50,"x",[46,"y"],[52,"z",[8]],[43,[15,"z"],[15,"j"],true],[43,[15,"z"],[15,"f"],true],[43,[15,"y"],"eventMetadata",[15,"z"]]],[52,"b",[13,[41,"$0"],[3,"$0",["require","internal.getFlags"]],["$0"]]],[52,"c",["require","internal.getProductSettingsParameter"]],[52,"d",["require","templateStorage"]],[52,"e",[15,"__module_ccdEmOutboundClickActivity"]],[52,"f","speculative"],[52,"g","ae_block_outbound_click"],[52,"h","click"],[52,"i","isRegistered"],[52,"j","em_event"],[52,"k",[17,[15,"a"],"instanceDestinationId"]],[22,["c",[15,"k"],[15,"g"]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[2,[15,"e"],"registerOutbackClickActivityCallback",[7,[15,"k"],[17,[15,"a"],"includeParams"]]],[22,[2,[15,"d"],"getItem",[7,[15,"i"]]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[52,"l",["require","internal.addDataLayerEventListener"]],[52,"m",["require","internal.enableAutoEventOnLinkClick"]],[52,"n",["require","internal.getDestinationIds"]],[52,"o",["require","internal.getRemoteConfigParameter"]],[52,"p",["require","getUrl"]],[52,"q",["require","parseUrl"]],[52,"r",["require","internal.sendGtagEvent"]],[52,"v",["o",[15,"k"],"cross_domain_conditions"]],[52,"w",["m",[8,"affiliateDomains",[15,"v"],"checkValidation",true,"waitForTags",false]]],[22,[28,[15,"w"]],[46,[2,[15,"a"],"gtmOnFailure",[7]],[36]]],[2,[15,"d"],"setItem",[7,[15,"i"],true]],["l","gtm.linkClick",[51,"",[7,"y","z"],[52,"ba",["q",[16,[15,"y"],"gtm.elementUrl"]]],[22,[28,["u",[15,"ba"]]],[46,["z"],[36]]],[52,"bb",[8,"link_id",[16,[15,"y"],"gtm.elementId"],"link_classes",[16,[15,"y"],"gtm.elementClasses"],"link_url",["s",[15,"ba"]],"link_domain",["t",[15,"ba"]],"outbound",true]],[43,[15,"bb"],"event_callback",[15,"z"]],[52,"bc",[8,"eventId",[16,[15,"y"],"gtm.uniqueEventId"]]],[22,[16,[15,"b"],"enableDeferAllEnhancedMeasurement"],[46,[43,[15,"bc"],"deferrable",true]]],["x",[15,"bc"]],["r",["n"],[15,"h"],[15,"bb"],[15,"bc"]]],[15,"w"]],[2,[15,"a"],"gtmOnSuccess",[7]]] + ,[50,"__ccd_em_page_view",[46,"a"],[50,"s",[46,"t"],[52,"u",[8]],[43,[15,"u"],[15,"k"],true],[43,[15,"u"],[15,"g"],true],[43,[15,"t"],"eventMetadata",[15,"u"]]],[22,[28,[17,[15,"a"],"historyEvents"]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[52,"b",[13,[41,"$0"],[3,"$0",["require","internal.getFlags"]],["$0"]]],[52,"c",["require","internal.getProductSettingsParameter"]],[52,"d",["require","internal.setRemoteConfigParameter"]],[52,"e",["require","templateStorage"]],[52,"f",[15,"__module_ccdEmPageViewActivity"]],[52,"g","speculative"],[52,"h","ae_block_history"],[52,"i","page_view"],[52,"j","isRegistered"],[52,"k","em_event"],[52,"l",[17,[15,"a"],"instanceDestinationId"]],[22,["c",[15,"l"],[15,"h"]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[2,[15,"f"],"registerPageViewActivityCallback",[7,[15,"l"]]],[22,[2,[15,"e"],"getItem",[7,[15,"j"]]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[52,"m",["require","internal.addDataLayerEventListener"]],[52,"n",["require","internal.enableAutoEventOnHistoryChange"]],[52,"o",["require","internal.getDestinationIds"]],[52,"p",["require","internal.sendGtagEvent"]],[52,"q",[8,"interval",1000]],[22,[16,[15,"b"],"enableV1HistoryEventInApi"],[46,[43,[15,"q"],"useV2EventName",true]]],[52,"r",["n",[15,"q"]]],[22,[28,[15,"r"]],[46,[2,[15,"a"],"gtmOnFailure",[7]],[36]]],[2,[15,"e"],"setItem",[7,[15,"j"],true]],["m","gtm.historyChange-v2",[51,"",[7,"t","u"],["u"],[52,"v",[16,[15,"t"],"gtm.oldUrl"]],[22,[20,[16,[15,"t"],"gtm.newUrl"],[15,"v"]],[46,[36]]],[52,"w",[16,[15,"t"],"gtm.historyChangeSource"]],[22,[1,[1,[21,[15,"w"],"pushState"],[21,[15,"w"],"popstate"]],[21,[15,"w"],"replaceState"]],[46,[36]]],[52,"x",[8]],[22,[17,[15,"a"],"includeParams"],[46,[43,[15,"x"],"page_location",[16,[15,"t"],"gtm.newUrl"]],[43,[15,"x"],"page_referrer",[15,"v"]]]],[52,"y",[8,"eventId",[16,[15,"t"],"gtm.uniqueEventId"]]],[22,[16,[15,"b"],"enableDeferAllEnhancedMeasurement"],[46,[43,[15,"y"],"deferrable",true]]],["s",[15,"y"]],["p",["o"],[15,"i"],[15,"x"],[15,"y"]]],[15,"r"]],[2,[15,"a"],"gtmOnSuccess",[7]]] + ,[50,"__ccd_em_scroll",[46,"a"],[50,"q",[46,"r"],[52,"s",[8]],[43,[15,"s"],[15,"j"],true],[43,[15,"s"],[15,"f"],true],[43,[15,"r"],"eventMetadata",[15,"s"]]],[52,"b",[13,[41,"$0"],[3,"$0",["require","internal.getFlags"]],["$0"]]],[52,"c",["require","internal.getProductSettingsParameter"]],[52,"d",["require","templateStorage"]],[52,"e",[15,"__module_ccdEmScrollActivity"]],[52,"f","speculative"],[52,"g","ae_block_scroll"],[52,"h","scroll"],[52,"i","isRegistered"],[52,"j","em_event"],[52,"k",[17,[15,"a"],"instanceDestinationId"]],[22,["c",[15,"k"],[15,"g"]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[2,[15,"e"],"registerScrollActivityCallback",[7,[15,"k"],[17,[15,"a"],"includeParams"]]],[22,[2,[15,"d"],"getItem",[7,[15,"i"]]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[52,"l",["require","internal.addDataLayerEventListener"]],[52,"m",["require","internal.enableAutoEventOnScroll"]],[52,"n",["require","internal.getDestinationIds"]],[52,"o",["require","internal.sendGtagEvent"]],[52,"p",["m",[8,"verticalThresholdUnits","PERCENT","verticalThresholds",90]]],[22,[28,[15,"p"]],[46,[2,[15,"a"],"gtmOnFailure",[7]],[36]]],[2,[15,"d"],"setItem",[7,[15,"i"],true]],["l","gtm.scrollDepth",[51,"",[7,"r","s"],["s"],[52,"t",[8,"eventId",[16,[15,"r"],"gtm.uniqueEventId"]]],[22,[16,[15,"b"],"enableDeferAllEnhancedMeasurement"],[46,[43,[15,"t"],"deferrable",true]]],[52,"u",[8,"percent_scrolled",[16,[15,"r"],"gtm.scrollThreshold"]]],["q",[15,"t"]],["o",["n"],[15,"h"],[15,"u"],[15,"t"]]],[15,"p"]],[2,[15,"a"],"gtmOnSuccess",[7]]] + ,[50,"__ccd_em_site_search",[46,"a"],[52,"b",["require","getQueryParameters"]],[52,"c",["require","internal.sendGtagEvent"]],[52,"d",["require","getContainerVersion"]],[52,"e",[15,"__module_ccdEmSiteSearchActivity"]],[52,"f",[2,[15,"e"],"getSearchTerm",[7,[17,[15,"a"],"searchQueryParams"],[15,"b"]]]],[52,"g",[30,[17,[15,"a"],"instanceDestinationId"],[17,["d"],"containerId"]]],[52,"h",[8,"deferrable",true,"eventId",[17,[15,"a"],"gtmEventId"],"eventMetadata",[8,"em_event",true]]],[22,[15,"f"],[46,[53,[52,"i",[39,[28,[28,[17,[15,"a"],"includeParams"]]],[2,[15,"e"],"buildEventParams",[7,[15,"f"],[17,[15,"a"],"additionalQueryParams"],[15,"b"]]],[8]]],["c",[15,"g"],"view_search_results",[15,"i"],[15,"h"]]]]],[2,[15,"a"],"gtmOnSuccess",[7]]] + ,[50,"__ccd_em_video",[46,"a"],[50,"s",[46,"t"],[52,"u",[8]],[43,[15,"u"],[15,"l"],true],[43,[15,"u"],[15,"f"],true],[43,[15,"t"],"eventMetadata",[15,"u"]]],[52,"b",[13,[41,"$0"],[3,"$0",["require","internal.getFlags"]],["$0"]]],[52,"c",["require","internal.getProductSettingsParameter"]],[52,"d",["require","templateStorage"]],[52,"e",[15,"__module_ccdEmVideoActivity"]],[52,"f","speculative"],[52,"g","ae_block_video"],[52,"h","video_start"],[52,"i","video_progress"],[52,"j","video_complete"],[52,"k","isRegistered"],[52,"l","em_event"],[52,"m",[17,[15,"a"],"instanceDestinationId"]],[22,["c",[15,"m"],[15,"g"]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[2,[15,"e"],"registerVideoActivityCallback",[7,[15,"m"],[17,[15,"a"],"includeParams"]]],[22,[2,[15,"d"],"getItem",[7,[15,"k"]]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[52,"n",["require","internal.addDataLayerEventListener"]],[52,"o",["require","internal.enableAutoEventOnYouTubeActivity"]],[52,"p",["require","internal.getDestinationIds"]],[52,"q",["require","internal.sendGtagEvent"]],[52,"r",["o",[8,"captureComplete",true,"captureStart",true,"progressThresholdsPercent",[7,10,25,50,75]]]],[22,[28,[15,"r"]],[46,[2,[15,"a"],"gtmOnFailure",[7]],[36]]],[2,[15,"d"],"setItem",[7,[15,"k"],true]],["n","gtm.video",[51,"",[7,"t","u"],["u"],[52,"v",[16,[15,"t"],"gtm.videoStatus"]],[41,"w"],[22,[20,[15,"v"],"start"],[46,[3,"w",[15,"h"]]],[46,[22,[20,[15,"v"],"progress"],[46,[3,"w",[15,"i"]]],[46,[22,[20,[15,"v"],"complete"],[46,[3,"w",[15,"j"]]],[46,[36]]]]]]],[52,"x",[8,"video_current_time",[16,[15,"t"],"gtm.videoCurrentTime"],"video_duration",[16,[15,"t"],"gtm.videoDuration"],"video_percent",[16,[15,"t"],"gtm.videoPercent"],"video_provider",[16,[15,"t"],"gtm.videoProvider"],"video_title",[16,[15,"t"],"gtm.videoTitle"],"video_url",[16,[15,"t"],"gtm.videoUrl"],"visible",[16,[15,"t"],"gtm.videoVisible"]]],[52,"y",[8,"eventId",[16,[15,"t"],"gtm.uniqueEventId"]]],[22,[16,[15,"b"],"enableDeferAllEnhancedMeasurement"],[46,[43,[15,"y"],"deferrable",true]]],["s",[15,"y"]],["q",["p"],[15,"w"],[15,"x"],[15,"y"]]],[15,"r"]],[2,[15,"a"],"gtmOnSuccess",[7]]] + ,[50,"__ccd_ga_first",[46,"a"],[2,[15,"a"],"gtmOnSuccess",[7]]] + ,[50,"__ccd_ga_last",[46,"a"],[2,[15,"a"],"gtmOnSuccess",[7]]] + ,[50,"__ccd_ga_regscope",[46,"a"],[52,"b",[15,"__module_ccdGaRegionScopedSettings"]],[2,[15,"b"],"applyRegionScopedSettings",[7,[15,"a"]]],[2,[15,"a"],"gtmOnSuccess",[7]]] + ,[50,"__ogt_1p_data_v2",[46,"a"],[50,"j",[46,"m","n","o"],[22,[20,[16,[15,"n"],"type"],[15,"o"]],[46,[22,[28,[15,"m"]],[46,[3,"m",[8]]]],[22,[28,[16,[15,"m"],[15,"o"]]],[46,[43,[15,"m"],[15,"o"],[16,[15,"n"],"userData"]]]]]],[36,[15,"m"]]],[50,"k",[46,"m","n"],[52,"o",[16,[15,"a"],[15,"m"]]],[41,"p"],[22,[20,[15,"o"],"CSS_SELECTOR"],[46,[3,"p","css_selector"]],[46,[22,[20,[15,"o"],"JS_VAR"],[46,[3,"p","js_variable"]]]]],[36,[8,"selector_type",[15,"p"],"value",[16,[15,"a"],[15,"n"]]]]],[50,"l",[46,"m","n","o","p"],[22,[28,[16,[15,"a"],[15,"p"]]],[46,[36]]],[43,[15,"m"],[15,"n"],["k",[15,"o"],[15,"p"]]]],[22,[28,[17,[15,"a"],"isEnabled"]],[46,[2,[15,"a"],"gtmOnSuccess",[7]],[36]]],[52,"b",[13,[41,"$0"],[3,"$0",["require","internal.getFlags"]],["$0"]]],[52,"c",["require","internal.getDestinationIds"]],[52,"d",["require","internal.getProductSettingsParameter"]],[52,"e",["require","internal.detectUserProvidedData"]],[52,"f",["require","internal.setRemoteConfigParameter"]],[52,"g",["require","internal.registerCcdCallback"]],[52,"h",[30,["c"],[7]]],[52,"i",[8,"enable_code",true]],[22,[17,[15,"a"],"isAutoEnabled"],[46,[53,[52,"m",[7]],[22,[1,[17,[15,"a"],"autoCollectExclusionSelectors"],[17,[17,[15,"a"],"autoCollectExclusionSelectors"],"length"]],[46,[53,[41,"o"],[3,"o",0],[63,[7,"o"],[23,[15,"o"],[17,[17,[15,"a"],"autoCollectExclusionSelectors"],"length"]],[33,[15,"o"],[3,"o",[0,[15,"o"],1]]],[46,[53,[52,"p",[17,[16,[17,[15,"a"],"autoCollectExclusionSelectors"],[15,"o"]],"exclusionSelector"]],[22,[15,"p"],[46,[2,[15,"m"],"push",[7,[15,"p"]]]]]]]]]]],[52,"n",[39,[17,[15,"a"],"isAutoCollectPiiEnabledFlag"],[17,[15,"a"],"autoEmailEnabled"],true]],[43,[15,"i"],"auto_detect",[8,"email",[15,"n"],"phone",[17,[15,"a"],"autoPhoneEnabled"],"address",[17,[15,"a"],"autoAddressEnabled"],"exclude_element_selectors",[15,"m"]]]]]],[22,[17,[15,"a"],"isManualEnabled"],[46,[53,[52,"m",[8]],[22,[17,[15,"a"],"manualEmailEnabled"],[46,["l",[15,"m"],"email","emailType","emailValue"]]],[22,[17,[15,"a"],"manualPhoneEnabled"],[46,["l",[15,"m"],"phone","phoneType","phoneValue"]]],[22,[17,[15,"a"],"manualAddressEnabled"],[46,[53,[52,"n",[8]],["l",[15,"n"],"first_name","firstNameType","firstNameValue"],["l",[15,"n"],"last_name","lastNameType","lastNameValue"],["l",[15,"n"],"street","streetType","streetValue"],["l",[15,"n"],"city","cityType","cityValue"],["l",[15,"n"],"region","regionType","regionValue"],["l",[15,"n"],"country","countryType","countryValue"],["l",[15,"n"],"postal_code","postalCodeType","postalCodeValue"],[43,[15,"m"],"name_and_address",[7,[15,"n"]]]]]],[43,[15,"i"],"selectors",[15,"m"]]]]],[65,"m",[15,"h"],[46,[53,[41,"n"],[3,"n",[15,"i"]],[22,[1,[20,[2,[15,"m"],"indexOf",[7,"G-"]],0],[28,[16,[15,"b"],"enableEuidAutoMode"]]],[46,[53,[52,"q",[8,"enable_code",true,"selectors",[16,[15,"i"],"selectors"]]],[3,"n",[15,"q"]]]]],["f",[15,"m"],"user_data_settings",[15,"n"]],[52,"o",[16,[15,"n"],"auto_detect"]],[22,[28,[15,"o"]],[46,[6]]],[52,"p",[51,"",[7,"q"],[52,"r",[2,[15,"q"],"getMetadata",[7,"user_data_from_automatic"]]],[22,[15,"r"],[46,[36,[15,"r"]]]],[52,"s",["e",[8,"excludeElementSelectors",[16,[15,"o"],"exclude_element_selectors"],"fieldFilters",[8,"email",[16,[15,"o"],"email"],"phone",[16,[15,"o"],"phone"],"address",[16,[15,"o"],"address"]]]]],[52,"t",[1,[15,"s"],[16,[15,"s"],"elements"]]],[52,"u",[8]],[22,[1,[15,"t"],[18,[17,[15,"t"],"length"],0]],[46,[53,[41,"v"],[53,[41,"w"],[3,"w",0],[63,[7,"w"],[23,[15,"w"],[17,[15,"t"],"length"]],[33,[15,"w"],[3,"w",[0,[15,"w"],1]]],[46,[53,[52,"x",[16,[15,"t"],[15,"w"]]],["j",[15,"u"],[15,"x"],"email"],[22,[16,[15,"b"],"enableAutoPiiOnPhoneAndAddress"],[46,["j",[15,"u"],[15,"x"],"phone_number"],[3,"v",["j",[15,"v"],[15,"x"],"first_name"]],[3,"v",["j",[15,"v"],[15,"x"],"last_name"]],[3,"v",["j",[15,"v"],[15,"x"],"country"]],[3,"v",["j",[15,"v"],[15,"x"],"postal_code"]]]]]]]],[22,[1,[15,"v"],[28,[16,[15,"u"],"address"]]],[46,[43,[15,"u"],"address",[15,"v"]]]]]]],[2,[15,"q"],"setMetadata",[7,"user_data_from_automatic",[15,"u"]]],[36,[15,"u"]]]],["g",[15,"m"],[51,"",[7,"q"],[2,[15,"q"],"setMetadata",[7,"user_data_from_automatic_getter",[15,"p"]]]]]]]],[2,[15,"a"],"gtmOnSuccess",[7]]] + ,[50,"__ogt_google_signals",[46,"a"],[52,"b",["require","internal.setProductSettingsParameter"]],[52,"c",["require","getContainerVersion"]],[52,"d",[13,[41,"$0"],[3,"$0",["require","internal.getFlags"]],["$0"]]],[52,"e",[30,[17,[15,"a"],"instanceDestinationId"],[17,["c"],"containerId"]]],["b",[15,"e"],"google_signals",[20,[17,[15,"a"],"serverMacroResult"],1]],["b",[15,"e"],"google_ono",[20,[17,[15,"a"],"serverMacroResult"],2]],[2,[15,"a"],"gtmOnSuccess",[7]]] + ,[50,"__set_product_settings",[46,"a"],[2,[15,"a"],"gtmOnSuccess",[7]]] + ,[52,"__module_activities",[13,[41,"$0"],[3,"$0",[51,"",[7],[50,"a",[46],[50,"b",[46,"c","d"],[36,[39,[15,"d"],["d",[15,"c"]],[15,"c"]]]],[36,[8,"withRequestContext",[15,"b"]]]],[36,["a"]]]],["$0"]]] + ,[52,"__module_ccdEmDownloadActivity",[13,[41,"$0"],[3,"$0",[51,"",[7],[50,"a",[46],[50,"h",[46,"i","j"],["c",[15,"i"],[51,"",[7,"k"],[22,[30,[21,[2,[15,"k"],"getEventName",[7]],[15,"f"]],[28,[2,[15,"k"],"getMetadata",[7,[15,"g"]]]]],[46,[36]]],[22,["b",[15,"i"],[15,"e"]],[46,[2,[15,"k"],"abort",[7]],[36]]],[2,[15,"k"],"setMetadata",[7,[15,"d"],false]],[22,[28,[15,"j"]],[46,[2,[15,"k"],"setHitData",[7,"link_id",[44]]],[2,[15,"k"],"setHitData",[7,"link_url",[44]]],[2,[15,"k"],"setHitData",[7,"link_text",[44]]],[2,[15,"k"],"setHitData",[7,"file_name",[44]]],[2,[15,"k"],"setHitData",[7,"file_extension",[44]]]]]]]],[52,"b",["require","internal.getProductSettingsParameter"]],[52,"c",["require","internal.registerCcdCallback"]],[52,"d","speculative"],[52,"e","ae_block_downloads"],[52,"f","file_download"],[52,"g","em_event"],[36,[8,"registerDownloadActivityCallback",[15,"h"]]]],[36,["a"]]]],["$0"]]] + ,[52,"__module_ccdEmFormActivity",[13,[41,"$0"],[3,"$0",[51,"",[7],[50,"a",[46],[50,"l",[46,"m","n","o"],[22,[1,[15,"k"],[20,[15,"n"],[44]]],[46,[3,"n",[20,[2,[15,"m"],"indexOf",[7,"AW-"]],0]]]],["d",[15,"m"],[51,"",[7,"p"],[52,"q",[2,[15,"p"],"getEventName",[7]]],[52,"r",[30,[20,[15,"q"],[15,"h"]],[20,[15,"q"],[15,"g"]]]],[22,[30,[28,[15,"r"]],[28,[2,[15,"p"],"getMetadata",[7,[15,"i"]]]]],[46,[36]]],[22,["c",[15,"m"],[15,"f"]],[46,[2,[15,"p"],"abort",[7]],[36]]],[22,[15,"k"],[46,[22,[1,[28,[15,"n"]],[2,[15,"p"],"getMetadata",[7,[15,"j"]]]],[46,[2,[15,"p"],"abort",[7]],[36]]]]],[2,[15,"p"],"setMetadata",[7,[15,"e"],false]],[22,[28,[15,"o"]],[46,[2,[15,"p"],"setHitData",[7,"form_id",[44]]],[2,[15,"p"],"setHitData",[7,"form_name",[44]]],[2,[15,"p"],"setHitData",[7,"form_destination",[44]]],[2,[15,"p"],"setHitData",[7,"form_length",[44]]],[22,[20,[15,"q"],[15,"g"]],[46,[2,[15,"p"],"setHitData",[7,"form_submit_text",[44]]]],[46,[22,[20,[15,"q"],[15,"h"]],[46,[2,[15,"p"],"setHitData",[7,"first_field_id",[44]]],[2,[15,"p"],"setHitData",[7,"first_field_name",[44]]],[2,[15,"p"],"setHitData",[7,"first_field_type",[44]]],[2,[15,"p"],"setHitData",[7,"first_field_position",[44]]]]]]]]]]]],[52,"b",[13,[41,"$0"],[3,"$0",["require","internal.getFlags"]],["$0"]]],[52,"c",["require","internal.getProductSettingsParameter"]],[52,"d",["require","internal.registerCcdCallback"]],[52,"e","speculative"],[52,"f","ae_block_form"],[52,"g","form_submit"],[52,"h","form_start"],[52,"i","em_event"],[52,"j","form_event_canceled"],[52,"k",[28,[28,[16,[15,"b"],"enableFormSkipValidation"]]]],[36,[8,"registerFormActivityCallback",[15,"l"]]]],[36,["a"]]]],["$0"]]] + ,[52,"__module_ccdEmOutboundClickActivity",[13,[41,"$0"],[3,"$0",[51,"",[7],[50,"a",[46],[50,"h",[46,"i","j"],["c",[15,"i"],[51,"",[7,"k"],[22,[30,[21,[2,[15,"k"],"getEventName",[7]],[15,"f"]],[28,[2,[15,"k"],"getMetadata",[7,[15,"g"]]]]],[46,[36]]],[22,["b",[15,"i"],[15,"e"]],[46,[2,[15,"k"],"abort",[7]],[36]]],[2,[15,"k"],"setMetadata",[7,[15,"d"],false]],[22,[28,[15,"j"]],[46,[2,[15,"k"],"setHitData",[7,"link_id",[44]]],[2,[15,"k"],"setHitData",[7,"link_classes",[44]]],[2,[15,"k"],"setHitData",[7,"link_url",[44]]],[2,[15,"k"],"setHitData",[7,"link_domain",[44]]],[2,[15,"k"],"setHitData",[7,"outbound",[44]]]]]]]],[52,"b",["require","internal.getProductSettingsParameter"]],[52,"c",["require","internal.registerCcdCallback"]],[52,"d","speculative"],[52,"e","ae_block_outbound_click"],[52,"f","click"],[52,"g","em_event"],[36,[8,"registerOutbackClickActivityCallback",[15,"h"]]]],[36,["a"]]]],["$0"]]] + ,[52,"__module_ccdEmPageViewActivity",[13,[41,"$0"],[3,"$0",[51,"",[7],[50,"a",[46],[50,"j",[46,"k"],["c",[15,"k"],[51,"",[7,"l"],[22,[30,[21,[2,[15,"l"],"getEventName",[7]],[15,"h"]],[28,[2,[15,"l"],"getMetadata",[7,[15,"i"]]]]],[46,[36]]],[22,["b",[15,"k"],[15,"g"]],[46,[2,[15,"l"],"abort",[7]],[36]]],[22,[28,[2,[15,"l"],"getMetadata",[7,[15,"f"]]]],[46,["d",[15,"k"],"page_referrer",[2,[15,"l"],"getHitData",[7,"page_referrer"]]]]],[2,[15,"l"],"setMetadata",[7,[15,"e"],false]]]]],[52,"b",["require","internal.getProductSettingsParameter"]],[52,"c",["require","internal.registerCcdCallback"]],[52,"d",["require","internal.setRemoteConfigParameter"]],[52,"e","speculative"],[52,"f","is_sgtm_prehit"],[52,"g","ae_block_history"],[52,"h","page_view"],[52,"i","em_event"],[36,[8,"registerPageViewActivityCallback",[15,"j"]]]],[36,["a"]]]],["$0"]]] + ,[52,"__module_ccdEmSiteSearchActivity",[13,[41,"$0"],[3,"$0",[51,"",[7],[50,"a",[46],[50,"b",[46,"d","e"],[52,"f",[2,[30,[15,"d"],""],"split",[7,","]]],[53,[41,"g"],[3,"g",0],[63,[7,"g"],[23,[15,"g"],[17,[15,"f"],"length"]],[33,[15,"g"],[3,"g",[0,[15,"g"],1]]],[46,[53,[52,"h",["e",[2,[16,[15,"f"],[15,"g"]],"trim",[7]]]],[22,[21,[15,"h"],[44]],[46,[36,[15,"h"]]]]]]]]],[50,"c",[46,"d","e","f"],[52,"g",[8,"search_term",[15,"d"]]],[52,"h",[2,[30,[15,"e"],""],"split",[7,","]]],[53,[41,"i"],[3,"i",0],[63,[7,"i"],[23,[15,"i"],[17,[15,"h"],"length"]],[33,[15,"i"],[3,"i",[0,[15,"i"],1]]],[46,[53,[52,"j",[2,[16,[15,"h"],[15,"i"]],"trim",[7]]],[52,"k",["f",[15,"j"]]],[22,[21,[15,"k"],[44]],[46,[43,[15,"g"],[0,"q_",[15,"j"]],[15,"k"]]]]]]]],[36,[15,"g"]]],[36,[8,"getSearchTerm",[15,"b"],"buildEventParams",[15,"c"]]]],[36,["a"]]]],["$0"]]] + ,[52,"__module_ccdEmScrollActivity",[13,[41,"$0"],[3,"$0",[51,"",[7],[50,"a",[46],[50,"h",[46,"i","j"],["c",[15,"i"],[51,"",[7,"k"],[22,[30,[21,[2,[15,"k"],"getEventName",[7]],[15,"f"]],[28,[2,[15,"k"],"getMetadata",[7,[15,"g"]]]]],[46,[36]]],[22,["b",[15,"i"],[15,"e"]],[46,[2,[15,"k"],"abort",[7]],[36]]],[2,[15,"k"],"setMetadata",[7,[15,"d"],false]],[22,[28,[15,"j"]],[46,[2,[15,"k"],"setHitData",[7,"percent_scrolled",[44]]]]]]]],[52,"b",["require","internal.getProductSettingsParameter"]],[52,"c",["require","internal.registerCcdCallback"]],[52,"d","speculative"],[52,"e","ae_block_scroll"],[52,"f","scroll"],[52,"g","em_event"],[36,[8,"registerScrollActivityCallback",[15,"h"]]]],[36,["a"]]]],["$0"]]] + ,[52,"__module_ccdEmVideoActivity",[13,[41,"$0"],[3,"$0",[51,"",[7],[50,"a",[46],[50,"j",[46,"k","l"],["c",[15,"k"],[51,"",[7,"m"],[52,"n",[2,[15,"m"],"getEventName",[7]]],[52,"o",[30,[30,[20,[15,"n"],[15,"f"]],[20,[15,"n"],[15,"g"]]],[20,[15,"n"],[15,"h"]]]],[22,[30,[28,[15,"o"]],[28,[2,[15,"m"],"getMetadata",[7,[15,"i"]]]]],[46,[36]]],[22,["b",[15,"k"],[15,"e"]],[46,[2,[15,"m"],"abort",[7]],[36]]],[2,[15,"m"],"setMetadata",[7,[15,"d"],false]],[22,[28,[15,"l"]],[46,[2,[15,"m"],"setHitData",[7,"video_current_time",[44]]],[2,[15,"m"],"setHitData",[7,"video_duration",[44]]],[2,[15,"m"],"setHitData",[7,"video_percent",[44]]],[2,[15,"m"],"setHitData",[7,"video_provider",[44]]],[2,[15,"m"],"setHitData",[7,"video_title",[44]]],[2,[15,"m"],"setHitData",[7,"video_url",[44]]],[2,[15,"m"],"setHitData",[7,"visible",[44]]]]]]]],[52,"b",["require","internal.getProductSettingsParameter"]],[52,"c",["require","internal.registerCcdCallback"]],[52,"d","speculative"],[52,"e","ae_block_video"],[52,"f","video_start"],[52,"g","video_progress"],[52,"h","video_complete"],[52,"i","em_event"],[36,[8,"registerVideoActivityCallback",[15,"j"]]]],[36,["a"]]]],["$0"]]] + ,[52,"__module_ccdGaRegionScopedSettings",[13,[41,"$0"],[3,"$0",[51,"",[7],[50,"a",[46],[50,"j",[46,"l","m"],[50,"r",[46,"s"],[22,[30,[28,[15,"p"]],[21,[17,[15,"p"],"length"],2]],[46,[36,false]]],[52,"t",["k",[15,"s"]]],[53,[41,"u"],[3,"u",0],[63,[7,"u"],[23,[15,"u"],[17,[15,"t"],"length"]],[33,[15,"u"],[3,"u",[0,[15,"u"],1]]],[46,[53,[52,"v",[16,[15,"t"],[15,"u"]]],[52,"w",[17,[15,"v"],"countryCode"]],[52,"x",[17,[15,"v"],"regionCode"]],[52,"y",[20,[15,"w"],[15,"p"]]],[52,"z",[30,[28,[15,"x"]],[20,[15,"x"],[15,"q"]]]],[22,[1,[15,"y"],[15,"z"]],[46,[36,true]]]]]]],[36,false]],[22,[28,[17,[15,"l"],"settingsTable"]],[46,[36]]],[52,"n",[30,[17,[15,"l"],"instanceDestinationId"],[17,["b"],"containerId"]]],[52,"o",["g",[15,"c"],[15,"m"]]],[52,"p",[13,[41,"$0"],[3,"$0",["g",[15,"d"],[15,"m"]]],["$0"]]],[52,"q",[13,[41,"$0"],[3,"$0",["g",[15,"e"],[15,"m"]]],["$0"]]],[53,[41,"s"],[3,"s",0],[63,[7,"s"],[23,[15,"s"],[17,[17,[15,"l"],"settingsTable"],"length"]],[33,[15,"s"],[3,"s",[0,[15,"s"],1]]],[46,[53,[52,"t",[16,[17,[15,"l"],"settingsTable"],[15,"s"]]],[22,[30,[17,[15,"t"],"disallowAllRegions"],["r",[17,[15,"t"],"disallowedRegions"]]],[46,[53,[52,"u",[16,[15,"i"],[17,[15,"t"],"redactFieldGroup"]]],[22,[28,[15,"u"]],[46,[6]]],[53,[41,"v"],[3,"v",0],[63,[7,"v"],[23,[15,"v"],[17,[15,"u"],"length"]],[33,[15,"v"],[3,"v",[0,[15,"v"],1]]],[46,[53,[52,"w",[16,[15,"u"],[15,"v"]]],["o",[15,"n"],[17,[15,"w"],"name"],[17,[15,"w"],"value"]]]]]]]]]]]]]],[50,"k",[46,"l"],[52,"m",[7]],[22,[28,[15,"l"]],[46,[36,[15,"m"]]]],[52,"n",[2,[15,"l"],"split",[7,","]]],[53,[41,"o"],[3,"o",0],[63,[7,"o"],[23,[15,"o"],[17,[15,"n"],"length"]],[33,[15,"o"],[3,"o",[0,[15,"o"],1]]],[46,[53,[52,"p",[2,[16,[15,"n"],[15,"o"]],"trim",[7]]],[22,[28,[15,"p"]],[46,[6]]],[52,"q",[2,[15,"p"],"split",[7,"-"]]],[52,"r",[16,[15,"q"],0]],[52,"s",[39,[20,[17,[15,"q"],"length"],2],[15,"p"],[44]]],[22,[30,[28,[15,"r"]],[21,[17,[15,"r"],"length"],2]],[46,[6]]],[22,[1,[21,[15,"s"],[44]],[30,[23,[17,[15,"s"],"length"],4],[18,[17,[15,"s"],"length"],6]]],[46,[6]]],[2,[15,"m"],"push",[7,[8,"countryCode",[15,"r"],"regionCode",[15,"s"]]]]]]]],[36,[15,"m"]]],[52,"b",["require","getContainerVersion"]],[52,"c",["require","internal.setRemoteConfigParameter"]],[52,"d",["require","internal.getCountryCode"]],[52,"e",["require","internal.getRegionCode"]],[52,"f",[15,"__module_activities"]],[52,"g",[17,[15,"f"],"withRequestContext"]],[41,"h"],[52,"i",[8,"GOOGLE_SIGNALS",[7,[8,"name","allow_google_signals","value",false]],"DEVICE_AND_GEO",[7,[8,"name","geo_granularity","value",true],[8,"name","redact_device_info","value",true]]]],[36,[8,"applyRegionScopedSettings",[15,"j"]]]],[36,["a"]]]],["$0"]]] + +] +,"entities":{ +"__ccd_auto_redact":{"2":true,"4":true} +, +"__ccd_conversion_marking":{"2":true,"4":true} +, +"__ccd_em_download":{"2":true,"4":true} +, +"__ccd_em_form":{"2":true,"4":true} +, +"__ccd_em_outbound_click":{"2":true,"4":true} +, +"__ccd_em_page_view":{"2":true,"4":true} +, +"__ccd_em_scroll":{"2":true,"4":true} +, +"__ccd_em_site_search":{"2":true,"4":true} +, +"__ccd_em_video":{"2":true,"4":true} +, +"__ccd_ga_first":{"2":true,"4":true} +, +"__ccd_ga_last":{"2":true,"4":true} +, +"__ccd_ga_regscope":{"2":true,"4":true} +, +"__ogt_1p_data_v2":{"2":true} +, +"__ogt_google_signals":{"2":true,"4":true} +, +"__set_product_settings":{"2":true,"4":true} + + +} +,"permissions":{ +"__ccd_auto_redact":{} +, +"__ccd_conversion_marking":{} +, +"__ccd_em_download":{"listen_data_layer":{"accessType":"specific","allowedEvents":["gtm.linkClick"]},"access_template_storage":{},"detect_link_click_events":{"allowWaitForTags":""}} +, +"__ccd_em_form":{"access_template_storage":{},"listen_data_layer":{"accessType":"specific","allowedEvents":["gtm.formInteract","gtm.formSubmit"]},"detect_form_submit_events":{"allowWaitForTags":""},"detect_form_interaction_events":{}} +, +"__ccd_em_outbound_click":{"get_url":{"urlParts":"any","queriesAllowed":"any"},"listen_data_layer":{"accessType":"specific","allowedEvents":["gtm.linkClick"]},"access_template_storage":{},"detect_link_click_events":{"allowWaitForTags":""}} +, +"__ccd_em_page_view":{"listen_data_layer":{"accessType":"specific","allowedEvents":["gtm.historyChange-v2"]},"process_dom_events":{"targets":[{"targetType":"window","eventName":"pushstate"},{"targetType":"window","eventName":"popstate"}]},"access_template_storage":{},"detect_history_change_events":{}} +, +"__ccd_em_scroll":{"listen_data_layer":{"accessType":"specific","allowedEvents":["gtm.scrollDepth"]},"process_dom_events":{"targets":[{"targetType":"window","eventName":"resize"},{"targetType":"window","eventName":"scroll"}]},"access_template_storage":{},"detect_scroll_events":{}} +, +"__ccd_em_site_search":{"get_url":{"urlParts":"any","queriesAllowed":"any"},"read_container_data":{}} +, +"__ccd_em_video":{"listen_data_layer":{"accessType":"specific","allowedEvents":["gtm.video"]},"access_template_storage":{},"detect_youtube_activity_events":{"allowFixMissingJavaScriptApi":false}} +, +"__ccd_ga_first":{} +, +"__ccd_ga_last":{} +, +"__ccd_ga_regscope":{"read_container_data":{}} +, +"__ogt_1p_data_v2":{"detect_user_provided_data":{"limitDataSources":true,"allowAutoDataSources":true,"allowManualDataSources":false,"allowCodeDataSources":false}} +, +"__ogt_google_signals":{"read_container_data":{}} +, +"__set_product_settings":{} + + +} + + + +,"security_groups":{ +"google":[ +"__ccd_auto_redact" +, +"__ccd_conversion_marking" +, +"__ccd_em_download" +, +"__ccd_em_form" +, +"__ccd_em_outbound_click" +, +"__ccd_em_page_view" +, +"__ccd_em_scroll" +, +"__ccd_em_site_search" +, +"__ccd_em_video" +, +"__ccd_ga_first" +, +"__ccd_ga_last" +, +"__ccd_ga_regscope" +, +"__ogt_1p_data_v2" +, +"__ogt_google_signals" +, +"__set_product_settings" + +] + + +} + + + +}; + + +var aa,ba=function(a){var b=0;return function(){return bb)a=0,b=2147483647;return Math.floor(Math.random()*(b-a+1)+a)},Ma=function(a,b){for(var c=new La,d=0;d>2,n=(f&3)<<4|g>>4,p=(g&15)<<2|k>>6,q=k&63;e||(q=64,d||(p=64));b.push(ub[m],ub[n],ub[p],ub[q])}return b.join("")} +function yb(a){function b(m){for(;d>4);64!=g&&(c+=String.fromCharCode(f<<4&240|g>>2),64!=k&&(c+=String.fromCharCode(g<<6&192|k)))}};var zb={},Ab=function(a,b){zb[a]=zb[a]||[];zb[a][b]=!0},Bb=function(){delete zb.GA4_EVENT},Cb=function(a){var b=zb[a];if(!b||0===b.length)return"";for(var c=[],d=0,e=0;e"+a+"
    ");1===c.nodeType&&zc(c);c.innerHTML=fc(d);b=b.lastChild;for(var e=[];b.firstChild;)e.push(b.removeChild(b.firstChild));return e},Tc=function(a,b,c){c=c||100;for(var d={},e=0;ee&&(e=Math.max(d+e,0));for(var f= +e;fc?d+c:Math.min(c,e));for(var f=e;0<=f;f--)if(this.has(f)&&this.get(f)===b)return f;return-1},map:function(a,b){for(var c=this.length(),d=[],e=0;ed)throw Error("TypeError: ReduceRight on List with no elements.");}for(var k=f;0<=k;k--)this.has(k)&&(e=b.invoke(a,e,this.get(k),k,this));return e},reverse:function(){for(var a=ob(this),b=a.length-1,c=0;0<=b;b--,c++)a.hasOwnProperty(b)?this.set(c,a[b]):this.remove(c);return this},shift:function(){return this.shift()},slice:function(a,b,c){var d=this.length(); +void 0===b&&(b=0);b=0>b?Math.max(d+b,0):Math.min(b,d);c=void 0===c?d:0>c?Math.max(d+c,0):Math.min(c,d);c=Math.max(b,c);for(var e=[],f=b;fI(this,b)},Wd=function(a,b){return I(this,a)>=I(this,b)},Yd=function(a,b){a=I(this,a);b=I(this,b);a instanceof jd&&(a=a.h);b instanceof jd&&(b=b.h);return a===b},Zd=function(a,b){return!Yd.call(this,a,b)},$d=function(a,b,c){var d=[];I(this,a)?d=I(this,b):c&&(d=I(this,c));var e=eb(this.h,d);if(e instanceof xa)return e},ae=function(a,b){return I(this,a)>Number(I(this, +b))},ze=function(a,b){return Number(I(this,a))>>>Number(I(this,b))},Ae=function(a,b){return Number(I(this,a))&Number(I(this,b))},Be=function(a,b){return Number(I(this,a))^Number(I(this,b))},Ce=function(a,b){return Number(I(this,a))|Number(I(this,b))},De=function(){},Ee=function(a,b,c,d,e){var f=!0;try{var g=I(this,c);if(g instanceof xa)return g}catch(r){if(!(r instanceof qd&&a))throw f=r instanceof qd,r;var k=Ca(this.h),m=new jd(r);k.add(b,m);var n=I(this,d),p=eb(k,n);if(p instanceof xa)return p}finally{if(f&& +void 0!==e){var q=I(this,e);if(q instanceof xa)return q}}};var Ge=function(){this.h=new gb;Fe(this)};Ge.prototype.execute=function(a){return this.h.C(a)};var Fe=function(a){var b=function(c,d){var e=new ed(String(c),d);e.Cb();a.h.h.set(String(c),e)};b("map",de);b("and",Zc);b("contains",bd);b("equals",$c);b("or",ad);b("startsWith",cd);b("variable",dd)};var Ie=function(){this.h=new gb;He(this)};Ie.prototype.execute=function(a){return Je(this.h.C(a))}; +var Ke=function(a,b,c){return Je(a.h.H(b,c))},He=function(a){var b=function(c,d){var e=String(c),f=new ed(e,d);f.Cb();a.h.h.set(e,f)};b(0,ud);b(1,vd);b(2,wd);b(3,xd);b(56,Ae);b(57,xe);b(58,we);b(59,Ce);b(60,ye);b(61,ze);b(62,Be);b(53,yd);b(4,zd);b(5,Ad);b(52,Bd);b(6,Cd);b(49,Dd);b(7,ce);b(8,de);b(9,Ad);b(50,Ed);b(10,Fd);b(12,Gd);b(13,Hd);b(51,Sd);b(47,Kd);b(54,Ld);b(55,Md);b(63,Rd);b(64,Od);b(65,Pd);b(66,Qd);b(15,Td);b(16,Ud);b(17,Ud);b(18,Vd);b(19,Wd);b(20,Yd);b(21,Zd);b(22,$d);b(23,ae);b(24,be); +b(25,ee);b(26,fe);b(27,ge);b(28,he);b(29,ie);b(45,je);b(30,ke);b(32,le);b(33,le);b(34,me);b(35,me);b(46,ne);b(36,oe);b(43,pe);b(37,qe);b(38,re);b(39,se);b(67,Ee);b(40,te);b(44,De);b(41,ue);b(42,ve)};function Je(a){if(a instanceof xa||a instanceof ed||a instanceof rb||a instanceof sb||a instanceof jd||null===a||void 0===a||"string"===typeof a||"number"===typeof a||"boolean"===typeof a)return a};function Le(a){switch(a){case 1:return"1";case 2:case 4:return"0";default:return"-"}}function Me(a){switch(a){case 1:return"G";case 3:return"g";case 2:return"D";case 4:return"d";case 0:return"g";default:return"g"}}function Ne(a,b){var c=a[1]||0,d=a[2]||0;switch(b){case 0:return"G1"+Le(c)+Le(d);case 1:return"G2"+Me(c)+Me(d);default:return"g1--"}};var Oe=function(){var a=function(b){return{toString:function(){return b}}};return{ek:a("consent"),Zh:a("convert_case_to"),ai:a("convert_false_to"),bi:a("convert_null_to"),di:a("convert_true_to"),ei:a("convert_undefined_to"),nn:a("debug_mode_metadata"),za:a("function"),Yg:a("instance_name"),Mk:a("live_only"),Nk:a("malware_disabled"),Ok:a("metadata"),Rk:a("original_activity_id"),Bn:a("original_vendor_template_id"),An:a("once_on_load"),Qk:a("once_per_event"),Zi:a("once_per_load"),Gn:a("priority_override"), +Hn:a("respected_consent_types"),ej:a("setup_tags"),qe:a("tag_id"),kj:a("teardown_tags")}}();var kf; +var lf=[],mf=[],nf=[],of=[],pf=[],qf={},rf,sf,tf=function(a){sf=sf||a},uf=function(a){},vf,wf=[],xf=function(a,b){var c={};c[Oe.za]="__"+a;for(var d in b)b.hasOwnProperty(d)&&(c["vtp_"+d]=b[d]);return c},yf=function(a, +b){var c=a[Oe.za],d=b&&b.event;if(!c)throw Error("Error: No function name given for function call.");var e=qf[c],f=b&&2===b.type&&d.reportMacroDiscrepancy&&e&&-1!==wf.indexOf(c),g={},k={},m;for(m in a)a.hasOwnProperty(m)&&0===m.indexOf("vtp_")&&(e&&d&&d.checkPixieIncompatibility&&d.checkPixieIncompatibility(a[m]),e&&(g[m]=a[m]),!e||f)&&(k[m.substr(4)]=a[m]);e&&d&&d.cachedModelValues&&(g.vtp_gtmCachedValues=d.cachedModelValues);if(b){if(null==b.name){var n;a:{var p=b.index;if(null==p)n="";else{var q; +switch(b.type){case 2:q=lf[p];break;case 1:q=of[p];break;default:n="";break a}var r=q&&q[Oe.Yg];n=r?String(r):""}}b.name=n}e&&(g.vtp_gtmEntityIndex=b.index,g.vtp_gtmEntityName=b.name)}var t,u;e&&(t=e(g));if(!e||f)u=kf(c,k,b);f&&d&&(pb(t)?typeof t!==typeof u&&d.reportMacroDiscrepancy(d.id,c):t!==u&&d.reportMacroDiscrepancy(d.id,c));return e?t:u},Af=function(a,b,c){c=c||[];var d={},e;for(e in a)a.hasOwnProperty(e)&&(d[e]=zf(a[e],b,c));return d},zf=function(a,b,c){if(Ia(a)){var d;switch(a[0]){case "function_id":return a[1]; +case "list":d=[];for(var e=1;ec){var r=String.fromCharCode(10>c?48+c:65+c-10);b["k"+r]=(""+String(e)).replace(/~/g,"~~");b["v"+r]=f;c++}});var d=[];l(b,function(e,f){d.push(""+e+f)});return d.join("~")}, +cg={item_id:"id",item_name:"nm",item_brand:"br",item_category:"ca",item_category2:"c2",item_category3:"c3",item_category4:"c4",item_category5:"c5",item_variant:"va",price:"pr",quantity:"qt",coupon:"cp",item_list_name:"ln",index:"lp",item_list_id:"li",discount:"ds",affiliation:"af",promotion_id:"pi",promotion_name:"pn",creative_name:"cn",creative_slot:"cs",location_id:"lo"},dg={id:"id",name:"nm",brand:"br",variant:"va",list_name:"ln",list_position:"lp",list:"ln",position:"lp",creative:"cn"},eg=["ca", +"c2","c3","c4","c5"];var gg=function(a){var b=[];l(a,function(c,d){null!=d&&b.push(encodeURIComponent(c)+"="+encodeURIComponent(String(d)))});return b.join("&")},hg=function(a,b,c,d){this.ma=a.ma;this.Hc=a.Hc;this.nh=a.nh;this.C=b;this.H=c;this.D=gg(a.ma);this.h=gg(a.nh);this.N=this.h.length;if(d&&16384w&&(v=y,w=C)});x==c.length&&(g[t]=v)});jg(g,d);b&&d.push("_s="+b);for(var k=d.join("&"),m=[],n={},p=0;p=Number(b)}function wg(a,b){return Number(a)<=Number(b)}function xg(a,b){return Number(a)>Number(b)}function yg(a,b){return Number(a)>=5;d?d=!1:e|=32;c="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_"[e]+c}a<<=2;d||(a|=32);return c="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_"[a|b]+c};var Ig=/^([a-z][a-z0-9]*):(!|\?)(\*|string|boolean|number|Fn|PixieMap|List|OpaqueValue)$/i,Jg={Fn:"function",PixieMap:"Object",List:"Array"},L=function(a,b,c){for(var d=0;da.length?void 0:ch(c.getHitData(a[1]),a.slice(2));case "metadata":return 2>a.length?void 0:ch(c.getMetadata(a[1]),a.slice(2));case "eventName":return c.getEventName();case "destinationId":return c.getDestinationId();default:throw Error(d+" is not a valid field that can be accessed\n from PreHit data.");}}}, +eh=function(a,b){if(a){if(void 0!==a.contextValue){var c;a:{var d=a.contextValue,e=d.keyParts;if(e&&0!==e.length){var f=d.namespaceType;switch(f){case 1:c=dh(e,b);break a;case 2:var g=b.macro;c=g?g[e[0]]:void 0;break a;default:throw Error("Unknown Namespace Type used: "+f);}}c=void 0}return c}if(void 0!==a.booleanExpressionValue)return bh(a.booleanExpressionValue,b);if(void 0!==a.booleanValue)return!!a.booleanValue;if(void 0!==a.stringValue)return String(a.stringValue);if(void 0!==a.integerValue)return Number(a.integerValue); +if(void 0!==a.doubleValue)return Number(a.doubleValue);throw Error("Unknown field used for variable of type ExpressionValue:"+a);}},bh=function(a,b){var c=a.args;if(!Ia(c)||0===c.length)throw Error('Invalid boolean expression format. Expected "args":'+c+" property to\n be non-empty array.");var d=function(g){return eh(g,b)};switch(a.type){case 1:for(var e=0;ee?c.push(e):2048>e?c.push(192|e>>6,128|e&63):55296>e||57344<=e?c.push(224|e>>12,128|e>>6&63,128|e&63):(e=65536+((e&1023)<<10|a.charCodeAt(++d)&1023),c.push(240|e>>18,128|e>>12&63,128| +e>>6&63,128|e&63))}b=new Uint8Array(c)}return b},Gh=/[0-9`~!@#$%^&*()_\-+=:;<>,.?|/\\[\]]/g,Jh=/^\S+@\S+\.\S+$/,Hh=/^\+\d{10,15}$/,Ch=/[.~]/g,Qh=/^[0-9A-Za-z_-]{43}$/,Oh=/^[0-9A-Fa-f]{64}$/,Rh={},Sh=(Rh.email="em",Rh.phone_number="pn",Rh.first_name="fn",Rh.last_name="ln",Rh.street="sa",Rh.city="ct",Rh.region="rg",Rh.country="co",Rh.postal_code="pc",Rh.error_code="ec",Rh),Th={},Uh=(Th.email="sha256_email_address",Th.phone_number="sha256_phone_number",Th.first_name="sha256_first_name",Th.last_name= +"sha256_last_name",Th.street="sha256_street",Th),Vh=function(a,b){function c(t,u,v,w){var x=Bh(t);""!==x&&(Oh.test(x)?m.push({name:u,value:x,index:w}):m.push({name:u,value:v(x),index:w}))}function d(t,u){var v=t;if(h(v)||Ia(v)){v=Ia(t)?t:[t];for(var w=0;w>21:b;return b};var aj=[];function gj(a){switch(a){case 33:return 3;case 60:return 14;case 61:return 8;case 73:return 11;case 74:return 12;case 77:return 10;case 79:return 13;case 75:return 15}}function R(a){aj[a]=!0;var b=gj(a);b&&(Rf[b]=!0)} +R(5);R(6);R(11);R(7);R(8); +R(19);R(9);R(10);R(13); +R(14);R(15);R(22);R(17); +R(23);R(26); +R(27);R(28);R(29);R(31); +R(32); +R(35);R(37); +R(41);R(42); +R(43);R(45);R(46);R(50);R(53);R(56);R(57); +R(58);R(59);R(62);R(63); +R(64);R(66);R(67); +R(68);R(69);R(70); +R(75); +R(77);R(78); +R(81);R(83); +R(88); + +R(94); + +R(103);R(105),R(92),R(52),R(106),R(107);R(61);function S(a){return!!aj[a]}var hj=!1; +function ij(a){}var jj=Number('1');var kj=function(a){Ab("HEALTH",a)};var lj;try{lj=JSON.parse(yb("eyIwIjoiQ04iLCIxIjoiQ04tMzMiLCIyIjp0cnVlLCIzIjoiZ29vZ2xlLmNuIiwiNCI6IiIsIjUiOnRydWUsIjYiOmZhbHNlLCI3IjoiYWRfc3RvcmFnZXxhbmFseXRpY3Nfc3RvcmFnZXxhZF91c2VyX2RhdGF8YWRfcGVyc29uYWxpemF0aW9uIn0"))}catch(a){O(123),kj(2),lj={}} +var mj=function(){return lj["0"]||""},nj=function(){return lj["1"]||""},oj=function(){var a=!1;a=!!lj["2"];return a},pj=function(){var a="";a=lj["4"]||"";return a},qj=function(){var a=!1;a=!!lj["5"];return a},rj=function(){var a="";a=lj["3"]||""; +return a};var sj=new function(a,b){this.h=a;this.defaultValue=void 0===b?!1:b}(1933);var tj=function(a){tj[" "](a);return a};tj[" "]=function(){};var vj=function(){var a=uj,b="th";if(a.th&&a.hasOwnProperty(b))return a.th;var c=new a;return a.th=c};var uj=function(){var a={};this.h=function(){var b=sj.h,c=sj.defaultValue;return null!=a[b]?a[b]:c};this.C=function(){a[sj.h]=!0}};var wj=!1,xj=!1,yj={},zj={},Aj=!1,Bj={ad_storage:!1,ad_user_data:!1,ad_personalization:!1};function Cj(){var a=Fc("google_tag_data",{});return a.ics=a.ics||new Dj}var Dj=function(){this.entries={};this.cps={};this.waitPeriodTimedOut=this.wasSetLate=this.accessedAny=this.accessedDefault=this.usedSetCps=this.usedImplicit=this.usedUpdate=this.usedDefault=this.usedDeclare=this.active=!1;this.h=[]}; +Dj.prototype.default=function(a,b,c,d,e,f){this.usedDefault||this.usedDeclare||!this.accessedDefault&&!this.accessedAny||(this.wasSetLate=!0);this.usedDefault=this.active=!0;Ab("TAGGING",19);void 0==b?Ab("TAGGING",18):Ej(this,a,"granted"===b,c,d,e,f)};Dj.prototype.waitForUpdate=function(a,b){for(var c=0;c=e.length?m(n):z.setTimeout(function(){m(c())},500)}}))};function Sj(){}function Tj(){};var Uj=[Q.g.K,Q.g.U,Q.g.O,Q.g.Ea],Vj=function(a){for(var b=a[Q.g.Va],c=Array.isArray(b)?b:[b],d={Ge:0};d.GeUa()-Tk.D[Tk.h%Tk.C]);if(a||0>=Uk--)O(1),Rk[Qk]=!0;else{var b=Tk.h++%Tk.C;Tk.D[b]=Ua();var c=Vk(!0);Nc(c);if(Kk){var d=c.replace("/a?","/td?");Nc(d)}Xk=Kk=!1}}}var Xk=!1;function Yk(a){Rk[a]||(a!==Qk&&(Wk(),Qk=a),Xk=!0,Sk||(Sk=z.setTimeout(Wk,500)),2022<=Vk().length&&Wk())}var Zk=Ka();function $k(){Zk=Ka()}function al(){return["&v=3&t=t","&pid="+Zk].join("")};var bl=function(a,b,c,d,e,f,g,k,m,n,p,q){this.eventId=a;this.priorityId=b;this.h=c;this.N=d;this.D=e;this.H=f;this.T=g;this.C=k;this.eventMetadata=m;this.onSuccess=n;this.onFailure=p;this.isGtmEvent=q},W=function(a,b,c){if(void 0!==a.h[b])return a.h[b];if(void 0!==a.N[b])return a.N[b];if(void 0!==a.D[b])return a.D[b];Ok&&cl(a,a.H[b],a.T[b])&&(O(71),O(79));return void 0!==a.H[b]?a.H[b]:void 0!==a.C[b]?a.C[b]:c},dl=function(a){function b(g){for(var k=Object.keys(g),m=0;md)return null;var e=a.indexOf("&",d);if(0>e||e>c)e=c;d+=b.length+1;return decodeURIComponent(a.slice(d,-1!==e?e:0).replace(/\+/g," "))},Cl=/[?&]($|#)/,Dl=function(a,b,c){for(var d,e=a.search(Al),f=0,g,k=[];0<=(g=zl(a,f,b,e));)k.push(a.substring(f, +g)),f=Math.min(a.indexOf("&",g)+1||e,e);k.push(a.slice(f));d=k.join("").replace(Cl,"$1");var m,n=null!=c?"="+encodeURIComponent(String(c)):"";var p=b+n;if(p){var q,r=d.indexOf("#");0>r&&(r=d.length);var t=d.indexOf("?"),u;0>t||t>r?(t=r,u=""):u=d.substring(t+1,r);q=[d.slice(0,t),u,d.slice(r)];var v=q[1];q[1]=p?v?v+"&"+p:p:v;m=q[0]+(q[1]?"?"+q[1]:"")+q[2]}else m=d;return m};var El=function(a){try{var b;if(b=!!a&&null!=a.location.href)a:{try{tj(a.foo);b=!0;break a}catch(c){}b=!1}return b}catch(c){return!1}},Fl=function(a,b){if(a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&b(a[c],c,a)};function Gl(a){if(!a||!E.head)return null;var b=Hl("META");E.head.appendChild(b);b.httpEquiv="origin-trial";b.content=a;return b} +var Il=function(a){if(z.top==z)return 0;if(void 0===a?0:a){var b=z.location.ancestorOrigins;if(b)return b[b.length-1]==z.location.origin?1:2}return El(z.top)?1:2},Hl=function(a,b){b=void 0===b?document:b;return b.createElement(String(a).toLowerCase())};function Jl(a,b,c,d){d=void 0===d?!1:d;a.google_image_requests||(a.google_image_requests=[]);var e=Hl("IMG",a.document);if(c){var f=function(){if(c){var g=a.google_image_requests,k=Db(g,e);0<=k&&Array.prototype.splice.call(g,k,1)}e.removeEventListener&&e.removeEventListener("load",f,!1);e.removeEventListener&&e.removeEventListener("error",f,!1)};vl(e,"load",f);vl(e,"error",f)}d&&(e.attributionSrc="");e.src=b;a.google_image_requests.push(e)} +var Ll=function(a){var b;b=void 0===b?!1:b;var c="https://pagead2.googlesyndication.com/pagead/gen_204?id=tcfe";Fl(a,function(d,e){if(d||0===d)c+="&"+e+"="+encodeURIComponent(""+d)});Kl(c,b)},Kl=function(a,b){var c=window,d;b=void 0===b?!1:b;d=void 0===d?!1:d;if(c.fetch){var e={keepalive:!0,credentials:"include",redirect:"follow",method:"get",mode:"no-cors"};d&&(e.mode="cors","setAttributionReporting"in XMLHttpRequest.prototype?e.attributionReporting={eventSourceEligible:"true",triggerEligible:"false"}: +e.headers={"Attribution-Reporting-Eligible":"event-source"});c.fetch(a,e)}else Jl(c,a,void 0===b?!1:b,void 0===d?!1:d)};var Ml=function(){};var Nl=function(a){void 0!==a.addtlConsent&&"string"!==typeof a.addtlConsent&&(a.addtlConsent=void 0);void 0!==a.gdprApplies&&"boolean"!==typeof a.gdprApplies&&(a.gdprApplies=void 0);return void 0!==a.tcString&&"string"!==typeof a.tcString||void 0!==a.listenerId&&"number"!==typeof a.listenerId?2:a.cmpStatus&&"error"!==a.cmpStatus?0:3},Ol=function(a,b){b=void 0===b?{}:b;this.C=a;this.h=null;this.N={};this.Na=0;var c;this.T=null!=(c=b.dn)?c:500;var d;this.H=null!=(d=b.Nn)?d:!1;this.D=null};ta(Ol,Ml); +var Ql=function(a){return"function"===typeof a.C.__tcfapi||null!=Pl(a)}; +Ol.prototype.addEventListener=function(a){var b=this,c={internalBlockOnErrors:this.H},d=ul(function(){return a(c)}),e=0;-1!==this.T&&(e=setTimeout(function(){c.tcString="tcunavailable";c.internalErrorState=1;d()},this.T));var f=function(g,k){clearTimeout(e);g?(c=g,c.internalErrorState=Nl(c),c.internalBlockOnErrors=b.H,k&&0===c.internalErrorState||(c.tcString="tcunavailable",k||(c.internalErrorState=3))):(c.tcString="tcunavailable",c.internalErrorState=3);a(c)};try{Rl(this,"addEventListener",f)}catch(g){c.tcString= +"tcunavailable",c.internalErrorState=3,e&&(clearTimeout(e),e=0),d()}};Ol.prototype.removeEventListener=function(a){a&&a.listenerId&&Rl(this,"removeEventListener",null,a.listenerId)}; +var Tl=function(a,b,c){var d;d=void 0===d?"755":d;var e;a:{if(a.publisher&&a.publisher.restrictions){var f=a.publisher.restrictions[b];if(void 0!==f){e=f[void 0===d?"755":d];break a}}e=void 0}var g=e;if(0===g)return!1;var k=c;2===c?(k=0,2===g&&(k=1)):3===c&&(k=1,1===g&&(k=0));var m;if(0===k)if(a.purpose&&a.vendor){var n=Sl(a.vendor.consents,void 0===d?"755":d);m=n&&"1"===b&&a.purposeOneTreatment&&"CH"===a.publisherCC?!0:n&&Sl(a.purpose.consents,b)}else m=!0;else m=1===k?a.purpose&&a.vendor?Sl(a.purpose.legitimateInterests, +b)&&Sl(a.vendor.legitimateInterests,void 0===d?"755":d):!0:!0;return m},Sl=function(a,b){return!(!a||!a[b])},Rl=function(a,b,c,d){c||(c=function(){});if("function"===typeof a.C.__tcfapi){var e=a.C.__tcfapi;e(b,2,c,d)}else if(Pl(a)){Ul(a);var f=++a.Na;a.N[f]=c;if(a.h){var g={};a.h.postMessage((g.__tcfapiCall={command:b,version:2,callId:f,parameter:d},g),"*")}}else c({},!1)},Pl=function(a){if(a.h)return a.h;var b;a:{for(var c=a.C,d=0;50>d;++d){var e;try{e=!(!c.frames||!c.frames.__tcfapiLocator)}catch(k){e= +!1}if(e){b=c;break a}var f;b:{try{var g=c.parent;if(g&&g!=c){f=g;break b}}catch(k){}f=null}if(!(c=f))break}b=null}a.h=b;return a.h},Ul=function(a){a.D||(a.D=function(b){try{var c;c=("string"===typeof b.data?JSON.parse(b.data):b.data).__tcfapiReturn;a.N[c.callId](c.returnValue,c.success)}catch(d){}},vl(a.C,"message",a.D))},Vl=function(a){if(!1===a.gdprApplies)return!0;void 0===a.internalErrorState&&(a.internalErrorState=Nl(a));return"error"===a.cmpStatus||0!==a.internalErrorState?a.internalBlockOnErrors? +(Ll({e:String(a.internalErrorState)}),!1):!0:"loaded"!==a.cmpStatus||"tcloaded"!==a.eventStatus&&"useractioncomplete"!==a.eventStatus?!1:!0};var Wl={1:0,3:0,4:0,7:3,9:3,10:3},Xl=sl('',500);function Yl(){var a=oi.tcf||{};return oi.tcf=a} +var Zl=function(){return new Ol(z,{dn:-1})},fm=function(){var a=Yl(),b=Zl();Ql(b)&&$l()&&O(124);if((am()||S(61))&&!a.active&&Ql(b)){am()&&(a.active=!0,a.ac={},a.cmpId=0,a.tcfPolicyVersion=0,S(61)?Cj().active=!0:bm(),a.tcString="tcunavailable");S(61)&&ek();try{b.addEventListener(function(c){if(0!==c.internalErrorState)cm(a),S(61)?(fk([Q.g.K,Q.g.Ea,Q.g.O]),Cj().active=!0):dm(a);else{a.gdprApplies=c.gdprApplies;if(S(61)){a.cmpId=c.cmpId;a.enableAdvertiserConsentMode=c.enableAdvertiserConsentMode;!0=== +Yl().enableAdvertiserConsentMode&&(a.active=!0);if(em(c)&&$l()){fk([Q.g.K,Q.g.Ea,Q.g.O]);return}a.tcfPolicyVersion=c.tcfPolicyVersion}var d;if(!1===c.gdprApplies){var e={},f;for(f in Wl)Wl.hasOwnProperty(f)&&(e[f]=!0);d=e;b.removeEventListener(c)}else if(em(c)){var g={},k;for(k in Wl)if(Wl.hasOwnProperty(k))if("1"===k){var m,n=c,p=!0;p=void 0===p?!1:p;m=Vl(n)?!1===n.gdprApplies||"tcunavailable"===n.tcString||void 0===n.gdprApplies&&!p||"string"!==typeof n.tcString||!n.tcString.length?!0:Tl(n,"1", +0):!1;g["1"]=m}else g[k]=Tl(c,k,Wl[k]);d=g}d&&(a.tcString=c.tcString||"tcempty",a.ac=d,dm(a))}})}catch(c){cm(a),S(61)?(fk([Q.g.K,Q.g.Ea,Q.g.O]),Cj().active=!0):dm(a)}}};function cm(a){a.type="e";a.tcString="tcunavailable"}function em(a){return"tcloaded"===a.eventStatus||"useractioncomplete"===a.eventStatus||"cmpuishown"===a.eventStatus}function bm(){var a={},b=(a[Q.g.K]="denied",a[Q.g.wd]=Xl,a);Wj(b)} +var am=function(){return!0===z.gtag_enable_tcf_support},$l=function(){var a=am();return S(61)?!a&&!0!==Yl().enableAdvertiserConsentMode:!a}; +function dm(a){var b={},c=(b[Q.g.K]=a.ac["1"]?"granted":"denied",b);if(S(61)){if(!0!==a.gdprApplies){fk([Q.g.K,Q.g.Ea,Q.g.O]);Cj().active=!0;return}c[Q.g.Ea]=a.ac["3"]&&a.ac["4"]?"granted":"denied";"number"===typeof a.tcfPolicyVersion&&4<=a.tcfPolicyVersion?c[Q.g.O]=a.ac["1"]&&a.ac["7"]?"granted":"denied":fk([Q.g.O])}Xj(c,{eventId:0},{gdprApplies:a?a.gdprApplies:void 0,tcString:gm()||""})} +var gm=function(){var a=Yl();if(a.active)return a.tcString},hm=function(){var a=Yl();if(a.active&&void 0!==a.gdprApplies)return a.gdprApplies?"1":"0"},im=function(a){if(!Wl.hasOwnProperty(String(a)))return!0;var b=Yl();return b.active&&b.ac?!!b.ac[String(a)]:!0};var jm=[Q.g.K,Q.g.U],km=[Q.g.K,Q.g.U,Q.g.O,Q.g.Ea],lm={},mm=(lm[Q.g.K]=1,lm[Q.g.U]=2,lm);function nm(a){if(void 0===a)return 0;switch(W(a,Q.g.ka)){case void 0:return 1;case !1:return 3;default:return 2}} +var om=function(a){var b=nm(a);if(3===b)return!1;if(S(52))switch(Jj(Q.g.Ea)){case 1:case 3:break;case 2:return!1;case 4:return 2===b;case 0:break;default:return!1}return!0},pm=function(){return Mj()||!Ij(Q.g.K)||!Ij(Q.g.U)},qm=function(){var a={},b;for(b in mm)mm.hasOwnProperty(b)&&(a[mm[b]]=Jj(b));var c=S(38)&&jm.every(function(e){return Ij(e)}),d=S(34);return c||d?Ne(a,1):Ne(a,0)},rm={},sm=(rm[Q.g.K]=0,rm[Q.g.U]=1,rm[Q.g.O]=2,rm[Q.g.Ea]=3,rm); +function tm(a){switch(a){case void 0:return 1;case !0:return 3;case !1:return 2;default:return 0}} +var um=function(a){if(S(35)){for(var b="1",c=0;c=c&&(a="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_"[c>>6&63],b="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_"[c&63]);var e="0",f;var g=Yl();f=g.active&&S(61)?g.tcfPolicyVersion:void 0;"number"===typeof f&&0<=f&&63>=f&&(e="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_"[f]); +var k=0;lj["6"]&&(k|=1);"1"===hm()&&(k|=2);am()&&(k|=4);var m;var n=Yl();m=void 0!==n.enableAdvertiserConsentMode?n.enableAdvertiserConsentMode?"1":"0":void 0;"1"===m&&(k|=8);Cj().waitPeriodTimedOut&&(k|=16);return"1"+a+b+e+"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_"[k]};var Am=function(a,b,c){for(var d=[],e=b.split(";"),f=0;fe?b[c++]=e:(2048>e?b[c++]=e>>6|192:(55296==(e&64512)&&d+1>18|240,b[c++]=e>>12&63|128):b[c++]=e>>12|224,b[c++]=e>>6&63|128),b[c++]=e&63|128)}return b};bc();xl()||Zb("iPod");Zb("iPad");!Zb("Android")||cc()||bc()||ac()||Zb("Silk");cc();!Zb("Safari")||cc()||($b()?0:Zb("Coast"))||ac()||($b()?0:Zb("Edge"))||($b()?Yb("Microsoft Edge"):Zb("Edg/"))||($b()?Yb("Opera"):Zb("OPR"))||bc()||Zb("Silk")||Zb("Android")||yl();var mn={},nn=null,on=function(a){for(var b=[],c=0,d=0;d>=8);b[c++]=e}var f=4;void 0===f&&(f=0);if(!nn){nn={};for(var g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),k=["+/=","+/","-_=","-_.","-_"],m=0;5>m;m++){var n=g.concat(k[m].split(""));mn[m]=n;for(var p=0;p>2],D=r[(x&3)<<4|y>>4],F=r[(y&15)<<2|A>>6],G=r[A&63];t[w++]=""+C+D+F+G}var K=0,N=u;switch(b.length-v){case 2:K=b[v+1],N=r[(K&15)<<2]||u;case 1:var P=b[v];t[w]=""+r[P>>2]+r[(P&3)<<4|K>>4]+N+u}return t.join("")};Object.freeze({});Object.freeze({});var pn="platform platformVersion architecture model uaFullVersion bitness fullVersionList wow64".split(" ");function qn(a){var b;return null!=(b=a.google_tag_data)?b:a.google_tag_data={}}function rn(){var a=z.google_tag_data,b;if(null!=a&&a.uach){var c=a.uach,d=Object.assign({},c);c.fullVersionList&&(d.fullVersionList=c.fullVersionList.slice(0));b=d}else b=null;return b}function sn(){var a,b;return null!=(b=null==(a=z.google_tag_data)?void 0:a.uach_promise)?b:null} +function tn(a){var b,c;return"function"===typeof(null==(b=a.navigator)?void 0:null==(c=b.userAgentData)?void 0:c.getHighEntropyValues)}function un(){var a=z;if(!tn(a))return null;var b=qn(a);if(b.uach_promise)return b.uach_promise;var c=a.navigator.userAgentData.getHighEntropyValues(pn).then(function(d){null!=b.uach||(b.uach=d);return d});return b.uach_promise=c}; +var vn,wn=function(){if(tn(z)&&(vn=Ua(),!sn())){var a=un();a&&(a.then(function(){O(95);}),a.catch(function(){O(96)}))}},yn=function(a){var b=xn.hn,c=function(g,k){try{a(g,k)}catch(m){}},d=rn();if(d)c(d);else{var e=sn();if(e){b= +Math.min(Math.max(isFinite(b)?b:0,0),1E3);var f=z.setTimeout(function(){c.Le||(c.Le=!0,O(106),c(null,Error("Timeout")))},b);e.then(function(g){c.Le||(c.Le=!0,O(104),z.clearTimeout(f),c(g))}).catch(function(g){c.Le||(c.Le=!0,O(105),z.clearTimeout(f),c(null,g))})}else c(null)}},zn=function(a,b){a&&(b.h[Q.g.Yd]=a.architecture,b.h[Q.g.Zd]=a.bitness,a.fullVersionList&&(b.h[Q.g.ae]=a.fullVersionList.map(function(c){return encodeURIComponent(c.brand||"")+";"+encodeURIComponent(c.version||"")}).join("|")), +b.h[Q.g.be]=a.mobile?"1":"0",b.h[Q.g.ce]=a.model,b.h[Q.g.de]=a.platform,b.h[Q.g.ee]=a.platformVersion,b.h[Q.g.fe]=a.wow64?"1":"0")};var An=/:[0-9]+$/,Bn=/^\d+\.fls\.doubleclick\.net$/,Cn=function(a,b,c,d){function e(r){return Sf(10)?decodeURIComponent(r.replace(/\+/g," ")):decodeURIComponent(r).replace(/\+/g," ")}for(var f=[],g=ia(a.split("&")),k=g.next();!k.done;k=g.next()){var m=ia(k.value.split("=")),n=m.next().value,p=ka(m);if(e(n)===b){var q=p.join("=");if(!c)return d?q:e(q);f.push(d?q:e(q))}}return c?f:void 0},Fn=function(a,b,c,d,e){b&&(b=String(b).toLowerCase());if("protocol"===b||"port"===b)a.protocol=Dn(a.protocol)|| +Dn(z.location.protocol);"port"===b?a.port=String(Number(a.hostname?a.port:z.location.port)||("http"===a.protocol?80:"https"===a.protocol?443:"")):"host"===b&&(a.hostname=(a.hostname||z.location.hostname).replace(An,"").toLowerCase());return En(a,b,c,d,e)},En=function(a,b,c,d,e){var f,g=Dn(a.protocol);b&&(b=String(b).toLowerCase());switch(b){case "url_no_fragment":f=Gn(a);break;case "protocol":f=g;break;case "host":f=a.hostname.replace(An,"").toLowerCase();if(c){var k=/^www\d*\./.exec(f);k&&k[0]&& +(f=f.substr(k[0].length))}break;case "port":f=String(Number(a.port)||("http"===g?80:"https"===g?443:""));break;case "path":a.pathname||a.hostname||Ab("TAGGING",1);f="/"===a.pathname.substr(0,1)?a.pathname:"/"+a.pathname;var m=f.split("/");0<=(d||[]).indexOf(m[m.length-1])&&(m[m.length-1]="");f=m.join("/");break;case "query":f=a.search.replace("?","");e&&(f=Cn(f,e,!1));break;case "extension":var n=a.pathname.split(".");f=1c?a.href:a.href.substr(0,c)}return b},Hn=function(a){var b=E.createElement("a");a&&(b.href=a);var c=b.pathname;"/"!==c[0]&&(a||Ab("TAGGING",1),c="/"+c);var d=b.hostname.replace(An,"");return{href:b.href,protocol:b.protocol,host:b.host,hostname:d,pathname:c,search:b.search,hash:b.hash,port:b.port}},In=function(a){function b(n){var p= +n.split("=")[0];return 0>d.indexOf(p)?n:p+"=0"}function c(n){return n.split("&").map(b).filter(function(p){return void 0!==p}).join("&")}var d="gclid dclid gbraid wbraid gclaw gcldc gclha gclgf gclgb _gl".split(" "),e=Hn(a),f=a.split(/[?#]/)[0],g=e.search,k=e.hash;"?"===g[0]&&(g=g.substring(1));"#"===k[0]&&(k=k.substring(1));g=c(g);k=c(k);""!==g&&(g="?"+g);""!==k&&(k="#"+k);var m=""+f+g+k;"/"===m[m.length-1]&&(m=m.substring(0,m.length-1));return m},Jn=function(a){var b=Hn(z.location.href),c=Fn(b, +"host",!1);if(c&&c.match(Bn)){var d=Fn(b,"path").split(a+"=");if(1f;f++){for(var g=f,k=0;8>k;k++)g=g&1?g>>>1^3988292384:g>>>1;e[f]=g}d=e}Ln=d;for(var m=4294967295,n=0;n>>8^Ln[(m^c.charCodeAt(n))&255];return((m^-1)>>>0).toString(36)} +function Xn(){return function(a){var b=Hn(z.location.href),c=b.search.replace("?",""),d=Cn(c,"_gl",!1,!0)||"";a.query=Yn(d)||{};var e=Fn(b,"fragment"),f;var g=-1;if(Za(e,"_gl="))g=4;else{var k=e.indexOf("&_gl=");0g)f=void 0;else{var m=e.indexOf("&",g);f=0>m?e.substring(g):e.substring(g,m)}a.fragment=Yn(f||"")||{}}} +var Zn=function(a){var b=Xn(),c=On();c.data||(c.data={query:{},fragment:{}},b(c.data));var d={},e=c.data;e&&(Xa(d,e.query),a&&Xa(d,e.fragment));return d},Yn=function(a){try{var b=$n(a,3);if(void 0!==b){for(var c={},d=b?b.split("*"):[],e=0;e+1e;++e){var f=Sn.exec(d);if(f){c=f;break a}d=decodeURIComponent(d)}c=void 0}var g=c;if(g&&"1"===g[1]){var k=g[3],m;a:{for(var n=g[2],p=0;pf.length||!b&&3!==f.length)&&Number(f[1])){d[c[e].Rh]||(d[c[e].Rh]=[]);var g={version:f[0],timestamp:1E3*Number(f[1]),aa:f[2]};b&&3p){n=!0;break b}n=!1}if(!n){var t=Kn(b,m,!0);t.Fb=Co();Nm(g,k,t)}}}}No(Lo(c.gclid,c.gclsrc),!1,b)})},Po=function(a,b){var c=Bo[a];if(void 0!==c)return b+c},Qo=function(a){return 0!==So(a.split(".")).length?1E3*(Number(a.split(".")[1])||0): +0};function Ho(a){var b=So(a.split("."));return 0===b.length?null:{version:b[0],aa:b[2],timestamp:1E3*(Number(b[1])||0),labels:b.slice(3)}}function So(a){return 3>a.length||"GCL"!==a[0]&&"1"!==a[0]||!/^\d+$/.test(a[1])||!Ao.test(a[2])?[]:a} +var To=function(a,b,c,d,e){if(Ia(b)&&Bm(z)){var f=Ko(e),g=function(){for(var k={},m=0;mb};var hp=/[A-Z]+/,ip=/\s/,jp=function(a,b){if(h(a)){a=Sa(a);var c=a.indexOf("-");if(!(0>c)){var d=a.substring(0,c);if(hp.test(d)){var e=a.substring(c+1),f;if(b){var g=function(n){var p=n.indexOf("/");return 0>p?[n]:[n.substring(0,p),n.substring(p+1)]};f=g(e);if("DC"===d&&2===f.length){var k=g(f[1]);2===k.length&&(f[1]=k[0],f.push(k[1]))}}else{f=e.split("/");for(var m=0;mq;q++){var r=p[q].src;if(r){r=r.toLowerCase();if(0===r.indexOf(m)){f=3;break a}1===n&&0===r.indexOf(k)&&(n=2)}}f=n}else f=e;return(2===f||d||"http:"!=z.location.protocol?a:b)+c};var yp,zp=!1;function Ap(){zp=!0;yp=yp||{}}var Bp=function(a){zp||Ap();return yp[a]};var Cp=function(a,b,c){this.target=a;this.eventName=b;this.s=c;this.h={};this.metadata=B(c.eventMetadata||{});this.isAborted=!1};Cp.prototype.copyToHitData=function(a,b,c){var d=W(this.s,a);void 0===d&&(d=b);if(void 0!==d&&void 0!==c&&h(d)&&S(67))try{d=c(d)}catch(e){}void 0!==d&&(this.h[a]=d)};var Dp=function(a){return a.metadata.source_canonical_id},Ep=function(a,b,c){var d=Bp(a.target.fa);return d&&d.hasOwnProperty(b)?d[b]:c};function Fp(a){return{getDestinationId:function(){return a.target.fa},getEventName:function(){return a.eventName},setEventName:function(b){a.eventName=b},getHitData:function(b){return a.h[b]},setHitData:function(b,c){a.h[b]=c},setHitDataIfNotDefined:function(b,c){void 0===a.h[b]&&(a.h[b]=c)},copyToHitData:function(b,c){a.copyToHitData(b,c)},getMetadata:function(b){return a.metadata[b]},setMetadata:function(b,c){a.metadata[b]=c},isAborted:function(){return a.isAborted},abort:function(){a.isAborted= +!0},getFromEventContext:function(b){return W(a.s,b)},xj:function(){return a},getHitKeys:function(){return Object.keys(a.h)}}};var Hp=function(a){var b=Gp[a.target.fa];if(!a.isAborted&&b)for(var c=Fp(a),d=0;d=f)return!0;(d=d.parentElement)&&(e=z.getComputedStyle(d,null))}return!1}; +var Rq=function(){var a=E.body,b=E.documentElement||a&&a.parentElement,c,d;if(E.compatMode&&"BackCompat"!==E.compatMode)c=b?b.clientHeight:0,d=b?b.clientWidth:0;else{var e=function(f,g){return f&&g?Math.min(f,g):Math.max(f,g)};c=e(b?b.clientHeight:0,a?a.clientHeight:0);d=e(b?b.clientWidth:0,a?a.clientWidth:0)}return{width:d,height:c}},Sq=function(a){var b=Rq(),c=b.height,d=b.width,e=a.getBoundingClientRect(),f=e.bottom-e.top,g=e.right-e.left;return f&&g?(1-Math.min((Math.max(0-e.left,0)+Math.max(e.right- +d,0))/g,1))*(1-Math.min((Math.max(0-e.top,0)+Math.max(e.bottom-c,0))/f,1)):0};var Tq=[],Uq=!(!z.IntersectionObserver||!z.IntersectionObserverEntry),Vq=function(a,b,c){for(var d=new z.IntersectionObserver(a,{threshold:c}),e=0;ee[k])for(;f[k]=c[f[k]+1];)d(b[k],m),f[k]++;else if(mc[d]&&(c[d]=0);if(Uq){var e=!1;H(function(){e|| +Wq(a,b,c)()});return Vq(function(f){e=!0;for(var g={Je:0};g.Je=a.length)return a;var c=a.filter(b);return 0==c.length?a:c},Zq=function(a){var b;if(a===E.body)b="body";else{var c;if(a.id)c="#"+a.id;else{var d;if(a.parentElement){var e;a:{var f=a.parentElement;if(f){for(var g=0;g:nth-child("+e+")"}else d="";c=d}b=c}return b},hr=function(a){for(var b=[],c=0;cd;d++){var e=c[d];if(!(0<=ir.indexOf(e.tagName.toUpperCase()))&&e.children instanceof HTMLCollection){for(var f=!1,g=0;gg;g++)if(!(0<=jr.indexOf(e.children[g].tagName.toUpperCase()))){f=!0;break}(!f||S(40)&&-1!==kr.indexOf(e.tagName))&&a.push(e)}}return{elements:a,status:1E4Ua()-c.timestamp)return c.result;var d=lr(),e=d.status, +f=[],g,k,m=[];if(!S(40)){if(a.lb&&a.lb.email){var n=hr(d.elements);f=fr(n,a&&a.ye);g=er(f);10Ua()-d){Ab("TAGGING",9);return}try{c.parentNode.removeChild(c)}catch(e){}c=void 0}else try{if(50<=E.querySelectorAll('iframe[allow="join-ad-interest-group"][data-tagging-id*="-"]').length){Ab("TAGGING",10);return}}catch(e){}Mc(a,void 0,{allow:"join-ad-interest-group"},{taggingId:b,loadTime:Ua()},c)}function os(){return"https://td.doubleclick.net"};var ps=RegExp("^UA-\\d+-\\d+%3A[\\w-]+(?:%2C[\\w-]+)*(?:%3BUA-\\d+-\\d+%3A[\\w-]+(?:%2C[\\w-]+)*)*$"),qs=/^~?[\w-]+(?:\.~?[\w-]+)*$/,rs=/^\d+\.fls\.doubleclick\.net$/,ss=/;gac=([^;?]+)/,ts=/;gacgb=([^;?]+)/,us=/;gclaw=([^;?]+)/,vs=/;gclgb=([^;?]+)/; +function ws(a,b){if(rs.test(E.location.host)){var c=E.location.href.match(b);return c&&2==c.length&&c[1].match(ps)?decodeURIComponent(c[1]):""}var d=[],e;for(e in a){for(var f=[],g=a[e],k=0;kc.indexOf(k))if(m&&0c.indexOf(m[t])){O(11);r=!1;break a}}else{r=!1;break a}r=!0}n=r}var u=!1;if(d){var v=0<=e.indexOf(k);if(v)u=v;else{var w=Ma(e,m||[]);w&&O(10);u=w}}var x=!n||u;x||!(0<=m.indexOf("sandboxedScripts"))||c&&-1!==c.indexOf("sandboxedScripts")||(x=Ma(e,Pu));return f[k]=x}},Ru=!1; +Ru=!0;var Qu=function(){return Mu.test(z.location&&z.location.hostname)},Tu=function(){mk&&Ju(uk(),function(a){var b=xf(a),c;if(Cf(b)){var d=b[Oe.za];if(!d)throw"Error: No function name given for function call.";var e=qf[d];c=!!e&&!!e.runInSiloedMode}else c=!!Hu(b[Oe.za],4);return c})};var Vu=function(a,b,c,d,e){if(!Uu()&&!Ak(a)){var f="?id="+encodeURIComponent(a)+"&l="+ni.ia,g=0===a.indexOf("GTM-");g||(f+="&cx=c");S(51)&&(f+=">m="+hn());var k=Np();k&&(f+="&sign="+ni.Af);var m=c?"/gtag/js":"/gtm.js",n=wi||yi?Mp(b,m+f):void 0;if(!n){var p=ni.yd+m;k&&Ec&&g&&(p=Ec.replace(/^(?:https?:\/\/)?/i,"").split(/[?#]/)[0]);n=mp("https://","http://",p+f)}var q=a;d.siloed&&(Dk({ctid:q,isDestination:!1}),q=ok(q));var r=q,t=Ck();ik().container[r]={state:1,context:d,parent:t};jk({ctid:r,isDestination:!1}, +e);Kc(n)}},Wu=function(a,b,c,d){if(!Uu()&&!Bk(a))if(Ek())ik().destination[a]={state:0,transportUrl:b,context:c,parent:Ck()},jk({ctid:a,isDestination:!0},d),O(91);else{var e="/gtag/destination?id="+encodeURIComponent(a)+"&l="+ni.ia+"&cx=c";S(51)&&(e+=">m="+hn());Np()&&(e+="&sign="+ni.Af);var f=wi||yi?Mp(b,e):void 0;f||(f=mp("https://","http://",ni.yd+e));var g=a;c.siloed&&(Dk({ctid:g,isDestination:!0}),g=ok(g));ik().destination[g]={state:1,context:c,parent:Ck()};jk({ctid:g,isDestination:!0},d);Kc(f)}}; +function Uu(){if(Xm()){return!0}return!1};var Xu=!1,Yu=0,Zu=[];function $u(a){if(!Xu){var b=E.createEventObject,c="complete"==E.readyState,d="interactive"==E.readyState;if(!a||"readystatechange"!=a.type||c||!b&&d){Xu=!0;for(var e=0;eYu){Yu++;try{E.documentElement.doScroll("left"),$u()}catch(a){z.setTimeout(av,50)}}}var bv=function(a){Xu?a():Zu.push(a)};var cv=function(){this.H=0;this.h={}};cv.prototype.addListener=function(a,b,c){var d=++this.H;this.h[a]=this.h[a]||{};this.h[a][String(d)]={listener:b,ob:c};return d};cv.prototype.C=function(a,b){var c=this.h[a],d=String(b);if(!c||!c[d])return!1;delete c[d];return!0};cv.prototype.D=function(a,b){var c=[];l(this.h[a],function(d,e){0>c.indexOf(e.listener)&&(void 0===e.ob||0<=b.indexOf(e.ob))&&c.push(e.listener)});return c};var dv=function(a,b,c){return{entityType:a,indexInOriginContainer:b,nameInOriginContainer:c,originContainerId:tk()}};var fv=function(a,b){this.h=!1;this.H=[];this.N={tags:[]};this.T=!1;this.C=this.D=0;ev(this,a,b)},gv=function(a,b,c,d){if(ri.hasOwnProperty(b)||"__zone"===b)return-1;var e={};nb(d)&&(e=B(d,e));e.id=c;e.status="timeout";return a.N.tags.push(e)-1},hv=function(a,b,c,d){var e=a.N.tags[b];e&&(e.status=c,e.executionTime=d)},iv=function(a){if(!a.h){for(var b=a.H,c=0;c=a.D&&iv(a)})},kv=function(a){a.T=!0;a.C>=a.D&&iv(a)};var lv={},nv=function(){return z[mv()]},ov=!1; +function mv(){return z.GoogleAnalyticsObject||"ga"} +var rv=function(a){},sv=function(a,b){return function(){var c=nv(),d=c&&c.getByName&&c.getByName(a);if(d){var e=d.get("sendHitTask");d.set("sendHitTask",function(f){var g=f.get("hitPayload"),k=f.get("hitCallback"),m=0>g.indexOf("&tid="+b);m&&(f.set("hitPayload",g.replace(/&tid=UA-[0-9]+-[0-9]+/,"&tid="+b),!0),f.set("hitCallback",void 0,!0));e(f);m&&(f.set("hitPayload", +g,!0),f.set("hitCallback",k,!0),f.set("_x_19",void 0,!0),e(f))})}}};var xv={},yv={};function zv(a,b){if(Ok){var c;c=b.match(/^(gtm|gtag)\./)?encodeURIComponent(b):"*";xv[a]="&e="+c+"&eid="+a;Yk(a)}}function Av(a){var b=a.eventId,c=a.fc;if(!xv[b])return"";var d=yv[b]?"":"&es=1";d+=xv[b];c&&(yv[b]=!0);return d};var Bv={};function Cv(a,b){Ok&&(Bv[a]=Bv[a]||{},Bv[a][b]=(Bv[a][b]||0)+1)}function Dv(a){var b=a.eventId,c=a.fc,d=Bv[b]||{},e=[],f;for(f in d)d.hasOwnProperty(f)&&e.push(""+f+d[f]);c&&delete Bv[b];return e.length?"&md="+e.join("."):""};var Ev={},Fv={aev:"1",c:"2",jsm:"3",v:"4",j:"5",smm:"6",rmm:"7",input:"8"}; +function Gv(a,b,c){if(Ok){Ev[a]=Ev[a]||[];var d=Fv[b]||"0",e;e=c instanceof z.Element?"1":c instanceof z.Event?"2":c instanceof z.RegExp?"3":c===z?"4":c===E?"5":c instanceof z.Promise?"6":c instanceof z.Storage?"7":c instanceof z.Date?"8":c instanceof z.History?"9":c instanceof z.Performance?"a":c===z.crypto?"b":c instanceof z.Location?"c":c instanceof z.Navigator?"d":"object"!==typeof c||nb(c)?"0":"e";Ev[a].push(""+d+e)}} +function Hv(a){var b=a.eventId,c=Ev[b]||[];if(!c.length)return"";a.fc&&delete Ev[b];return"&pcr="+c.join(".")};var Iv={},Jv={};function Kv(a,b,c){if(Ok&&b){var d=gk(b);Iv[a]=Iv[a]||[];Iv[a].push(c+d);var e=(Cf(b)?"1":"2")+d;Jv[a]=Jv[a]||[];Jv[a].push(e);Yk(a)}}function Lv(a){var b=a.eventId,c=a.fc,d="",e=Iv[b]||[];e.length&&(d+="&tr="+e.join("."));var f=Jv[b]||[];f.length&&(d+="&ti="+f.join("."));c&&(delete Iv[b],delete Jv[b]);return d};function Mv(a,b,c,d){var e=of[a],f=Nv(a,b,c,d);if(!f)return null;var g=zf(e[Oe.ej],c,[]);if(g&&g.length){var k=g[0];f=Mv(k.index,{onSuccess:f,onFailure:1===k.uj?b.terminate:f,terminate:b.terminate},c,d)}return f} +function Nv(a,b,c,d){function e(){if(f[Oe.Nk])k();else{var w=Af(f,c,[]),x=w[Oe.ek];if(null!=x)for(var y=0;ye?1:dk?1:ga.length)&&h(a[1])){var e={};if(2G.indexOf(C)&&G.push(C)}}else{Xw(f.id);var K=f.id,N=e[Q.g.Rd]||"default";N=N.toString().split(",");for(var P=0;PU.indexOf(K)&&U.push(K)}}delete e[Q.g.Rd];var ca=b.eventMetadata||{};ca.hasOwnProperty("is_external_event")||(ca.is_external_event=!b.fromContainerExecution);b.eventMetadata=ca;delete e[Q.g.Uc];for(var V=u?[f.id]:rk(),T=0;Ta.length)&&h(c)){var d;if(2b)b=0;var c=oi[ni.ia],d=0,e=!1,f=void 0;f=z.setTimeout(function(){e||(e=!0,a());f=void 0},b);return function(){var g=c?c.subscribers:1;++d===g&&(f&&(z.clearTimeout(f),f=void 0),e||(a(),e=!0))}}; +function Px(a,b){var c=a._clear||b.overwriteModelFields;l(a,function(e,f){"_clear"!==e&&(c&&Ri(e),Ri(e,f))});Di||(Di=a["gtm.start"]);var d=a["gtm.uniqueEventId"];if(!a.event)return!1;"number"!==typeof d&&(d=Ii(),a["gtm.uniqueEventId"]=d,Ri("gtm.uniqueEventId",d));return Tw(a)} +function Qx(a){if(null==a||"object"!==typeof a)return!1;if(a.event)return!0;if(Na(a)){var b=a[0];if("config"===b||"event"===b||"js"===b||"get"===b)return!0}return!1} +function Rx(){var a;if(Ix.length)a=Ix.shift();else if(Hx.length)a=Hx.shift();else return;var b;var c=a;if(Jx||!Qx(c.message))b=c;else{Jx=!0;var d=c.message["gtm.uniqueEventId"];"number"!==typeof d&&(d=c.message["gtm.uniqueEventId"]=Ii());var e={},f={message:(e.event="gtm.init_consent",e["gtm.uniqueEventId"]=d-2,e),messageContext:{eventId:d-2}},g={},k={message:(g.event="gtm.init",g["gtm.uniqueEventId"]=d-1,g),messageContext:{eventId:d-1}};Hx.unshift(k,c);if(Ok){var m=Tf.ctid;if(m){var n,p=vk(Ck()); +n=p&&p.context;var q,r=Hn(z.location.href);q=r.hostname+r.pathname;var t=n&&n.fromContainerExecution,u=n&&n.source,v=Tf.Ff,w=lk.ke;Ok&&(Pp||(Pp=q),Qp.push(m+";"+v+";"+(t?1:0)+";"+(u||0)+";"+(w?1:0)))}}b=f}return b} +function Sx(){for(var a=!1,b;!Kx&&(b=Rx());){Kx=!0;delete Li.eventModel;Ni();var c=b,d=c.message,e=c.messageContext;if(null==d)Kx=!1;else{e.fromContainerExecution&&Si();try{if(Ea(d))try{d.call(Pi)}catch(x){}else if(Ia(d)){var f=d;if(h(f[0])){var g=f[0].split("."),k=g.pop(),m=f.slice(1),n=Oi(g.join("."),2);if(null!=n)try{n[k].apply(n,m)}catch(x){}}}else{var p=void 0,q=!1;if(Na(d)){a:{if(d.length&&h(d[0])){var r=gx[d[0]];if(r&&(!e.fromContainerExecution||!hx[d[0]])){p=r(d,e);break a}}p=void 0}(q=p&& +"set"===d[0]&&!!p.event)&&O(101)}else p=d;if(p){var t=Px(p,e);a=t||a;q&&t&&O(113)}}}finally{e.fromContainerExecution&&Ni(!0);var u=d["gtm.uniqueEventId"];if("number"===typeof u){for(var v=Gx[String(u)]||[],w=0;wFx&&(Fx=u)}Kx=!1}}}return!a} +function Ux(){if(S(24)){var a=Vx();}var b=Sx();if(S(24)){}try{ix(tk())}catch(c){}return b} +function xw(a){if(Fxn)for(O(4),c.pruned=!0;this.length>n;)this.shift();var p="boolean"!==typeof m||m;return Sx()&&p};var e=b.slice(0).map(function(f){return a(f)});Hx.push.apply(Hx,e);if(Vx()){if(S(24)){}H(Ux)}},Vx=function(){var a=!0;return a};function Xx(a){if(null==a||0===a.length)return!1;var b=Number(a),c=Ua();return bc-9E5}function Yx(a){return a&&0===a.indexOf("pending:")?Xx(a.substr(8)):!1}; + +var sy=function(){};var ty=function(){};ty.prototype.toString=function(){return"undefined"};var uy=new ty; +var By=function(a,b,c){var d={event:b,"gtm.element":a,"gtm.elementClasses":Vc(a,"className"),"gtm.elementId":a["for"]||Qc(a,"id")||"","gtm.elementTarget":a.formTarget||Vc(a,"target")||""};c&&(d["gtm.triggers"]=c.join(","));d["gtm.elementUrl"]=(a.attributes&&a.attributes.formaction?a.formAction:"")||a.action||Vc(a,"href")||a.src||a.code||a.codebase||"";return d},Cy=function(a){oi.hasOwnProperty("autoEventsSettings")||(oi.autoEventsSettings={});var b=oi.autoEventsSettings;b.hasOwnProperty(a)||(b[a]= +{});return b[a]},Dy=function(a,b,c){Cy(a)[b]=c},Ey=function(a,b,c,d){var e=Cy(a),f=Va(e,b,d);e[b]=c(f)},Fy=function(a,b,c){var d=Cy(a);return Va(d,b,c)},Gy=function(a,b){Fy(a,"init",!1)||(Dy(a,"init",!0),b())},Hy=function(a){return"string"===typeof a?a:String(Ii())}; +var Iy=["input","select","textarea"],Jy=["button","hidden","image","reset","submit"],Ky=function(a){var b=a.tagName.toLowerCase();return 0>Iy.indexOf(b)||"input"===b&&0<=Jy.indexOf(a.type.toLowerCase())?!1:!0},Ly=function(a){return a.form?a.form.tagName?a.form:E.getElementById(a.form):Tc(a,["form"],100)},My=function(a,b,c){if(!a.elements)return 0;for(var d=b.dataset[c],e=0,f=1;e=p?0:Math.round(q/p*100),t=E.hidden?!1:.5<=Sq(c);d();var u=void 0;void 0!==b&&(u=[b]);var v=By(c,"gtm.video",u);v["gtm.videoProvider"]="youtube";v["gtm.videoStatus"]=g;v["gtm.videoUrl"]=n.url;v["gtm.videoTitle"]=n.title;v["gtm.videoDuration"]= +Math.round(p);v["gtm.videoCurrentTime"]=Math.round(q);v["gtm.videoElapsedTime"]=Math.round(f);v["gtm.videoPercent"]=r;v["gtm.videoVisible"]=t;return v},Nj:function(){e=Ua()},fd:function(){d()}}};var bz=z.clearTimeout,cz=z.setTimeout,dz=function(a,b,c,d){if(Xm()){b&&H(b)}else return Kc(a,b,c,d)},ez=function(){return new Date},fz=function(){return z.location.href},gz=function(a){return Fn(Hn(a),"fragment")},hz=function(a){return Gn(Hn(a))},iz=function(a,b){return Oi(a,b||2)},jz=function(a,b,c){return b?Nx(a,b,c):Mx(a)},kz=function(a,b){z[a]=b},X=function(a,b,c){b&&(void 0===z[a]||c&&!z[a])&&(z[a]=b);return z[a]}, +lz=function(a,b,c){return Em(a,b,void 0===c?!0:!!c)},mz=function(a,b,c){return 0===Nm(a,b,c)},nz=function(a,b){if(Xm()){b&&H(b)}else Mc(a,b)},oz=function(a){return!!Fy(a,"init",!1)},pz=function(a){Dy(a,"init",!0)},qz=function(a,b,c){pb(a)||Gv(c,b,a)}; + +function Nz(a,b){function c(g){var k=Hn(g),m=Fn(k,"protocol"),n=Fn(k,"host",!0),p=Fn(k,"port"),q=Fn(k,"path").toLowerCase().replace(/\/$/,"");if(void 0===m||"http"===m&&"80"===p||"https"===m&&"443"===p)m="web",p="default";return[m,n,p,q]}for(var d=c(String(a)),e=c(String(b)),f=0;fd)d=0;var e=nd(a),f;Fy("pix.fil","init")?f=Fy("pix.fil","reg"):(nA(),f=rA,Dy("pix.fil","reg",rA),Dy("pix.fil","init",!0));f(d,e);}sA.F="internal.addFormInteractionListener"; +var uA=function(a,b,c){var d=By(a,"gtm.formSubmit");d["gtm.interactedFormName"]=a.getAttribute("name");d["gtm.interactedFormLength"]=a.length;d["gtm.willOpenInCurrentWindow"]=!b&&tA(a);c&&c.value&&(d["gtm.formSubmitButtonText"]=c.value);var e=a.action;e&&e.tagName&&(e=a.cloneNode(!1).action);d["gtm.elementUrl"]=e;d["gtm.formCanceled"]=b;return d},vA=function(a,b){var c=Fy("pix.fsl",a?"nv.mwt":"mwt",0);z.setTimeout(b,c)},wA=function(a,b,c,d,e){var f=Fy("pix.fsl",c?"nv.mwt":"mwt",0),g=Fy("pix.fsl", +c?"runIfCanceled":"runIfUncanceled",[]);if(!g.length)return!0;var k=uA(a,c,e);O(121);if("https://www.facebook.com/tr/"===k["gtm.elementUrl"])return O(122),!0;if(d&&f){for(var m=db(b,g.length),n=0;n=a.Cc)a.Ac&&z.clearInterval(a.Ac);else{a.Ec++;var b=Ua();Mx({event:a.eventName,"gtm.timerId":a.Ac,"gtm.timerEventNumber":a.Ec,"gtm.timerInterval":a.interval,"gtm.timerLimit":a.Cc,"gtm.timerStartTime":a.Ue,"gtm.timerCurrentTime":b,"gtm.timerElapsedTime":b-a.Ue,"gtm.triggers":a.Sh})}}} +function sC(a,b){ +return b}sC.F="internal.enableAutoEventOnTimer";var yc=ea(["data-gtm-yt-inspected-"]),tC=["www.youtube.com","www.youtube-nocookie.com"],uC,vC=!1; +var wC=function(a,b,c){var d=a.map(function(g){return{Da:g,Te:g,Re:void 0}});if(!b.length)return d;var e=b.map(function(g){return{Da:g*c,Te:void 0,Re:g}});if(!d.length)return e;var f=d.concat(e);f.sort(function(g,k){return g.Da-k.Da});return f},xC=function(a){a=void 0===a?[]:a;for(var b=[],c=0;ca[c]||b.push(a[c]);b.sort(function(d,e){return d-e});return b},yC=function(a){a=void 0===a?[]:a;for(var b=[],c=0;ca[c]||(b[c]=a[c]/100);b.sort(function(d,e){return d- +e});return b},zC=function(a,b){var c,d;function e(){t=az(function(){return{url:w,title:x,lh:v,rj:a.getCurrentTime(),playbackRate:y}},b.ob,a.getIframe());v=0;x=w="";y=1;return f}function f(F){switch(F){case 1:v=Math.round(a.getDuration());w=a.getVideoUrl();if(a.getVideoData){var G=a.getVideoData();x=G?G.title:""}y=a.getPlaybackRate();b.gh?Mx(t.createEvent("start")):t.fd();u=wC(b.Jh,b.Ih,a.getDuration());return g(F);default:return f}}function g(){A=a.getCurrentTime();C=Ta().getTime();t.Nj();r();return k} +function k(F){var G;switch(F){case 0:return n(F);case 2:G="pause";case 3:var K=a.getCurrentTime()-A;G=1a.getDuration())return;F=(G.Da-a.getCurrentTime())/y;if(0>F&&(u.shift(),0===u.length))return}while(0>F);c=function(){d=0;c=p;0d.Oe+60*f))return a;var g=ZE(b);if(!g)return a;g.Gc=d.Gc+1;var k;return null!=(k=$E(g.sessionId,g.Gc,g.rd,g.Oe,g.Ah,g.Dc,g.xe))?k:b},dF=function(a,b){var c=b.metadata.cookie_options,d=bF(b,c),e=Vm(a,cF[0],c.domain,c.path),f={Fb:Q.g.U,domain:c.domain,path:c.path,expires:c.Xb?new Date(Ua()+1E3*c.Xb):void 0,flags:c.flags};Nm(d, +void 0,f);return 1!==Nm(d,e,f)},eF=function(a){var b=a.metadata.cookie_options,c=bF(a,b),d=Um(c,b.domain,b.path,cF,Q.g.U);if(!d)return d;var e=Em(c,void 0,void 0,Q.g.U);if(d&&1m.length)){var n=Number(m[5]);n&&(!g||n>g)&&(g=n,f=e[k])}}f&&f.substring(f.length-d.length,f.length)!==d&&(O(115),d=f.split(".").slice(2).join("."))}return d},$E=function(a,b,c,d,e,f,g){if(a&&b){var k=[a,b,Oa(c),d,e];k.push(f?"1":"0"); +k.push(g||"0");return k.join(".")}},cF=["GS1"],bF=function(a,b){return b.prefix+"_ga_"+a.target.R[0]},ZE=function(a){if(a){var b=a.split(".");if(!(5>b.length||7b.length&&O(67);var c=Number(b[1]),d=Number(b[3]),e=Number(b[4]||0);c||O(118);d||O(119);isNaN(e)&&O(120);if(c&&d&&!isNaN(e))return{sessionId:b[0],Gc:c,rd:!!Number(b[2]),Oe:d,Ah:e,Dc:"1"===b[5],xe:"0"!==b[6]?b[6]:void 0}}}},fF=function(a){return $E(a.h[Q.g.Ab],a.h[Q.g.Wd],a.h[Q.g.Vd],Math.floor(a.metadata.event_start_timestamp_ms/ +1E3),a.metadata.join_timer_sec||0,!!a.metadata[Q.g.ff],a.h[Q.g.Id])}; +var gF=function(a){var b=W(a.s,Q.g.La),c=a.s.C[Q.g.La];if(c===b)return c;var d=B(b);c&&c[Q.g.X]&&(d[Q.g.X]=(d[Q.g.X]||[]).concat(c[Q.g.X]));return d},hF=function(a,b){var c=Zn(!0);return"1"!==c._up?{}:{clientId:c[a],Xf:c[b]}},iF=function(a,b,c){var d=Zn(!0),e=d[b];e&&(UE(a,e,2),XE(e,a));var f=d[c];f&&dF(f,a);return{clientId:e,Xf:f}},jF=!1,kF=function(a){var b=gF(a)||{},c=a.metadata.cookie_options,d=c.prefix+"_ga",e=bF(a,c),f={};jo(b[Q.g.Wc],!!b[Q.g.X])&&(f=iF(a,d,e),f.clientId&&f.Xf&&(jF=!0));b[Q.g.X]&& +go(function(){var g={},k=VE(a);k&&(g[d]=k);var m=eF(a);m&&(g[e]=m);var n=Em("FPLC",void 0,void 0,Q.g.U);n.length&&(g._fplc=n[0]);return g},b[Q.g.X],b[Q.g.vc],!!b[Q.g.Mb]);return f},mF=function(a){if(!W(a.s,Q.g.Bb))return{};var b=a.metadata.cookie_options,c=b.prefix+"_ga",d=bF(a,b);ho(function(){var e;if(ak("analytics_storage"))e={};else{var f={};e=(f._up="1",f[c]=a.h[Q.g.tb],f[d]=fF(a),f)}return e},1);return!ak("analytics_storage")&&lF()?hF(c,d):{}},lF=function(){var a=En(z.location,"host"),b=En(Hn(E.referrer), +"host");return a&&b?a===b||0<=a.indexOf("."+b)||0<=b.indexOf("."+a)?!0:!1:!1};var nF=function(){var a=Ua(),b=a+864E5,c=20,d=5E3;return function(){var e=Ua();e>=b&&(b=e+864E5,d=5E3);if(1>d)return!1;c=Math.min(c+(e-a)/1E3*5,20);a=e;if(1>c)return!1;d--;c--;return!0}}; +var oF=function(a,b){pm()&&(a.gcs=qm(),b.metadata.is_consent_update&&(a.gcu="1"));S(35)&&(a.gcd=um(b.s));om(b.s)&&(S(61)||mD())?S(39)&&(a.npa="0"):a.npa="1"},rF=function(a){if(a.metadata.is_merchant_center)return"https://www.merchant-center-analytics.goog/mc/collect";var b=Mp(Op(a.s),"/g/collect");if(b)return b;var c=HE(a),d=W(a.s,Q.g.fb);return c&&!oj()&&!1!==d&&lD()&&ak(Q.g.K)&&ak(Q.g.U)?pF():qF()},sF=!1;sF=!0; +var tF={};tF[Q.g.tb]="cid";tF[Q.g.hf]="_fid";tF[Q.g.Bg]="_geo";tF[Q.g.wb]="gdid";tF[Q.g.Vc]="ir";tF[Q.g.Ka]="ul";tF[Q.g.Td]="_rdi";tF[Q.g.zb]="sr";tF[Q.g.Mi]="tid";tF[Q.g.tf]="tt";tF[Q.g.he]="ec_mode";tF[Q.g.Vi]="gtm_up";tF[Q.g.Yd]="uaa",tF[Q.g.Zd]="uab",tF[Q.g.ae]="uafvl",tF[Q.g.be]="uamb",tF[Q.g.ce]="uam",tF[Q.g.de]="uap", +tF[Q.g.ee]="uapv",tF[Q.g.fe]="uaw";tF[Q.g.Jb]="are";tF[Q.g.Ni]="ur";tF[Q.g.kf]="lps"; +tF[Q.g.Mg]="pae";var uF={};uF[Q.g.Ic]="cc";uF[Q.g.Jc]="ci";uF[Q.g.Kc]="cm";uF[Q.g.Lc]="cn";uF[Q.g.Nc]="cs";uF[Q.g.Oc]="ck";uF[Q.g.xa]="cu";uF[Q.g.Ba]="dl";uF[Q.g.Ma]="dr";uF[Q.g.yb]="dt";uF[Q.g.Vd]="seg";uF[Q.g.Ab]="sid";uF[Q.g.Wd]="sct";uF[Q.g.Sa]="uid";S(28)&&(uF[Q.g.Yc]="dp");var vF={};vF[Q.g.Hd]="_et";vF[Q.g.ub]="edid";var wF={};wF[Q.g.Ic]="cc";wF[Q.g.Jc]="ci";wF[Q.g.Kc]="cm";wF[Q.g.Lc]="cn";wF[Q.g.Nc]="cs";wF[Q.g.Oc]="ck";var xF={},yF=Object.freeze((xF[Q.g.Ca]=1,xF)),qF=function(){var a="www";sF&&pj()&&(a=pj());return"https://"+a+".google-analytics.com/g/collect"},pF=function(){var a;sF&&""!==pj()&&(a=pj());return"https://"+(a?a+".":"")+"analytics.google.com/g/collect"},zF=function(a,b,c){var d={},e={},f={};d.v="2";d.tid=a.target.fa; +Ep(a,"google_ono",!1)&&!oj()&&(d._ono=1);d.gtm=hn(Dp(a));d._p=S(88)?Di:SE();c&&(d.em=c);a.metadata.create_google_join&&(d._gaz=1);oF(d,a);S(37)&&(ym()&&(d.dma_cps=vm()),d.dma=xm());S(61)&&Ql(Zl())&&(d.tcfd=zm());var g=a.h[Q.g.wb];g&&(d.gdid=g);e.en=String(a.eventName);a.metadata.is_first_visit&&(e._fv=a.metadata.is_first_visit_conversion?2:1);a.metadata.is_new_to_site&&(e._nsi=1);a.metadata.is_session_start&&(e._ss=a.metadata.is_session_start_conversion?2:1);a.metadata.is_conversion&&(e._c=1);a.metadata.is_external_event&& +(e._ee=1);if(a.metadata.is_ecommerce){var k=a.h[Q.g.ba]||W(a.s,Q.g.ba);if(Ia(k))for(var m=0;mm;m++)e["pr"+(m+1)]=fg(k[m])}var n=a.h[Q.g.ub];n&&(e.edid=n);var p=function(t,u){if("object"!==typeof u||!yF[t]){var v="ep."+t,w="epn."+t;t=Ha(u)?w:v;var x=Ha(u)?v:w;e.hasOwnProperty(x)&&delete e[x];e[t]=String(u)}},q=S(76)&&IE(a);l(a.h,function(t,u){if(void 0!==u&&!Zh.hasOwnProperty(t)){null===u&&(u="");var v;t!==Q.g.Id?v=!1:a.metadata.euid_mode_enabled||q?(d.ecid=u,v=!0):v=void 0;if(!v&&t!== +Q.g.ff){var w=u;!0===u&&(w="1");!1===u&&(w="0");w=String(w);var x;if(tF[t])x=tF[t],d[x]=w;else if(uF[t])x=uF[t],f[x]=w;else if(vF[t])x=vF[t],e[x]=w;else if("_"===t.charAt(0))d[t]=w;else{var y;wF[t]?y=!0:t!==Q.g.Mc?y=!1:("object"!==typeof u&&p(t,u),y=!0);y||p(t,u)}}}});(function(t){IE(a)&&"object"===typeof t&&l(t||{},function(u,v){"object"!==typeof v&&(d["sst."+u]=String(v))})})(a.h[Q.g.pe]);var r=a.h[Q.g.Ya]||{};S(12)&&!1===W(a.s,Q.g.fb)&&(d.ngs="1");l(r,function(t,u){void 0!==u&&((null===u&&(u=""), +t!==Q.g.Sa||f.uid)?b[t]!==u&&(e[(Ha(u)?"upn.":"up.")+String(t)]=String(u),b[t]=u):f.uid=String(u))});return hg.call(this,{ma:d,Hc:f,nh:e},rF(a),IE(a))||this};ta(zF,hg);var AF=function(a){this.C=a;this.D="";this.h=this.C},BF=function(a,b){a.h=b;return a};function CF(a){var b=a.search;return a.protocol+"//"+a.hostname+a.pathname+(b?b+"&richsstsse":"?richsstsse")}function DF(a,b){var c=a||[];if(Array.isArray(c))for(var d=0;dthis.C){var f=z.setTimeout,g;IE(a)?NF?(NF=!1,g=OF):g=PF:g=5E3;this.C=f.call(z,function(){return c.flush()},g)}}else{var k=kg(d,this.H++);KF(d.C,k.params,k.body,d.H);var m=a.metadata.create_dc_join,n=a.metadata.create_google_join,p=!1!==W(a.s,Q.g.Ga),q=om(a.s),r={eventId:a.s.eventId,priorityId:a.s.priorityId},t=!1;S(103)&&(t=a.h[Q.g.Mg]);var u={Um:m,Vm:n,Ml:rj(),kl:p,jl:q,am:oj(),Zl:a.metadata.euid_mode_enabled,Pn:r,Lm:t,s:a.s};LF(d,u)}au(a.s.eventId,a.eventName)}; +MF.prototype.add=function(a){a.metadata.euid_mode_enabled&&!ME?this.T(a):this.D(a)};MF.prototype.flush=function(){if(this.h.events.length){var a=lg(this.h,this.H++);KF(this.h.C,a.params,a.body,this.h.D);this.h=new ig;0<=this.C&&(z.clearTimeout(this.C),this.C=-1)}};MF.prototype.T=function(a){var b=this,c=JE(a);c?Wh(c,function(d){b.D(a,1===d.split("~").length?void 0:d)}):this.D(a)};var JF=function(a,b,c){var d=a+"?"+b;if(c)try{Dc.sendBeacon&&Dc.sendBeacon(d,c)}catch(e){Ab("TAGGING",15)}else Uc(d)}, +OF=sl('',500),PF=sl('',5E3),NF=!0;var QF=function(a,b,c){void 0===c&&(c={});if("object"===typeof b)for(var d in b)QF(a+"."+d,b[d],c);else c[a]=b;return c},RF=function(a){if(IE(a)){if(S(76)){var b=Ep(a,"ccd_add_1p_data",!1)?1:0;LE(a,"ude",b)}var c=function(e){var f=QF(Q.g.Ca,e);l(f,function(g,k){a.h[g]=k})},d=W(a.s,Q.g.Ca);void 0!==d?(c(d),S(71)&&(a.h[Q.g.he]="c")):c(a.metadata.user_data);a.metadata.user_data=void 0}};var SF=window,TF=document,UF=function(a){var b=SF._gaUserPrefs;if(b&&b.ioo&&b.ioo()||TF.documentElement.hasAttribute("data-google-analytics-opt-out")||a&&!0===SF["ga-disable-"+a])return!0;try{var c=SF.external;if(c&&c._gaUserPrefs&&"oo"==c._gaUserPrefs)return!0}catch(f){}for(var d=Am("AMP_TOKEN",String(TF.cookie),!0),e=0;era.Oe+60*da&&(Ga=!0,ra.sessionId=String(ja),ra.Gc++,ra.rd=!1,ra.xe=void 0);if(Ga)a.metadata.is_session_start=!0,K.Sl(a);else if(K.Jl()>Fa||a.eventName==Q.g.mc)ra.rd=!0;a.metadata.euid_mode_enabled?W(a.s,Q.g.Sa)?ra.Dc=!0:(ra.Dc&&(ra.xe=void 0),ra.Dc=!1):ra.Dc=!1;var Ra=ra.xe,kb=S(76)&&IE(a);if(a.metadata.euid_mode_enabled||kb){var Gb=W(a.s,Q.g.Id),qc=Gb?1:8;Gb||(Gb=Ra,qc=4);Gb||(Gb=Qm(),qc=7);var Xd=qc,Xg=a.metadata.enhanced_client_id_source;if(void 0===Xg||Xd<=Xg)a.h[Q.g.Id]= +Gb.toString(),a.metadata.enhanced_client_id_source=Xd}N?(a.copyToHitData(Q.g.Ab,ra.sessionId),a.copyToHitData(Q.g.Wd,ra.Gc),a.copyToHitData(Q.g.Vd,ra.rd?1:0)):(a.h[Q.g.Ab]=ra.sessionId,a.h[Q.g.Wd]=ra.Gc,a.h[Q.g.Vd]=ra.rd?1:0);a.metadata[Q.g.ff]=ra.Dc?1:0;eG(a);if(!W(a.s,Q.g.Lb)||!W(a.s,Q.g.xb)){var Xv="",Yg=E.location;if(Yg){var bj=Yg.pathname||"";"/"!=bj.charAt(0)&&(bj="/"+bj);Xv=Yg.protocol+"//"+Yg.hostname+bj+Yg.search}a.copyToHitData(Q.g.Ba,Xv,YF);var kI=a.copyToHitData,lI=Q.g.Ma,cj;a:{var Yv= +Em("_opt_expid",void 0,void 0,Q.g.U)[0];if(Yv){var Zv=decodeURIComponent(Yv).split("$");if(3===Zv.length){cj=Zv[2];break a}}if(void 0!==oi.ga4_referrer_override)cj=oi.ga4_referrer_override;else{var $v=Oi("gtm.gtagReferrer."+a.target.fa),mI=E.referrer;cj=$v?""+$v:mI}}kI.call(a,lI,cj||void 0,YF);a.copyToHitData(Q.g.yb,E.title);a.copyToHitData(Q.g.Ka,(Dc.language||"").toLowerCase());var aw=Pq();a.copyToHitData(Q.g.zb,aw.width+"x"+aw.height);S(28)&&a.copyToHitData(Q.g.Yc,void 0,YF);S(64)&&Oq()&&a.copyToHitData(Q.g.kf, +"1")}a.metadata.create_dc_join=!1;a.metadata.create_google_join=!1;if(!(S(46)&&IE(a)||a.metadata.is_merchant_center||!1===W(a.s,Q.g.fb))&&lD()&&ak(Q.g.K)){var bw=HE(a);(a.metadata.is_session_start||W(a.s,Q.g.Ag))&&(a.metadata.create_dc_join=!!bw);var cw;cw=a.metadata.join_timer_sec;bw&&0===(cw||0)&&(a.metadata.join_timer_sec=60,a.metadata.create_google_join=!0)}fG(a);ci.hasOwnProperty(a.eventName)&&(a.metadata.is_ecommerce=!0,a.copyToHitData(Q.g.ba),a.copyToHitData(Q.g.xa));a.copyToHitData(Q.g.tf); +for(var dw=W(a.s,Q.g.jf)||[],Zm=0;Zmc.indexOf(g))throw e(f,{},"Prohibited URL component: "+g);if("query"===g&&d){if(!k)throw e(f,{},"Prohibited from getting entire URL query when query keys are specified.");if(!h(k))throw e(f,{},"Query key must be a string.");if(0>d.indexOf(k))throw e(f,{},"Prohibited query key: "+k);}}else if(c)throw e(f, +{},"Prohibited from getting entire URL when components are specified.");},M:a}})}(); + + +Z.m.gct=["google"],function(){function a(b){for(var c=[],d=0;dN.length){if(0===N.length)continue;break a}A&&A[K]&& +A[K].length&&Ef(N,A[K]);try{Uz.execute(N),S(42)&&Ok&&50===N[0]&&G.push(N[1])}catch(Xg){}}S(42)&&(wf=G)}if(void 0!==v)for(var P=["sandboxedScripts"],U=0;U { + if (item.nodeType === 1) { + typeof item.className === "string" && + item.className.indexOf(EXCLUDECLASS) > -1 + ? (mark = false) + : ""; + } + }); + + if (mark) { + t && t(), o(e); + } + }; + } + function o(e) { + if (!e) { + return; + } + var a = t.createElement("div"); + (a.className = "heart"), + s.push({ + el: a, + x: e.clientX - 5, + y: e.clientY - 5, + scale: 1, + alpha: 1, + color: COLOR, + }), + t.body.appendChild(a); + } + function i(e) { + var a = t.createElement("style"); + a.type = "text/css"; + try { + a.appendChild(t.createTextNode(e)); + } catch (t) { + a.styleSheet.cssText = e; + } + t.getElementsByTagName("head")[0].appendChild(a); + } + // function c() { + // return "rgb(" + ~~ (255 * Math.random()) + "," + ~~ (255 * Math.random()) + "," + ~~ (255 * Math.random()) + ")" + // } + var s = []; + (e.requestAnimationFrame = + e.requestAnimationFrame || + e.webkitRequestAnimationFrame || + e.mozRequestAnimationFrame || + e.oRequestAnimationFrame || + e.msRequestAnimationFrame || + function (e) { + setTimeout(e, 1e3 / 60); + }), + i( + ".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: fixed;}.heart:after{top: -5px;}.heart:before{left: -5px;}", + ), + n(), + r(); + })(window, document); +} diff --git a/robots.txt b/robots.txt new file mode 100644 index 000000000..c979c60c8 --- /dev/null +++ b/robots.txt @@ -0,0 +1,7 @@ +User-agent: * + +Disallow: +User-agent:* +Disallow: + +Sitemap: https://api-buddy.com/sitemap.xml diff --git a/sitemap-cn.xml b/sitemap-cn.xml new file mode 100644 index 000000000..d002c718b --- /dev/null +++ b/sitemap-cn.xml @@ -0,0 +1,3 @@ + + +https://api-buddy.cn/2023-10-28T11:56:38.000Zdailyhttps://api-buddy.cn/en/2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/en/compare.snippet.html2023-08-26T04:42:58.000Zdailyhttps://api-buddy.cn/en/contact.snippet.html2023-06-13T12:26:37.000Zdailyhttps://api-buddy.cn/guide/activity.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/buy.html2023-08-26T04:25:11.000Zdailyhttps://api-buddy.cn/guide/concatGroup.html2023-08-26T04:25:11.000Zdailyhttps://api-buddy.cn/guide/eula.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/faq.html2023-10-26T14:25:48.000Zdailyhttps://api-buddy.cn/guide/feature.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/history.html2023-10-29T13:50:58.000Zdailyhttps://api-buddy.cn/guide/install.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/introduce.html2023-10-26T14:25:48.000Zdailyhttps://api-buddy.cn/guide/java.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/link.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/priceAdjust.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/script.html2023-10-26T14:25:48.000Zdailyhttps://api-buddy.cn/guide/sponsor.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/sponsorList.html2023-10-26T14:25:48.000Zdailyhttps://api-buddy.cn/guide/teachingVideo.html2023-10-26T14:25:48.000Zdailyhttps://api-buddy.cn/guide/teamwork.html2023-08-11T01:59:46.000Zdailyhttps://api-buddy.cn/guide/versionCompare.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/whatsnew.html2023-10-29T13:50:58.000Zdailyhttps://api-buddy.cn/en/guide/buy.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/en/guide/concatGroup.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.cn/en/guide/eula.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/faq.html2023-10-26T14:25:48.000Zdailyhttps://api-buddy.cn/en/guide/feature.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/history.html2023-10-29T13:50:58.000Zdailyhttps://api-buddy.cn/en/guide/install.html2023-05-16T05:13:29.000Zdailyhttps://api-buddy.cn/en/guide/introduce.html2023-10-26T14:25:48.000Zdailyhttps://api-buddy.cn/en/guide/priceAdjust.html2023-05-16T05:13:29.000Zdailyhttps://api-buddy.cn/en/guide/script.html2023-10-26T14:25:48.000Zdailyhttps://api-buddy.cn/en/guide/teamwork.html2023-05-16T05:13:29.000Zdailyhttps://api-buddy.cn/en/guide/versionCompare.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/en/guide/whatsnew.html2023-10-29T13:50:58.000Zdailyhttps://api-buddy.cn/guide/getstarted/dataMapping.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/getstarted/icon.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/getstarted/otherConfig.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/getstarted/projectEnv.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/getstarted/shortcut.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/getstarted/start.html2023-10-26T14:25:48.000Zdailyhttps://api-buddy.cn/guide/getstarted/stringGenerationStrategy.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/2023-10-29T05:54:05.000Zdailyhttps://api-buddy.cn/guide/features/ai.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/annualReport.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/apiAssociation.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/apiCommentPreview.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/apiDocSync.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/apiGroup.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/apiImportExport.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/apiList.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/apiNavigateTree.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/apiPreview.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/apiToDoc.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/apiToPostman.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/autoDescription.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/autoDomain.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/basicAuth.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/batchExportApiDoc.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/bulkEdit.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/clear.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/commonHeader.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/copyCurl.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/copyUrl.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/curlImport.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/debugApi.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/docAndContact.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/downloadApi.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/environment.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/fullScreen.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/headerGroup.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/headersGroup.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/historyRequest.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/htmlPreview.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/jsonGrammarCheck.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/makeIconMove.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/markdownDocTemplateConfig.html2023-10-29T05:54:05.000Zdailyhttps://api-buddy.cn/guide/features/navigateCurrentMethod.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/navigateCurrentMethodJson.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/projectConfigRefresh.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/projectLevelDomainConfig.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/projectValueConfig.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/quickAddHeader.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/regenerate.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/saveRequest.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/script.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/searchEveryWhere.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/settingManager.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/shareApiDoc.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/stopRequest.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/swaggerDefaultValueParse.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/guide/features/tempRequest.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/en/guide/getstarted/dataMapping.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/getstarted/icon.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/getstarted/otherConfig.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/getstarted/projectEnv.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.cn/en/guide/getstarted/shortcut.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/getstarted/start.html2023-10-26T14:25:48.000Zdailyhttps://api-buddy.cn/en/guide/getstarted/stringGenerationStrategy.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/2023-10-29T05:54:05.000Zdailyhttps://api-buddy.cn/en/guide/features/ai.html2023-05-16T05:13:29.000Zdailyhttps://api-buddy.cn/en/guide/features/annualReport.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/en/guide/features/apiCommentPreview.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/apiDocSync.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.cn/en/guide/features/apiGroup.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/en/guide/features/apiImportExport.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/apiList.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/apiNavigateTree.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/apiPreview.html2023-03-02T01:57:00.000Zdailyhttps://api-buddy.cn/en/guide/features/apiToDoc.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/apiToPostman.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/autoDescription.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/autoDomain.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.cn/en/guide/features/basicAuth.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/batchExportApiDoc.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/bulkEdit.html2023-06-07T05:16:39.000Zdailyhttps://api-buddy.cn/en/guide/features/clear.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/commonHeader.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/copyCurl.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.cn/en/guide/features/copyUrl.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/curlImport.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/en/guide/features/debugApi.html2023-05-16T05:13:29.000Zdailyhttps://api-buddy.cn/en/guide/features/docAndContact.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.cn/en/guide/features/downloadApi.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.cn/en/guide/features/environment.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/en/guide/features/fullScreen.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/headerGroup.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/en/guide/features/historyRequest.html2023-06-05T03:56:15.000Zdailyhttps://api-buddy.cn/en/guide/features/htmlPreview.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.cn/en/guide/features/jsonGrammarCheck.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/makeIconMove.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/markdownDocTemplateConfig.html2023-10-29T13:11:34.000Zdailyhttps://api-buddy.cn/en/guide/features/navigateCurrentMethod.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.cn/en/guide/features/navigateCurrentMethodJson.html2023-05-16T05:13:29.000Zdailyhttps://api-buddy.cn/en/guide/features/projectConfigRefresh.html2023-06-05T03:56:15.000Zdailyhttps://api-buddy.cn/en/guide/features/projectLevelDomainConfig.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.cn/en/guide/features/projectValueConfig.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/quickAddHeader.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/regenerate.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/saveRequest.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/script.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/searchEveryWhere.html2023-06-05T03:56:15.000Zdailyhttps://api-buddy.cn/en/guide/features/settingManager.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.cn/en/guide/features/shareApiDoc.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/stopRequest.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.cn/en/guide/features/swaggerDefaultValueParse.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.cn/en/guide/features/tempRequest.html2022-12-07T05:30:55.000Zdaily \ No newline at end of file diff --git a/sitemap-com.xml b/sitemap-com.xml new file mode 100644 index 000000000..a70468742 --- /dev/null +++ b/sitemap-com.xml @@ -0,0 +1,3 @@ + + +https://api-buddy.com/2023-12-13T02:17:58.000Zdailyhttps://api-buddy.com/guide/activity.html2023-12-05T08:59:03.000Zdailyhttps://api-buddy.com/guide/buy.html2023-12-05T07:44:20.000Zdailyhttps://api-buddy.com/guide/concatGroup.html2023-08-26T04:25:11.000Zdailyhttps://api-buddy.com/guide/eula.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/faq.html2023-12-11T05:51:30.000Zdailyhttps://api-buddy.com/guide/feature.html2023-12-05T07:44:20.000Zdailyhttps://api-buddy.com/guide/history.html2023-12-12T14:19:43.000Zdailyhttps://api-buddy.com/guide/install.html2023-12-12T14:19:43.000Zdailyhttps://api-buddy.com/guide/introduce.html2023-12-12T14:19:43.000Zdailyhttps://api-buddy.com/guide/java.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/link.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/priceAdjust.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/script.html2023-12-05T07:44:20.000Zdailyhttps://api-buddy.com/guide/sponsor.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/sponsorList.html2023-10-26T14:25:48.000Zdailyhttps://api-buddy.com/guide/teachingVideo.html2023-12-05T08:59:03.000Zdailyhttps://api-buddy.com/guide/teamwork.html2023-12-12T14:19:43.000Zdailyhttps://api-buddy.com/guide/versionCompare.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/whatsnew.html2023-12-11T10:02:10.000Zdailyhttps://api-buddy.com/en/2023-12-13T02:17:58.000Zdailyhttps://api-buddy.com/en/compare.snippet.html2023-08-26T04:42:58.000Zdailyhttps://api-buddy.com/en/contact.snippet.html2023-06-13T12:26:37.000Zdailyhttps://api-buddy.com/guide/getstarted/dataMapping.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/getstarted/icon.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/getstarted/otherConfig.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/getstarted/projectEnv.html2023-12-05T07:44:20.000Zdailyhttps://api-buddy.com/guide/getstarted/shortcut.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/getstarted/start.html2023-10-26T14:25:48.000Zdailyhttps://api-buddy.com/guide/getstarted/stringGenerationStrategy.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/2023-11-30T10:54:05.000Zdailyhttps://api-buddy.com/guide/features/ai.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/annualReport.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/apiAssociation.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/apiCommentPreview.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/apiDocSync.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/apiGroup.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/apiImportExport.html2023-12-05T07:44:20.000Zdailyhttps://api-buddy.com/guide/features/apiList.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/apiNavigateTree.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/apiPreview.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/apiToDoc.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/apiToPostman.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/autoDescription.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/autoDomain.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/basicAuth.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/batchExportApiDoc.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/bulkEdit.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/clear.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/commonHeader.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/copyCurl.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/copyUrl.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/curlImport.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/debugApi.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/docAndContact.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/downloadApi.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/environment.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/fullScreen.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/headerGroup.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/headersGroup.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/historyRequest.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/htmlPreview.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/jsonGrammarCheck.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/makeIconMove.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/markdownDocTemplateConfig.html2023-11-30T10:54:05.000Zdailyhttps://api-buddy.com/guide/features/navigateCurrentMethod.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/navigateCurrentMethodJson.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/postmanSync.html2023-12-11T15:27:38.000Zdailyhttps://api-buddy.com/guide/features/projectConfigRefresh.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/projectLevelDomainConfig.html2023-12-05T07:44:20.000Zdailyhttps://api-buddy.com/guide/features/projectValueConfig.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/quickAddHeader.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/regenerate.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/saveRequest.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/script.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/searchEveryWhere.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/settingManager.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/shareApiDoc.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/stopRequest.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/swaggerDefaultValueParse.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/guide/features/tempRequest.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/en/guide/buy.html2023-12-05T07:44:20.000Zdailyhttps://api-buddy.com/en/guide/concatGroup.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.com/en/guide/eula.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/faq.html2023-12-11T05:51:30.000Zdailyhttps://api-buddy.com/en/guide/feature.html2023-12-05T07:44:20.000Zdailyhttps://api-buddy.com/en/guide/history.html2023-12-12T14:19:43.000Zdailyhttps://api-buddy.com/en/guide/install.html2023-12-05T07:44:20.000Zdailyhttps://api-buddy.com/en/guide/introduce.html2023-12-12T14:19:43.000Zdailyhttps://api-buddy.com/en/guide/priceAdjust.html2023-05-16T05:13:29.000Zdailyhttps://api-buddy.com/en/guide/script.html2023-12-05T07:44:20.000Zdailyhttps://api-buddy.com/en/guide/teamwork.html2023-12-12T14:19:43.000Zdailyhttps://api-buddy.com/en/guide/versionCompare.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/en/guide/whatsnew.html2023-12-11T10:02:10.000Zdailyhttps://api-buddy.com/en/guide/features/2023-11-30T10:54:05.000Zdailyhttps://api-buddy.com/en/guide/features/ai.html2023-05-16T05:13:29.000Zdailyhttps://api-buddy.com/en/guide/features/annualReport.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/en/guide/features/apiCommentPreview.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/apiDocSync.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.com/en/guide/features/apiGroup.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/en/guide/features/apiImportExport.html2023-12-05T07:44:20.000Zdailyhttps://api-buddy.com/en/guide/features/apiList.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/apiNavigateTree.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/apiPreview.html2023-03-02T01:57:00.000Zdailyhttps://api-buddy.com/en/guide/features/apiToDoc.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/apiToPostman.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/autoDescription.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/autoDomain.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.com/en/guide/features/basicAuth.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/batchExportApiDoc.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/bulkEdit.html2023-06-07T05:16:39.000Zdailyhttps://api-buddy.com/en/guide/features/clear.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/commonHeader.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/copyCurl.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.com/en/guide/features/copyUrl.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/curlImport.html2023-12-05T07:44:20.000Zdailyhttps://api-buddy.com/en/guide/features/debugApi.html2023-05-16T05:13:29.000Zdailyhttps://api-buddy.com/en/guide/features/docAndContact.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.com/en/guide/features/downloadApi.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.com/en/guide/features/environment.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/en/guide/features/fullScreen.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/headerGroup.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/en/guide/features/historyRequest.html2023-06-05T03:56:15.000Zdailyhttps://api-buddy.com/en/guide/features/htmlPreview.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.com/en/guide/features/jsonGrammarCheck.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/makeIconMove.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/markdownDocTemplateConfig.html2023-11-30T10:54:05.000Zdailyhttps://api-buddy.com/en/guide/features/navigateCurrentMethod.html2023-07-31T15:11:43.000Zdailyhttps://api-buddy.com/en/guide/features/navigateCurrentMethodJson.html2023-05-16T05:13:29.000Zdailyhttps://api-buddy.com/en/guide/features/postmanSync.html2023-12-11T15:27:38.000Zdailyhttps://api-buddy.com/en/guide/features/projectConfigRefresh.html2023-06-05T03:56:15.000Zdailyhttps://api-buddy.com/en/guide/features/projectLevelDomainConfig.html2023-12-05T07:44:20.000Zdailyhttps://api-buddy.com/en/guide/features/projectValueConfig.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/quickAddHeader.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/regenerate.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/saveRequest.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/script.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/searchEveryWhere.html2023-06-05T03:56:15.000Zdailyhttps://api-buddy.com/en/guide/features/settingManager.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.com/en/guide/features/shareApiDoc.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/stopRequest.html2023-06-08T13:59:27.000Zdailyhttps://api-buddy.com/en/guide/features/swaggerDefaultValueParse.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/features/tempRequest.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/getstarted/dataMapping.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/getstarted/icon.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/getstarted/otherConfig.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/getstarted/projectEnv.html2023-12-05T07:44:20.000Zdailyhttps://api-buddy.com/en/guide/getstarted/shortcut.html2022-12-07T05:30:55.000Zdailyhttps://api-buddy.com/en/guide/getstarted/start.html2023-10-26T14:25:48.000Zdailyhttps://api-buddy.com/en/guide/getstarted/stringGenerationStrategy.html2022-12-07T05:30:55.000Zdaily \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 000000000..f82798b05 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,3 @@ + + +https://api-buddy.com/2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/compare.snippet.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/contact.snippet.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/activity.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/buy.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/concatGroup.html2024-07-28T13:56:12.000Zdailyhttps://api-buddy.com/guide/eula.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/faq.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/feature.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/history.html2024-08-21T12:02:42.000Zdailyhttps://api-buddy.com/guide/install.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/introduce.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/java.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/link.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/priceAdjust.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/script.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/sponsor.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/sponsorList.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/teachingVideo.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/teamwork.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/versionCompare.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/whatsnew.html2024-08-21T12:02:42.000Zdailyhttps://api-buddy.com/en/guide/buy.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/concatGroup.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/eula.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/faq.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/feature.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/history.html2024-08-21T12:02:42.000Zdailyhttps://api-buddy.com/en/guide/install.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/introduce.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/priceAdjust.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/script.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/teamwork.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/versionCompare.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/whatsnew.html2024-08-21T12:02:42.000Zdailyhttps://api-buddy.com/guide/getstarted/dataMapping.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/getstarted/icon.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/getstarted/otherConfig.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/getstarted/projectEnv.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/getstarted/shortcut.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/getstarted/start.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/getstarted/stringGenerationStrategy.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/2024-08-20T00:15:22.000Zdailyhttps://api-buddy.com/guide/features/ai.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/annualReport.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/apiAssociation.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/apiCommentPreview.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/apiDocSync.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/apiGroup.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/apiImportExport.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/apiList.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/apiNavigateTree.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/apiPreview.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/apiToDoc.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/apiToPostman.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/apifox.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/autoDescription.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/autoDomain.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/basicAuth.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/batchExportApiDoc.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/bulkEdit.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/clear.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/commonHeader.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/copyCurl.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/copyUrl.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/curlImport.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/customToolbar.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/debugApi.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/docAndContact.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/downloadApi.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/environment.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/fullScreen.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/function.html2024-08-20T00:15:22.000Zdailyhttps://api-buddy.com/guide/features/headerGroup.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/headersGroup.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/historyRequest.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/htmlPreview.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/jsonGrammarCheck.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/makeIconMove.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/markdownDocTemplateConfig.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/navigateCurrentMethod.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/navigateCurrentMethodJson.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/parseStrategy.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/postmanSync.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/projectConfigRefresh.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/projectLevelDomainConfig.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/projectValueConfig.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/quickAddHeader.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/regenerate.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/saveRequest.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/script.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/searchEveryWhere.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/settingManager.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/shareApiDoc.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/stopRequest.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/swaggerDefaultValueParse.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/guide/features/tempRequest.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/2024-08-20T00:15:22.000Zdailyhttps://api-buddy.com/en/guide/features/ai.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/annualReport.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/apiCommentPreview.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/apiDocSync.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/apiGroup.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/apiImportExport.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/apiList.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/apiNavigateTree.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/apiPreview.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/apiToDoc.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/apiToPostman.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/apifox.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/autoDescription.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/autoDomain.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/basicAuth.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/batchExportApiDoc.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/bulkEdit.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/clear.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/commonHeader.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/copyCurl.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/copyUrl.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/curlImport.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/customToolbar.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/debugApi.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/docAndContact.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/downloadApi.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/environment.html2024-06-22T09:44:26.000Zdailyhttps://api-buddy.com/en/guide/features/fullScreen.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/function.html2024-08-20T00:15:22.000Zdailyhttps://api-buddy.com/en/guide/features/headerGroup.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/historyRequest.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/htmlPreview.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/jsonGrammarCheck.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/makeIconMove.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/markdownDocTemplateConfig.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/navigateCurrentMethod.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/navigateCurrentMethodJson.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/parseStrategy.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/postmanSync.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/projectConfigRefresh.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/projectLevelDomainConfig.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/projectValueConfig.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/quickAddHeader.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/regenerate.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/saveRequest.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/script.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/searchEveryWhere.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/settingManager.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/shareApiDoc.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/stopRequest.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/swaggerDefaultValueParse.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/features/tempRequest.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/getstarted/dataMapping.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/getstarted/icon.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/getstarted/otherConfig.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/getstarted/projectEnv.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/getstarted/shortcut.html2024-05-31T09:24:19.000Zdailyhttps://api-buddy.com/en/guide/getstarted/start.html2024-07-02T02:14:48.000Zdailyhttps://api-buddy.com/en/guide/getstarted/stringGenerationStrategy.html2024-05-31T09:24:19.000Zdaily \ No newline at end of file diff --git a/sitemap.xsl b/sitemap.xsl new file mode 100644 index 000000000..a76881a48 --- /dev/null +++ b/sitemap.xsl @@ -0,0 +1,207 @@ + + + + + + + XML Sitemap + + + + + +
    +

    Sitemap

    + + + + + + + + + + + + + + + + + + + + + +
    + + PriorityChange FrequencyLast Updated Time
    + + + + + + + + + + + + + 0.5 + + + + + + + + + - + + + + +
    +
    + + + +
    +