From 5c993eeb3b1a6035436ee96aa82a7c999af17a1b Mon Sep 17 00:00:00 2001 From: liihuu Date: Thu, 14 Sep 2023 01:37:53 +0800 Subject: [PATCH] Updates --- .nojekyll | 0 404.html | 11 +- assets/{app.3caaa4a4.js => app.d2872ee7.js} | 2 +- ....js => @localSearchIndexen-US.7bc93ad6.js} | 2 +- .../chunks/@localSearchIndexroot.64cd48c1.js | 1 + .../chunks/@localSearchIndexroot.6beb67a5.js | 1 - ...n.febf53f8.js => StyleExplain.cbaaf100.js} | 2 +- assets/chunks/VPLocalSearchBox.236648bd.js | 7 - assets/chunks/VPLocalSearchBox.b889f6b1.js | 7 + assets/chunks/framework.385ac4c3.js | 2 + assets/chunks/framework.6909765d.js | 2 - assets/chunks/theme.5fb6dc5e.js | 1 + assets/chunks/theme.c4ee4772.js | 7 - ...s => en-US_guide_changelog.md.521321fb.js} | 2 +- ...en-US_guide_changelog.md.521321fb.lean.js} | 2 +- ...s => en-US_guide_chart-api.md.4f93847d.js} | 774 ++++++------ .../en-US_guide_chart-api.md.4f93847d.lean.js | 1 + .../en-US_guide_chart-api.md.baa06226.lean.js | 1 - ... => en-US_guide_datasource.md.f7ec9b53.js} | 16 +- ...n-US_guide_datasource.md.f7ec9b53.lean.js} | 2 +- ...=> en-US_guide_environment.md.c403487c.js} | 10 +- ...-US_guide_environment.md.c403487c.lean.js} | 2 +- ...ad59.js => en-US_guide_faq.md.cbf5bfe9.js} | 10 +- ...js => en-US_guide_faq.md.cbf5bfe9.lean.js} | 2 +- ...js => en-US_guide_feedback.md.00b7599e.js} | 2 +- ... en-US_guide_feedback.md.00b7599e.lean.js} | 2 +- assets/en-US_guide_figure.md.95649728.lean.js | 1 - ...8.js => en-US_guide_figure.md.e43e3059.js} | 312 ++--- assets/en-US_guide_figure.md.e43e3059.lean.js | 1 + ..._guide_getting-started.md.e521916e.lean.js | 1 - ...n-US_guide_getting-started.md.ee2bf999.js} | 60 +- ..._guide_getting-started.md.ee2bf999.lean.js | 1 + ....js => en-US_guide_hot-key.md.80c73542.js} | 2 +- ...> en-US_guide_hot-key.md.80c73542.lean.js} | 2 +- ...348.js => en-US_guide_i18n.md.67fab868.js} | 16 +- ...s => en-US_guide_i18n.md.67fab868.lean.js} | 2 +- ...s => en-US_guide_indicator.md.e611bbfa.js} | 86 +- ...en-US_guide_indicator.md.e611bbfa.lean.js} | 2 +- ...> en-US_guide_instance-api.md.80510bf9.js} | 1022 ++++++++-------- ...-US_guide_instance-api.md.80510bf9.lean.js | 1 + ...-US_guide_instance-api.md.95079f70.lean.js | 1 - ....js => en-US_guide_overlay.md.12c30866.js} | 140 +-- .../en-US_guide_overlay.md.12c30866.lean.js | 1 + .../en-US_guide_overlay.md.e334f87e.lean.js | 1 - ...c.js => en-US_guide_styles.md.04ec5105.js} | 4 +- ...=> en-US_guide_styles.md.04ec5105.lean.js} | 2 +- ...js => en-US_guide_v8-to-v9.md.9b145c5e.js} | 2 +- ... en-US_guide_v8-to-v9.md.9b145c5e.lean.js} | 2 +- ...S_guide_what-is-klinechart.md.8fa4756d.js} | 2 +- ...de_what-is-klinechart.md.8fa4756d.lean.js} | 2 +- ...99aef212.js => en-US_index.md.4824d65b.js} | 2 +- ...ean.js => en-US_index.md.4824d65b.lean.js} | 2 +- ...667b2d.js => en-US_sponsor.md.ceae9547.js} | 2 +- ...n.js => en-US_sponsor.md.ceae9547.lean.js} | 2 +- ...c906.js => guide_changelog.md.e6871db3.js} | 2 +- ...js => guide_changelog.md.e6871db3.lean.js} | 2 +- assets/guide_chart-api.md.96158c5f.lean.js | 1 - ...8c5f.js => guide_chart-api.md.fc242e9b.js} | 774 ++++++------ assets/guide_chart-api.md.fc242e9b.lean.js | 1 + ...914.js => guide_datasource.md.22f0d15c.js} | 18 +- assets/guide_datasource.md.22f0d15c.lean.js | 1 + assets/guide_datasource.md.be16e914.lean.js | 1 - ...83.js => guide_environment.md.4a1b1a7c.js} | 10 +- ... => guide_environment.md.4a1b1a7c.lean.js} | 2 +- ...d.29925f19.js => guide_faq.md.e491e83b.js} | 10 +- ....lean.js => guide_faq.md.e491e83b.lean.js} | 2 +- ...5642d.js => guide_feedback.md.71640072.js} | 2 +- ....js => guide_feedback.md.71640072.lean.js} | 2 +- assets/guide_figure.md.61613297.lean.js | 1 - ...1613297.js => guide_figure.md.94958226.js} | 312 ++--- assets/guide_figure.md.94958226.lean.js | 1 + .../guide_getting-started.md.81c4827e.lean.js | 1 - ...s => guide_getting-started.md.ba1c2e79.js} | 60 +- .../guide_getting-started.md.ba1c2e79.lean.js | 1 + ...ed5c19.js => guide_hot-key.md.254d156b.js} | 2 +- ...n.js => guide_hot-key.md.254d156b.lean.js} | 2 +- ....8d969e9e.js => guide_i18n.md.52b20843.js} | 18 +- assets/guide_i18n.md.52b20843.lean.js | 1 + assets/guide_i18n.md.8d969e9e.lean.js | 1 - ...df56.js => guide_indicator.md.918697af.js} | 88 +- assets/guide_indicator.md.918697af.lean.js | 1 + assets/guide_indicator.md.f0cedf56.lean.js | 1 - ...1.js => guide_instance-api.md.717c14e7.js} | 1002 ++++++++-------- assets/guide_instance-api.md.717c14e7.lean.js | 1 + assets/guide_instance-api.md.da542511.lean.js | 1 - ...a04cff.js => guide_overlay.md.24f819b4.js} | 142 +-- assets/guide_overlay.md.24f819b4.lean.js | 1 + assets/guide_overlay.md.47a04cff.lean.js | 1 - ...c2df31b.js => guide_styles.md.666131a3.js} | 4 +- ...an.js => guide_styles.md.666131a3.lean.js} | 2 +- ...4cf2e.js => guide_v8-to-v9.md.95f9a2c6.js} | 2 +- ....js => guide_v8-to-v9.md.95f9a2c6.lean.js} | 2 +- ...> guide_what-is-klinechart.md.2aa308a4.js} | 2 +- ...de_what-is-klinechart.md.2aa308a4.lean.js} | 2 +- ...ex.md.9172ee84.js => index.md.7104b694.js} | 2 +- ...ee84.lean.js => index.md.7104b694.lean.js} | 2 +- assets/sponsor.md.03404be7.js | 1 - assets/sponsor.md.03404be7.lean.js | 1 - assets/sponsor.md.d97f4f44.js | 1 + assets/sponsor.md.d97f4f44.lean.js | 1 + assets/style.1f38e7d7.css | 1 + assets/style.70f30ae9.css | 1 - en-US/guide/changelog.html | 17 +- en-US/guide/chart-api.html | 789 ++++++------- en-US/guide/datasource.html | 33 +- en-US/guide/environment.html | 27 +- en-US/guide/faq.html | 27 +- en-US/guide/feedback.html | 17 +- en-US/guide/figure.html | 327 +++--- en-US/guide/getting-started.html | 75 +- en-US/guide/hot-key.html | 17 +- en-US/guide/i18n.html | 33 +- en-US/guide/indicator.html | 103 +- en-US/guide/instance-api.html | 1037 +++++++++-------- en-US/guide/overlay.html | 155 +-- en-US/guide/styles.html | 21 +- en-US/guide/v8-to-v9.html | 17 +- en-US/guide/what-is-klinechart.html | 17 +- en-US/index.html | 17 +- en-US/sponsor.html | 17 +- guide/changelog.html | 17 +- guide/chart-api.html | 789 ++++++------- guide/datasource.html | 33 +- guide/environment.html | 27 +- guide/faq.html | 27 +- guide/feedback.html | 17 +- guide/figure.html | 327 +++--- guide/getting-started.html | 75 +- guide/hot-key.html | 17 +- guide/i18n.html | 33 +- guide/indicator.html | 103 +- guide/instance-api.html | 1017 ++++++++-------- guide/overlay.html | 157 +-- guide/styles.html | 21 +- guide/v8-to-v9.html | 17 +- guide/what-is-klinechart.html | 17 +- hashmap.json | 2 +- index.html | 17 +- sponsor.html | 17 +- 139 files changed, 5271 insertions(+), 5240 deletions(-) delete mode 100644 .nojekyll rename assets/{app.3caaa4a4.js => app.d2872ee7.js} (99%) rename assets/chunks/{@localSearchIndexen-US.3956ab05.js => @localSearchIndexen-US.7bc93ad6.js} (79%) create mode 100644 assets/chunks/@localSearchIndexroot.64cd48c1.js delete mode 100644 assets/chunks/@localSearchIndexroot.6beb67a5.js rename assets/chunks/{StyleExplain.febf53f8.js => StyleExplain.cbaaf100.js} (87%) delete mode 100644 assets/chunks/VPLocalSearchBox.236648bd.js create mode 100644 assets/chunks/VPLocalSearchBox.b889f6b1.js create mode 100644 assets/chunks/framework.385ac4c3.js delete mode 100644 assets/chunks/framework.6909765d.js create mode 100644 assets/chunks/theme.5fb6dc5e.js delete mode 100644 assets/chunks/theme.c4ee4772.js rename assets/{en-US_guide_changelog.md.9b314bb3.js => en-US_guide_changelog.md.521321fb.js} (99%) rename assets/{en-US_guide_changelog.md.9b314bb3.lean.js => en-US_guide_changelog.md.521321fb.lean.js} (71%) rename assets/{en-US_guide_chart-api.md.baa06226.js => en-US_guide_chart-api.md.4f93847d.js} (69%) create mode 100644 assets/en-US_guide_chart-api.md.4f93847d.lean.js delete mode 100644 assets/en-US_guide_chart-api.md.baa06226.lean.js rename assets/{en-US_guide_datasource.md.0056d771.js => en-US_guide_datasource.md.f7ec9b53.js} (90%) rename assets/{en-US_guide_datasource.md.0056d771.lean.js => en-US_guide_datasource.md.f7ec9b53.lean.js} (56%) rename assets/{en-US_guide_environment.md.d392da34.js => en-US_guide_environment.md.c403487c.js} (84%) rename assets/{en-US_guide_environment.md.d392da34.lean.js => en-US_guide_environment.md.c403487c.lean.js} (57%) rename assets/{en-US_guide_faq.md.4989ad59.js => en-US_guide_faq.md.cbf5bfe9.js} (86%) rename assets/{en-US_guide_faq.md.4989ad59.lean.js => en-US_guide_faq.md.cbf5bfe9.lean.js} (54%) rename assets/{en-US_guide_feedback.md.4016f8e9.js => en-US_guide_feedback.md.00b7599e.js} (91%) rename assets/{en-US_guide_feedback.md.4016f8e9.lean.js => en-US_guide_feedback.md.00b7599e.lean.js} (61%) delete mode 100644 assets/en-US_guide_figure.md.95649728.lean.js rename assets/{en-US_guide_figure.md.95649728.js => en-US_guide_figure.md.e43e3059.js} (80%) create mode 100644 assets/en-US_guide_figure.md.e43e3059.lean.js delete mode 100644 assets/en-US_guide_getting-started.md.e521916e.lean.js rename assets/{en-US_guide_getting-started.md.e521916e.js => en-US_guide_getting-started.md.ee2bf999.js} (81%) create mode 100644 assets/en-US_guide_getting-started.md.ee2bf999.lean.js rename assets/{en-US_guide_hot-key.md.96b2e99c.js => en-US_guide_hot-key.md.80c73542.js} (78%) rename assets/{en-US_guide_hot-key.md.96b2e99c.lean.js => en-US_guide_hot-key.md.80c73542.lean.js} (55%) rename assets/{en-US_guide_i18n.md.814f9348.js => en-US_guide_i18n.md.67fab868.js} (77%) rename assets/{en-US_guide_i18n.md.814f9348.lean.js => en-US_guide_i18n.md.67fab868.lean.js} (56%) rename assets/{en-US_guide_indicator.md.f7abbc7a.js => en-US_guide_indicator.md.e611bbfa.js} (94%) rename assets/{en-US_guide_indicator.md.f7abbc7a.lean.js => en-US_guide_indicator.md.e611bbfa.lean.js} (57%) rename assets/{en-US_guide_instance-api.md.95079f70.js => en-US_guide_instance-api.md.80510bf9.js} (67%) create mode 100644 assets/en-US_guide_instance-api.md.80510bf9.lean.js delete mode 100644 assets/en-US_guide_instance-api.md.95079f70.lean.js rename assets/{en-US_guide_overlay.md.e334f87e.js => en-US_guide_overlay.md.12c30866.js} (88%) create mode 100644 assets/en-US_guide_overlay.md.12c30866.lean.js delete mode 100644 assets/en-US_guide_overlay.md.e334f87e.lean.js rename assets/{en-US_guide_styles.md.b78be64c.js => en-US_guide_styles.md.04ec5105.js} (99%) rename assets/{en-US_guide_styles.md.b78be64c.lean.js => en-US_guide_styles.md.04ec5105.lean.js} (71%) rename assets/{en-US_guide_v8-to-v9.md.ffb86506.js => en-US_guide_v8-to-v9.md.9b145c5e.js} (98%) rename assets/{en-US_guide_v8-to-v9.md.ffb86506.lean.js => en-US_guide_v8-to-v9.md.9b145c5e.lean.js} (71%) rename assets/{en-US_guide_what-is-klinechart.md.eaf1a224.js => en-US_guide_what-is-klinechart.md.8fa4756d.js} (88%) rename assets/{en-US_guide_what-is-klinechart.md.eaf1a224.lean.js => en-US_guide_what-is-klinechart.md.8fa4756d.lean.js} (59%) rename assets/{en-US_index.md.99aef212.js => en-US_index.md.4824d65b.js} (92%) rename assets/{en-US_index.md.99aef212.lean.js => en-US_index.md.4824d65b.lean.js} (92%) rename assets/{en-US_sponsor.md.ac667b2d.js => en-US_sponsor.md.ceae9547.js} (90%) rename assets/{en-US_sponsor.md.ac667b2d.lean.js => en-US_sponsor.md.ceae9547.lean.js} (61%) rename assets/{guide_changelog.md.88d4c906.js => guide_changelog.md.e6871db3.js} (98%) rename assets/{guide_changelog.md.88d4c906.lean.js => guide_changelog.md.e6871db3.lean.js} (69%) delete mode 100644 assets/guide_chart-api.md.96158c5f.lean.js rename assets/{guide_chart-api.md.96158c5f.js => guide_chart-api.md.fc242e9b.js} (69%) create mode 100644 assets/guide_chart-api.md.fc242e9b.lean.js rename assets/{guide_datasource.md.be16e914.js => guide_datasource.md.22f0d15c.js} (89%) create mode 100644 assets/guide_datasource.md.22f0d15c.lean.js delete mode 100644 assets/guide_datasource.md.be16e914.lean.js rename assets/{guide_environment.md.9a326483.js => guide_environment.md.4a1b1a7c.js} (84%) rename assets/{guide_environment.md.9a326483.lean.js => guide_environment.md.4a1b1a7c.lean.js} (56%) rename assets/{guide_faq.md.29925f19.js => guide_faq.md.e491e83b.js} (85%) rename assets/{guide_faq.md.29925f19.lean.js => guide_faq.md.e491e83b.lean.js} (53%) rename assets/{guide_feedback.md.7e65642d.js => guide_feedback.md.71640072.js} (91%) rename assets/{guide_feedback.md.7e65642d.lean.js => guide_feedback.md.71640072.lean.js} (60%) delete mode 100644 assets/guide_figure.md.61613297.lean.js rename assets/{guide_figure.md.61613297.js => guide_figure.md.94958226.js} (79%) create mode 100644 assets/guide_figure.md.94958226.lean.js delete mode 100644 assets/guide_getting-started.md.81c4827e.lean.js rename assets/{guide_getting-started.md.81c4827e.js => guide_getting-started.md.ba1c2e79.js} (80%) create mode 100644 assets/guide_getting-started.md.ba1c2e79.lean.js rename assets/{guide_hot-key.md.c7ed5c19.js => guide_hot-key.md.254d156b.js} (85%) rename assets/{guide_hot-key.md.c7ed5c19.lean.js => guide_hot-key.md.254d156b.lean.js} (69%) rename assets/{guide_i18n.md.8d969e9e.js => guide_i18n.md.52b20843.js} (76%) create mode 100644 assets/guide_i18n.md.52b20843.lean.js delete mode 100644 assets/guide_i18n.md.8d969e9e.lean.js rename assets/{guide_indicator.md.f0cedf56.js => guide_indicator.md.918697af.js} (94%) create mode 100644 assets/guide_indicator.md.918697af.lean.js delete mode 100644 assets/guide_indicator.md.f0cedf56.lean.js rename assets/{guide_instance-api.md.da542511.js => guide_instance-api.md.717c14e7.js} (67%) create mode 100644 assets/guide_instance-api.md.717c14e7.lean.js delete mode 100644 assets/guide_instance-api.md.da542511.lean.js rename assets/{guide_overlay.md.47a04cff.js => guide_overlay.md.24f819b4.js} (88%) create mode 100644 assets/guide_overlay.md.24f819b4.lean.js delete mode 100644 assets/guide_overlay.md.47a04cff.lean.js rename assets/{guide_styles.md.3c2df31b.js => guide_styles.md.666131a3.js} (99%) rename assets/{guide_styles.md.3c2df31b.lean.js => guide_styles.md.666131a3.lean.js} (76%) rename assets/{guide_v8-to-v9.md.5534cf2e.js => guide_v8-to-v9.md.95f9a2c6.js} (98%) rename assets/{guide_v8-to-v9.md.5534cf2e.lean.js => guide_v8-to-v9.md.95f9a2c6.lean.js} (69%) rename assets/{guide_what-is-klinechart.md.19278a28.js => guide_what-is-klinechart.md.2aa308a4.js} (87%) rename assets/{guide_what-is-klinechart.md.19278a28.lean.js => guide_what-is-klinechart.md.2aa308a4.lean.js} (57%) rename assets/{index.md.9172ee84.js => index.md.7104b694.js} (91%) rename assets/{index.md.9172ee84.lean.js => index.md.7104b694.lean.js} (91%) delete mode 100644 assets/sponsor.md.03404be7.js delete mode 100644 assets/sponsor.md.03404be7.lean.js create mode 100644 assets/sponsor.md.d97f4f44.js create mode 100644 assets/sponsor.md.d97f4f44.lean.js create mode 100644 assets/style.1f38e7d7.css delete mode 100644 assets/style.70f30ae9.css diff --git a/.nojekyll b/.nojekyll deleted file mode 100644 index e69de29bb..000000000 diff --git a/404.html b/404.html index 84d85cd11..75faf01ea 100644 --- a/404.html +++ b/404.html @@ -5,17 +5,18 @@ 404 | KLineChart - + - + - + + -
Skip to content

Page Not Found

Make sure the address is correct and the page hasn't moved.

Please contact your KLineChart administrator if you think this is a mistake.

Released under the Apache License V2.

- +
Skip to content

Page Not Found

Make sure the address is correct and the page hasn't moved.

Please contact your KLineChart administrator if you think this is a mistake.

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/assets/app.3caaa4a4.js b/assets/app.d2872ee7.js similarity index 99% rename from assets/app.3caaa4a4.js rename to assets/app.d2872ee7.js index 2835587a1..6156d6882 100644 --- a/assets/app.3caaa4a4.js +++ b/assets/app.d2872ee7.js @@ -1 +1 @@ -import{_ as s,u as z,o as d,c as g,k as i,t as v,l as c,X as j,d as D,h as T,j as r,f as o,a5 as L,G as A,a6 as l,a7 as f,a8 as u,a9 as y,aa as p,ab as w,ac as O,ad as n,ae as h,af as k,$ as U,A as m,ag as x,ah as E,ai as b}from"./chunks/framework.6909765d.js";import{t as C}from"./chunks/theme.c4ee4772.js";const H={class:"home-section who-are-use-section"},Q={class:"home-section-content who-are-use"},B=j('
',1),V={__name:"HomeWhoAreUse",setup(a){const{lang:M}=z();return(t,e)=>(d(),g("section",H,[i("div",Q,[i("h2",null,v(c(M)==="zh-CN"?"谁在使用":"Who are using"),1),B])]))}},Y=s(V,[["__scopeId","data-v-37acb926"]]),X="/images/logo.svg",S={class:"NotFound"},F=j('

Page Not Found

Make sure the address is correct and the page hasn't moved.

Please contact your KLineChart administrator if you think this is a mistake.

',4),K={class:"action"},G=["href"],P=D({__name:"NotFound",setup(a){const{lang:M}=z(),t=T("/");return r(()=>{t.value=M.value==="zh-CN"?"/":`/${M.value}/`}),(e,$)=>(d(),g("div",S,[F,i("div",K,[i("a",{class:"link",href:c(o)(t.value),"aria-label":"go to home"}," Take me home ",8,G)])]))}});const J=s(P,[["__scopeId","data-v-18af756e"]]);const W={...C,Layout:()=>L(C.Layout,null,{"home-features-after":()=>L(Y),"not-found":()=>L(J)}),enhanceApp({app:a,router:M,siteData:t}){}};function I(a){if(a.extends){const M=I(a.extends);return{...M,...a,async enhanceApp(t){M.enhanceApp&&await M.enhanceApp(t),a.enhanceApp&&await a.enhanceApp(t)}}}return a}const N=I(W),R=D({name:"VitePressApp",setup(){const{site:a}=z();return r(()=>{m(()=>{document.documentElement.lang=a.value.lang,document.documentElement.dir=a.value.dir})}),x(),E(),b(),N.setup&&N.setup(),()=>L(N.Layout)}});async function Z(){const a=_(),M=q();M.provide(f,a);const t=u(a.route);return M.provide(y,t),M.component("Content",p),M.component("ClientOnly",w),Object.defineProperties(M.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),N.enhanceApp&&await N.enhanceApp({app:M,router:a,siteData:O}),{app:M,router:a,data:t}}function q(){return n(R)}function _(){let a=A,M;return h(t=>{let e=k(t);return e?(a&&(M=e),(a||M===e)&&(e=e.replace(/\.js$/,".lean.js")),A&&(a=!1),U(()=>import(e),[])):null},N.NotFound)}A&&Z().then(({app:a,router:M,data:t})=>{M.go().then(()=>{l(M.route,t.site),a.mount("#app")})});export{Z as createApp}; +import{_ as s,u as z,o as d,c as g,k as i,t as v,l as c,Q as j,d as D,h as T,j as r,f as o,a1 as L,s as A,a2 as l,a3 as f,a4 as u,a5 as y,a6 as p,a7 as w,a8 as O,a9 as n,aa as h,ab as k,V as U,y as m,ac as x,ad as E,ae as b}from"./chunks/framework.385ac4c3.js";import{t as C}from"./chunks/theme.5fb6dc5e.js";const H={class:"home-section who-are-use-section"},Q={class:"home-section-content who-are-use"},B=j('
',1),V={__name:"HomeWhoAreUse",setup(a){const{lang:M}=z();return(t,e)=>(d(),g("section",H,[i("div",Q,[i("h2",null,v(c(M)==="zh-CN"?"谁在使用":"Who are using"),1),B])]))}},Y=s(V,[["__scopeId","data-v-37acb926"]]),X="/images/logo.svg",S={class:"NotFound"},F=j('

Page Not Found

Make sure the address is correct and the page hasn't moved.

Please contact your KLineChart administrator if you think this is a mistake.

',4),K={class:"action"},G=["href"],P=D({__name:"NotFound",setup(a){const{lang:M}=z(),t=T("/");return r(()=>{t.value=M.value==="zh-CN"?"/":`/${M.value}/`}),(e,$)=>(d(),g("div",S,[F,i("div",K,[i("a",{class:"link",href:c(o)(t.value),"aria-label":"go to home"}," Take me home ",8,G)])]))}});const J=s(P,[["__scopeId","data-v-18af756e"]]);const W={...C,Layout:()=>L(C.Layout,null,{"home-features-after":()=>L(Y),"not-found":()=>L(J)}),enhanceApp({app:a,router:M,siteData:t}){}};function I(a){if(a.extends){const M=I(a.extends);return{...M,...a,async enhanceApp(t){M.enhanceApp&&await M.enhanceApp(t),a.enhanceApp&&await a.enhanceApp(t)}}}return a}const N=I(W),R=D({name:"VitePressApp",setup(){const{site:a}=z();return r(()=>{m(()=>{document.documentElement.lang=a.value.lang,document.documentElement.dir=a.value.dir})}),x(),E(),b(),N.setup&&N.setup(),()=>L(N.Layout)}});async function Z(){const a=_(),M=q();M.provide(f,a);const t=u(a.route);return M.provide(y,t),M.component("Content",p),M.component("ClientOnly",w),Object.defineProperties(M.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),N.enhanceApp&&await N.enhanceApp({app:M,router:a,siteData:O}),{app:M,router:a,data:t}}function q(){return n(R)}function _(){let a=A,M;return h(t=>{let e=k(t);return e?(a&&(M=e),(a||M===e)&&(e=e.replace(/\.js$/,".lean.js")),A&&(a=!1),U(()=>import(e),[])):null},N.NotFound)}A&&Z().then(({app:a,router:M,data:t})=>{M.go().then(()=>{l(M.route,t.site),a.mount("#app")})});export{Z as createApp}; diff --git a/assets/chunks/@localSearchIndexen-US.3956ab05.js b/assets/chunks/@localSearchIndexen-US.7bc93ad6.js similarity index 79% rename from assets/chunks/@localSearchIndexen-US.3956ab05.js rename to assets/chunks/@localSearchIndexen-US.7bc93ad6.js index 4b978f8e7..a48119898 100644 --- a/assets/chunks/@localSearchIndexen-US.3956ab05.js +++ b/assets/chunks/@localSearchIndexen-US.7bc93ad6.js @@ -1 +1 @@ -const e='{"documentCount":187,"nextId":187,"documentIds":{"0":"/en-US/guide/changelog.html#📠-change-log","1":"/en-US/guide/changelog.html#_9-5-1","2":"/en-US/guide/changelog.html#_9-5-0","3":"/en-US/guide/changelog.html#_9-4-0","4":"/en-US/guide/changelog.html#_9-3-0","5":"/en-US/guide/changelog.html#_9-2-2","6":"/en-US/guide/changelog.html#_9-2-1","7":"/en-US/guide/changelog.html#_9-2-0","8":"/en-US/guide/changelog.html#_9-1-3","9":"/en-US/guide/changelog.html#_9-1-2","10":"/en-US/guide/changelog.html#_9-1-1","11":"/en-US/guide/changelog.html#_9-1-0","12":"/en-US/guide/changelog.html#_9-0-1","13":"/en-US/guide/changelog.html#_9-0-0","14":"/en-US/guide/changelog.html#_8-x","15":"/en-US/guide/changelog.html#_7-x","16":"/en-US/guide/changelog.html#_6-x","17":"/en-US/guide/changelog.html#_5-x","18":"/en-US/guide/changelog.html#_4-x","19":"/en-US/guide/chart-api.html#chart-api","20":"/en-US/guide/chart-api.html#init-ds-options","21":"/en-US/guide/chart-api.html#dispose-dcs","22":"/en-US/guide/chart-api.html#registerlocale-locale-locales","23":"/en-US/guide/chart-api.html#getoverlayclass","24":"/en-US/guide/chart-api.html#getsupportedlocales","25":"/en-US/guide/chart-api.html#registerstyles-name-styles","26":"/en-US/guide/chart-api.html#registerfigure-figure","27":"/en-US/guide/chart-api.html#getsupportedfigures","28":"/en-US/guide/chart-api.html#getfigureclass-name","29":"/en-US/guide/chart-api.html#registerindicator-indicator","30":"/en-US/guide/chart-api.html#getsupportedindicators","31":"/en-US/guide/chart-api.html#registeroverlay-overlay","32":"/en-US/guide/chart-api.html#getsupportedoverlays","33":"/en-US/guide/chart-api.html#version","34":"/en-US/guide/chart-api.html#utils","35":"/en-US/guide/chart-api.html#utils-clone-target","36":"/en-US/guide/chart-api.html#utils-merge-target-source","37":"/en-US/guide/chart-api.html#utils-isstring-value","38":"/en-US/guide/chart-api.html#utils-isnumber-value","39":"/en-US/guide/chart-api.html#utils-isvalid-value","40":"/en-US/guide/chart-api.html#utils-isobject-value","41":"/en-US/guide/chart-api.html#utils-isfunction-value","42":"/en-US/guide/chart-api.html#utils-isboolean-value","43":"/en-US/guide/chart-api.html#utils-formatvalue-value-key-defaultvalue","44":"/en-US/guide/chart-api.html#utils-formatprecision-value","45":"/en-US/guide/chart-api.html#utils-formatbignumber-value","46":"/en-US/guide/chart-api.html#utils-formatdate-datetimeformat-timestamp-format","47":"/en-US/guide/chart-api.html#utils-formatthousands-value-sign","48":"/en-US/guide/chart-api.html#utils-calctextwidth-text-size-weight-family","49":"/en-US/guide/chart-api.html#utils-getlinearslopeintercept-coordinate1-coordinate2","50":"/en-US/guide/chart-api.html#utils-getlinearyfromcoordinates-coordinate1-coordinate2-targetcoordinate","51":"/en-US/guide/chart-api.html#utils-getlinearyfromslopeintercept-kb-targetcoordinate","52":"/en-US/guide/chart-api.html#utils-checkcoordinateonarc-coordinate-arc","53":"/en-US/guide/chart-api.html#utils-checkcoordinateoncircle-coordinate-circle","54":"/en-US/guide/chart-api.html#utils-checkcoordinateonline-coordinate-line","55":"/en-US/guide/chart-api.html#utils-checkcoordinateonpolygon-coordinate-polygon","56":"/en-US/guide/chart-api.html#utils-checkcoordinateonrect-coordinate-rect","57":"/en-US/guide/chart-api.html#utils-checkcoordinateontext-coordinate-text-styles","58":"/en-US/guide/chart-api.html#utils-drawarc-ctx-arc-styles","59":"/en-US/guide/chart-api.html#utils-drawcircle-ctx-circle-styles","60":"/en-US/guide/chart-api.html#utils-drawline-ctx-line-styles","61":"/en-US/guide/chart-api.html#utils-drawpolygon-ctx-polygon-styles","62":"/en-US/guide/chart-api.html#utils-drawrect-ctx-rect-styles","63":"/en-US/guide/chart-api.html#utils-drawrecttext-ctx-recttext-styles","64":"/en-US/guide/chart-api.html#utils-drawrecttext-ctx-recttext-styles-1","65":"/en-US/guide/datasource.html#📚-data","66":"/en-US/guide/environment.html#🏝️-environment","67":"/en-US/guide/environment.html#browser-support","68":"/en-US/guide/environment.html#polyfill","69":"/en-US/guide/faq.html#🙋-faq","70":"/en-US/guide/faq.html#after-the-chart-is-initialized-only-one-line-can-be-seen","71":"/en-US/guide/faq.html#the-candle-shows-a-line-no-fluctuation-what-to-do","72":"/en-US/guide/faq.html#how-to-create-a-real-time-chart","73":"/en-US/guide/faq.html#built-in-technical-indicators-calculated-data-is-not-what-you-want-how-to-do","74":"/en-US/guide/faq.html#what-if-i-want-to-create-an-indicator-other-than-the-built-in-technical-indicator","75":"/en-US/guide/faq.html#want-to-mark-the-point-of-sale-how-should-do","76":"/en-US/guide/feedback.html#💬-feedback","77":"/en-US/guide/feedback.html#github","78":"/en-US/guide/feedback.html#telegram","79":"/en-US/guide/feedback.html#discord","80":"/en-US/guide/feedback.html#wechat-discussion-group","81":"/en-US/guide/feedback.html#qq-discussion-group","82":"/en-US/guide/figure.html#figure","83":"/en-US/guide/figure.html#example-of-use","84":"/en-US/guide/figure.html#built-in-figures","85":"/en-US/guide/figure.html#arc","86":"/en-US/guide/figure.html#circle","87":"/en-US/guide/figure.html#line","88":"/en-US/guide/figure.html#rect","89":"/en-US/guide/figure.html#text","90":"/en-US/guide/figure.html#recttext","91":"/en-US/guide/figure.html#customize-figure","92":"/en-US/guide/figure.html#attribute-description","93":"/en-US/guide/figure.html#example","94":"/en-US/guide/figure.html#step-1","95":"/en-US/guide/figure.html#step-2","96":"/en-US/guide/getting-started.html#🚀-getting-started","97":"/en-US/guide/getting-started.html#get-klinechart","98":"/en-US/guide/getting-started.html#using-npm","99":"/en-US/guide/getting-started.html#use-yarn","100":"/en-US/guide/getting-started.html#using-a-cdn","101":"/en-US/guide/getting-started.html#create-the-first-chart","102":"/en-US/guide/getting-started.html#created-in-the-project-of-package-management-tools-such-as-npm-or-yarn","103":"/en-US/guide/getting-started.html#create-in-a-project-that-is-imported-directly-through-a-script-tag","104":"/en-US/guide/hot-key.html#⌨️-hot-key","105":"/en-US/guide/i18n.html#🌏-internationalization","106":"/en-US/guide/i18n.html#adding-new-language","107":"/en-US/guide/i18n.html#use-new-language","108":"/en-US/guide/indicator.html#technical-indicator","109":"/en-US/guide/indicator.html#built-in-technical-indicators","110":"/en-US/guide/indicator.html#custom-technical-indicators","111":"/en-US/guide/indicator.html#attribute-description","112":"/en-US/guide/indicator.html#step-1","113":"/en-US/guide/indicator.html#step-2","114":"/en-US/guide/instance-api.html#instance-api","115":"/en-US/guide/instance-api.html#getdom-paneid-position","116":"/en-US/guide/instance-api.html#getsize-paneid-position","117":"/en-US/guide/instance-api.html#setstyles-styles","118":"/en-US/guide/instance-api.html#getstyles","119":"/en-US/guide/instance-api.html#setpricevolumeprecision-priceprecision-volumeprecision","120":"/en-US/guide/instance-api.html#settimezone-timezone","121":"/en-US/guide/instance-api.html#gettimezone","122":"/en-US/guide/instance-api.html#setzoomenabled-enabled","123":"/en-US/guide/instance-api.html#iszoomenabled","124":"/en-US/guide/instance-api.html#setscrollenabled-enabled","125":"/en-US/guide/instance-api.html#isscrollenabled","126":"/en-US/guide/instance-api.html#setoffsetrightdistance-distance","127":"/en-US/guide/instance-api.html#getoffsetrightdistance","128":"/en-US/guide/instance-api.html#setleftminvisiblebarcount-barcount","129":"/en-US/guide/instance-api.html#setrightminvisiblebarcount-barcount","130":"/en-US/guide/instance-api.html#setbarspace-space","131":"/en-US/guide/instance-api.html#getbarspace","132":"/en-US/guide/instance-api.html#getvisiblerange","133":"/en-US/guide/instance-api.html#applynewdata-datalist-more-callback","134":"/en-US/guide/instance-api.html#applymoredata-datalist-more-callback","135":"/en-US/guide/instance-api.html#updatedata-data-callback","136":"/en-US/guide/instance-api.html#getdatalist","137":"/en-US/guide/instance-api.html#cleardata","138":"/en-US/guide/instance-api.html#loadmore-cb","139":"/en-US/guide/instance-api.html#createindicator-value-isstack-paneoptions-callback","140":"/en-US/guide/instance-api.html#overrideindicator-override-paneid-callback","141":"/en-US/guide/instance-api.html#getindicatorbypaneid-paneid-name","142":"/en-US/guide/instance-api.html#removeindicator-paneid-name","143":"/en-US/guide/instance-api.html#createoverlay-value-paneid","144":"/en-US/guide/instance-api.html#getoverlaybyid-id","145":"/en-US/guide/instance-api.html#overrideoverlay-override","146":"/en-US/guide/instance-api.html#removeoverlay-remove","147":"/en-US/guide/instance-api.html#scrollbydistance-distance-animationduration","148":"/en-US/guide/instance-api.html#scrolltorealtime-animationduration","149":"/en-US/guide/instance-api.html#scrolltodataindex-dataindex-animationduration","150":"/en-US/guide/instance-api.html#scrolltotimestamp-timestamp-animationduration","151":"/en-US/guide/instance-api.html#zoomatcoordinate-scale-coordinate-animationduration","152":"/en-US/guide/instance-api.html#zoomatdataindex-scale-dataindex-animationduration","153":"/en-US/guide/instance-api.html#zoomattimestamp-scale-timestamp-animationduration","154":"/en-US/guide/instance-api.html#setpaneoptions-options","155":"/en-US/guide/instance-api.html#executeaction-type-data","156":"/en-US/guide/instance-api.html#subscribeaction-type-callback","157":"/en-US/guide/instance-api.html#unsubscribeaction-type-callback","158":"/en-US/guide/instance-api.html#converttopixel-value-finder","159":"/en-US/guide/instance-api.html#convertfrompixel-coordinate-finder","160":"/en-US/guide/instance-api.html#getconvertpictureurl-includeoverlay-type-backgroundcolor","161":"/en-US/guide/instance-api.html#resize","162":"/en-US/guide/overlay.html#overlay","163":"/en-US/guide/overlay.html#built-in-overlay-types","164":"/en-US/guide/overlay.html#custom-overlays","165":"/en-US/guide/overlay.html#attribute-description","166":"/en-US/guide/overlay.html#example","167":"/en-US/guide/styles.html#🎨-style","168":"/en-US/guide/styles.html#picture-explanation","169":"/en-US/guide/styles.html#default-full-configuration","170":"/en-US/guide/v8-to-v9.html#🛠️-from-v8-to-v9","171":"/en-US/guide/v8-to-v9.html#import-adjustment","172":"/en-US/guide/v8-to-v9.html#design-adjustment","173":"/en-US/guide/v8-to-v9.html#style-configuration-adjustment","174":"/en-US/guide/v8-to-v9.html#api-adjustment","175":"/en-US/guide/v8-to-v9.html#chart-api","176":"/en-US/guide/v8-to-v9.html#instance-api","177":"/en-US/guide/v8-to-v9.html#shape-help-api","178":"/en-US/guide/v8-to-v9.html#customized-technical-indicator-adjustment","179":"/en-US/guide/what-is-klinechart.html#📃-introducation","180":"/en-US/guide/what-is-klinechart.html#what-s-klinechart","181":"/en-US/guide/what-is-klinechart.html#features","182":"/en-US/sponsor.html#❤️-sponsor","183":"/en-US/sponsor.html#alipay","184":"/en-US/sponsor.html#wechat-pay","185":"/en-US/sponsor.html#paypal","186":"/en-US/sponsor.html#cryptocurrency"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[3,1,1],"1":[3,3,29],"2":[3,3,48],"3":[3,3,27],"4":[3,3,40],"5":[2,3,14],"6":[3,3,19],"7":[3,3,52],"8":[3,3,52],"9":[3,3,34],"10":[2,3,17],"11":[3,3,29],"12":[3,3,10],"13":[2,3,160],"14":[2,3,11],"15":[2,3,11],"16":[2,3,11],"17":[2,3,10],"18":[2,3,10],"19":[2,1,1],"20":[4,2,98],"21":[3,2,27],"22":[4,2,29],"23":[2,2,15],"24":[2,2,13],"25":[4,2,20],"26":[3,2,37],"27":[2,2,12],"28":[3,2,10],"29":[3,2,110],"30":[2,2,11],"31":[3,2,124],"32":[2,2,10],"33":[2,2,12],"34":[1,2,6],"35":[4,3,8],"36":[5,3,12],"37":[4,3,12],"38":[4,3,12],"39":[4,3,12],"40":[4,3,13],"41":[4,3,12],"42":[4,3,12],"43":[6,3,28],"44":[4,3,10],"45":[4,3,19],"46":[6,3,21],"47":[5,3,12],"48":[7,3,13],"49":[5,3,29],"50":[6,3,25],"51":[5,3,26],"52":[5,3,32],"53":[5,3,26],"54":[5,3,21],"55":[5,3,20],"56":[5,3,25],"57":[6,3,50],"58":[6,3,41],"59":[6,3,42],"60":[6,3,32],"61":[6,3,38],"62":[6,3,45],"63":[6,3,70],"64":[6,3,20],"65":[2,1,56],"66":[2,1,1],"67":[2,2,26],"68":[1,2,1],"69":[2,1,1],"70":[12,2,13],"71":[11,2,15],"72":[8,2,11],"73":[15,2,12],"74":[15,2,9],"75":[11,2,21],"76":[2,1,1],"77":[1,2,10],"78":[1,2,5],"79":[1,2,5],"80":[3,2,12],"81":[3,2,1],"82":[1,1,49],"83":[3,1,39],"84":[3,1,15],"85":[1,4,41],"86":[1,4,45],"87":[1,4,44],"88":[1,4,49],"89":[1,4,74],"90":[1,4,16],"91":[2,1,27],"92":[2,3,44],"93":[1,3,14],"94":[2,4,46],"95":[2,4,63],"96":[3,1,1],"97":[2,3,20],"98":[2,5,6],"99":[2,5,5],"100":[3,5,32],"101":[4,3,1],"102":[13,7,95],"103":[11,7,131],"104":[3,1,17],"105":[2,1,28],"106":[3,2,37],"107":[3,2,18],"108":[2,1,16],"109":[4,2,50],"110":[3,2,27],"111":[2,4,226],"112":[2,6,55],"113":[2,6,105],"114":[2,1,1],"115":[4,2,26],"116":[4,2,30],"117":[3,2,32],"118":[2,2,15],"119":[4,2,24],"120":[3,2,30],"121":[2,2,11],"122":[3,2,11],"123":[2,2,10],"124":[3,2,14],"125":[2,2,11],"126":[3,2,18],"127":[2,2,16],"128":[3,2,15],"129":[3,2,15],"130":[3,2,15],"131":[2,2,14],"132":[2,2,12],"133":[5,2,55],"134":[5,2,45],"135":[4,2,44],"136":[2,2,27],"137":[2,2,30],"138":[3,2,23],"139":[6,2,140],"140":[5,2,156],"141":[4,2,39],"142":[4,2,34],"143":[4,2,106],"144":[3,2,18],"145":[3,2,146],"146":[3,2,23],"147":[4,2,18],"148":[3,2,19],"149":[4,2,23],"150":[4,2,19],"151":[5,2,33],"152":[5,2,27],"153":[5,2,22],"154":[3,2,63],"155":[4,2,18],"156":[4,2,28],"157":[4,2,36],"158":[4,2,53],"159":[4,2,41],"160":[5,2,40],"161":[2,2,31],"162":[1,1,15],"163":[4,1,16],"164":[2,1,19],"165":[2,3,260],"166":[1,3,86],"167":[2,1,26],"168":[2,2,1],"169":[3,2,218],"170":[5,1,23],"171":[2,5,15],"172":[2,5,13],"173":[3,5,46],"174":[2,5,1],"175":[2,7,14],"176":[2,7,89],"177":[3,7,8],"178":[4,5,55],"179":[2,1,1],"180":[4,2,11],"181":[1,2,67],"182":[2,1,26],"183":[1,2,1],"184":[2,2,1],"185":[1,2,2],"186":[1,2,11]},"averageFieldLength":[3.4545454545454546,2.572192513368984,33.13368983957221],"storedFields":{"0":{"title":"📠 Change Log","titles":[]},"1":{"title":"9.5.1","titles":["📠 Change Log"]},"2":{"title":"9.5.0","titles":["📠 Change Log"]},"3":{"title":"9.4.0","titles":["📠 Change Log"]},"4":{"title":"9.3.0","titles":["📠 Change Log"]},"5":{"title":"9.2.2","titles":["📠 Change Log"]},"6":{"title":"9.2.1","titles":["📠 Change Log"]},"7":{"title":"9.2.0","titles":["📠 Change Log"]},"8":{"title":"9.1.3","titles":["📠 Change Log"]},"9":{"title":"9.1.2","titles":["📠 Change Log"]},"10":{"title":"9.1.1","titles":["📠 Change Log"]},"11":{"title":"9.1.0","titles":["📠 Change Log"]},"12":{"title":"9.0.1","titles":["📠 Change Log"]},"13":{"title":"9.0.0","titles":["📠 Change Log"]},"14":{"title":"8.x","titles":["📠 Change Log"]},"15":{"title":"7.x","titles":["📠 Change Log"]},"16":{"title":"6.x","titles":["📠 Change Log"]},"17":{"title":"5.x","titles":["📠 Change Log"]},"18":{"title":"4.x","titles":["📠 Change Log"]},"19":{"title":"Chart API","titles":[]},"20":{"title":"init(ds, options)","titles":["Chart API"]},"21":{"title":"dispose(dcs)","titles":["Chart API"]},"22":{"title":"registerLocale(locale, locales)","titles":["Chart API"]},"23":{"title":"getOverlayClass()","titles":["Chart API"]},"24":{"title":"getSupportedLocales()","titles":["Chart API"]},"25":{"title":"registerStyles(name, styles)","titles":["Chart API"]},"26":{"title":"registerFigure(figure)","titles":["Chart API"]},"27":{"title":"getSupportedFigures()","titles":["Chart API"]},"28":{"title":"getFigureClass(name)","titles":["Chart API"]},"29":{"title":"registerIndicator(indicator)","titles":["Chart API"]},"30":{"title":"getSupportedIndicators()","titles":["Chart API"]},"31":{"title":"registerOverlay(overlay)","titles":["Chart API"]},"32":{"title":"getSupportedOverlays()","titles":["Chart API"]},"33":{"title":"version()","titles":["Chart API"]},"34":{"title":"utils","titles":["Chart API"]},"35":{"title":"utils.clone(target)","titles":["Chart API","utils"]},"36":{"title":"utils.merge(target, source)","titles":["Chart API","utils"]},"37":{"title":"utils.isString(value)","titles":["Chart API","utils"]},"38":{"title":"utils.isNumber(value)","titles":["Chart API","utils"]},"39":{"title":"utils.isValid(value)","titles":["Chart API","utils"]},"40":{"title":"utils.isObject(value)","titles":["Chart API","utils"]},"41":{"title":"utils.isFunction(value)","titles":["Chart API","utils"]},"42":{"title":"utils.isBoolean(value)","titles":["Chart API","utils"]},"43":{"title":"utils.formatValue(value, key, defaultValue)","titles":["Chart API","utils"]},"44":{"title":"utils.formatPrecision(value)","titles":["Chart API","utils"]},"45":{"title":"utils.formatBigNumber(value)","titles":["Chart API","utils"]},"46":{"title":"utils.formatDate(dateTimeFormat, timestamp, format)","titles":["Chart API","utils"]},"47":{"title":"utils.formatThousands(value, sign)","titles":["Chart API","utils"]},"48":{"title":"utils.calcTextWidth(text, size, weight, family)","titles":["Chart API","utils"]},"49":{"title":"utils.getLinearSlopeIntercept(coordinate1, coordinate2)","titles":["Chart API","utils"]},"50":{"title":"utils.getLinearYFromCoordinates(coordinate1, coordinate2, targetCoordinate)","titles":["Chart API","utils"]},"51":{"title":"utils.getLinearYFromSlopeIntercept(kb, targetCoordinate)","titles":["Chart API","utils"]},"52":{"title":"utils.checkCoordinateOnArc(coordinate, arc)","titles":["Chart API","utils"]},"53":{"title":"utils.checkCoordinateOnCircle(coordinate, circle)","titles":["Chart API","utils"]},"54":{"title":"utils.checkCoordinateOnLine(coordinate, line)","titles":["Chart API","utils"]},"55":{"title":"utils.checkCoordinateOnPolygon(coordinate, polygon)","titles":["Chart API","utils"]},"56":{"title":"utils.checkCoordinateOnRect(coordinate, rect)","titles":["Chart API","utils"]},"57":{"title":"utils.checkCoordinateOnText(coordinate, text, styles)","titles":["Chart API","utils"]},"58":{"title":"utils.drawArc(ctx, arc, styles)","titles":["Chart API","utils"]},"59":{"title":"utils.drawCircle(ctx, circle, styles)","titles":["Chart API","utils"]},"60":{"title":"utils.drawLine(ctx, line, styles)","titles":["Chart API","utils"]},"61":{"title":"utils.drawPolygon(ctx, polygon, styles)","titles":["Chart API","utils"]},"62":{"title":"utils.drawRect(ctx, rect, styles)","titles":["Chart API","utils"]},"63":{"title":"utils.drawRectText(ctx, rectText, styles)","titles":["Chart API","utils"]},"64":{"title":"utils.drawRectText(ctx, rectText, styles)","titles":["Chart API","utils"]},"65":{"title":"📚 Data","titles":[]},"66":{"title":"🏝️ Environment","titles":[]},"67":{"title":"Browser support","titles":["🏝️ Environment"]},"68":{"title":"Polyfill","titles":["🏝️ Environment"]},"69":{"title":"🙋 FAQ","titles":[]},"70":{"title":"After the chart is initialized, only one line can be seen?","titles":["🙋 FAQ"]},"71":{"title":"The candle shows a line, no fluctuation, what to do?","titles":["🙋 FAQ"]},"72":{"title":"How to create a real-time chart?","titles":["🙋 FAQ"]},"73":{"title":"Built-in technical indicators, calculated data is not what you want, how to do?","titles":["🙋 FAQ"]},"74":{"title":"What if I want to create an indicator other than the built-in technical indicator?","titles":["🙋 FAQ"]},"75":{"title":"Want to mark the point of sale, how should do?","titles":["🙋 FAQ"]},"76":{"title":"💬 Feedback","titles":[]},"77":{"title":"Github","titles":["💬 Feedback"]},"78":{"title":"Telegram","titles":["💬 Feedback"]},"79":{"title":"Discord","titles":["💬 Feedback"]},"80":{"title":"Wechat discussion group","titles":["💬 Feedback"]},"81":{"title":"QQ discussion group","titles":["💬 Feedback"]},"82":{"title":"Figure","titles":[]},"83":{"title":"Example of use","titles":["Figure"]},"84":{"title":"Built-in figures","titles":["Figure"]},"85":{"title":"arc","titles":["Figure","Built-in figures"]},"86":{"title":"circle","titles":["Figure","Built-in figures"]},"87":{"title":"line","titles":["Figure","Built-in figures"]},"88":{"title":"rect","titles":["Figure","Built-in figures"]},"89":{"title":"text","titles":["Figure","Built-in figures"]},"90":{"title":"rectText","titles":["Figure","Built-in figures"]},"91":{"title":"Customize figure","titles":["Figure"]},"92":{"title":"Attribute description","titles":["Figure","Customize figure"]},"93":{"title":"Example","titles":["Figure","Customize figure"]},"94":{"title":"Step.1","titles":["Figure","Customize figure","Example"]},"95":{"title":"Step.2","titles":["Figure","Customize figure","Example"]},"96":{"title":"🚀 Getting started","titles":[]},"97":{"title":"Get KLineChart","titles":["🚀 Getting started"]},"98":{"title":"Using npm","titles":["🚀 Getting started","Get KLineChart"]},"99":{"title":"use yarn","titles":["🚀 Getting started","Get KLineChart"]},"100":{"title":"Using a CDN","titles":["🚀 Getting started","Get KLineChart"]},"101":{"title":"Create the first chart","titles":["🚀 Getting started"]},"102":{"title":"Created in the project of package management tools such as npm or yarn","titles":["🚀 Getting started","Create the first chart"]},"103":{"title":"Create in a project that is imported directly through a script tag","titles":["🚀 Getting started","Create the first chart"]},"104":{"title":"⌨️ Hot Key","titles":[]},"105":{"title":"🌏 Internationalization","titles":[]},"106":{"title":"Adding new language","titles":["🌏 Internationalization"]},"107":{"title":"Use new language","titles":["🌏 Internationalization"]},"108":{"title":"Technical indicator","titles":[]},"109":{"title":"Built-in technical indicators","titles":["Technical indicator"]},"110":{"title":"Custom Technical Indicators","titles":["Technical indicator"]},"111":{"title":"Attribute description","titles":["Technical indicator","Custom Technical Indicators"]},"112":{"title":"Step.1","titles":["Technical indicator","Custom Technical Indicators","Attribute description"]},"113":{"title":"Step.2","titles":["Technical indicator","Custom Technical Indicators","Attribute description"]},"114":{"title":"Instance API","titles":[]},"115":{"title":"getDom(paneId, position)","titles":["Instance API"]},"116":{"title":"getSize(paneId, position)","titles":["Instance API"]},"117":{"title":"setStyles(styles)","titles":["Instance API"]},"118":{"title":"getStyles()","titles":["Instance API"]},"119":{"title":"setPriceVolumePrecision(pricePrecision, volumePrecision)","titles":["Instance API"]},"120":{"title":"setTimezone(timezone)","titles":["Instance API"]},"121":{"title":"getTimezone()","titles":["Instance API"]},"122":{"title":"setZoomEnabled(enabled)","titles":["Instance API"]},"123":{"title":"isZoomEnabled()","titles":["Instance API"]},"124":{"title":"setScrollEnabled(enabled)","titles":["Instance API"]},"125":{"title":"isScrollEnabled()","titles":["Instance API"]},"126":{"title":"setOffsetRightDistance(distance)","titles":["Instance API"]},"127":{"title":"getOffsetRightDistance()","titles":["Instance API"]},"128":{"title":"setLeftMinVisibleBarCount(barCount)","titles":["Instance API"]},"129":{"title":"setRightMinVisibleBarCount(barCount)","titles":["Instance API"]},"130":{"title":"setBarSpace(space)","titles":["Instance API"]},"131":{"title":"getBarSpace()","titles":["Instance API"]},"132":{"title":"getVisibleRange()","titles":["Instance API"]},"133":{"title":"applyNewData(dataList, more, callback)","titles":["Instance API"]},"134":{"title":"applyMoreData(dataList, more, callback)","titles":["Instance API"]},"135":{"title":"updateData(data, callback)","titles":["Instance API"]},"136":{"title":"getDataList()","titles":["Instance API"]},"137":{"title":"clearData()","titles":["Instance API"]},"138":{"title":"loadMore(cb)","titles":["Instance API"]},"139":{"title":"createIndicator(value, isStack, paneOptions, callback)","titles":["Instance API"]},"140":{"title":"overrideIndicator(override, paneId, callback)","titles":["Instance API"]},"141":{"title":"getIndicatorByPaneId(paneId, name)","titles":["Instance API"]},"142":{"title":"removeIndicator(paneId, name)","titles":["Instance API"]},"143":{"title":"createOverlay(value, paneId)","titles":["Instance API"]},"144":{"title":"getOverlayById(id)","titles":["Instance API"]},"145":{"title":"overrideOverlay(override)","titles":["Instance API"]},"146":{"title":"removeOverlay(remove)","titles":["Instance API"]},"147":{"title":"scrollByDistance(distance, animationDuration)","titles":["Instance API"]},"148":{"title":"scrollToRealTime(animationDuration)","titles":["Instance API"]},"149":{"title":"scrollToDataIndex(dataIndex, animationDuration)","titles":["Instance API"]},"150":{"title":"scrollToTimestamp(timestamp, animationDuration)","titles":["Instance API"]},"151":{"title":"zoomAtCoordinate(scale, coordinate, animationDuration)","titles":["Instance API"]},"152":{"title":"zoomAtDataIndex(scale, dataIndex, animationDuration)","titles":["Instance API"]},"153":{"title":"zoomAtTimestamp(scale, timestamp, animationDuration)","titles":["Instance API"]},"154":{"title":"setPaneOptions(options)","titles":["Instance API"]},"155":{"title":"executeAction(type, data)","titles":["Instance API"]},"156":{"title":"subscribeAction(type, callback)","titles":["Instance API"]},"157":{"title":"unsubscribeAction(type, callback)","titles":["Instance API"]},"158":{"title":"convertToPixel(value, finder)","titles":["Instance API"]},"159":{"title":"convertFromPixel(coordinate, finder)","titles":["Instance API"]},"160":{"title":"getConvertPictureUrl(includeOverlay, type, backgroundColor)","titles":["Instance API"]},"161":{"title":"resize()","titles":["Instance API"]},"162":{"title":"Overlay","titles":[]},"163":{"title":"Built-in overlay types","titles":["Overlay"]},"164":{"title":"Custom overlays","titles":["Overlay"]},"165":{"title":"Attribute description","titles":["Overlay","Custom overlays"]},"166":{"title":"Example","titles":["Overlay","Custom overlays"]},"167":{"title":"🎨 Style","titles":[]},"168":{"title":"Picture explanation","titles":["🎨 Style"]},"169":{"title":"Default full configuration","titles":["🎨 Style"]},"170":{"title":"🛠️ From V8 to V9","titles":[]},"171":{"title":"Import adjustment","titles":["🛠️ From V8 to V9"]},"172":{"title":"Design adjustment","titles":["🛠️ From V8 to V9"]},"173":{"title":"Style configuration adjustment","titles":["🛠️ From V8 to V9"]},"174":{"title":"API adjustment","titles":["🛠️ From V8 to V9"]},"175":{"title":"Chart API","titles":["🛠️ From V8 to V9","API adjustment"]},"176":{"title":"Instance API","titles":["🛠️ From V8 to V9","API adjustment"]},"177":{"title":"Shape help API","titles":["🛠️ From V8 to V9","API adjustment"]},"178":{"title":"Customized technical indicator adjustment","titles":["🛠️ From V8 to V9"]},"179":{"title":"📃 Introducation","titles":[]},"180":{"title":"What\'s KLineChart?","titles":["📃 Introducation"]},"181":{"title":"Features","titles":["📃 Introducation"]},"182":{"title":"❤️ Sponsor","titles":[]},"183":{"title":"Alipay","titles":["❤️ Sponsor"]},"184":{"title":"Wechat Pay","titles":["❤️ Sponsor"]},"185":{"title":"PayPal","titles":["❤️ Sponsor"]},"186":{"title":"Cryptocurrency","titles":["❤️ Sponsor"]}},"dirtCount":0,"index":[["☕️",{"2":{"182":1}}],["❤️",{"0":{"182":1},"1":{"183":1,"184":1,"185":1,"186":1}}],["成交量",{"2":{"106":2}}],["收",{"2":{"106":2}}],["低",{"2":{"106":2}}],["高",{"2":{"106":2}}],["開",{"2":{"106":2}}],["時間",{"2":{"106":2}}],["←",{"2":{"104":1}}],["→",{"2":{"104":1}}],["⌨️",{"0":{"104":1}}],["quantity",{"2":{"165":2}}],["quick",{"2":{"103":6}}],["quot",{"2":{"100":8,"103":48}}],["quote",{"2":{"100":1}}],["qq",{"0":{"81":1}}],["`performeventmovefordrawing`",{"2":{"165":2}}],["`createpointfigures`",{"2":{"165":4}}],["`weak",{"2":{"165":2}}],["`normal`",{"2":{"165":2}}],["`ma$",{"2":{"113":4}}],["`",{"2":{"102":2,"113":4}}],["`$",{"2":{"102":2}}],["`strong",{"2":{"165":2}}],["`stroke",{"2":{"86":2,"87":2,"88":2,"89":2}}],["`stroke`",{"2":{"86":2,"87":2,"88":2,"89":2}}],["`solid`",{"2":{"85":2,"87":2}}],["`fill`",{"2":{"86":2,"87":2,"88":2,"89":2}}],["`dashed`",{"2":{"85":2,"87":2}}],["jpeg",{"2":{"160":2}}],["j",{"2":{"113":12}}],["js",{"2":{"100":2}}],["jsdelivr",{"2":{"100":4}}],["javascriptimport",{"2":{"102":1}}],["javascript",{"2":{"83":1,"95":1,"100":2,"112":1,"113":1,"165":2,"166":1,"169":1}}],["javascriptchart",{"2":{"72":1,"139":1,"140":1,"143":1,"145":1,"154":1}}],["join",{"2":{"80":1}}],["🌟",{"2":{"182":1}}],["🎨",{"0":{"167":1},"1":{"168":1,"169":1},"2":{"181":1}}],["🌏",{"0":{"105":1},"1":{"106":1,"107":1}}],["🏝️",{"0":{"66":1},"1":{"67":1,"68":1}}],["🆕",{"2":{"1":2,"2":2,"3":3,"4":3,"7":5,"11":2,"13":1}}],["+098syuqtzi0ynzll",{"2":{"78":1}}],["+",{"2":{"49":1,"95":10,"104":5,"113":4,"166":2}}],["kinecharts",{"2":{"170":1}}],["kdj",{"2":{"109":1}}],["kb",{"0":{"51":1},"2":{"51":2}}],["kx",{"2":{"49":1}}],["k",{"2":{"49":1,"111":4,"133":1,"134":1,"135":1}}],["klinechart",{"0":{"97":1,"180":1},"1":{"98":1,"99":1,"100":1},"2":{"77":2,"80":1,"97":1,"180":1}}],["klinechartsyarn",{"2":{"99":1}}],["klinecharts",{"2":{"7":2,"20":1,"82":1,"83":2,"91":1,"98":2,"99":1,"100":4,"102":2,"103":2,"106":2,"110":1,"164":1,"165":2,"170":1,"171":3,"177":1}}],["klinedatalist",{"2":{"111":4,"113":8,"178":4}}],["klinedata",{"2":{"29":2,"111":22,"113":4,"139":2,"140":2}}],["keywords",{"2":{"103":2}}],["key",{"0":{"43":1,"104":1},"2":{"29":4,"31":12,"43":2,"106":1,"107":1,"111":2,"112":4,"113":10,"139":4,"140":4,"165":4,"166":2,"169":2}}],["===",{"2":{"95":10,"166":2}}],["=",{"2":{"20":6,"21":2,"22":2,"23":2,"24":2,"25":2,"26":6,"27":2,"28":2,"29":18,"30":2,"31":40,"32":2,"33":2,"35":2,"36":2,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"43":3,"44":2,"45":2,"46":2,"47":2,"48":2,"49":3,"50":2,"51":2,"52":2,"53":2,"54":2,"55":2,"56":2,"57":2,"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"83":2,"85":2,"86":2,"87":4,"88":2,"89":2,"92":4,"95":32,"102":2,"103":4,"111":12,"113":24,"115":2,"116":2,"117":2,"118":2,"119":2,"120":2,"121":2,"122":2,"123":2,"124":2,"125":2,"126":2,"127":2,"128":2,"129":2,"130":2,"131":2,"132":2,"133":4,"134":4,"135":4,"136":2,"137":2,"138":4,"139":18,"140":24,"141":2,"142":2,"143":58,"144":2,"145":30,"146":2,"147":2,"148":2,"149":2,"150":2,"151":2,"152":2,"153":2,"154":2,"155":4,"156":4,"157":4,"158":2,"159":2,"160":2,"161":2,"165":34,"166":8}}],["||",{"2":{"95":4,"113":2}}],["|",{"2":{"20":6,"21":4,"29":10,"31":34,"44":2,"45":2,"47":2,"48":2,"57":20,"58":2,"59":8,"60":2,"61":8,"62":8,"63":26,"85":2,"86":6,"87":8,"88":6,"89":10,"111":10,"115":4,"116":4,"117":2,"138":2,"139":32,"140":28,"143":16,"145":6,"146":2,"156":12,"157":12,"158":4,"159":4,"165":18,"169":102}}],["686d76",{"2":{"169":8}}],["60",{"2":{"109":2}}],["600px",{"2":{"103":4}}],["62",{"2":{"102":2,"103":2}}],["66",{"2":{"102":4,"103":4}}],["64",{"2":{"102":2,"103":2}}],["61",{"2":{"102":4,"103":4}}],["6",{"0":{"16":1},"2":{"16":1,"109":9,"169":10}}],["76808f",{"2":{"169":4}}],["76",{"2":{"102":2,"103":2}}],["72",{"2":{"102":2,"103":2}}],["70",{"2":{"102":2,"103":2}}],["74",{"2":{"102":2,"103":2}}],["77",{"2":{"102":2,"103":2}}],["7yjhygvvvz",{"2":{"79":1}}],["7",{"0":{"15":1},"2":{"15":1,"169":12,"170":1}}],["xxxxxxxx",{"2":{"143":2,"145":2}}],["xxx",{"2":{"113":4,"178":8}}],["xdis",{"2":{"95":4,"166":6}}],["x",{"0":{"14":1,"15":1,"16":1,"17":1,"18":1},"2":{"14":1,"15":1,"16":1,"17":1,"18":1,"31":2,"49":4,"50":6,"51":2,"52":6,"53":6,"54":4,"55":4,"56":6,"57":6,"58":4,"59":4,"60":2,"61":2,"62":4,"63":4,"85":4,"86":4,"87":4,"88":4,"89":4,"92":2,"94":3,"95":24,"111":6,"145":1,"151":2,"158":4,"159":4,"165":8,"166":4,"170":4}}],["xaxis",{"2":{"3":1,"13":6,"29":8,"111":12,"165":4,"169":2,"173":6,"178":4}}],["85",{"2":{"169":6}}],["888888",{"2":{"140":4,"169":28}}],["88",{"2":{"102":2,"103":2}}],["89",{"2":{"102":2,"103":2}}],["8",{"0":{"14":1},"2":{"14":1,"103":2,"143":2,"145":2,"169":12,"170":2}}],["historical",{"2":{"133":1,"134":2}}],["hint",{"2":{"111":2}}],["highly",{"2":{"180":1,"181":1}}],["highest",{"2":{"65":2}}],["high",{"2":{"22":2,"65":2,"88":2,"102":20,"103":20,"106":2,"111":4,"133":2,"134":2,"135":2,"136":2,"165":2,"169":2}}],["hk",{"2":{"106":2}}],["https",{"2":{"77":2,"78":1,"79":1,"100":2,"165":2}}],["htmlid",{"2":{"176":1}}],["html",{"2":{"103":7,"176":1}}],["html5",{"2":{"67":1}}],["htmlelement",{"2":{"20":2,"21":2,"115":2,"117":2}}],["hope",{"2":{"182":1}}],["hoped",{"2":{"113":2}}],["hold",{"2":{"165":6}}],["hot",{"0":{"104":1}}],["how",{"0":{"72":1,"73":1,"75":1},"2":{"82":1,"108":1,"162":1,"165":2,"166":1}}],["horizontalstraightline",{"2":{"163":1}}],["horizontalsegment",{"2":{"163":1}}],["horizontalrayline",{"2":{"163":1}}],["horizontal",{"2":{"13":1,"57":1,"63":1,"169":4}}],["hh",{"2":{"46":1}}],["help",{"0":{"177":1},"2":{"170":1}}],["helper",{"2":{"34":1}}],["helvetica",{"2":{"169":24}}],["here",{"2":{"113":4,"137":1}}],["head",{"2":{"103":4}}],["height",{"2":{"13":2,"56":4,"62":4,"63":4,"70":1,"88":2,"89":4,"94":3,"95":16,"103":2,"111":4,"116":2,"139":8,"154":8,"165":2,"173":2}}],["halfgapbar",{"2":{"111":2,"165":2}}],["halfbar",{"2":{"111":2,"165":2}}],["handle",{"2":{"165":4,"181":1}}],["handling",{"2":{"11":1,"31":1}}],["hanging",{"2":{"57":2,"63":2}}],["has",{"2":{"13":1,"70":1,"75":1,"94":2,"105":1,"111":2,"166":2}}],["have",{"2":{"4":1,"22":1,"93":1,"145":1}}],["zero",{"2":{"181":2}}],["zone",{"2":{"20":2,"120":4,"121":1}}],["zoomattimestamp",{"0":{"153":1}}],["zoomatdataindex",{"0":{"152":1}}],["zoomatcoordinate",{"0":{"151":1}}],["zooming",{"2":{"104":1}}],["zoom",{"2":{"13":1,"104":2,"139":1,"151":1,"154":1}}],["zh",{"2":{"20":1,"22":1,"105":1,"106":2}}],["zlevel",{"2":{"3":1,"31":3,"143":6,"145":5,"165":2}}],["yarn",{"0":{"99":1,"102":1},"2":{"97":1}}],["yaxis",{"2":{"13":6,"29":8,"111":12,"115":3,"116":3,"165":4,"169":2,"173":6,"176":1,"178":4}}],["ydis",{"2":{"95":4,"166":6}}],["your",{"2":{"103":1}}],["you",{"0":{"73":1},"2":{"65":4,"73":1,"82":1,"91":1,"94":1,"97":1,"100":1,"105":2,"106":1,"107":1,"110":1,"111":8,"165":8,"167":2,"170":2,"181":1,"182":3}}],["yyyy",{"2":{"46":1}}],["y",{"2":{"8":1,"13":1,"31":2,"49":5,"50":7,"51":3,"52":6,"53":6,"54":4,"55":4,"56":6,"57":6,"58":4,"59":4,"60":2,"61":2,"62":4,"63":4,"85":4,"86":4,"87":4,"88":4,"89":4,"92":2,"94":3,"95":24,"111":4,"145":1,"151":2,"158":6,"159":5,"165":12,"166":4}}],["would",{"2":{"182":1}}],["works",{"2":{"158":1,"159":1}}],["wr",{"2":{"109":1}}],["want",{"0":{"73":1,"74":1,"75":1},"2":{"169":2}}],["while",{"2":{"119":1}}],["which",{"2":{"75":1,"111":2,"117":1,"139":1,"165":14,"166":2}}],["what",{"0":{"71":1,"73":1,"74":1,"180":1}}],["where",{"2":{"111":2,"165":2}}],["whether",{"2":{"52":1,"53":1,"55":1,"56":1,"92":2,"122":1,"123":1,"124":1,"125":1,"133":1,"134":1,"139":1,"154":1,"165":4,"167":1}}],["when",{"2":{"8":2,"31":1,"83":1,"111":2,"113":4,"117":1,"139":1,"141":1,"142":1,"143":1,"145":1,"157":1,"165":2,"169":2}}],["web",{"2":{"165":2}}],["webview",{"2":{"67":1}}],["we",{"2":{"94":1}}],["wechat",{"0":{"80":1,"184":1}}],["weight",{"0":{"48":1},"2":{"48":2,"57":4,"63":4,"89":2,"169":20}}],["weak",{"2":{"31":4,"143":6,"145":6,"165":6}}],["well",{"2":{"8":1}}],["window",{"2":{"103":2,"111":6,"115":1,"116":1,"139":8,"140":2,"141":4,"142":3,"143":2,"154":7,"158":1,"159":1,"165":2}}],["with",{"2":{"65":3,"75":1,"93":1,"111":6,"113":6,"139":1,"143":1,"161":1,"165":8,"181":1}}],["will",{"2":{"20":1,"21":1,"64":1,"90":1,"111":10,"119":1,"120":1,"133":1,"135":3,"137":1,"141":1,"142":1,"145":1,"158":1,"161":2,"165":2,"170":1}}],["width=device",{"2":{"103":2}}],["width",{"2":{"4":1,"48":1,"56":4,"62":4,"63":4,"88":4,"89":4,"94":3,"95":16,"103":4,"111":8,"116":2,"130":1,"131":1,"165":4}}],["v9",{"0":{"170":1},"1":{"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1}}],["v8",{"0":{"170":1},"1":{"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1}}],["vr",{"2":{"109":1}}],["var",{"2":{"103":2}}],["valid",{"2":{"31":1,"39":1,"145":1,"165":2}}],["values",{"2":{"29":2,"111":4,"139":2,"140":2,"158":1,"159":1,"165":6,"173":1,"178":1}}],["value",{"0":{"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"47":1,"139":1,"143":1,"158":1},"2":{"4":1,"20":2,"29":4,"31":2,"37":3,"38":3,"39":3,"40":3,"41":3,"42":4,"43":3,"44":2,"45":2,"47":2,"50":1,"51":1,"52":2,"53":2,"56":2,"57":2,"58":3,"59":3,"60":1,"61":1,"62":3,"63":3,"85":4,"86":4,"88":6,"89":6,"92":2,"94":3,"111":16,"112":4,"113":8,"139":8,"140":4,"143":11,"145":6,"154":2,"158":10,"159":4,"165":10,"169":16,"176":5,"178":3}}],["v10",{"2":{"64":1,"90":1}}],["very",{"2":{"139":1,"182":1}}],["version",{"0":{"33":1},"2":{"33":1}}],["verticalstraightline",{"2":{"163":1}}],["verticalsegment",{"2":{"163":1}}],["verticalrayline",{"2":{"163":1}}],["vertical",{"2":{"13":1,"57":1,"63":1,"169":4}}],["vol",{"2":{"109":1}}],["volumeprecision",{"0":{"119":1},"2":{"71":1,"119":3}}],["volume",{"2":{"22":2,"29":3,"65":4,"102":20,"103":20,"106":2,"111":2,"119":3,"133":2,"134":2,"135":2,"136":2,"139":2,"140":3,"165":2}}],["void",{"2":{"21":2,"22":2,"25":2,"26":4,"29":2,"31":6,"36":2,"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"92":2,"119":2,"120":2,"122":2,"124":2,"126":2,"128":2,"129":2,"130":2,"133":4,"134":4,"135":4,"137":2,"138":4,"139":2,"140":4,"146":2,"147":2,"148":2,"149":2,"150":2,"151":2,"152":2,"153":2,"154":2,"155":4,"156":4,"157":4,"161":2,"165":4}}],["via",{"2":{"167":1}}],["visible",{"2":{"29":4,"31":4,"111":8,"128":1,"129":1,"132":1,"139":2,"140":6,"143":6,"145":6,"165":4}}],["visiblerange",{"2":{"7":1,"111":4,"178":2}}],["viewport",{"2":{"103":2,"178":2}}],["view",{"2":{"17":1,"18":1}}],["n",{"2":{"169":4}}],["npm",{"0":{"98":1,"102":1},"2":{"97":1,"100":2}}],["neue",{"2":{"169":24}}],["necessary",{"2":{"137":1,"165":10}}],["next",{"2":{"111":4}}],["net",{"2":{"100":2}}],["nesting",{"2":{"43":1}}],["needed",{"2":{"165":2}}],["need",{"2":{"65":4,"82":1,"91":1,"105":1,"110":1,"111":8,"133":1,"140":1,"145":1,"165":8}}],["needdefaultyaxisfigure",{"2":{"31":3,"143":6,"145":5,"165":2}}],["needdefaultxaxisfigure",{"2":{"31":3,"143":6,"145":5,"165":2}}],["needdefaultpointfigure",{"2":{"31":3,"143":6,"145":5,"165":2}}],["needs",{"2":{"29":1,"31":3,"67":2,"83":1,"112":1,"113":6,"140":1,"145":3,"159":1,"160":1,"165":2,"169":2}}],["new",{"0":{"106":1,"107":1},"2":{"13":4,"83":2,"106":1,"107":1,"133":1}}],["null",{"2":{"111":8,"138":2,"139":4,"140":6,"143":2,"145":2,"169":2}}],["nullable",{"2":{"23":2}}],["numbers",{"2":{"20":1,"29":1,"45":1,"140":1}}],["number",{"2":{"20":6,"29":10,"31":12,"33":1,"38":1,"44":4,"45":2,"46":2,"47":2,"48":6,"49":8,"50":14,"51":8,"52":14,"53":10,"54":8,"55":8,"56":12,"57":12,"58":14,"59":10,"60":8,"61":8,"62":14,"63":26,"65":14,"85":14,"86":10,"87":16,"88":14,"89":26,"92":4,"111":58,"113":4,"116":12,"119":4,"126":2,"127":2,"128":3,"129":3,"130":2,"131":2,"132":8,"133":14,"134":14,"135":14,"136":14,"138":2,"139":18,"140":10,"143":20,"145":10,"147":4,"148":4,"149":4,"150":4,"151":8,"152":6,"153":6,"154":8,"158":20,"159":20,"165":48}}],["name=",{"2":{"103":8}}],["namely",{"2":{"49":1,"112":4}}],["name",{"0":{"25":1,"28":1,"141":1,"142":1},"2":{"20":2,"22":1,"23":3,"25":4,"26":4,"28":4,"29":7,"31":4,"75":1,"82":1,"83":6,"92":4,"95":2,"109":3,"111":14,"113":2,"117":1,"120":1,"121":1,"139":5,"140":9,"141":4,"142":4,"143":7,"145":6,"146":4,"165":4,"166":4,"176":5,"178":1}}],["naming",{"2":{"2":1}}],["none",{"2":{"109":2,"169":4}}],["non",{"2":{"65":2}}],["normal",{"2":{"29":3,"31":3,"111":4,"139":2,"140":3,"143":4,"145":3,"165":4,"169":28}}],["no",{"0":{"71":1},"2":{"8":1,"13":1,"21":1,"111":2,"113":2,"133":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"165":2,"171":1}}],["note",{"2":{"80":1,"83":1,"113":2,"161":1}}],["notes",{"2":{"17":1,"18":1}}],["not",{"0":{"73":1},"2":{"8":2,"20":1,"29":1,"31":1,"111":6,"113":2,"120":1,"137":2,"140":1,"145":1,"165":28}}],["nochangecolor",{"2":{"140":4,"169":10}}],["nochangewickcolor",{"2":{"7":1,"169":2}}],["nochangebordercolor",{"2":{"7":1,"169":2}}],["erc20",{"2":{"186":1}}],["error",{"2":{"5":1}}],["eth",{"2":{"186":1}}],["etc",{"2":{"20":1,"29":1,"45":1,"83":2,"140":1}}],["e11d74",{"2":{"169":2}}],["ededed",{"2":{"169":4}}],["each",{"2":{"113":4,"161":1}}],["else",{"2":{"95":2}}],["elements",{"2":{"82":1}}],["element",{"2":{"20":2,"21":2}}],["ema",{"2":{"109":1}}],["emv",{"2":{"65":2,"109":1}}],["empty",{"2":{"8":1}}],["explanation",{"0":{"168":1}}],["exist",{"2":{"158":1}}],["exists",{"2":{"145":1}}],["execution",{"2":{"155":1}}],["execute",{"2":{"155":1}}],["executeaction",{"0":{"155":1},"2":{"7":1}}],["example",{"0":{"83":1,"93":1,"166":1},"1":{"94":1,"95":1},"2":{"29":1,"106":1,"111":10,"139":1,"140":2,"143":1,"145":1,"154":1,"169":2}}],["extended",{"2":{"29":1,"31":1,"111":2,"140":1,"145":1,"165":2,"181":1}}],["extenddata",{"2":{"29":3,"31":3,"111":2,"139":2,"140":5,"143":6,"145":5,"165":2}}],["extension",{"2":{"13":4,"165":2,"175":2}}],["enabled",{"0":{"122":1,"124":1},"2":{"122":2,"124":2}}],["entire",{"2":{"115":1,"116":1,"161":1}}],["enter",{"2":{"31":1,"145":1}}],["en",{"2":{"20":1,"22":1,"103":2,"105":2,"165":2}}],["endpoint",{"2":{"111":2}}],["endangle",{"2":{"52":3,"58":3,"85":2}}],["end",{"2":{"11":1,"31":2,"52":1,"57":2,"58":1,"63":2,"85":2,"111":4,"145":2,"165":4}}],["environment",{"0":{"66":1},"1":{"67":1,"68":1},"2":{"7":1}}],["ef5350",{"2":{"6":1,"140":4}}],["events",{"2":{"2":1,"9":3,"165":2}}],["event",{"2":{"1":2,"2":1,"5":1,"8":1,"9":1,"11":1,"26":1,"31":44,"92":4,"143":112,"145":98,"165":62}}],["bc1qnwzukszzk5xfk0zs3sr8etzgctgnrtqts43jzp3khe6gm7xazprsp4y6n3",{"2":{"186":1}}],["btc",{"2":{"186":1}}],["blank",{"2":{"171":1}}],["bmp",{"2":{"160":1}}],["bbi",{"2":{"109":1}}],["brar",{"2":{"109":1}}],["browser",{"0":{"67":1},"2":{"67":1}}],["bias",{"2":{"109":1}}],["big",{"2":{"20":1}}],["b",{"2":{"43":2,"49":2}}],["box",{"2":{"181":1}}],["boll",{"2":{"109":1,"140":4}}],["body",{"2":{"103":4}}],["bordered",{"2":{"166":1}}],["borderradius",{"2":{"62":3,"63":3,"88":2,"89":2,"169":14}}],["border",{"2":{"59":4,"61":4,"62":5,"63":5,"86":6,"87":6,"88":8,"89":8,"93":1,"94":5,"95":2,"166":2}}],["borderdashedvalue",{"2":{"59":3,"61":3,"62":3,"63":3,"86":2,"87":2,"88":2,"89":2,"95":4,"140":4,"169":20}}],["bordersize",{"2":{"59":3,"61":3,"62":3,"63":3,"86":2,"87":2,"88":2,"89":2,"94":2,"95":4,"140":4,"169":24}}],["borderstyle",{"2":{"13":4,"59":3,"61":3,"62":3,"63":3,"86":2,"87":2,"88":2,"89":2,"94":2,"95":4,"140":4,"169":20}}],["bordercolor",{"2":{"59":3,"61":3,"62":3,"63":3,"86":2,"87":2,"88":2,"89":2,"94":2,"95":4,"169":16}}],["bottom",{"2":{"57":2,"63":3,"89":2,"111":8,"116":2,"139":6,"154":6,"165":4}}],["bool",{"2":{"42":1}}],["boolean",{"2":{"26":2,"29":8,"31":50,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"52":2,"53":2,"54":2,"55":2,"56":2,"57":2,"92":4,"111":8,"122":2,"123":2,"124":2,"125":2,"133":2,"134":2,"139":14,"140":8,"143":76,"145":38,"154":4,"158":2,"159":2,"160":2,"165":44}}],["bounding",{"2":{"29":8,"111":8,"165":2,"178":2}}],["best",{"2":{"113":2}}],["between",{"2":{"111":2,"165":2}}],["beginpath",{"2":{"95":6}}],["benchmark",{"2":{"89":2}}],["be",{"0":{"70":1},"2":{"20":3,"21":2,"64":1,"65":1,"75":2,"82":1,"83":1,"90":1,"111":12,"113":8,"117":1,"119":1,"123":1,"126":1,"127":1,"133":1,"134":1,"135":3,"137":1,"139":6,"140":1,"141":2,"143":1,"145":2,"147":1,"148":1,"149":1,"150":1,"151":2,"152":1,"153":1,"154":5,"158":3,"159":2,"160":3,"165":26,"166":2,"167":1,"169":6,"181":1,"182":1}}],["been",{"2":{"13":1,"145":1}}],["background",{"2":{"63":1,"89":2,"93":1,"94":2,"160":1}}],["backgroundcolor",{"0":{"160":1},"2":{"63":3,"89":2,"160":3,"169":12}}],["bash",{"2":{"100":1}}],["bashyarn",{"2":{"99":1}}],["bashnpm",{"2":{"98":1}}],["basically",{"2":{"167":1,"181":1}}],["basic",{"2":{"26":1,"27":1,"82":1,"166":2}}],["based",{"2":{"67":1,"145":1}}],["baseline",{"2":{"57":3,"63":3,"89":2}}],["basevalue",{"2":{"29":4,"111":2,"139":4,"140":4}}],["base",{"2":{"8":1,"111":2}}],["barcount",{"0":{"128":1,"129":1},"2":{"128":2,"129":2}}],["barspace",{"2":{"29":8,"111":6,"165":2,"178":1}}],["bars",{"2":{"13":1,"140":2,"169":2,"173":1}}],["bar",{"2":{"4":1,"7":6,"13":1,"111":2,"165":2,"169":2,"173":1}}],["by",{"2":{"6":1,"23":1,"24":1,"27":1,"50":1,"51":1,"73":1,"111":4,"141":1,"144":1,"146":1,"166":2,"178":1}}],["built",{"0":{"73":1,"74":1,"84":1,"109":1,"163":1},"1":{"85":1,"86":1,"87":1,"88":1,"89":1,"90":1},"2":{"1":1,"9":2,"10":1,"20":1,"22":1,"67":1,"75":1,"82":1,"84":1,"91":1,"105":1,"108":1,"110":1,"111":8,"162":1,"164":1,"165":6,"166":2,"181":1}}],["gzip",{"2":{"181":1}}],["global",{"2":{"165":4}}],["globally",{"2":{"91":1,"110":1,"111":6,"164":1}}],["given",{"2":{"111":2}}],["github",{"0":{"77":1},"2":{"14":1,"15":1,"16":1,"17":1,"18":1,"77":2,"182":1}}],["grid",{"2":{"169":2}}],["groupid",{"2":{"143":6,"145":5,"146":3}}],["group",{"0":{"80":1,"81":1},"2":{"80":1,"145":1,"146":1}}],["graph",{"2":{"26":1,"27":2,"28":1,"92":4,"111":6}}],["graphics",{"2":{"29":2,"92":2,"111":2,"140":2,"146":1,"165":12,"166":2}}],["graphic",{"2":{"4":1,"111":4,"165":6,"166":2}}],["gg",{"2":{"79":1}}],["gt",{"2":{"20":6,"21":2,"22":2,"23":4,"24":2,"25":2,"26":6,"27":2,"28":2,"29":26,"30":2,"31":48,"32":2,"33":2,"35":2,"36":2,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":4,"52":2,"53":2,"54":4,"55":4,"56":2,"57":2,"58":2,"59":4,"60":4,"61":6,"62":4,"63":2,"85":2,"86":2,"87":8,"88":2,"89":2,"92":4,"95":4,"100":4,"103":36,"111":26,"113":12,"115":2,"116":2,"117":2,"118":2,"119":2,"120":2,"121":2,"122":2,"123":2,"124":2,"125":2,"126":2,"127":2,"128":2,"129":2,"130":2,"131":2,"132":2,"133":6,"134":6,"135":4,"136":4,"137":2,"138":4,"139":26,"140":32,"141":2,"142":2,"143":64,"144":2,"145":32,"146":2,"147":2,"148":2,"149":2,"150":2,"151":2,"152":2,"153":2,"154":2,"155":4,"156":4,"157":4,"158":6,"159":4,"160":2,"161":2,"165":42,"166":2}}],["good",{"2":{"182":1}}],["go",{"2":{"14":1,"15":1,"16":1,"17":1,"18":1}}],["gapbar",{"2":{"111":2,"165":2}}],["gaps",{"2":{"111":2,"165":2}}],["gap",{"2":{"13":1,"126":1,"127":1,"139":5,"154":5}}],["generally",{"2":{"111":2,"137":1}}],["generated",{"2":{"166":2}}],["generate",{"2":{"91":1,"110":1}}],["generation",{"2":{"4":1}}],["getconvertpictureurl",{"0":{"160":1}}],["getdatalist",{"0":{"136":1}}],["getdom",{"0":{"115":1},"2":{"176":3}}],["getbarspace",{"0":{"131":1}}],["gettimezone",{"0":{"121":1}}],["getting",{"0":{"96":1},"1":{"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1}}],["gettechnicalindicatortemplate",{"2":{"13":1}}],["gettechnicalindicatorbypaneid",{"2":{"13":1,"176":2}}],["getlinearyfromslopeintercept",{"0":{"51":1}}],["getlinearyfromcoordinates",{"0":{"50":1}}],["getlinearslopeintercept",{"0":{"49":1}}],["getlocal",{"2":{"13":1}}],["get",{"0":{"97":1},"1":{"98":1,"99":1,"100":1},"2":{"20":1,"23":1,"24":1,"27":1,"28":1,"30":1,"32":1,"33":1,"43":1,"49":1,"50":1,"51":1,"83":2,"97":1,"111":2,"115":1,"116":1,"118":1,"120":1,"121":1,"127":1,"132":1,"136":1,"144":1,"160":1,"181":1}}],["getheight",{"2":{"13":1,"176":1}}],["getwidth",{"2":{"13":1,"176":1}}],["getindicatorbypaneid",{"0":{"141":1},"2":{"13":1,"176":1}}],["getvisiblerange",{"0":{"132":1},"2":{"13":1}}],["gets",{"2":{"131":1}}],["getstyles",{"0":{"118":1},"2":{"13":1,"176":1}}],["getstyleoptions",{"2":{"13":1,"176":1}}],["getsize",{"0":{"116":1},"2":{"13":2,"176":1}}],["getsupportedoverlays",{"0":{"32":1}}],["getsupportedindicators",{"0":{"30":1}}],["getsupportedfigures",{"0":{"27":1}}],["getsupportedlocales",{"0":{"24":1}}],["getsupportlocales",{"2":{"13":1}}],["getsupportoverlays",{"2":{"13":1}}],["getsupportfigures",{"2":{"13":1,"165":2}}],["getfigureclass",{"0":{"28":1},"2":{"13":1,"82":1,"83":2}}],["getoverlaybyid",{"0":{"144":1},"2":{"13":1}}],["getoverlayclass",{"0":{"23":1},"2":{"1":1}}],["getoffsetrightdistance",{"0":{"127":1},"2":{"7":1}}],["ue900",{"2":{"169":4}}],["url",{"2":{"160":1}}],["utf",{"2":{"103":2}}],["utils",{"0":{"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"1":{"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"2":{"4":1,"7":2,"64":2,"177":1}}],["usdt",{"2":{"186":3}}],["using",{"0":{"98":1,"100":1}}],["us",{"2":{"20":1,"22":1,"105":2,"165":2}}],["used",{"2":{"75":1,"83":1,"111":6,"165":4,"166":3}}],["use",{"0":{"83":1,"99":1,"107":1},"2":{"13":6,"64":1,"67":1,"90":1,"91":1,"100":1,"105":1,"110":1,"164":1,"166":2,"171":1,"173":1,"175":1,"176":3}}],["uniformly",{"2":{"171":1}}],["unique",{"2":{"26":1,"29":1,"31":1,"92":2,"140":1,"145":1,"165":2}}],["unsubscribe",{"2":{"157":1}}],["unsubscribeaction",{"0":{"157":1},"2":{"11":1,"176":1}}],["unpkg",{"2":{"100":1}}],["under",{"2":{"2":1,"181":1}}],["upgrade",{"2":{"170":3}}],["upcolor",{"2":{"140":4,"169":10}}],["up",{"2":{"111":2,"169":2}}],["update",{"2":{"135":1}}],["updates",{"2":{"10":1}}],["updatedata",{"0":{"135":1},"2":{"7":1,"65":1}}],["upwickcolor",{"2":{"7":1,"169":2}}],["upbordercolor",{"2":{"7":1,"169":2}}],["3dsxsbtbmwxumaaqmysvpgedbp9rghpnfq",{"2":{"186":1}}],["30",{"2":{"102":2,"103":2,"109":3,"139":2}}],["35",{"2":{"102":2,"103":2,"169":4}}],["31",{"2":{"102":2,"103":2}}],["34",{"2":{"102":2,"103":2,"109":1}}],["33",{"2":{"102":2,"103":2,"169":12}}],["39",{"2":{"29":12,"31":12,"57":44,"58":8,"59":20,"60":8,"61":20,"62":20,"63":64,"65":8,"72":4,"83":8,"85":8,"86":20,"87":28,"88":20,"89":20,"95":38,"102":4,"103":4,"106":28,"111":20,"112":40,"113":36,"115":12,"116":12,"139":60,"140":108,"143":52,"145":40,"154":4,"155":4,"156":28,"157":28,"165":24,"166":20,"169":1004}}],["3",{"0":{"4":1,"8":1},"2":{"109":3,"154":2,"166":2,"169":6}}],["mtm",{"2":{"109":1}}],["much",{"2":{"182":1}}],["multiple",{"2":{"97":1,"181":2}}],["must",{"2":{"65":1}}],["migrated",{"2":{"177":1}}],["millisecond",{"2":{"65":2}}],["middle",{"2":{"57":2,"63":2,"151":1,"169":4}}],["minheight",{"2":{"139":5,"154":5}}],["min",{"2":{"100":2}}],["minimum",{"2":{"29":1,"111":2,"128":1,"129":1,"139":1,"140":1,"154":1}}],["minvalue",{"2":{"29":3,"111":2,"139":2,"140":5}}],["mm",{"2":{"46":2}}],["merging",{"2":{"117":1}}],["merged",{"2":{"172":1,"173":1,"178":1}}],["merge",{"0":{"36":1},"2":{"36":1}}],["meaning",{"2":{"165":2}}],["mean",{"2":{"112":4}}],["median",{"2":{"111":2}}],["metric",{"2":{"140":1}}],["meta",{"2":{"103":10}}],["method",{"2":{"11":1,"13":11,"26":1,"29":4,"31":2,"41":1,"73":1,"82":1,"111":8,"133":2,"138":1,"139":1,"140":4,"141":1,"142":1,"144":1,"146":1,"156":1,"157":1,"161":1,"167":2,"169":4,"176":1,"178":4}}],["methods",{"2":{"3":1,"13":6,"34":1,"95":1,"97":1,"111":8,"165":4,"178":1}}],["me",{"2":{"78":1}}],["made",{"2":{"167":1}}],["may",{"2":{"161":1}}],["many",{"2":{"165":2}}],["manually",{"2":{"137":1}}],["management",{"0":{"102":1},"2":{"97":1}}],["matched",{"2":{"135":1}}],["math",{"2":{"95":4,"166":6}}],["main",{"2":{"115":3,"116":3,"139":1,"140":1,"141":1,"142":1,"143":1,"154":1,"176":1}}],["map",{"2":{"113":4}}],["ma5",{"2":{"112":4,"113":2}}],["ma2",{"2":{"112":3,"113":4}}],["ma10",{"2":{"112":6,"113":2}}],["ma1",{"2":{"112":5,"113":4}}],["macd",{"2":{"109":1}}],["ma",{"2":{"109":1,"112":1,"113":10,"139":2}}],["make",{"2":{"82":1}}],["magnet`",{"2":{"165":4}}],["magnet",{"2":{"31":7,"143":10,"145":9,"165":10}}],["maximum",{"2":{"29":1,"111":2,"140":1}}],["maxvalue",{"2":{"29":3,"111":2,"139":2,"140":5}}],["mark",{"0":{"75":1}}],["marginend",{"2":{"173":2}}],["marginbottom",{"2":{"169":12}}],["marginright",{"2":{"169":8}}],["margintop",{"2":{"169":8}}],["marginleft",{"2":{"169":8}}],["marginstrat",{"2":{"169":4}}],["margins",{"2":{"139":1,"154":1}}],["margin",{"2":{"13":2,"139":2,"154":2}}],["marinend",{"2":{"13":2}}],["marinstart",{"2":{"13":2,"173":2}}],["mozilla",{"2":{"165":2}}],["module",{"2":{"161":1}}],["models",{"2":{"181":1}}],["model",{"2":{"165":2}}],["mode",{"2":{"31":6,"143":6,"145":8,"165":10}}],["modesensitivity",{"2":{"2":1,"31":3,"143":6,"145":5,"165":2}}],["more",{"0":{"133":1,"134":1},"2":{"65":2,"133":4,"134":5,"138":1}}],["mouse",{"2":{"31":2,"145":2,"165":4}}],["moving",{"2":{"31":1,"104":1}}],["movement",{"2":{"165":6}}],["moveto",{"2":{"95":4}}],["move",{"2":{"31":4,"104":2,"145":3,"165":4}}],["mobile",{"2":{"2":1,"67":1,"181":2}}],["22",{"2":{"169":8}}],["2196f3",{"2":{"169":4}}],["26",{"2":{"109":3}}],["26a69a",{"2":{"6":1,"140":4}}],["28",{"2":{"102":6,"103":6}}],["20",{"2":{"102":6,"103":6,"109":6,"140":2}}],["204",{"2":{"102":2,"103":2}}],["2023",{"2":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1}}],["230",{"2":{"169":6}}],["23",{"2":{"11":1}}],["249",{"2":{"169":6}}],["243",{"2":{"169":12}}],["2432435",{"2":{"140":2}}],["24",{"2":{"7":1,"109":4}}],["2dc08e",{"2":{"6":1,"169":8}}],["27",{"2":{"6":1}}],["2",{"0":{"5":2,"6":1,"7":1,"9":1,"95":1,"113":1},"2":{"95":22,"109":3,"112":2,"139":2,"140":12,"143":6,"145":6,"154":2,"166":2,"169":98}}],["255",{"2":{"169":8}}],["25",{"2":{"3":1,"169":4}}],["45",{"2":{"169":6}}],["40k",{"2":{"181":1}}],["40",{"2":{"109":1,"169":6}}],["42",{"2":{"102":2,"103":2}}],["4986",{"2":{"102":2,"103":2}}],["4980",{"2":{"102":2,"103":2}}],["4988",{"2":{"102":2,"103":2}}],["4985",{"2":{"102":2,"103":2}}],["4981",{"2":{"102":4,"103":4}}],["4964",{"2":{"102":6,"103":6}}],["4961",{"2":{"102":10,"103":10}}],["4963",{"2":{"102":2,"103":2}}],["4962",{"2":{"102":2,"103":2}}],["4968",{"2":{"102":4,"103":4}}],["4966",{"2":{"102":4,"103":4}}],["4975",{"2":{"102":2,"103":2}}],["4974",{"2":{"102":2,"103":2}}],["4973",{"2":{"102":4,"103":4}}],["4971",{"2":{"102":2,"103":2}}],["4979",{"2":{"102":6,"103":6}}],["4972",{"2":{"102":6,"103":6}}],["4970",{"2":{"102":2,"103":2}}],["4977",{"2":{"102":12,"103":12}}],["4976",{"2":{"102":4,"103":4}}],["4",{"0":{"3":1,"18":1},"2":{"18":1,"111":2,"140":2,"169":62}}],["length",{"2":{"166":2,"169":4}}],["less",{"2":{"139":2,"154":2}}],["left",{"2":{"57":2,"63":3,"89":2,"104":1,"111":8,"116":2,"126":1,"127":1,"128":1,"165":4,"169":10}}],["level",{"2":{"31":1,"145":1,"165":2}}],["lt",{"2":{"23":2,"29":8,"31":8,"51":2,"54":2,"55":2,"59":2,"60":2,"61":4,"62":2,"87":4,"95":2,"100":4,"103":36,"111":14,"133":2,"134":2,"136":2,"139":8,"140":8,"143":6,"145":2,"158":4,"159":4,"165":8}}],["lightweight",{"2":{"180":1,"181":1}}],["like",{"2":{"91":1,"110":1,"164":1,"181":1}}],["liihuu",{"2":{"77":2}}],["list",{"2":{"20":2,"120":1}}],["linecolor",{"2":{"169":2}}],["linewidth",{"2":{"95":2}}],["lineto",{"2":{"95":12}}],["linesize",{"2":{"169":2}}],["lines",{"2":{"13":1,"140":2,"169":2,"173":2}}],["line",{"0":{"54":1,"60":1,"70":1,"71":1,"87":1},"2":{"2":1,"5":1,"9":1,"13":2,"49":1,"50":1,"51":1,"54":3,"59":1,"60":6,"61":1,"62":1,"63":1,"84":1,"85":2,"86":2,"87":4,"88":2,"89":2,"94":3,"111":4,"112":9,"113":6,"133":1,"134":1,"135":1,"143":2,"145":2,"167":1,"169":8,"173":1,"181":1}}],["labels",{"2":{"173":1}}],["layer",{"2":{"160":1}}],["lang=",{"2":{"103":2}}],["languages",{"2":{"105":1}}],["language",{"0":{"106":1,"107":1},"2":{"20":1,"22":3,"24":1,"105":1,"106":2,"107":2}}],["large",{"2":{"29":1,"45":1,"111":2,"140":1}}],["lastvaluemark",{"2":{"13":1,"169":2}}],["last",{"2":{"13":1,"135":1,"169":2}}],["loadmore",{"0":{"138":1}}],["load",{"2":{"67":1,"138":1}}],["location",{"2":{"149":1}}],["located",{"2":{"111":2,"165":2}}],["localized",{"2":{"24":1}}],["localization",{"2":{"22":1}}],["local",{"2":{"20":1,"120":1}}],["locales",{"0":{"22":1},"2":{"22":3,"106":1}}],["locale",{"0":{"22":1},"2":{"20":3,"22":3}}],["locked",{"2":{"31":1,"145":1}}],["lock",{"2":{"31":3,"143":6,"145":5,"165":4}}],["lowest",{"2":{"65":2}}],["low",{"2":{"22":2,"65":2,"102":20,"103":20,"106":2,"133":2,"134":2,"135":2,"136":2,"169":2}}],["longer",{"2":{"13":1,"21":1,"171":1}}],["log",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1},"2":{"7":1,"14":1,"15":1,"16":1,"143":28,"145":28,"169":2}}],["d9d9d9",{"2":{"169":12}}],["d",{"2":{"111":2}}],["dma",{"2":{"109":1}}],["dmi",{"2":{"109":1}}],["dd",{"2":{"46":1}}],["during",{"2":{"31":1,"165":8}}],["dcs",{"0":{"21":1},"2":{"21":3}}],["ds",{"0":{"20":1},"2":{"20":3,"167":1}}],["date",{"2":{"20":1,"46":1,"165":2}}],["datetimeformat",{"0":{"46":1},"2":{"20":4,"46":4,"165":6}}],["datasource",{"2":{"178":2}}],["dataindex",{"0":{"149":1,"152":1},"2":{"31":2,"111":2,"143":4,"145":2,"149":3,"152":3,"158":6,"159":4,"165":4}}],["datalist",{"0":{"133":1,"134":1},"2":{"29":2,"65":2,"111":2,"133":3,"134":3,"139":2,"140":2}}],["data",{"0":{"65":1,"73":1,"135":1,"155":1},"2":{"8":1,"29":5,"31":1,"43":2,"65":5,"102":2,"103":2,"111":52,"113":6,"133":6,"134":5,"135":8,"136":3,"137":2,"138":1,"139":4,"140":5,"145":1,"149":1,"152":1,"155":4,"156":2,"157":2,"158":1,"165":6}}],["dashvalue",{"2":{"13":1,"173":1}}],["dashedvalue",{"2":{"13":1,"58":3,"60":3,"85":2,"87":2,"94":2,"140":2,"143":2,"145":2,"169":24,"173":1}}],["dashed",{"2":{"13":1,"58":3,"59":3,"60":3,"61":3,"62":3,"63":3,"85":2,"86":2,"87":4,"88":2,"89":2,"94":4,"95":2,"139":4,"140":4,"169":42,"173":1}}],["docs",{"2":{"165":2}}],["doctype",{"2":{"103":2}}],["document",{"2":{"82":1,"108":1,"162":1,"170":2}}],["dotted",{"2":{"85":2,"86":2,"87":4,"88":2,"89":2}}],["do",{"0":{"71":1,"73":1,"75":1},"2":{"106":1,"111":10,"165":12}}],["domid",{"2":{"102":2}}],["dom",{"2":{"20":1,"21":1,"115":1,"176":1}}],["double",{"2":{"11":1,"31":1,"145":1,"165":2}}],["downcolor",{"2":{"140":4,"169":10}}],["down",{"2":{"111":2,"165":4,"169":2}}],["download",{"2":{"97":1}}],["downwickcolor",{"2":{"7":1,"169":2}}],["downbordercolor",{"2":{"7":1,"169":2}}],["drag",{"2":{"165":6}}],["dragged",{"2":{"139":1,"154":1}}],["dragging",{"2":{"31":1,"124":1,"125":1,"145":1}}],["dragenbaled",{"2":{"139":1,"154":1}}],["dragenabled",{"2":{"139":4,"154":4}}],["drawrecttext",{"0":{"63":1,"64":1},"2":{"64":2}}],["drawrect",{"0":{"62":1}}],["drawpolygon",{"0":{"61":1}}],["drawline",{"0":{"60":1}}],["drawcircle",{"0":{"59":1}}],["drawarc",{"0":{"58":1}}],["draw",{"2":{"13":1,"26":3,"29":3,"31":2,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"83":4,"92":4,"95":7,"111":2,"139":2,"140":5,"145":2,"165":6,"178":1}}],["drawing",{"2":{"11":1,"26":1,"29":1,"31":2,"111":2,"137":1,"140":1,"145":2,"165":8,"166":2,"181":1}}],["drawn",{"2":{"9":1,"111":4,"145":1}}],["drop",{"2":{"2":1}}],["different",{"2":{"135":1}}],["dimensions",{"2":{"111":2,"116":1,"165":2}}],["div",{"2":{"103":4}}],["dividing",{"2":{"2":1}}],["directly",{"0":{"103":1},"2":{"166":2}}],["direction",{"2":{"13":1}}],["diamond",{"2":{"93":1,"95":6}}],["distinguished",{"2":{"171":1}}],["distance",{"0":{"126":1,"147":1},"2":{"111":16,"126":2,"147":5,"148":2,"165":8,"176":1}}],["dist",{"2":{"100":2}}],["discussion",{"0":{"80":1,"81":1}}],["discussions",{"2":{"77":2}}],["discord",{"0":{"79":1},"2":{"79":1}}],["dispose",{"0":{"21":1}}],["displayed",{"2":{"111":4}}],["displaying",{"2":{"8":1}}],["display",{"2":{"3":1,"7":1,"8":1,"29":1,"65":2,"111":4,"112":1,"140":1,"169":4}}],["dependencies",{"2":{"181":1}}],["deprecated",{"2":{"64":1,"90":1}}],["definition",{"2":{"181":1}}],["define",{"2":{"94":2}}],["defaulted",{"2":{"133":1,"134":1,"139":2,"141":1,"151":1,"154":2,"160":3,"165":16}}],["defaultvalue",{"0":{"43":1},"2":{"43":2,"169":4}}],["defaultstyles",{"2":{"29":4,"111":6,"139":4,"140":4,"165":2,"178":3}}],["default",{"0":{"169":1},"2":{"6":1,"31":3,"71":1,"105":1,"109":3,"111":20,"115":2,"116":2,"133":1,"134":1,"139":3,"140":1,"141":1,"142":1,"143":1,"145":3,"147":2,"148":2,"149":2,"150":2,"151":3,"152":2,"153":2,"154":2,"157":1,"160":2,"165":24,"166":2}}],["defaultzlevel",{"2":{"3":1}}],["determined",{"2":{"178":1}}],["determine",{"2":{"94":1,"112":1,"113":1,"166":2}}],["details",{"2":{"20":1,"26":1,"31":1,"74":1,"117":1,"133":1,"134":1,"135":1,"165":2,"172":1}}],["developer",{"2":{"165":2}}],["developers",{"2":{"80":1}}],["development",{"2":{"7":1,"181":1}}],["decimal",{"2":{"71":1}}],["declarations",{"2":{"6":1}}],["declaration",{"2":{"2":1}}],["design",{"0":{"172":1}}],["description",{"0":{"92":1,"111":1,"165":1},"1":{"112":1,"113":1},"2":{"103":2}}],["describes",{"2":{"82":1}}],["deselected",{"2":{"31":1,"145":1}}],["destroyed",{"2":{"21":1}}],["destroys",{"2":{"21":1}}],["deleted",{"2":{"64":1,"90":1}}],["delete",{"2":{"13":8,"31":1,"145":1,"165":4,"173":1,"175":1,"176":5,"178":1}}],["deep",{"2":{"35":1}}],["deeprequired",{"2":{"8":1}}],["deeppartial",{"2":{"8":1}}],["png",{"2":{"160":1}}],["picture",{"0":{"168":1},"2":{"139":1,"140":1,"141":1,"142":1,"143":1,"154":1}}],["piece",{"2":{"135":1,"138":1}}],["pixel",{"2":{"4":1}}],["p",{"2":{"113":4}}],["performpoint",{"2":{"165":2}}],["performpointindex",{"2":{"165":2}}],["performance",{"2":{"161":1}}],["performeventmovefordrawing",{"2":{"31":3,"165":2}}],["performeventpressedmove",{"2":{"31":3,"165":2}}],["percentage",{"2":{"139":2,"154":2,"169":2}}],["periods",{"2":{"112":1}}],["pvt",{"2":{"109":1}}],["psy",{"2":{"109":1}}],["powerful",{"2":{"181":1}}],["possible",{"2":{"124":1,"125":1}}],["position",{"0":{"115":1,"116":1},"2":{"7":1,"115":3,"116":4,"148":1,"152":1,"169":8,"176":5}}],["polyfill",{"0":{"68":1}}],["polygon",{"0":{"55":1,"61":1},"2":{"55":3,"61":5,"84":1,"87":1,"169":2}}],["pointer",{"2":{"169":2}}],["point",{"0":{"75":1},"2":{"31":2,"50":1,"51":1,"52":2,"53":2,"54":1,"55":1,"56":4,"57":4,"62":2,"63":2,"88":4,"89":4,"94":2,"111":2,"145":2,"151":2,"165":10,"166":4,"167":1,"169":2}}],["points",{"2":{"31":4,"49":2,"50":1,"143":6,"145":5,"165":10,"176":1}}],["plugin",{"2":{"182":1}}],["please",{"2":{"20":1,"64":1,"67":1,"90":1,"117":1,"120":1,"133":1,"134":1,"135":1,"136":1,"161":1,"170":1,"171":1,"172":1,"173":1,"175":1,"176":3}}],["plots",{"2":{"13":1,"178":1}}],["prev",{"2":{"111":2}}],["previous",{"2":{"111":2,"170":1}}],["prevent",{"2":{"31":1,"145":1}}],["press",{"2":{"31":4,"145":3,"165":4}}],["precision",{"2":{"29":4,"44":3,"71":2,"111":4,"119":3,"139":2,"140":6,"165":8}}],["provide",{"2":{"181":1}}],["professional",{"2":{"180":1}}],["process",{"2":{"165":4}}],["processing",{"2":{"31":1}}],["prompt",{"2":{"113":2}}],["promise",{"2":{"29":2,"111":4,"139":2,"140":2}}],["project",{"0":{"102":1,"103":1}}],["properties",{"2":{"92":4,"165":2}}],["property",{"2":{"2":1}}],["pricechannelline",{"2":{"163":1}}],["priceline",{"2":{"163":1}}],["priceprecision",{"0":{"119":1},"2":{"71":1,"119":3}}],["price",{"2":{"29":3,"65":8,"71":1,"111":2,"112":1,"119":3,"139":2,"140":5,"165":4}}],["pricemark",{"2":{"13":1,"169":2}}],["paypal",{"0":{"185":1},"2":{"185":1}}],["pay",{"0":{"184":1}}],["package",{"0":{"102":1},"2":{"97":1}}],["parallellfilineline",{"2":{"163":1}}],["param",{"2":{"113":8}}],["params",{"2":{"29":4,"31":10,"109":3,"111":4,"113":4,"139":4,"140":4,"165":2,"178":2}}],["parameters",{"2":{"8":1,"29":1,"86":2,"88":2,"111":2,"112":3,"113":6,"140":2,"143":1,"145":1,"165":6}}],["parameter",{"2":{"8":1,"52":1,"53":1,"56":1,"57":1,"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"85":2,"87":4,"89":2,"111":6,"113":4,"139":1,"176":3}}],["participates",{"2":{"165":4}}],["part",{"2":{"82":1}}],["padding",{"2":{"63":4,"89":8}}],["paddingright",{"2":{"63":3,"89":2,"169":16}}],["paddingleft",{"2":{"63":3,"89":2,"169":16}}],["paddingbottom",{"2":{"13":2,"63":3,"89":2,"169":16,"173":2}}],["paddingtop",{"2":{"13":2,"63":3,"89":2,"169":16,"173":2}}],["paneoptions",{"0":{"139":1},"2":{"139":3,"154":1,"176":2}}],["paneid",{"0":{"115":1,"116":1,"140":1,"141":1,"142":1,"143":1},"2":{"3":1,"75":1,"111":2,"115":3,"116":3,"140":3,"141":3,"142":3,"143":3,"158":3,"159":3,"176":19}}],["pane",{"2":{"2":1,"139":3,"140":3,"141":1,"142":1,"143":1,"154":3}}],["iconfont",{"2":{"169":4}}],["icon",{"2":{"169":8}}],["icons",{"2":{"13":2,"169":4}}],["illustrate",{"2":{"166":1}}],["image",{"2":{"160":3}}],["imported",{"0":{"103":1}}],["import",{"0":{"171":1},"2":{"102":1,"171":1}}],["important",{"2":{"82":1,"139":1}}],["implement",{"2":{"95":1}}],["implementation",{"2":{"31":1}}],["i",{"0":{"74":1},"2":{"113":10,"182":1}}],["item",{"2":{"113":2,"169":2,"178":1}}],["items",{"2":{"20":1,"112":1}}],["it",{"2":{"20":3,"64":1,"67":2,"82":1,"83":1,"90":1,"91":3,"97":1,"100":1,"110":3,"111":4,"113":6,"117":2,"120":1,"123":1,"135":4,"137":2,"139":2,"143":1,"145":1,"154":1,"158":2,"159":1,"160":1,"164":3,"165":2,"166":2,"169":6,"180":1}}],["if",{"0":{"74":1},"2":{"20":1,"26":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"54":1,"57":1,"65":2,"67":1,"70":1,"82":1,"95":6,"105":1,"111":6,"113":8,"120":1,"135":2,"142":1,"145":1,"158":1,"165":2,"166":2,"170":1,"182":2}}],["ignoreevent",{"2":{"31":12,"165":4}}],["ignore",{"2":{"9":1,"165":2}}],["isdashed",{"2":{"178":1}}],["iszoomenabled",{"0":{"123":1}}],["isboolean",{"0":{"42":1}}],["isfunction",{"0":{"41":1}}],["isobject",{"0":{"40":1}}],["isnumber",{"0":{"38":1}}],["is",{"0":{"70":1,"73":1,"103":1},"2":{"8":2,"13":23,"26":1,"29":2,"31":2,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"64":1,"67":1,"71":1,"82":1,"83":3,"90":1,"92":4,"93":1,"94":12,"95":1,"100":1,"105":1,"106":1,"111":24,"112":2,"113":13,"115":2,"116":2,"117":1,"119":1,"124":1,"125":1,"133":3,"134":3,"135":2,"137":2,"138":2,"139":8,"140":3,"141":1,"142":1,"143":1,"145":2,"147":1,"148":1,"149":1,"150":1,"151":2,"152":1,"153":1,"154":2,"156":1,"157":2,"158":1,"159":1,"160":3,"165":8,"166":2,"169":6,"173":9,"175":1,"176":11,"178":5,"180":1,"182":1}}],["isvalid",{"0":{"39":1},"2":{"7":1}}],["isscrollenabled",{"0":{"125":1}}],["isstroke",{"2":{"178":1}}],["isstring",{"0":{"37":1}}],["isstack",{"0":{"139":1},"2":{"4":1,"139":3,"176":2}}],["issues",{"2":{"77":2}}],["issue",{"2":{"2":1,"8":2,"9":2}}],["id=",{"2":{"103":2}}],["identification",{"2":{"139":1,"145":1}}],["identifies",{"2":{"139":1}}],["identifier",{"2":{"26":1,"29":1,"31":1,"92":2,"140":1,"143":1,"145":1,"165":2}}],["ideographic",{"2":{"57":2,"63":2}}],["id",{"0":{"144":1},"2":{"2":1,"4":1,"20":1,"21":1,"111":2,"115":1,"116":1,"139":8,"140":3,"141":5,"142":4,"143":9,"144":5,"145":8,"146":5,"154":8,"158":1,"159":1,"169":8,"176":2}}],["inside",{"2":{"169":2}}],["install",{"2":{"98":2}}],["instantiate",{"2":{"83":2}}],["instance",{"0":{"114":1,"176":1},"1":{"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1},"2":{"3":1,"4":1,"7":2,"11":1,"13":14,"20":1,"21":1,"165":2,"167":1}}],["instead",{"2":{"13":6,"64":1,"90":1,"173":1,"175":1,"176":3}}],["invalid",{"2":{"165":2}}],["invalidity",{"2":{"10":1}}],["includeoverlay",{"0":{"160":1},"2":{"160":3}}],["include",{"2":{"111":2,"160":1,"165":2,"169":4}}],["increment",{"2":{"25":1,"111":2}}],["increments",{"2":{"20":1}}],["index",{"2":{"111":16,"149":1,"152":1,"158":2,"165":6,"171":2}}],["indicatorfigure",{"2":{"111":2}}],["indicatorfigurestyle",{"2":{"111":2}}],["indicatorfigureattrs",{"2":{"111":2}}],["indicatorfigureattrscallbackcoordinate",{"2":{"111":2}}],["indicatordata",{"2":{"111":6}}],["indicatorstyle",{"2":{"111":8}}],["indicators",{"0":{"73":1,"109":1,"110":1},"1":{"111":1,"112":1,"113":1},"2":{"30":1,"65":2,"74":2,"82":1,"108":1,"142":1,"181":1}}],["indicator",{"0":{"29":1,"74":2,"108":1,"178":1},"1":{"109":1,"110":1,"111":1,"112":1,"113":1},"2":{"4":1,"13":11,"29":13,"108":1,"110":3,"111":48,"112":1,"113":1,"119":1,"139":9,"140":8,"141":2,"142":1,"169":2,"173":3,"178":3}}],["information",{"2":{"26":1,"29":3,"31":2,"52":1,"53":1,"56":1,"57":1,"91":1,"110":1,"111":16,"139":1,"140":3,"141":1,"144":1,"145":1,"154":1,"165":12,"166":2}}],["initial",{"2":{"103":2}}],["initialized",{"0":{"70":1}}],["initialize",{"2":{"20":1,"102":2,"103":2}}],["init",{"0":{"20":1},"2":{"102":4,"103":2,"107":1,"167":1}}],["integration",{"2":{"181":1}}],["internationalized",{"2":{"169":2}}],["internationalization",{"0":{"105":1},"1":{"106":1,"107":1}}],["internal",{"2":{"4":2}}],["interact",{"2":{"65":1}}],["introducation",{"0":{"179":1},"1":{"180":1,"181":1}}],["introduces",{"2":{"108":1,"162":1}}],["introduction",{"2":{"12":1}}],["into",{"2":{"20":2,"36":1,"45":2,"84":1,"160":1,"172":1,"173":1,"176":1,"178":1}}],["intl",{"2":{"20":2,"46":2,"165":4}}],["inaccurate",{"2":{"9":1}}],["input",{"2":{"8":1,"139":1}}],["in",{"0":{"73":1,"74":1,"84":1,"102":1,"103":1,"109":1,"163":1},"1":{"85":1,"86":1,"87":1,"88":1,"89":1,"90":1},"2":{"1":1,"2":1,"7":1,"9":2,"10":1,"13":1,"20":1,"22":1,"49":1,"65":1,"75":1,"82":1,"91":1,"104":1,"105":1,"108":2,"110":1,"111":16,"113":6,"137":1,"151":1,"161":1,"162":2,"164":1,"165":18,"166":2,"181":1}}],["f2f3f5",{"2":{"169":2}}],["full",{"0":{"169":1}}],["functions",{"2":{"181":1}}],["function",{"2":{"103":2,"138":1,"143":28,"145":28,"181":1}}],["ffffff",{"2":{"160":1,"169":10}}],["ff9600",{"2":{"140":2,"169":2}}],["f00",{"2":{"143":2,"145":2}}],["flag",{"2":{"139":1,"154":1}}],["fluctuation",{"0":{"71":1}}],["fefefe",{"2":{"169":2}}],["feedback",{"0":{"76":1},"1":{"77":1,"78":1,"79":1,"80":1,"81":1}}],["features",{"0":{"181":1},"2":{"13":1}}],["fast",{"2":{"181":1}}],["factor",{"2":{"151":1,"152":1,"153":1}}],["false",{"2":{"139":2,"140":2,"143":10,"145":10,"169":20}}],["faq",{"0":{"69":1},"1":{"70":1,"71":1,"72":1,"73":1,"74":1,"75":1}}],["family",{"0":{"48":1},"2":{"48":2,"57":3,"63":3,"89":2,"169":20}}],["follow",{"2":{"169":4}}],["following",{"2":{"105":1}}],["fontfamily",{"2":{"169":4}}],["font",{"2":{"57":1,"63":1,"89":2}}],["foreach",{"2":{"113":2}}],["formed",{"2":{"50":1,"51":1}}],["formatthousands",{"0":{"47":1}}],["formatting",{"2":{"44":1}}],["formatprecision",{"0":{"44":1}}],["formatvalue",{"0":{"43":1},"2":{"43":1}}],["formats",{"2":{"20":1}}],["format",{"0":{"46":1},"2":{"20":3,"29":1,"45":1,"46":4,"47":1,"65":1,"111":4,"113":2,"140":1,"165":2}}],["formatdate",{"0":{"46":1},"2":{"20":3}}],["formatbignumber",{"0":{"45":1},"2":{"7":1,"20":3}}],["force",{"2":{"11":1}}],["for",{"2":{"7":1,"9":2,"14":1,"15":1,"16":1,"20":2,"25":1,"26":1,"29":3,"30":1,"31":3,"32":1,"65":1,"74":1,"92":2,"106":1,"111":18,"117":1,"133":1,"134":1,"135":1,"136":1,"139":1,"140":3,"145":1,"155":1,"165":8,"169":2,"172":1}}],["frequent",{"2":{"161":1}}],["from",{"0":{"170":1},"1":{"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1},"2":{"43":1,"100":1,"102":2,"111":14,"132":2,"157":1,"165":4,"170":1,"171":1}}],["frame",{"2":{"2":1,"86":2,"87":2,"88":2,"89":2}}],["f92855",{"2":{"6":1,"169":8}}],["financial",{"2":{"180":1}}],["finder",{"0":{"158":1,"159":1},"2":{"158":3,"159":3,"176":4}}],["files",{"2":{"181":1}}],["filter",{"2":{"158":1,"159":1}}],["filled",{"2":{"95":2,"166":1}}],["fillet",{"2":{"88":2,"89":2}}],["fill`",{"2":{"86":2,"87":2,"88":2,"89":2}}],["fillstyle",{"2":{"95":2}}],["fills",{"2":{"70":1}}],["fill",{"2":{"59":4,"61":4,"62":4,"63":4,"65":2,"86":4,"87":4,"88":4,"89":4,"94":4,"95":10,"139":8,"140":12,"161":1,"166":4,"169":62}}],["field",{"2":{"65":12,"92":2,"165":2}}],["fields",{"2":{"65":4,"165":2}}],["first",{"0":{"101":1},"1":{"102":1,"103":1},"2":{"9":1,"94":1,"103":1,"112":3,"138":1}}],["fixed",{"2":{"65":1,"89":4,"169":4}}],["fix",{"2":{"2":1,"5":1,"8":2,"9":2,"10":1,"12":1}}],["figurenew",{"2":{"85":1,"86":1,"87":2,"88":1,"89":1}}],["figures",{"0":{"84":1},"1":{"85":1,"86":1,"87":1,"88":1,"89":1,"90":1},"2":{"13":1,"29":3,"31":3,"82":2,"84":1,"91":1,"111":6,"112":4,"113":8,"139":2,"140":5,"178":1}}],["figureindex",{"2":{"8":1}}],["figurekey",{"2":{"8":1}}],["figure",{"0":{"26":1,"82":1,"91":1},"1":{"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":2,"93":2,"94":2,"95":2},"2":{"1":1,"5":1,"9":2,"10":1,"26":6,"28":2,"29":1,"31":3,"82":3,"83":8,"85":1,"86":1,"87":2,"88":1,"89":1,"91":2,"92":6,"95":1,"111":2,"140":1,"145":3}}],["omni",{"2":{"186":1}}],["older",{"2":{"170":1}}],["obtain",{"2":{"141":1,"176":1}}],["obtained",{"2":{"82":1}}],["obv",{"2":{"109":1}}],["objects",{"2":{"165":4,"169":2}}],["object",{"2":{"20":3,"25":2,"26":4,"29":36,"31":40,"36":5,"40":1,"117":3,"118":2,"139":26,"140":24,"141":2,"142":2,"143":62,"144":2,"145":30,"158":1,"159":1,"169":2}}],["others",{"2":{"100":1}}],["other",{"0":{"74":1},"2":{"50":1,"105":1,"112":3,"113":1,"166":2}}],["o",{"2":{"43":2}}],["out",{"2":{"31":1,"104":1,"145":1,"165":2,"181":1}}],["output",{"2":{"7":1}}],["ohlc",{"2":{"29":1,"111":2,"140":1,"169":4}}],["operations",{"2":{"139":1}}],["operation",{"2":{"29":1,"140":1,"165":6}}],["opening",{"2":{"169":2}}],["open",{"2":{"22":2,"65":4,"102":20,"103":20,"106":2,"133":2,"134":2,"135":2,"136":2,"169":4}}],["option",{"2":{"176":2}}],["optional",{"2":{"20":1,"65":2,"85":2,"86":2,"87":4,"88":2,"89":2,"140":1}}],["options",{"0":{"20":1,"154":1},"2":{"4":3,"13":3,"20":3,"29":1,"31":1,"94":2,"107":1,"115":1,"140":1,"145":1,"154":2,"156":1,"157":1,"165":2,"167":1,"173":1,"176":1,"178":1}}],["optimization",{"2":{"1":1}}],["optimize",{"2":{"1":1,"2":3,"3":1,"4":3,"5":1,"6":2,"7":2,"8":3,"9":1,"10":1,"11":1}}],["org",{"2":{"165":2}}],["original",{"2":{"148":1}}],["order",{"2":{"137":1}}],["or",{"0":{"102":1},"2":{"20":2,"21":1,"29":1,"31":1,"73":1,"97":2,"100":1,"107":1,"119":1,"139":1,"140":1,"143":1,"145":1,"158":1,"159":1,"167":2,"169":8,"170":1}}],["overwrite",{"2":{"145":1}}],["overwritten",{"2":{"135":1}}],["overridden",{"2":{"140":1,"145":1}}],["overridetechnicalindicator",{"2":{"176":1}}],["overrides",{"2":{"139":1}}],["override",{"0":{"140":1,"145":1},"2":{"73":1,"140":3,"145":3,"176":3}}],["overrideindicator",{"0":{"140":1},"2":{"13":1,"73":1,"139":1,"140":2,"176":1}}],["overrideoverlay",{"0":{"145":1},"2":{"13":2,"143":1,"145":2,"176":1}}],["overlayevent",{"2":{"165":28}}],["overlayperformeventparams",{"2":{"165":2}}],["overlaycreatefigurescallback",{"2":{"165":4}}],["overlayconstructor",{"2":{"23":2}}],["overlaytechnicalindicator",{"2":{"13":1}}],["overlaystyle",{"2":{"165":4}}],["overlays",{"0":{"164":1},"1":{"165":1,"166":1},"2":{"9":1,"32":1,"75":1,"82":1,"145":1,"162":1}}],["overlayfigureignoreeventtype",{"2":{"31":12,"165":4}}],["overlayfigure",{"2":{"2":1}}],["overlay",{"0":{"31":1,"162":1,"163":1},"1":{"163":1,"164":1,"165":1,"166":1},"2":{"2":1,"3":1,"8":1,"9":1,"11":1,"13":2,"23":2,"31":7,"75":1,"140":1,"143":2,"144":1,"145":2,"146":1,"160":1,"162":1,"164":2,"165":14,"166":1,"169":2,"172":2,"173":1}}],["offsetright",{"2":{"169":2}}],["offsettop",{"2":{"169":2}}],["offsetleft",{"2":{"169":2}}],["offset",{"2":{"169":4}}],["offsetbottom",{"2":{"7":1,"169":2}}],["of",{"0":{"75":1,"83":1,"102":1},"2":{"2":1,"3":1,"4":1,"7":1,"8":4,"9":2,"10":1,"11":1,"12":1,"20":1,"33":1,"34":1,"43":1,"49":2,"50":1,"51":1,"52":4,"53":4,"58":4,"59":4,"82":2,"83":2,"85":8,"86":8,"87":4,"88":4,"89":4,"92":6,"94":2,"111":14,"112":5,"113":8,"126":1,"127":1,"128":1,"129":1,"130":2,"131":1,"133":2,"134":2,"135":3,"136":1,"137":1,"138":2,"139":3,"140":1,"141":1,"142":1,"143":2,"149":1,"151":1,"152":1,"154":2,"158":1,"160":2,"161":1,"165":22,"166":4,"169":2,"173":1,"181":1,"182":1}}],["onpanedrag",{"2":{"156":3,"157":3,"176":1}}],["onpressedmoveend",{"2":{"31":3,"143":6,"145":5,"165":2}}],["onpressedmovestart",{"2":{"31":3,"143":6,"145":5,"165":2}}],["onpressedmoving",{"2":{"31":3,"143":6,"145":5,"165":2}}],["ontooltipiconclick",{"2":{"156":3,"157":3}}],["onvisiblerangechange",{"2":{"156":3,"157":3,"176":1}}],["onscroll",{"2":{"156":3,"157":3,"176":1}}],["onselected",{"2":{"31":3,"143":6,"145":5,"165":2}}],["onzoom",{"2":{"156":3,"157":3,"176":1}}],["onload",{"2":{"103":2}}],["only",{"0":{"70":1},"2":{"31":1,"91":1,"94":2,"104":1,"110":1,"135":1,"137":1,"145":1,"155":1,"158":1,"159":1,"165":2,"181":1}}],["one",{"0":{"70":1},"2":{"36":1,"112":3,"160":1,"165":2,"181":1}}],["onremoved",{"2":{"31":3,"143":6,"145":5,"165":2}}],["onrightclick",{"2":{"31":3,"143":6,"145":5,"165":2}}],["onmouseleave",{"2":{"31":3,"143":6,"145":5,"165":2}}],["onmouseenter",{"2":{"31":3,"143":6,"145":5,"165":2}}],["ondeselected",{"2":{"31":3,"143":6,"145":5,"165":2}}],["ondrawend",{"2":{"31":3,"143":6,"145":5,"165":2}}],["ondrawing",{"2":{"31":3,"143":6,"145":5,"165":2}}],["ondrawstart",{"2":{"31":3,"143":6,"145":5,"165":2}}],["ondoubleclick",{"2":{"2":1,"31":3,"143":6,"145":5,"165":2}}],["oncrosshairchange",{"2":{"155":3,"156":3,"157":3,"176":1}}],["onclick",{"2":{"31":3,"143":6,"145":5,"165":2}}],["once",{"2":{"21":1}}],["oncandlebarclick",{"2":{"11":1,"156":3,"157":3}}],["on",{"2":{"2":1,"8":1,"26":1,"31":2,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"67":3,"82":1,"92":2,"131":1,"139":1,"145":1,"153":1,"158":1,"159":1,"165":8,"167":1,"182":1}}],["0xd2c3911654db861e0a2e17415e11a209c1fc3594",{"2":{"186":2}}],["01c5c4",{"2":{"169":2}}],["01",{"2":{"169":2}}],["000000",{"2":{"103":2}}],["09",{"2":{"102":2,"103":2}}],["02",{"2":{"11":1,"12":1,"13":1,"102":2,"103":2}}],["03",{"2":{"10":1}}],["04",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1}}],["05",{"2":{"3":1,"4":1,"5":1}}],["06",{"2":{"2":1,"102":2,"103":2}}],["0",{"0":{"2":1,"3":1,"4":1,"7":1,"11":1,"12":1,"13":2},"2":{"113":2,"139":4,"143":2,"145":2,"154":4,"166":6,"169":42}}],["08",{"2":{"1":1}}],["rich",{"2":{"181":1}}],["right",{"2":{"31":1,"57":2,"63":3,"89":2,"104":1,"111":8,"116":2,"126":1,"127":1,"129":1,"145":1,"165":8,"169":8}}],["rigideroverlay",{"2":{"13":1}}],["rgba",{"2":{"169":34}}],["rsi",{"2":{"109":1}}],["root",{"2":{"115":4,"116":4,"176":1}}],["roc",{"2":{"109":1}}],["rollback",{"2":{"1":1}}],["run",{"2":{"67":2}}],["rayline",{"2":{"163":1}}],["range",{"2":{"132":1}}],["radius",{"2":{"52":1,"53":1,"58":1,"59":1,"62":1,"63":1,"85":2,"86":2,"166":4,"169":2}}],["ratio",{"2":{"4":2}}],["r",{"2":{"52":3,"53":3,"58":3,"59":3,"85":2,"86":2,"166":2}}],["reward",{"2":{"182":1}}],["reverse",{"2":{"169":2}}],["redrawn",{"2":{"137":1}}],["repeated",{"2":{"137":1}}],["replace",{"2":{"113":2}}],["resizing",{"2":{"161":1}}],["resize",{"0":{"161":1}}],["respond",{"2":{"113":2}}],["response",{"2":{"2":1}}],["results",{"2":{"113":2}}],["result",{"2":{"111":2}}],["reatehtml",{"2":{"176":1}}],["read",{"2":{"82":1}}],["realdataindex",{"2":{"111":2}}],["realx",{"2":{"111":2}}],["real",{"0":{"72":1},"2":{"111":8}}],["realto",{"2":{"7":1,"111":2,"132":2}}],["realfrom",{"2":{"7":1,"111":2,"132":2}}],["recalculate",{"2":{"161":1}}],["recommended",{"2":{"82":1,"100":1}}],["recttext",{"0":{"63":1,"64":1,"90":1},"2":{"63":3,"84":1,"169":2}}],["rectangle",{"2":{"56":2,"62":2}}],["rect",{"0":{"56":1,"62":1,"88":1},"2":{"1":1,"7":2,"56":3,"62":3,"84":1,"111":2,"169":8}}],["required",{"2":{"65":13,"92":2,"139":1,"155":1,"165":16,"166":2}}],["returns",{"2":{"165":2}}],["returning",{"2":{"143":1}}],["returned",{"2":{"111":2,"113":2,"136":1,"141":2,"142":1,"146":1}}],["return",{"2":{"20":1,"92":2,"95":2,"111":2,"113":8,"118":1,"139":1,"143":2,"144":1,"145":2,"165":8,"166":4,"169":2,"178":1}}],["release",{"2":{"17":1,"18":1}}],["related",{"2":{"13":1}}],["render",{"2":{"13":1,"178":1}}],["rendering",{"2":{"10":1}}],["regenerate",{"2":{"29":1,"111":2,"140":1}}],["regeneratefigures",{"2":{"13":1,"29":3,"111":2,"113":2,"139":2,"140":5,"178":1}}],["regenerateplots",{"2":{"13":1,"178":1}}],["registered",{"2":{"20":1,"117":1}}],["registeroverlay",{"0":{"31":1},"2":{"13":1,"164":1,"175":1}}],["registerindicator",{"0":{"29":1},"2":{"13":1,"110":1,"175":1}}],["registerstyles",{"0":{"25":1},"2":{"13":1,"20":1,"117":1}}],["registerlocale",{"0":{"22":1},"2":{"13":1,"106":3}}],["registerfigure",{"0":{"26":1},"2":{"13":1,"91":1}}],["remove",{"0":{"146":1},"2":{"142":2,"146":3}}],["removehtml",{"2":{"13":1,"176":1}}],["removetag",{"2":{"13":1,"176":1}}],["removetechnicalindicator",{"2":{"13":1,"176":1}}],["removeannotation",{"2":{"13":1,"176":1}}],["removeshape",{"2":{"13":1,"176":1}}],["removeindicator",{"0":{"142":1},"2":{"13":1,"176":1}}],["removeoverlay",{"0":{"146":1},"2":{"13":2,"176":1}}],["reference",{"2":{"165":2}}],["refer",{"2":{"20":1,"25":1,"105":1,"111":14,"117":1,"118":1,"120":1,"133":1,"134":1,"135":1,"136":1,"170":1,"172":1}}],["refactoring",{"2":{"13":1}}],["refreshing",{"2":{"8":1}}],["↩️",{"2":{"1":1}}],["trc20",{"2":{"186":1}}],["true",{"2":{"111":2,"133":1,"134":1,"139":4,"140":4,"143":2,"145":2,"154":4,"165":2,"169":54}}],["trix",{"2":{"109":1}}],["triggered",{"2":{"111":2,"165":4}}],["triggering",{"2":{"9":2}}],["trigger",{"2":{"1":2,"165":2}}],["traditional",{"2":{"106":1}}],["t",{"2":{"78":1}}],["turnover",{"2":{"65":4,"133":2,"134":2,"135":2,"136":2}}],["two",{"2":{"49":1,"50":1,"71":1,"94":1,"95":1,"105":1,"112":1}}],["take",{"2":{"113":2}}],["takes",{"2":{"43":1}}],["targetcoordinate",{"0":{"50":1,"51":1},"2":{"50":2,"51":2}}],["target",{"0":{"35":1,"36":1},"2":{"35":2,"36":2}}],["tagid",{"2":{"176":1}}],["tag",{"0":{"103":1},"2":{"13":1,"172":1,"173":1,"176":1}}],["tickline",{"2":{"169":4}}],["ticktext",{"2":{"169":4}}],["ticketext",{"2":{"13":8,"173":8}}],["tip",{"2":{"29":1,"140":1}}],["title",{"2":{"29":6,"103":4,"111":4,"112":4,"113":8,"139":6,"140":6,"169":14,"178":2}}],["times",{"2":{"112":4}}],["timestamp",{"0":{"46":1,"150":1,"153":1},"2":{"20":2,"31":2,"46":2,"65":4,"102":20,"103":20,"133":2,"134":2,"135":3,"136":2,"138":4,"143":8,"145":6,"150":5,"153":5,"158":7,"159":4,"165":8}}],["timezone",{"0":{"120":1},"2":{"20":4,"120":3}}],["time",{"0":{"72":1},"2":{"9":1,"20":2,"22":2,"106":2,"113":2,"120":4,"121":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"158":1,"165":2,"169":6}}],["tells",{"2":{"133":1,"134":1}}],["telegram",{"0":{"78":1}}],["terminals",{"2":{"181":1}}],["terminal",{"2":{"67":1}}],["term",{"2":{"49":1,"51":1}}],["template",{"2":{"13":1,"175":4}}],["templates",{"2":{"2":1,"169":2}}],["technical",{"0":{"73":1,"74":1,"108":1,"109":1,"110":1,"178":1},"1":{"109":1,"110":1,"111":2,"112":2,"113":2},"2":{"13":6,"29":2,"30":1,"65":2,"74":1,"82":1,"108":2,"110":3,"111":22,"112":1,"119":1,"139":3,"140":1,"141":2,"142":2}}],["technicalindicator",{"2":{"13":4,"173":3,"178":1}}],["textweight",{"2":{"169":4}}],["textfamily",{"2":{"169":4}}],["textsize",{"2":{"169":4}}],["textmargin",{"2":{"169":4}}],["text",{"0":{"48":1,"57":1,"89":1},"2":{"8":1,"13":4,"29":4,"48":3,"57":9,"63":6,"64":2,"84":1,"89":4,"90":2,"100":2,"111":8,"139":4,"140":4,"169":20}}],["thjptqmfgavm12ke1jzc5mlxiapp6qxmci",{"2":{"186":1}}],["three",{"2":{"94":1,"160":1,"166":2}}],["through",{"0":{"103":1},"2":{"20":1,"65":1,"72":1,"82":1,"91":1,"97":2,"106":1,"107":1,"110":1,"117":1,"164":1,"176":1}}],["than",{"0":{"74":1},"2":{"139":2,"154":2}}],["that",{"0":{"103":1},"2":{"67":1,"93":1,"111":6,"113":4,"126":1,"127":1,"139":1,"140":1,"141":1,"142":1,"145":2,"165":4,"182":1}}],["think",{"2":{"182":1}}],["this",{"2":{"65":2,"82":1,"103":1,"106":1,"108":1,"111":2,"133":1,"139":1,"161":1,"162":1,"170":1}}],["thickness",{"2":{"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"89":2}}],["thousandsseparator",{"2":{"20":3,"165":2}}],["thousands",{"2":{"7":1,"20":1,"47":1,"165":2}}],["theme",{"2":{"103":2}}],["then",{"2":{"91":1,"110":1,"164":1}}],["these",{"2":{"84":1}}],["there",{"2":{"8":1,"83":1,"113":4,"133":1,"134":1}}],["the",{"0":{"70":1,"71":1,"74":1,"75":1,"101":1,"102":1},"1":{"102":1,"103":1},"2":{"2":4,"3":1,"4":3,"6":1,"7":3,"8":6,"9":5,"10":2,"11":3,"12":1,"13":8,"14":1,"15":1,"16":1,"17":1,"18":1,"20":3,"21":1,"24":2,"25":1,"26":2,"27":2,"29":2,"31":5,"33":2,"43":2,"49":2,"50":2,"51":4,"52":7,"53":6,"54":1,"57":1,"58":6,"59":7,"60":1,"61":1,"65":6,"67":2,"70":3,"71":1,"73":1,"75":2,"80":1,"82":5,"83":6,"84":1,"85":12,"86":12,"88":8,"89":8,"91":3,"92":12,"93":1,"94":14,"102":4,"103":4,"105":3,"107":1,"108":2,"110":2,"111":72,"112":14,"113":28,"115":3,"116":4,"117":1,"118":2,"119":2,"120":2,"121":1,"126":3,"127":3,"128":2,"129":2,"130":2,"131":2,"133":5,"134":3,"135":3,"136":3,"137":4,"138":2,"139":11,"140":4,"141":5,"142":4,"143":3,"144":2,"145":4,"146":2,"149":3,"150":1,"151":3,"152":2,"153":1,"154":5,"157":3,"158":6,"159":1,"160":7,"161":4,"162":2,"164":2,"165":94,"166":18,"167":4,"169":6,"170":1,"173":1,"176":4,"178":6,"181":2,"182":1}}],["tools",{"0":{"102":1},"2":{"97":1}}],["tooltip",{"2":{"1":1,"2":1,"7":2,"13":2,"111":2,"169":4,"173":3}}],["top",{"2":{"57":2,"63":3,"89":2,"111":8,"116":2,"139":6,"154":6,"165":4}}],["total",{"2":{"31":1,"165":2}}],["totalstep",{"2":{"31":3,"165":2,"166":2}}],["to",{"0":{"71":1,"72":1,"73":1,"74":1,"75":1,"170":1},"1":{"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1},"2":{"6":2,"7":1,"9":1,"11":1,"13":25,"14":2,"15":2,"16":2,"17":2,"18":2,"20":1,"25":1,"29":4,"31":2,"49":1,"65":5,"67":3,"70":1,"71":1,"80":1,"82":3,"83":1,"91":4,"100":1,"102":2,"103":2,"105":2,"106":1,"108":1,"110":3,"111":32,"112":1,"113":10,"117":1,"118":1,"120":1,"122":1,"126":1,"127":1,"128":1,"129":1,"132":2,"133":2,"134":1,"135":1,"136":1,"137":2,"139":1,"140":6,"141":1,"144":1,"145":3,"148":1,"149":1,"150":1,"151":1,"154":1,"156":1,"157":1,"158":4,"159":2,"160":1,"162":1,"164":1,"165":30,"166":6,"169":4,"170":4,"172":1,"173":11,"175":1,"176":16,"177":1,"178":6,"181":1}}],["type=",{"2":{"100":2}}],["types",{"0":{"163":1},"2":{"8":2,"11":1,"24":1,"157":1,"160":1,"169":4}}],["typescriptklinecharts",{"2":{"106":1}}],["typescriptnew",{"2":{"85":1,"86":1,"87":2,"88":1,"89":1}}],["typescript",{"2":{"2":1,"6":1,"8":1,"12":1,"13":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"65":1,"92":1,"111":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"165":1,"181":1}}],["type",{"0":{"155":1,"156":1,"157":1,"160":1},"2":{"2":1,"5":1,"13":1,"20":2,"25":1,"27":1,"29":4,"31":12,"72":2,"94":1,"111":20,"112":4,"113":6,"118":1,"133":1,"134":1,"135":1,"136":1,"139":5,"140":4,"143":1,"155":3,"156":3,"157":3,"160":4,"165":16,"166":2,"169":8,"176":3,"181":1}}],["typo",{"2":{"2":1}}],["🛡",{"2":{"181":1}}],["📱",{"2":{"181":1}}],["💪",{"2":{"181":1}}],["📦",{"2":{"181":1}}],["📃",{"0":{"179":1},"1":{"180":1,"181":1}}],["🚀",{"0":{"96":1},"1":{"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1},"2":{"181":1}}],["💬",{"0":{"76":1},"1":{"77":1,"78":1,"79":1,"80":1,"81":1}}],["🙋",{"0":{"69":1},"1":{"70":1,"71":1,"72":1,"73":1,"74":1,"75":1}}],["📚",{"0":{"65":1}}],["🗑",{"2":{"13":1}}],["👉",{"2":{"13":1}}],["🛠️",{"0":{"170":1},"1":{"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1}}],["🛠",{"2":{"13":1}}],["🐞",{"2":{"2":2,"5":1,"8":2,"9":2,"10":1,"12":1}}],["💄",{"2":{"1":1,"2":2,"3":1,"4":3,"5":1,"6":2,"7":2,"8":3,"9":1,"10":1,"11":1}}],["📠",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1}}],["smooth",{"2":{"169":12,"181":1}}],["sma",{"2":{"109":1}}],["sqrt",{"2":{"166":2}}],["sponsor",{"0":{"182":1},"1":{"183":1,"184":1,"185":1,"186":1}}],["space",{"0":{"130":1},"2":{"130":2,"176":1}}],["specified",{"2":{"93":1,"111":4,"149":1,"150":1,"153":1}}],["specifies",{"2":{"29":2,"140":2}}],["special",{"2":{"31":2,"139":1,"140":1,"141":1,"142":1,"143":1,"154":1,"165":2}}],["switching",{"2":{"107":1}}],["src=",{"2":{"100":2}}],["scoordinates",{"2":{"166":2}}],["scheme",{"2":{"105":1}}],["scalable",{"2":{"181":1}}],["scaling",{"2":{"151":1,"152":1,"153":1}}],["scaled",{"2":{"123":1}}],["scale",{"0":{"151":1,"152":1,"153":1},"2":{"122":1,"151":4,"152":4,"153":4}}],["scale=1",{"2":{"103":2}}],["scan",{"2":{"80":1}}],["script",{"0":{"103":1},"2":{"100":4,"103":4}}],["scrolltotimestamp",{"0":{"150":1}}],["scrolltodataindex",{"0":{"149":1}}],["scrolltorealtime",{"0":{"148":1}}],["scrollbydistance",{"0":{"147":1}}],["scrollzoomenabled",{"2":{"139":5,"154":5}}],["scroll",{"2":{"13":1,"139":1,"147":1,"148":1,"149":1,"150":1,"154":1}}],["scrolling",{"2":{"2":1,"124":1,"125":1}}],["screen",{"2":{"4":1}}],["sample",{"2":{"169":4}}],["samplecircle",{"2":{"166":4}}],["same",{"2":{"64":1,"90":1,"113":2,"135":1,"158":1}}],["sar",{"2":{"109":1}}],["save",{"2":{"98":1}}],["savenpm",{"2":{"98":1}}],["saved",{"2":{"13":1}}],["sale",{"0":{"75":1}}],["slope",{"2":{"49":1,"51":1}}],["ss",{"2":{"46":1}}],["shift",{"2":{"104":4}}],["showparams",{"2":{"169":2}}],["showtype",{"2":{"169":4}}],["showrule",{"2":{"169":4}}],["show",{"2":{"169":52}}],["showname",{"2":{"140":2,"169":2}}],["shows",{"0":{"71":1}}],["short",{"2":{"29":1,"111":2,"140":1}}],["shortname",{"2":{"29":3,"111":2,"113":2,"139":2,"140":3}}],["shouldcheckparamcount",{"2":{"178":1}}],["should",{"0":{"75":1},"2":{"29":1,"113":2,"140":1}}],["shouldformatbignumber",{"2":{"29":3,"111":2,"139":2,"140":5}}],["shouldohlc",{"2":{"29":3,"111":2,"139":2,"140":5}}],["shanghai",{"2":{"20":1,"120":1}}],["shape",{"0":{"177":1},"2":{"13":2,"172":1,"173":1}}],["s",{"0":{"180":1},"2":{"23":1}}],["so",{"2":{"95":1,"112":1,"113":1,"166":1}}],["source",{"0":{"36":1},"2":{"36":2,"111":16,"136":1}}],["some",{"2":{"20":1,"111":8,"139":1,"140":1,"165":4}}],["solid",{"2":{"13":1,"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"85":2,"86":2,"87":4,"88":2,"89":2,"94":3,"95":2,"139":4,"140":10,"143":2,"145":2,"169":70}}],["single",{"2":{"130":1,"131":1,"135":1}}],["sign",{"0":{"47":1},"2":{"47":2}}],["size",{"0":{"48":1},"2":{"13":2,"48":2,"57":4,"58":3,"60":3,"63":5,"85":4,"86":2,"87":6,"88":2,"89":6,"94":1,"111":8,"140":2,"143":2,"145":2,"161":2,"165":6,"169":62,"173":2}}],["simple",{"2":{"171":1,"181":1}}],["simpletag",{"2":{"9":1,"163":1}}],["simpleannotation",{"2":{"9":1,"75":2,"163":1}}],["side",{"2":{"2":1}}],["sub",{"2":{"178":1}}],["subkey",{"2":{"113":2}}],["subscribing",{"2":{"157":1}}],["subscribe",{"2":{"156":1}}],["subscribeaction",{"0":{"156":1},"2":{"11":1,"176":1}}],["subsequent",{"2":{"113":2,"139":1}}],["such",{"0":{"102":1},"2":{"20":2,"43":1,"45":1,"46":1,"83":2,"97":1,"120":1}}],["success",{"2":{"7":1,"133":1,"134":1,"135":1,"139":1,"140":1}}],["supported",{"2":{"24":1,"27":1,"155":1}}],["supports",{"2":{"2":1,"3":1,"4":1,"11":1,"20":1,"67":1,"97":1,"104":1,"116":1,"117":1,"169":2}}],["support",{"0":{"67":1},"2":{"1":1,"7":1,"9":1,"13":1,"20":1,"25":1,"30":1,"32":1,"43":1,"74":1,"111":2,"181":1}}],["segment",{"2":{"143":6,"145":6,"163":1}}],["second",{"2":{"112":2}}],["select",{"2":{"165":2,"166":2}}],["selected",{"2":{"31":1,"145":1}}],["selections",{"2":{"166":2}}],["selection",{"2":{"9":1}}],["series",{"2":{"29":4,"111":4,"119":1,"139":2,"140":6}}],["seen",{"0":{"70":1}}],["see",{"2":{"20":1,"26":1,"31":1,"70":1,"74":1,"111":6,"165":2,"167":1}}],["setbarspace",{"0":{"130":1}}],["setrightminvisiblebarcount",{"0":{"129":1}}],["setzoomenabled",{"0":{"122":1}}],["settimezone",{"0":{"120":1}}],["setting",{"2":{"119":1}}],["settings",{"2":{"72":1}}],["setleftminvisiblebarcount",{"0":{"128":1}}],["setlinedash",{"2":{"95":4}}],["setlocale",{"2":{"13":1,"107":1}}],["setpricevolumeprecision",{"0":{"119":1},"2":{"71":1}}],["setpaneoptions",{"0":{"154":1},"2":{"4":1,"13":1,"154":2}}],["set",{"2":{"20":1,"71":1,"87":4,"111":6,"117":1,"120":2,"122":1,"124":1,"138":1,"140":1,"154":1}}],["sets",{"2":{"126":1,"128":1,"129":1,"130":1}}],["setscrollenabled",{"0":{"124":1}}],["setshapeoptions",{"2":{"13":1,"176":1}}],["setstyles",{"0":{"117":1},"2":{"13":1,"72":2,"167":1,"176":1}}],["setstyleoptions",{"2":{"13":1,"176":1}}],["setoffsetrightdistance",{"0":{"126":1},"2":{"13":1,"176":1}}],["setoffsetrightspace",{"2":{"13":1,"176":1}}],["setcustomapi",{"2":{"13":1}}],["sensitivity",{"2":{"2":1,"31":1,"145":1,"165":2}}],["separator",{"2":{"1":1,"20":1,"47":1,"165":2,"169":2}}],["standard",{"2":{"169":8}}],["started",{"0":{"96":1},"1":{"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1},"2":{"181":1}}],["starting",{"2":{"56":2,"57":2,"58":1,"62":2,"63":2,"88":4,"89":4,"111":2}}],["startangle",{"2":{"52":3,"58":3,"85":2}}],["start",{"2":{"31":2,"52":1,"57":2,"63":2,"85":2,"103":6,"111":6,"145":2,"165":4}}],["step",{"0":{"94":1,"95":1,"112":1,"113":1},"2":{"165":2}}],["steps",{"2":{"31":1,"165":2,"166":2}}],["straightline",{"2":{"163":1}}],["strokestyle",{"2":{"95":2}}],["stroke",{"2":{"59":4,"61":4,"62":4,"63":4,"86":4,"87":4,"88":4,"89":4,"94":4,"95":8,"139":8,"140":8,"166":2,"169":46}}],["strong",{"2":{"31":3,"143":4,"145":3,"165":4}}],["strings",{"2":{"169":2}}],["string",{"2":{"2":1,"20":18,"21":2,"22":14,"23":2,"24":2,"25":2,"26":2,"27":2,"28":2,"29":32,"30":2,"31":26,"32":2,"33":2,"37":1,"43":2,"44":4,"45":4,"46":4,"47":6,"48":6,"57":6,"58":2,"59":4,"60":2,"61":4,"62":4,"63":10,"85":2,"86":4,"87":6,"88":4,"89":10,"92":2,"111":28,"115":2,"116":2,"117":2,"120":2,"121":2,"139":43,"140":38,"141":4,"142":4,"143":21,"144":2,"145":8,"146":8,"154":2,"158":2,"159":2,"160":6,"165":12,"169":2}}],["style=",{"2":{"103":2}}],["styles",{"0":{"25":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"117":1},"2":{"20":5,"25":3,"26":4,"29":8,"31":16,"57":4,"58":4,"59":4,"60":4,"61":4,"62":4,"63":4,"64":2,"83":6,"85":2,"86":2,"87":4,"88":2,"89":2,"92":4,"94":1,"95":8,"111":4,"117":4,"118":1,"139":6,"140":10,"143":6,"145":6,"165":6,"166":2,"167":1,"176":2,"178":2}}],["style",{"0":{"167":1,"173":1},"1":{"168":1,"169":1},"2":{"1":1,"2":1,"6":1,"7":1,"8":1,"13":4,"20":1,"25":4,"58":4,"59":5,"60":4,"61":5,"62":5,"63":5,"72":1,"85":4,"86":6,"87":10,"88":6,"89":6,"92":4,"94":5,"95":10,"111":22,"117":3,"118":1,"139":4,"140":10,"143":2,"145":2,"165":12,"166":4,"167":1,"169":44,"173":1,"181":1}}],["ci",{"2":{"163":1}}],["circles",{"2":{"13":1,"140":2,"169":2,"173":1}}],["circle",{"0":{"53":1,"59":1,"86":1},"2":{"13":1,"52":2,"53":7,"58":2,"59":7,"83":2,"84":1,"85":4,"86":4,"166":9,"169":2,"173":1}}],["cb",{"0":{"138":1},"2":{"138":3}}],["cycle",{"2":{"112":4}}],["cci",{"2":{"109":1}}],["cdn",{"0":{"100":1},"2":{"97":1,"100":2}}],["center",{"2":{"52":2,"53":2,"57":2,"58":2,"59":2,"63":2,"85":4,"86":4,"94":2}}],["certain",{"2":{"43":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"147":1,"151":1,"152":1,"165":2}}],["c",{"2":{"43":3}}],["ctx",{"0":{"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"2":{"26":2,"58":3,"59":3,"60":3,"61":3,"62":3,"63":3,"64":2,"83":4,"92":2,"95":42,"111":2,"178":2}}],["cleared",{"2":{"137":1}}],["cleardata",{"0":{"137":1},"2":{"133":1}}],["clear",{"2":{"133":1,"137":1}}],["closing",{"2":{"112":1,"169":2}}],["closesums",{"2":{"113":10}}],["closepath",{"2":{"95":4}}],["close",{"2":{"22":2,"65":4,"102":20,"103":20,"106":2,"113":8,"133":2,"134":2,"135":2,"136":2,"169":6}}],["clone",{"0":{"35":1}}],["click",{"2":{"31":3,"145":3,"165":8,"182":1}}],["clicking",{"2":{"11":1}}],["class",{"2":{"28":1,"83":2}}],["cn",{"2":{"20":1,"22":1,"105":1}}],["cost",{"2":{"181":1}}],["corresponds",{"2":{"158":1}}],["corresponding",{"2":{"31":1,"43":1,"113":2,"165":14,"166":4,"176":1}}],["combined",{"2":{"176":1}}],["compression",{"2":{"181":1}}],["component",{"2":{"111":8,"165":4}}],["composed",{"2":{"49":1,"82":1}}],["complete",{"2":{"107":1,"118":1,"165":2,"166":3,"181":1}}],["completes",{"2":{"103":1}}],["completed",{"2":{"95":1,"113":1}}],["complex",{"2":{"82":1}}],["com",{"2":{"77":2}}],["copy",{"2":{"35":1}}],["collection",{"2":{"34":1}}],["color",{"2":{"29":4,"57":4,"58":4,"59":5,"60":4,"61":5,"62":5,"63":6,"85":4,"86":6,"87":10,"88":6,"89":8,"94":4,"95":4,"103":2,"111":4,"139":8,"140":10,"143":2,"145":2,"160":1,"169":76,"178":3}}],["coordinates",{"2":{"54":2,"55":2,"60":2,"61":2,"87":8,"92":2,"158":1,"159":1,"165":2,"166":14}}],["coordinate2",{"0":{"49":1,"50":1},"2":{"49":2,"50":2}}],["coordinate1",{"0":{"49":1,"50":1},"2":{"49":2,"50":2}}],["coordinate",{"0":{"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"151":1,"159":1},"2":{"26":4,"29":4,"49":1,"50":2,"51":1,"52":5,"53":5,"54":3,"55":3,"56":5,"57":5,"85":4,"86":4,"88":4,"89":4,"92":2,"94":2,"95":6,"111":4,"151":5,"158":1,"159":4,"165":2,"176":1}}],["coverage",{"2":{"8":1}}],["console",{"2":{"143":28,"145":28}}],["consistent",{"2":{"113":4,"139":1,"143":1,"165":6}}],["constructor",{"2":{"165":2}}],["constant",{"2":{"49":1,"51":1}}],["const",{"2":{"43":1,"83":2,"95":10,"102":2,"113":6,"166":6}}],["connecting",{"2":{"112":1}}],["configure",{"2":{"166":1,"169":2}}],["configured",{"2":{"111":2,"112":1}}],["configuration",{"0":{"169":1,"173":1},"2":{"1":1,"2":1,"4":1,"7":1,"13":3,"20":1,"22":1,"25":2,"29":1,"111":2,"112":1,"117":2,"118":1,"139":1,"140":1,"154":2,"165":2,"181":1}}],["conversion",{"2":{"111":8,"165":4}}],["convertfrompixel",{"0":{"159":1},"2":{"176":1}}],["convert",{"2":{"158":1,"159":1}}],["converttopixel",{"0":{"158":1},"2":{"176":1}}],["converttimestamptopixel",{"2":{"3":1}}],["converttimestampfrompixel",{"2":{"3":1}}],["converted",{"2":{"29":2,"140":2,"158":2,"159":1,"160":2}}],["context",{"2":{"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"83":3,"92":2,"111":2}}],["content=",{"2":{"103":8}}],["content",{"2":{"57":1,"63":1,"89":2}}],["container",{"2":{"20":1,"70":2,"115":2,"116":1,"161":1}}],["cup",{"2":{"182":1}}],["currentstep",{"2":{"165":2}}],["currently",{"2":{"104":1,"105":1,"135":1}}],["currentcolor",{"2":{"95":4}}],["current",{"2":{"33":1,"111":4,"136":1,"157":1,"165":2}}],["cursor",{"2":{"8":1,"111":4}}],["customizable",{"2":{"180":1}}],["customization",{"2":{"4":1,"93":1}}],["customized",{"0":{"178":1}}],["customize",{"0":{"91":1},"1":{"92":1,"93":1,"94":1,"95":1},"2":{"20":1,"82":1,"108":1,"162":1,"164":1,"167":1}}],["customapi",{"2":{"20":3}}],["custom",{"0":{"110":1,"164":1},"1":{"111":1,"112":1,"113":1,"165":1,"166":1},"2":{"1":1,"2":1,"13":2,"29":2,"74":1,"82":1,"91":1,"95":1,"110":1,"111":4,"113":1,"140":2,"166":1,"169":4,"173":1}}],["cryptocurrency",{"0":{"186":1}}],["cr",{"2":{"109":1}}],["creation",{"2":{"29":1,"31":1,"92":2,"103":1,"140":1,"145":1,"165":2}}],["created",{"0":{"102":1},"2":{"75":1}}],["creates",{"2":{"31":3,"143":1}}],["createshape",{"2":{"13":1,"176":1}}],["createyaxisfigures",{"2":{"31":3,"165":2}}],["createxaxisfigures",{"2":{"31":3,"165":2}}],["createpointfigures",{"2":{"31":3,"165":2,"166":2}}],["create",{"0":{"72":1,"74":1,"101":1,"103":1},"1":{"102":1,"103":1},"2":{"29":1,"91":1,"110":1,"111":2,"139":1,"140":1,"165":6,"166":2}}],["createhtml",{"2":{"13":1}}],["createtooltipdatasource",{"2":{"29":3,"111":2,"139":2,"140":3,"178":2}}],["createtag",{"2":{"13":1,"176":1}}],["createtechnicalindicator",{"2":{"13":1,"176":1}}],["createannotation",{"2":{"13":1,"176":1}}],["createindicator",{"0":{"139":1},"2":{"4":1,"13":1,"73":1,"139":2,"141":1,"142":1,"176":1}}],["createoverlay",{"0":{"143":1},"2":{"3":1,"13":2,"75":1,"143":2,"144":1,"146":1,"176":1}}],["crosshair",{"2":{"13":2,"111":2,"169":2,"178":2}}],["cross",{"2":{"8":1,"111":6,"169":4}}],["child",{"2":{"169":2}}],["chinese",{"2":{"106":1}}],["checking",{"2":{"70":1}}],["checkcoordinateontext",{"0":{"57":1}}],["checkcoordinateonrect",{"0":{"56":1}}],["checkcoordinateonpolygon",{"0":{"55":1}}],["checkcoordinateonline",{"0":{"54":1}}],["checkcoordinateoncircle",{"0":{"53":1}}],["checkcoordinateonarc",{"0":{"52":1}}],["checks",{"2":{"26":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"53":1,"55":1,"56":1}}],["checkeventon",{"2":{"26":3,"92":2,"95":3}}],["check",{"2":{"5":2,"14":1,"15":1,"16":1,"52":1,"54":1,"57":1,"92":2}}],["charset=",{"2":{"103":2}}],["charts",{"2":{"22":1,"74":1}}],["chart",{"0":{"19":1,"70":1,"72":1,"101":1,"175":1},"1":{"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"102":1,"103":1},"2":{"1":1,"4":1,"8":2,"11":1,"13":3,"20":4,"21":5,"23":1,"24":1,"30":1,"32":1,"33":1,"65":3,"67":1,"70":1,"71":1,"72":1,"73":1,"75":1,"82":3,"84":1,"91":1,"102":8,"103":13,"105":1,"107":1,"108":1,"110":1,"111":2,"115":1,"116":1,"121":1,"126":1,"127":1,"130":1,"131":1,"133":2,"134":1,"136":1,"137":2,"139":2,"140":1,"143":1,"145":1,"151":1,"154":1,"155":1,"156":1,"157":1,"160":1,"161":2,"162":1,"164":1,"166":2,"167":3,"180":1,"181":1}}],["chat",{"2":{"80":1}}],["changing",{"2":{"6":1}}],["changes",{"2":{"167":1}}],["changed",{"2":{"13":25,"113":4,"173":10,"175":1,"176":11,"178":4}}],["change",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1},"2":{"1":1,"13":1,"14":1,"15":1,"16":1,"111":2,"113":2,"178":2}}],["caution",{"2":{"161":1}}],["carefully",{"2":{"82":1}}],["cancel",{"2":{"157":1,"165":2}}],["cannot",{"2":{"113":2}}],["canvastextbaseline",{"2":{"89":2}}],["canvastextalign",{"2":{"89":2}}],["canvasgradient",{"2":{"59":2,"61":2,"62":2,"89":2}}],["canvas",{"2":{"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"67":2,"83":3,"92":2,"111":2}}],["canvasrenderingcontext2d",{"2":{"26":2,"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"92":2,"111":2}}],["can",{"0":{"70":1},"2":{"20":3,"21":1,"73":1,"75":2,"82":1,"93":1,"94":2,"97":1,"100":1,"105":1,"106":1,"107":1,"111":2,"117":1,"123":1,"126":1,"127":1,"133":1,"134":1,"139":6,"141":1,"143":1,"147":1,"148":1,"149":1,"150":1,"151":2,"152":1,"153":1,"154":5,"158":1,"159":1,"160":3,"165":24,"166":2,"167":2,"169":6,"181":1,"182":2}}],["candles",{"2":{"128":1,"129":1}}],["candlesticks",{"2":{"111":4,"165":4}}],["candlestick",{"2":{"111":4,"130":1,"131":1,"165":4}}],["candle",{"0":{"71":1},"2":{"1":1,"2":1,"3":1,"7":8,"13":3,"72":2,"139":1,"140":3,"141":1,"142":1,"143":1,"154":1,"169":12,"173":3}}],["calls",{"2":{"144":1,"161":1}}],["calling",{"2":{"141":1,"142":1,"146":1}}],["call",{"2":{"71":1,"133":1,"137":1,"161":1}}],["callback",{"0":{"133":1,"134":1,"135":1,"139":1,"140":1,"156":1,"157":1},"2":{"7":1,"8":1,"113":2,"133":4,"134":4,"135":4,"138":2,"139":4,"140":4,"156":4,"157":4,"165":26,"169":2,"176":2}}],["calculates",{"2":{"112":4}}],["calculated",{"0":{"73":1}}],["calculate",{"2":{"48":1,"111":2}}],["calculation",{"2":{"29":2,"111":10,"112":3,"113":10,"140":2}}],["calcparms",{"2":{"29":2,"111":2,"139":2,"140":2}}],["calcparamstext",{"2":{"29":2,"111":2,"139":2,"140":2,"178":1}}],["calcparams",{"2":{"13":1,"29":3,"111":2,"112":3,"113":8,"139":2,"140":5}}],["calc",{"2":{"13":1,"29":3,"73":1,"109":3,"111":2,"113":2,"139":2,"140":5,"178":1}}],["calctechnicalindicator",{"2":{"13":1,"178":1}}],["calctextwidth",{"0":{"48":1},"2":{"4":1}}],["at",{"2":{"151":1,"152":1,"158":1}}],["attribute",{"0":{"92":1,"111":1,"165":1},"1":{"112":1,"113":1},"2":{"13":6,"83":2,"94":1,"178":2}}],["attributes",{"2":{"3":1,"13":1,"23":1,"94":1,"113":1}}],["attrs",{"2":{"2":1,"26":4,"29":4,"31":12,"83":4,"85":2,"86":2,"87":4,"88":2,"89":2,"92":4,"95":8,"111":2,"165":4,"166":2}}],["adjustment",{"0":{"171":1,"172":1,"173":1,"174":1,"178":1},"1":{"175":1,"176":1,"177":1}}],["adjust",{"2":{"139":1,"154":1}}],["additionally",{"2":{"133":1}}],["adding",{"0":{"106":1},"2":{"106":1,"107":1}}],["addshapetemplate",{"2":{"13":2,"175":1}}],["addtechnicalindicatortemplate",{"2":{"13":2,"175":1}}],["added",{"2":{"4":1,"13":1}}],["add",{"2":{"1":2,"2":2,"3":2,"4":1,"7":4,"8":1,"11":1,"13":3,"22":1,"25":1,"26":1,"29":1,"31":1,"80":1,"91":2,"99":2,"102":2,"103":2,"106":1,"110":2,"133":1,"134":1,"164":2}}],["affect",{"2":{"161":1}}],["affected",{"2":{"119":1}}],["after",{"0":{"70":1},"2":{"9":1,"64":1,"90":1,"107":1,"111":2,"160":1}}],["ao",{"2":{"109":1}}],["about",{"2":{"111":4,"165":4}}],["absoluteyaxis",{"2":{"176":1}}],["absolute",{"2":{"158":4,"159":4,"176":1}}],["abs",{"2":{"95":4,"166":4}}],["abandonment",{"2":{"13":1}}],["avoid",{"2":{"137":1}}],["average",{"2":{"112":1}}],["avp",{"2":{"65":2,"109":1}}],["available",{"2":{"21":1}}],["alipay",{"0":{"183":1}}],["alignment",{"2":{"57":2,"63":2,"89":2}}],["align",{"2":{"57":3,"63":3,"89":2}}],["also",{"2":{"119":1}}],["always",{"2":{"70":1,"161":1,"169":8}}],["alphabetic",{"2":{"57":2,"63":2}}],["all",{"2":{"7":1,"13":2,"82":1,"140":1,"141":1,"142":1,"157":1,"173":1,"177":1}}],["activeradius",{"2":{"169":2}}],["activebordersize",{"2":{"169":2}}],["activebordercolor",{"2":{"169":2}}],["activebackgroundcolor",{"2":{"169":6}}],["activecolor",{"2":{"169":2}}],["actions",{"2":{"156":1,"157":1}}],["action",{"2":{"155":1}}],["accomplished",{"2":{"106":1}}],["according",{"2":{"49":1,"141":1,"158":1}}],["acquisition",{"2":{"4":1}}],["auto",{"2":{"169":4}}],["automatically",{"2":{"20":1,"120":1}}],["auxiliary",{"2":{"29":1,"140":1}}],["a",{"0":{"71":1,"72":1,"100":1,"103":2},"2":{"20":3,"21":2,"22":1,"25":1,"26":1,"29":1,"31":1,"34":1,"37":2,"38":2,"39":1,"40":1,"41":2,"42":2,"43":3,"50":1,"51":1,"52":1,"53":2,"54":1,"55":2,"56":2,"57":1,"62":1,"65":3,"67":1,"75":1,"82":1,"83":1,"91":1,"92":4,"93":3,"94":5,"95":5,"108":1,"110":2,"111":8,"113":3,"130":1,"131":1,"138":1,"139":4,"145":1,"147":1,"151":1,"152":1,"154":2,"156":1,"162":1,"165":6,"166":4,"167":2,"169":8,"176":1,"180":1,"182":1}}],["asia",{"2":{"20":1,"120":1}}],["as",{"0":{"102":1},"2":{"8":2,"20":2,"43":1,"45":1,"46":1,"64":1,"83":2,"90":1,"97":1,"112":1,"113":4,"120":1,"165":2,"181":1}}],["arc",{"0":{"52":1,"58":1,"85":1},"2":{"10":1,"52":5,"58":6,"83":2,"84":1,"169":2}}],["are",{"2":{"9":1,"13":3,"29":1,"31":1,"82":2,"84":1,"112":3,"113":2,"115":1,"140":1,"143":1,"145":1,"156":1,"157":1,"165":10,"166":2,"170":1,"171":1,"172":1,"173":2,"176":1,"177":1,"178":1}}],["area",{"2":{"8":1,"72":2,"111":4,"169":4}}],["array",{"2":{"8":1,"29":6,"31":8,"51":2,"54":2,"55":2,"59":2,"60":2,"61":4,"62":2,"87":4,"111":10,"133":3,"134":3,"136":2,"139":6,"140":6,"143":6,"145":2,"158":5,"159":5,"165":8,"169":6}}],["arrays",{"2":{"3":1}}],["axisline",{"2":{"169":4}}],["axis",{"2":{"8":1,"13":1,"31":4,"50":1,"52":2,"53":2,"56":2,"57":2,"58":2,"59":2,"62":2,"63":2,"85":4,"86":4,"88":4,"89":4,"94":2,"111":8,"145":2,"158":2,"159":1,"165":16}}],["axisoptions",{"2":{"4":1,"139":5,"154":5}}],["animation",{"2":{"147":2,"148":2,"149":2,"150":2,"151":2,"152":2,"153":2}}],["animationduration",{"0":{"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1},"2":{"147":3,"148":3,"149":3,"150":3,"151":3,"152":3,"153":3}}],["angle",{"2":{"52":2,"58":2,"85":4}}],["another",{"2":{"36":1}}],["annotation",{"2":{"13":1,"172":1,"173":1,"176":1}}],["any",{"2":{"13":1,"26":4,"29":6,"31":38,"35":4,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"43":6,"57":2,"63":2,"89":2,"92":8,"111":16,"139":6,"140":6,"143":4,"145":2,"155":2,"156":2,"157":2,"165":14}}],["an",{"0":{"74":1},"2":{"8":1,"20":1,"40":1,"58":1,"82":1,"117":1,"133":1,"134":1,"139":1,"143":3,"158":3,"159":3,"160":1,"164":1,"169":6}}],["and",{"2":{"3":2,"4":1,"6":1,"7":5,"8":3,"9":2,"11":1,"13":9,"20":3,"22":1,"29":2,"31":4,"49":2,"51":1,"64":1,"65":3,"67":1,"80":1,"82":2,"83":2,"90":1,"91":2,"93":1,"94":5,"95":1,"104":1,"105":1,"108":1,"110":2,"111":2,"112":4,"115":1,"117":1,"119":1,"124":1,"125":1,"135":1,"137":1,"139":1,"140":2,"141":1,"145":3,"156":1,"157":1,"158":1,"162":1,"164":1,"165":18,"166":2,"169":6,"171":1,"173":4,"176":6,"181":4}}],["appreciated",{"2":{"182":1}}],["appended",{"2":{"135":1}}],["applymoredata",{"0":{"134":1},"2":{"7":1,"65":1}}],["applynewdata",{"0":{"133":1},"2":{"7":1,"8":1,"65":1,"102":2,"103":2}}],["apis",{"2":{"4":1,"20":1,"177":1}}],["api",{"0":{"19":1,"114":1,"174":1,"175":1,"176":1,"177":1},"1":{"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"175":1,"176":1,"177":1},"2":{"1":1,"3":1,"4":1,"7":3,"8":1,"13":3,"65":1,"75":1,"107":1,"181":1}}],["119",{"2":{"169":8}}],["18987",{"2":{"143":2,"145":2}}],["184",{"2":{"102":2,"103":2}}],["192",{"2":{"169":6}}],["191",{"2":{"102":2,"103":2}}],["19",{"2":{"102":2,"103":2}}],["197",{"2":{"102":2,"103":2}}],["194",{"2":{"102":2,"103":2}}],["12",{"2":{"102":2,"103":2,"109":9,"169":24}}],["1m",{"2":{"20":1,"29":1,"45":1,"140":1}}],["1k",{"2":{"20":1,"29":1,"45":1,"140":1}}],["1677ff",{"2":{"169":22}}],["16098",{"2":{"143":2,"145":2}}],["1614171202000",{"2":{"143":2,"145":2}}],["1614171282000",{"2":{"143":2,"145":2}}],["16",{"2":{"13":1,"102":2,"103":2}}],["17",{"2":{"12":1}}],["100",{"2":{"139":2,"154":2}}],["100k",{"2":{"111":2}}],["100000",{"2":{"111":2}}],["1000000",{"2":{"20":1,"29":1,"45":1,"140":1}}],["1000",{"2":{"20":1,"29":1,"45":1,"111":2,"140":1}}],["105",{"2":{"102":2,"103":2}}],["10",{"2":{"9":1,"109":7,"112":4,"113":2,"169":12}}],["135",{"2":{"102":2,"103":2}}],["13",{"2":{"4":1,"109":1}}],["150",{"2":{"169":12}}],["1587660540000",{"2":{"102":2,"103":2}}],["1587660480000",{"2":{"102":2,"103":2}}],["1587660420000",{"2":{"102":2,"103":2}}],["1587660360000",{"2":{"102":2,"103":2}}],["1587660300000",{"2":{"102":2,"103":2}}],["1587660240000",{"2":{"102":2,"103":2}}],["1587660180000",{"2":{"102":2,"103":2}}],["1587660120000",{"2":{"102":2,"103":2}}],["1587660060000",{"2":{"102":2,"103":2}}],["1587660000000",{"2":{"102":2,"103":2}}],["15",{"2":{"2":1,"8":1,"169":2}}],["142",{"2":{"169":6}}],["14",{"2":{"1":1,"10":1,"102":2,"103":2,"109":3}}],["1",{"0":{"1":1,"6":1,"8":1,"9":1,"10":2,"11":1,"12":1,"94":1,"112":1},"2":{"43":1,"95":2,"113":6,"139":6,"140":6,"143":2,"145":2,"154":6,"166":4,"169":76}}],["50",{"2":{"109":1}}],["55",{"2":{"102":2,"103":2}}],["56",{"2":{"102":2,"103":2}}],["53",{"2":{"102":4,"103":4}}],["5",{"0":{"1":1,"2":1,"17":1},"2":{"17":1,"109":3,"112":4,"113":2,"140":4,"169":8}}],["96",{"2":{"102":2,"103":2}}],["935ebd",{"2":{"169":2}}],["93",{"2":{"102":6,"103":6}}],["94",{"2":{"102":2,"103":2}}],["99",{"2":{"102":4,"103":4}}],["9",{"0":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1},"2":{"109":3,"170":1}}]],"serializationVersion":2}';export{e as default}; +const e='{"documentCount":187,"nextId":187,"documentIds":{"0":"/en-US/guide/changelog.html#📠-change-log","1":"/en-US/guide/changelog.html#_9-5-1","2":"/en-US/guide/changelog.html#_9-5-0","3":"/en-US/guide/changelog.html#_9-4-0","4":"/en-US/guide/changelog.html#_9-3-0","5":"/en-US/guide/changelog.html#_9-2-2","6":"/en-US/guide/changelog.html#_9-2-1","7":"/en-US/guide/changelog.html#_9-2-0","8":"/en-US/guide/changelog.html#_9-1-3","9":"/en-US/guide/changelog.html#_9-1-2","10":"/en-US/guide/changelog.html#_9-1-1","11":"/en-US/guide/changelog.html#_9-1-0","12":"/en-US/guide/changelog.html#_9-0-1","13":"/en-US/guide/changelog.html#_9-0-0","14":"/en-US/guide/changelog.html#_8-x","15":"/en-US/guide/changelog.html#_7-x","16":"/en-US/guide/changelog.html#_6-x","17":"/en-US/guide/changelog.html#_5-x","18":"/en-US/guide/changelog.html#_4-x","19":"/en-US/guide/chart-api.html#chart-api","20":"/en-US/guide/chart-api.html#init-ds-options","21":"/en-US/guide/chart-api.html#dispose-dcs","22":"/en-US/guide/chart-api.html#registerlocale-locale-locales","23":"/en-US/guide/chart-api.html#getoverlayclass","24":"/en-US/guide/chart-api.html#getsupportedlocales","25":"/en-US/guide/chart-api.html#registerstyles-name-styles","26":"/en-US/guide/chart-api.html#registerfigure-figure","27":"/en-US/guide/chart-api.html#getsupportedfigures","28":"/en-US/guide/chart-api.html#getfigureclass-name","29":"/en-US/guide/chart-api.html#registerindicator-indicator","30":"/en-US/guide/chart-api.html#getsupportedindicators","31":"/en-US/guide/chart-api.html#registeroverlay-overlay","32":"/en-US/guide/chart-api.html#getsupportedoverlays","33":"/en-US/guide/chart-api.html#version","34":"/en-US/guide/chart-api.html#utils","35":"/en-US/guide/chart-api.html#utils-clone-target","36":"/en-US/guide/chart-api.html#utils-merge-target-source","37":"/en-US/guide/chart-api.html#utils-isstring-value","38":"/en-US/guide/chart-api.html#utils-isnumber-value","39":"/en-US/guide/chart-api.html#utils-isvalid-value","40":"/en-US/guide/chart-api.html#utils-isobject-value","41":"/en-US/guide/chart-api.html#utils-isfunction-value","42":"/en-US/guide/chart-api.html#utils-isboolean-value","43":"/en-US/guide/chart-api.html#utils-formatvalue-value-key-defaultvalue","44":"/en-US/guide/chart-api.html#utils-formatprecision-value","45":"/en-US/guide/chart-api.html#utils-formatbignumber-value","46":"/en-US/guide/chart-api.html#utils-formatdate-datetimeformat-timestamp-format","47":"/en-US/guide/chart-api.html#utils-formatthousands-value-sign","48":"/en-US/guide/chart-api.html#utils-calctextwidth-text-size-weight-family","49":"/en-US/guide/chart-api.html#utils-getlinearslopeintercept-coordinate1-coordinate2","50":"/en-US/guide/chart-api.html#utils-getlinearyfromcoordinates-coordinate1-coordinate2-targetcoordinate","51":"/en-US/guide/chart-api.html#utils-getlinearyfromslopeintercept-kb-targetcoordinate","52":"/en-US/guide/chart-api.html#utils-checkcoordinateonarc-coordinate-arc","53":"/en-US/guide/chart-api.html#utils-checkcoordinateoncircle-coordinate-circle","54":"/en-US/guide/chart-api.html#utils-checkcoordinateonline-coordinate-line","55":"/en-US/guide/chart-api.html#utils-checkcoordinateonpolygon-coordinate-polygon","56":"/en-US/guide/chart-api.html#utils-checkcoordinateonrect-coordinate-rect","57":"/en-US/guide/chart-api.html#utils-checkcoordinateontext-coordinate-text-styles","58":"/en-US/guide/chart-api.html#utils-drawarc-ctx-arc-styles","59":"/en-US/guide/chart-api.html#utils-drawcircle-ctx-circle-styles","60":"/en-US/guide/chart-api.html#utils-drawline-ctx-line-styles","61":"/en-US/guide/chart-api.html#utils-drawpolygon-ctx-polygon-styles","62":"/en-US/guide/chart-api.html#utils-drawrect-ctx-rect-styles","63":"/en-US/guide/chart-api.html#utils-drawrecttext-ctx-recttext-styles","64":"/en-US/guide/chart-api.html#utils-drawrecttext-ctx-recttext-styles-1","65":"/en-US/guide/datasource.html#📚-data","66":"/en-US/guide/environment.html#🏝️-environment","67":"/en-US/guide/environment.html#browser-support","68":"/en-US/guide/environment.html#polyfill","69":"/en-US/guide/faq.html#🙋-faq","70":"/en-US/guide/faq.html#after-the-chart-is-initialized-only-one-line-can-be-seen","71":"/en-US/guide/faq.html#the-candle-shows-a-line-no-fluctuation-what-to-do","72":"/en-US/guide/faq.html#how-to-create-a-real-time-chart","73":"/en-US/guide/faq.html#built-in-technical-indicators-calculated-data-is-not-what-you-want-how-to-do","74":"/en-US/guide/faq.html#what-if-i-want-to-create-an-indicator-other-than-the-built-in-technical-indicator","75":"/en-US/guide/faq.html#want-to-mark-the-point-of-sale-how-should-do","76":"/en-US/guide/feedback.html#💬-feedback","77":"/en-US/guide/feedback.html#github","78":"/en-US/guide/feedback.html#telegram","79":"/en-US/guide/feedback.html#discord","80":"/en-US/guide/feedback.html#wechat-discussion-group","81":"/en-US/guide/feedback.html#qq-discussion-group","82":"/en-US/guide/figure.html#figure","83":"/en-US/guide/figure.html#example-of-use","84":"/en-US/guide/figure.html#built-in-figures","85":"/en-US/guide/figure.html#arc","86":"/en-US/guide/figure.html#circle","87":"/en-US/guide/figure.html#line","88":"/en-US/guide/figure.html#rect","89":"/en-US/guide/figure.html#text","90":"/en-US/guide/figure.html#recttext","91":"/en-US/guide/figure.html#customize-figure","92":"/en-US/guide/figure.html#attribute-description","93":"/en-US/guide/figure.html#example","94":"/en-US/guide/figure.html#step-1","95":"/en-US/guide/figure.html#step-2","96":"/en-US/guide/getting-started.html#🚀-getting-started","97":"/en-US/guide/getting-started.html#get-klinechart","98":"/en-US/guide/getting-started.html#using-npm","99":"/en-US/guide/getting-started.html#use-yarn","100":"/en-US/guide/getting-started.html#using-a-cdn","101":"/en-US/guide/getting-started.html#create-the-first-chart","102":"/en-US/guide/getting-started.html#created-in-the-project-of-package-management-tools-such-as-npm-or-yarn","103":"/en-US/guide/getting-started.html#create-in-a-project-that-is-imported-directly-through-a-script-tag","104":"/en-US/guide/hot-key.html#⌨️-hot-key","105":"/en-US/guide/i18n.html#🌏-internationalization","106":"/en-US/guide/i18n.html#adding-new-language","107":"/en-US/guide/i18n.html#use-new-language","108":"/en-US/guide/indicator.html#technical-indicator","109":"/en-US/guide/indicator.html#built-in-technical-indicators","110":"/en-US/guide/indicator.html#custom-technical-indicators","111":"/en-US/guide/indicator.html#attribute-description","112":"/en-US/guide/indicator.html#step-1","113":"/en-US/guide/indicator.html#step-2","114":"/en-US/guide/instance-api.html#instance-api","115":"/en-US/guide/instance-api.html#getdom-paneid-position","116":"/en-US/guide/instance-api.html#getsize-paneid-position","117":"/en-US/guide/instance-api.html#setstyles-styles","118":"/en-US/guide/instance-api.html#getstyles","119":"/en-US/guide/instance-api.html#setpricevolumeprecision-priceprecision-volumeprecision","120":"/en-US/guide/instance-api.html#settimezone-timezone","121":"/en-US/guide/instance-api.html#gettimezone","122":"/en-US/guide/instance-api.html#setzoomenabled-enabled","123":"/en-US/guide/instance-api.html#iszoomenabled","124":"/en-US/guide/instance-api.html#setscrollenabled-enabled","125":"/en-US/guide/instance-api.html#isscrollenabled","126":"/en-US/guide/instance-api.html#setoffsetrightdistance-distance","127":"/en-US/guide/instance-api.html#getoffsetrightdistance","128":"/en-US/guide/instance-api.html#setleftminvisiblebarcount-barcount","129":"/en-US/guide/instance-api.html#setrightminvisiblebarcount-barcount","130":"/en-US/guide/instance-api.html#setbarspace-space","131":"/en-US/guide/instance-api.html#getbarspace","132":"/en-US/guide/instance-api.html#getvisiblerange","133":"/en-US/guide/instance-api.html#applynewdata-datalist-more-callback","134":"/en-US/guide/instance-api.html#applymoredata-datalist-more-callback","135":"/en-US/guide/instance-api.html#updatedata-data-callback","136":"/en-US/guide/instance-api.html#getdatalist","137":"/en-US/guide/instance-api.html#cleardata","138":"/en-US/guide/instance-api.html#loadmore-cb","139":"/en-US/guide/instance-api.html#createindicator-value-isstack-paneoptions-callback","140":"/en-US/guide/instance-api.html#overrideindicator-override-paneid-callback","141":"/en-US/guide/instance-api.html#getindicatorbypaneid-paneid-name","142":"/en-US/guide/instance-api.html#removeindicator-paneid-name","143":"/en-US/guide/instance-api.html#createoverlay-value-paneid","144":"/en-US/guide/instance-api.html#getoverlaybyid-id","145":"/en-US/guide/instance-api.html#overrideoverlay-override","146":"/en-US/guide/instance-api.html#removeoverlay-remove","147":"/en-US/guide/instance-api.html#scrollbydistance-distance-animationduration","148":"/en-US/guide/instance-api.html#scrolltorealtime-animationduration","149":"/en-US/guide/instance-api.html#scrolltodataindex-dataindex-animationduration","150":"/en-US/guide/instance-api.html#scrolltotimestamp-timestamp-animationduration","151":"/en-US/guide/instance-api.html#zoomatcoordinate-scale-coordinate-animationduration","152":"/en-US/guide/instance-api.html#zoomatdataindex-scale-dataindex-animationduration","153":"/en-US/guide/instance-api.html#zoomattimestamp-scale-timestamp-animationduration","154":"/en-US/guide/instance-api.html#setpaneoptions-options","155":"/en-US/guide/instance-api.html#executeaction-type-data","156":"/en-US/guide/instance-api.html#subscribeaction-type-callback","157":"/en-US/guide/instance-api.html#unsubscribeaction-type-callback","158":"/en-US/guide/instance-api.html#converttopixel-value-finder","159":"/en-US/guide/instance-api.html#convertfrompixel-coordinate-finder","160":"/en-US/guide/instance-api.html#getconvertpictureurl-includeoverlay-type-backgroundcolor","161":"/en-US/guide/instance-api.html#resize","162":"/en-US/guide/overlay.html#overlay","163":"/en-US/guide/overlay.html#built-in-overlay-types","164":"/en-US/guide/overlay.html#custom-overlays","165":"/en-US/guide/overlay.html#attribute-description","166":"/en-US/guide/overlay.html#example","167":"/en-US/guide/styles.html#🎨-style","168":"/en-US/guide/styles.html#picture-explanation","169":"/en-US/guide/styles.html#default-full-configuration","170":"/en-US/guide/v8-to-v9.html#🛠️-from-v8-to-v9","171":"/en-US/guide/v8-to-v9.html#import-adjustment","172":"/en-US/guide/v8-to-v9.html#design-adjustment","173":"/en-US/guide/v8-to-v9.html#style-configuration-adjustment","174":"/en-US/guide/v8-to-v9.html#api-adjustment","175":"/en-US/guide/v8-to-v9.html#chart-api","176":"/en-US/guide/v8-to-v9.html#instance-api","177":"/en-US/guide/v8-to-v9.html#shape-help-api","178":"/en-US/guide/v8-to-v9.html#customized-technical-indicator-adjustment","179":"/en-US/guide/what-is-klinechart.html#📃-introducation","180":"/en-US/guide/what-is-klinechart.html#what-s-klinechart","181":"/en-US/guide/what-is-klinechart.html#features","182":"/en-US/sponsor.html#❤️-sponsor","183":"/en-US/sponsor.html#alipay","184":"/en-US/sponsor.html#wechat-pay","185":"/en-US/sponsor.html#paypal","186":"/en-US/sponsor.html#cryptocurrency"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[3,1,1],"1":[3,3,29],"2":[3,3,48],"3":[3,3,27],"4":[3,3,40],"5":[2,3,14],"6":[3,3,19],"7":[3,3,52],"8":[3,3,52],"9":[3,3,34],"10":[2,3,17],"11":[3,3,29],"12":[3,3,10],"13":[2,3,160],"14":[2,3,11],"15":[2,3,11],"16":[2,3,11],"17":[2,3,10],"18":[2,3,10],"19":[2,1,1],"20":[4,2,98],"21":[3,2,27],"22":[4,2,29],"23":[2,2,15],"24":[2,2,13],"25":[4,2,20],"26":[3,2,37],"27":[2,2,12],"28":[3,2,10],"29":[3,2,110],"30":[2,2,11],"31":[3,2,124],"32":[2,2,10],"33":[2,2,12],"34":[1,2,6],"35":[4,3,8],"36":[5,3,12],"37":[4,3,12],"38":[4,3,12],"39":[4,3,12],"40":[4,3,13],"41":[4,3,12],"42":[4,3,12],"43":[6,3,28],"44":[4,3,10],"45":[4,3,19],"46":[6,3,21],"47":[5,3,12],"48":[7,3,13],"49":[5,3,29],"50":[6,3,25],"51":[5,3,26],"52":[5,3,32],"53":[5,3,26],"54":[5,3,21],"55":[5,3,20],"56":[5,3,25],"57":[6,3,50],"58":[6,3,41],"59":[6,3,42],"60":[6,3,32],"61":[6,3,38],"62":[6,3,45],"63":[6,3,70],"64":[6,3,20],"65":[2,1,56],"66":[2,1,1],"67":[2,2,26],"68":[1,2,1],"69":[2,1,1],"70":[12,2,13],"71":[11,2,15],"72":[8,2,11],"73":[15,2,12],"74":[15,2,9],"75":[11,2,21],"76":[2,1,1],"77":[1,2,10],"78":[1,2,5],"79":[1,2,5],"80":[3,2,12],"81":[3,2,1],"82":[1,1,49],"83":[3,1,39],"84":[3,1,15],"85":[1,4,41],"86":[1,4,45],"87":[1,4,44],"88":[1,4,49],"89":[1,4,74],"90":[1,4,16],"91":[2,1,27],"92":[2,3,44],"93":[1,3,14],"94":[2,4,46],"95":[2,4,63],"96":[3,1,1],"97":[2,3,20],"98":[2,5,6],"99":[2,5,5],"100":[3,5,32],"101":[4,3,1],"102":[13,7,95],"103":[11,7,131],"104":[3,1,17],"105":[2,1,28],"106":[3,2,37],"107":[3,2,18],"108":[2,1,16],"109":[4,2,50],"110":[3,2,27],"111":[2,4,226],"112":[2,6,55],"113":[2,6,105],"114":[2,1,1],"115":[4,2,24],"116":[4,2,30],"117":[3,2,32],"118":[2,2,15],"119":[4,2,24],"120":[3,2,30],"121":[2,2,11],"122":[3,2,11],"123":[2,2,10],"124":[3,2,14],"125":[2,2,11],"126":[3,2,18],"127":[2,2,16],"128":[3,2,15],"129":[3,2,15],"130":[3,2,15],"131":[2,2,14],"132":[2,2,12],"133":[5,2,55],"134":[5,2,45],"135":[4,2,44],"136":[2,2,27],"137":[2,2,30],"138":[3,2,23],"139":[6,2,140],"140":[5,2,156],"141":[4,2,39],"142":[4,2,34],"143":[4,2,106],"144":[3,2,18],"145":[3,2,146],"146":[3,2,23],"147":[4,2,18],"148":[3,2,19],"149":[4,2,23],"150":[4,2,19],"151":[5,2,33],"152":[5,2,27],"153":[5,2,22],"154":[3,2,63],"155":[4,2,18],"156":[4,2,28],"157":[4,2,36],"158":[4,2,53],"159":[4,2,41],"160":[5,2,40],"161":[2,2,31],"162":[1,1,15],"163":[4,1,16],"164":[2,1,19],"165":[2,3,260],"166":[1,3,86],"167":[2,1,26],"168":[2,2,1],"169":[3,2,218],"170":[5,1,23],"171":[2,5,15],"172":[2,5,13],"173":[3,5,46],"174":[2,5,1],"175":[2,7,14],"176":[2,7,89],"177":[3,7,8],"178":[4,5,55],"179":[2,1,1],"180":[4,2,11],"181":[1,2,67],"182":[2,1,26],"183":[1,2,1],"184":[2,2,1],"185":[1,2,2],"186":[1,2,11]},"averageFieldLength":[3.4545454545454546,2.572192513368984,33.12299465240642],"storedFields":{"0":{"title":"📠 Change Log","titles":[]},"1":{"title":"9.5.1","titles":["📠 Change Log"]},"2":{"title":"9.5.0","titles":["📠 Change Log"]},"3":{"title":"9.4.0","titles":["📠 Change Log"]},"4":{"title":"9.3.0","titles":["📠 Change Log"]},"5":{"title":"9.2.2","titles":["📠 Change Log"]},"6":{"title":"9.2.1","titles":["📠 Change Log"]},"7":{"title":"9.2.0","titles":["📠 Change Log"]},"8":{"title":"9.1.3","titles":["📠 Change Log"]},"9":{"title":"9.1.2","titles":["📠 Change Log"]},"10":{"title":"9.1.1","titles":["📠 Change Log"]},"11":{"title":"9.1.0","titles":["📠 Change Log"]},"12":{"title":"9.0.1","titles":["📠 Change Log"]},"13":{"title":"9.0.0","titles":["📠 Change Log"]},"14":{"title":"8.x","titles":["📠 Change Log"]},"15":{"title":"7.x","titles":["📠 Change Log"]},"16":{"title":"6.x","titles":["📠 Change Log"]},"17":{"title":"5.x","titles":["📠 Change Log"]},"18":{"title":"4.x","titles":["📠 Change Log"]},"19":{"title":"Chart API","titles":[]},"20":{"title":"init(ds, options)","titles":["Chart API"]},"21":{"title":"dispose(dcs)","titles":["Chart API"]},"22":{"title":"registerLocale(locale, locales)","titles":["Chart API"]},"23":{"title":"getOverlayClass()","titles":["Chart API"]},"24":{"title":"getSupportedLocales()","titles":["Chart API"]},"25":{"title":"registerStyles(name, styles)","titles":["Chart API"]},"26":{"title":"registerFigure(figure)","titles":["Chart API"]},"27":{"title":"getSupportedFigures()","titles":["Chart API"]},"28":{"title":"getFigureClass(name)","titles":["Chart API"]},"29":{"title":"registerIndicator(indicator)","titles":["Chart API"]},"30":{"title":"getSupportedIndicators()","titles":["Chart API"]},"31":{"title":"registerOverlay(overlay)","titles":["Chart API"]},"32":{"title":"getSupportedOverlays()","titles":["Chart API"]},"33":{"title":"version()","titles":["Chart API"]},"34":{"title":"utils","titles":["Chart API"]},"35":{"title":"utils.clone(target)","titles":["Chart API","utils"]},"36":{"title":"utils.merge(target, source)","titles":["Chart API","utils"]},"37":{"title":"utils.isString(value)","titles":["Chart API","utils"]},"38":{"title":"utils.isNumber(value)","titles":["Chart API","utils"]},"39":{"title":"utils.isValid(value)","titles":["Chart API","utils"]},"40":{"title":"utils.isObject(value)","titles":["Chart API","utils"]},"41":{"title":"utils.isFunction(value)","titles":["Chart API","utils"]},"42":{"title":"utils.isBoolean(value)","titles":["Chart API","utils"]},"43":{"title":"utils.formatValue(value, key, defaultValue)","titles":["Chart API","utils"]},"44":{"title":"utils.formatPrecision(value)","titles":["Chart API","utils"]},"45":{"title":"utils.formatBigNumber(value)","titles":["Chart API","utils"]},"46":{"title":"utils.formatDate(dateTimeFormat, timestamp, format)","titles":["Chart API","utils"]},"47":{"title":"utils.formatThousands(value, sign)","titles":["Chart API","utils"]},"48":{"title":"utils.calcTextWidth(text, size, weight, family)","titles":["Chart API","utils"]},"49":{"title":"utils.getLinearSlopeIntercept(coordinate1, coordinate2)","titles":["Chart API","utils"]},"50":{"title":"utils.getLinearYFromCoordinates(coordinate1, coordinate2, targetCoordinate)","titles":["Chart API","utils"]},"51":{"title":"utils.getLinearYFromSlopeIntercept(kb, targetCoordinate)","titles":["Chart API","utils"]},"52":{"title":"utils.checkCoordinateOnArc(coordinate, arc)","titles":["Chart API","utils"]},"53":{"title":"utils.checkCoordinateOnCircle(coordinate, circle)","titles":["Chart API","utils"]},"54":{"title":"utils.checkCoordinateOnLine(coordinate, line)","titles":["Chart API","utils"]},"55":{"title":"utils.checkCoordinateOnPolygon(coordinate, polygon)","titles":["Chart API","utils"]},"56":{"title":"utils.checkCoordinateOnRect(coordinate, rect)","titles":["Chart API","utils"]},"57":{"title":"utils.checkCoordinateOnText(coordinate, text, styles)","titles":["Chart API","utils"]},"58":{"title":"utils.drawArc(ctx, arc, styles)","titles":["Chart API","utils"]},"59":{"title":"utils.drawCircle(ctx, circle, styles)","titles":["Chart API","utils"]},"60":{"title":"utils.drawLine(ctx, line, styles)","titles":["Chart API","utils"]},"61":{"title":"utils.drawPolygon(ctx, polygon, styles)","titles":["Chart API","utils"]},"62":{"title":"utils.drawRect(ctx, rect, styles)","titles":["Chart API","utils"]},"63":{"title":"utils.drawRectText(ctx, rectText, styles)","titles":["Chart API","utils"]},"64":{"title":"utils.drawRectText(ctx, rectText, styles)","titles":["Chart API","utils"]},"65":{"title":"📚 Data","titles":[]},"66":{"title":"🏝️ Environment","titles":[]},"67":{"title":"Browser support","titles":["🏝️ Environment"]},"68":{"title":"Polyfill","titles":["🏝️ Environment"]},"69":{"title":"🙋 FAQ","titles":[]},"70":{"title":"After the chart is initialized, only one line can be seen?","titles":["🙋 FAQ"]},"71":{"title":"The candle shows a line, no fluctuation, what to do?","titles":["🙋 FAQ"]},"72":{"title":"How to create a real-time chart?","titles":["🙋 FAQ"]},"73":{"title":"Built-in technical indicators, calculated data is not what you want, how to do?","titles":["🙋 FAQ"]},"74":{"title":"What if I want to create an indicator other than the built-in technical indicator?","titles":["🙋 FAQ"]},"75":{"title":"Want to mark the point of sale, how should do?","titles":["🙋 FAQ"]},"76":{"title":"💬 Feedback","titles":[]},"77":{"title":"Github","titles":["💬 Feedback"]},"78":{"title":"Telegram","titles":["💬 Feedback"]},"79":{"title":"Discord","titles":["💬 Feedback"]},"80":{"title":"Wechat discussion group","titles":["💬 Feedback"]},"81":{"title":"QQ discussion group","titles":["💬 Feedback"]},"82":{"title":"Figure","titles":[]},"83":{"title":"Example of use","titles":["Figure"]},"84":{"title":"Built-in figures","titles":["Figure"]},"85":{"title":"arc","titles":["Figure","Built-in figures"]},"86":{"title":"circle","titles":["Figure","Built-in figures"]},"87":{"title":"line","titles":["Figure","Built-in figures"]},"88":{"title":"rect","titles":["Figure","Built-in figures"]},"89":{"title":"text","titles":["Figure","Built-in figures"]},"90":{"title":"rectText","titles":["Figure","Built-in figures"]},"91":{"title":"Customize figure","titles":["Figure"]},"92":{"title":"Attribute description","titles":["Figure","Customize figure"]},"93":{"title":"Example","titles":["Figure","Customize figure"]},"94":{"title":"Step.1","titles":["Figure","Customize figure","Example"]},"95":{"title":"Step.2","titles":["Figure","Customize figure","Example"]},"96":{"title":"🚀 Getting started","titles":[]},"97":{"title":"Get KLineChart","titles":["🚀 Getting started"]},"98":{"title":"Using npm","titles":["🚀 Getting started","Get KLineChart"]},"99":{"title":"use yarn","titles":["🚀 Getting started","Get KLineChart"]},"100":{"title":"Using a CDN","titles":["🚀 Getting started","Get KLineChart"]},"101":{"title":"Create the first chart","titles":["🚀 Getting started"]},"102":{"title":"Created in the project of package management tools such as npm or yarn","titles":["🚀 Getting started","Create the first chart"]},"103":{"title":"Create in a project that is imported directly through a script tag","titles":["🚀 Getting started","Create the first chart"]},"104":{"title":"⌨️ Hot Key","titles":[]},"105":{"title":"🌏 Internationalization","titles":[]},"106":{"title":"Adding new language","titles":["🌏 Internationalization"]},"107":{"title":"Use new language","titles":["🌏 Internationalization"]},"108":{"title":"Technical indicator","titles":[]},"109":{"title":"Built-in technical indicators","titles":["Technical indicator"]},"110":{"title":"Custom Technical Indicators","titles":["Technical indicator"]},"111":{"title":"Attribute description","titles":["Technical indicator","Custom Technical Indicators"]},"112":{"title":"Step.1","titles":["Technical indicator","Custom Technical Indicators","Attribute description"]},"113":{"title":"Step.2","titles":["Technical indicator","Custom Technical Indicators","Attribute description"]},"114":{"title":"Instance API","titles":[]},"115":{"title":"getDom(paneId, position)","titles":["Instance API"]},"116":{"title":"getSize(paneId, position)","titles":["Instance API"]},"117":{"title":"setStyles(styles)","titles":["Instance API"]},"118":{"title":"getStyles()","titles":["Instance API"]},"119":{"title":"setPriceVolumePrecision(pricePrecision, volumePrecision)","titles":["Instance API"]},"120":{"title":"setTimezone(timezone)","titles":["Instance API"]},"121":{"title":"getTimezone()","titles":["Instance API"]},"122":{"title":"setZoomEnabled(enabled)","titles":["Instance API"]},"123":{"title":"isZoomEnabled()","titles":["Instance API"]},"124":{"title":"setScrollEnabled(enabled)","titles":["Instance API"]},"125":{"title":"isScrollEnabled()","titles":["Instance API"]},"126":{"title":"setOffsetRightDistance(distance)","titles":["Instance API"]},"127":{"title":"getOffsetRightDistance()","titles":["Instance API"]},"128":{"title":"setLeftMinVisibleBarCount(barCount)","titles":["Instance API"]},"129":{"title":"setRightMinVisibleBarCount(barCount)","titles":["Instance API"]},"130":{"title":"setBarSpace(space)","titles":["Instance API"]},"131":{"title":"getBarSpace()","titles":["Instance API"]},"132":{"title":"getVisibleRange()","titles":["Instance API"]},"133":{"title":"applyNewData(dataList, more, callback)","titles":["Instance API"]},"134":{"title":"applyMoreData(dataList, more, callback)","titles":["Instance API"]},"135":{"title":"updateData(data, callback)","titles":["Instance API"]},"136":{"title":"getDataList()","titles":["Instance API"]},"137":{"title":"clearData()","titles":["Instance API"]},"138":{"title":"loadMore(cb)","titles":["Instance API"]},"139":{"title":"createIndicator(value, isStack, paneOptions, callback)","titles":["Instance API"]},"140":{"title":"overrideIndicator(override, paneId, callback)","titles":["Instance API"]},"141":{"title":"getIndicatorByPaneId(paneId, name)","titles":["Instance API"]},"142":{"title":"removeIndicator(paneId, name)","titles":["Instance API"]},"143":{"title":"createOverlay(value, paneId)","titles":["Instance API"]},"144":{"title":"getOverlayById(id)","titles":["Instance API"]},"145":{"title":"overrideOverlay(override)","titles":["Instance API"]},"146":{"title":"removeOverlay(remove)","titles":["Instance API"]},"147":{"title":"scrollByDistance(distance, animationDuration)","titles":["Instance API"]},"148":{"title":"scrollToRealTime(animationDuration)","titles":["Instance API"]},"149":{"title":"scrollToDataIndex(dataIndex, animationDuration)","titles":["Instance API"]},"150":{"title":"scrollToTimestamp(timestamp, animationDuration)","titles":["Instance API"]},"151":{"title":"zoomAtCoordinate(scale, coordinate, animationDuration)","titles":["Instance API"]},"152":{"title":"zoomAtDataIndex(scale, dataIndex, animationDuration)","titles":["Instance API"]},"153":{"title":"zoomAtTimestamp(scale, timestamp, animationDuration)","titles":["Instance API"]},"154":{"title":"setPaneOptions(options)","titles":["Instance API"]},"155":{"title":"executeAction(type, data)","titles":["Instance API"]},"156":{"title":"subscribeAction(type, callback)","titles":["Instance API"]},"157":{"title":"unsubscribeAction(type, callback)","titles":["Instance API"]},"158":{"title":"convertToPixel(value, finder)","titles":["Instance API"]},"159":{"title":"convertFromPixel(coordinate, finder)","titles":["Instance API"]},"160":{"title":"getConvertPictureUrl(includeOverlay, type, backgroundColor)","titles":["Instance API"]},"161":{"title":"resize()","titles":["Instance API"]},"162":{"title":"Overlay","titles":[]},"163":{"title":"Built-in overlay types","titles":["Overlay"]},"164":{"title":"Custom overlays","titles":["Overlay"]},"165":{"title":"Attribute description","titles":["Overlay","Custom overlays"]},"166":{"title":"Example","titles":["Overlay","Custom overlays"]},"167":{"title":"🎨 Style","titles":[]},"168":{"title":"Picture explanation","titles":["🎨 Style"]},"169":{"title":"Default full configuration","titles":["🎨 Style"]},"170":{"title":"🛠️ From V8 to V9","titles":[]},"171":{"title":"Import adjustment","titles":["🛠️ From V8 to V9"]},"172":{"title":"Design adjustment","titles":["🛠️ From V8 to V9"]},"173":{"title":"Style configuration adjustment","titles":["🛠️ From V8 to V9"]},"174":{"title":"API adjustment","titles":["🛠️ From V8 to V9"]},"175":{"title":"Chart API","titles":["🛠️ From V8 to V9","API adjustment"]},"176":{"title":"Instance API","titles":["🛠️ From V8 to V9","API adjustment"]},"177":{"title":"Shape help API","titles":["🛠️ From V8 to V9","API adjustment"]},"178":{"title":"Customized technical indicator adjustment","titles":["🛠️ From V8 to V9"]},"179":{"title":"📃 Introducation","titles":[]},"180":{"title":"What\'s KLineChart?","titles":["📃 Introducation"]},"181":{"title":"Features","titles":["📃 Introducation"]},"182":{"title":"❤️ Sponsor","titles":[]},"183":{"title":"Alipay","titles":["❤️ Sponsor"]},"184":{"title":"Wechat Pay","titles":["❤️ Sponsor"]},"185":{"title":"PayPal","titles":["❤️ Sponsor"]},"186":{"title":"Cryptocurrency","titles":["❤️ Sponsor"]}},"dirtCount":0,"index":[["☕️",{"2":{"182":1}}],["❤️",{"0":{"182":1},"1":{"183":1,"184":1,"185":1,"186":1}}],["成交量",{"2":{"106":2}}],["收",{"2":{"106":2}}],["低",{"2":{"106":2}}],["高",{"2":{"106":2}}],["開",{"2":{"106":2}}],["時間",{"2":{"106":2}}],["←",{"2":{"104":1}}],["→",{"2":{"104":1}}],["⌨️",{"0":{"104":1}}],["quantity",{"2":{"165":2}}],["quick",{"2":{"103":6}}],["quot",{"2":{"100":8,"103":48}}],["quote",{"2":{"100":1}}],["qq",{"0":{"81":1}}],["`performeventmovefordrawing`",{"2":{"165":2}}],["`createpointfigures`",{"2":{"165":4}}],["`weak",{"2":{"165":2}}],["`normal`",{"2":{"165":2}}],["`ma$",{"2":{"113":4}}],["`",{"2":{"102":2,"113":4}}],["`$",{"2":{"102":2}}],["`strong",{"2":{"165":2}}],["`stroke",{"2":{"86":2,"87":2,"88":2,"89":2}}],["`stroke`",{"2":{"86":2,"87":2,"88":2,"89":2}}],["`solid`",{"2":{"85":2,"87":2}}],["`fill`",{"2":{"86":2,"87":2,"88":2,"89":2}}],["`dashed`",{"2":{"85":2,"87":2}}],["jpeg",{"2":{"160":2}}],["j",{"2":{"113":12}}],["js",{"2":{"100":2}}],["jsdelivr",{"2":{"100":4}}],["javascriptimport",{"2":{"102":1}}],["javascript",{"2":{"83":1,"95":1,"100":2,"112":1,"113":1,"165":2,"166":1,"169":1}}],["javascriptchart",{"2":{"72":1,"139":1,"140":1,"143":1,"145":1,"154":1}}],["join",{"2":{"80":1}}],["🌟",{"2":{"182":1}}],["🎨",{"0":{"167":1},"1":{"168":1,"169":1},"2":{"181":1}}],["🌏",{"0":{"105":1},"1":{"106":1,"107":1}}],["🏝️",{"0":{"66":1},"1":{"67":1,"68":1}}],["🆕",{"2":{"1":2,"2":2,"3":3,"4":3,"7":5,"11":2,"13":1}}],["+098syuqtzi0ynzll",{"2":{"78":1}}],["+",{"2":{"49":1,"95":10,"104":5,"113":4,"166":2}}],["kinecharts",{"2":{"170":1}}],["kdj",{"2":{"109":1}}],["kb",{"0":{"51":1},"2":{"51":2}}],["kx",{"2":{"49":1}}],["k",{"2":{"49":1,"111":4,"133":1,"134":1,"135":1}}],["klinechart",{"0":{"97":1,"180":1},"1":{"98":1,"99":1,"100":1},"2":{"77":2,"80":1,"97":1,"180":1}}],["klinechartsyarn",{"2":{"99":1}}],["klinecharts",{"2":{"7":2,"20":1,"82":1,"83":2,"91":1,"98":2,"99":1,"100":4,"102":2,"103":2,"106":2,"110":1,"164":1,"165":2,"170":1,"171":3,"177":1}}],["klinedatalist",{"2":{"111":4,"113":8,"178":4}}],["klinedata",{"2":{"29":2,"111":22,"113":4,"139":2,"140":2}}],["keywords",{"2":{"103":2}}],["key",{"0":{"43":1,"104":1},"2":{"29":4,"31":12,"43":2,"106":1,"107":1,"111":2,"112":4,"113":10,"139":4,"140":4,"165":4,"166":2,"169":2}}],["===",{"2":{"95":10,"166":2}}],["=",{"2":{"20":6,"21":2,"22":2,"23":2,"24":2,"25":2,"26":6,"27":2,"28":2,"29":18,"30":2,"31":40,"32":2,"33":2,"35":2,"36":2,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"43":3,"44":2,"45":2,"46":2,"47":2,"48":2,"49":3,"50":2,"51":2,"52":2,"53":2,"54":2,"55":2,"56":2,"57":2,"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"83":2,"85":2,"86":2,"87":4,"88":2,"89":2,"92":4,"95":32,"102":2,"103":4,"111":12,"113":24,"115":2,"116":2,"117":2,"118":2,"119":2,"120":2,"121":2,"122":2,"123":2,"124":2,"125":2,"126":2,"127":2,"128":2,"129":2,"130":2,"131":2,"132":2,"133":4,"134":4,"135":4,"136":2,"137":2,"138":4,"139":18,"140":24,"141":2,"142":2,"143":58,"144":2,"145":30,"146":2,"147":2,"148":2,"149":2,"150":2,"151":2,"152":2,"153":2,"154":2,"155":4,"156":4,"157":4,"158":2,"159":2,"160":2,"161":2,"165":34,"166":8}}],["||",{"2":{"95":4,"113":2}}],["|",{"2":{"20":6,"21":4,"29":10,"31":34,"44":2,"45":2,"47":2,"48":2,"57":20,"58":2,"59":8,"60":2,"61":8,"62":8,"63":26,"85":2,"86":6,"87":8,"88":6,"89":10,"111":10,"115":4,"116":4,"117":2,"138":2,"139":32,"140":28,"143":16,"145":6,"146":2,"156":12,"157":12,"158":4,"159":4,"165":18,"169":102}}],["686d76",{"2":{"169":8}}],["60",{"2":{"109":2}}],["600px",{"2":{"103":4}}],["62",{"2":{"102":2,"103":2}}],["66",{"2":{"102":4,"103":4}}],["64",{"2":{"102":2,"103":2}}],["61",{"2":{"102":4,"103":4}}],["6",{"0":{"16":1},"2":{"16":1,"109":9,"169":10}}],["76808f",{"2":{"169":4}}],["76",{"2":{"102":2,"103":2}}],["72",{"2":{"102":2,"103":2}}],["70",{"2":{"102":2,"103":2}}],["74",{"2":{"102":2,"103":2}}],["77",{"2":{"102":2,"103":2}}],["7yjhygvvvz",{"2":{"79":1}}],["7",{"0":{"15":1},"2":{"15":1,"169":12,"170":1}}],["xxxxxxxx",{"2":{"143":2,"145":2}}],["xxx",{"2":{"113":4,"178":8}}],["xdis",{"2":{"95":4,"166":6}}],["x",{"0":{"14":1,"15":1,"16":1,"17":1,"18":1},"2":{"14":1,"15":1,"16":1,"17":1,"18":1,"31":2,"49":4,"50":6,"51":2,"52":6,"53":6,"54":4,"55":4,"56":6,"57":6,"58":4,"59":4,"60":2,"61":2,"62":4,"63":4,"85":4,"86":4,"87":4,"88":4,"89":4,"92":2,"94":3,"95":24,"111":6,"145":1,"151":2,"158":4,"159":4,"165":8,"166":4,"170":4}}],["xaxis",{"2":{"3":1,"13":6,"29":8,"111":12,"165":4,"169":2,"173":6,"178":4}}],["85",{"2":{"169":6}}],["888888",{"2":{"140":4,"169":28}}],["88",{"2":{"102":2,"103":2}}],["89",{"2":{"102":2,"103":2}}],["8",{"0":{"14":1},"2":{"14":1,"103":2,"143":2,"145":2,"169":12,"170":2}}],["historical",{"2":{"133":1,"134":2}}],["hint",{"2":{"111":2}}],["highly",{"2":{"180":1,"181":1}}],["highest",{"2":{"65":2}}],["high",{"2":{"22":2,"65":2,"88":2,"102":20,"103":20,"106":2,"111":4,"133":2,"134":2,"135":2,"136":2,"165":2,"169":2}}],["hk",{"2":{"106":2}}],["https",{"2":{"77":2,"78":1,"79":1,"100":2,"165":2}}],["htmlid",{"2":{"176":1}}],["html",{"2":{"103":7,"176":1}}],["html5",{"2":{"67":1}}],["htmlelement",{"2":{"20":2,"21":2,"115":2,"117":2}}],["hope",{"2":{"182":1}}],["hoped",{"2":{"113":2}}],["hold",{"2":{"165":6}}],["hot",{"0":{"104":1}}],["how",{"0":{"72":1,"73":1,"75":1},"2":{"82":1,"108":1,"162":1,"165":2,"166":1}}],["horizontalstraightline",{"2":{"163":1}}],["horizontalsegment",{"2":{"163":1}}],["horizontalrayline",{"2":{"163":1}}],["horizontal",{"2":{"13":1,"57":1,"63":1,"169":4}}],["hh",{"2":{"46":1}}],["help",{"0":{"177":1},"2":{"170":1}}],["helper",{"2":{"34":1}}],["helvetica",{"2":{"169":24}}],["here",{"2":{"113":4,"137":1}}],["head",{"2":{"103":4}}],["height",{"2":{"13":2,"56":4,"62":4,"63":4,"70":1,"88":2,"89":4,"94":3,"95":16,"103":2,"111":4,"116":2,"139":8,"154":8,"165":2,"173":2}}],["halfgapbar",{"2":{"111":2,"165":2}}],["halfbar",{"2":{"111":2,"165":2}}],["handle",{"2":{"165":4,"181":1}}],["handling",{"2":{"11":1,"31":1}}],["hanging",{"2":{"57":2,"63":2}}],["has",{"2":{"13":1,"70":1,"75":1,"94":2,"105":1,"111":2,"166":2}}],["have",{"2":{"4":1,"22":1,"93":1,"145":1}}],["zero",{"2":{"181":2}}],["zone",{"2":{"20":2,"120":4,"121":1}}],["zoomattimestamp",{"0":{"153":1}}],["zoomatdataindex",{"0":{"152":1}}],["zoomatcoordinate",{"0":{"151":1}}],["zooming",{"2":{"104":1}}],["zoom",{"2":{"13":1,"104":2,"139":1,"151":1,"154":1}}],["zh",{"2":{"20":1,"22":1,"105":1,"106":2}}],["zlevel",{"2":{"3":1,"31":3,"143":6,"145":5,"165":2}}],["yarn",{"0":{"99":1,"102":1},"2":{"97":1}}],["yaxis",{"2":{"13":6,"29":8,"111":12,"115":3,"116":3,"165":4,"169":2,"173":6,"176":1,"178":4}}],["ydis",{"2":{"95":4,"166":6}}],["your",{"2":{"103":1}}],["you",{"0":{"73":1},"2":{"65":4,"73":1,"82":1,"91":1,"94":1,"97":1,"100":1,"105":2,"106":1,"107":1,"110":1,"111":8,"165":8,"167":2,"170":2,"181":1,"182":3}}],["yyyy",{"2":{"46":1}}],["y",{"2":{"8":1,"13":1,"31":2,"49":5,"50":7,"51":3,"52":6,"53":6,"54":4,"55":4,"56":6,"57":6,"58":4,"59":4,"60":2,"61":2,"62":4,"63":4,"85":4,"86":4,"87":4,"88":4,"89":4,"92":2,"94":3,"95":24,"111":4,"145":1,"151":2,"158":6,"159":5,"165":12,"166":4}}],["would",{"2":{"182":1}}],["works",{"2":{"158":1,"159":1}}],["wr",{"2":{"109":1}}],["want",{"0":{"73":1,"74":1,"75":1},"2":{"169":2}}],["while",{"2":{"119":1}}],["which",{"2":{"75":1,"111":2,"117":1,"139":1,"165":14,"166":2}}],["what",{"0":{"71":1,"73":1,"74":1,"180":1}}],["where",{"2":{"111":2,"165":2}}],["whether",{"2":{"52":1,"53":1,"55":1,"56":1,"92":2,"122":1,"123":1,"124":1,"125":1,"133":1,"134":1,"139":1,"154":1,"165":4,"167":1}}],["when",{"2":{"8":2,"31":1,"83":1,"111":2,"113":4,"117":1,"139":1,"141":1,"142":1,"143":1,"145":1,"157":1,"165":2,"169":2}}],["web",{"2":{"165":2}}],["webview",{"2":{"67":1}}],["we",{"2":{"94":1}}],["wechat",{"0":{"80":1,"184":1}}],["weight",{"0":{"48":1},"2":{"48":2,"57":4,"63":4,"89":2,"169":20}}],["weak",{"2":{"31":4,"143":6,"145":6,"165":6}}],["well",{"2":{"8":1}}],["window",{"2":{"103":2,"111":6,"115":1,"116":1,"139":8,"140":2,"141":4,"142":3,"143":2,"154":7,"158":1,"159":1,"165":2}}],["with",{"2":{"65":3,"75":1,"93":1,"111":6,"113":6,"139":1,"143":1,"161":1,"165":8,"181":1}}],["will",{"2":{"20":1,"21":1,"64":1,"90":1,"111":10,"119":1,"120":1,"133":1,"135":3,"137":1,"141":1,"142":1,"145":1,"158":1,"161":2,"165":2,"170":1}}],["width=device",{"2":{"103":2}}],["width",{"2":{"4":1,"48":1,"56":4,"62":4,"63":4,"88":4,"89":4,"94":3,"95":16,"103":4,"111":8,"116":2,"130":1,"131":1,"165":4}}],["v9",{"0":{"170":1},"1":{"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1}}],["v8",{"0":{"170":1},"1":{"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1}}],["vr",{"2":{"109":1}}],["var",{"2":{"103":2}}],["valid",{"2":{"31":1,"39":1,"145":1,"165":2}}],["values",{"2":{"29":2,"111":4,"139":2,"140":2,"158":1,"159":1,"165":6,"173":1,"178":1}}],["value",{"0":{"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"47":1,"139":1,"143":1,"158":1},"2":{"4":1,"20":2,"29":4,"31":2,"37":3,"38":3,"39":3,"40":3,"41":3,"42":4,"43":3,"44":2,"45":2,"47":2,"50":1,"51":1,"52":2,"53":2,"56":2,"57":2,"58":3,"59":3,"60":1,"61":1,"62":3,"63":3,"85":4,"86":4,"88":6,"89":6,"92":2,"94":3,"111":16,"112":4,"113":8,"139":8,"140":4,"143":11,"145":6,"154":2,"158":10,"159":4,"165":10,"169":16,"176":5,"178":3}}],["v10",{"2":{"64":1,"90":1}}],["very",{"2":{"139":1,"182":1}}],["version",{"0":{"33":1},"2":{"33":1}}],["verticalstraightline",{"2":{"163":1}}],["verticalsegment",{"2":{"163":1}}],["verticalrayline",{"2":{"163":1}}],["vertical",{"2":{"13":1,"57":1,"63":1,"169":4}}],["vol",{"2":{"109":1}}],["volumeprecision",{"0":{"119":1},"2":{"71":1,"119":3}}],["volume",{"2":{"22":2,"29":3,"65":4,"102":20,"103":20,"106":2,"111":2,"119":3,"133":2,"134":2,"135":2,"136":2,"139":2,"140":3,"165":2}}],["void",{"2":{"21":2,"22":2,"25":2,"26":4,"29":2,"31":6,"36":2,"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"92":2,"119":2,"120":2,"122":2,"124":2,"126":2,"128":2,"129":2,"130":2,"133":4,"134":4,"135":4,"137":2,"138":4,"139":2,"140":4,"146":2,"147":2,"148":2,"149":2,"150":2,"151":2,"152":2,"153":2,"154":2,"155":4,"156":4,"157":4,"161":2,"165":4}}],["via",{"2":{"167":1}}],["visible",{"2":{"29":4,"31":4,"111":8,"128":1,"129":1,"132":1,"139":2,"140":6,"143":6,"145":6,"165":4}}],["visiblerange",{"2":{"7":1,"111":4,"178":2}}],["viewport",{"2":{"103":2,"178":2}}],["view",{"2":{"17":1,"18":1}}],["n",{"2":{"169":4}}],["npm",{"0":{"98":1,"102":1},"2":{"97":1,"100":2}}],["neue",{"2":{"169":24}}],["necessary",{"2":{"137":1,"165":10}}],["next",{"2":{"111":4}}],["net",{"2":{"100":2}}],["nesting",{"2":{"43":1}}],["needed",{"2":{"165":2}}],["need",{"2":{"65":4,"82":1,"91":1,"105":1,"110":1,"111":8,"133":1,"140":1,"145":1,"165":8}}],["needdefaultyaxisfigure",{"2":{"31":3,"143":6,"145":5,"165":2}}],["needdefaultxaxisfigure",{"2":{"31":3,"143":6,"145":5,"165":2}}],["needdefaultpointfigure",{"2":{"31":3,"143":6,"145":5,"165":2}}],["needs",{"2":{"29":1,"31":3,"67":2,"83":1,"112":1,"113":6,"140":1,"145":3,"159":1,"160":1,"165":2,"169":2}}],["new",{"0":{"106":1,"107":1},"2":{"13":4,"83":2,"106":1,"107":1,"133":1}}],["null",{"2":{"111":8,"138":2,"139":4,"140":6,"143":2,"145":2,"169":2}}],["nullable",{"2":{"23":2}}],["numbers",{"2":{"20":1,"29":1,"45":1,"140":1}}],["number",{"2":{"20":6,"29":10,"31":12,"33":1,"38":1,"44":4,"45":2,"46":2,"47":2,"48":6,"49":8,"50":14,"51":8,"52":14,"53":10,"54":8,"55":8,"56":12,"57":12,"58":14,"59":10,"60":8,"61":8,"62":14,"63":26,"65":14,"85":14,"86":10,"87":16,"88":14,"89":26,"92":4,"111":58,"113":4,"116":12,"119":4,"126":2,"127":2,"128":3,"129":3,"130":2,"131":2,"132":8,"133":14,"134":14,"135":14,"136":14,"138":2,"139":18,"140":10,"143":20,"145":10,"147":4,"148":4,"149":4,"150":4,"151":8,"152":6,"153":6,"154":8,"158":20,"159":20,"165":48}}],["name=",{"2":{"103":8}}],["namely",{"2":{"49":1,"112":4}}],["name",{"0":{"25":1,"28":1,"141":1,"142":1},"2":{"20":2,"22":1,"23":3,"25":4,"26":4,"28":4,"29":7,"31":4,"75":1,"82":1,"83":6,"92":4,"95":2,"109":3,"111":14,"113":2,"117":1,"120":1,"121":1,"139":5,"140":9,"141":4,"142":4,"143":7,"145":6,"146":4,"165":4,"166":4,"176":5,"178":1}}],["naming",{"2":{"2":1}}],["none",{"2":{"109":2,"169":4}}],["non",{"2":{"65":2}}],["normal",{"2":{"29":3,"31":3,"111":4,"139":2,"140":3,"143":4,"145":3,"165":4,"169":28}}],["no",{"0":{"71":1},"2":{"8":1,"13":1,"21":1,"111":2,"113":2,"133":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"165":2,"171":1}}],["note",{"2":{"80":1,"83":1,"113":2,"161":1}}],["notes",{"2":{"17":1,"18":1}}],["not",{"0":{"73":1},"2":{"8":2,"20":1,"29":1,"31":1,"111":6,"113":2,"120":1,"137":2,"140":1,"145":1,"165":28}}],["nochangecolor",{"2":{"140":4,"169":10}}],["nochangewickcolor",{"2":{"7":1,"169":2}}],["nochangebordercolor",{"2":{"7":1,"169":2}}],["erc20",{"2":{"186":1}}],["error",{"2":{"5":1}}],["eth",{"2":{"186":1}}],["etc",{"2":{"20":1,"29":1,"45":1,"83":2,"140":1}}],["e11d74",{"2":{"169":2}}],["ededed",{"2":{"169":4}}],["each",{"2":{"113":4,"161":1}}],["else",{"2":{"95":2}}],["elements",{"2":{"82":1}}],["element",{"2":{"20":2,"21":2}}],["ema",{"2":{"109":1}}],["emv",{"2":{"65":2,"109":1}}],["empty",{"2":{"8":1}}],["explanation",{"0":{"168":1}}],["exist",{"2":{"158":1}}],["exists",{"2":{"145":1}}],["execution",{"2":{"155":1}}],["execute",{"2":{"155":1}}],["executeaction",{"0":{"155":1},"2":{"7":1}}],["example",{"0":{"83":1,"93":1,"166":1},"1":{"94":1,"95":1},"2":{"29":1,"106":1,"111":10,"139":1,"140":2,"143":1,"145":1,"154":1,"169":2}}],["extended",{"2":{"29":1,"31":1,"111":2,"140":1,"145":1,"165":2,"181":1}}],["extenddata",{"2":{"29":3,"31":3,"111":2,"139":2,"140":5,"143":6,"145":5,"165":2}}],["extension",{"2":{"13":4,"165":2,"175":2}}],["enabled",{"0":{"122":1,"124":1},"2":{"122":2,"124":2}}],["entire",{"2":{"115":1,"116":1,"161":1}}],["enter",{"2":{"31":1,"145":1}}],["en",{"2":{"20":1,"22":1,"103":2,"105":2,"165":2}}],["endpoint",{"2":{"111":2}}],["endangle",{"2":{"52":3,"58":3,"85":2}}],["end",{"2":{"11":1,"31":2,"52":1,"57":2,"58":1,"63":2,"85":2,"111":4,"145":2,"165":4}}],["environment",{"0":{"66":1},"1":{"67":1,"68":1},"2":{"7":1}}],["ef5350",{"2":{"6":1,"140":4}}],["events",{"2":{"2":1,"9":3,"165":2}}],["event",{"2":{"1":2,"2":1,"5":1,"8":1,"9":1,"11":1,"26":1,"31":44,"92":4,"143":112,"145":98,"165":62}}],["bc1qnwzukszzk5xfk0zs3sr8etzgctgnrtqts43jzp3khe6gm7xazprsp4y6n3",{"2":{"186":1}}],["btc",{"2":{"186":1}}],["blank",{"2":{"171":1}}],["bmp",{"2":{"160":1}}],["bbi",{"2":{"109":1}}],["brar",{"2":{"109":1}}],["browser",{"0":{"67":1},"2":{"67":1}}],["bias",{"2":{"109":1}}],["big",{"2":{"20":1}}],["b",{"2":{"43":2,"49":2}}],["box",{"2":{"181":1}}],["boll",{"2":{"109":1,"140":4}}],["body",{"2":{"103":4}}],["bordered",{"2":{"166":1}}],["borderradius",{"2":{"62":3,"63":3,"88":2,"89":2,"169":14}}],["border",{"2":{"59":4,"61":4,"62":5,"63":5,"86":6,"87":6,"88":8,"89":8,"93":1,"94":5,"95":2,"166":2}}],["borderdashedvalue",{"2":{"59":3,"61":3,"62":3,"63":3,"86":2,"87":2,"88":2,"89":2,"95":4,"140":4,"169":20}}],["bordersize",{"2":{"59":3,"61":3,"62":3,"63":3,"86":2,"87":2,"88":2,"89":2,"94":2,"95":4,"140":4,"169":24}}],["borderstyle",{"2":{"13":4,"59":3,"61":3,"62":3,"63":3,"86":2,"87":2,"88":2,"89":2,"94":2,"95":4,"140":4,"169":20}}],["bordercolor",{"2":{"59":3,"61":3,"62":3,"63":3,"86":2,"87":2,"88":2,"89":2,"94":2,"95":4,"169":16}}],["bottom",{"2":{"57":2,"63":3,"89":2,"111":8,"116":2,"139":6,"154":6,"165":4}}],["bool",{"2":{"42":1}}],["boolean",{"2":{"26":2,"29":8,"31":50,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"52":2,"53":2,"54":2,"55":2,"56":2,"57":2,"92":4,"111":8,"122":2,"123":2,"124":2,"125":2,"133":2,"134":2,"139":14,"140":8,"143":76,"145":38,"154":4,"158":2,"159":2,"160":2,"165":44}}],["bounding",{"2":{"29":8,"111":8,"165":2,"178":2}}],["best",{"2":{"113":2}}],["between",{"2":{"111":2,"165":2}}],["beginpath",{"2":{"95":6}}],["benchmark",{"2":{"89":2}}],["be",{"0":{"70":1},"2":{"20":3,"21":2,"64":1,"65":1,"75":2,"82":1,"83":1,"90":1,"111":12,"113":8,"117":1,"119":1,"123":1,"126":1,"127":1,"133":1,"134":1,"135":3,"137":1,"139":6,"140":1,"141":2,"143":1,"145":2,"147":1,"148":1,"149":1,"150":1,"151":2,"152":1,"153":1,"154":5,"158":3,"159":2,"160":3,"165":26,"166":2,"167":1,"169":6,"181":1,"182":1}}],["been",{"2":{"13":1,"145":1}}],["background",{"2":{"63":1,"89":2,"93":1,"94":2,"160":1}}],["backgroundcolor",{"0":{"160":1},"2":{"63":3,"89":2,"160":3,"169":12}}],["bash",{"2":{"100":1}}],["bashyarn",{"2":{"99":1}}],["bashnpm",{"2":{"98":1}}],["basically",{"2":{"167":1,"181":1}}],["basic",{"2":{"26":1,"27":1,"82":1,"166":2}}],["based",{"2":{"67":1,"145":1}}],["baseline",{"2":{"57":3,"63":3,"89":2}}],["basevalue",{"2":{"29":4,"111":2,"139":4,"140":4}}],["base",{"2":{"8":1,"111":2}}],["barcount",{"0":{"128":1,"129":1},"2":{"128":2,"129":2}}],["barspace",{"2":{"29":8,"111":6,"165":2,"178":1}}],["bars",{"2":{"13":1,"140":2,"169":2,"173":1}}],["bar",{"2":{"4":1,"7":6,"13":1,"111":2,"165":2,"169":2,"173":1}}],["by",{"2":{"6":1,"23":1,"24":1,"27":1,"50":1,"51":1,"73":1,"111":4,"141":1,"144":1,"146":1,"166":2,"178":1}}],["built",{"0":{"73":1,"74":1,"84":1,"109":1,"163":1},"1":{"85":1,"86":1,"87":1,"88":1,"89":1,"90":1},"2":{"1":1,"9":2,"10":1,"20":1,"22":1,"67":1,"75":1,"82":1,"84":1,"91":1,"105":1,"108":1,"110":1,"111":8,"162":1,"164":1,"165":6,"166":2,"181":1}}],["gzip",{"2":{"181":1}}],["global",{"2":{"165":4}}],["globally",{"2":{"91":1,"110":1,"111":6,"164":1}}],["given",{"2":{"111":2}}],["github",{"0":{"77":1},"2":{"14":1,"15":1,"16":1,"17":1,"18":1,"77":2,"182":1}}],["grid",{"2":{"169":2}}],["groupid",{"2":{"143":6,"145":5,"146":3}}],["group",{"0":{"80":1,"81":1},"2":{"80":1,"145":1,"146":1}}],["graph",{"2":{"26":1,"27":2,"28":1,"92":4,"111":6}}],["graphics",{"2":{"29":2,"92":2,"111":2,"140":2,"146":1,"165":12,"166":2}}],["graphic",{"2":{"4":1,"111":4,"165":6,"166":2}}],["gg",{"2":{"79":1}}],["gt",{"2":{"20":6,"21":2,"22":2,"23":4,"24":2,"25":2,"26":6,"27":2,"28":2,"29":26,"30":2,"31":48,"32":2,"33":2,"35":2,"36":2,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":4,"52":2,"53":2,"54":4,"55":4,"56":2,"57":2,"58":2,"59":4,"60":4,"61":6,"62":4,"63":2,"85":2,"86":2,"87":8,"88":2,"89":2,"92":4,"95":4,"100":4,"103":36,"111":26,"113":12,"115":2,"116":2,"117":2,"118":2,"119":2,"120":2,"121":2,"122":2,"123":2,"124":2,"125":2,"126":2,"127":2,"128":2,"129":2,"130":2,"131":2,"132":2,"133":6,"134":6,"135":4,"136":4,"137":2,"138":4,"139":26,"140":32,"141":2,"142":2,"143":64,"144":2,"145":32,"146":2,"147":2,"148":2,"149":2,"150":2,"151":2,"152":2,"153":2,"154":2,"155":4,"156":4,"157":4,"158":6,"159":4,"160":2,"161":2,"165":42,"166":2}}],["good",{"2":{"182":1}}],["go",{"2":{"14":1,"15":1,"16":1,"17":1,"18":1}}],["gapbar",{"2":{"111":2,"165":2}}],["gaps",{"2":{"111":2,"165":2}}],["gap",{"2":{"13":1,"126":1,"127":1,"139":5,"154":5}}],["generally",{"2":{"111":2,"137":1}}],["generated",{"2":{"166":2}}],["generate",{"2":{"91":1,"110":1}}],["generation",{"2":{"4":1}}],["getconvertpictureurl",{"0":{"160":1}}],["getdatalist",{"0":{"136":1}}],["getdom",{"0":{"115":1},"2":{"176":3}}],["getbarspace",{"0":{"131":1}}],["gettimezone",{"0":{"121":1}}],["getting",{"0":{"96":1},"1":{"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1}}],["gettechnicalindicatortemplate",{"2":{"13":1}}],["gettechnicalindicatorbypaneid",{"2":{"13":1,"176":2}}],["getlinearyfromslopeintercept",{"0":{"51":1}}],["getlinearyfromcoordinates",{"0":{"50":1}}],["getlinearslopeintercept",{"0":{"49":1}}],["getlocal",{"2":{"13":1}}],["get",{"0":{"97":1},"1":{"98":1,"99":1,"100":1},"2":{"20":1,"23":1,"24":1,"27":1,"28":1,"30":1,"32":1,"33":1,"43":1,"49":1,"50":1,"51":1,"83":2,"97":1,"111":2,"115":1,"116":1,"118":1,"120":1,"121":1,"127":1,"132":1,"136":1,"144":1,"160":1,"181":1}}],["getheight",{"2":{"13":1,"176":1}}],["getwidth",{"2":{"13":1,"176":1}}],["getindicatorbypaneid",{"0":{"141":1},"2":{"13":1,"176":1}}],["getvisiblerange",{"0":{"132":1},"2":{"13":1}}],["gets",{"2":{"131":1}}],["getstyles",{"0":{"118":1},"2":{"13":1,"176":1}}],["getstyleoptions",{"2":{"13":1,"176":1}}],["getsize",{"0":{"116":1},"2":{"13":2,"176":1}}],["getsupportedoverlays",{"0":{"32":1}}],["getsupportedindicators",{"0":{"30":1}}],["getsupportedfigures",{"0":{"27":1}}],["getsupportedlocales",{"0":{"24":1}}],["getsupportlocales",{"2":{"13":1}}],["getsupportoverlays",{"2":{"13":1}}],["getsupportfigures",{"2":{"13":1,"165":2}}],["getfigureclass",{"0":{"28":1},"2":{"13":1,"82":1,"83":2}}],["getoverlaybyid",{"0":{"144":1},"2":{"13":1}}],["getoverlayclass",{"0":{"23":1},"2":{"1":1}}],["getoffsetrightdistance",{"0":{"127":1},"2":{"7":1}}],["ue900",{"2":{"169":4}}],["url",{"2":{"160":1}}],["utf",{"2":{"103":2}}],["utils",{"0":{"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"1":{"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"2":{"4":1,"7":2,"64":2,"177":1}}],["usdt",{"2":{"186":3}}],["using",{"0":{"98":1,"100":1}}],["us",{"2":{"20":1,"22":1,"105":2,"165":2}}],["used",{"2":{"75":1,"83":1,"111":6,"165":4,"166":3}}],["use",{"0":{"83":1,"99":1,"107":1},"2":{"13":6,"64":1,"67":1,"90":1,"91":1,"100":1,"105":1,"110":1,"164":1,"166":2,"171":1,"173":1,"175":1,"176":3}}],["uniformly",{"2":{"171":1}}],["unique",{"2":{"26":1,"29":1,"31":1,"92":2,"140":1,"145":1,"165":2}}],["unsubscribe",{"2":{"157":1}}],["unsubscribeaction",{"0":{"157":1},"2":{"11":1,"176":1}}],["unpkg",{"2":{"100":1}}],["under",{"2":{"2":1,"181":1}}],["upgrade",{"2":{"170":3}}],["upcolor",{"2":{"140":4,"169":10}}],["up",{"2":{"111":2,"169":2}}],["update",{"2":{"135":1}}],["updates",{"2":{"10":1}}],["updatedata",{"0":{"135":1},"2":{"7":1,"65":1}}],["upwickcolor",{"2":{"7":1,"169":2}}],["upbordercolor",{"2":{"7":1,"169":2}}],["3dsxsbtbmwxumaaqmysvpgedbp9rghpnfq",{"2":{"186":1}}],["30",{"2":{"102":2,"103":2,"109":3,"139":2}}],["35",{"2":{"102":2,"103":2,"169":4}}],["31",{"2":{"102":2,"103":2}}],["34",{"2":{"102":2,"103":2,"109":1}}],["33",{"2":{"102":2,"103":2,"169":12}}],["39",{"2":{"29":12,"31":12,"57":44,"58":8,"59":20,"60":8,"61":20,"62":20,"63":64,"65":8,"72":4,"83":8,"85":8,"86":20,"87":28,"88":20,"89":20,"95":38,"102":4,"103":4,"106":28,"111":20,"112":40,"113":36,"115":12,"116":12,"139":60,"140":108,"143":52,"145":40,"154":4,"155":4,"156":28,"157":28,"165":24,"166":20,"169":1004}}],["3",{"0":{"4":1,"8":1},"2":{"109":3,"154":2,"166":2,"169":6}}],["mtm",{"2":{"109":1}}],["much",{"2":{"182":1}}],["multiple",{"2":{"97":1,"181":2}}],["must",{"2":{"65":1}}],["migrated",{"2":{"177":1}}],["millisecond",{"2":{"65":2}}],["middle",{"2":{"57":2,"63":2,"151":1,"169":4}}],["minheight",{"2":{"139":5,"154":5}}],["min",{"2":{"100":2}}],["minimum",{"2":{"29":1,"111":2,"128":1,"129":1,"139":1,"140":1,"154":1}}],["minvalue",{"2":{"29":3,"111":2,"139":2,"140":5}}],["mm",{"2":{"46":2}}],["merging",{"2":{"117":1}}],["merged",{"2":{"172":1,"173":1,"178":1}}],["merge",{"0":{"36":1},"2":{"36":1}}],["meaning",{"2":{"165":2}}],["mean",{"2":{"112":4}}],["median",{"2":{"111":2}}],["metric",{"2":{"140":1}}],["meta",{"2":{"103":10}}],["method",{"2":{"11":1,"13":11,"26":1,"29":4,"31":2,"41":1,"73":1,"82":1,"111":8,"133":2,"138":1,"139":1,"140":4,"141":1,"142":1,"144":1,"146":1,"156":1,"157":1,"161":1,"167":2,"169":4,"176":1,"178":4}}],["methods",{"2":{"3":1,"13":6,"34":1,"95":1,"97":1,"111":8,"165":4,"178":1}}],["me",{"2":{"78":1}}],["made",{"2":{"167":1}}],["may",{"2":{"161":1}}],["many",{"2":{"165":2}}],["manually",{"2":{"137":1}}],["management",{"0":{"102":1},"2":{"97":1}}],["matched",{"2":{"135":1}}],["math",{"2":{"95":4,"166":6}}],["main",{"2":{"115":3,"116":3,"139":1,"140":1,"141":1,"142":1,"143":1,"154":1,"176":1}}],["map",{"2":{"113":4}}],["ma5",{"2":{"112":4,"113":2}}],["ma2",{"2":{"112":3,"113":4}}],["ma10",{"2":{"112":6,"113":2}}],["ma1",{"2":{"112":5,"113":4}}],["macd",{"2":{"109":1}}],["ma",{"2":{"109":1,"112":1,"113":10,"139":2}}],["make",{"2":{"82":1}}],["magnet`",{"2":{"165":4}}],["magnet",{"2":{"31":7,"143":10,"145":9,"165":10}}],["maximum",{"2":{"29":1,"111":2,"140":1}}],["maxvalue",{"2":{"29":3,"111":2,"139":2,"140":5}}],["mark",{"0":{"75":1}}],["marginend",{"2":{"173":2}}],["marginbottom",{"2":{"169":12}}],["marginright",{"2":{"169":8}}],["margintop",{"2":{"169":8}}],["marginleft",{"2":{"169":8}}],["marginstrat",{"2":{"169":4}}],["margins",{"2":{"139":1,"154":1}}],["margin",{"2":{"13":2,"139":2,"154":2}}],["marinend",{"2":{"13":2}}],["marinstart",{"2":{"13":2,"173":2}}],["mozilla",{"2":{"165":2}}],["module",{"2":{"161":1}}],["models",{"2":{"181":1}}],["model",{"2":{"165":2}}],["mode",{"2":{"31":6,"143":6,"145":8,"165":10}}],["modesensitivity",{"2":{"2":1,"31":3,"143":6,"145":5,"165":2}}],["more",{"0":{"133":1,"134":1},"2":{"65":2,"133":4,"134":5,"138":1}}],["mouse",{"2":{"31":2,"145":2,"165":4}}],["moving",{"2":{"31":1,"104":1}}],["movement",{"2":{"165":6}}],["moveto",{"2":{"95":4}}],["move",{"2":{"31":4,"104":2,"145":3,"165":4}}],["mobile",{"2":{"2":1,"67":1,"181":2}}],["22",{"2":{"169":8}}],["2196f3",{"2":{"169":4}}],["26",{"2":{"109":3}}],["26a69a",{"2":{"6":1,"140":4}}],["28",{"2":{"102":6,"103":6}}],["20",{"2":{"102":6,"103":6,"109":6,"140":2}}],["204",{"2":{"102":2,"103":2}}],["2023",{"2":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1}}],["230",{"2":{"169":6}}],["23",{"2":{"11":1}}],["249",{"2":{"169":6}}],["243",{"2":{"169":12}}],["2432435",{"2":{"140":2}}],["24",{"2":{"7":1,"109":4}}],["2dc08e",{"2":{"6":1,"169":8}}],["27",{"2":{"6":1}}],["2",{"0":{"5":2,"6":1,"7":1,"9":1,"95":1,"113":1},"2":{"95":22,"109":3,"112":2,"139":2,"140":12,"143":6,"145":6,"154":2,"166":2,"169":98}}],["255",{"2":{"169":8}}],["25",{"2":{"3":1,"169":4}}],["45",{"2":{"169":6}}],["40k",{"2":{"181":1}}],["40",{"2":{"109":1,"169":6}}],["42",{"2":{"102":2,"103":2}}],["4986",{"2":{"102":2,"103":2}}],["4980",{"2":{"102":2,"103":2}}],["4988",{"2":{"102":2,"103":2}}],["4985",{"2":{"102":2,"103":2}}],["4981",{"2":{"102":4,"103":4}}],["4964",{"2":{"102":6,"103":6}}],["4961",{"2":{"102":10,"103":10}}],["4963",{"2":{"102":2,"103":2}}],["4962",{"2":{"102":2,"103":2}}],["4968",{"2":{"102":4,"103":4}}],["4966",{"2":{"102":4,"103":4}}],["4975",{"2":{"102":2,"103":2}}],["4974",{"2":{"102":2,"103":2}}],["4973",{"2":{"102":4,"103":4}}],["4971",{"2":{"102":2,"103":2}}],["4979",{"2":{"102":6,"103":6}}],["4972",{"2":{"102":6,"103":6}}],["4970",{"2":{"102":2,"103":2}}],["4977",{"2":{"102":12,"103":12}}],["4976",{"2":{"102":4,"103":4}}],["4",{"0":{"3":1,"18":1},"2":{"18":1,"111":2,"140":2,"169":62}}],["length",{"2":{"166":2,"169":4}}],["less",{"2":{"139":2,"154":2}}],["left",{"2":{"57":2,"63":3,"89":2,"104":1,"111":8,"116":2,"126":1,"127":1,"128":1,"165":4,"169":10}}],["level",{"2":{"31":1,"145":1,"165":2}}],["lt",{"2":{"23":2,"29":8,"31":8,"51":2,"54":2,"55":2,"59":2,"60":2,"61":4,"62":2,"87":4,"95":2,"100":4,"103":36,"111":14,"133":2,"134":2,"136":2,"139":8,"140":8,"143":6,"145":2,"158":4,"159":4,"165":8}}],["lightweight",{"2":{"180":1,"181":1}}],["like",{"2":{"91":1,"110":1,"164":1,"181":1}}],["liihuu",{"2":{"77":2}}],["list",{"2":{"20":2,"120":1}}],["linecolor",{"2":{"169":2}}],["linewidth",{"2":{"95":2}}],["lineto",{"2":{"95":12}}],["linesize",{"2":{"169":2}}],["lines",{"2":{"13":1,"140":2,"169":2,"173":2}}],["line",{"0":{"54":1,"60":1,"70":1,"71":1,"87":1},"2":{"2":1,"5":1,"9":1,"13":2,"49":1,"50":1,"51":1,"54":3,"59":1,"60":6,"61":1,"62":1,"63":1,"84":1,"85":2,"86":2,"87":4,"88":2,"89":2,"94":3,"111":4,"112":9,"113":6,"133":1,"134":1,"135":1,"143":2,"145":2,"167":1,"169":8,"173":1,"181":1}}],["labels",{"2":{"173":1}}],["layer",{"2":{"160":1}}],["lang=",{"2":{"103":2}}],["languages",{"2":{"105":1}}],["language",{"0":{"106":1,"107":1},"2":{"20":1,"22":3,"24":1,"105":1,"106":2,"107":2}}],["large",{"2":{"29":1,"45":1,"111":2,"140":1}}],["lastvaluemark",{"2":{"13":1,"169":2}}],["last",{"2":{"13":1,"135":1,"169":2}}],["loadmore",{"0":{"138":1}}],["load",{"2":{"67":1,"138":1}}],["location",{"2":{"149":1}}],["located",{"2":{"111":2,"165":2}}],["localized",{"2":{"24":1}}],["localization",{"2":{"22":1}}],["local",{"2":{"20":1,"120":1}}],["locales",{"0":{"22":1},"2":{"22":3,"106":1}}],["locale",{"0":{"22":1},"2":{"20":3,"22":3}}],["locked",{"2":{"31":1,"145":1}}],["lock",{"2":{"31":3,"143":6,"145":5,"165":4}}],["lowest",{"2":{"65":2}}],["low",{"2":{"22":2,"65":2,"102":20,"103":20,"106":2,"133":2,"134":2,"135":2,"136":2,"169":2}}],["longer",{"2":{"13":1,"21":1,"171":1}}],["log",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1},"2":{"7":1,"14":1,"15":1,"16":1,"143":28,"145":28,"169":2}}],["d9d9d9",{"2":{"169":12}}],["d",{"2":{"111":2}}],["dma",{"2":{"109":1}}],["dmi",{"2":{"109":1}}],["dd",{"2":{"46":1}}],["during",{"2":{"31":1,"165":8}}],["dcs",{"0":{"21":1},"2":{"21":3}}],["ds",{"0":{"20":1},"2":{"20":3,"167":1}}],["date",{"2":{"20":1,"46":1,"165":2}}],["datetimeformat",{"0":{"46":1},"2":{"20":4,"46":4,"165":6}}],["datasource",{"2":{"178":2}}],["dataindex",{"0":{"149":1,"152":1},"2":{"31":2,"111":2,"143":4,"145":2,"149":3,"152":3,"158":6,"159":4,"165":4}}],["datalist",{"0":{"133":1,"134":1},"2":{"29":2,"65":2,"111":2,"133":3,"134":3,"139":2,"140":2}}],["data",{"0":{"65":1,"73":1,"135":1,"155":1},"2":{"8":1,"29":5,"31":1,"43":2,"65":5,"102":2,"103":2,"111":52,"113":6,"133":6,"134":5,"135":8,"136":3,"137":2,"138":1,"139":4,"140":5,"145":1,"149":1,"152":1,"155":4,"156":2,"157":2,"158":1,"165":6}}],["dashvalue",{"2":{"13":1,"173":1}}],["dashedvalue",{"2":{"13":1,"58":3,"60":3,"85":2,"87":2,"94":2,"140":2,"143":2,"145":2,"169":24,"173":1}}],["dashed",{"2":{"13":1,"58":3,"59":3,"60":3,"61":3,"62":3,"63":3,"85":2,"86":2,"87":4,"88":2,"89":2,"94":4,"95":2,"139":4,"140":4,"169":42,"173":1}}],["docs",{"2":{"165":2}}],["doctype",{"2":{"103":2}}],["document",{"2":{"82":1,"108":1,"162":1,"170":2}}],["dotted",{"2":{"85":2,"86":2,"87":4,"88":2,"89":2}}],["do",{"0":{"71":1,"73":1,"75":1},"2":{"106":1,"111":10,"165":12}}],["domid",{"2":{"102":2}}],["dom",{"2":{"20":1,"21":1,"115":1,"176":1}}],["double",{"2":{"11":1,"31":1,"145":1,"165":2}}],["downcolor",{"2":{"140":4,"169":10}}],["down",{"2":{"111":2,"165":4,"169":2}}],["download",{"2":{"97":1}}],["downwickcolor",{"2":{"7":1,"169":2}}],["downbordercolor",{"2":{"7":1,"169":2}}],["drag",{"2":{"165":6}}],["dragged",{"2":{"139":1,"154":1}}],["dragging",{"2":{"31":1,"124":1,"125":1,"145":1}}],["dragenbaled",{"2":{"139":1,"154":1}}],["dragenabled",{"2":{"139":4,"154":4}}],["drawrecttext",{"0":{"63":1,"64":1},"2":{"64":2}}],["drawrect",{"0":{"62":1}}],["drawpolygon",{"0":{"61":1}}],["drawline",{"0":{"60":1}}],["drawcircle",{"0":{"59":1}}],["drawarc",{"0":{"58":1}}],["draw",{"2":{"13":1,"26":3,"29":3,"31":2,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"83":4,"92":4,"95":7,"111":2,"139":2,"140":5,"145":2,"165":6,"178":1}}],["drawing",{"2":{"11":1,"26":1,"29":1,"31":2,"111":2,"137":1,"140":1,"145":2,"165":8,"166":2,"181":1}}],["drawn",{"2":{"9":1,"111":4,"145":1}}],["drop",{"2":{"2":1}}],["different",{"2":{"135":1}}],["dimensions",{"2":{"111":2,"116":1,"165":2}}],["div",{"2":{"103":4}}],["dividing",{"2":{"2":1}}],["directly",{"0":{"103":1},"2":{"166":2}}],["direction",{"2":{"13":1}}],["diamond",{"2":{"93":1,"95":6}}],["distinguished",{"2":{"171":1}}],["distance",{"0":{"126":1,"147":1},"2":{"111":16,"126":2,"147":5,"148":2,"165":8,"176":1}}],["dist",{"2":{"100":2}}],["discussion",{"0":{"80":1,"81":1}}],["discussions",{"2":{"77":2}}],["discord",{"0":{"79":1},"2":{"79":1}}],["dispose",{"0":{"21":1}}],["displayed",{"2":{"111":4}}],["displaying",{"2":{"8":1}}],["display",{"2":{"3":1,"7":1,"8":1,"29":1,"65":2,"111":4,"112":1,"140":1,"169":4}}],["dependencies",{"2":{"181":1}}],["deprecated",{"2":{"64":1,"90":1}}],["definition",{"2":{"181":1}}],["define",{"2":{"94":2}}],["defaulted",{"2":{"133":1,"134":1,"139":2,"141":1,"151":1,"154":2,"160":3,"165":16}}],["defaultvalue",{"0":{"43":1},"2":{"43":2,"169":4}}],["defaultstyles",{"2":{"29":4,"111":6,"139":4,"140":4,"165":2,"178":3}}],["default",{"0":{"169":1},"2":{"6":1,"31":3,"71":1,"105":1,"109":3,"111":20,"115":2,"116":2,"133":1,"134":1,"139":3,"140":1,"141":1,"142":1,"143":1,"145":3,"147":2,"148":2,"149":2,"150":2,"151":3,"152":2,"153":2,"154":2,"157":1,"160":2,"165":24,"166":2}}],["defaultzlevel",{"2":{"3":1}}],["determined",{"2":{"178":1}}],["determine",{"2":{"94":1,"112":1,"113":1,"166":2}}],["details",{"2":{"20":1,"26":1,"31":1,"74":1,"117":1,"133":1,"134":1,"135":1,"165":2,"172":1}}],["developer",{"2":{"165":2}}],["developers",{"2":{"80":1}}],["development",{"2":{"7":1,"181":1}}],["decimal",{"2":{"71":1}}],["declarations",{"2":{"6":1}}],["declaration",{"2":{"2":1}}],["design",{"0":{"172":1}}],["description",{"0":{"92":1,"111":1,"165":1},"1":{"112":1,"113":1},"2":{"103":2}}],["describes",{"2":{"82":1}}],["deselected",{"2":{"31":1,"145":1}}],["destroyed",{"2":{"21":1}}],["destroys",{"2":{"21":1}}],["deleted",{"2":{"64":1,"90":1}}],["delete",{"2":{"13":8,"31":1,"145":1,"165":4,"173":1,"175":1,"176":5,"178":1}}],["deep",{"2":{"35":1}}],["deeprequired",{"2":{"8":1}}],["deeppartial",{"2":{"8":1}}],["png",{"2":{"160":1}}],["picture",{"0":{"168":1},"2":{"139":1,"140":1,"141":1,"142":1,"143":1,"154":1}}],["piece",{"2":{"135":1,"138":1}}],["pixel",{"2":{"4":1}}],["p",{"2":{"113":4}}],["performpoint",{"2":{"165":2}}],["performpointindex",{"2":{"165":2}}],["performance",{"2":{"161":1}}],["performeventmovefordrawing",{"2":{"31":3,"165":2}}],["performeventpressedmove",{"2":{"31":3,"165":2}}],["percentage",{"2":{"139":2,"154":2,"169":2}}],["periods",{"2":{"112":1}}],["pvt",{"2":{"109":1}}],["psy",{"2":{"109":1}}],["powerful",{"2":{"181":1}}],["possible",{"2":{"124":1,"125":1}}],["position",{"0":{"115":1,"116":1},"2":{"7":1,"115":3,"116":4,"148":1,"152":1,"169":8,"176":5}}],["polyfill",{"0":{"68":1}}],["polygon",{"0":{"55":1,"61":1},"2":{"55":3,"61":5,"84":1,"87":1,"169":2}}],["pointer",{"2":{"169":2}}],["point",{"0":{"75":1},"2":{"31":2,"50":1,"51":1,"52":2,"53":2,"54":1,"55":1,"56":4,"57":4,"62":2,"63":2,"88":4,"89":4,"94":2,"111":2,"145":2,"151":2,"165":10,"166":4,"167":1,"169":2}}],["points",{"2":{"31":4,"49":2,"50":1,"143":6,"145":5,"165":10,"176":1}}],["plugin",{"2":{"182":1}}],["please",{"2":{"20":1,"64":1,"67":1,"90":1,"117":1,"120":1,"133":1,"134":1,"135":1,"136":1,"161":1,"170":1,"171":1,"172":1,"173":1,"175":1,"176":3}}],["plots",{"2":{"13":1,"178":1}}],["prev",{"2":{"111":2}}],["previous",{"2":{"111":2,"170":1}}],["prevent",{"2":{"31":1,"145":1}}],["press",{"2":{"31":4,"145":3,"165":4}}],["precision",{"2":{"29":4,"44":3,"71":2,"111":4,"119":3,"139":2,"140":6,"165":8}}],["provide",{"2":{"181":1}}],["professional",{"2":{"180":1}}],["process",{"2":{"165":4}}],["processing",{"2":{"31":1}}],["prompt",{"2":{"113":2}}],["promise",{"2":{"29":2,"111":4,"139":2,"140":2}}],["project",{"0":{"102":1,"103":1}}],["properties",{"2":{"92":4,"165":2}}],["property",{"2":{"2":1}}],["pricechannelline",{"2":{"163":1}}],["priceline",{"2":{"163":1}}],["priceprecision",{"0":{"119":1},"2":{"71":1,"119":3}}],["price",{"2":{"29":3,"65":8,"71":1,"111":2,"112":1,"119":3,"139":2,"140":5,"165":4}}],["pricemark",{"2":{"13":1,"169":2}}],["paypal",{"0":{"185":1},"2":{"185":1}}],["pay",{"0":{"184":1}}],["package",{"0":{"102":1},"2":{"97":1}}],["parallellfilineline",{"2":{"163":1}}],["param",{"2":{"113":8}}],["params",{"2":{"29":4,"31":10,"109":3,"111":4,"113":4,"139":4,"140":4,"165":2,"178":2}}],["parameters",{"2":{"8":1,"29":1,"86":2,"88":2,"111":2,"112":3,"113":6,"140":2,"143":1,"145":1,"165":6}}],["parameter",{"2":{"8":1,"52":1,"53":1,"56":1,"57":1,"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"85":2,"87":4,"89":2,"111":6,"113":4,"139":1,"176":3}}],["participates",{"2":{"165":4}}],["part",{"2":{"82":1}}],["padding",{"2":{"63":4,"89":8}}],["paddingright",{"2":{"63":3,"89":2,"169":16}}],["paddingleft",{"2":{"63":3,"89":2,"169":16}}],["paddingbottom",{"2":{"13":2,"63":3,"89":2,"169":16,"173":2}}],["paddingtop",{"2":{"13":2,"63":3,"89":2,"169":16,"173":2}}],["paneoptions",{"0":{"139":1},"2":{"139":3,"154":1,"176":2}}],["paneid",{"0":{"115":1,"116":1,"140":1,"141":1,"142":1,"143":1},"2":{"3":1,"75":1,"111":2,"115":3,"116":3,"140":3,"141":3,"142":3,"143":3,"158":3,"159":3,"176":19}}],["pane",{"2":{"2":1,"139":3,"140":3,"141":1,"142":1,"143":1,"154":3}}],["iconfont",{"2":{"169":4}}],["icon",{"2":{"169":8}}],["icons",{"2":{"13":2,"169":4}}],["illustrate",{"2":{"166":1}}],["image",{"2":{"160":3}}],["imported",{"0":{"103":1}}],["import",{"0":{"171":1},"2":{"102":1,"171":1}}],["important",{"2":{"82":1,"139":1}}],["implement",{"2":{"95":1}}],["implementation",{"2":{"31":1}}],["i",{"0":{"74":1},"2":{"113":10,"182":1}}],["item",{"2":{"113":2,"169":2,"178":1}}],["items",{"2":{"20":1,"112":1}}],["it",{"2":{"20":3,"64":1,"67":2,"82":1,"83":1,"90":1,"91":3,"97":1,"100":1,"110":3,"111":4,"113":6,"117":2,"120":1,"123":1,"135":4,"137":2,"139":2,"143":1,"145":1,"154":1,"158":2,"159":1,"160":1,"164":3,"165":2,"166":2,"169":6,"180":1}}],["if",{"0":{"74":1},"2":{"20":1,"26":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"54":1,"57":1,"65":2,"67":1,"70":1,"82":1,"95":6,"105":1,"111":6,"113":8,"120":1,"135":2,"142":1,"145":1,"158":1,"165":2,"166":2,"170":1,"182":2}}],["ignoreevent",{"2":{"31":12,"165":4}}],["ignore",{"2":{"9":1,"165":2}}],["isdashed",{"2":{"178":1}}],["iszoomenabled",{"0":{"123":1}}],["isboolean",{"0":{"42":1}}],["isfunction",{"0":{"41":1}}],["isobject",{"0":{"40":1}}],["isnumber",{"0":{"38":1}}],["is",{"0":{"70":1,"73":1,"103":1},"2":{"8":2,"13":23,"26":1,"29":2,"31":2,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"64":1,"67":1,"71":1,"82":1,"83":3,"90":1,"92":4,"93":1,"94":12,"95":1,"100":1,"105":1,"106":1,"111":24,"112":2,"113":13,"115":2,"116":2,"117":1,"119":1,"124":1,"125":1,"133":3,"134":3,"135":2,"137":2,"138":2,"139":8,"140":3,"141":1,"142":1,"143":1,"145":2,"147":1,"148":1,"149":1,"150":1,"151":2,"152":1,"153":1,"154":2,"156":1,"157":2,"158":1,"159":1,"160":3,"165":8,"166":2,"169":6,"173":9,"175":1,"176":11,"178":5,"180":1,"182":1}}],["isvalid",{"0":{"39":1},"2":{"7":1}}],["isscrollenabled",{"0":{"125":1}}],["isstroke",{"2":{"178":1}}],["isstring",{"0":{"37":1}}],["isstack",{"0":{"139":1},"2":{"4":1,"139":3,"176":2}}],["issues",{"2":{"77":2}}],["issue",{"2":{"2":1,"8":2,"9":2}}],["id=",{"2":{"103":2}}],["identification",{"2":{"139":1,"145":1}}],["identifies",{"2":{"139":1}}],["identifier",{"2":{"26":1,"29":1,"31":1,"92":2,"140":1,"143":1,"145":1,"165":2}}],["ideographic",{"2":{"57":2,"63":2}}],["id",{"0":{"144":1},"2":{"2":1,"4":1,"20":1,"21":1,"111":2,"115":1,"116":1,"139":8,"140":3,"141":5,"142":4,"143":9,"144":5,"145":8,"146":5,"154":8,"158":1,"159":1,"169":8,"176":2}}],["inside",{"2":{"169":2}}],["install",{"2":{"98":2}}],["instantiate",{"2":{"83":2}}],["instance",{"0":{"114":1,"176":1},"1":{"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1},"2":{"3":1,"4":1,"7":2,"11":1,"13":14,"20":1,"21":1,"165":2,"167":1}}],["instead",{"2":{"13":6,"64":1,"90":1,"173":1,"175":1,"176":3}}],["invalid",{"2":{"165":2}}],["invalidity",{"2":{"10":1}}],["includeoverlay",{"0":{"160":1},"2":{"160":3}}],["include",{"2":{"111":2,"160":1,"165":2,"169":4}}],["increment",{"2":{"25":1,"111":2}}],["increments",{"2":{"20":1}}],["index",{"2":{"111":16,"149":1,"152":1,"158":2,"165":6,"171":2}}],["indicatorfigure",{"2":{"111":2}}],["indicatorfigurestyle",{"2":{"111":2}}],["indicatorfigureattrs",{"2":{"111":2}}],["indicatorfigureattrscallbackcoordinate",{"2":{"111":2}}],["indicatordata",{"2":{"111":6}}],["indicatorstyle",{"2":{"111":8}}],["indicators",{"0":{"73":1,"109":1,"110":1},"1":{"111":1,"112":1,"113":1},"2":{"30":1,"65":2,"74":2,"82":1,"108":1,"142":1,"181":1}}],["indicator",{"0":{"29":1,"74":2,"108":1,"178":1},"1":{"109":1,"110":1,"111":1,"112":1,"113":1},"2":{"4":1,"13":11,"29":13,"108":1,"110":3,"111":48,"112":1,"113":1,"119":1,"139":9,"140":8,"141":2,"142":1,"169":2,"173":3,"178":3}}],["information",{"2":{"26":1,"29":3,"31":2,"52":1,"53":1,"56":1,"57":1,"91":1,"110":1,"111":16,"139":1,"140":3,"141":1,"144":1,"145":1,"154":1,"165":12,"166":2}}],["initial",{"2":{"103":2}}],["initialized",{"0":{"70":1}}],["initialize",{"2":{"20":1,"102":2,"103":2}}],["init",{"0":{"20":1},"2":{"102":4,"103":2,"107":1,"167":1}}],["integration",{"2":{"181":1}}],["internationalized",{"2":{"169":2}}],["internationalization",{"0":{"105":1},"1":{"106":1,"107":1}}],["internal",{"2":{"4":2}}],["interact",{"2":{"65":1}}],["introducation",{"0":{"179":1},"1":{"180":1,"181":1}}],["introduces",{"2":{"108":1,"162":1}}],["introduction",{"2":{"12":1}}],["into",{"2":{"20":2,"36":1,"45":2,"84":1,"160":1,"172":1,"173":1,"176":1,"178":1}}],["intl",{"2":{"20":2,"46":2,"165":4}}],["inaccurate",{"2":{"9":1}}],["input",{"2":{"8":1,"139":1}}],["in",{"0":{"73":1,"74":1,"84":1,"102":1,"103":1,"109":1,"163":1},"1":{"85":1,"86":1,"87":1,"88":1,"89":1,"90":1},"2":{"1":1,"2":1,"7":1,"9":2,"10":1,"13":1,"20":1,"22":1,"49":1,"65":1,"75":1,"82":1,"91":1,"104":1,"105":1,"108":2,"110":1,"111":16,"113":6,"137":1,"151":1,"161":1,"162":2,"164":1,"165":18,"166":2,"181":1}}],["f2f3f5",{"2":{"169":2}}],["full",{"0":{"169":1}}],["functions",{"2":{"181":1}}],["function",{"2":{"103":2,"138":1,"143":28,"145":28,"181":1}}],["ffffff",{"2":{"160":1,"169":10}}],["ff9600",{"2":{"140":2,"169":2}}],["f00",{"2":{"143":2,"145":2}}],["flag",{"2":{"139":1,"154":1}}],["fluctuation",{"0":{"71":1}}],["fefefe",{"2":{"169":2}}],["feedback",{"0":{"76":1},"1":{"77":1,"78":1,"79":1,"80":1,"81":1}}],["features",{"0":{"181":1},"2":{"13":1}}],["fast",{"2":{"181":1}}],["factor",{"2":{"151":1,"152":1,"153":1}}],["false",{"2":{"139":2,"140":2,"143":10,"145":10,"169":20}}],["faq",{"0":{"69":1},"1":{"70":1,"71":1,"72":1,"73":1,"74":1,"75":1}}],["family",{"0":{"48":1},"2":{"48":2,"57":3,"63":3,"89":2,"169":20}}],["follow",{"2":{"169":4}}],["following",{"2":{"105":1}}],["fontfamily",{"2":{"169":4}}],["font",{"2":{"57":1,"63":1,"89":2}}],["foreach",{"2":{"113":2}}],["formed",{"2":{"50":1,"51":1}}],["formatthousands",{"0":{"47":1}}],["formatting",{"2":{"44":1}}],["formatprecision",{"0":{"44":1}}],["formatvalue",{"0":{"43":1},"2":{"43":1}}],["formats",{"2":{"20":1}}],["format",{"0":{"46":1},"2":{"20":3,"29":1,"45":1,"46":4,"47":1,"65":1,"111":4,"113":2,"140":1,"165":2}}],["formatdate",{"0":{"46":1},"2":{"20":3}}],["formatbignumber",{"0":{"45":1},"2":{"7":1,"20":3}}],["force",{"2":{"11":1}}],["for",{"2":{"7":1,"9":2,"14":1,"15":1,"16":1,"20":2,"25":1,"26":1,"29":3,"30":1,"31":3,"32":1,"65":1,"74":1,"92":2,"106":1,"111":18,"117":1,"133":1,"134":1,"135":1,"136":1,"139":1,"140":3,"145":1,"155":1,"165":8,"169":2,"172":1}}],["frequent",{"2":{"161":1}}],["from",{"0":{"170":1},"1":{"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1},"2":{"43":1,"100":1,"102":2,"111":14,"132":2,"157":1,"165":4,"170":1,"171":1}}],["frame",{"2":{"2":1,"86":2,"87":2,"88":2,"89":2}}],["f92855",{"2":{"6":1,"169":8}}],["financial",{"2":{"180":1}}],["finder",{"0":{"158":1,"159":1},"2":{"158":3,"159":3,"176":4}}],["files",{"2":{"181":1}}],["filter",{"2":{"158":1,"159":1}}],["filled",{"2":{"95":2,"166":1}}],["fillet",{"2":{"88":2,"89":2}}],["fill`",{"2":{"86":2,"87":2,"88":2,"89":2}}],["fillstyle",{"2":{"95":2}}],["fills",{"2":{"70":1}}],["fill",{"2":{"59":4,"61":4,"62":4,"63":4,"65":2,"86":4,"87":4,"88":4,"89":4,"94":4,"95":10,"139":8,"140":12,"161":1,"166":4,"169":62}}],["field",{"2":{"65":12,"92":2,"165":2}}],["fields",{"2":{"65":4,"165":2}}],["first",{"0":{"101":1},"1":{"102":1,"103":1},"2":{"9":1,"94":1,"103":1,"112":3,"138":1}}],["fixed",{"2":{"65":1,"89":4,"169":4}}],["fix",{"2":{"2":1,"5":1,"8":2,"9":2,"10":1,"12":1}}],["figurenew",{"2":{"85":1,"86":1,"87":2,"88":1,"89":1}}],["figures",{"0":{"84":1},"1":{"85":1,"86":1,"87":1,"88":1,"89":1,"90":1},"2":{"13":1,"29":3,"31":3,"82":2,"84":1,"91":1,"111":6,"112":4,"113":8,"139":2,"140":5,"178":1}}],["figureindex",{"2":{"8":1}}],["figurekey",{"2":{"8":1}}],["figure",{"0":{"26":1,"82":1,"91":1},"1":{"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":2,"93":2,"94":2,"95":2},"2":{"1":1,"5":1,"9":2,"10":1,"26":6,"28":2,"29":1,"31":3,"82":3,"83":8,"85":1,"86":1,"87":2,"88":1,"89":1,"91":2,"92":6,"95":1,"111":2,"140":1,"145":3}}],["omni",{"2":{"186":1}}],["older",{"2":{"170":1}}],["obtain",{"2":{"141":1,"176":1}}],["obtained",{"2":{"82":1}}],["obv",{"2":{"109":1}}],["objects",{"2":{"165":4,"169":2}}],["object",{"2":{"20":3,"25":2,"26":4,"29":36,"31":40,"36":5,"40":1,"117":3,"118":2,"139":26,"140":24,"141":2,"142":2,"143":62,"144":2,"145":30,"158":1,"159":1,"169":2}}],["others",{"2":{"100":1}}],["other",{"0":{"74":1},"2":{"50":1,"105":1,"112":3,"113":1,"166":2}}],["o",{"2":{"43":2}}],["out",{"2":{"31":1,"104":1,"145":1,"165":2,"181":1}}],["output",{"2":{"7":1}}],["ohlc",{"2":{"29":1,"111":2,"140":1,"169":4}}],["operations",{"2":{"139":1}}],["operation",{"2":{"29":1,"140":1,"165":6}}],["opening",{"2":{"169":2}}],["open",{"2":{"22":2,"65":4,"102":20,"103":20,"106":2,"133":2,"134":2,"135":2,"136":2,"169":4}}],["option",{"2":{"176":2}}],["optional",{"2":{"20":1,"65":2,"85":2,"86":2,"87":4,"88":2,"89":2,"140":1}}],["options",{"0":{"20":1,"154":1},"2":{"4":3,"13":3,"20":3,"29":1,"31":1,"94":2,"107":1,"140":1,"145":1,"154":2,"156":1,"157":1,"165":2,"167":1,"173":1,"176":1,"178":1}}],["optimization",{"2":{"1":1}}],["optimize",{"2":{"1":1,"2":3,"3":1,"4":3,"5":1,"6":2,"7":2,"8":3,"9":1,"10":1,"11":1}}],["org",{"2":{"165":2}}],["original",{"2":{"148":1}}],["order",{"2":{"137":1}}],["or",{"0":{"102":1},"2":{"20":2,"21":1,"29":1,"31":1,"73":1,"97":2,"100":1,"107":1,"119":1,"139":1,"140":1,"143":1,"145":1,"158":1,"159":1,"167":2,"169":8,"170":1}}],["overwrite",{"2":{"145":1}}],["overwritten",{"2":{"135":1}}],["overridden",{"2":{"140":1,"145":1}}],["overridetechnicalindicator",{"2":{"176":1}}],["overrides",{"2":{"139":1}}],["override",{"0":{"140":1,"145":1},"2":{"73":1,"140":3,"145":3,"176":3}}],["overrideindicator",{"0":{"140":1},"2":{"13":1,"73":1,"139":1,"140":2,"176":1}}],["overrideoverlay",{"0":{"145":1},"2":{"13":2,"143":1,"145":2,"176":1}}],["overlayevent",{"2":{"165":28}}],["overlayperformeventparams",{"2":{"165":2}}],["overlaycreatefigurescallback",{"2":{"165":4}}],["overlayconstructor",{"2":{"23":2}}],["overlaytechnicalindicator",{"2":{"13":1}}],["overlaystyle",{"2":{"165":4}}],["overlays",{"0":{"164":1},"1":{"165":1,"166":1},"2":{"9":1,"32":1,"75":1,"82":1,"145":1,"162":1}}],["overlayfigureignoreeventtype",{"2":{"31":12,"165":4}}],["overlayfigure",{"2":{"2":1}}],["overlay",{"0":{"31":1,"162":1,"163":1},"1":{"163":1,"164":1,"165":1,"166":1},"2":{"2":1,"3":1,"8":1,"9":1,"11":1,"13":2,"23":2,"31":7,"75":1,"140":1,"143":2,"144":1,"145":2,"146":1,"160":1,"162":1,"164":2,"165":14,"166":1,"169":2,"172":2,"173":1}}],["offsetright",{"2":{"169":2}}],["offsettop",{"2":{"169":2}}],["offsetleft",{"2":{"169":2}}],["offset",{"2":{"169":4}}],["offsetbottom",{"2":{"7":1,"169":2}}],["of",{"0":{"75":1,"83":1,"102":1},"2":{"2":1,"3":1,"4":1,"7":1,"8":4,"9":2,"10":1,"11":1,"12":1,"20":1,"33":1,"34":1,"43":1,"49":2,"50":1,"51":1,"52":4,"53":4,"58":4,"59":4,"82":2,"83":2,"85":8,"86":8,"87":4,"88":4,"89":4,"92":6,"94":2,"111":14,"112":5,"113":8,"126":1,"127":1,"128":1,"129":1,"130":2,"131":1,"133":2,"134":2,"135":3,"136":1,"137":1,"138":2,"139":3,"140":1,"141":1,"142":1,"143":2,"149":1,"151":1,"152":1,"154":2,"158":1,"160":2,"161":1,"165":22,"166":4,"169":2,"173":1,"181":1,"182":1}}],["onpanedrag",{"2":{"156":3,"157":3,"176":1}}],["onpressedmoveend",{"2":{"31":3,"143":6,"145":5,"165":2}}],["onpressedmovestart",{"2":{"31":3,"143":6,"145":5,"165":2}}],["onpressedmoving",{"2":{"31":3,"143":6,"145":5,"165":2}}],["ontooltipiconclick",{"2":{"156":3,"157":3}}],["onvisiblerangechange",{"2":{"156":3,"157":3,"176":1}}],["onscroll",{"2":{"156":3,"157":3,"176":1}}],["onselected",{"2":{"31":3,"143":6,"145":5,"165":2}}],["onzoom",{"2":{"156":3,"157":3,"176":1}}],["onload",{"2":{"103":2}}],["only",{"0":{"70":1},"2":{"31":1,"91":1,"94":2,"104":1,"110":1,"135":1,"137":1,"145":1,"155":1,"158":1,"159":1,"165":2,"181":1}}],["one",{"0":{"70":1},"2":{"36":1,"112":3,"160":1,"165":2,"181":1}}],["onremoved",{"2":{"31":3,"143":6,"145":5,"165":2}}],["onrightclick",{"2":{"31":3,"143":6,"145":5,"165":2}}],["onmouseleave",{"2":{"31":3,"143":6,"145":5,"165":2}}],["onmouseenter",{"2":{"31":3,"143":6,"145":5,"165":2}}],["ondeselected",{"2":{"31":3,"143":6,"145":5,"165":2}}],["ondrawend",{"2":{"31":3,"143":6,"145":5,"165":2}}],["ondrawing",{"2":{"31":3,"143":6,"145":5,"165":2}}],["ondrawstart",{"2":{"31":3,"143":6,"145":5,"165":2}}],["ondoubleclick",{"2":{"2":1,"31":3,"143":6,"145":5,"165":2}}],["oncrosshairchange",{"2":{"155":3,"156":3,"157":3,"176":1}}],["onclick",{"2":{"31":3,"143":6,"145":5,"165":2}}],["once",{"2":{"21":1}}],["oncandlebarclick",{"2":{"11":1,"156":3,"157":3}}],["on",{"2":{"2":1,"8":1,"26":1,"31":2,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"67":3,"82":1,"92":2,"131":1,"139":1,"145":1,"153":1,"158":1,"159":1,"165":8,"167":1,"182":1}}],["0xd2c3911654db861e0a2e17415e11a209c1fc3594",{"2":{"186":2}}],["01c5c4",{"2":{"169":2}}],["01",{"2":{"169":2}}],["000000",{"2":{"103":2}}],["09",{"2":{"102":2,"103":2}}],["02",{"2":{"11":1,"12":1,"13":1,"102":2,"103":2}}],["03",{"2":{"10":1}}],["04",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1}}],["05",{"2":{"3":1,"4":1,"5":1}}],["06",{"2":{"2":1,"102":2,"103":2}}],["0",{"0":{"2":1,"3":1,"4":1,"7":1,"11":1,"12":1,"13":2},"2":{"113":2,"139":4,"143":2,"145":2,"154":4,"166":6,"169":42}}],["08",{"2":{"1":1}}],["rich",{"2":{"181":1}}],["right",{"2":{"31":1,"57":2,"63":3,"89":2,"104":1,"111":8,"116":2,"126":1,"127":1,"129":1,"145":1,"165":8,"169":8}}],["rigideroverlay",{"2":{"13":1}}],["rgba",{"2":{"169":34}}],["rsi",{"2":{"109":1}}],["root",{"2":{"115":4,"116":4,"176":1}}],["roc",{"2":{"109":1}}],["rollback",{"2":{"1":1}}],["run",{"2":{"67":2}}],["rayline",{"2":{"163":1}}],["range",{"2":{"132":1}}],["radius",{"2":{"52":1,"53":1,"58":1,"59":1,"62":1,"63":1,"85":2,"86":2,"166":4,"169":2}}],["ratio",{"2":{"4":2}}],["r",{"2":{"52":3,"53":3,"58":3,"59":3,"85":2,"86":2,"166":2}}],["reward",{"2":{"182":1}}],["reverse",{"2":{"169":2}}],["redrawn",{"2":{"137":1}}],["repeated",{"2":{"137":1}}],["replace",{"2":{"113":2}}],["resizing",{"2":{"161":1}}],["resize",{"0":{"161":1}}],["respond",{"2":{"113":2}}],["response",{"2":{"2":1}}],["results",{"2":{"113":2}}],["result",{"2":{"111":2}}],["reatehtml",{"2":{"176":1}}],["read",{"2":{"82":1}}],["realdataindex",{"2":{"111":2}}],["realx",{"2":{"111":2}}],["real",{"0":{"72":1},"2":{"111":8}}],["realto",{"2":{"7":1,"111":2,"132":2}}],["realfrom",{"2":{"7":1,"111":2,"132":2}}],["recalculate",{"2":{"161":1}}],["recommended",{"2":{"82":1,"100":1}}],["recttext",{"0":{"63":1,"64":1,"90":1},"2":{"63":3,"84":1,"169":2}}],["rectangle",{"2":{"56":2,"62":2}}],["rect",{"0":{"56":1,"62":1,"88":1},"2":{"1":1,"7":2,"56":3,"62":3,"84":1,"111":2,"169":8}}],["required",{"2":{"65":13,"92":2,"139":1,"155":1,"165":16,"166":2}}],["returns",{"2":{"165":2}}],["returning",{"2":{"143":1}}],["returned",{"2":{"111":2,"113":2,"136":1,"141":2,"142":1,"146":1}}],["return",{"2":{"20":1,"92":2,"95":2,"111":2,"113":8,"118":1,"139":1,"143":2,"144":1,"145":2,"165":8,"166":4,"169":2,"178":1}}],["release",{"2":{"17":1,"18":1}}],["related",{"2":{"13":1}}],["render",{"2":{"13":1,"178":1}}],["rendering",{"2":{"10":1}}],["regenerate",{"2":{"29":1,"111":2,"140":1}}],["regeneratefigures",{"2":{"13":1,"29":3,"111":2,"113":2,"139":2,"140":5,"178":1}}],["regenerateplots",{"2":{"13":1,"178":1}}],["registered",{"2":{"20":1,"117":1}}],["registeroverlay",{"0":{"31":1},"2":{"13":1,"164":1,"175":1}}],["registerindicator",{"0":{"29":1},"2":{"13":1,"110":1,"175":1}}],["registerstyles",{"0":{"25":1},"2":{"13":1,"20":1,"117":1}}],["registerlocale",{"0":{"22":1},"2":{"13":1,"106":3}}],["registerfigure",{"0":{"26":1},"2":{"13":1,"91":1}}],["remove",{"0":{"146":1},"2":{"142":2,"146":3}}],["removehtml",{"2":{"13":1,"176":1}}],["removetag",{"2":{"13":1,"176":1}}],["removetechnicalindicator",{"2":{"13":1,"176":1}}],["removeannotation",{"2":{"13":1,"176":1}}],["removeshape",{"2":{"13":1,"176":1}}],["removeindicator",{"0":{"142":1},"2":{"13":1,"176":1}}],["removeoverlay",{"0":{"146":1},"2":{"13":2,"176":1}}],["reference",{"2":{"165":2}}],["refer",{"2":{"20":1,"25":1,"105":1,"111":14,"117":1,"118":1,"120":1,"133":1,"134":1,"135":1,"136":1,"170":1,"172":1}}],["refactoring",{"2":{"13":1}}],["refreshing",{"2":{"8":1}}],["↩️",{"2":{"1":1}}],["trc20",{"2":{"186":1}}],["true",{"2":{"111":2,"133":1,"134":1,"139":4,"140":4,"143":2,"145":2,"154":4,"165":2,"169":54}}],["trix",{"2":{"109":1}}],["triggered",{"2":{"111":2,"165":4}}],["triggering",{"2":{"9":2}}],["trigger",{"2":{"1":2,"165":2}}],["traditional",{"2":{"106":1}}],["t",{"2":{"78":1}}],["turnover",{"2":{"65":4,"133":2,"134":2,"135":2,"136":2}}],["two",{"2":{"49":1,"50":1,"71":1,"94":1,"95":1,"105":1,"112":1}}],["take",{"2":{"113":2}}],["takes",{"2":{"43":1}}],["targetcoordinate",{"0":{"50":1,"51":1},"2":{"50":2,"51":2}}],["target",{"0":{"35":1,"36":1},"2":{"35":2,"36":2}}],["tagid",{"2":{"176":1}}],["tag",{"0":{"103":1},"2":{"13":1,"172":1,"173":1,"176":1}}],["tickline",{"2":{"169":4}}],["ticktext",{"2":{"169":4}}],["ticketext",{"2":{"13":8,"173":8}}],["tip",{"2":{"29":1,"140":1}}],["title",{"2":{"29":6,"103":4,"111":4,"112":4,"113":8,"139":6,"140":6,"169":14,"178":2}}],["times",{"2":{"112":4}}],["timestamp",{"0":{"46":1,"150":1,"153":1},"2":{"20":2,"31":2,"46":2,"65":4,"102":20,"103":20,"133":2,"134":2,"135":3,"136":2,"138":4,"143":8,"145":6,"150":5,"153":5,"158":7,"159":4,"165":8}}],["timezone",{"0":{"120":1},"2":{"20":4,"120":3}}],["time",{"0":{"72":1},"2":{"9":1,"20":2,"22":2,"106":2,"113":2,"120":4,"121":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"158":1,"165":2,"169":6}}],["tells",{"2":{"133":1,"134":1}}],["telegram",{"0":{"78":1}}],["terminals",{"2":{"181":1}}],["terminal",{"2":{"67":1}}],["term",{"2":{"49":1,"51":1}}],["template",{"2":{"13":1,"175":4}}],["templates",{"2":{"2":1,"169":2}}],["technical",{"0":{"73":1,"74":1,"108":1,"109":1,"110":1,"178":1},"1":{"109":1,"110":1,"111":2,"112":2,"113":2},"2":{"13":6,"29":2,"30":1,"65":2,"74":1,"82":1,"108":2,"110":3,"111":22,"112":1,"119":1,"139":3,"140":1,"141":2,"142":2}}],["technicalindicator",{"2":{"13":4,"173":3,"178":1}}],["textweight",{"2":{"169":4}}],["textfamily",{"2":{"169":4}}],["textsize",{"2":{"169":4}}],["textmargin",{"2":{"169":4}}],["text",{"0":{"48":1,"57":1,"89":1},"2":{"8":1,"13":4,"29":4,"48":3,"57":9,"63":6,"64":2,"84":1,"89":4,"90":2,"100":2,"111":8,"139":4,"140":4,"169":20}}],["thjptqmfgavm12ke1jzc5mlxiapp6qxmci",{"2":{"186":1}}],["three",{"2":{"94":1,"160":1,"166":2}}],["through",{"0":{"103":1},"2":{"20":1,"65":1,"72":1,"82":1,"91":1,"97":2,"106":1,"107":1,"110":1,"117":1,"164":1,"176":1}}],["than",{"0":{"74":1},"2":{"139":2,"154":2}}],["that",{"0":{"103":1},"2":{"67":1,"93":1,"111":6,"113":4,"126":1,"127":1,"139":1,"140":1,"141":1,"142":1,"145":2,"165":4,"182":1}}],["think",{"2":{"182":1}}],["this",{"2":{"65":2,"82":1,"103":1,"106":1,"108":1,"111":2,"133":1,"139":1,"161":1,"162":1,"170":1}}],["thickness",{"2":{"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"89":2}}],["thousandsseparator",{"2":{"20":3,"165":2}}],["thousands",{"2":{"7":1,"20":1,"47":1,"165":2}}],["theme",{"2":{"103":2}}],["then",{"2":{"91":1,"110":1,"164":1}}],["these",{"2":{"84":1}}],["there",{"2":{"8":1,"83":1,"113":4,"133":1,"134":1}}],["the",{"0":{"70":1,"71":1,"74":1,"75":1,"101":1,"102":1},"1":{"102":1,"103":1},"2":{"2":4,"3":1,"4":3,"6":1,"7":3,"8":6,"9":5,"10":2,"11":3,"12":1,"13":8,"14":1,"15":1,"16":1,"17":1,"18":1,"20":3,"21":1,"24":2,"25":1,"26":2,"27":2,"29":2,"31":5,"33":2,"43":2,"49":2,"50":2,"51":4,"52":7,"53":6,"54":1,"57":1,"58":6,"59":7,"60":1,"61":1,"65":6,"67":2,"70":3,"71":1,"73":1,"75":2,"80":1,"82":5,"83":6,"84":1,"85":12,"86":12,"88":8,"89":8,"91":3,"92":12,"93":1,"94":14,"102":4,"103":4,"105":3,"107":1,"108":2,"110":2,"111":72,"112":14,"113":28,"115":4,"116":4,"117":1,"118":2,"119":2,"120":2,"121":1,"126":3,"127":3,"128":2,"129":2,"130":2,"131":2,"133":5,"134":3,"135":3,"136":3,"137":4,"138":2,"139":11,"140":4,"141":5,"142":4,"143":3,"144":2,"145":4,"146":2,"149":3,"150":1,"151":3,"152":2,"153":1,"154":5,"157":3,"158":6,"159":1,"160":7,"161":4,"162":2,"164":2,"165":94,"166":18,"167":4,"169":6,"170":1,"173":1,"176":4,"178":6,"181":2,"182":1}}],["tools",{"0":{"102":1},"2":{"97":1}}],["tooltip",{"2":{"1":1,"2":1,"7":2,"13":2,"111":2,"169":4,"173":3}}],["top",{"2":{"57":2,"63":3,"89":2,"111":8,"116":2,"139":6,"154":6,"165":4}}],["total",{"2":{"31":1,"165":2}}],["totalstep",{"2":{"31":3,"165":2,"166":2}}],["to",{"0":{"71":1,"72":1,"73":1,"74":1,"75":1,"170":1},"1":{"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1},"2":{"6":2,"7":1,"9":1,"11":1,"13":25,"14":2,"15":2,"16":2,"17":2,"18":2,"20":1,"25":1,"29":4,"31":2,"49":1,"65":5,"67":3,"70":1,"71":1,"80":1,"82":3,"83":1,"91":4,"100":1,"102":2,"103":2,"105":2,"106":1,"108":1,"110":3,"111":32,"112":1,"113":10,"117":1,"118":1,"120":1,"122":1,"126":1,"127":1,"128":1,"129":1,"132":2,"133":2,"134":1,"135":1,"136":1,"137":2,"139":1,"140":6,"141":1,"144":1,"145":3,"148":1,"149":1,"150":1,"151":1,"154":1,"156":1,"157":1,"158":4,"159":2,"160":1,"162":1,"164":1,"165":30,"166":6,"169":4,"170":4,"172":1,"173":11,"175":1,"176":16,"177":1,"178":6,"181":1}}],["type=",{"2":{"100":2}}],["types",{"0":{"163":1},"2":{"8":2,"11":1,"24":1,"157":1,"160":1,"169":4}}],["typescriptklinecharts",{"2":{"106":1}}],["typescriptnew",{"2":{"85":1,"86":1,"87":2,"88":1,"89":1}}],["typescript",{"2":{"2":1,"6":1,"8":1,"12":1,"13":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"65":1,"92":1,"111":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"165":1,"181":1}}],["type",{"0":{"155":1,"156":1,"157":1,"160":1},"2":{"2":1,"5":1,"13":1,"20":2,"25":1,"27":1,"29":4,"31":12,"72":2,"94":1,"111":20,"112":4,"113":6,"118":1,"133":1,"134":1,"135":1,"136":1,"139":5,"140":4,"143":1,"155":3,"156":3,"157":3,"160":4,"165":16,"166":2,"169":8,"176":3,"181":1}}],["typo",{"2":{"2":1}}],["🛡",{"2":{"181":1}}],["📱",{"2":{"181":1}}],["💪",{"2":{"181":1}}],["📦",{"2":{"181":1}}],["📃",{"0":{"179":1},"1":{"180":1,"181":1}}],["🚀",{"0":{"96":1},"1":{"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1},"2":{"181":1}}],["💬",{"0":{"76":1},"1":{"77":1,"78":1,"79":1,"80":1,"81":1}}],["🙋",{"0":{"69":1},"1":{"70":1,"71":1,"72":1,"73":1,"74":1,"75":1}}],["📚",{"0":{"65":1}}],["🗑",{"2":{"13":1}}],["👉",{"2":{"13":1}}],["🛠️",{"0":{"170":1},"1":{"171":1,"172":1,"173":1,"174":1,"175":1,"176":1,"177":1,"178":1}}],["🛠",{"2":{"13":1}}],["🐞",{"2":{"2":2,"5":1,"8":2,"9":2,"10":1,"12":1}}],["💄",{"2":{"1":1,"2":2,"3":1,"4":3,"5":1,"6":2,"7":2,"8":3,"9":1,"10":1,"11":1}}],["📠",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1}}],["smooth",{"2":{"169":12,"181":1}}],["sma",{"2":{"109":1}}],["sqrt",{"2":{"166":2}}],["sponsor",{"0":{"182":1},"1":{"183":1,"184":1,"185":1,"186":1}}],["space",{"0":{"130":1},"2":{"130":2,"176":1}}],["specified",{"2":{"93":1,"111":4,"149":1,"150":1,"153":1}}],["specifies",{"2":{"29":2,"140":2}}],["special",{"2":{"31":2,"139":1,"140":1,"141":1,"142":1,"143":1,"154":1,"165":2}}],["switching",{"2":{"107":1}}],["src=",{"2":{"100":2}}],["scoordinates",{"2":{"166":2}}],["scheme",{"2":{"105":1}}],["scalable",{"2":{"181":1}}],["scaling",{"2":{"151":1,"152":1,"153":1}}],["scaled",{"2":{"123":1}}],["scale",{"0":{"151":1,"152":1,"153":1},"2":{"122":1,"151":4,"152":4,"153":4}}],["scale=1",{"2":{"103":2}}],["scan",{"2":{"80":1}}],["script",{"0":{"103":1},"2":{"100":4,"103":4}}],["scrolltotimestamp",{"0":{"150":1}}],["scrolltodataindex",{"0":{"149":1}}],["scrolltorealtime",{"0":{"148":1}}],["scrollbydistance",{"0":{"147":1}}],["scrollzoomenabled",{"2":{"139":5,"154":5}}],["scroll",{"2":{"13":1,"139":1,"147":1,"148":1,"149":1,"150":1,"154":1}}],["scrolling",{"2":{"2":1,"124":1,"125":1}}],["screen",{"2":{"4":1}}],["sample",{"2":{"169":4}}],["samplecircle",{"2":{"166":4}}],["same",{"2":{"64":1,"90":1,"113":2,"135":1,"158":1}}],["sar",{"2":{"109":1}}],["save",{"2":{"98":1}}],["savenpm",{"2":{"98":1}}],["saved",{"2":{"13":1}}],["sale",{"0":{"75":1}}],["slope",{"2":{"49":1,"51":1}}],["ss",{"2":{"46":1}}],["shift",{"2":{"104":4}}],["showparams",{"2":{"169":2}}],["showtype",{"2":{"169":4}}],["showrule",{"2":{"169":4}}],["show",{"2":{"169":52}}],["showname",{"2":{"140":2,"169":2}}],["shows",{"0":{"71":1}}],["short",{"2":{"29":1,"111":2,"140":1}}],["shortname",{"2":{"29":3,"111":2,"113":2,"139":2,"140":3}}],["shouldcheckparamcount",{"2":{"178":1}}],["should",{"0":{"75":1},"2":{"29":1,"113":2,"140":1}}],["shouldformatbignumber",{"2":{"29":3,"111":2,"139":2,"140":5}}],["shouldohlc",{"2":{"29":3,"111":2,"139":2,"140":5}}],["shanghai",{"2":{"20":1,"120":1}}],["shape",{"0":{"177":1},"2":{"13":2,"172":1,"173":1}}],["s",{"0":{"180":1},"2":{"23":1}}],["so",{"2":{"95":1,"112":1,"113":1,"166":1}}],["source",{"0":{"36":1},"2":{"36":2,"111":16,"136":1}}],["some",{"2":{"20":1,"111":8,"139":1,"140":1,"165":4}}],["solid",{"2":{"13":1,"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"85":2,"86":2,"87":4,"88":2,"89":2,"94":3,"95":2,"139":4,"140":10,"143":2,"145":2,"169":70}}],["single",{"2":{"130":1,"131":1,"135":1}}],["sign",{"0":{"47":1},"2":{"47":2}}],["size",{"0":{"48":1},"2":{"13":2,"48":2,"57":4,"58":3,"60":3,"63":5,"85":4,"86":2,"87":6,"88":2,"89":6,"94":1,"111":8,"140":2,"143":2,"145":2,"161":2,"165":6,"169":62,"173":2}}],["simple",{"2":{"171":1,"181":1}}],["simpletag",{"2":{"9":1,"163":1}}],["simpleannotation",{"2":{"9":1,"75":2,"163":1}}],["side",{"2":{"2":1}}],["sub",{"2":{"178":1}}],["subkey",{"2":{"113":2}}],["subscribing",{"2":{"157":1}}],["subscribe",{"2":{"156":1}}],["subscribeaction",{"0":{"156":1},"2":{"11":1,"176":1}}],["subsequent",{"2":{"113":2,"139":1}}],["such",{"0":{"102":1},"2":{"20":2,"43":1,"45":1,"46":1,"83":2,"97":1,"120":1}}],["success",{"2":{"7":1,"133":1,"134":1,"135":1,"139":1,"140":1}}],["supported",{"2":{"24":1,"27":1,"155":1}}],["supports",{"2":{"2":1,"3":1,"4":1,"11":1,"20":1,"67":1,"97":1,"104":1,"115":1,"116":1,"117":1,"169":2}}],["support",{"0":{"67":1},"2":{"1":1,"7":1,"9":1,"13":1,"20":1,"25":1,"30":1,"32":1,"43":1,"74":1,"111":2,"181":1}}],["segment",{"2":{"143":6,"145":6,"163":1}}],["second",{"2":{"112":2}}],["select",{"2":{"165":2,"166":2}}],["selected",{"2":{"31":1,"145":1}}],["selections",{"2":{"166":2}}],["selection",{"2":{"9":1}}],["series",{"2":{"29":4,"111":4,"119":1,"139":2,"140":6}}],["seen",{"0":{"70":1}}],["see",{"2":{"20":1,"26":1,"31":1,"70":1,"74":1,"111":6,"165":2,"167":1}}],["setbarspace",{"0":{"130":1}}],["setrightminvisiblebarcount",{"0":{"129":1}}],["setzoomenabled",{"0":{"122":1}}],["settimezone",{"0":{"120":1}}],["setting",{"2":{"119":1}}],["settings",{"2":{"72":1}}],["setleftminvisiblebarcount",{"0":{"128":1}}],["setlinedash",{"2":{"95":4}}],["setlocale",{"2":{"13":1,"107":1}}],["setpricevolumeprecision",{"0":{"119":1},"2":{"71":1}}],["setpaneoptions",{"0":{"154":1},"2":{"4":1,"13":1,"154":2}}],["set",{"2":{"20":1,"71":1,"87":4,"111":6,"117":1,"120":2,"122":1,"124":1,"138":1,"140":1,"154":1}}],["sets",{"2":{"126":1,"128":1,"129":1,"130":1}}],["setscrollenabled",{"0":{"124":1}}],["setshapeoptions",{"2":{"13":1,"176":1}}],["setstyles",{"0":{"117":1},"2":{"13":1,"72":2,"167":1,"176":1}}],["setstyleoptions",{"2":{"13":1,"176":1}}],["setoffsetrightdistance",{"0":{"126":1},"2":{"13":1,"176":1}}],["setoffsetrightspace",{"2":{"13":1,"176":1}}],["setcustomapi",{"2":{"13":1}}],["sensitivity",{"2":{"2":1,"31":1,"145":1,"165":2}}],["separator",{"2":{"1":1,"20":1,"47":1,"165":2,"169":2}}],["standard",{"2":{"169":8}}],["started",{"0":{"96":1},"1":{"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1},"2":{"181":1}}],["starting",{"2":{"56":2,"57":2,"58":1,"62":2,"63":2,"88":4,"89":4,"111":2}}],["startangle",{"2":{"52":3,"58":3,"85":2}}],["start",{"2":{"31":2,"52":1,"57":2,"63":2,"85":2,"103":6,"111":6,"145":2,"165":4}}],["step",{"0":{"94":1,"95":1,"112":1,"113":1},"2":{"165":2}}],["steps",{"2":{"31":1,"165":2,"166":2}}],["straightline",{"2":{"163":1}}],["strokestyle",{"2":{"95":2}}],["stroke",{"2":{"59":4,"61":4,"62":4,"63":4,"86":4,"87":4,"88":4,"89":4,"94":4,"95":8,"139":8,"140":8,"166":2,"169":46}}],["strong",{"2":{"31":3,"143":4,"145":3,"165":4}}],["strings",{"2":{"169":2}}],["string",{"2":{"2":1,"20":18,"21":2,"22":14,"23":2,"24":2,"25":2,"26":2,"27":2,"28":2,"29":32,"30":2,"31":26,"32":2,"33":2,"37":1,"43":2,"44":4,"45":4,"46":4,"47":6,"48":6,"57":6,"58":2,"59":4,"60":2,"61":4,"62":4,"63":10,"85":2,"86":4,"87":6,"88":4,"89":10,"92":2,"111":28,"115":2,"116":2,"117":2,"120":2,"121":2,"139":43,"140":38,"141":4,"142":4,"143":21,"144":2,"145":8,"146":8,"154":2,"158":2,"159":2,"160":6,"165":12,"169":2}}],["style=",{"2":{"103":2}}],["styles",{"0":{"25":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"117":1},"2":{"20":5,"25":3,"26":4,"29":8,"31":16,"57":4,"58":4,"59":4,"60":4,"61":4,"62":4,"63":4,"64":2,"83":6,"85":2,"86":2,"87":4,"88":2,"89":2,"92":4,"94":1,"95":8,"111":4,"117":4,"118":1,"139":6,"140":10,"143":6,"145":6,"165":6,"166":2,"167":1,"176":2,"178":2}}],["style",{"0":{"167":1,"173":1},"1":{"168":1,"169":1},"2":{"1":1,"2":1,"6":1,"7":1,"8":1,"13":4,"20":1,"25":4,"58":4,"59":5,"60":4,"61":5,"62":5,"63":5,"72":1,"85":4,"86":6,"87":10,"88":6,"89":6,"92":4,"94":5,"95":10,"111":22,"117":3,"118":1,"139":4,"140":10,"143":2,"145":2,"165":12,"166":4,"167":1,"169":44,"173":1,"181":1}}],["ci",{"2":{"163":1}}],["circles",{"2":{"13":1,"140":2,"169":2,"173":1}}],["circle",{"0":{"53":1,"59":1,"86":1},"2":{"13":1,"52":2,"53":7,"58":2,"59":7,"83":2,"84":1,"85":4,"86":4,"166":9,"169":2,"173":1}}],["cb",{"0":{"138":1},"2":{"138":3}}],["cycle",{"2":{"112":4}}],["cci",{"2":{"109":1}}],["cdn",{"0":{"100":1},"2":{"97":1,"100":2}}],["center",{"2":{"52":2,"53":2,"57":2,"58":2,"59":2,"63":2,"85":4,"86":4,"94":2}}],["certain",{"2":{"43":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"147":1,"151":1,"152":1,"165":2}}],["c",{"2":{"43":3}}],["ctx",{"0":{"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"2":{"26":2,"58":3,"59":3,"60":3,"61":3,"62":3,"63":3,"64":2,"83":4,"92":2,"95":42,"111":2,"178":2}}],["cleared",{"2":{"137":1}}],["cleardata",{"0":{"137":1},"2":{"133":1}}],["clear",{"2":{"133":1,"137":1}}],["closing",{"2":{"112":1,"169":2}}],["closesums",{"2":{"113":10}}],["closepath",{"2":{"95":4}}],["close",{"2":{"22":2,"65":4,"102":20,"103":20,"106":2,"113":8,"133":2,"134":2,"135":2,"136":2,"169":6}}],["clone",{"0":{"35":1}}],["click",{"2":{"31":3,"145":3,"165":8,"182":1}}],["clicking",{"2":{"11":1}}],["class",{"2":{"28":1,"83":2}}],["cn",{"2":{"20":1,"22":1,"105":1}}],["cost",{"2":{"181":1}}],["corresponds",{"2":{"158":1}}],["corresponding",{"2":{"31":1,"43":1,"113":2,"165":14,"166":4,"176":1}}],["combined",{"2":{"176":1}}],["compression",{"2":{"181":1}}],["component",{"2":{"111":8,"165":4}}],["composed",{"2":{"49":1,"82":1}}],["complete",{"2":{"107":1,"118":1,"165":2,"166":3,"181":1}}],["completes",{"2":{"103":1}}],["completed",{"2":{"95":1,"113":1}}],["complex",{"2":{"82":1}}],["com",{"2":{"77":2}}],["copy",{"2":{"35":1}}],["collection",{"2":{"34":1}}],["color",{"2":{"29":4,"57":4,"58":4,"59":5,"60":4,"61":5,"62":5,"63":6,"85":4,"86":6,"87":10,"88":6,"89":8,"94":4,"95":4,"103":2,"111":4,"139":8,"140":10,"143":2,"145":2,"160":1,"169":76,"178":3}}],["coordinates",{"2":{"54":2,"55":2,"60":2,"61":2,"87":8,"92":2,"158":1,"159":1,"165":2,"166":14}}],["coordinate2",{"0":{"49":1,"50":1},"2":{"49":2,"50":2}}],["coordinate1",{"0":{"49":1,"50":1},"2":{"49":2,"50":2}}],["coordinate",{"0":{"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"151":1,"159":1},"2":{"26":4,"29":4,"49":1,"50":2,"51":1,"52":5,"53":5,"54":3,"55":3,"56":5,"57":5,"85":4,"86":4,"88":4,"89":4,"92":2,"94":2,"95":6,"111":4,"151":5,"158":1,"159":4,"165":2,"176":1}}],["coverage",{"2":{"8":1}}],["console",{"2":{"143":28,"145":28}}],["consistent",{"2":{"113":4,"139":1,"143":1,"165":6}}],["constructor",{"2":{"165":2}}],["constant",{"2":{"49":1,"51":1}}],["const",{"2":{"43":1,"83":2,"95":10,"102":2,"113":6,"166":6}}],["connecting",{"2":{"112":1}}],["configure",{"2":{"166":1,"169":2}}],["configured",{"2":{"111":2,"112":1}}],["configuration",{"0":{"169":1,"173":1},"2":{"1":1,"2":1,"4":1,"7":1,"13":3,"20":1,"22":1,"25":2,"29":1,"111":2,"112":1,"117":2,"118":1,"139":1,"140":1,"154":2,"165":2,"181":1}}],["conversion",{"2":{"111":8,"165":4}}],["convertfrompixel",{"0":{"159":1},"2":{"176":1}}],["convert",{"2":{"158":1,"159":1}}],["converttopixel",{"0":{"158":1},"2":{"176":1}}],["converttimestamptopixel",{"2":{"3":1}}],["converttimestampfrompixel",{"2":{"3":1}}],["converted",{"2":{"29":2,"140":2,"158":2,"159":1,"160":2}}],["context",{"2":{"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"83":3,"92":2,"111":2}}],["content=",{"2":{"103":8}}],["content",{"2":{"57":1,"63":1,"89":2}}],["container",{"2":{"20":1,"70":2,"115":2,"116":1,"161":1}}],["cup",{"2":{"182":1}}],["currentstep",{"2":{"165":2}}],["currently",{"2":{"104":1,"105":1,"135":1}}],["currentcolor",{"2":{"95":4}}],["current",{"2":{"33":1,"111":4,"136":1,"157":1,"165":2}}],["cursor",{"2":{"8":1,"111":4}}],["customizable",{"2":{"180":1}}],["customization",{"2":{"4":1,"93":1}}],["customized",{"0":{"178":1}}],["customize",{"0":{"91":1},"1":{"92":1,"93":1,"94":1,"95":1},"2":{"20":1,"82":1,"108":1,"162":1,"164":1,"167":1}}],["customapi",{"2":{"20":3}}],["custom",{"0":{"110":1,"164":1},"1":{"111":1,"112":1,"113":1,"165":1,"166":1},"2":{"1":1,"2":1,"13":2,"29":2,"74":1,"82":1,"91":1,"95":1,"110":1,"111":4,"113":1,"140":2,"166":1,"169":4,"173":1}}],["cryptocurrency",{"0":{"186":1}}],["cr",{"2":{"109":1}}],["creation",{"2":{"29":1,"31":1,"92":2,"103":1,"140":1,"145":1,"165":2}}],["created",{"0":{"102":1},"2":{"75":1}}],["creates",{"2":{"31":3,"143":1}}],["createshape",{"2":{"13":1,"176":1}}],["createyaxisfigures",{"2":{"31":3,"165":2}}],["createxaxisfigures",{"2":{"31":3,"165":2}}],["createpointfigures",{"2":{"31":3,"165":2,"166":2}}],["create",{"0":{"72":1,"74":1,"101":1,"103":1},"1":{"102":1,"103":1},"2":{"29":1,"91":1,"110":1,"111":2,"139":1,"140":1,"165":6,"166":2}}],["createhtml",{"2":{"13":1}}],["createtooltipdatasource",{"2":{"29":3,"111":2,"139":2,"140":3,"178":2}}],["createtag",{"2":{"13":1,"176":1}}],["createtechnicalindicator",{"2":{"13":1,"176":1}}],["createannotation",{"2":{"13":1,"176":1}}],["createindicator",{"0":{"139":1},"2":{"4":1,"13":1,"73":1,"139":2,"141":1,"142":1,"176":1}}],["createoverlay",{"0":{"143":1},"2":{"3":1,"13":2,"75":1,"143":2,"144":1,"146":1,"176":1}}],["crosshair",{"2":{"13":2,"111":2,"169":2,"178":2}}],["cross",{"2":{"8":1,"111":6,"169":4}}],["child",{"2":{"169":2}}],["chinese",{"2":{"106":1}}],["checking",{"2":{"70":1}}],["checkcoordinateontext",{"0":{"57":1}}],["checkcoordinateonrect",{"0":{"56":1}}],["checkcoordinateonpolygon",{"0":{"55":1}}],["checkcoordinateonline",{"0":{"54":1}}],["checkcoordinateoncircle",{"0":{"53":1}}],["checkcoordinateonarc",{"0":{"52":1}}],["checks",{"2":{"26":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"53":1,"55":1,"56":1}}],["checkeventon",{"2":{"26":3,"92":2,"95":3}}],["check",{"2":{"5":2,"14":1,"15":1,"16":1,"52":1,"54":1,"57":1,"92":2}}],["charset=",{"2":{"103":2}}],["charts",{"2":{"22":1,"74":1}}],["chart",{"0":{"19":1,"70":1,"72":1,"101":1,"175":1},"1":{"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"102":1,"103":1},"2":{"1":1,"4":1,"8":2,"11":1,"13":3,"20":4,"21":5,"23":1,"24":1,"30":1,"32":1,"33":1,"65":3,"67":1,"70":1,"71":1,"72":1,"73":1,"75":1,"82":3,"84":1,"91":1,"102":8,"103":13,"105":1,"107":1,"108":1,"110":1,"111":2,"115":1,"116":1,"121":1,"126":1,"127":1,"130":1,"131":1,"133":2,"134":1,"136":1,"137":2,"139":2,"140":1,"143":1,"145":1,"151":1,"154":1,"155":1,"156":1,"157":1,"160":1,"161":2,"162":1,"164":1,"166":2,"167":3,"180":1,"181":1}}],["chat",{"2":{"80":1}}],["changing",{"2":{"6":1}}],["changes",{"2":{"167":1}}],["changed",{"2":{"13":25,"113":4,"173":10,"175":1,"176":11,"178":4}}],["change",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1},"2":{"1":1,"13":1,"14":1,"15":1,"16":1,"111":2,"113":2,"178":2}}],["caution",{"2":{"161":1}}],["carefully",{"2":{"82":1}}],["cancel",{"2":{"157":1,"165":2}}],["cannot",{"2":{"113":2}}],["canvastextbaseline",{"2":{"89":2}}],["canvastextalign",{"2":{"89":2}}],["canvasgradient",{"2":{"59":2,"61":2,"62":2,"89":2}}],["canvas",{"2":{"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"67":2,"83":3,"92":2,"111":2}}],["canvasrenderingcontext2d",{"2":{"26":2,"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"92":2,"111":2}}],["can",{"0":{"70":1},"2":{"20":3,"21":1,"73":1,"75":2,"82":1,"93":1,"94":2,"97":1,"100":1,"105":1,"106":1,"107":1,"111":2,"117":1,"123":1,"126":1,"127":1,"133":1,"134":1,"139":6,"141":1,"143":1,"147":1,"148":1,"149":1,"150":1,"151":2,"152":1,"153":1,"154":5,"158":1,"159":1,"160":3,"165":24,"166":2,"167":2,"169":6,"181":1,"182":2}}],["candles",{"2":{"128":1,"129":1}}],["candlesticks",{"2":{"111":4,"165":4}}],["candlestick",{"2":{"111":4,"130":1,"131":1,"165":4}}],["candle",{"0":{"71":1},"2":{"1":1,"2":1,"3":1,"7":8,"13":3,"72":2,"139":1,"140":3,"141":1,"142":1,"143":1,"154":1,"169":12,"173":3}}],["calls",{"2":{"144":1,"161":1}}],["calling",{"2":{"141":1,"142":1,"146":1}}],["call",{"2":{"71":1,"133":1,"137":1,"161":1}}],["callback",{"0":{"133":1,"134":1,"135":1,"139":1,"140":1,"156":1,"157":1},"2":{"7":1,"8":1,"113":2,"133":4,"134":4,"135":4,"138":2,"139":4,"140":4,"156":4,"157":4,"165":26,"169":2,"176":2}}],["calculates",{"2":{"112":4}}],["calculated",{"0":{"73":1}}],["calculate",{"2":{"48":1,"111":2}}],["calculation",{"2":{"29":2,"111":10,"112":3,"113":10,"140":2}}],["calcparms",{"2":{"29":2,"111":2,"139":2,"140":2}}],["calcparamstext",{"2":{"29":2,"111":2,"139":2,"140":2,"178":1}}],["calcparams",{"2":{"13":1,"29":3,"111":2,"112":3,"113":8,"139":2,"140":5}}],["calc",{"2":{"13":1,"29":3,"73":1,"109":3,"111":2,"113":2,"139":2,"140":5,"178":1}}],["calctechnicalindicator",{"2":{"13":1,"178":1}}],["calctextwidth",{"0":{"48":1},"2":{"4":1}}],["at",{"2":{"151":1,"152":1,"158":1}}],["attribute",{"0":{"92":1,"111":1,"165":1},"1":{"112":1,"113":1},"2":{"13":6,"83":2,"94":1,"178":2}}],["attributes",{"2":{"3":1,"13":1,"23":1,"94":1,"113":1}}],["attrs",{"2":{"2":1,"26":4,"29":4,"31":12,"83":4,"85":2,"86":2,"87":4,"88":2,"89":2,"92":4,"95":8,"111":2,"165":4,"166":2}}],["adjustment",{"0":{"171":1,"172":1,"173":1,"174":1,"178":1},"1":{"175":1,"176":1,"177":1}}],["adjust",{"2":{"139":1,"154":1}}],["additionally",{"2":{"133":1}}],["adding",{"0":{"106":1},"2":{"106":1,"107":1}}],["addshapetemplate",{"2":{"13":2,"175":1}}],["addtechnicalindicatortemplate",{"2":{"13":2,"175":1}}],["added",{"2":{"4":1,"13":1}}],["add",{"2":{"1":2,"2":2,"3":2,"4":1,"7":4,"8":1,"11":1,"13":3,"22":1,"25":1,"26":1,"29":1,"31":1,"80":1,"91":2,"99":2,"102":2,"103":2,"106":1,"110":2,"133":1,"134":1,"164":2}}],["affect",{"2":{"161":1}}],["affected",{"2":{"119":1}}],["after",{"0":{"70":1},"2":{"9":1,"64":1,"90":1,"107":1,"111":2,"160":1}}],["ao",{"2":{"109":1}}],["about",{"2":{"111":4,"165":4}}],["absoluteyaxis",{"2":{"176":1}}],["absolute",{"2":{"158":4,"159":4,"176":1}}],["abs",{"2":{"95":4,"166":4}}],["abandonment",{"2":{"13":1}}],["avoid",{"2":{"137":1}}],["average",{"2":{"112":1}}],["avp",{"2":{"65":2,"109":1}}],["available",{"2":{"21":1}}],["alipay",{"0":{"183":1}}],["alignment",{"2":{"57":2,"63":2,"89":2}}],["align",{"2":{"57":3,"63":3,"89":2}}],["also",{"2":{"119":1}}],["always",{"2":{"70":1,"161":1,"169":8}}],["alphabetic",{"2":{"57":2,"63":2}}],["all",{"2":{"7":1,"13":2,"82":1,"140":1,"141":1,"142":1,"157":1,"173":1,"177":1}}],["activeradius",{"2":{"169":2}}],["activebordersize",{"2":{"169":2}}],["activebordercolor",{"2":{"169":2}}],["activebackgroundcolor",{"2":{"169":6}}],["activecolor",{"2":{"169":2}}],["actions",{"2":{"156":1,"157":1}}],["action",{"2":{"155":1}}],["accomplished",{"2":{"106":1}}],["according",{"2":{"49":1,"141":1,"158":1}}],["acquisition",{"2":{"4":1}}],["auto",{"2":{"169":4}}],["automatically",{"2":{"20":1,"120":1}}],["auxiliary",{"2":{"29":1,"140":1}}],["a",{"0":{"71":1,"72":1,"100":1,"103":2},"2":{"20":3,"21":2,"22":1,"25":1,"26":1,"29":1,"31":1,"34":1,"37":2,"38":2,"39":1,"40":1,"41":2,"42":2,"43":3,"50":1,"51":1,"52":1,"53":2,"54":1,"55":2,"56":2,"57":1,"62":1,"65":3,"67":1,"75":1,"82":1,"83":1,"91":1,"92":4,"93":3,"94":5,"95":5,"108":1,"110":2,"111":8,"113":3,"130":1,"131":1,"138":1,"139":4,"145":1,"147":1,"151":1,"152":1,"154":2,"156":1,"162":1,"165":6,"166":4,"167":2,"169":8,"176":1,"180":1,"182":1}}],["asia",{"2":{"20":1,"120":1}}],["as",{"0":{"102":1},"2":{"8":2,"20":2,"43":1,"45":1,"46":1,"64":1,"83":2,"90":1,"97":1,"112":1,"113":4,"120":1,"165":2,"181":1}}],["arc",{"0":{"52":1,"58":1,"85":1},"2":{"10":1,"52":5,"58":6,"83":2,"84":1,"169":2}}],["are",{"2":{"9":1,"13":3,"29":1,"31":1,"82":2,"84":1,"112":3,"113":2,"140":1,"143":1,"145":1,"156":1,"157":1,"165":10,"166":2,"170":1,"171":1,"172":1,"173":2,"176":1,"177":1,"178":1}}],["area",{"2":{"8":1,"72":2,"111":4,"169":4}}],["array",{"2":{"8":1,"29":6,"31":8,"51":2,"54":2,"55":2,"59":2,"60":2,"61":4,"62":2,"87":4,"111":10,"133":3,"134":3,"136":2,"139":6,"140":6,"143":6,"145":2,"158":5,"159":5,"165":8,"169":6}}],["arrays",{"2":{"3":1}}],["axisline",{"2":{"169":4}}],["axis",{"2":{"8":1,"13":1,"31":4,"50":1,"52":2,"53":2,"56":2,"57":2,"58":2,"59":2,"62":2,"63":2,"85":4,"86":4,"88":4,"89":4,"94":2,"111":8,"145":2,"158":2,"159":1,"165":16}}],["axisoptions",{"2":{"4":1,"139":5,"154":5}}],["animation",{"2":{"147":2,"148":2,"149":2,"150":2,"151":2,"152":2,"153":2}}],["animationduration",{"0":{"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1},"2":{"147":3,"148":3,"149":3,"150":3,"151":3,"152":3,"153":3}}],["angle",{"2":{"52":2,"58":2,"85":4}}],["another",{"2":{"36":1}}],["annotation",{"2":{"13":1,"172":1,"173":1,"176":1}}],["any",{"2":{"13":1,"26":4,"29":6,"31":38,"35":4,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"43":6,"57":2,"63":2,"89":2,"92":8,"111":16,"139":6,"140":6,"143":4,"145":2,"155":2,"156":2,"157":2,"165":14}}],["an",{"0":{"74":1},"2":{"8":1,"20":1,"40":1,"58":1,"82":1,"117":1,"133":1,"134":1,"139":1,"143":3,"158":3,"159":3,"160":1,"164":1,"169":6}}],["and",{"2":{"3":2,"4":1,"6":1,"7":5,"8":3,"9":2,"11":1,"13":9,"20":3,"22":1,"29":2,"31":4,"49":2,"51":1,"64":1,"65":3,"67":1,"80":1,"82":2,"83":2,"90":1,"91":2,"93":1,"94":5,"95":1,"104":1,"105":1,"108":1,"110":2,"111":2,"112":4,"117":1,"119":1,"124":1,"125":1,"135":1,"137":1,"139":1,"140":2,"141":1,"145":3,"156":1,"157":1,"158":1,"162":1,"164":1,"165":18,"166":2,"169":6,"171":1,"173":4,"176":6,"181":4}}],["appreciated",{"2":{"182":1}}],["appended",{"2":{"135":1}}],["applymoredata",{"0":{"134":1},"2":{"7":1,"65":1}}],["applynewdata",{"0":{"133":1},"2":{"7":1,"8":1,"65":1,"102":2,"103":2}}],["apis",{"2":{"4":1,"20":1,"177":1}}],["api",{"0":{"19":1,"114":1,"174":1,"175":1,"176":1,"177":1},"1":{"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"175":1,"176":1,"177":1},"2":{"1":1,"3":1,"4":1,"7":3,"8":1,"13":3,"65":1,"75":1,"107":1,"181":1}}],["119",{"2":{"169":8}}],["18987",{"2":{"143":2,"145":2}}],["184",{"2":{"102":2,"103":2}}],["192",{"2":{"169":6}}],["191",{"2":{"102":2,"103":2}}],["19",{"2":{"102":2,"103":2}}],["197",{"2":{"102":2,"103":2}}],["194",{"2":{"102":2,"103":2}}],["12",{"2":{"102":2,"103":2,"109":9,"169":24}}],["1m",{"2":{"20":1,"29":1,"45":1,"140":1}}],["1k",{"2":{"20":1,"29":1,"45":1,"140":1}}],["1677ff",{"2":{"169":22}}],["16098",{"2":{"143":2,"145":2}}],["1614171202000",{"2":{"143":2,"145":2}}],["1614171282000",{"2":{"143":2,"145":2}}],["16",{"2":{"13":1,"102":2,"103":2}}],["17",{"2":{"12":1}}],["100",{"2":{"139":2,"154":2}}],["100k",{"2":{"111":2}}],["100000",{"2":{"111":2}}],["1000000",{"2":{"20":1,"29":1,"45":1,"140":1}}],["1000",{"2":{"20":1,"29":1,"45":1,"111":2,"140":1}}],["105",{"2":{"102":2,"103":2}}],["10",{"2":{"9":1,"109":7,"112":4,"113":2,"169":12}}],["135",{"2":{"102":2,"103":2}}],["13",{"2":{"4":1,"109":1}}],["150",{"2":{"169":12}}],["1587660540000",{"2":{"102":2,"103":2}}],["1587660480000",{"2":{"102":2,"103":2}}],["1587660420000",{"2":{"102":2,"103":2}}],["1587660360000",{"2":{"102":2,"103":2}}],["1587660300000",{"2":{"102":2,"103":2}}],["1587660240000",{"2":{"102":2,"103":2}}],["1587660180000",{"2":{"102":2,"103":2}}],["1587660120000",{"2":{"102":2,"103":2}}],["1587660060000",{"2":{"102":2,"103":2}}],["1587660000000",{"2":{"102":2,"103":2}}],["15",{"2":{"2":1,"8":1,"169":2}}],["142",{"2":{"169":6}}],["14",{"2":{"1":1,"10":1,"102":2,"103":2,"109":3}}],["1",{"0":{"1":1,"6":1,"8":1,"9":1,"10":2,"11":1,"12":1,"94":1,"112":1},"2":{"43":1,"95":2,"113":6,"139":6,"140":6,"143":2,"145":2,"154":6,"166":4,"169":76}}],["50",{"2":{"109":1}}],["55",{"2":{"102":2,"103":2}}],["56",{"2":{"102":2,"103":2}}],["53",{"2":{"102":4,"103":4}}],["5",{"0":{"1":1,"2":1,"17":1},"2":{"17":1,"109":3,"112":4,"113":2,"140":4,"169":8}}],["96",{"2":{"102":2,"103":2}}],["935ebd",{"2":{"169":2}}],["93",{"2":{"102":6,"103":6}}],["94",{"2":{"102":2,"103":2}}],["99",{"2":{"102":4,"103":4}}],["9",{"0":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1},"2":{"109":3,"170":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/assets/chunks/@localSearchIndexroot.64cd48c1.js b/assets/chunks/@localSearchIndexroot.64cd48c1.js new file mode 100644 index 000000000..c8f17aaca --- /dev/null +++ b/assets/chunks/@localSearchIndexroot.64cd48c1.js @@ -0,0 +1 @@ +const t='{"documentCount":189,"nextId":189,"documentIds":{"0":"/guide/changelog.html#📠-更新日志","1":"/guide/changelog.html#_9-5-1","2":"/guide/changelog.html#_9-5-0","3":"/guide/changelog.html#_9-4-0","4":"/guide/changelog.html#_9-3-0","5":"/guide/changelog.html#_9-2-2","6":"/guide/changelog.html#_9-2-1","7":"/guide/changelog.html#_9-2-0","8":"/guide/changelog.html#_9-1-3","9":"/guide/changelog.html#_9-1-2","10":"/guide/changelog.html#_9-1-1","11":"/guide/changelog.html#_9-1-0","12":"/guide/changelog.html#_9-0-1","13":"/guide/changelog.html#_9-0-0","14":"/guide/changelog.html#_8-x","15":"/guide/changelog.html#_7-x","16":"/guide/changelog.html#_6-x","17":"/guide/changelog.html#_5-x","18":"/guide/changelog.html#_4-x","19":"/guide/chart-api.html#图表api","20":"/guide/chart-api.html#init-ds-options","21":"/guide/chart-api.html#dispose-dcs","22":"/guide/chart-api.html#registerlocale-locale-locales","23":"/guide/chart-api.html#getoverlayclass","24":"/guide/chart-api.html#getsupportedlocales","25":"/guide/chart-api.html#registerstyles-name-styles","26":"/guide/chart-api.html#registerfigure-figure","27":"/guide/chart-api.html#getsupportedfigures","28":"/guide/chart-api.html#getfigureclass-name","29":"/guide/chart-api.html#registerindicator-indicator","30":"/guide/chart-api.html#getsupportedindicators","31":"/guide/chart-api.html#registeroverlay-overlay","32":"/guide/chart-api.html#getsupportedoverlays","33":"/guide/chart-api.html#version","34":"/guide/chart-api.html#utils","35":"/guide/chart-api.html#utils-clone-target","36":"/guide/chart-api.html#utils-merge-target-source","37":"/guide/chart-api.html#utils-isstring-value","38":"/guide/chart-api.html#utils-isnumber-value","39":"/guide/chart-api.html#utils-isvalid-value","40":"/guide/chart-api.html#utils-isobject-value","41":"/guide/chart-api.html#utils-isfunction-value","42":"/guide/chart-api.html#utils-isboolean-value","43":"/guide/chart-api.html#utils-formatvalue-value-key-defaultvalue","44":"/guide/chart-api.html#utils-formatprecision-value","45":"/guide/chart-api.html#utils-formatbignumber-value","46":"/guide/chart-api.html#utils-formatdate-datetimeformat-timestamp-format","47":"/guide/chart-api.html#utils-formatthousands-value-sign","48":"/guide/chart-api.html#utils-calctextwidth-text-size-weight-family","49":"/guide/chart-api.html#utils-getlinearslopeintercept-coordinate1-coordinate2","50":"/guide/chart-api.html#utils-getlinearyfromcoordinates-coordinate1-coordinate2-targetcoordinate","51":"/guide/chart-api.html#utils-getlinearyfromslopeintercept-kb-targetcoordinate","52":"/guide/chart-api.html#utils-checkcoordinateonarc-coordinate-arc","53":"/guide/chart-api.html#utils-checkcoordinateoncircle-coordinate-circle","54":"/guide/chart-api.html#utils-checkcoordinateonline-coordinate-line","55":"/guide/chart-api.html#utils-checkcoordinateonpolygon-coordinate-polygon","56":"/guide/chart-api.html#utils-checkcoordinateonrect-coordinate-rect","57":"/guide/chart-api.html#utils-checkcoordinateontext-coordinate-text-styles","58":"/guide/chart-api.html#utils-drawarc-ctx-arc-styles","59":"/guide/chart-api.html#utils-drawcircle-ctx-circle-styles","60":"/guide/chart-api.html#utils-drawline-ctx-line-styles","61":"/guide/chart-api.html#utils-drawpolygon-ctx-polygon-styles","62":"/guide/chart-api.html#utils-drawrect-ctx-rect-styles","63":"/guide/chart-api.html#utils-drawtext-ctx-text-styles","64":"/guide/chart-api.html#utils-drawrecttext-ctx-recttext-styles","65":"/guide/datasource.html#📚-数据","66":"/guide/environment.html#🏝️-环境要求","67":"/guide/environment.html#浏览器支持","68":"/guide/environment.html#兼容处理","69":"/guide/faq.html#🙋-常见问题","70":"/guide/faq.html#初始化图表后-只能看到一条线-是怎么回事","71":"/guide/faq.html#蜡烛柱显示趋近于一条线-看不到波动-怎么办","72":"/guide/faq.html#分时图怎么创建","73":"/guide/faq.html#内置的技术指标-计算出来的数据不是想要的-怎么办","74":"/guide/faq.html#想创建一个内置技术指标之外的指标-怎么办","75":"/guide/faq.html#想标记一下买卖点-该怎么做","76":"/guide/feedback.html#💬-反馈和共建","77":"/guide/feedback.html#github","78":"/guide/feedback.html#telegram","79":"/guide/feedback.html#discord","80":"/guide/feedback.html#微信讨论群","81":"/guide/feedback.html#qq讨论群","82":"/guide/figure.html#基础图形","83":"/guide/figure.html#使用示例","84":"/guide/figure.html#内置基础图形","85":"/guide/figure.html#arc","86":"/guide/figure.html#circle","87":"/guide/figure.html#line","88":"/guide/figure.html#polygon","89":"/guide/figure.html#rect","90":"/guide/figure.html#text","91":"/guide/figure.html#recttext","92":"/guide/figure.html#自定义基础图形","93":"/guide/figure.html#属性说明","94":"/guide/figure.html#示例","95":"/guide/figure.html#步骤一","96":"/guide/figure.html#步骤二","97":"/guide/getting-started.html#🚀-快速开始","98":"/guide/getting-started.html#获取klinechart","99":"/guide/getting-started.html#使用npm","100":"/guide/getting-started.html#使用yarn","101":"/guide/getting-started.html#使用cdn","102":"/guide/getting-started.html#创建第一个图表","103":"/guide/getting-started.html#在npm或yarn等包管理工具的项目中创建","104":"/guide/getting-started.html#在直接通过-script-标签引入的项目中创建","105":"/guide/hot-key.html#⌨️-快捷键","106":"/guide/i18n.html#🌏-国际化","107":"/guide/i18n.html#增加语言包","108":"/guide/i18n.html#使用语言包","109":"/guide/indicator.html#技术指标","110":"/guide/indicator.html#内置技术指标","111":"/guide/indicator.html#自定义技术指标","112":"/guide/indicator.html#属性说明","113":"/guide/indicator.html#示例","114":"/guide/indicator.html#步骤一","115":"/guide/indicator.html#步骤二","116":"/guide/instance-api.html#实例api","117":"/guide/instance-api.html#getdom-paneid-position","118":"/guide/instance-api.html#getsize-paneid-position","119":"/guide/instance-api.html#setstyles-styles","120":"/guide/instance-api.html#getstyles","121":"/guide/instance-api.html#setpricevolumeprecision-priceprecision-volumeprecision","122":"/guide/instance-api.html#settimezone-timezone","123":"/guide/instance-api.html#gettimezone","124":"/guide/instance-api.html#setzoomenabled-enabled","125":"/guide/instance-api.html#iszoomenabled","126":"/guide/instance-api.html#setscrollenabled-enabled","127":"/guide/instance-api.html#isscrollenabled","128":"/guide/instance-api.html#setoffsetrightdistance-distance","129":"/guide/instance-api.html#getoffsetrightdistance","130":"/guide/instance-api.html#setleftminvisiblebarcount-barcount","131":"/guide/instance-api.html#setrightminvisiblebarcount-barcount","132":"/guide/instance-api.html#setbarspace-space","133":"/guide/instance-api.html#getbarspace","134":"/guide/instance-api.html#getvisiblerange","135":"/guide/instance-api.html#applynewdata-datalist-more-callback","136":"/guide/instance-api.html#applymoredata-datalist-more-callback","137":"/guide/instance-api.html#updatedata-data-callback","138":"/guide/instance-api.html#getdatalist","139":"/guide/instance-api.html#cleardata","140":"/guide/instance-api.html#loadmore-cb","141":"/guide/instance-api.html#createindicator-value-isstack-paneoptions-callback","142":"/guide/instance-api.html#overrideindicator-override-paneid-callback","143":"/guide/instance-api.html#getindicatorbypaneid-paneid-name","144":"/guide/instance-api.html#removeindicator-paneid-name","145":"/guide/instance-api.html#createoverlay-value-paneid","146":"/guide/instance-api.html#getoverlaybyid-id","147":"/guide/instance-api.html#overrideoverlay-override","148":"/guide/instance-api.html#removeoverlay-remove","149":"/guide/instance-api.html#scrollbydistance-distance-animationduration","150":"/guide/instance-api.html#scrolltorealtime-animationduration","151":"/guide/instance-api.html#scrolltodataindex-dataindex-animationduration","152":"/guide/instance-api.html#scrolltotimestamp-timestamp-animationduration","153":"/guide/instance-api.html#zoomatcoordinate-scale-coordinate-animationduration","154":"/guide/instance-api.html#zoomatdataindex-scale-dataindex-animationduration","155":"/guide/instance-api.html#zoomattimestamp-scale-timestamp-animationduration","156":"/guide/instance-api.html#setpaneoptions-options","157":"/guide/instance-api.html#executeaction-type-data","158":"/guide/instance-api.html#subscribeaction-type-callback","159":"/guide/instance-api.html#unsubscribeaction-type-callback","160":"/guide/instance-api.html#converttopixel-value-finder","161":"/guide/instance-api.html#convertfrompixel-coordinate-finder","162":"/guide/instance-api.html#getconvertpictureurl-includeoverlay-type-backgroundcolor","163":"/guide/instance-api.html#resize","164":"/guide/overlay.html#覆盖物","165":"/guide/overlay.html#内置覆盖物类型","166":"/guide/overlay.html#自定义覆盖物","167":"/guide/overlay.html#属性说明","168":"/guide/overlay.html#示例","169":"/guide/styles.html#🎨-样式配置","170":"/guide/styles.html#图解说明","171":"/guide/styles.html#默认完整配置","172":"/guide/v8-to-v9.html#🛠️-从-v8-到-v9","173":"/guide/v8-to-v9.html#引入调整","174":"/guide/v8-to-v9.html#设计调整","175":"/guide/v8-to-v9.html#样式配置调整","176":"/guide/v8-to-v9.html#api调整","177":"/guide/v8-to-v9.html#图表api","178":"/guide/v8-to-v9.html#实例api","179":"/guide/v8-to-v9.html#图形辅助api","180":"/guide/v8-to-v9.html#自定义技术指标调整","181":"/guide/what-is-klinechart.html#📃-介绍","182":"/guide/what-is-klinechart.html#什么是-klinechart","183":"/guide/what-is-klinechart.html#特性","184":"/sponsor.html#❤️-赞助","185":"/sponsor.html#支付宝","186":"/sponsor.html#微信支付","187":"/sponsor.html#paypal","188":"/sponsor.html#加密货币"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,1],"1":[3,2,13],"2":[3,2,17],"3":[3,2,13],"4":[3,2,21],"5":[2,2,8],"6":[3,2,11],"7":[3,2,31],"8":[3,2,16],"9":[3,2,10],"10":[2,2,8],"11":[3,2,9],"12":[3,2,6],"13":[2,2,117],"14":[2,2,7],"15":[2,2,7],"16":[2,2,7],"17":[2,2,5],"18":[2,2,5],"19":[1,1,1],"20":[4,1,53],"21":[3,1,15],"22":[4,1,20],"23":[2,1,10],"24":[2,1,6],"25":[4,1,14],"26":[3,1,26],"27":[2,1,6],"28":[3,1,9],"29":[3,1,86],"30":[2,1,6],"31":[3,1,104],"32":[2,1,6],"33":[2,1,6],"34":[1,1,2],"35":[4,2,7],"36":[5,2,9],"37":[4,2,8],"38":[4,2,8],"39":[4,2,8],"40":[4,2,8],"41":[4,2,8],"42":[4,2,8],"43":[6,2,19],"44":[4,2,10],"45":[4,2,11],"46":[6,2,20],"47":[5,2,10],"48":[7,2,12],"49":[5,2,15],"50":[6,2,11],"51":[5,2,12],"52":[5,2,21],"53":[5,2,17],"54":[5,2,14],"55":[5,2,14],"56":[5,2,19],"57":[6,2,45],"58":[6,2,37],"59":[6,2,41],"60":[6,2,32],"61":[6,2,38],"62":[6,2,45],"63":[6,2,76],"64":[6,2,10],"65":[2,1,36],"66":[2,1,1],"67":[1,2,11],"68":[1,2,1],"69":[2,1,1],"70":[4,2,3],"71":[4,2,6],"72":[2,2,9],"73":[4,2,2],"74":[3,2,3],"75":[3,2,7],"76":[2,1,1],"77":[1,2,10],"78":[1,2,5],"79":[1,2,5],"80":[1,2,6],"81":[1,2,1],"82":[1,1,10],"83":[1,1,26],"84":[1,1,9],"85":[1,2,34],"86":[1,2,38],"87":[1,2,30],"88":[1,2,38],"89":[1,2,42],"90":[1,2,68],"91":[1,2,5],"92":[1,1,6],"93":[1,2,29],"94":[1,2,2],"95":[1,3,33],"96":[1,3,54],"97":[2,1,1],"98":[1,2,5],"99":[1,3,6],"100":[1,3,5],"101":[1,3,22],"102":[1,2,1],"103":[1,3,92],"104":[3,3,123],"105":[2,1,10],"106":[2,1,8],"107":[1,2,26],"108":[1,2,8],"109":[1,1,2],"110":[1,1,48],"111":[1,1,6],"112":[1,2,178],"113":[1,2,5],"114":[1,3,30],"115":[1,3,63],"116":[1,1,1],"117":[4,1,18],"118":[4,1,25],"119":[3,1,15],"120":[2,1,7],"121":[4,1,16],"122":[3,1,14],"123":[2,1,6],"124":[3,1,8],"125":[2,1,6],"126":[3,1,8],"127":[2,1,6],"128":[3,1,8],"129":[2,1,6],"130":[3,1,8],"131":[3,1,8],"132":[3,1,8],"133":[2,1,6],"134":[2,1,10],"135":[5,1,28],"136":[5,1,26],"137":[4,1,22],"138":[2,1,16],"139":[2,1,10],"140":[3,1,13],"141":[6,1,107],"142":[5,1,121],"143":[4,1,18],"144":[4,1,18],"145":[4,1,89],"146":[3,1,9],"147":[3,1,117],"148":[3,1,24],"149":[4,1,13],"150":[3,1,12],"151":[4,1,13],"152":[4,1,13],"153":[5,1,19],"154":[5,1,15],"155":[5,1,15],"156":[3,1,47],"157":[4,1,13],"158":[4,1,22],"159":[4,1,23],"160":[4,1,31],"161":[4,1,27],"162":[5,1,21],"163":[2,1,11],"164":[1,1,2],"165":[1,1,16],"166":[1,1,6],"167":[1,2,198],"168":[1,2,47],"169":[2,1,9],"170":[1,2,1],"171":[1,2,219],"172":[5,1,12],"173":[1,5,8],"174":[1,5,5],"175":[1,5,33],"176":[1,5,1],"177":[1,6,9],"178":[1,6,71],"179":[1,6,3],"180":[1,5,39],"181":[2,1,1],"182":[3,2,3],"183":[1,2,24],"184":[2,1,9],"185":[1,2,1],"186":[1,2,1],"187":[1,2,2],"188":[1,2,11]},"averageFieldLength":[2.7248677248677247,1.7354497354497354,22.613756613756614],"storedFields":{"0":{"title":"📠 更新日志","titles":[]},"1":{"title":"9.5.1","titles":["📠 更新日志"]},"2":{"title":"9.5.0","titles":["📠 更新日志"]},"3":{"title":"9.4.0","titles":["📠 更新日志"]},"4":{"title":"9.3.0","titles":["📠 更新日志"]},"5":{"title":"9.2.2","titles":["📠 更新日志"]},"6":{"title":"9.2.1","titles":["📠 更新日志"]},"7":{"title":"9.2.0","titles":["📠 更新日志"]},"8":{"title":"9.1.3","titles":["📠 更新日志"]},"9":{"title":"9.1.2","titles":["📠 更新日志"]},"10":{"title":"9.1.1","titles":["📠 更新日志"]},"11":{"title":"9.1.0","titles":["📠 更新日志"]},"12":{"title":"9.0.1","titles":["📠 更新日志"]},"13":{"title":"9.0.0","titles":["📠 更新日志"]},"14":{"title":"8.x","titles":["📠 更新日志"]},"15":{"title":"7.x","titles":["📠 更新日志"]},"16":{"title":"6.x","titles":["📠 更新日志"]},"17":{"title":"5.x","titles":["📠 更新日志"]},"18":{"title":"4.x","titles":["📠 更新日志"]},"19":{"title":"图表API","titles":[]},"20":{"title":"init(ds, options)","titles":["图表API"]},"21":{"title":"dispose(dcs)","titles":["图表API"]},"22":{"title":"registerLocale(locale, locales)","titles":["图表API"]},"23":{"title":"getOverlayClass()","titles":["图表API"]},"24":{"title":"getSupportedLocales()","titles":["图表API"]},"25":{"title":"registerStyles(name, styles)","titles":["图表API"]},"26":{"title":"registerFigure(figure)","titles":["图表API"]},"27":{"title":"getSupportedFigures()","titles":["图表API"]},"28":{"title":"getFigureClass(name)","titles":["图表API"]},"29":{"title":"registerIndicator(indicator)","titles":["图表API"]},"30":{"title":"getSupportedIndicators()","titles":["图表API"]},"31":{"title":"registerOverlay(overlay)","titles":["图表API"]},"32":{"title":"getSupportedOverlays()","titles":["图表API"]},"33":{"title":"version()","titles":["图表API"]},"34":{"title":"utils","titles":["图表API"]},"35":{"title":"utils.clone(target)","titles":["图表API","utils"]},"36":{"title":"utils.merge(target, source)","titles":["图表API","utils"]},"37":{"title":"utils.isString(value)","titles":["图表API","utils"]},"38":{"title":"utils.isNumber(value)","titles":["图表API","utils"]},"39":{"title":"utils.isValid(value)","titles":["图表API","utils"]},"40":{"title":"utils.isObject(value)","titles":["图表API","utils"]},"41":{"title":"utils.isFunction(value)","titles":["图表API","utils"]},"42":{"title":"utils.isBoolean(value)","titles":["图表API","utils"]},"43":{"title":"utils.formatValue(value, key, defaultValue)","titles":["图表API","utils"]},"44":{"title":"utils.formatPrecision(value)","titles":["图表API","utils"]},"45":{"title":"utils.formatBigNumber(value)","titles":["图表API","utils"]},"46":{"title":"utils.formatDate(dateTimeFormat, timestamp, format)","titles":["图表API","utils"]},"47":{"title":"utils.formatThousands(value, sign)","titles":["图表API","utils"]},"48":{"title":"utils.calcTextWidth(text, size, weight, family)","titles":["图表API","utils"]},"49":{"title":"utils.getLinearSlopeIntercept(coordinate1, coordinate2)","titles":["图表API","utils"]},"50":{"title":"utils.getLinearYFromCoordinates(coordinate1, coordinate2, targetCoordinate)","titles":["图表API","utils"]},"51":{"title":"utils.getLinearYFromSlopeIntercept(kb, targetCoordinate)","titles":["图表API","utils"]},"52":{"title":"utils.checkCoordinateOnArc(coordinate, arc)","titles":["图表API","utils"]},"53":{"title":"utils.checkCoordinateOnCircle(coordinate, circle)","titles":["图表API","utils"]},"54":{"title":"utils.checkCoordinateOnLine(coordinate, line)","titles":["图表API","utils"]},"55":{"title":"utils.checkCoordinateOnPolygon(coordinate, polygon)","titles":["图表API","utils"]},"56":{"title":"utils.checkCoordinateOnRect(coordinate, rect)","titles":["图表API","utils"]},"57":{"title":"utils.checkCoordinateOnText(coordinate, text, styles)","titles":["图表API","utils"]},"58":{"title":"utils.drawArc(ctx, arc, styles)","titles":["图表API","utils"]},"59":{"title":"utils.drawCircle(ctx, circle, styles)","titles":["图表API","utils"]},"60":{"title":"utils.drawLine(ctx, line, styles)","titles":["图表API","utils"]},"61":{"title":"utils.drawPolygon(ctx, polygon, styles)","titles":["图表API","utils"]},"62":{"title":"utils.drawRect(ctx, rect, styles)","titles":["图表API","utils"]},"63":{"title":"utils.drawText(ctx, text, styles)","titles":["图表API","utils"]},"64":{"title":"utils.drawRectText(ctx, rectText, styles)","titles":["图表API","utils"]},"65":{"title":"📚 数据","titles":[]},"66":{"title":"🏝️ 环境要求","titles":[]},"67":{"title":"浏览器支持","titles":["🏝️ 环境要求"]},"68":{"title":"兼容处理","titles":["🏝️ 环境要求"]},"69":{"title":"🙋 常见问题","titles":[]},"70":{"title":"初始化图表后,只能看到一条线,是怎么回事?","titles":["🙋 常见问题"]},"71":{"title":"蜡烛柱显示趋近于一条线,看不到波动,怎么办?","titles":["🙋 常见问题"]},"72":{"title":"分时图怎么创建?","titles":["🙋 常见问题"]},"73":{"title":"内置的技术指标,计算出来的数据不是想要的,怎么办?","titles":["🙋 常见问题"]},"74":{"title":"想创建一个内置技术指标之外的指标,怎么办?","titles":["🙋 常见问题"]},"75":{"title":"想标记一下买卖点,该怎么做?","titles":["🙋 常见问题"]},"76":{"title":"💬 反馈和共建","titles":[]},"77":{"title":"Github","titles":["💬 反馈和共建"]},"78":{"title":"Telegram","titles":["💬 反馈和共建"]},"79":{"title":"Discord","titles":["💬 反馈和共建"]},"80":{"title":"微信讨论群","titles":["💬 反馈和共建"]},"81":{"title":"QQ讨论群","titles":["💬 反馈和共建"]},"82":{"title":"基础图形","titles":[]},"83":{"title":"使用示例","titles":["基础图形"]},"84":{"title":"内置基础图形","titles":["基础图形"]},"85":{"title":"arc","titles":["基础图形","内置基础图形"]},"86":{"title":"circle","titles":["基础图形","内置基础图形"]},"87":{"title":"line","titles":["基础图形","内置基础图形"]},"88":{"title":"polygon","titles":["基础图形","内置基础图形"]},"89":{"title":"rect","titles":["基础图形","内置基础图形"]},"90":{"title":"text","titles":["基础图形","内置基础图形"]},"91":{"title":"rectText","titles":["基础图形","内置基础图形"]},"92":{"title":"自定义基础图形","titles":["基础图形"]},"93":{"title":"属性说明","titles":["基础图形","自定义基础图形"]},"94":{"title":"示例","titles":["基础图形","自定义基础图形"]},"95":{"title":"步骤一","titles":["基础图形","自定义基础图形","示例"]},"96":{"title":"步骤二","titles":["基础图形","自定义基础图形","示例"]},"97":{"title":"🚀 快速开始","titles":[]},"98":{"title":"获取KLineChart","titles":["🚀 快速开始"]},"99":{"title":"使用npm","titles":["🚀 快速开始","获取KLineChart"]},"100":{"title":"使用yarn","titles":["🚀 快速开始","获取KLineChart"]},"101":{"title":"使用CDN","titles":["🚀 快速开始","获取KLineChart"]},"102":{"title":"创建第一个图表","titles":["🚀 快速开始"]},"103":{"title":"在npm或yarn等包管理工具的项目中创建","titles":["🚀 快速开始","创建第一个图表"]},"104":{"title":"在直接通过 script 标签引入的项目中创建","titles":["🚀 快速开始","创建第一个图表"]},"105":{"title":"⌨️ 快捷键","titles":[]},"106":{"title":"🌏 国际化","titles":[]},"107":{"title":"增加语言包","titles":["🌏 国际化"]},"108":{"title":"使用语言包","titles":["🌏 国际化"]},"109":{"title":"技术指标","titles":[]},"110":{"title":"内置技术指标","titles":["技术指标"]},"111":{"title":"自定义技术指标","titles":["技术指标"]},"112":{"title":"属性说明","titles":["技术指标","自定义技术指标"]},"113":{"title":"示例","titles":["技术指标","自定义技术指标"]},"114":{"title":"步骤一","titles":["技术指标","自定义技术指标","示例"]},"115":{"title":"步骤二","titles":["技术指标","自定义技术指标","示例"]},"116":{"title":"实例API","titles":[]},"117":{"title":"getDom(paneId, position)","titles":["实例API"]},"118":{"title":"getSize(paneId, position)","titles":["实例API"]},"119":{"title":"setStyles(styles)","titles":["实例API"]},"120":{"title":"getStyles()","titles":["实例API"]},"121":{"title":"setPriceVolumePrecision(pricePrecision, volumePrecision)","titles":["实例API"]},"122":{"title":"setTimezone(timezone)","titles":["实例API"]},"123":{"title":"getTimezone()","titles":["实例API"]},"124":{"title":"setZoomEnabled(enabled)","titles":["实例API"]},"125":{"title":"isZoomEnabled()","titles":["实例API"]},"126":{"title":"setScrollEnabled(enabled)","titles":["实例API"]},"127":{"title":"isScrollEnabled()","titles":["实例API"]},"128":{"title":"setOffsetRightDistance(distance)","titles":["实例API"]},"129":{"title":"getOffsetRightDistance()","titles":["实例API"]},"130":{"title":"setLeftMinVisibleBarCount(barCount)","titles":["实例API"]},"131":{"title":"setRightMinVisibleBarCount(barCount)","titles":["实例API"]},"132":{"title":"setBarSpace(space)","titles":["实例API"]},"133":{"title":"getBarSpace()","titles":["实例API"]},"134":{"title":"getVisibleRange()","titles":["实例API"]},"135":{"title":"applyNewData(dataList, more, callback)","titles":["实例API"]},"136":{"title":"applyMoreData(dataList, more, callback)","titles":["实例API"]},"137":{"title":"updateData(data, callback)","titles":["实例API"]},"138":{"title":"getDataList()","titles":["实例API"]},"139":{"title":"clearData()","titles":["实例API"]},"140":{"title":"loadMore(cb)","titles":["实例API"]},"141":{"title":"createIndicator(value, isStack, paneOptions, callback)","titles":["实例API"]},"142":{"title":"overrideIndicator(override, paneId, callback)","titles":["实例API"]},"143":{"title":"getIndicatorByPaneId(paneId, name)","titles":["实例API"]},"144":{"title":"removeIndicator(paneId, name)","titles":["实例API"]},"145":{"title":"createOverlay(value, paneId)","titles":["实例API"]},"146":{"title":"getOverlayById(id)","titles":["实例API"]},"147":{"title":"overrideOverlay(override)","titles":["实例API"]},"148":{"title":"removeOverlay(remove)","titles":["实例API"]},"149":{"title":"scrollByDistance(distance, animationDuration)","titles":["实例API"]},"150":{"title":"scrollToRealTime(animationDuration)","titles":["实例API"]},"151":{"title":"scrollToDataIndex(dataIndex, animationDuration)","titles":["实例API"]},"152":{"title":"scrollToTimestamp(timestamp, animationDuration)","titles":["实例API"]},"153":{"title":"zoomAtCoordinate(scale, coordinate, animationDuration)","titles":["实例API"]},"154":{"title":"zoomAtDataIndex(scale, dataIndex, animationDuration)","titles":["实例API"]},"155":{"title":"zoomAtTimestamp(scale, timestamp, animationDuration)","titles":["实例API"]},"156":{"title":"setPaneOptions(options)","titles":["实例API"]},"157":{"title":"executeAction(type, data)","titles":["实例API"]},"158":{"title":"subscribeAction(type, callback)","titles":["实例API"]},"159":{"title":"unsubscribeAction(type, callback)","titles":["实例API"]},"160":{"title":"convertToPixel(value, finder)","titles":["实例API"]},"161":{"title":"convertFromPixel(coordinate, finder)","titles":["实例API"]},"162":{"title":"getConvertPictureUrl(includeOverlay, type, backgroundColor)","titles":["实例API"]},"163":{"title":"resize()","titles":["实例API"]},"164":{"title":"覆盖物","titles":[]},"165":{"title":"内置覆盖物类型","titles":["覆盖物"]},"166":{"title":"自定义覆盖物","titles":["覆盖物"]},"167":{"title":"属性说明","titles":["覆盖物","自定义覆盖物"]},"168":{"title":"示例","titles":["覆盖物","自定义覆盖物"]},"169":{"title":"🎨 样式配置","titles":[]},"170":{"title":"图解说明","titles":["🎨 样式配置"]},"171":{"title":"默认完整配置","titles":["🎨 样式配置"]},"172":{"title":"🛠️ 从 V8 到 V9","titles":[]},"173":{"title":"引入调整","titles":["🛠️ 从 V8 到 V9"]},"174":{"title":"设计调整","titles":["🛠️ 从 V8 到 V9"]},"175":{"title":"样式配置调整","titles":["🛠️ 从 V8 到 V9"]},"176":{"title":"API调整","titles":["🛠️ 从 V8 到 V9"]},"177":{"title":"图表API","titles":["🛠️ 从 V8 到 V9","API调整"]},"178":{"title":"实例API","titles":["🛠️ 从 V8 到 V9","API调整"]},"179":{"title":"图形辅助API","titles":["🛠️ 从 V8 到 V9","API调整"]},"180":{"title":"自定义技术指标调整","titles":["🛠️ 从 V8 到 V9"]},"181":{"title":"📃 介绍","titles":[]},"182":{"title":"什么是 KLineChart?","titles":["📃 介绍"]},"183":{"title":"特性","titles":["📃 介绍"]},"184":{"title":"❤️ 赞助","titles":[]},"185":{"title":"支付宝","titles":["❤️ 赞助"]},"186":{"title":"微信支付","titles":["❤️ 赞助"]},"187":{"title":"PayPal","titles":["❤️ 赞助"]},"188":{"title":"加密货币","titles":["❤️ 赞助"]}},"dirtCount":0,"index":[["微信支付",{"0":{"186":1}}],["微信讨论群",{"0":{"80":1}}],["支付宝",{"0":{"185":1}}],["支持移动端",{"2":{"183":1}}],["支持字符串模版",{"2":{"171":2}}],["支持合并",{"2":{"119":1}}],["支持root",{"2":{"117":1,"118":1}}],["支持多种下载方式",{"2":{"98":1}}],["支持嵌套",{"2":{"43":1}}],["支持增量",{"2":{"20":1,"25":1,"112":2}}],["支持事件选择",{"2":{"9":1}}],["支持千分符显示",{"2":{"7":1}}],["支持数组",{"2":{"3":1}}],["那就真的太感谢了",{"2":{"184":1}}],["☕️",{"2":{"184":1}}],["希望你能在",{"2":{"184":1}}],["希望提示的和参数一样",{"2":{"115":2}}],["赞助",{"0":{"184":1},"1":{"185":1,"186":1,"187":1,"188":1}}],["❤️",{"0":{"184":1},"1":{"185":1,"186":1,"187":1,"188":1}}],["提供完整的类型定义文件",{"2":{"183":1}}],["提示",{"2":{"171":4}}],["搞定多端",{"2":{"183":1}}],["功能扩展随心所欲",{"2":{"183":1}}],["功能强大",{"2":{"183":1}}],["丰富的样式配置和api",{"2":{"183":1}}],["零依赖",{"2":{"183":1}}],["轻量流畅",{"2":{"183":1}}],["简单快速集成",{"2":{"183":1}}],["简短名字",{"2":{"29":1,"142":1}}],["特性",{"0":{"183":1}}],["特殊的id",{"2":{"141":1,"142":1,"143":1,"144":1,"145":1,"156":1}}],["什么是",{"0":{"182":1}}],["介绍",{"0":{"181":1},"1":{"182":1,"183":1}}],["介绍如何去做自定义技术指标",{"2":{"113":1}}],["方法render",{"2":{"180":1}}],["方法regenerateplots",{"2":{"180":1}}],["方法createtooltipdatasource",{"2":{"180":1}}],["方法calctechnicalindicator",{"2":{"180":1}}],["子项方法color",{"2":{"180":1}}],["合并成一个方法getsize",{"2":{"178":1}}],["合并为candle",{"2":{"175":1}}],["更改为dashed",{"2":{"175":1}}],["更新数据",{"2":{"137":1}}],["更新日志",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1}}],["设计调整",{"0":{"174":1}}],["设置窗口配置",{"2":{"156":1}}],["设置加载更多回调函数",{"2":{"140":1}}],["设置图表单根蜡烛柱的宽度",{"2":{"132":1}}],["设置图表右边可以空出来的间隙",{"2":{"128":1}}],["设置右边最小可见的蜡烛数量",{"2":{"131":1}}],["设置左边最小可见的蜡烛数量",{"2":{"130":1}}],["设置是否可以拖拽滚动",{"2":{"126":1}}],["设置是否缩放",{"2":{"124":1}}],["设置时区",{"2":{"122":1}}],["设置价格和数量精度",{"2":{"121":1}}],["设置样式配置",{"2":{"119":1}}],["设置下精度",{"2":{"71":1}}],["引入调整",{"0":{"173":1}}],["请通过getdom",{"2":{"178":1}}],["请统一使用import",{"2":{"173":1}}],["请先参考之前的升级文档升级到",{"2":{"172":1}}],["请用overrideoverlay",{"2":{"178":1}}],["请用overlay代替",{"2":{"175":1}}],["请用removeoverlay",{"2":{"178":1}}],["请用registeroverlay",{"2":{"177":1}}],["请用createoverlay",{"2":{"178":1}}],["请用text代替",{"2":{"91":1}}],["请用",{"2":{"67":1}}],["请用utils",{"2":{"64":1}}],["版本",{"2":{"172":1}}],["版本升级到",{"2":{"172":1}}],["本文档将帮助你从",{"2":{"172":1}}],["本文档介绍了图表内置的覆盖物和如何自定义一个覆盖物",{"2":{"164":1}}],["本文档介绍了图表内置的技术指标和如何自定义一个技术指标",{"2":{"109":1}}],["到",{"0":{"172":1},"1":{"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1}}],["配置",{"2":{"171":2}}],["面积图",{"2":{"171":2}}],["蜡烛图类型",{"2":{"171":2}}],["蜡烛图",{"2":{"171":2}}],["蜡烛柱",{"2":{"171":2}}],["蜡烛柱不包含蜡烛柱之间间隙的尺寸",{"2":{"112":2,"167":2}}],["蜡烛柱尺寸",{"2":{"112":2,"167":2}}],["蜡烛柱的尺寸信息",{"2":{"112":2,"167":2}}],["蜡烛柱显示趋近于一条线",{"0":{"71":1}}],["网格线",{"2":{"171":2}}],["进行更改",{"2":{"169":1}}],["其它选择使用默认样式",{"2":{"168":2}}],["选择边框且填充",{"2":{"168":2}}],["选中回调事件",{"2":{"167":2}}],["选中事件",{"2":{"31":1,"147":1}}],["确定对应点生成的圆的坐标",{"2":{"168":2}}],["确定其它属性",{"2":{"115":1}}],["完成一个圆的绘制需要三个步骤",{"2":{"168":2}}],["完成语言切换",{"2":{"108":1}}],["双击回调事件",{"2":{"167":2}}],["双击事件",{"2":{"31":1,"147":1}}],["回调参数和`performeventmovefordrawing`一致",{"2":{"167":2}}],["处理按住移动操作",{"2":{"167":2}}],["处理在绘制过程中移动操作",{"2":{"167":2}}],["事件所在点的信息",{"2":{"167":2}}],["事件所在点的索引",{"2":{"167":2}}],["事件的坐标",{"2":{"93":2}}],["中的overlay",{"2":{"167":4}}],["中的indicator",{"2":{"112":8}}],["非必须",{"2":{"167":24}}],["非必须字段",{"2":{"65":4}}],["作为覆盖物创建的唯一标识",{"2":{"167":2}}],["必须字段",{"2":{"167":2}}],["必要字段",{"2":{"65":10,"93":2}}],["名称",{"2":{"167":2,"168":2}}],["名字",{"2":{"26":1,"112":2}}],["全局添加",{"2":{"166":1}}],["频繁调用可能会影响到性能",{"2":{"163":1}}],["此方法会重新计算整个图表各个模块的大小",{"2":{"163":1}}],["此方法会清空图表数据",{"2":{"135":1}}],["总共需要多少步操作才行绘制完成",{"2":{"167":2}}],["总是会填充容器大小",{"2":{"163":1}}],["总的实现步骤",{"2":{"31":1}}],["调整图表大小",{"2":{"163":1}}],["调用请谨慎",{"2":{"163":1}}],["调用createoverlay方法是返回的标识",{"2":{"146":1,"148":1}}],["调用setpricevolumeprecision",{"2":{"71":1}}],["三种中的一种",{"2":{"162":1}}],["转换后的图片类型",{"2":{"162":1}}],["过滤条件",{"2":{"160":1,"161":1}}],["对象类型为",{"2":{"171":2}}],["对应y轴的值",{"2":{"160":1,"167":4}}],["对齐方式",{"2":{"90":2}}],["订阅时的回调方法",{"2":{"159":1}}],["订阅图表动作",{"2":{"158":1}}],["执行动作需要的数据",{"2":{"157":1}}],["执行图表动作",{"2":{"157":1}}],["缩放比例",{"2":{"153":1,"154":1,"155":1}}],["缩小",{"2":{"105":1}}],["动画时间",{"2":{"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1}}],["编组id",{"2":{"147":1,"148":1}}],["参数finder",{"2":{"178":1}}],["参数type选项变更为onzoom",{"2":{"178":1}}],["参数position选项变更为root",{"2":{"178":1}}],["参数和返回值和`createpointfigures`一致",{"2":{"167":4}}],["参数和overrideoverlay一致",{"2":{"145":1}}],["参阅",{"2":{"112":6}}],["移动端",{"2":{"183":1}}],["移动绘制过程中触发",{"2":{"167":2}}],["移动事件过程中特殊处理方法",{"2":{"31":1}}],["移除图形",{"2":{"148":1}}],["移除技术指标",{"2":{"144":1}}],["\\tbars",{"2":{"142":2}}],["覆盖已绘制的覆盖物",{"2":{"147":1}}],["覆盖技术指标信息",{"2":{"142":1}}],["覆盖物实例",{"2":{"167":2}}],["覆盖物",{"0":{"164":1},"1":{"165":1,"166":1,"167":1,"168":1},"2":{"171":2}}],["覆盖物标识",{"2":{"147":1}}],["覆盖物名称",{"2":{"148":1}}],["覆盖物名或者对象",{"2":{"145":1}}],["覆盖物名",{"2":{"31":1,"147":1}}],["覆盖物信息",{"2":{"31":1}}],["覆盖物支持双击强制结束绘制",{"2":{"11":1}}],["主图的窗口id",{"2":{"141":1,"142":1,"143":1,"144":1,"145":1,"156":1}}],["轴上是否可以滚动缩放",{"2":{"141":1,"156":1}}],["边距",{"2":{"141":1,"156":1}}],["边框虚线参数",{"2":{"86":2,"88":2,"89":2,"90":2}}],["边框虚线参数值",{"2":{"59":1,"61":1,"62":1,"63":1}}],["边框尺寸",{"2":{"86":2,"88":2,"89":2,"90":2}}],["边框圆角尺寸",{"2":{"63":1}}],["边框圆角值",{"2":{"62":1,"89":2,"90":2}}],["边框样式",{"2":{"59":1,"61":1,"62":1,"63":1,"86":2,"88":2,"89":2,"90":2}}],["边框粗细",{"2":{"59":1,"61":1,"62":1,"63":1}}],["边框颜色",{"2":{"59":1,"61":1,"62":1,"63":1,"86":2,"88":2,"89":2,"90":2}}],["类型有",{"2":{"171":4}}],["类型为klinecharts",{"2":{"167":2}}],["类型参与",{"2":{"167":4}}],["类型参阅",{"2":{"112":12}}],["类型参阅样式",{"2":{"25":1}}],["类型是",{"2":{"162":1}}],["类型和图表方法overrideindicator的入参一致",{"2":{"141":1}}],["都需要此标识",{"2":{"141":1}}],["后续对该窗口的一些操作",{"2":{"141":1}}],["后续计算参数发生变化的时候",{"2":{"115":2}}],["为了避免重复绘制",{"2":{"139":1}}],["为图表添加数据",{"2":{"103":2,"104":2}}],["清空图表数据",{"2":{"139":1}}],["单条k线数据",{"2":{"137":1}}],["不再区分klinecharts",{"2":{"173":1}}],["不触发事件",{"2":{"167":2}}],["不同则追加",{"2":{"137":1}}],["不需要额外调用cleardata方法",{"2":{"135":1}}],["相同则覆盖",{"2":{"137":1}}],["成功回调",{"2":{"135":1,"136":1,"137":1,"142":1}}],["成交额",{"2":{"65":2}}],["成交量",{"2":{"65":2,"107":2}}],["告诉图表还有没有更多历史数据",{"2":{"135":1,"136":1}}],["数组的子项类型为",{"2":{"171":2}}],["数量精度",{"2":{"121":1,"167":2}}],["数据的索引",{"2":{"151":1,"154":1}}],["数据类型详情可参阅数据源",{"2":{"135":1,"136":1,"137":1}}],["数据索引",{"2":{"112":2,"160":1,"167":4}}],["数据源",{"2":{"112":16}}],["数据信息",{"2":{"112":2}}],["数据",{"0":{"65":1}}],["价格精度",{"2":{"121":1,"167":2}}],["也会受影响",{"2":{"121":1}}],["也可以是数组",{"2":{"160":1,"161":1}}],["也可以是id组成的数组",{"2":{"148":1}}],["也可以是object",{"2":{"20":1}}],["也可以通过cdn获取",{"2":{"98":1}}],["或者更老的版本",{"2":{"172":1}}],["或者图表实例方法setstyles",{"2":{"169":1}}],["或者",{"2":{"121":1,"171":4}}],["或者setlocale",{"2":{"108":1}}],["详情请查阅覆盖物",{"2":{"174":1}}],["详情可参阅样式",{"2":{"119":1}}],["详情参阅",{"2":{"167":2}}],["详情参阅技术指标",{"2":{"74":1}}],["详情参阅覆盖物",{"2":{"31":1}}],["详情参阅基础图形",{"2":{"26":1}}],["详情参阅样式",{"2":{"20":1}}],["位置",{"2":{"118":1}}],["缺省则取消当前类型所有",{"2":{"159":1}}],["缺省则在图表中间位置缩放",{"2":{"153":1}}],["缺省则无动画",{"2":{"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1}}],["缺省则删除对应窗口上所有的",{"2":{"148":1}}],["缺省则删除所有",{"2":{"148":1}}],["缺省则返回所有",{"2":{"143":1}}],["缺省则设置所有",{"2":{"142":1}}],["缺省则是root",{"2":{"117":1,"118":1}}],["缺省则是整个图表容器",{"2":{"117":1,"118":1}}],["缺省将显示name",{"2":{"112":2}}],["窗口是否可以拖拽调整高度",{"2":{"141":1,"156":1}}],["窗口最小高度",{"2":{"141":1,"156":1}}],["窗口高度",{"2":{"141":1,"156":1}}],["窗口配置信息",{"2":{"141":1,"156":1}}],["窗口id",{"2":{"117":1,"118":1,"141":1,"142":1,"143":1,"144":1,"145":1,"148":1,"156":1,"160":1,"161":1}}],["窗口尺寸信息",{"2":{"112":4,"167":2}}],["每个key需要和figures中的子项key对应的值一致",{"2":{"115":2}}],["第二条线",{"2":{"114":2}}],["第一条线",{"2":{"114":2}}],["另一个计算10个周期时间的均值",{"2":{"114":2}}],["因此figures配置为",{"2":{"114":1}}],["首先确定计算参数",{"2":{"114":1}}],["以一个填充带边框的圆来具体说明如何配置",{"2":{"168":1}}],["以一个名为",{"2":{"113":1}}],["以一个可以有边框和背景菱形来具体说明自定义",{"2":{"94":1}}],["值小余1则是百分比",{"2":{"141":2,"156":2}}],["值信息",{"2":{"112":2}}],["值越大越靠前显示",{"2":{"147":1,"167":2}}],["值越大",{"2":{"31":1}}],["则依据索引转换",{"2":{"160":1}}],["则会以id为依据去覆盖",{"2":{"147":1}}],["则会移除所有",{"2":{"144":1}}],["则figures配置的图形不会绘制",{"2":{"112":2}}],["则不会显示",{"2":{"112":2}}],["则需要为该字段填充数据",{"2":{"65":2}}],["真实数据索引",{"2":{"112":2}}],["真实的x坐标",{"2":{"112":2}}],["十字光标垂直线及文字",{"2":{"171":2}}],["十字光标水平线及文字",{"2":{"171":2}}],["十字光标",{"2":{"171":2}}],["十字光标交叉点所在的窗口id",{"2":{"112":2}}],["十字光标的信息",{"2":{"112":2}}],["距离",{"2":{"149":1}}],["距离底部距离",{"2":{"112":4,"167":2}}],["距离顶部距离",{"2":{"112":4,"167":2}}],["距离右边距离",{"2":{"112":4,"167":2}}],["距离左边距离",{"2":{"112":4,"167":2}}],["宽",{"2":{"112":4,"167":2}}],["宽度",{"2":{"56":1,"62":1,"63":1,"89":2}}],["终点数据索引",{"2":{"112":4}}],["起点数据索引",{"2":{"112":4}}],["起始点y轴坐标值",{"2":{"89":2,"90":2}}],["起始点y轴值",{"2":{"56":1,"57":1,"62":1,"63":1}}],["起始点x轴坐标值",{"2":{"89":2,"90":2}}],["起始点x轴值",{"2":{"56":1,"57":1,"62":1,"63":1}}],["起始角度",{"2":{"52":1,"58":1}}],["会在计算参数发生变化后触发",{"2":{"112":2}}],["重新生成数图形配置方法",{"2":{"112":2}}],["重新生成图形信息方法",{"2":{"29":1,"142":1}}],["即全局样式配置中的overlay",{"2":{"167":2}}],["即全局设置的技术指标样式",{"2":{"112":6}}],["即调用createindicator方法时返回的窗口标识",{"2":{"143":1,"144":1}}],["即title的值需要改变",{"2":{"115":2}}],["即",{"2":{"114":4}}],["即y",{"2":{"49":1}}],["技术图表实例",{"2":{"112":2}}],["技术指标名",{"2":{"143":1,"144":1}}],["技术指标名或者技术指标对象",{"2":{"141":1}}],["技术指标需要展示两个周期的收盘价平均值连起来的线",{"2":{"114":1}}],["技术指标实例",{"2":{"112":6}}],["技术指标数据",{"2":{"112":2}}],["技术指标",{"0":{"109":1},"1":{"110":1,"111":1,"112":1,"113":1,"114":1,"115":1},"2":{"113":1,"171":2}}],["技术指标信息",{"2":{"29":1}}],["技术指标删除属性shouldcheckparamcount",{"2":{"13":1}}],["技术指标模版不再保存相关属性",{"2":{"13":1}}],["技术指标属性render变更为draw",{"2":{"13":1}}],["技术指标属性regenerateplots变更为regeneratefigures",{"2":{"13":1}}],["技术指标属性calctechnicalindicator变更为calc",{"2":{"13":1}}],["技术指标属性calcparams",{"2":{"13":1}}],["技术指标属性plots变更为figures",{"2":{"13":1}}],["下边距",{"2":{"141":1,"156":1}}],["下一个图形的数据",{"2":{"112":2}}],["下内边距",{"2":{"63":1,"90":2}}],["当是一个方法时",{"2":{"171":2}}],["当是对象时",{"2":{"119":1,"141":1,"145":1}}],["当前步骤",{"2":{"167":2}}],["当前图形的数据",{"2":{"112":2}}],["当计算参数改变时",{"2":{"115":2}}],["当添加完语言包后",{"2":{"108":1}}],["上边距",{"2":{"141":1,"156":1}}],["上一个图形的数据",{"2":{"112":2}}],["上内边距",{"2":{"63":1,"90":2}}],["一个图表",{"2":{"183":1}}],["一个计算5个周期时间的均值",{"2":{"114":2}}],["一般情况下不用手动调用",{"2":{"139":1}}],["一般用于type是",{"2":{"112":2}}],["一条名为",{"2":{"114":1}}],["一条为",{"2":{"114":1}}],["一旦销毁",{"2":{"21":1}}],["将坐标转换成值",{"2":{"161":1}}],["将值转换成坐标",{"2":{"160":1}}],["将以这个值上下去绘制",{"2":{"112":2}}],["将一个对象合并到另一个对象",{"2":{"36":1}}],["系列",{"2":{"112":2}}],["比如100000是否需要格式化100k",{"2":{"112":2}}],["从",{"0":{"172":1},"1":{"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1}}],["从1000开始格式化",{"2":{"112":2}}],["从某个值取对应的值",{"2":{"43":1}}],["无特殊含义",{"2":{"167":2}}],["无",{"2":{"110":2}}],["默认完整配置",{"0":{"171":1}}],["默认样式",{"2":{"167":2}}],["默认null",{"2":{"112":4}}],["默认的技术指标样式",{"2":{"112":6}}],["默认为true",{"2":{"135":1,"136":1}}],["默认为null",{"2":{"112":4}}],["默认为",{"2":{"112":2,"162":2}}],["默认为4",{"2":{"112":2}}],["默认计算参数",{"2":{"110":3}}],["默认语言是en",{"2":{"106":1}}],["收",{"2":{"107":2}}],["收盘价",{"2":{"65":2}}],["低",{"2":{"107":2}}],["高可扩展",{"2":{"183":1}}],["高",{"2":{"107":2,"112":4,"167":2}}],["高度",{"2":{"56":1,"62":1,"63":1,"89":2}}],["開",{"2":{"107":2}}],["時間",{"2":{"107":2}}],["zoomattimestamp",{"0":{"155":1}}],["zoomatdataindex",{"0":{"154":1}}],["zoomatcoordinate",{"0":{"153":1}}],["zh",{"2":{"107":2,"167":2}}],["zlevel",{"2":{"31":3,"145":6,"147":5,"167":2}}],["例如",{"2":{"107":1,"171":2}}],["去完成",{"2":{"107":1}}],["去github上查看",{"2":{"14":1,"15":1,"16":1,"17":1,"18":1}}],["增加语言包通过klinecharts",{"2":{"107":1}}],["增加语言包",{"0":{"107":1}}],["目前只会匹配当前最后一条数据的时间戳",{"2":{"137":1}}],["目前图表内置了en",{"2":{"106":1}}],["目前快捷键仅支持移动和缩放",{"2":{"105":1}}],["国际化",{"0":{"106":1},"1":{"107":1,"108":1}}],["放大",{"2":{"105":1}}],["左移",{"2":{"105":1}}],["左内边距",{"2":{"63":1,"90":2}}],["←",{"2":{"105":1}}],["→",{"2":{"105":1}}],["快捷键",{"0":{"105":1}}],["快速开始",{"0":{"97":1},"1":{"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"104":6}}],["⌨️",{"0":{"105":1}}],["标签引入的项目中创建",{"0":{"104":1}}],["在指定时间戳上缩放",{"2":{"155":1}}],["在某个位置缩放",{"2":{"154":1}}],["在某个坐标点缩放",{"2":{"153":1}}],["在直接通过",{"0":{"104":1}}],["在npm或yarn等包管理工具的项目中创建",{"0":{"103":1}}],["jpeg",{"2":{"162":2}}],["j",{"2":{"115":12}}],["js",{"2":{"101":2}}],["jsdelivr",{"2":{"101":2}}],["javascriptimport",{"2":{"103":1}}],["javascript",{"2":{"83":1,"96":1,"101":2,"114":1,"115":1,"167":2,"168":1,"171":1}}],["javascriptchart",{"2":{"72":1,"141":1,"142":1,"145":1,"147":1,"156":1}}],["quot",{"2":{"101":8,"104":48}}],["qq讨论群",{"0":{"81":1}}],["推荐从jsdelivr引用",{"2":{"101":1}}],["使用语言包",{"0":{"108":1}}],["使用cdn",{"0":{"101":1}}],["使用yarn",{"0":{"100":1}}],["使用npm",{"0":{"99":1}}],["使用示例",{"0":{"83":1}}],["你可以通过npm或yarn等包管理工具",{"2":{"98":1}}],["这非常重要",{"2":{"141":1}}],["这里只是清除数据",{"2":{"139":1}}],["这里每一项的数据格式应该是",{"2":{"115":2}}],["这里计算不能及时响应",{"2":{"115":2}}],["这样一个自定义覆盖物就完成了",{"2":{"168":1}}],["这样一个自定义指标就完成了",{"2":{"115":1}}],["这样一个自定义的基础图形就完成了",{"2":{"96":1}}],["这样你的第一个图表就创建完成了",{"2":{"104":1}}],["这篇文档介绍了内置的基本图形和如何自定义一个基础图形",{"2":{"82":1}}],["实际终点数据索引",{"2":{"112":4}}],["实际起点数据索引",{"2":{"112":4}}],["实现checkeventon和draw两个方法",{"2":{"96":1}}],["实例化并绘制",{"2":{"83":2}}],["实例方法removetechnicalindicator变更为removeindicator",{"2":{"13":1}}],["实例方法gettechnicalindicatorbypaneid变更为getindicatorbypaneid",{"2":{"13":1}}],["实例方法getstyleoptions变更为getstyles",{"2":{"13":1}}],["实例方法overlaytechnicalindicator变更为overlayindicator",{"2":{"13":1}}],["实例方法createtechnicalindicator变更为createindicator",{"2":{"13":1}}],["实例方法setoffsetrightspace变更为setoffsetrightdistance",{"2":{"13":1}}],["实例方法setpaneoptions",{"2":{"13":1}}],["实例方法setstyleoptions变更为setstyles",{"2":{"13":1}}],["实例apiapplynewdata",{"2":{"7":1}}],["实例api新增getoffsetrightdistance和executeaction",{"2":{"7":1}}],["实例api",{"0":{"116":1,"178":1},"1":{"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1},"2":{"3":1}}],["步骤二",{"0":{"96":1,"115":1}}],["步骤一",{"0":{"95":1,"114":1}}],["我们可以定义三个选项stroke",{"2":{"95":1}}],["先确定属性和样式",{"2":{"95":1}}],["示例",{"0":{"94":1,"113":1,"168":1},"1":{"95":1,"96":1,"114":1,"115":1},"2":{"141":1,"142":1,"145":1,"147":1,"156":1,"171":4}}],["返回值由",{"2":{"180":1}}],["返回值是一个标识窗口的字符串",{"2":{"141":1}}],["返回一个字符串类型的标识",{"2":{"145":1}}],["返回一个boolean值",{"2":{"93":2}}],["返回数据类型可参阅数据源",{"2":{"138":1}}],["返回数据个数需要和klinedatalist的数据个数一致",{"2":{"115":2}}],["返回完整类型参阅样式",{"2":{"120":1}}],["返回类型参阅figures",{"2":{"112":2}}],["返回图表实例",{"2":{"20":1}}],["校验事件是否在图形上",{"2":{"93":2}}],["然后通过klinecharts",{"2":{"92":1,"111":1,"166":1}}],["只作用于y轴",{"2":{"160":1,"161":1}}],["只需要生成一个技术指标信息",{"2":{"111":1}}],["只需要生成基础图形信息",{"2":{"92":1}}],["只能看到一条线",{"0":{"70":1}}],["同时技术指标系列是",{"2":{"121":1}}],["同text",{"2":{"91":1}}],["同utils",{"2":{"64":1}}],["基本零成本上手",{"2":{"183":1}}],["基本都可以自定义样式",{"2":{"169":1}}],["基准值",{"2":{"112":2}}],["基准",{"2":{"90":2}}],["基础图形可以通过图表方法klinecharts",{"2":{"82":1}}],["基础图形是图表重要的组成部分",{"2":{"82":1}}],["基础图形",{"0":{"82":1},"1":{"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1}}],["基础图形信息",{"2":{"26":1}}],["坐标点",{"2":{"153":1}}],["坐标点信息",{"2":{"52":1,"53":1,"56":1,"57":1}}],["坐标集合",{"2":{"87":2,"88":2}}],["`strong",{"2":{"167":2}}],["`stroke",{"2":{"86":2,"88":2,"89":2,"90":2}}],["`stroke`",{"2":{"86":2,"88":2,"89":2,"90":2}}],["`weak",{"2":{"167":2}}],["`ma$",{"2":{"115":4}}],["`",{"2":{"103":2,"115":4}}],["`$",{"2":{"103":2}}],["`dashed`",{"2":{"85":2,"87":2}}],["虚线参数",{"2":{"85":2,"87":2}}],["虚线参数值",{"2":{"58":1,"60":1}}],["属性plots变更为figures",{"2":{"180":1}}],["属性说明",{"0":{"93":1,"112":1,"167":1}}],["属性",{"2":{"83":2,"95":1}}],["等",{"2":{"83":2}}],["需要返回一个数组",{"2":{"171":2}}],["需要返回一个boolean类型的值",{"2":{"167":2}}],["需要转换的值",{"2":{"160":1,"161":1}}],["需要覆盖的参数",{"2":{"147":1}}],["需要覆盖的一些参数",{"2":{"142":1}}],["需要在有画布上下文的情况下使用",{"2":{"83":1}}],["需要运行在支持",{"2":{"67":1}}],["注意",{"2":{"83":1,"115":2,"163":1}}],["建议仔细阅读",{"2":{"82":1}}],["加密货币",{"0":{"188":1}}],["加入群聊",{"2":{"80":1}}],["加载",{"2":{"67":1}}],["备注",{"2":{"80":1}}],["添加历史更多数据",{"2":{"136":1}}],["添加新数据",{"2":{"135":1}}],["添加到图表即可和内置覆盖物一样去使用",{"2":{"166":1}}],["添加到图表即可和内置技术指标一样去使用",{"2":{"111":1}}],["添加到图表即可和内置基础图形一样去使用",{"2":{"92":1}}],["添加开发者",{"2":{"80":1}}],["添加一个中文繁体的语言包",{"2":{"107":1}}],["添加一个覆盖物",{"2":{"31":1}}],["添加一个技术指标",{"2":{"29":1}}],["添加一个基础图形",{"2":{"26":1}}],["添加一个样式配置",{"2":{"25":1}}],["添加一个本地化语言",{"2":{"22":1}}],["扫一扫",{"2":{"80":1}}],["反馈和共建",{"0":{"76":1},"1":{"77":1,"78":1,"79":1,"80":1,"81":1}}],["用",{"2":{"115":2}}],["用图表api创建即可createoverlay",{"2":{"75":1}}],["用于生成样式",{"2":{"112":2}}],["用于生成自定义图形的属性",{"2":{"112":2}}],["用于tooltip显示",{"2":{"112":2}}],["用于取计算结果中值",{"2":{"112":2}}],["用于创建的唯一标识",{"2":{"31":1,"147":1}}],["用于创建和操作的唯一标识",{"2":{"29":1,"142":1}}],["用于显示",{"2":{"29":1,"112":2,"142":1}}],["该怎么做",{"0":{"75":1}}],["想显示时间",{"2":{"171":2}}],["想标记一下买卖点",{"0":{"75":1}}],["想创建一个内置技术指标之外的指标",{"0":{"74":1}}],["内置多种指标和画线模型",{"2":{"183":1}}],["内置覆盖物类型",{"0":{"165":1}}],["内置一些转换方法",{"2":{"112":8,"167":4}}],["内置技术指标",{"0":{"110":1}}],["内置基础图形",{"0":{"84":1},"1":{"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1}}],["内置的右击删除将无效",{"2":{"167":2}}],["内置的覆盖物有一个simpleannotation",{"2":{"75":1}}],["内置的技术指标",{"0":{"73":1}}],["内置支持zh",{"2":{"20":1}}],["通过样式设置",{"2":{"72":1}}],["通过图表实例",{"2":{"65":1}}],["分时图怎么创建",{"0":{"72":1}}],["分割线事件响应回退",{"2":{"1":1}}],["怎么办",{"0":{"71":1,"73":1,"74":1}}],["看不到波动",{"0":{"71":1}}],["初始化图表",{"2":{"103":2,"104":2}}],["初始化图表后",{"0":{"70":1}}],["初始化一个图表",{"2":{"20":1}}],["常见问题",{"0":{"69":1},"1":{"70":1,"71":1,"72":1,"73":1,"74":1,"75":1}}],["兼容处理",{"0":{"68":1}}],["构建",{"2":{"67":1}}],["浏览器支持",{"0":{"67":1}}],["环境要求",{"0":{"66":1},"1":{"67":1,"68":1}}],["🌟",{"2":{"184":1}}],["🎨",{"0":{"169":1},"1":{"170":1,"171":1},"2":{"183":1}}],["🌏",{"0":{"106":1},"1":{"107":1,"108":1}}],["🏝️",{"0":{"66":1},"1":{"67":1,"68":1}}],["🆕",{"2":{"1":2,"2":2,"3":3,"4":3,"7":5,"11":2,"13":1}}],["最新值标记",{"2":{"171":2}}],["最新价标记",{"2":{"171":2}}],["最低价标记",{"2":{"171":2}}],["最低价",{"2":{"65":2}}],["最高价标记",{"2":{"171":2}}],["最高价",{"2":{"65":2}}],["开箱即用",{"2":{"183":1}}],["开盘和收盘",{"2":{"171":2}}],["开盘价",{"2":{"65":2}}],["开始角度",{"2":{"85":2}}],["开始绘制事件",{"2":{"31":1,"147":1}}],["毫秒级别",{"2":{"65":2}}],["来和图表进行数据交互",{"2":{"65":1}}],["代替即可",{"2":{"115":2}}],["代替",{"2":{"64":1,"177":1,"178":3}}],["已废弃",{"2":{"64":1,"91":1}}],["背景色",{"2":{"63":1,"90":2,"162":1}}],["右击回调事件",{"2":{"167":2}}],["右击事件",{"2":{"31":1,"147":1}}],["右移",{"2":{"105":1}}],["右内边距",{"2":{"63":1,"90":2}}],["多边形参数",{"2":{"61":1}}],["线样式",{"2":{"60":1}}],["线参数",{"2":{"60":1}}],["粗细",{"2":{"58":1,"60":1,"90":2}}],["弧样式",{"2":{"58":1}}],["画布上下文",{"2":{"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"83":2,"93":2,"112":2}}],["权重",{"2":{"57":1,"63":1}}],["字体",{"2":{"57":1,"63":1,"90":2}}],["尺寸",{"2":{"57":1,"63":1,"85":2,"87":2,"90":2}}],["颜色",{"2":{"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2}}],["垂直对齐方式",{"2":{"57":1,"63":1}}],["水平对齐方式",{"2":{"57":1,"63":1}}],["文字内容",{"2":{"57":1,"63":1,"90":2}}],["文字参数",{"2":{"57":1,"63":1}}],["矩形参数",{"2":{"56":1,"62":1}}],["wr",{"2":{"110":1}}],["window",{"2":{"104":2}}],["width=device",{"2":{"104":2}}],["width是宽度",{"2":{"95":1}}],["width",{"2":{"56":3,"62":3,"63":3,"89":2,"90":2,"95":1,"96":16,"104":4,"112":4,"118":2,"167":2}}],["web",{"2":{"167":2}}],["webview",{"2":{"67":1}}],["weight",{"0":{"48":1},"2":{"48":2,"57":3,"63":3,"90":2,"171":20}}],["weak",{"2":{"31":4,"145":6,"147":6,"167":6}}],["结束角度",{"2":{"52":1,"58":1,"85":2}}],["半径",{"2":{"52":1,"53":1,"58":1,"59":1,"85":2,"86":2}}],["圆心y轴坐标值",{"2":{"85":2,"86":2}}],["圆心x轴坐标值",{"2":{"85":2,"86":2}}],["圆心的y轴值",{"2":{"52":1,"53":1,"58":1,"59":1}}],["圆心的x轴值",{"2":{"52":1,"53":1,"58":1,"59":1}}],["圆参数",{"2":{"53":1,"59":1}}],["圆弧参数",{"2":{"52":1,"58":1}}],["+098syuqtzi0ynzll",{"2":{"78":1}}],["+",{"2":{"49":1,"96":10,"105":5,"115":4,"168":2}}],["获取到对应的dom后操作",{"2":{"178":1}}],["获取可见区间范围",{"2":{"134":1}}],["获取样式配置",{"2":{"120":1}}],["获取尺寸",{"2":{"118":1}}],["获取dom容器",{"2":{"117":1}}],["获取klinechart",{"0":{"98":1},"1":{"99":1,"100":1,"101":1}}],["获取基础图形实例",{"2":{"83":2}}],["获取",{"2":{"82":1}}],["获取一个点在斜率和常数项形成的线上的y轴坐标值",{"2":{"51":1}}],["获取一个点在另外两个坐标点形成的线上的y轴坐标值",{"2":{"50":1}}],["获取点组成的线的斜率和常数项",{"2":{"49":1}}],["获取图表转换成图片后的图片url",{"2":{"162":1}}],["获取图表目前的数据源",{"2":{"138":1}}],["获取图表单根蜡烛柱的宽度",{"2":{"133":1}}],["获取图表右边可以空出来的间隙",{"2":{"129":1}}],["获取图表时区名",{"2":{"123":1}}],["获取图表当前版本号",{"2":{"33":1}}],["获取图表支持的覆盖物",{"2":{"32":1}}],["获取图表支持的技术指标",{"2":{"30":1}}],["获取图表支持的基础图形类型",{"2":{"27":1}}],["获取图表支持的本地化语言类型",{"2":{"24":1}}],["获取图形类",{"2":{"28":1}}],["根据id获取覆盖物信息",{"2":{"146":1}}],["根据窗口id获取技术指标信息",{"2":{"143":1}}],["根据两个坐标点",{"2":{"49":1}}],["根据覆盖物名称获取图表内覆盖物的属性",{"2":{"23":1}}],["y轴线",{"2":{"171":2}}],["y轴",{"2":{"171":2}}],["y轴组件",{"2":{"112":4,"167":2}}],["ydis",{"2":{"96":4,"168":6}}],["y是中心点y轴坐标值",{"2":{"95":1}}],["y",{"2":{"49":4,"50":6,"51":2,"52":5,"53":5,"54":4,"55":4,"56":5,"57":5,"58":3,"59":3,"60":2,"61":2,"62":3,"63":3,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"93":2,"95":1,"96":24,"153":2,"160":4,"161":4,"167":2,"168":4}}],["yyyy",{"2":{"46":1}}],["yaxis",{"2":{"13":3,"29":8,"112":12,"117":3,"118":3,"167":4,"171":2,"175":3,"180":4}}],["取消回调事件",{"2":{"167":2}}],["取消订阅图表动作",{"2":{"159":1}}],["取消选中事件",{"2":{"31":1,"147":1}}],["取c的值",{"2":{"43":1}}],["检查一下容器是否有高度",{"2":{"70":1}}],["检查某个坐标点是否在文字上",{"2":{"57":1}}],["检查某个坐标点是否在矩形上",{"2":{"56":1}}],["检查某个坐标点是否在多边形上",{"2":{"55":1}}],["检查某个坐标点是否在线上",{"2":{"54":1}}],["检查某个坐标点是否在圆上",{"2":{"53":1}}],["检查某个坐标点是否在圆弧上",{"2":{"52":1}}],["检查某个值是否有效",{"2":{"39":1}}],["检查某个值是否是bool值",{"2":{"42":1}}],["检查某个值是否是方法",{"2":{"41":1}}],["检查某个值是否是对象",{"2":{"40":1}}],["检查某个值是否是数字",{"2":{"38":1}}],["检查某个值是否是字符串",{"2":{"37":1}}],["检查事件是否在图形上",{"2":{"26":1}}],["深度复制",{"2":{"35":1}}],["辅助方法集合",{"2":{"34":1}}],["鼠标移出事件",{"2":{"31":1,"147":1,"167":2}}],["鼠标移入事件",{"2":{"31":1,"147":1,"167":2}}],["按住拖动结束回调事件",{"2":{"167":2}}],["按住拖动回调事件",{"2":{"167":2}}],["按住拖动开始回调事件",{"2":{"167":2}}],["按住某个操作点移动过程中触发",{"2":{"167":2}}],["按住移动结束事件",{"2":{"31":1,"147":1}}],["按住移动中事件",{"2":{"31":1,"147":1}}],["按住移动事件特殊处理方法",{"2":{"31":1}}],["按住开始移动事件",{"2":{"31":1,"147":1}}],["点一个",{"2":{"184":1}}],["点击回调事件",{"2":{"167":2}}],["点击事件",{"2":{"31":1,"147":1}}],["点信息",{"2":{"31":1,"147":1,"167":4}}],["创建时候的id",{"2":{"148":1}}],["创建覆盖物",{"2":{"145":1}}],["创建一个技术指标",{"2":{"141":1}}],["创建一个自定义技术指标",{"2":{"111":1}}],["创建一个自定义基础图形",{"2":{"92":1}}],["创建自定义提示文字",{"2":{"112":2}}],["创建自定义提示信息方法",{"2":{"29":1,"142":1}}],["创建第一个图表",{"0":{"102":1},"1":{"103":1,"104":1}}],["创建y轴上的图形",{"2":{"31":1,"167":2}}],["创建x轴上的图形",{"2":{"31":1,"167":2}}],["创建点对应的图形信息",{"2":{"168":2}}],["创建点对应的图形",{"2":{"31":1,"167":2}}],["时间戳",{"2":{"65":2,"152":1,"155":1,"160":1,"167":4}}],["时有效",{"2":{"31":1,"147":1,"167":2}}],["时区对应名字列表请参阅时区列表",{"2":{"20":1,"122":1}}],["时区名",{"2":{"20":1,"122":1}}],["是一款可高度自定义的专业级轻量金融图表",{"2":{"182":1}}],["是一个回调方法",{"2":{"140":1,"158":1}}],["是一个k线数据数组",{"2":{"135":1,"136":1}}],["是一个方法",{"2":{"112":4}}],["是创建的唯一标识",{"2":{"93":2}}],["是怎么回事",{"0":{"70":1}}],["是",{"2":{"31":1,"147":1,"167":2}}],["是否忽略事件",{"2":{"167":2}}],["是否锁定",{"2":{"167":2}}],["是否锁定不让拖动",{"2":{"31":1,"147":1}}],["是否是绝对坐标",{"2":{"160":1,"161":1}}],["是否覆盖",{"2":{"141":1}}],["是否可以拖拽滚动",{"2":{"127":1}}],["是否可以缩放",{"2":{"125":1}}],["是否可见",{"2":{"29":1,"31":1,"112":2,"142":1,"147":1,"167":2}}],["是否需要包含浮层",{"2":{"162":1}}],["是否需要格式化大数据值",{"2":{"112":2}}],["是否需要格式化大的数字",{"2":{"29":1,"142":1}}],["是否需要ohlc",{"2":{"112":2}}],["是否需要ohlc辅助图形",{"2":{"29":1,"142":1}}],["是否需要默认的y轴上的图形",{"2":{"31":1,"147":1,"167":2}}],["是否需要默认的x轴上的图形",{"2":{"31":1,"147":1,"167":2}}],["是否需要默认的点对应的图形",{"2":{"31":1,"147":1,"167":2}}],["仅支持",{"2":{"157":1}}],["仅",{"2":{"31":1,"147":1,"167":2}}],["模式灵敏度",{"2":{"31":1,"147":1,"167":2}}],["模式",{"2":{"31":1,"147":1,"167":4}}],["越靠前显示",{"2":{"31":1}}],["绘制结束回调事件",{"2":{"167":2}}],["绘制结束事件",{"2":{"31":1,"147":1}}],["绘制过程中回调事件",{"2":{"167":2}}],["绘制开始回调事件",{"2":{"167":2}}],["绘制边框的菱形",{"2":{"96":2}}],["绘制填充的菱形",{"2":{"96":2}}],["绘制",{"2":{"93":2}}],["绘制带背景的文字",{"2":{"63":1}}],["绘制矩形",{"2":{"62":1}}],["绘制多边形",{"2":{"61":1}}],["绘制线",{"2":{"60":1}}],["绘制圆",{"2":{"59":1}}],["绘制圆弧",{"2":{"58":1}}],["绘制中事件",{"2":{"31":1,"147":1}}],["绘制层级",{"2":{"31":1,"147":1,"167":2}}],["绘制方法",{"2":{"26":1}}],["计算结果",{"2":{"115":2}}],["计算出来的数据不是想要的",{"0":{"73":1}}],["计算文字宽度",{"2":{"48":1}}],["计算方法",{"2":{"29":1,"112":2,"142":1}}],["计算参数最好取回调参数calcparams",{"2":{"115":2}}],["计算参数是2个",{"2":{"114":2}}],["计算参数文字",{"2":{"112":2}}],["计算参数",{"2":{"29":1,"112":4,"142":1}}],["指定的最大值",{"2":{"112":2}}],["指定的最小值",{"2":{"112":2}}],["指定高",{"2":{"90":2}}],["指定宽",{"2":{"90":2}}],["指定最大值",{"2":{"29":1,"142":1}}],["指定最小值",{"2":{"29":1,"142":1}}],["指标创建完成回调方法",{"2":{"141":1}}],["指标简短名称",{"2":{"112":2}}],["指标系列",{"2":{"29":1,"142":1}}],["指标名",{"2":{"29":1,"110":3,"112":2,"142":1}}],["指标图形配置支持自定义",{"2":{"4":1}}],["扩展数据",{"2":{"29":1,"31":1,"112":2,"142":1,"147":1,"167":2}}],["精度",{"2":{"29":1,"112":2,"142":1,"167":2}}],["mtm",{"2":{"110":1}}],["meta",{"2":{"104":10}}],["me",{"2":{"78":1}}],["merge",{"0":{"36":1}}],["mozilla",{"2":{"167":2}}],["moveto",{"2":{"96":4}}],["more",{"0":{"135":1,"136":1},"2":{"65":2,"135":3,"136":3}}],["modesensitivity",{"2":{"31":3,"145":6,"147":5,"167":2}}],["mode",{"2":{"31":4,"145":6,"147":6,"167":6}}],["minheight",{"2":{"141":5,"156":5}}],["min",{"2":{"101":2}}],["minvalue",{"2":{"29":3,"112":2,"141":2,"142":5}}],["middle",{"2":{"57":2,"63":2,"171":4}}],["mm",{"2":{"46":2}}],["main和yaxis",{"2":{"178":1}}],["main",{"2":{"117":3,"118":3}}],["map",{"2":{"115":4}}],["ma5",{"2":{"114":4,"115":2}}],["ma2",{"2":{"114":3,"115":4}}],["ma10",{"2":{"114":6,"115":2}}],["ma1",{"2":{"114":5,"115":4}}],["macd",{"2":{"110":1}}],["ma",{"2":{"110":1,"113":1,"114":1,"115":10,"141":2}}],["math",{"2":{"96":4,"168":6}}],["magnet`",{"2":{"167":4}}],["magnet",{"2":{"31":7,"145":10,"147":9,"167":10}}],["maxvalue",{"2":{"29":3,"112":2,"141":2,"142":5}}],["marginstrat",{"2":{"171":4}}],["marginstart",{"2":{"13":2,"175":2}}],["marginbottom",{"2":{"171":12}}],["marginright",{"2":{"171":8}}],["margintop",{"2":{"171":8}}],["marginleft",{"2":{"171":8}}],["margin",{"2":{"13":2}}],["marginend",{"2":{"13":2,"175":2}}],["k线数据",{"2":{"112":4}}],["kdj",{"2":{"110":1}}],["kb",{"0":{"51":1},"2":{"51":2}}],["kx",{"2":{"49":1}}],["klinechart",{"0":{"182":1},"2":{"77":2,"80":1,"98":1,"182":1}}],["klinechartsyarn",{"2":{"100":1}}],["klinecharts",{"2":{"7":1,"83":2,"99":2,"100":1,"101":4,"103":2,"104":2,"107":1,"172":2,"173":1}}],["klinedatalist",{"2":{"112":4,"115":6,"180":4}}],["klinedata",{"2":{"29":2,"112":22,"115":4,"141":2,"142":2}}],["keywords",{"2":{"104":2}}],["key",{"0":{"43":1},"2":{"29":4,"31":12,"43":2,"107":1,"108":1,"112":2,"114":4,"115":8,"141":4,"142":4,"167":4,"168":2,"171":2}}],["erc20",{"2":{"188":1}}],["eth",{"2":{"188":1}}],["e11d74",{"2":{"171":2}}],["ededed",{"2":{"171":4}}],["extension",{"2":{"177":1}}],["extenddata",{"2":{"29":3,"31":3,"112":2,"141":2,"142":5,"145":6,"147":5,"167":2}}],["executeaction",{"0":{"157":1}}],["ef5350",{"2":{"142":4}}],["ef5350变更为",{"2":{"6":1}}],["ema",{"2":{"110":1}}],["emv",{"2":{"65":2,"110":1}}],["enabled",{"0":{"124":1,"126":1},"2":{"124":2,"126":2}}],["en",{"2":{"104":2}}],["end",{"2":{"57":2,"63":2}}],["endangle",{"2":{"52":3,"58":3,"85":2}}],["else",{"2":{"96":2}}],["event",{"2":{"31":28,"145":112,"147":84,"167":28}}],["图解说明",{"0":{"170":1}}],["图形辅助api",{"0":{"179":1}}],["图形类型",{"2":{"112":2,"167":2}}],["图形的样式",{"2":{"93":4}}],["图形的属性",{"2":{"93":4}}],["图形配置",{"2":{"29":1,"142":1}}],["图形名字",{"2":{"93":2}}],["图形名",{"2":{"28":1}}],["图表之间的分割线",{"2":{"171":2}}],["图表上看到的不管是点还是线",{"2":{"169":1}}],["图表上所有的元素都是由基础图形组成",{"2":{"82":1}}],["图表不会重绘",{"2":{"139":1}}],["图表内置了基础图形",{"2":{"168":2}}],["图表内置了这些基础图形",{"2":{"84":1}}],["图表内置了zh",{"2":{"22":1}}],["图表支持自定义技术指标",{"2":{"74":1}}],["图表默认价格精度为两位小数",{"2":{"71":1}}],["图表总是会填充容器",{"2":{"70":1}}],["图表基于",{"2":{"67":1}}],["图表所需要的数据必须是固定格式",{"2":{"65":1}}],["图表将不再可用",{"2":{"21":1}}],["图表方法extension",{"2":{"13":2}}],["图表方法新增getoverlayclass",{"2":{"1":1}}],["图表实例方法subscribeaction和unsubscribeaction类型新增oncandlebarclick",{"2":{"11":1}}],["图表api",{"0":{"19":1,"177":1},"1":{"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"2":{"4":1}}],["唯一标识",{"2":{"26":1}}],["元素id或者图表实例",{"2":{"21":1}}],["销毁一个图表",{"2":{"21":1}}],["千分符",{"2":{"20":1,"167":2}}],["格式化精度",{"2":{"44":1}}],["格式化大的数字",{"2":{"20":1,"45":1}}],["格式化日期和时间的对象的构造器",{"2":{"167":2}}],["格式化日期千分符",{"2":{"47":1}}],["格式化日期",{"2":{"20":1,"46":1}}],["自定义显示",{"2":{"171":2}}],["自定义一个覆盖物",{"2":{"166":1}}],["自定义一些api",{"2":{"20":1}}],["自定义覆盖物",{"0":{"166":1},"1":{"167":1,"168":1}}],["自定义绘制",{"2":{"112":2}}],["自定义绘制方法",{"2":{"29":1,"142":1}}],["自定义技术指标调整",{"0":{"180":1}}],["自定义技术指标",{"0":{"111":1},"1":{"112":1,"113":1,"114":1,"115":1}}],["自定义基础图形",{"0":{"92":1},"1":{"93":1,"94":1,"95":1,"96":1}}],["自定义扩展",{"2":{"13":2}}],["样式",{"2":{"29":1,"31":1,"57":1,"58":1,"59":2,"60":1,"61":2,"62":2,"63":2,"83":2,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"95":1,"112":10,"142":1,"147":1,"167":6}}],["样式名",{"2":{"25":1}}],["样式列表",{"2":{"20":1}}],["样式配置调整",{"0":{"175":1}}],["样式配置",{"0":{"169":1},"1":{"170":1,"171":1},"2":{"13":3,"25":1,"119":1}}],["样式配置新增candle",{"2":{"7":1}}],["样式配置candle",{"2":{"1":1,"2":1}}],["如果能够打赏一杯",{"2":{"184":1}}],["如果你觉得插件还不错",{"2":{"184":1}}],["如果你是",{"2":{"172":1}}],["如果dataindex和timestamp同时存在",{"2":{"160":1}}],["如果id存在",{"2":{"147":1}}],["如果缺省",{"2":{"144":1}}],["如果有值的情况下",{"2":{"115":2}}],["如果不是",{"2":{"115":2}}],["如果不设置会自动获取本机时区",{"2":{"20":1,"122":1}}],["如果无值",{"2":{"115":2}}],["如果返回true",{"2":{"112":2,"167":2}}],["如果name无值",{"2":{"112":2}}],["如果给定",{"2":{"112":2}}],["如果需要使用其他语言",{"2":{"106":1}}],["如果需要制作复杂的自定义技术指标和覆盖物",{"2":{"82":1}}],["如果需要运行在移动端",{"2":{"67":1}}],["如果需要展示技术指标",{"2":{"65":2}}],["如const",{"2":{"43":1}}],["如1000转换成1k",{"2":{"20":1,"29":1,"45":1,"142":1}}],["如",{"2":{"20":1,"46":1,"83":2,"122":1}}],["语言配置",{"2":{"22":1}}],["语言名",{"2":{"22":1}}],["语言",{"2":{"20":1}}],["可用于扩展字段",{"2":{"167":2}}],["可缺省",{"2":{"135":1,"136":1,"141":5,"143":1,"145":1,"153":1,"156":4,"162":3,"167":32}}],["可见区域信息",{"2":{"112":4}}],["可以直接使用",{"2":{"168":2}}],["可以缺省",{"2":{"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1}}],["可以通过图表方法init",{"2":{"169":1}}],["可以通过图表方法createindicator或者overrideindicator重写calc即可",{"2":{"73":1}}],["可以通过图表api",{"2":{"108":1}}],["可以这样做",{"2":{"107":1}}],["可以参考下面的方案",{"2":{"106":1}}],["可以使用jsdelivr",{"2":{"101":1}}],["可以使用覆盖物",{"2":{"75":1}}],["可以定义两个选项solid和dashed",{"2":{"95":1}}],["可以是国际化的",{"2":{"171":2}}],["可以是回调方法也可以是数组",{"2":{"171":2}}],["可以是当个对象",{"2":{"160":1,"161":1}}],["可以是单个id",{"2":{"148":1}}],["可以是通过registerstyles注册进去的样式名",{"2":{"119":1}}],["可以是通过klinecharts",{"2":{"20":1}}],["可以是一个promise",{"2":{"112":2}}],["可以是dom元素",{"2":{"21":1}}],["可以是dom元素或者元素id",{"2":{"20":1}}],["可选项为`normal`",{"2":{"167":2}}],["可选项为",{"2":{"158":1,"159":1}}],["可选项`fill`",{"2":{"86":2,"88":2,"89":2,"90":2}}],["可选项`solid`",{"2":{"85":2,"87":2}}],["可选项有",{"2":{"29":1,"31":1,"142":1,"147":1}}],["可选配置项",{"2":{"20":1}}],["容器",{"2":{"20":1}}],["gzip压缩下仅40k",{"2":{"183":1}}],["grid",{"2":{"171":2}}],["groupid",{"2":{"145":6,"147":5,"148":3}}],["global",{"2":{"167":2}}],["gap",{"2":{"141":5,"156":5}}],["gapbar",{"2":{"112":2,"167":2}}],["gg",{"2":{"79":1}}],["github",{"0":{"77":1},"2":{"77":2,"184":1}}],["gt",{"2":{"20":6,"21":2,"22":2,"23":4,"24":2,"25":2,"26":6,"27":2,"28":2,"29":26,"30":2,"31":48,"32":2,"33":2,"35":2,"36":2,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":4,"52":2,"53":2,"54":4,"55":4,"56":2,"57":2,"58":2,"59":4,"60":4,"61":6,"62":4,"63":2,"85":2,"86":2,"87":4,"88":4,"89":2,"90":2,"93":4,"96":4,"101":4,"104":36,"112":26,"115":12,"117":2,"118":2,"119":2,"120":2,"121":2,"122":2,"123":2,"124":2,"125":2,"126":2,"127":2,"128":2,"129":2,"130":2,"131":2,"132":2,"133":2,"134":2,"135":6,"136":6,"137":4,"138":4,"139":2,"140":4,"141":26,"142":32,"143":2,"144":2,"145":64,"146":2,"147":32,"148":2,"149":2,"150":2,"151":2,"152":2,"153":2,"154":2,"155":2,"156":2,"157":4,"158":4,"159":4,"160":6,"161":4,"162":2,"163":2,"167":42,"168":2}}],["getwidth",{"2":{"178":1}}],["getconvertpictureurl",{"0":{"162":1}}],["getindicatorbypaneid",{"0":{"143":1}}],["getdatalist",{"0":{"138":1}}],["getdom",{"0":{"117":1},"2":{"178":1}}],["getbarspace",{"0":{"133":1}}],["getoffsetrightdistance",{"0":{"129":1}}],["getoverlayclass",{"0":{"23":1}}],["getoverlaybyid",{"0":{"146":1},"2":{"13":1}}],["gettechnicalindicatorbypaneid",{"2":{"178":1}}],["gettechnicalindicatortemplate",{"2":{"13":1}}],["gettimezone",{"0":{"123":1}}],["getlinearyfromslopeintercept",{"0":{"51":1}}],["getlinearyfromcoordinates",{"0":{"50":1}}],["getlinearslopeintercept",{"0":{"49":1}}],["getlocal",{"2":{"13":1}}],["getheight",{"2":{"13":1}}],["getvisiblerange",{"0":{"134":1},"2":{"13":1}}],["getstyleoptions",{"2":{"178":1}}],["getstyles",{"0":{"120":1}}],["getsize",{"0":{"118":1},"2":{"13":1}}],["getsupportedoverlays",{"0":{"32":1}}],["getsupportedindicators",{"0":{"30":1}}],["getsupportedfigures",{"0":{"27":1}}],["getsupportedlocales",{"0":{"24":1}}],["getsupportlocales",{"2":{"13":1}}],["getsupportoverlays",{"2":{"13":1}}],["getsupportfigures返回值中的一种",{"2":{"167":2}}],["getsupportfigures",{"2":{"13":1}}],["getfigureclass",{"0":{"28":1},"2":{"13":1,"82":1,"83":2}}],["===",{"2":{"96":10,"168":2}}],["=",{"2":{"20":6,"21":2,"22":2,"23":2,"24":2,"25":2,"26":6,"27":2,"28":2,"29":18,"30":2,"31":40,"32":2,"33":2,"35":2,"36":2,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"43":3,"44":2,"45":2,"46":2,"47":2,"48":2,"49":3,"50":2,"51":2,"52":2,"53":2,"54":2,"55":2,"56":2,"57":2,"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"83":2,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"93":4,"96":32,"103":2,"104":4,"112":12,"115":24,"117":2,"118":2,"119":2,"120":2,"121":2,"122":2,"123":2,"124":2,"125":2,"126":2,"127":2,"128":2,"129":2,"130":2,"131":2,"132":2,"133":2,"134":2,"135":4,"136":4,"137":4,"138":2,"139":2,"140":4,"141":18,"142":24,"143":2,"144":2,"145":58,"146":2,"147":30,"148":2,"149":2,"150":2,"151":2,"152":2,"153":2,"154":2,"155":2,"156":2,"157":4,"158":4,"159":4,"160":2,"161":2,"162":2,"163":2,"167":34,"168":8}}],["n",{"2":{"171":4}}],["npm",{"2":{"101":2}}],["neue",{"2":{"171":24}}],["next",{"2":{"112":2}}],["net",{"2":{"101":2}}],["new",{"2":{"83":2}}],["needdefaultyaxisfigure",{"2":{"31":3,"145":6,"147":5,"167":2}}],["needdefaultxaxisfigure",{"2":{"31":3,"145":6,"147":5,"167":2}}],["needdefaultpointfigure",{"2":{"31":3,"145":6,"147":5,"167":2}}],["none",{"2":{"171":4}}],["normal",{"2":{"29":3,"31":3,"112":4,"141":2,"142":3,"145":4,"147":3,"167":4,"171":28}}],["nochangecolor",{"2":{"142":4,"171":10}}],["nochangewickcolor",{"2":{"7":1,"171":2}}],["nochangebordercolor",{"2":{"7":1,"171":2}}],["null",{"2":{"140":2,"141":4,"142":6,"145":2,"147":2,"171":2}}],["nullable",{"2":{"23":2}}],["number",{"2":{"20":6,"29":10,"31":12,"44":4,"45":2,"46":2,"47":2,"48":6,"49":8,"50":14,"51":8,"52":14,"53":10,"54":8,"55":8,"56":12,"57":12,"58":14,"59":10,"60":8,"61":8,"62":14,"63":26,"65":14,"85":14,"86":10,"87":8,"88":8,"89":14,"90":26,"93":4,"112":62,"118":12,"121":4,"128":2,"129":2,"130":2,"131":2,"132":2,"133":2,"134":8,"135":14,"136":14,"137":14,"138":14,"140":2,"141":18,"142":10,"145":20,"147":10,"149":4,"150":4,"151":4,"152":4,"153":8,"154":6,"155":6,"156":8,"160":20,"161":20,"167":48}}],["name=",{"2":{"104":8}}],["name为基础图形名字",{"2":{"83":2}}],["name",{"0":{"25":1,"28":1,"143":1,"144":1},"2":{"23":2,"25":3,"26":3,"28":3,"29":5,"31":3,"75":1,"82":1,"83":2,"93":2,"96":2,"112":4,"115":2,"141":4,"142":7,"143":3,"144":3,"145":6,"147":5,"148":3,"167":2,"168":2,"178":5,"180":1}}],["||",{"2":{"96":4,"115":2}}],["|",{"2":{"20":6,"21":4,"29":10,"31":34,"44":2,"45":2,"47":2,"48":2,"57":20,"58":2,"59":8,"60":2,"61":8,"62":8,"63":26,"85":2,"86":6,"87":2,"88":6,"89":6,"90":10,"112":10,"117":4,"118":4,"119":2,"140":2,"141":32,"142":28,"145":16,"147":6,"148":2,"158":12,"159":12,"160":4,"161":4,"167":18,"171":102}}],["686d76",{"2":{"171":8}}],["60",{"2":{"110":2}}],["600px",{"2":{"104":4}}],["62",{"2":{"103":2,"104":2}}],["66",{"2":{"103":4,"104":4}}],["64",{"2":{"103":2,"104":2}}],["61",{"2":{"103":4,"104":4}}],["6",{"0":{"16":1},"2":{"16":1,"110":9,"171":10}}],["76808f",{"2":{"171":4}}],["76",{"2":{"103":2,"104":2}}],["72",{"2":{"103":2,"104":2}}],["70",{"2":{"103":2,"104":2}}],["74",{"2":{"103":2,"104":2}}],["77",{"2":{"103":2,"104":2}}],["7yjhygvvvz",{"2":{"79":1}}],["7",{"0":{"15":1},"2":{"15":1,"171":12,"172":1}}],["的浏览器上",{"2":{"67":1}}],["的版本记录",{"2":{"17":1,"18":1}}],["的",{"2":{"14":1,"15":1,"16":1}}],["x轴分割线",{"2":{"171":4}}],["x轴分割文字",{"2":{"171":4}}],["x轴线",{"2":{"171":2}}],["x轴",{"2":{"171":2}}],["x轴组件",{"2":{"112":4,"167":2}}],["xxxxxxxx",{"2":{"145":2,"147":2}}],["xxx",{"2":{"115":4,"180":8}}],["xdis",{"2":{"96":4,"168":6}}],["x是中心点x轴坐标值",{"2":{"95":1}}],["x",{"0":{"14":1,"15":1,"16":1,"17":1,"18":1},"2":{"14":1,"15":1,"16":1,"17":1,"18":1,"49":4,"50":6,"51":2,"52":5,"53":5,"54":4,"55":4,"56":5,"57":5,"58":3,"59":3,"60":2,"61":2,"62":3,"63":3,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"93":2,"95":1,"96":24,"153":2,"160":4,"161":4,"167":2,"168":4,"172":4}}],["xaxis",{"2":{"13":3,"29":8,"112":12,"167":4,"171":2,"175":3,"180":4}}],["xaxis新增方法converttimestampfrompixel和converttimestamptopixel",{"2":{"3":1}}],["85",{"2":{"171":6}}],["888888",{"2":{"142":4,"171":28}}],["88",{"2":{"103":2,"104":2}}],["89",{"2":{"103":2,"104":2}}],["8",{"0":{"14":1},"2":{"14":1,"104":2,"145":2,"147":2,"171":12,"172":2}}],["删除属性shouldcheckparamcount",{"2":{"180":1}}],["删除gettechnicalindicatorbypaneid",{"2":{"178":1}}],["删除setshapeoptions",{"2":{"178":1}}],["删除shape",{"2":{"13":2,"175":1}}],["删除removeshape",{"2":{"178":1}}],["删除createhtml",{"2":{"178":1}}],["删除createshape",{"2":{"178":1}}],["删除candle",{"2":{"13":1}}],["删除extension",{"2":{"177":1}}],["删除回调事件",{"2":{"167":2}}],["删除一个html元素",{"2":{"148":1}}],["删除事件",{"2":{"31":1,"147":1}}],["删除实例方法createhtml",{"2":{"13":1}}],["删除实例方法createshape",{"2":{"13":1}}],["删除实例方法setshapeoptions",{"2":{"13":1}}],["删除实例方法removeshape",{"2":{"13":1}}],["删除实例方法getwidth",{"2":{"13":1}}],["改用overlay",{"2":{"13":2}}],["改用overrideoverlay",{"2":{"13":1}}],["改用removeoverlay",{"2":{"13":1}}],["改用createoverlay",{"2":{"13":1}}],["改用getsize",{"2":{"13":1}}],["废弃",{"2":{"13":1}}],["length",{"2":{"168":2,"171":4}}],["left",{"2":{"57":2,"63":2,"112":4,"118":2,"167":2,"171":10}}],["labels和candle",{"2":{"175":1}}],["lang=",{"2":{"104":2}}],["lastvaluemark",{"2":{"13":1,"171":2}}],["last",{"2":{"13":1,"171":2}}],["liihuu",{"2":{"77":2}}],["linecolor",{"2":{"171":2}}],["linewidth",{"2":{"96":2}}],["lineto",{"2":{"96":12}}],["line",{"0":{"54":1,"60":1,"87":1},"2":{"54":2,"60":3,"84":1,"114":4,"115":6,"145":2,"147":2,"171":8}}],["linesize",{"2":{"171":2}}],["lines",{"2":{"13":1,"142":2,"171":2,"175":1}}],["line变更为indicator",{"2":{"13":1,"175":1}}],["lt",{"2":{"23":2,"29":8,"31":8,"51":2,"54":2,"55":2,"59":2,"60":2,"61":4,"62":2,"87":2,"88":2,"96":2,"101":4,"104":36,"112":14,"135":2,"136":2,"138":2,"141":8,"142":8,"145":6,"147":2,"160":4,"161":4,"167":8}}],["loadmore",{"0":{"140":1}}],["lock",{"2":{"31":3,"145":6,"147":5,"167":2}}],["locales",{"0":{"22":1},"2":{"22":3,"107":1}}],["locale",{"0":{"22":1},"2":{"20":3,"22":3}}],["low",{"2":{"22":2,"65":2,"103":20,"104":20,"107":2,"135":2,"136":2,"137":2,"138":2,"171":2}}],["log",{"2":{"14":1,"15":1,"16":1,"145":28,"147":28,"171":2}}],["halfgapbar",{"2":{"112":2,"167":2}}],["halfbar",{"2":{"112":2,"167":2}}],["hanging",{"2":{"57":2,"63":2}}],["hk",{"2":{"107":2}}],["helvetica",{"2":{"171":24}}],["head",{"2":{"104":4}}],["height是高度",{"2":{"95":1}}],["height",{"2":{"56":3,"62":3,"63":3,"89":2,"90":2,"95":1,"96":16,"104":2,"112":4,"118":2,"141":5,"156":5,"167":2}}],["height变更为yaxis",{"2":{"13":1,"175":1}}],["height变更为xaxis",{"2":{"13":1,"175":1}}],["https",{"2":{"77":2,"78":1,"79":1,"101":2,"167":2}}],["htmlid",{"2":{"148":1,"178":1}}],["html",{"2":{"104":7,"178":1}}],["html5",{"2":{"67":1}}],["htmlelement",{"2":{"20":2,"21":2,"117":2,"119":2}}],["hh",{"2":{"46":1}}],["high",{"2":{"22":2,"65":2,"103":20,"104":20,"107":2,"135":2,"136":2,"137":2,"138":2,"171":2}}],["horizontalstraightline",{"2":{"165":1}}],["horizontalsegment",{"2":{"165":1}}],["horizontalrayline",{"2":{"165":1}}],["horizontal",{"2":{"13":1,"171":4}}],["smooth",{"2":{"171":12}}],["sma",{"2":{"110":1}}],["sqrt",{"2":{"168":2}}],["subscribeaction",{"0":{"158":1},"2":{"178":1}}],["space",{"0":{"132":1},"2":{"132":2,"178":1}}],["samplecircle",{"2":{"168":4}}],["sar",{"2":{"110":1}}],["save",{"2":{"99":1}}],["savenpm",{"2":{"99":1}}],["scale",{"0":{"153":1,"154":1,"155":1},"2":{"153":3,"154":3,"155":3}}],["scale=1",{"2":{"104":2}}],["scrolltotimestamp",{"0":{"152":1}}],["scrolltodataindex",{"0":{"151":1}}],["scrolltorealtime",{"0":{"150":1}}],["scrollbydistance",{"0":{"149":1}}],["scrollzoomenabled",{"2":{"141":5,"156":5}}],["script",{"0":{"104":1},"2":{"101":4,"104":4}}],["src=",{"2":{"101":2}}],["solid是实线",{"2":{"95":1}}],["solid",{"2":{"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"96":2,"141":4,"142":10,"145":2,"147":2,"171":70}}],["source",{"0":{"36":1},"2":{"36":2}}],["simple",{"2":{"173":1}}],["simpletag",{"2":{"165":1}}],["simpleannotation",{"2":{"75":1,"165":1}}],["sign",{"0":{"47":1},"2":{"47":2}}],["size",{"0":{"48":1},"2":{"13":2,"48":2,"57":3,"58":3,"60":3,"63":3,"85":2,"87":2,"90":2,"142":2,"145":2,"147":2,"171":62,"175":2}}],["ss",{"2":{"46":1}}],["separator",{"2":{"171":2}}],["segment",{"2":{"145":6,"147":6,"165":1}}],["series",{"2":{"29":3,"112":2,"141":2,"142":5}}],["setoffsetrightspace",{"2":{"178":1}}],["setoffsetrightdistance",{"0":{"128":1}}],["setpaneoptions",{"0":{"156":1},"2":{"156":2}}],["setpricevolumeprecision",{"0":{"121":1}}],["setbarspace",{"0":{"132":1}}],["setrightminvisiblebarcount",{"0":{"131":1}}],["setstyleoptions",{"2":{"178":1}}],["setstyles",{"0":{"119":1},"2":{"72":2}}],["setscrollenabled",{"0":{"126":1}}],["setzoomenabled",{"0":{"124":1}}],["settimezone",{"0":{"122":1}}],["setleftminvisiblebarcount",{"0":{"130":1}}],["setlinedash",{"2":{"96":4}}],["setlocale",{"2":{"13":1}}],["setcustomapi",{"2":{"13":1}}],["shape",{"2":{"174":1}}],["shanghai",{"2":{"20":1,"122":1}}],["shift",{"2":{"105":4}}],["showparams",{"2":{"171":2}}],["showtype",{"2":{"171":4}}],["showrule",{"2":{"171":4}}],["show",{"2":{"171":52}}],["showname",{"2":{"142":2,"171":2}}],["shouldformatbignumber",{"2":{"29":3,"112":2,"141":2,"142":5}}],["shouldohlc",{"2":{"29":3,"112":2,"141":2,"142":5}}],["shortname",{"2":{"29":3,"112":2,"115":2,"141":2,"142":3}}],["standard",{"2":{"171":8}}],["start",{"2":{"57":2,"63":2}}],["startangle",{"2":{"52":3,"58":3,"85":2}}],["straightline",{"2":{"165":1}}],["strokestyle",{"2":{"96":2}}],["stroke只有边框",{"2":{"95":1}}],["stroke",{"2":{"59":4,"61":4,"62":4,"63":4,"86":4,"88":4,"89":4,"90":4,"95":2,"96":8,"141":8,"142":8,"168":2,"171":46}}],["strong",{"2":{"31":3,"145":4,"147":3,"167":4}}],["string",{"2":{"20":18,"21":2,"22":14,"23":2,"24":2,"25":2,"26":2,"27":2,"28":2,"29":32,"30":2,"31":26,"32":2,"33":2,"43":2,"44":4,"45":4,"46":4,"47":6,"48":6,"57":6,"58":2,"59":4,"60":2,"61":4,"62":4,"63":10,"85":2,"86":4,"87":2,"88":4,"89":4,"90":10,"93":2,"112":28,"117":2,"118":2,"119":2,"122":2,"123":2,"141":42,"142":38,"143":4,"144":4,"145":20,"146":2,"147":8,"148":8,"156":2,"160":2,"161":2,"162":6,"167":12}}],["style=",{"2":{"104":2}}],["style是样式类型",{"2":{"95":1}}],["style",{"2":{"58":3,"59":3,"60":3,"61":3,"62":3,"63":3,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"95":1,"96":10,"141":4,"142":10,"145":2,"147":2,"168":2,"171":44}}],["styles",{"0":{"25":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"119":1},"2":{"20":3,"25":3,"26":4,"29":7,"31":15,"57":3,"58":3,"59":3,"60":3,"61":3,"62":3,"63":3,"64":2,"83":4,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"93":2,"96":8,"112":4,"119":3,"141":6,"142":9,"145":6,"147":5,"167":6,"168":2,"169":1,"178":2,"180":1}}],["style选项变更为solid和dashed",{"2":{"13":1}}],["所有的api都迁移至klinecharts",{"2":{"179":1}}],["所有线的样式选项dash",{"2":{"175":1}}],["所有dashvalue变更为dashedvalue",{"2":{"13":1}}],["所有line",{"2":{"13":1}}],["所有visiblerange新增realfrom和realto",{"2":{"7":1}}],["变更为draw",{"2":{"180":1}}],["变更为",{"2":{"180":1}}],["变更为createtooltipdatasource",{"2":{"180":1}}],["变更为createindicator",{"2":{"178":1}}],["变更为calc",{"2":{"180":1}}],["变更为regeneratefigures",{"2":{"180":1}}],["变更为registerindicator",{"2":{"177":1}}],["变更为removeindicator",{"2":{"178":1}}],["变更为overrideindicator",{"2":{"178":1}}],["变更为setoffsetrightdistance",{"2":{"178":1}}],["变更为setstyles",{"2":{"178":1}}],["变更为getindicatorbypaneid",{"2":{"178":1}}],["变更为getstyles",{"2":{"178":1}}],["变更为getdom",{"2":{"178":1}}],["变更为支持任意类型",{"2":{"13":1}}],["变更",{"2":{"13":1}}],["v9",{"0":{"172":1},"1":{"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1}}],["v8",{"0":{"172":1},"1":{"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1}}],["vr",{"2":{"110":1}}],["var",{"2":{"104":2}}],["values",{"2":{"29":2,"112":2,"141":2,"142":2,"175":1,"180":1}}],["value",{"0":{"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"47":1,"141":1,"145":1,"160":1},"2":{"4":1,"20":2,"29":2,"31":2,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"44":2,"45":2,"47":2,"112":2,"141":5,"142":2,"145":11,"147":6,"160":8,"161":4,"167":4,"171":14,"178":5,"180":2}}],["viewport",{"2":{"104":2,"180":2}}],["visiblerange",{"2":{"112":4,"180":2}}],["visible",{"2":{"29":3,"31":3,"112":2,"141":2,"142":5,"145":6,"147":5,"167":2}}],["v10之后会删除",{"2":{"64":1,"91":1}}],["version",{"0":{"33":1}}],["verticalstraightline",{"2":{"165":1}}],["verticalsegment",{"2":{"165":1}}],["verticalrayline",{"2":{"165":1}}],["vertical",{"2":{"13":1,"171":4}}],["vol",{"2":{"110":1}}],["volumeprecision",{"0":{"121":1},"2":{"71":1,"121":3}}],["volume",{"2":{"22":2,"29":3,"65":2,"103":20,"104":20,"107":2,"112":2,"121":1,"135":2,"136":2,"137":2,"138":2,"141":2,"142":3,"167":2}}],["void",{"2":{"21":2,"22":2,"25":2,"26":4,"29":2,"31":6,"36":2,"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"93":2,"121":2,"122":2,"124":2,"126":2,"128":2,"130":2,"131":2,"132":2,"135":4,"136":4,"137":4,"139":2,"140":4,"141":2,"142":4,"148":2,"149":2,"150":2,"151":2,"152":2,"153":2,"154":2,"155":2,"156":2,"157":4,"158":4,"159":4,"163":2,"167":4}}],["iconfont",{"2":{"171":4}}],["icon",{"2":{"171":8}}],["icons",{"2":{"13":2,"171":4}}],["i",{"2":{"115":10}}],["id",{"0":{"146":1},"2":{"141":5,"145":6,"146":3,"147":5,"148":3,"156":5,"171":8,"178":2}}],["id=",{"2":{"104":2}}],["ideographic",{"2":{"57":2,"63":2}}],["import",{"2":{"103":1}}],["if",{"2":{"96":6,"115":2,"168":2}}],["ignoreevent",{"2":{"31":12,"167":4}}],["index",{"2":{"173":2}}],["indicatorfigure",{"2":{"112":2}}],["indicatorfigurestyle",{"2":{"112":2}}],["indicatorfigureattrs",{"2":{"112":2}}],["indicatorfigureattrscallbackcoordinate",{"2":{"112":2}}],["indicatorstyle",{"2":{"112":8}}],["indicatordata",{"2":{"112":6}}],["indicator",{"0":{"29":1},"2":{"13":2,"29":9,"112":16,"141":6,"142":6,"171":2,"180":3}}],["inside",{"2":{"171":2}}],["install",{"2":{"99":2}}],["includeoverlay",{"0":{"162":1},"2":{"162":3}}],["intl",{"2":{"20":2,"46":2,"167":4}}],["initial",{"2":{"104":2}}],["init",{"0":{"20":1},"2":{"103":4,"104":2,"108":1}}],["isdashed合并成styles",{"2":{"180":1}}],["iszoomenabled",{"0":{"125":1}}],["isscrollenabled",{"0":{"127":1}}],["issues",{"2":{"77":2}}],["isstroke",{"2":{"180":1}}],["isstring",{"0":{"37":1}}],["isstack",{"0":{"141":1},"2":{"4":1,"141":3,"178":2}}],["isboolean",{"0":{"42":1}}],["isfunction",{"0":{"41":1}}],["isobject",{"0":{"40":1}}],["isvalid",{"0":{"39":1}}],["isvalid和klinecharts",{"2":{"7":1}}],["isnumber",{"0":{"38":1}}],["bc1qnwzukszzk5xfk0zs3sr8etzgctgnrtqts43jzp3khe6gm7xazprsp4y6n3",{"2":{"188":1}}],["btc",{"2":{"188":1}}],["blank和klinecharts",{"2":{"173":1}}],["bmp",{"2":{"162":1}}],["bbi",{"2":{"110":1}}],["brar",{"2":{"110":1}}],["bias",{"2":{"110":1}}],["beginpath",{"2":{"96":6}}],["b中的k和b",{"2":{"49":1}}],["b",{"2":{"43":2}}],["bash",{"2":{"101":1}}],["bashyarn",{"2":{"100":1}}],["bashnpm",{"2":{"99":1}}],["baseline",{"2":{"57":3,"63":3,"90":2}}],["basevalue",{"2":{"29":4,"112":2,"141":4,"142":4}}],["backgroundcolor",{"0":{"162":1},"2":{"63":3,"90":2,"162":3,"171":12}}],["barcount",{"0":{"130":1,"131":1},"2":{"130":2,"131":2}}],["barspace",{"2":{"29":8,"112":6,"167":2,"180":1}}],["bars",{"2":{"13":1,"171":2,"175":1}}],["bar变更为indicator",{"2":{"13":1,"175":1}}],["bar",{"2":{"7":6,"112":2,"167":2,"171":2}}],["boll",{"2":{"110":1,"142":4}}],["body",{"2":{"104":4}}],["borderradius",{"2":{"62":3,"63":3,"89":2,"90":2,"171":14}}],["borderdashedvalue",{"2":{"59":3,"61":3,"62":3,"63":3,"86":2,"88":2,"89":2,"90":2,"96":4,"142":4,"171":20}}],["bordersize是边框尺寸",{"2":{"95":1}}],["bordersize",{"2":{"59":3,"61":3,"62":3,"63":3,"86":2,"88":2,"89":2,"90":2,"95":1,"96":4,"142":4,"171":24}}],["borderstyle是边框样式",{"2":{"95":1}}],["borderstyle",{"2":{"13":4,"59":3,"61":3,"62":3,"63":3,"86":2,"88":2,"89":2,"90":2,"95":1,"96":4,"142":4,"171":20}}],["bordercolor是边框颜色",{"2":{"95":1}}],["bordercolor",{"2":{"59":3,"61":3,"62":3,"63":3,"86":2,"88":2,"89":2,"90":2,"95":1,"96":4,"171":16}}],["bottom",{"2":{"57":2,"63":2,"112":4,"118":2,"141":5,"156":5,"167":2}}],["bounding",{"2":{"29":8,"112":8,"167":2,"180":2}}],["boolean",{"2":{"26":2,"29":8,"31":50,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"52":2,"53":2,"54":2,"55":2,"56":2,"57":2,"93":2,"112":8,"124":2,"125":2,"126":2,"127":2,"135":2,"136":2,"141":14,"142":8,"145":76,"147":38,"156":4,"160":2,"161":2,"162":2,"167":42}}],["percentage",{"2":{"171":2}}],["performpoint",{"2":{"167":2}}],["performpointindex",{"2":{"167":2}}],["performeventmovefordrawing",{"2":{"31":3,"167":2}}],["performeventpressedmove",{"2":{"31":3,"167":2}}],["png",{"2":{"162":1}}],["p",{"2":{"115":4}}],["pvt",{"2":{"110":1}}],["psy",{"2":{"110":1}}],["point",{"2":{"171":2}}],["pointer",{"2":{"171":2}}],["points对应的坐标信息",{"2":{"167":2}}],["points",{"2":{"31":3,"145":6,"147":5,"167":4,"178":1}}],["position",{"0":{"117":1,"118":1},"2":{"117":3,"118":3,"171":8,"178":4}}],["position和candle",{"2":{"7":1}}],["polygon",{"0":{"55":1,"61":1,"88":1},"2":{"55":2,"61":3,"84":1,"171":2}}],["paypal",{"0":{"187":1},"2":{"187":1}}],["parallelstraightline",{"2":{"165":1}}],["param",{"2":{"115":8}}],["params",{"2":{"29":4,"31":10,"112":4,"115":4,"141":4,"142":4,"167":2,"180":2}}],["pane",{"2":{"141":3,"142":3,"143":1,"144":1,"145":1,"156":3}}],["paneoptions",{"0":{"141":1},"2":{"141":3,"156":1,"178":2}}],["paneid",{"0":{"117":1,"118":1,"142":1,"143":1,"144":1,"145":1},"2":{"75":1,"112":2,"117":3,"118":3,"142":3,"143":3,"144":3,"145":3,"148":1,"160":3,"161":3,"178":19}}],["paddingbottom",{"2":{"63":3,"90":2,"171":16}}],["paddingbottom变更为yaxis",{"2":{"13":1,"175":1}}],["paddingbottom变更为xaxis",{"2":{"13":1,"175":1}}],["paddingright",{"2":{"63":3,"90":2,"171":16}}],["paddingtop",{"2":{"63":3,"90":2,"171":16}}],["paddingtop变更为yaxis",{"2":{"13":1,"175":1}}],["paddingtop变更为xaxis",{"2":{"13":1,"175":1}}],["paddingleft",{"2":{"63":3,"90":2,"171":16}}],["prev",{"2":{"112":2}}],["precision",{"2":{"29":3,"44":2,"112":2,"141":2,"142":5,"167":2}}],["promise",{"2":{"29":2,"112":2,"141":2,"142":2}}],["pricechannelline",{"2":{"165":1}}],["priceline",{"2":{"165":1}}],["priceprecision",{"0":{"121":1},"2":{"71":1,"121":3}}],["price",{"2":{"29":3,"112":2,"121":1,"141":2,"142":5,"167":2}}],["pricemark",{"2":{"13":1,"171":2}}],["rgba",{"2":{"171":34}}],["radius",{"2":{"168":4,"171":2}}],["rayline",{"2":{"165":1}}],["root",{"2":{"117":2,"118":2}}],["roc",{"2":{"110":1}}],["rsi",{"2":{"110":1}}],["right",{"2":{"57":2,"63":2,"112":4,"118":2,"167":2,"171":8}}],["rigisteroverlay",{"2":{"13":1}}],["r",{"2":{"52":3,"53":3,"58":3,"59":3,"85":2,"86":2,"168":2}}],["reverse",{"2":{"171":2}}],["reference",{"2":{"167":2}}],["resize",{"0":{"163":1}}],["realdataindex",{"2":{"112":2}}],["realx",{"2":{"112":2}}],["realto",{"2":{"112":4,"134":2}}],["realfrom",{"2":{"112":4,"134":2}}],["return",{"2":{"96":2,"115":8,"145":2,"147":2,"168":4}}],["regeneratefigures",{"2":{"29":3,"112":2,"115":2,"141":2,"142":5}}],["registeroverlay",{"0":{"31":1},"2":{"166":1}}],["registerindicator全局添加",{"2":{"111":1}}],["registerindicator",{"0":{"29":1}}],["registerfigure全局添加",{"2":{"92":1}}],["registerfigure",{"0":{"26":1}}],["registerstyles注册的样式名",{"2":{"20":1}}],["registerstyles",{"0":{"25":1},"2":{"13":1}}],["registerlocale",{"0":{"22":1},"2":{"13":1,"107":3}}],["removetechnicalindicator",{"2":{"178":1}}],["removetag",{"2":{"13":1,"178":1}}],["remove",{"0":{"148":1},"2":{"148":2}}],["removeindicator",{"0":{"144":1}}],["removehtml",{"2":{"13":1,"178":1}}],["removeannotation",{"2":{"13":1,"178":1}}],["removeoverlay",{"0":{"148":1},"2":{"13":1}}],["recttext",{"0":{"64":1,"91":1},"2":{"84":1,"171":2}}],["rect",{"0":{"56":1,"62":1,"89":1},"2":{"7":2,"56":3,"62":3,"84":1,"112":2,"171":8}}],["滚动到指定时间戳",{"2":{"152":1}}],["滚动到指定的位置",{"2":{"151":1}}],["滚动到最初的位置",{"2":{"150":1}}],["滚动一定的距离",{"2":{"149":1}}],["滚动",{"2":{"13":1}}],["新特性",{"2":{"13":1}}],["新增candle",{"2":{"13":1}}],["新增实例方法",{"2":{"13":1}}],["新增基图表方法registerfigure",{"2":{"13":1}}],["新增y轴方向缩放",{"2":{"13":1}}],["新增figurekey和figureindex",{"2":{"8":1}}],["新增options",{"2":{"4":1}}],["新增图表api",{"2":{"4":1}}],["新增属性modesensitivity",{"2":{"2":1}}],["trc20",{"2":{"188":1}}],["true",{"2":{"141":4,"142":4,"145":2,"147":2,"156":4,"171":54}}],["trix",{"2":{"110":1}}],["thjptqmfgavm12ke1jzc5mlxiapp6qxmci",{"2":{"188":1}}],["theme",{"2":{"104":2}}],["thousandsseparator",{"2":{"20":3,"167":2}}],["t",{"2":{"78":1}}],["turnover",{"2":{"65":2,"135":2,"136":2,"137":2,"138":2}}],["targetcoordinate",{"0":{"50":1,"51":1},"2":{"50":2,"51":2}}],["target",{"0":{"35":1,"36":1},"2":{"35":2,"36":2}}],["tagid",{"2":{"178":1}}],["tag合并成overlay",{"2":{"174":1}}],["tag",{"2":{"13":1,"175":1,"178":1}}],["to",{"2":{"112":4,"134":2}}],["top",{"2":{"57":2,"63":2,"112":4,"118":2,"141":5,"156":5,"167":2}}],["totalstep",{"2":{"31":3,"167":2,"168":2}}],["tooltip",{"2":{"1":1,"2":1,"7":2,"13":2,"171":4,"175":3}}],["type对应的图形的样式",{"2":{"167":2}}],["type对应的图形的属性",{"2":{"167":2}}],["type=",{"2":{"101":2}}],["type",{"0":{"157":1,"158":1,"159":1,"162":1},"2":{"20":2,"29":4,"31":12,"72":2,"112":2,"114":4,"115":6,"141":4,"142":4,"157":3,"158":3,"159":3,"162":3,"167":4,"168":2,"171":4,"178":2}}],["typescript开发",{"2":{"183":1}}],["typescriptklinecharts",{"2":{"107":1}}],["typescriptnew",{"2":{"85":1,"86":1,"87":1,"88":1,"89":1,"90":1}}],["typescript",{"2":{"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"65":1,"93":1,"112":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"167":1}}],["typescript重构",{"2":{"13":1}}],["tickline",{"2":{"171":4}}],["ticktext",{"2":{"13":8,"171":4,"175":8}}],["title和value可以是字符串或者对象",{"2":{"171":2}}],["title",{"2":{"29":6,"104":4,"112":4,"114":4,"115":6,"141":6,"142":6,"171":12,"180":2}}],["time",{"2":{"22":2,"107":2,"171":4}}],["timestamp为第一条数据的时间戳",{"2":{"140":1}}],["timestamp",{"0":{"46":1,"152":1,"155":1},"2":{"20":2,"31":2,"46":2,"65":2,"103":20,"104":20,"135":2,"136":2,"137":2,"138":2,"140":2,"145":8,"147":6,"152":3,"155":3,"160":5,"161":4,"167":4}}],["timezone",{"0":{"122":1},"2":{"20":3,"122":3}}],["template",{"2":{"177":4}}],["telegram",{"0":{"78":1}}],["technicalindicator",{"2":{"13":4,"175":3,"180":1}}],["textweight",{"2":{"171":4}}],["textfamily",{"2":{"171":4}}],["textsize",{"2":{"171":4}}],["textoffset",{"2":{"171":4}}],["text",{"0":{"48":1,"57":1,"63":1,"90":1},"2":{"13":4,"29":4,"48":2,"57":6,"63":5,"64":2,"84":1,"90":2,"101":2,"112":4,"141":4,"142":4,"171":20}}],["和convertfrompixel",{"2":{"178":1}}],["和unsubscribeaction",{"2":{"178":1}}],["和updatedata",{"2":{"65":1}}],["和getheight",{"2":{"178":1}}],["和配置项",{"2":{"114":1}}],["和",{"2":{"29":1,"31":1,"65":2,"142":1,"147":1,"158":1,"159":1}}],["和基础类型deeppartial",{"2":{"8":1}}],["和setpaneoptions",{"2":{"4":1}}],["入参是空数组时不刷新问题",{"2":{"8":1}}],["日志输出",{"2":{"7":1}}],["fefefe",{"2":{"171":2}}],["f2f3f5",{"2":{"171":2}}],["fontfamily",{"2":{"171":4}}],["follow",{"2":{"171":4}}],["foreach",{"2":{"115":2}}],["formatthousands",{"0":{"47":1}}],["format格式",{"2":{"46":1}}],["formatprecision",{"0":{"44":1}}],["formatvalue",{"0":{"43":1},"2":{"43":1}}],["format",{"0":{"46":1},"2":{"20":2,"46":2}}],["formatdate",{"0":{"46":1},"2":{"20":3}}],["formatbignumber",{"0":{"45":1},"2":{"7":1,"20":3}}],["ffffff",{"2":{"162":1,"171":10}}],["ff9600",{"2":{"142":2,"171":2}}],["f00",{"2":{"145":2,"147":2}}],["false",{"2":{"141":2,"142":2,"145":10,"147":10,"171":20}}],["family",{"0":{"48":1},"2":{"48":2,"57":3,"63":3,"90":2,"171":20}}],["function",{"2":{"104":2,"145":28,"147":28}}],["from",{"2":{"103":2,"112":4,"134":2,"173":1}}],["fixed",{"2":{"171":4}}],["fibonacciline",{"2":{"165":1}}],["finder",{"0":{"160":1,"161":1},"2":{"160":3,"161":3,"178":2}}],["fillstyle",{"2":{"96":2}}],["fill又有边框又有背景",{"2":{"95":1}}],["fill只有背景",{"2":{"95":1}}],["fill`",{"2":{"86":2,"88":2,"89":2,"90":2}}],["fill",{"2":{"59":4,"61":4,"62":4,"63":4,"86":4,"88":4,"89":4,"90":4,"95":2,"96":10,"141":8,"142":12,"168":2,"171":62}}],["figurenew",{"2":{"85":1,"86":1,"87":1,"88":1,"89":1,"90":1}}],["figures",{"2":{"29":3,"112":2,"114":3,"115":6,"141":2,"142":5}}],["figure",{"0":{"26":1},"2":{"26":3,"28":2,"83":4,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1}}],["f92855",{"2":{"6":1,"171":8}}],["d9d9d9",{"2":{"171":12}}],["dragenbaled",{"2":{"141":1,"156":1}}],["dragenabled",{"2":{"141":4,"156":4}}],["drawtext",{"0":{"63":1},"2":{"64":2}}],["drawrecttext",{"0":{"64":1}}],["drawrect",{"0":{"62":1}}],["drawpolygon",{"0":{"61":1}}],["drawline",{"0":{"60":1}}],["drawcircle",{"0":{"59":1}}],["drawarc",{"0":{"58":1}}],["draw",{"2":{"26":3,"29":3,"83":2,"93":2,"96":2,"112":2,"141":2,"142":5}}],["d",{"2":{"112":2}}],["dma",{"2":{"110":1}}],["dmi",{"2":{"110":1}}],["docs",{"2":{"167":2}}],["doctype",{"2":{"104":2}}],["domid",{"2":{"103":2}}],["down",{"2":{"171":2}}],["downcolor",{"2":{"142":4,"171":10}}],["downwickcolor",{"2":{"7":1,"171":2}}],["downbordercolor",{"2":{"7":1,"171":2}}],["div",{"2":{"104":4}}],["diamond",{"2":{"96":2}}],["distance",{"0":{"128":1,"149":1},"2":{"128":2,"149":3,"150":2,"178":1}}],["dist",{"2":{"101":2}}],["discord",{"0":{"79":1},"2":{"79":1}}],["discussions",{"2":{"77":2}}],["dispose",{"0":{"21":1}}],["dashvalue更改为dashedvalue",{"2":{"175":1}}],["dashed是虚线",{"2":{"95":1}}],["dashedvalue是虚线值",{"2":{"95":1}}],["dashedvalue",{"2":{"58":3,"60":3,"85":2,"87":2,"95":1,"142":2,"145":2,"147":2,"171":24}}],["dashed",{"2":{"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"96":2,"141":4,"142":4,"171":42}}],["datasource",{"2":{"180":2}}],["dataindex",{"0":{"151":1,"154":1},"2":{"31":2,"112":2,"145":4,"147":2,"151":3,"154":3,"160":5,"161":4,"167":4}}],["datalist",{"0":{"135":1,"136":1},"2":{"29":2,"65":2,"112":2,"135":3,"136":3,"141":2,"142":2}}],["data",{"0":{"137":1,"157":1},"2":{"29":4,"43":2,"65":1,"112":2,"137":3,"141":4,"142":4,"157":3,"158":2,"159":2}}],["datetimeformat",{"0":{"46":1},"2":{"20":4,"46":4,"167":6}}],["dd",{"2":{"46":1}}],["dcs",{"0":{"21":1},"2":{"21":3}}],["ds",{"0":{"20":1},"2":{"20":3,"169":1}}],["developer",{"2":{"167":2}}],["description",{"2":{"104":2}}],["defaultvalue",{"0":{"43":1},"2":{"43":2,"171":4}}],["defaultstyles",{"2":{"29":4,"112":6,"141":4,"142":4,"167":2,"180":3}}],["defaultzlevel和zlevel",{"2":{"3":1}}],["deeprequired",{"2":{"8":1}}],["ue900",{"2":{"171":4}}],["unsubscribeaction",{"0":{"159":1}}],["unpkg或者其它的",{"2":{"101":1}}],["utf",{"2":{"104":2}}],["utils",{"0":{"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"1":{"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"2":{"4":1,"7":2,"179":1}}],["usdt",{"2":{"188":3}}],["us和zh",{"2":{"106":1}}],["us",{"2":{"20":1,"22":1,"106":1}}],["up",{"2":{"171":2}}],["upcolor",{"2":{"142":4,"171":10}}],["updatedata",{"0":{"137":1}}],["upwickcolor",{"2":{"7":1,"171":2}}],["upbordercolor",{"2":{"7":1,"171":2}}],["activeradius",{"2":{"171":2}}],["activebordersize",{"2":{"171":2}}],["activebordercolor",{"2":{"171":2}}],["activebackgroundcolor",{"2":{"171":6}}],["activecolor",{"2":{"171":2}}],["axisline",{"2":{"171":4}}],["axisoptions",{"2":{"4":1,"141":5,"156":5}}],["auto",{"2":{"171":4}}],["ao",{"2":{"110":1}}],["absoluteyaxis变更为finder",{"2":{"178":1}}],["absolute",{"2":{"160":3,"161":3,"178":1}}],["abs",{"2":{"96":4,"168":4}}],["avp",{"2":{"65":2,"110":1}}],["always",{"2":{"171":8}}],["alphabetic",{"2":{"57":2,"63":2}}],["align",{"2":{"57":3,"63":3,"90":2}}],["area",{"2":{"72":2,"171":4}}],["arc",{"0":{"52":1,"58":1,"85":1},"2":{"52":3,"58":3,"83":2,"84":1,"171":2}}],["array",{"2":{"29":6,"31":8,"51":2,"54":2,"55":2,"59":2,"60":2,"61":4,"62":2,"87":2,"88":2,"112":10,"135":2,"136":2,"138":2,"141":6,"142":6,"145":6,"147":2,"160":4,"161":4,"167":8}}],["a",{"2":{"43":2,"171":4}}],["animationduration",{"0":{"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1},"2":{"149":3,"150":3,"151":3,"152":3,"153":3,"154":3,"155":3}}],["any",{"2":{"26":4,"29":6,"31":38,"35":4,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"43":6,"57":2,"63":2,"90":2,"93":6,"112":16,"141":6,"142":6,"145":4,"147":2,"157":2,"158":2,"159":2,"167":14}}],["annotation",{"2":{"13":1,"174":1,"175":1,"178":1}}],["attrs",{"2":{"26":4,"29":4,"31":12,"63":1,"83":4,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"93":4,"96":8,"112":2,"167":4,"168":2}}],["asia",{"2":{"20":1,"122":1}}],["add",{"2":{"100":2}}],["addshapetemplate",{"2":{"13":1,"177":1}}],["addshapetemplate变更为registeroverlay",{"2":{"13":1}}],["addtechnicalindicatortemplate",{"2":{"13":1,"177":1}}],["addtechnicalindicatortemplate变更为registerindicator",{"2":{"13":1}}],["api调整",{"0":{"176":1},"1":{"177":1,"178":1,"179":1}}],["api",{"2":{"13":3,"65":1}}],["applymoredata",{"0":{"136":1},"2":{"65":1}}],["applymoredata和updatedata新增成功回调入参callback",{"2":{"7":1}}],["applynewdata",{"0":{"135":1},"2":{"8":1,"65":1,"103":2,"104":2}}],["修复typescript引入问题",{"2":{"12":1}}],["修复内置基础图形arc不生效问题",{"2":{"10":1}}],["修复内置基础图形line触发事件不准确问题",{"2":{"9":1}}],["修复内置覆盖物simpleannotation和simpletag绘制完成后第一次触发事件问题",{"2":{"9":1}}],["修复无数据时y轴上十字光标文字不显示问题",{"2":{"8":1}}],["修复图表api",{"2":{"8":1}}],["修复基础图形line事件检查可能导致错误问题",{"2":{"5":1}}],["修复窗口id命名拼写错误",{"2":{"2":1}}],["omni",{"2":{"188":1}}],["offsetright",{"2":{"171":2}}],["offsettop",{"2":{"171":2}}],["offsetleft",{"2":{"171":2}}],["offset",{"2":{"171":4}}],["offsetbottom",{"2":{"7":1,"171":2}}],["ohlc",{"2":{"171":4}}],["org",{"2":{"167":2}}],["obv",{"2":{"110":1}}],["objects",{"2":{"167":2}}],["object",{"2":{"20":2,"25":2,"26":4,"29":36,"31":40,"36":4,"119":2,"120":2,"141":24,"142":24,"143":2,"144":2,"145":60,"146":2,"147":30}}],["o",{"2":{"43":2}}],["onpanedrag",{"2":{"158":3,"159":3}}],["onpressedmoveend",{"2":{"31":3,"145":6,"147":5,"167":2}}],["onpressedmovestart",{"2":{"31":3,"145":6,"147":5,"167":2}}],["onpressedmoving",{"2":{"31":3,"145":6,"147":5,"167":2}}],["ontooltipiconclick",{"2":{"158":3,"159":3}}],["onvisiblerangechange和onpanedrag",{"2":{"178":1}}],["onvisiblerangechange",{"2":{"158":3,"159":3}}],["onscroll",{"2":{"158":3,"159":3,"178":1}}],["onselected",{"2":{"31":3,"145":6,"147":5,"167":2}}],["onzoom",{"2":{"158":3,"159":3}}],["oncandlebarclick",{"2":{"158":3,"159":3}}],["oncrosshairchange",{"2":{"157":3,"158":3,"159":3,"178":1}}],["onclick",{"2":{"31":3,"145":6,"147":5,"167":2}}],["onload",{"2":{"104":2}}],["onremoved",{"2":{"31":3,"145":6,"147":5,"167":2}}],["onrightclick",{"2":{"31":3,"145":6,"147":5,"167":2}}],["onmouseleave",{"2":{"31":3,"145":6,"147":5,"167":2}}],["onmouseenter",{"2":{"31":3,"145":6,"147":5,"167":2}}],["ondeselected",{"2":{"31":3,"145":6,"147":5,"167":2}}],["ondoubleclick",{"2":{"31":3,"145":6,"147":5,"167":2}}],["ondrawend",{"2":{"31":3,"145":6,"147":5,"167":2}}],["ondrawing",{"2":{"31":3,"145":6,"147":5,"167":2}}],["ondrawstart",{"2":{"31":3,"145":6,"147":5,"167":2}}],["open",{"2":{"22":2,"65":2,"103":20,"104":20,"107":2,"135":2,"136":2,"137":2,"138":2,"171":4}}],["options新增属性gap",{"2":{"13":1}}],["options",{"0":{"20":1,"156":1},"2":{"4":2,"13":1,"20":3,"108":1,"156":2,"169":1,"178":1,"180":1}}],["overridetechnicalindicator",{"2":{"178":1}}],["override",{"0":{"142":1,"147":1},"2":{"142":3,"147":3,"178":3}}],["overrideindicator",{"0":{"142":1},"2":{"142":2}}],["overrideoverlay",{"0":{"147":1},"2":{"13":1,"147":2}}],["overlayevent",{"2":{"167":28}}],["overlayperformeventparams",{"2":{"167":2}}],["overlaycreatefigurescallback",{"2":{"167":4}}],["overlayconstructor",{"2":{"23":2}}],["overlaystyle",{"2":{"167":4}}],["overlayfigureignoreeventtype",{"2":{"31":12,"167":4}}],["overlayfigure中的attrs类型声明",{"2":{"2":1}}],["overlay",{"0":{"31":1},"2":{"31":3,"167":4,"171":2}}],["overlay新增属性paneid",{"2":{"3":1}}],["overlay新增事件ondoubleclick",{"2":{"2":1}}],["3dsxsbtbmwxumaaqmysvpgedbp9rghpnfq",{"2":{"188":1}}],["30",{"2":{"103":2,"104":2,"110":3,"141":2}}],["35",{"2":{"103":2,"104":2,"171":4}}],["31",{"2":{"103":2,"104":2}}],["34",{"2":{"103":2,"104":2,"110":1}}],["33",{"2":{"103":2,"104":2,"171":12}}],["39",{"2":{"29":12,"31":12,"57":44,"58":8,"59":20,"60":8,"61":20,"62":20,"63":64,"65":8,"72":4,"83":8,"85":8,"86":20,"87":8,"88":20,"89":20,"90":20,"96":40,"103":4,"104":4,"107":28,"112":20,"114":40,"115":36,"117":12,"118":12,"141":60,"142":108,"145":52,"147":40,"156":4,"157":4,"158":28,"159":28,"167":24,"168":20,"171":1004}}],["3",{"0":{"4":1,"8":1},"2":{"110":3,"156":2,"168":2,"171":6}}],["cb",{"0":{"140":1},"2":{"140":3}}],["cleardata",{"0":{"139":1}}],["clone",{"0":{"35":1}}],["closesums",{"2":{"115":10}}],["closepath",{"2":{"96":4}}],["close",{"2":{"22":2,"65":2,"103":20,"104":20,"107":2,"115":8,"135":2,"136":2,"137":2,"138":2,"171":6}}],["cci",{"2":{"110":1}}],["cn",{"2":{"167":2}}],["cn两种语言",{"2":{"106":1}}],["cn和en",{"2":{"20":1,"22":1}}],["cdn",{"2":{"101":2}}],["currentstep",{"2":{"167":2}}],["current",{"2":{"112":2}}],["currentcolor",{"2":{"96":4}}],["custom",{"2":{"171":2,"175":1}}],["customapi",{"2":{"20":3}}],["custom支持字符串模版",{"2":{"2":1}}],["custom新增内置涨跌幅支持",{"2":{"1":1}}],["center",{"2":{"57":2,"63":2}}],["c",{"2":{"43":2}}],["convertfrompixel",{"0":{"161":1}}],["converttopixel",{"0":{"160":1},"2":{"178":1}}],["console",{"2":{"145":28,"147":28}}],["const",{"2":{"83":2,"96":10,"103":2,"115":6,"168":6}}],["content=",{"2":{"104":8}}],["com",{"2":{"77":2}}],["color是颜色",{"2":{"95":1}}],["color",{"2":{"29":4,"57":3,"58":3,"59":3,"60":3,"61":3,"62":3,"63":3,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"95":1,"96":4,"104":2,"112":4,"141":8,"142":10,"145":2,"147":2,"171":76,"180":2}}],["coordinates",{"2":{"54":2,"55":2,"60":2,"61":2,"87":2,"88":2,"167":2,"168":14}}],["coordinate2",{"0":{"49":1,"50":1},"2":{"49":2,"50":2}}],["coordinate1",{"0":{"49":1,"50":1},"2":{"49":2,"50":2}}],["coordinate",{"0":{"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"153":1,"161":1},"2":{"26":4,"29":4,"52":3,"53":3,"54":2,"55":2,"56":3,"57":3,"93":2,"96":6,"112":2,"153":3,"161":3,"178":1}}],["checkcoordinateontext",{"0":{"57":1}}],["checkcoordinateonrect",{"0":{"56":1}}],["checkcoordinateonpolygon",{"0":{"55":1}}],["checkcoordinateonline",{"0":{"54":1}}],["checkcoordinateoncircle",{"0":{"53":1}}],["checkcoordinateonarc",{"0":{"52":1}}],["checkeventon",{"2":{"26":3,"93":2,"96":2}}],["charset=",{"2":{"104":2}}],["chart",{"2":{"20":2,"21":2,"72":1,"103":4,"104":8,"141":1,"142":1,"145":1,"147":1,"156":1}}],["change",{"2":{"14":1,"15":1,"16":1}}],["ctx",{"0":{"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"2":{"26":2,"58":3,"59":3,"60":3,"61":3,"62":3,"63":3,"64":2,"83":4,"93":2,"96":42,"112":2,"180":2}}],["circle",{"0":{"53":1,"59":1,"86":1},"2":{"53":3,"59":3,"83":2,"84":1,"168":4,"171":2}}],["circles",{"2":{"13":1,"142":2,"171":2,"175":1}}],["circle变更为indicator",{"2":{"13":1,"175":1}}],["cross",{"2":{"171":4}}],["crosshair",{"2":{"13":2,"112":2,"171":2,"180":2}}],["cr",{"2":{"110":1}}],["createyaxisfigures",{"2":{"31":3,"167":2}}],["createxaxisfigures",{"2":{"31":3,"167":2}}],["createpointfigures",{"2":{"31":3,"167":2,"168":2}}],["createtechnicalindicator",{"2":{"178":1}}],["createtooltipdatasource",{"2":{"29":3,"112":2,"141":2,"142":3}}],["createtag",{"2":{"13":1,"178":1}}],["createannotation",{"2":{"13":1,"178":1}}],["createindicator",{"0":{"141":1},"2":{"4":1,"141":2}}],["createoverlay",{"0":{"145":1},"2":{"3":1,"13":1,"145":2}}],["callback",{"0":{"135":1,"136":1,"137":1,"141":1,"142":1,"158":1,"159":1},"2":{"135":3,"136":3,"137":3,"141":3,"142":3,"158":3,"159":3,"178":2}}],["calcparms",{"2":{"29":2,"112":2,"141":2,"142":2}}],["calcparamstext",{"2":{"29":2,"112":2,"141":2,"142":2,"180":1}}],["calcparams",{"2":{"29":3,"112":2,"114":3,"115":6,"141":2,"142":5}}],["calc",{"2":{"29":3,"112":2,"115":2,"141":2,"142":5}}],["calctextwidth",{"0":{"48":1},"2":{"4":1}}],["canvastextbaseline",{"2":{"90":2}}],["canvastextalign",{"2":{"90":2}}],["canvas",{"2":{"67":2}}],["canvasgradient",{"2":{"59":2,"61":2,"62":2,"90":2}}],["canvasrenderingcontext2d",{"2":{"26":2,"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"93":2,"112":2}}],["candle",{"2":{"7":6,"13":1,"72":2,"141":1,"142":3,"143":1,"144":1,"145":1,"156":1,"171":12,"175":1}}],["22",{"2":{"171":8}}],["2196f3",{"2":{"171":4}}],["26a69a",{"2":{"142":4}}],["26a69a变更为",{"2":{"6":1}}],["26",{"2":{"110":3}}],["28",{"2":{"103":6,"104":6}}],["20",{"2":{"103":6,"104":6,"110":6,"142":2}}],["204",{"2":{"103":2,"104":2}}],["2023",{"2":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1}}],["230",{"2":{"171":6}}],["23",{"2":{"11":1}}],["249",{"2":{"171":6}}],["243",{"2":{"171":12}}],["2432435",{"2":{"142":2}}],["24",{"2":{"7":1,"110":4}}],["2dc08e",{"2":{"6":1,"171":8}}],["27",{"2":{"6":1}}],["2",{"0":{"5":2,"6":1,"7":1,"9":1},"2":{"96":22,"110":3,"141":2,"142":12,"145":6,"147":6,"156":2,"168":2,"171":98}}],["255",{"2":{"171":8}}],["25",{"2":{"3":1,"171":4}}],["45",{"2":{"171":6}}],["40",{"2":{"110":1,"171":6}}],["42",{"2":{"103":2,"104":2}}],["4986",{"2":{"103":2,"104":2}}],["4980",{"2":{"103":2,"104":2}}],["4988",{"2":{"103":2,"104":2}}],["4985",{"2":{"103":2,"104":2}}],["4981",{"2":{"103":4,"104":4}}],["4964",{"2":{"103":6,"104":6}}],["4961",{"2":{"103":10,"104":10}}],["4963",{"2":{"103":2,"104":2}}],["4962",{"2":{"103":2,"104":2}}],["4968",{"2":{"103":4,"104":4}}],["4966",{"2":{"103":4,"104":4}}],["4975",{"2":{"103":2,"104":2}}],["4974",{"2":{"103":2,"104":2}}],["4973",{"2":{"103":4,"104":4}}],["4971",{"2":{"103":2,"104":2}}],["4979",{"2":{"103":6,"104":6}}],["4972",{"2":{"103":6,"104":6}}],["4970",{"2":{"103":2,"104":2}}],["4977",{"2":{"103":12,"104":12}}],["4976",{"2":{"103":4,"104":4}}],["4",{"0":{"3":1,"18":1},"2":{"18":1,"142":2,"171":62}}],["优化事件处理",{"2":{"11":1}}],["优化渲染更新",{"2":{"10":1}}],["优化覆盖物图形事件忽略",{"2":{"9":1}}],["优化覆盖物事件回调参数",{"2":{"8":1}}],["优化面积图显示",{"2":{"8":1}}],["优化开发环境下",{"2":{"7":1}}],["优化api",{"2":{"7":1}}],["优化typescript覆盖物样式类型",{"2":{"8":1}}],["优化typescript声明",{"2":{"6":1}}],["优化typescript下",{"2":{"2":1}}],["优化默认样式",{"2":{"6":1}}],["优化类型检查",{"2":{"5":1}}],["优化内部id生成",{"2":{"4":1}}],["优化内部获取屏幕像素比",{"2":{"4":1}}],["优化bar宽度比例",{"2":{"4":1}}],["优化蜡烛柱显示",{"2":{"3":1}}],["优化分割线事件响应灵敏度",{"2":{"2":1}}],["优化移动端阻尼滚动掉帧问题",{"2":{"2":1}}],["优化基础图形rect事件响应",{"2":{"1":1}}],["0xd2c3911654db861e0a2e17415e11a209c1fc3594",{"2":{"188":2}}],["01c5c4",{"2":{"171":2}}],["01",{"2":{"171":2}}],["000000",{"2":{"104":2}}],["09",{"2":{"103":2,"104":2}}],["02",{"2":{"11":1,"12":1,"13":1,"103":2,"104":2}}],["03",{"2":{"10":1}}],["04",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1}}],["05",{"2":{"3":1,"4":1,"5":1}}],["06",{"2":{"2":1,"103":2,"104":2}}],["0",{"0":{"2":1,"3":1,"4":1,"7":1,"11":1,"12":1,"13":2},"2":{"115":2,"141":4,"145":2,"147":2,"156":4,"168":6,"171":42}}],["08",{"2":{"1":1}}],["↩️",{"2":{"1":1}}],["🛡",{"2":{"183":1}}],["📱",{"2":{"183":1}}],["💪",{"2":{"183":1}}],["📦",{"2":{"183":1}}],["📃",{"0":{"181":1},"1":{"182":1,"183":1}}],["🚀",{"0":{"97":1},"1":{"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"183":1}}],["💬",{"0":{"76":1},"1":{"77":1,"78":1,"79":1,"80":1,"81":1}}],["🙋",{"0":{"69":1},"1":{"70":1,"71":1,"72":1,"73":1,"74":1,"75":1}}],["📚",{"0":{"65":1}}],["🗑",{"2":{"13":1}}],["👉",{"2":{"13":1}}],["🛠️",{"0":{"172":1},"1":{"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1}}],["🛠",{"2":{"13":1}}],["🐞",{"2":{"2":2,"5":1,"8":2,"9":2,"10":1,"12":1}}],["💄",{"2":{"1":1,"2":2,"3":1,"4":3,"5":1,"6":2,"7":2,"8":3,"9":1,"10":1,"11":1}}],["📠",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1}}],["119",{"2":{"171":8}}],["18987",{"2":{"145":2,"147":2}}],["184",{"2":{"103":2,"104":2}}],["192",{"2":{"171":6}}],["191",{"2":{"103":2,"104":2}}],["19",{"2":{"103":2,"104":2}}],["197",{"2":{"103":2,"104":2}}],["194",{"2":{"103":2,"104":2}}],["12",{"2":{"103":2,"104":2,"110":9,"171":24}}],["1677ff",{"2":{"171":22}}],["16098",{"2":{"145":2,"147":2}}],["1614171202000",{"2":{"145":2,"147":2}}],["1614171282000",{"2":{"145":2,"147":2}}],["16",{"2":{"13":1,"103":2,"104":2}}],["17",{"2":{"12":1}}],["100",{"2":{"141":2,"156":2}}],["1000000转换为1m等",{"2":{"20":1,"29":1,"45":1,"142":1}}],["105",{"2":{"103":2,"104":2}}],["10",{"2":{"9":1,"110":7,"114":2,"115":2,"171":12}}],["135",{"2":{"103":2,"104":2}}],["13",{"2":{"4":1,"110":1}}],["150",{"2":{"171":12}}],["1587660540000",{"2":{"103":2,"104":2}}],["1587660480000",{"2":{"103":2,"104":2}}],["1587660420000",{"2":{"103":2,"104":2}}],["1587660360000",{"2":{"103":2,"104":2}}],["1587660300000",{"2":{"103":2,"104":2}}],["1587660240000",{"2":{"103":2,"104":2}}],["1587660180000",{"2":{"103":2,"104":2}}],["1587660120000",{"2":{"103":2,"104":2}}],["1587660060000",{"2":{"103":2,"104":2}}],["1587660000000",{"2":{"103":2,"104":2}}],["15",{"2":{"2":1,"8":1,"171":2}}],["142",{"2":{"171":6}}],["14",{"2":{"1":1,"10":1,"103":2,"104":2,"110":3}}],["1",{"0":{"1":1,"6":1,"8":1,"9":1,"10":2,"11":1,"12":1},"2":{"43":1,"96":2,"115":6,"141":4,"142":6,"145":2,"147":2,"156":4,"168":4,"171":76}}],["50",{"2":{"110":1}}],["55",{"2":{"103":2,"104":2}}],["56",{"2":{"103":2,"104":2}}],["53",{"2":{"103":4,"104":4}}],["5",{"0":{"1":1,"2":1,"17":1},"2":{"17":1,"110":3,"114":2,"115":2,"142":4,"171":8}}],["96",{"2":{"103":2,"104":2}}],["935ebd",{"2":{"171":2}}],["93",{"2":{"103":6,"104":6}}],["94",{"2":{"103":2,"104":2}}],["99",{"2":{"103":4,"104":4}}],["9",{"0":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1},"2":{"110":3,"172":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/@localSearchIndexroot.6beb67a5.js b/assets/chunks/@localSearchIndexroot.6beb67a5.js deleted file mode 100644 index 3549bc919..000000000 --- a/assets/chunks/@localSearchIndexroot.6beb67a5.js +++ /dev/null @@ -1 +0,0 @@ -const t='{"documentCount":189,"nextId":189,"documentIds":{"0":"/guide/changelog.html#📠-更新日志","1":"/guide/changelog.html#_9-5-1","2":"/guide/changelog.html#_9-5-0","3":"/guide/changelog.html#_9-4-0","4":"/guide/changelog.html#_9-3-0","5":"/guide/changelog.html#_9-2-2","6":"/guide/changelog.html#_9-2-1","7":"/guide/changelog.html#_9-2-0","8":"/guide/changelog.html#_9-1-3","9":"/guide/changelog.html#_9-1-2","10":"/guide/changelog.html#_9-1-1","11":"/guide/changelog.html#_9-1-0","12":"/guide/changelog.html#_9-0-1","13":"/guide/changelog.html#_9-0-0","14":"/guide/changelog.html#_8-x","15":"/guide/changelog.html#_7-x","16":"/guide/changelog.html#_6-x","17":"/guide/changelog.html#_5-x","18":"/guide/changelog.html#_4-x","19":"/guide/chart-api.html#图表api","20":"/guide/chart-api.html#init-ds-options","21":"/guide/chart-api.html#dispose-dcs","22":"/guide/chart-api.html#registerlocale-locale-locales","23":"/guide/chart-api.html#getoverlayclass","24":"/guide/chart-api.html#getsupportedlocales","25":"/guide/chart-api.html#registerstyles-name-styles","26":"/guide/chart-api.html#registerfigure-figure","27":"/guide/chart-api.html#getsupportedfigures","28":"/guide/chart-api.html#getfigureclass-name","29":"/guide/chart-api.html#registerindicator-indicator","30":"/guide/chart-api.html#getsupportedindicators","31":"/guide/chart-api.html#registeroverlay-overlay","32":"/guide/chart-api.html#getsupportedoverlays","33":"/guide/chart-api.html#version","34":"/guide/chart-api.html#utils","35":"/guide/chart-api.html#utils-clone-target","36":"/guide/chart-api.html#utils-merge-target-source","37":"/guide/chart-api.html#utils-isstring-value","38":"/guide/chart-api.html#utils-isnumber-value","39":"/guide/chart-api.html#utils-isvalid-value","40":"/guide/chart-api.html#utils-isobject-value","41":"/guide/chart-api.html#utils-isfunction-value","42":"/guide/chart-api.html#utils-isboolean-value","43":"/guide/chart-api.html#utils-formatvalue-value-key-defaultvalue","44":"/guide/chart-api.html#utils-formatprecision-value","45":"/guide/chart-api.html#utils-formatbignumber-value","46":"/guide/chart-api.html#utils-formatdate-datetimeformat-timestamp-format","47":"/guide/chart-api.html#utils-formatthousands-value-sign","48":"/guide/chart-api.html#utils-calctextwidth-text-size-weight-family","49":"/guide/chart-api.html#utils-getlinearslopeintercept-coordinate1-coordinate2","50":"/guide/chart-api.html#utils-getlinearyfromcoordinates-coordinate1-coordinate2-targetcoordinate","51":"/guide/chart-api.html#utils-getlinearyfromslopeintercept-kb-targetcoordinate","52":"/guide/chart-api.html#utils-checkcoordinateonarc-coordinate-arc","53":"/guide/chart-api.html#utils-checkcoordinateoncircle-coordinate-circle","54":"/guide/chart-api.html#utils-checkcoordinateonline-coordinate-line","55":"/guide/chart-api.html#utils-checkcoordinateonpolygon-coordinate-polygon","56":"/guide/chart-api.html#utils-checkcoordinateonrect-coordinate-rect","57":"/guide/chart-api.html#utils-checkcoordinateontext-coordinate-text-styles","58":"/guide/chart-api.html#utils-drawarc-ctx-arc-styles","59":"/guide/chart-api.html#utils-drawcircle-ctx-circle-styles","60":"/guide/chart-api.html#utils-drawline-ctx-line-styles","61":"/guide/chart-api.html#utils-drawpolygon-ctx-polygon-styles","62":"/guide/chart-api.html#utils-drawrect-ctx-rect-styles","63":"/guide/chart-api.html#utils-drawtext-ctx-text-styles","64":"/guide/chart-api.html#utils-drawrecttext-ctx-recttext-styles","65":"/guide/datasource.html#📚-数据","66":"/guide/environment.html#🏝️-环境要求","67":"/guide/environment.html#浏览器支持","68":"/guide/environment.html#兼容处理","69":"/guide/faq.html#🙋-常见问题","70":"/guide/faq.html#初始化图表后-只能看到一条线-是怎么回事","71":"/guide/faq.html#蜡烛柱显示趋近于一条线-看不到波动-怎么办","72":"/guide/faq.html#分时图怎么创建","73":"/guide/faq.html#内置的技术指标-计算出来的数据不是想要的-怎么办","74":"/guide/faq.html#想创建一个内置技术指标之外的指标-怎么办","75":"/guide/faq.html#想标记一下买卖点-该怎么做","76":"/guide/feedback.html#💬-反馈和共建","77":"/guide/feedback.html#github","78":"/guide/feedback.html#telegram","79":"/guide/feedback.html#discord","80":"/guide/feedback.html#微信讨论群","81":"/guide/feedback.html#qq讨论群","82":"/guide/figure.html#基础图形","83":"/guide/figure.html#使用示例","84":"/guide/figure.html#内置基础图形","85":"/guide/figure.html#arc","86":"/guide/figure.html#circle","87":"/guide/figure.html#line","88":"/guide/figure.html#polygon","89":"/guide/figure.html#rect","90":"/guide/figure.html#text","91":"/guide/figure.html#recttext","92":"/guide/figure.html#自定义基础图形","93":"/guide/figure.html#属性说明","94":"/guide/figure.html#示例","95":"/guide/figure.html#步骤一","96":"/guide/figure.html#步骤二","97":"/guide/getting-started.html#🚀-快速开始","98":"/guide/getting-started.html#获取klinechart","99":"/guide/getting-started.html#使用npm","100":"/guide/getting-started.html#使用yarn","101":"/guide/getting-started.html#使用cdn","102":"/guide/getting-started.html#创建第一个图表","103":"/guide/getting-started.html#在npm或yarn等包管理工具的项目中创建","104":"/guide/getting-started.html#在直接通过-script-标签引入的项目中创建","105":"/guide/hot-key.html#⌨️-快捷键","106":"/guide/i18n.html#🌏-国际化","107":"/guide/i18n.html#增加语言包","108":"/guide/i18n.html#使用语言包","109":"/guide/indicator.html#技术指标","110":"/guide/indicator.html#内置技术指标","111":"/guide/indicator.html#自定义技术指标","112":"/guide/indicator.html#属性说明","113":"/guide/indicator.html#示例","114":"/guide/indicator.html#步骤一","115":"/guide/indicator.html#步骤二","116":"/guide/instance-api.html#实例api","117":"/guide/instance-api.html#getdom-paneid-position","118":"/guide/instance-api.html#getsize-paneid-position","119":"/guide/instance-api.html#setstyles-styles","120":"/guide/instance-api.html#getstyles","121":"/guide/instance-api.html#setpricevolumeprecision-priceprecision-volumeprecision","122":"/guide/instance-api.html#settimezone-timezone","123":"/guide/instance-api.html#gettimezone","124":"/guide/instance-api.html#setzoomenabled-enabled","125":"/guide/instance-api.html#iszoomenabled","126":"/guide/instance-api.html#setscrollenabled-enabled","127":"/guide/instance-api.html#isscrollenabled","128":"/guide/instance-api.html#setoffsetrightdistance-distance","129":"/guide/instance-api.html#getoffsetrightdistance","130":"/guide/instance-api.html#setleftminvisiblebarcount-barcount","131":"/guide/instance-api.html#setrightminvisiblebarcount-barcount","132":"/guide/instance-api.html#setbarspace-space","133":"/guide/instance-api.html#getbarspace","134":"/guide/instance-api.html#getvisiblerange","135":"/guide/instance-api.html#applynewdata-datalist-more-callback","136":"/guide/instance-api.html#applymoredata-datalist-more-callback","137":"/guide/instance-api.html#updatedata-data-callback","138":"/guide/instance-api.html#getdatalist","139":"/guide/instance-api.html#cleardata","140":"/guide/instance-api.html#loadmore-cb","141":"/guide/instance-api.html#createindicator-value-isstack-paneoptions-callback","142":"/guide/instance-api.html#overrideindicator-override-paneid-callback","143":"/guide/instance-api.html#getindicatorbypaneid-paneid-name","144":"/guide/instance-api.html#removeindicator-paneid-name","145":"/guide/instance-api.html#createoverlay-value-paneid","146":"/guide/instance-api.html#getoverlaybyid-id","147":"/guide/instance-api.html#overrideoverlay-override","148":"/guide/instance-api.html#removeoverlay-remove","149":"/guide/instance-api.html#scrollbydistance-distance-animationduration","150":"/guide/instance-api.html#scrolltorealtime-animationduration","151":"/guide/instance-api.html#scrolltodataindex-dataindex-animationduration","152":"/guide/instance-api.html#scrolltotimestamp-timestamp-animationduration","153":"/guide/instance-api.html#zoomatcoordinate-scale-coordinate-animationduration","154":"/guide/instance-api.html#zoomatdataindex-scale-dataindex-animationduration","155":"/guide/instance-api.html#zoomattimestamp-scale-timestamp-animationduration","156":"/guide/instance-api.html#setpaneoptions-options","157":"/guide/instance-api.html#executeaction-type-data","158":"/guide/instance-api.html#subscribeaction-type-callback","159":"/guide/instance-api.html#unsubscribeaction-type-callback","160":"/guide/instance-api.html#converttopixel-value-finder","161":"/guide/instance-api.html#convertfrompixel-coordinate-finder","162":"/guide/instance-api.html#getconvertpictureurl-includeoverlay-type-backgroundcolor","163":"/guide/instance-api.html#resize","164":"/guide/overlay.html#覆盖物","165":"/guide/overlay.html#内置覆盖物类型","166":"/guide/overlay.html#自定义覆盖物","167":"/guide/overlay.html#属性说明","168":"/guide/overlay.html#示例","169":"/guide/styles.html#🎨-样式配置","170":"/guide/styles.html#图解说明","171":"/guide/styles.html#默认完整配置","172":"/guide/v8-to-v9.html#🛠️-从-v8-到-v9","173":"/guide/v8-to-v9.html#引入调整","174":"/guide/v8-to-v9.html#设计调整","175":"/guide/v8-to-v9.html#样式配置调整","176":"/guide/v8-to-v9.html#api调整","177":"/guide/v8-to-v9.html#图表api","178":"/guide/v8-to-v9.html#实例api","179":"/guide/v8-to-v9.html#图形辅助api","180":"/guide/v8-to-v9.html#自定义技术指标调整","181":"/guide/what-is-klinechart.html#📃-介绍","182":"/guide/what-is-klinechart.html#什么是-klinechart","183":"/guide/what-is-klinechart.html#特性","184":"/sponsor.html#❤️-赞助","185":"/sponsor.html#支付宝","186":"/sponsor.html#微信支付","187":"/sponsor.html#paypal","188":"/sponsor.html#加密货币"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,1],"1":[3,2,13],"2":[3,2,17],"3":[3,2,13],"4":[3,2,21],"5":[2,2,8],"6":[3,2,11],"7":[3,2,31],"8":[3,2,16],"9":[3,2,10],"10":[2,2,8],"11":[3,2,9],"12":[3,2,6],"13":[2,2,117],"14":[2,2,7],"15":[2,2,7],"16":[2,2,7],"17":[2,2,5],"18":[2,2,5],"19":[1,1,1],"20":[4,1,53],"21":[3,1,15],"22":[4,1,20],"23":[2,1,10],"24":[2,1,6],"25":[4,1,14],"26":[3,1,26],"27":[2,1,6],"28":[3,1,9],"29":[3,1,86],"30":[2,1,6],"31":[3,1,104],"32":[2,1,6],"33":[2,1,6],"34":[1,1,2],"35":[4,2,7],"36":[5,2,9],"37":[4,2,8],"38":[4,2,8],"39":[4,2,8],"40":[4,2,8],"41":[4,2,8],"42":[4,2,8],"43":[6,2,19],"44":[4,2,10],"45":[4,2,11],"46":[6,2,20],"47":[5,2,10],"48":[7,2,12],"49":[5,2,15],"50":[6,2,11],"51":[5,2,12],"52":[5,2,21],"53":[5,2,17],"54":[5,2,14],"55":[5,2,14],"56":[5,2,19],"57":[6,2,45],"58":[6,2,37],"59":[6,2,41],"60":[6,2,32],"61":[6,2,38],"62":[6,2,45],"63":[6,2,76],"64":[6,2,10],"65":[2,1,36],"66":[2,1,1],"67":[1,2,11],"68":[1,2,1],"69":[2,1,1],"70":[4,2,3],"71":[4,2,6],"72":[2,2,9],"73":[4,2,2],"74":[3,2,3],"75":[3,2,7],"76":[2,1,1],"77":[1,2,10],"78":[1,2,5],"79":[1,2,5],"80":[1,2,6],"81":[1,2,1],"82":[1,1,10],"83":[1,1,26],"84":[1,1,9],"85":[1,2,34],"86":[1,2,38],"87":[1,2,30],"88":[1,2,38],"89":[1,2,42],"90":[1,2,68],"91":[1,2,5],"92":[1,1,6],"93":[1,2,29],"94":[1,2,2],"95":[1,3,33],"96":[1,3,54],"97":[2,1,1],"98":[1,2,5],"99":[1,3,6],"100":[1,3,5],"101":[1,3,22],"102":[1,2,1],"103":[1,3,92],"104":[3,3,123],"105":[2,1,10],"106":[2,1,8],"107":[1,2,26],"108":[1,2,8],"109":[1,1,2],"110":[1,1,48],"111":[1,1,6],"112":[1,2,178],"113":[1,2,5],"114":[1,3,30],"115":[1,3,63],"116":[1,1,1],"117":[4,1,19],"118":[4,1,25],"119":[3,1,15],"120":[2,1,7],"121":[4,1,16],"122":[3,1,14],"123":[2,1,6],"124":[3,1,8],"125":[2,1,6],"126":[3,1,8],"127":[2,1,6],"128":[3,1,8],"129":[2,1,6],"130":[3,1,8],"131":[3,1,8],"132":[3,1,8],"133":[2,1,6],"134":[2,1,10],"135":[5,1,28],"136":[5,1,26],"137":[4,1,22],"138":[2,1,16],"139":[2,1,10],"140":[3,1,13],"141":[6,1,107],"142":[5,1,121],"143":[4,1,18],"144":[4,1,18],"145":[4,1,89],"146":[3,1,9],"147":[3,1,117],"148":[3,1,24],"149":[4,1,13],"150":[3,1,12],"151":[4,1,13],"152":[4,1,13],"153":[5,1,19],"154":[5,1,15],"155":[5,1,15],"156":[3,1,47],"157":[4,1,13],"158":[4,1,22],"159":[4,1,23],"160":[4,1,31],"161":[4,1,27],"162":[5,1,21],"163":[2,1,11],"164":[1,1,2],"165":[1,1,16],"166":[1,1,6],"167":[1,2,198],"168":[1,2,47],"169":[2,1,9],"170":[1,2,1],"171":[1,2,219],"172":[5,1,12],"173":[1,5,8],"174":[1,5,5],"175":[1,5,33],"176":[1,5,1],"177":[1,6,9],"178":[1,6,71],"179":[1,6,3],"180":[1,5,39],"181":[2,1,1],"182":[3,2,3],"183":[1,2,24],"184":[2,1,7],"185":[1,2,1],"186":[1,2,1],"187":[1,2,2],"188":[1,2,11]},"averageFieldLength":[2.7248677248677247,1.7354497354497354,22.608465608465607],"storedFields":{"0":{"title":"📠 更新日志","titles":[]},"1":{"title":"9.5.1","titles":["📠 更新日志"]},"2":{"title":"9.5.0","titles":["📠 更新日志"]},"3":{"title":"9.4.0","titles":["📠 更新日志"]},"4":{"title":"9.3.0","titles":["📠 更新日志"]},"5":{"title":"9.2.2","titles":["📠 更新日志"]},"6":{"title":"9.2.1","titles":["📠 更新日志"]},"7":{"title":"9.2.0","titles":["📠 更新日志"]},"8":{"title":"9.1.3","titles":["📠 更新日志"]},"9":{"title":"9.1.2","titles":["📠 更新日志"]},"10":{"title":"9.1.1","titles":["📠 更新日志"]},"11":{"title":"9.1.0","titles":["📠 更新日志"]},"12":{"title":"9.0.1","titles":["📠 更新日志"]},"13":{"title":"9.0.0","titles":["📠 更新日志"]},"14":{"title":"8.x","titles":["📠 更新日志"]},"15":{"title":"7.x","titles":["📠 更新日志"]},"16":{"title":"6.x","titles":["📠 更新日志"]},"17":{"title":"5.x","titles":["📠 更新日志"]},"18":{"title":"4.x","titles":["📠 更新日志"]},"19":{"title":"图表API","titles":[]},"20":{"title":"init(ds, options)","titles":["图表API"]},"21":{"title":"dispose(dcs)","titles":["图表API"]},"22":{"title":"registerLocale(locale, locales)","titles":["图表API"]},"23":{"title":"getOverlayClass()","titles":["图表API"]},"24":{"title":"getSupportedLocales()","titles":["图表API"]},"25":{"title":"registerStyles(name, styles)","titles":["图表API"]},"26":{"title":"registerFigure(figure)","titles":["图表API"]},"27":{"title":"getSupportedFigures()","titles":["图表API"]},"28":{"title":"getFigureClass(name)","titles":["图表API"]},"29":{"title":"registerIndicator(indicator)","titles":["图表API"]},"30":{"title":"getSupportedIndicators()","titles":["图表API"]},"31":{"title":"registerOverlay(overlay)","titles":["图表API"]},"32":{"title":"getSupportedOverlays()","titles":["图表API"]},"33":{"title":"version()","titles":["图表API"]},"34":{"title":"utils","titles":["图表API"]},"35":{"title":"utils.clone(target)","titles":["图表API","utils"]},"36":{"title":"utils.merge(target, source)","titles":["图表API","utils"]},"37":{"title":"utils.isString(value)","titles":["图表API","utils"]},"38":{"title":"utils.isNumber(value)","titles":["图表API","utils"]},"39":{"title":"utils.isValid(value)","titles":["图表API","utils"]},"40":{"title":"utils.isObject(value)","titles":["图表API","utils"]},"41":{"title":"utils.isFunction(value)","titles":["图表API","utils"]},"42":{"title":"utils.isBoolean(value)","titles":["图表API","utils"]},"43":{"title":"utils.formatValue(value, key, defaultValue)","titles":["图表API","utils"]},"44":{"title":"utils.formatPrecision(value)","titles":["图表API","utils"]},"45":{"title":"utils.formatBigNumber(value)","titles":["图表API","utils"]},"46":{"title":"utils.formatDate(dateTimeFormat, timestamp, format)","titles":["图表API","utils"]},"47":{"title":"utils.formatThousands(value, sign)","titles":["图表API","utils"]},"48":{"title":"utils.calcTextWidth(text, size, weight, family)","titles":["图表API","utils"]},"49":{"title":"utils.getLinearSlopeIntercept(coordinate1, coordinate2)","titles":["图表API","utils"]},"50":{"title":"utils.getLinearYFromCoordinates(coordinate1, coordinate2, targetCoordinate)","titles":["图表API","utils"]},"51":{"title":"utils.getLinearYFromSlopeIntercept(kb, targetCoordinate)","titles":["图表API","utils"]},"52":{"title":"utils.checkCoordinateOnArc(coordinate, arc)","titles":["图表API","utils"]},"53":{"title":"utils.checkCoordinateOnCircle(coordinate, circle)","titles":["图表API","utils"]},"54":{"title":"utils.checkCoordinateOnLine(coordinate, line)","titles":["图表API","utils"]},"55":{"title":"utils.checkCoordinateOnPolygon(coordinate, polygon)","titles":["图表API","utils"]},"56":{"title":"utils.checkCoordinateOnRect(coordinate, rect)","titles":["图表API","utils"]},"57":{"title":"utils.checkCoordinateOnText(coordinate, text, styles)","titles":["图表API","utils"]},"58":{"title":"utils.drawArc(ctx, arc, styles)","titles":["图表API","utils"]},"59":{"title":"utils.drawCircle(ctx, circle, styles)","titles":["图表API","utils"]},"60":{"title":"utils.drawLine(ctx, line, styles)","titles":["图表API","utils"]},"61":{"title":"utils.drawPolygon(ctx, polygon, styles)","titles":["图表API","utils"]},"62":{"title":"utils.drawRect(ctx, rect, styles)","titles":["图表API","utils"]},"63":{"title":"utils.drawText(ctx, text, styles)","titles":["图表API","utils"]},"64":{"title":"utils.drawRectText(ctx, rectText, styles)","titles":["图表API","utils"]},"65":{"title":"📚 数据","titles":[]},"66":{"title":"🏝️ 环境要求","titles":[]},"67":{"title":"浏览器支持","titles":["🏝️ 环境要求"]},"68":{"title":"兼容处理","titles":["🏝️ 环境要求"]},"69":{"title":"🙋 常见问题","titles":[]},"70":{"title":"初始化图表后,只能看到一条线,是怎么回事?","titles":["🙋 常见问题"]},"71":{"title":"蜡烛柱显示趋近于一条线,看不到波动,怎么办?","titles":["🙋 常见问题"]},"72":{"title":"分时图怎么创建?","titles":["🙋 常见问题"]},"73":{"title":"内置的技术指标,计算出来的数据不是想要的,怎么办?","titles":["🙋 常见问题"]},"74":{"title":"想创建一个内置技术指标之外的指标,怎么办?","titles":["🙋 常见问题"]},"75":{"title":"想标记一下买卖点,该怎么做?","titles":["🙋 常见问题"]},"76":{"title":"💬 反馈和共建","titles":[]},"77":{"title":"Github","titles":["💬 反馈和共建"]},"78":{"title":"Telegram","titles":["💬 反馈和共建"]},"79":{"title":"Discord","titles":["💬 反馈和共建"]},"80":{"title":"微信讨论群","titles":["💬 反馈和共建"]},"81":{"title":"QQ讨论群","titles":["💬 反馈和共建"]},"82":{"title":"基础图形","titles":[]},"83":{"title":"使用示例","titles":["基础图形"]},"84":{"title":"内置基础图形","titles":["基础图形"]},"85":{"title":"arc","titles":["基础图形","内置基础图形"]},"86":{"title":"circle","titles":["基础图形","内置基础图形"]},"87":{"title":"line","titles":["基础图形","内置基础图形"]},"88":{"title":"polygon","titles":["基础图形","内置基础图形"]},"89":{"title":"rect","titles":["基础图形","内置基础图形"]},"90":{"title":"text","titles":["基础图形","内置基础图形"]},"91":{"title":"rectText","titles":["基础图形","内置基础图形"]},"92":{"title":"自定义基础图形","titles":["基础图形"]},"93":{"title":"属性说明","titles":["基础图形","自定义基础图形"]},"94":{"title":"示例","titles":["基础图形","自定义基础图形"]},"95":{"title":"步骤一","titles":["基础图形","自定义基础图形","示例"]},"96":{"title":"步骤二","titles":["基础图形","自定义基础图形","示例"]},"97":{"title":"🚀 快速开始","titles":[]},"98":{"title":"获取KLineChart","titles":["🚀 快速开始"]},"99":{"title":"使用npm","titles":["🚀 快速开始","获取KLineChart"]},"100":{"title":"使用yarn","titles":["🚀 快速开始","获取KLineChart"]},"101":{"title":"使用CDN","titles":["🚀 快速开始","获取KLineChart"]},"102":{"title":"创建第一个图表","titles":["🚀 快速开始"]},"103":{"title":"在npm或yarn等包管理工具的项目中创建","titles":["🚀 快速开始","创建第一个图表"]},"104":{"title":"在直接通过 script 标签引入的项目中创建","titles":["🚀 快速开始","创建第一个图表"]},"105":{"title":"⌨️ 快捷键","titles":[]},"106":{"title":"🌏 国际化","titles":[]},"107":{"title":"增加语言包","titles":["🌏 国际化"]},"108":{"title":"使用语言包","titles":["🌏 国际化"]},"109":{"title":"技术指标","titles":[]},"110":{"title":"内置技术指标","titles":["技术指标"]},"111":{"title":"自定义技术指标","titles":["技术指标"]},"112":{"title":"属性说明","titles":["技术指标","自定义技术指标"]},"113":{"title":"示例","titles":["技术指标","自定义技术指标"]},"114":{"title":"步骤一","titles":["技术指标","自定义技术指标","示例"]},"115":{"title":"步骤二","titles":["技术指标","自定义技术指标","示例"]},"116":{"title":"实例API","titles":[]},"117":{"title":"getDom(paneId, position)","titles":["实例API"]},"118":{"title":"getSize(paneId, position)","titles":["实例API"]},"119":{"title":"setStyles(styles)","titles":["实例API"]},"120":{"title":"getStyles()","titles":["实例API"]},"121":{"title":"setPriceVolumePrecision(pricePrecision, volumePrecision)","titles":["实例API"]},"122":{"title":"setTimezone(timezone)","titles":["实例API"]},"123":{"title":"getTimezone()","titles":["实例API"]},"124":{"title":"setZoomEnabled(enabled)","titles":["实例API"]},"125":{"title":"isZoomEnabled()","titles":["实例API"]},"126":{"title":"setScrollEnabled(enabled)","titles":["实例API"]},"127":{"title":"isScrollEnabled()","titles":["实例API"]},"128":{"title":"setOffsetRightDistance(distance)","titles":["实例API"]},"129":{"title":"getOffsetRightDistance()","titles":["实例API"]},"130":{"title":"setLeftMinVisibleBarCount(barCount)","titles":["实例API"]},"131":{"title":"setRightMinVisibleBarCount(barCount)","titles":["实例API"]},"132":{"title":"setBarSpace(space)","titles":["实例API"]},"133":{"title":"getBarSpace()","titles":["实例API"]},"134":{"title":"getVisibleRange()","titles":["实例API"]},"135":{"title":"applyNewData(dataList, more, callback)","titles":["实例API"]},"136":{"title":"applyMoreData(dataList, more, callback)","titles":["实例API"]},"137":{"title":"updateData(data, callback)","titles":["实例API"]},"138":{"title":"getDataList()","titles":["实例API"]},"139":{"title":"clearData()","titles":["实例API"]},"140":{"title":"loadMore(cb)","titles":["实例API"]},"141":{"title":"createIndicator(value, isStack, paneOptions, callback)","titles":["实例API"]},"142":{"title":"overrideIndicator(override, paneId, callback)","titles":["实例API"]},"143":{"title":"getIndicatorByPaneId(paneId, name)","titles":["实例API"]},"144":{"title":"removeIndicator(paneId, name)","titles":["实例API"]},"145":{"title":"createOverlay(value, paneId)","titles":["实例API"]},"146":{"title":"getOverlayById(id)","titles":["实例API"]},"147":{"title":"overrideOverlay(override)","titles":["实例API"]},"148":{"title":"removeOverlay(remove)","titles":["实例API"]},"149":{"title":"scrollByDistance(distance, animationDuration)","titles":["实例API"]},"150":{"title":"scrollToRealTime(animationDuration)","titles":["实例API"]},"151":{"title":"scrollToDataIndex(dataIndex, animationDuration)","titles":["实例API"]},"152":{"title":"scrollToTimestamp(timestamp, animationDuration)","titles":["实例API"]},"153":{"title":"zoomAtCoordinate(scale, coordinate, animationDuration)","titles":["实例API"]},"154":{"title":"zoomAtDataIndex(scale, dataIndex, animationDuration)","titles":["实例API"]},"155":{"title":"zoomAtTimestamp(scale, timestamp, animationDuration)","titles":["实例API"]},"156":{"title":"setPaneOptions(options)","titles":["实例API"]},"157":{"title":"executeAction(type, data)","titles":["实例API"]},"158":{"title":"subscribeAction(type, callback)","titles":["实例API"]},"159":{"title":"unsubscribeAction(type, callback)","titles":["实例API"]},"160":{"title":"convertToPixel(value, finder)","titles":["实例API"]},"161":{"title":"convertFromPixel(coordinate, finder)","titles":["实例API"]},"162":{"title":"getConvertPictureUrl(includeOverlay, type, backgroundColor)","titles":["实例API"]},"163":{"title":"resize()","titles":["实例API"]},"164":{"title":"覆盖物","titles":[]},"165":{"title":"内置覆盖物类型","titles":["覆盖物"]},"166":{"title":"自定义覆盖物","titles":["覆盖物"]},"167":{"title":"属性说明","titles":["覆盖物","自定义覆盖物"]},"168":{"title":"示例","titles":["覆盖物","自定义覆盖物"]},"169":{"title":"🎨 样式配置","titles":[]},"170":{"title":"图解说明","titles":["🎨 样式配置"]},"171":{"title":"默认完整配置","titles":["🎨 样式配置"]},"172":{"title":"🛠️ 从 V8 到 V9","titles":[]},"173":{"title":"引入调整","titles":["🛠️ 从 V8 到 V9"]},"174":{"title":"设计调整","titles":["🛠️ 从 V8 到 V9"]},"175":{"title":"样式配置调整","titles":["🛠️ 从 V8 到 V9"]},"176":{"title":"API调整","titles":["🛠️ 从 V8 到 V9"]},"177":{"title":"图表API","titles":["🛠️ 从 V8 到 V9","API调整"]},"178":{"title":"实例API","titles":["🛠️ 从 V8 到 V9","API调整"]},"179":{"title":"图形辅助API","titles":["🛠️ 从 V8 到 V9","API调整"]},"180":{"title":"自定义技术指标调整","titles":["🛠️ 从 V8 到 V9"]},"181":{"title":"📃 介绍","titles":[]},"182":{"title":"什么是 KLineChart?","titles":["📃 介绍"]},"183":{"title":"特性","titles":["📃 介绍"]},"184":{"title":"❤️ 赞助","titles":[]},"185":{"title":"支付宝","titles":["❤️ 赞助"]},"186":{"title":"微信支付","titles":["❤️ 赞助"]},"187":{"title":"PayPal","titles":["❤️ 赞助"]},"188":{"title":"加密货币","titles":["❤️ 赞助"]}},"dirtCount":0,"index":[["微信支付",{"0":{"186":1}}],["微信讨论群",{"0":{"80":1}}],["支付宝",{"0":{"185":1}}],["支持移动端",{"2":{"183":1}}],["支持字符串模版",{"2":{"171":2}}],["支持合并",{"2":{"119":1}}],["支持root",{"2":{"118":1}}],["支持多种下载方式",{"2":{"98":1}}],["支持嵌套",{"2":{"43":1}}],["支持增量",{"2":{"20":1,"25":1,"112":2}}],["支持事件选择",{"2":{"9":1}}],["支持千分符显示",{"2":{"7":1}}],["支持数组",{"2":{"3":1}}],["那就真的太感谢了",{"2":{"184":1}}],["☕️",{"2":{"184":1}}],["希望你能在github点一个",{"2":{"184":1}}],["希望提示的和参数一样",{"2":{"115":2}}],["赞助",{"0":{"184":1},"1":{"185":1,"186":1,"187":1,"188":1}}],["❤️",{"0":{"184":1},"1":{"185":1,"186":1,"187":1,"188":1}}],["提供完整的类型定义文件",{"2":{"183":1}}],["提示",{"2":{"171":4}}],["搞定多端",{"2":{"183":1}}],["功能扩展随心所欲",{"2":{"183":1}}],["功能强大",{"2":{"183":1}}],["丰富的样式配置和api",{"2":{"183":1}}],["零依赖",{"2":{"183":1}}],["轻量流畅",{"2":{"183":1}}],["简单快速集成",{"2":{"183":1}}],["简短名字",{"2":{"29":1,"142":1}}],["特性",{"0":{"183":1}}],["特殊的id",{"2":{"141":1,"142":1,"143":1,"144":1,"145":1,"156":1}}],["什么是",{"0":{"182":1}}],["介绍",{"0":{"181":1},"1":{"182":1,"183":1}}],["介绍如何去做自定义技术指标",{"2":{"113":1}}],["方法render",{"2":{"180":1}}],["方法regenerateplots",{"2":{"180":1}}],["方法createtooltipdatasource",{"2":{"180":1}}],["方法calctechnicalindicator",{"2":{"180":1}}],["子项方法color",{"2":{"180":1}}],["合并成一个方法getsize",{"2":{"178":1}}],["合并为candle",{"2":{"175":1}}],["更改为dashed",{"2":{"175":1}}],["更新数据",{"2":{"137":1}}],["更新日志",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1}}],["设计调整",{"0":{"174":1}}],["设置窗口配置",{"2":{"156":1}}],["设置加载更多回调函数",{"2":{"140":1}}],["设置图表单根蜡烛柱的宽度",{"2":{"132":1}}],["设置图表右边可以空出来的间隙",{"2":{"128":1}}],["设置右边最小可见的蜡烛数量",{"2":{"131":1}}],["设置左边最小可见的蜡烛数量",{"2":{"130":1}}],["设置是否可以拖拽滚动",{"2":{"126":1}}],["设置是否缩放",{"2":{"124":1}}],["设置时区",{"2":{"122":1}}],["设置价格和数量精度",{"2":{"121":1}}],["设置样式配置",{"2":{"119":1}}],["设置下精度",{"2":{"71":1}}],["引入调整",{"0":{"173":1}}],["请通过getdom",{"2":{"178":1}}],["请统一使用import",{"2":{"173":1}}],["请先参考之前的升级文档升级到",{"2":{"172":1}}],["请用overrideoverlay",{"2":{"178":1}}],["请用overlay代替",{"2":{"175":1}}],["请用removeoverlay",{"2":{"178":1}}],["请用registeroverlay",{"2":{"177":1}}],["请用createoverlay",{"2":{"178":1}}],["请用text代替",{"2":{"91":1}}],["请用",{"2":{"67":1}}],["请用utils",{"2":{"64":1}}],["版本",{"2":{"172":1}}],["版本升级到",{"2":{"172":1}}],["本文档将帮助你从",{"2":{"172":1}}],["本文档介绍了图表内置的覆盖物和如何自定义一个覆盖物",{"2":{"164":1}}],["本文档介绍了图表内置的技术指标和如何自定义一个技术指标",{"2":{"109":1}}],["到",{"0":{"172":1},"1":{"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1}}],["配置",{"2":{"171":2}}],["面积图",{"2":{"171":2}}],["蜡烛图类型",{"2":{"171":2}}],["蜡烛图",{"2":{"171":2}}],["蜡烛柱",{"2":{"171":2}}],["蜡烛柱不包含蜡烛柱之间间隙的尺寸",{"2":{"112":2,"167":2}}],["蜡烛柱尺寸",{"2":{"112":2,"167":2}}],["蜡烛柱的尺寸信息",{"2":{"112":2,"167":2}}],["蜡烛柱显示趋近于一条线",{"0":{"71":1}}],["网格线",{"2":{"171":2}}],["进行更改",{"2":{"169":1}}],["其它选择使用默认样式",{"2":{"168":2}}],["选择边框且填充",{"2":{"168":2}}],["选中回调事件",{"2":{"167":2}}],["选中事件",{"2":{"31":1,"147":1}}],["确定对应点生成的圆的坐标",{"2":{"168":2}}],["确定其它属性",{"2":{"115":1}}],["完成一个圆的绘制需要三个步骤",{"2":{"168":2}}],["完成语言切换",{"2":{"108":1}}],["双击回调事件",{"2":{"167":2}}],["双击事件",{"2":{"31":1,"147":1}}],["回调参数和`performeventmovefordrawing`一致",{"2":{"167":2}}],["处理按住移动操作",{"2":{"167":2}}],["处理在绘制过程中移动操作",{"2":{"167":2}}],["事件所在点的信息",{"2":{"167":2}}],["事件所在点的索引",{"2":{"167":2}}],["事件的坐标",{"2":{"93":2}}],["中的overlay",{"2":{"167":4}}],["中的indicator",{"2":{"112":8}}],["非必须",{"2":{"167":24}}],["非必须字段",{"2":{"65":4}}],["作为覆盖物创建的唯一标识",{"2":{"167":2}}],["必须字段",{"2":{"167":2}}],["必要字段",{"2":{"65":10,"93":2}}],["名称",{"2":{"167":2,"168":2}}],["名字",{"2":{"26":1,"112":2}}],["全局添加",{"2":{"166":1}}],["频繁调用可能会影响到性能",{"2":{"163":1}}],["此方法会重新计算整个图表各个模块的大小",{"2":{"163":1}}],["此方法会清空图表数据",{"2":{"135":1}}],["总共需要多少步操作才行绘制完成",{"2":{"167":2}}],["总是会填充容器大小",{"2":{"163":1}}],["总的实现步骤",{"2":{"31":1}}],["调整图表大小",{"2":{"163":1}}],["调用请谨慎",{"2":{"163":1}}],["调用createoverlay方法是返回的标识",{"2":{"146":1,"148":1}}],["调用setpricevolumeprecision",{"2":{"71":1}}],["三种中的一种",{"2":{"162":1}}],["转换后的图片类型",{"2":{"162":1}}],["过滤条件",{"2":{"160":1,"161":1}}],["对象类型为",{"2":{"171":2}}],["对应y轴的值",{"2":{"160":1,"167":4}}],["对齐方式",{"2":{"90":2}}],["订阅时的回调方法",{"2":{"159":1}}],["订阅图表动作",{"2":{"158":1}}],["执行动作需要的数据",{"2":{"157":1}}],["执行图表动作",{"2":{"157":1}}],["缩放比例",{"2":{"153":1,"154":1,"155":1}}],["缩小",{"2":{"105":1}}],["动画时间",{"2":{"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1}}],["编组id",{"2":{"147":1,"148":1}}],["参数finder",{"2":{"178":1}}],["参数type选项变更为onzoom",{"2":{"178":1}}],["参数position选项变更为root",{"2":{"178":1}}],["参数和返回值和`createpointfigures`一致",{"2":{"167":4}}],["参数和overrideoverlay一致",{"2":{"145":1}}],["参阅",{"2":{"112":6}}],["移动端",{"2":{"183":1}}],["移动绘制过程中触发",{"2":{"167":2}}],["移动事件过程中特殊处理方法",{"2":{"31":1}}],["移除图形",{"2":{"148":1}}],["移除技术指标",{"2":{"144":1}}],["\\tbars",{"2":{"142":2}}],["覆盖已绘制的覆盖物",{"2":{"147":1}}],["覆盖技术指标信息",{"2":{"142":1}}],["覆盖物实例",{"2":{"167":2}}],["覆盖物",{"0":{"164":1},"1":{"165":1,"166":1,"167":1,"168":1},"2":{"171":2}}],["覆盖物标识",{"2":{"147":1}}],["覆盖物名称",{"2":{"148":1}}],["覆盖物名或者对象",{"2":{"145":1}}],["覆盖物名",{"2":{"31":1,"147":1}}],["覆盖物信息",{"2":{"31":1}}],["覆盖物支持双击强制结束绘制",{"2":{"11":1}}],["主图的窗口id",{"2":{"141":1,"142":1,"143":1,"144":1,"145":1,"156":1}}],["轴上是否可以滚动缩放",{"2":{"141":1,"156":1}}],["边距",{"2":{"141":1,"156":1}}],["边框虚线参数",{"2":{"86":2,"88":2,"89":2,"90":2}}],["边框虚线参数值",{"2":{"59":1,"61":1,"62":1,"63":1}}],["边框尺寸",{"2":{"86":2,"88":2,"89":2,"90":2}}],["边框圆角尺寸",{"2":{"63":1}}],["边框圆角值",{"2":{"62":1,"89":2,"90":2}}],["边框样式",{"2":{"59":1,"61":1,"62":1,"63":1,"86":2,"88":2,"89":2,"90":2}}],["边框粗细",{"2":{"59":1,"61":1,"62":1,"63":1}}],["边框颜色",{"2":{"59":1,"61":1,"62":1,"63":1,"86":2,"88":2,"89":2,"90":2}}],["类型有",{"2":{"171":4}}],["类型为klinecharts",{"2":{"167":2}}],["类型参与",{"2":{"167":4}}],["类型参阅",{"2":{"112":12}}],["类型参阅样式",{"2":{"25":1}}],["类型是",{"2":{"162":1}}],["类型和图表方法overrideindicator的入参一致",{"2":{"141":1}}],["都需要此标识",{"2":{"141":1}}],["后续对该窗口的一些操作",{"2":{"141":1}}],["后续计算参数发生变化的时候",{"2":{"115":2}}],["为了避免重复绘制",{"2":{"139":1}}],["为图表添加数据",{"2":{"103":2,"104":2}}],["清空图表数据",{"2":{"139":1}}],["单条k线数据",{"2":{"137":1}}],["不再区分klinecharts",{"2":{"173":1}}],["不触发事件",{"2":{"167":2}}],["不同则追加",{"2":{"137":1}}],["不需要额外调用cleardata方法",{"2":{"135":1}}],["相同则覆盖",{"2":{"137":1}}],["成功回调",{"2":{"135":1,"136":1,"137":1,"142":1}}],["成交额",{"2":{"65":2}}],["成交量",{"2":{"65":2,"107":2}}],["告诉图表还有没有更多历史数据",{"2":{"135":1,"136":1}}],["数组的子项类型为",{"2":{"171":2}}],["数量精度",{"2":{"121":1,"167":2}}],["数据的索引",{"2":{"151":1,"154":1}}],["数据类型详情可参阅数据源",{"2":{"135":1,"136":1,"137":1}}],["数据索引",{"2":{"112":2,"160":1,"167":4}}],["数据源",{"2":{"112":16}}],["数据信息",{"2":{"112":2}}],["数据",{"0":{"65":1}}],["价格精度",{"2":{"121":1,"167":2}}],["也会受影响",{"2":{"121":1}}],["也可以是数组",{"2":{"160":1,"161":1}}],["也可以是id组成的数组",{"2":{"148":1}}],["也可以是object",{"2":{"20":1}}],["也可以通过cdn获取",{"2":{"98":1}}],["或者更老的版本",{"2":{"172":1}}],["或者图表实例方法setstyles",{"2":{"169":1}}],["或者",{"2":{"121":1,"171":4}}],["或者setlocale",{"2":{"108":1}}],["详情请查阅覆盖物",{"2":{"174":1}}],["详情可参阅样式",{"2":{"119":1}}],["详情参阅",{"2":{"167":2}}],["详情参阅技术指标",{"2":{"74":1}}],["详情参阅覆盖物",{"2":{"31":1}}],["详情参阅基础图形",{"2":{"26":1}}],["详情参阅样式",{"2":{"20":1}}],["位置",{"2":{"118":1}}],["缺省则取消当前类型所有",{"2":{"159":1}}],["缺省则在图表中间位置缩放",{"2":{"153":1}}],["缺省则无动画",{"2":{"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1}}],["缺省则删除对应窗口上所有的",{"2":{"148":1}}],["缺省则删除所有",{"2":{"148":1}}],["缺省则返回所有",{"2":{"143":1}}],["缺省则设置所有",{"2":{"142":1}}],["缺省则是root",{"2":{"118":1}}],["缺省则是",{"2":{"117":1}}],["缺省则是整个图表容器",{"2":{"117":1,"118":1}}],["缺省将显示name",{"2":{"112":2}}],["窗口是否可以拖拽调整高度",{"2":{"141":1,"156":1}}],["窗口最小高度",{"2":{"141":1,"156":1}}],["窗口高度",{"2":{"141":1,"156":1}}],["窗口配置信息",{"2":{"141":1,"156":1}}],["窗口id",{"2":{"117":1,"118":1,"141":1,"142":1,"143":1,"144":1,"145":1,"148":1,"156":1,"160":1,"161":1}}],["窗口尺寸信息",{"2":{"112":4,"167":2}}],["每个key需要和figures中的子项key对应的值一致",{"2":{"115":2}}],["第二条线",{"2":{"114":2}}],["第一条线",{"2":{"114":2}}],["另一个计算10个周期时间的均值",{"2":{"114":2}}],["因此figures配置为",{"2":{"114":1}}],["首先确定计算参数",{"2":{"114":1}}],["以一个填充带边框的圆来具体说明如何配置",{"2":{"168":1}}],["以一个名为",{"2":{"113":1}}],["以一个可以有边框和背景菱形来具体说明自定义",{"2":{"94":1}}],["值小余1则是百分比",{"2":{"141":2,"156":2}}],["值信息",{"2":{"112":2}}],["值越大越靠前显示",{"2":{"147":1,"167":2}}],["值越大",{"2":{"31":1}}],["则依据索引转换",{"2":{"160":1}}],["则会以id为依据去覆盖",{"2":{"147":1}}],["则会移除所有",{"2":{"144":1}}],["则figures配置的图形不会绘制",{"2":{"112":2}}],["则不会显示",{"2":{"112":2}}],["则需要为该字段填充数据",{"2":{"65":2}}],["真实数据索引",{"2":{"112":2}}],["真实的x坐标",{"2":{"112":2}}],["十字光标垂直线及文字",{"2":{"171":2}}],["十字光标水平线及文字",{"2":{"171":2}}],["十字光标",{"2":{"171":2}}],["十字光标交叉点所在的窗口id",{"2":{"112":2}}],["十字光标的信息",{"2":{"112":2}}],["距离",{"2":{"149":1}}],["距离底部距离",{"2":{"112":4,"167":2}}],["距离顶部距离",{"2":{"112":4,"167":2}}],["距离右边距离",{"2":{"112":4,"167":2}}],["距离左边距离",{"2":{"112":4,"167":2}}],["宽",{"2":{"112":4,"167":2}}],["宽度",{"2":{"56":1,"62":1,"63":1,"89":2}}],["终点数据索引",{"2":{"112":4}}],["起点数据索引",{"2":{"112":4}}],["起始点y轴坐标值",{"2":{"89":2,"90":2}}],["起始点y轴值",{"2":{"56":1,"57":1,"62":1,"63":1}}],["起始点x轴坐标值",{"2":{"89":2,"90":2}}],["起始点x轴值",{"2":{"56":1,"57":1,"62":1,"63":1}}],["起始角度",{"2":{"52":1,"58":1}}],["会在计算参数发生变化后触发",{"2":{"112":2}}],["重新生成数图形配置方法",{"2":{"112":2}}],["重新生成图形信息方法",{"2":{"29":1,"142":1}}],["即全局样式配置中的overlay",{"2":{"167":2}}],["即全局设置的技术指标样式",{"2":{"112":6}}],["即调用createindicator方法时返回的窗口标识",{"2":{"143":1,"144":1}}],["即title的值需要改变",{"2":{"115":2}}],["即",{"2":{"114":4}}],["即y",{"2":{"49":1}}],["技术图表实例",{"2":{"112":2}}],["技术指标名",{"2":{"143":1,"144":1}}],["技术指标名或者技术指标对象",{"2":{"141":1}}],["技术指标需要展示两个周期的收盘价平均值连起来的线",{"2":{"114":1}}],["技术指标实例",{"2":{"112":6}}],["技术指标数据",{"2":{"112":2}}],["技术指标",{"0":{"109":1},"1":{"110":1,"111":1,"112":1,"113":1,"114":1,"115":1},"2":{"113":1,"171":2}}],["技术指标信息",{"2":{"29":1}}],["技术指标删除属性shouldcheckparamcount",{"2":{"13":1}}],["技术指标模版不再保存相关属性",{"2":{"13":1}}],["技术指标属性render变更为draw",{"2":{"13":1}}],["技术指标属性regenerateplots变更为regeneratefigures",{"2":{"13":1}}],["技术指标属性calctechnicalindicator变更为calc",{"2":{"13":1}}],["技术指标属性calcparams",{"2":{"13":1}}],["技术指标属性plots变更为figures",{"2":{"13":1}}],["下边距",{"2":{"141":1,"156":1}}],["下一个图形的数据",{"2":{"112":2}}],["下内边距",{"2":{"63":1,"90":2}}],["当是一个方法时",{"2":{"171":2}}],["当是对象时",{"2":{"119":1,"141":1,"145":1}}],["当前步骤",{"2":{"167":2}}],["当前图形的数据",{"2":{"112":2}}],["当计算参数改变时",{"2":{"115":2}}],["当添加完语言包后",{"2":{"108":1}}],["上边距",{"2":{"141":1,"156":1}}],["上一个图形的数据",{"2":{"112":2}}],["上内边距",{"2":{"63":1,"90":2}}],["一个图表",{"2":{"183":1}}],["一个计算5个周期时间的均值",{"2":{"114":2}}],["一般情况下不用手动调用",{"2":{"139":1}}],["一般用于type是",{"2":{"112":2}}],["一条名为",{"2":{"114":1}}],["一条为",{"2":{"114":1}}],["一旦销毁",{"2":{"21":1}}],["将坐标转换成值",{"2":{"161":1}}],["将值转换成坐标",{"2":{"160":1}}],["将以这个值上下去绘制",{"2":{"112":2}}],["将一个对象合并到另一个对象",{"2":{"36":1}}],["系列",{"2":{"112":2}}],["比如100000是否需要格式化100k",{"2":{"112":2}}],["从",{"0":{"172":1},"1":{"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1}}],["从1000开始格式化",{"2":{"112":2}}],["从某个值取对应的值",{"2":{"43":1}}],["无特殊含义",{"2":{"167":2}}],["无",{"2":{"110":2}}],["默认完整配置",{"0":{"171":1}}],["默认样式",{"2":{"167":2}}],["默认null",{"2":{"112":4}}],["默认的技术指标样式",{"2":{"112":6}}],["默认为true",{"2":{"135":1,"136":1}}],["默认为null",{"2":{"112":4}}],["默认为",{"2":{"112":2,"162":2}}],["默认为4",{"2":{"112":2}}],["默认计算参数",{"2":{"110":3}}],["默认语言是en",{"2":{"106":1}}],["收",{"2":{"107":2}}],["收盘价",{"2":{"65":2}}],["低",{"2":{"107":2}}],["高可扩展",{"2":{"183":1}}],["高",{"2":{"107":2,"112":4,"167":2}}],["高度",{"2":{"56":1,"62":1,"63":1,"89":2}}],["開",{"2":{"107":2}}],["時間",{"2":{"107":2}}],["zoomattimestamp",{"0":{"155":1}}],["zoomatdataindex",{"0":{"154":1}}],["zoomatcoordinate",{"0":{"153":1}}],["zh",{"2":{"107":2,"167":2}}],["zlevel",{"2":{"31":3,"145":6,"147":5,"167":2}}],["例如",{"2":{"107":1,"171":2}}],["去完成",{"2":{"107":1}}],["去github上查看",{"2":{"14":1,"15":1,"16":1,"17":1,"18":1}}],["增加语言包通过klinecharts",{"2":{"107":1}}],["增加语言包",{"0":{"107":1}}],["目前只会匹配当前最后一条数据的时间戳",{"2":{"137":1}}],["目前图表内置了en",{"2":{"106":1}}],["目前快捷键仅支持移动和缩放",{"2":{"105":1}}],["国际化",{"0":{"106":1},"1":{"107":1,"108":1}}],["放大",{"2":{"105":1}}],["左移",{"2":{"105":1}}],["左内边距",{"2":{"63":1,"90":2}}],["←",{"2":{"105":1}}],["→",{"2":{"105":1}}],["快捷键",{"0":{"105":1}}],["快速开始",{"0":{"97":1},"1":{"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"104":6}}],["⌨️",{"0":{"105":1}}],["标签引入的项目中创建",{"0":{"104":1}}],["在指定时间戳上缩放",{"2":{"155":1}}],["在某个位置缩放",{"2":{"154":1}}],["在某个坐标点缩放",{"2":{"153":1}}],["在直接通过",{"0":{"104":1}}],["在npm或yarn等包管理工具的项目中创建",{"0":{"103":1}}],["jpeg",{"2":{"162":2}}],["j",{"2":{"115":12}}],["js",{"2":{"101":2}}],["jsdelivr",{"2":{"101":2}}],["javascriptimport",{"2":{"103":1}}],["javascript",{"2":{"83":1,"96":1,"101":2,"114":1,"115":1,"167":2,"168":1,"171":1}}],["javascriptchart",{"2":{"72":1,"141":1,"142":1,"145":1,"147":1,"156":1}}],["quot",{"2":{"101":8,"104":48}}],["qq讨论群",{"0":{"81":1}}],["推荐从jsdelivr引用",{"2":{"101":1}}],["使用语言包",{"0":{"108":1}}],["使用cdn",{"0":{"101":1}}],["使用yarn",{"0":{"100":1}}],["使用npm",{"0":{"99":1}}],["使用示例",{"0":{"83":1}}],["你可以通过npm或yarn等包管理工具",{"2":{"98":1}}],["这非常重要",{"2":{"141":1}}],["这里只是清除数据",{"2":{"139":1}}],["这里每一项的数据格式应该是",{"2":{"115":2}}],["这里计算不能及时响应",{"2":{"115":2}}],["这样一个自定义覆盖物就完成了",{"2":{"168":1}}],["这样一个自定义指标就完成了",{"2":{"115":1}}],["这样一个自定义的基础图形就完成了",{"2":{"96":1}}],["这样你的第一个图表就创建完成了",{"2":{"104":1}}],["这篇文档介绍了内置的基本图形和如何自定义一个基础图形",{"2":{"82":1}}],["实际终点数据索引",{"2":{"112":4}}],["实际起点数据索引",{"2":{"112":4}}],["实现checkeventon和draw两个方法",{"2":{"96":1}}],["实例化并绘制",{"2":{"83":2}}],["实例方法removetechnicalindicator变更为removeindicator",{"2":{"13":1}}],["实例方法gettechnicalindicatorbypaneid变更为getindicatorbypaneid",{"2":{"13":1}}],["实例方法getstyleoptions变更为getstyles",{"2":{"13":1}}],["实例方法overlaytechnicalindicator变更为overlayindicator",{"2":{"13":1}}],["实例方法createtechnicalindicator变更为createindicator",{"2":{"13":1}}],["实例方法setoffsetrightspace变更为setoffsetrightdistance",{"2":{"13":1}}],["实例方法setpaneoptions",{"2":{"13":1}}],["实例方法setstyleoptions变更为setstyles",{"2":{"13":1}}],["实例apiapplynewdata",{"2":{"7":1}}],["实例api新增getoffsetrightdistance和executeaction",{"2":{"7":1}}],["实例api",{"0":{"116":1,"178":1},"1":{"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1},"2":{"3":1}}],["步骤二",{"0":{"96":1,"115":1}}],["步骤一",{"0":{"95":1,"114":1}}],["我们可以定义三个选项stroke",{"2":{"95":1}}],["先确定属性和样式",{"2":{"95":1}}],["示例",{"0":{"94":1,"113":1,"168":1},"1":{"95":1,"96":1,"114":1,"115":1},"2":{"141":1,"142":1,"145":1,"147":1,"156":1,"171":4}}],["返回值由",{"2":{"180":1}}],["返回值是一个标识窗口的字符串",{"2":{"141":1}}],["返回一个字符串类型的标识",{"2":{"145":1}}],["返回一个boolean值",{"2":{"93":2}}],["返回数据类型可参阅数据源",{"2":{"138":1}}],["返回数据个数需要和klinedatalist的数据个数一致",{"2":{"115":2}}],["返回完整类型参阅样式",{"2":{"120":1}}],["返回类型参阅figures",{"2":{"112":2}}],["返回图表实例",{"2":{"20":1}}],["校验事件是否在图形上",{"2":{"93":2}}],["然后通过klinecharts",{"2":{"92":1,"111":1,"166":1}}],["只作用于y轴",{"2":{"160":1,"161":1}}],["只需要生成一个技术指标信息",{"2":{"111":1}}],["只需要生成基础图形信息",{"2":{"92":1}}],["只能看到一条线",{"0":{"70":1}}],["同时技术指标系列是",{"2":{"121":1}}],["同text",{"2":{"91":1}}],["同utils",{"2":{"64":1}}],["基本零成本上手",{"2":{"183":1}}],["基本都可以自定义样式",{"2":{"169":1}}],["基准值",{"2":{"112":2}}],["基准",{"2":{"90":2}}],["基础图形可以通过图表方法klinecharts",{"2":{"82":1}}],["基础图形是图表重要的组成部分",{"2":{"82":1}}],["基础图形",{"0":{"82":1},"1":{"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1}}],["基础图形信息",{"2":{"26":1}}],["坐标点",{"2":{"153":1}}],["坐标点信息",{"2":{"52":1,"53":1,"56":1,"57":1}}],["坐标集合",{"2":{"87":2,"88":2}}],["`strong",{"2":{"167":2}}],["`stroke",{"2":{"86":2,"88":2,"89":2,"90":2}}],["`stroke`",{"2":{"86":2,"88":2,"89":2,"90":2}}],["`weak",{"2":{"167":2}}],["`ma$",{"2":{"115":4}}],["`",{"2":{"103":2,"115":4}}],["`$",{"2":{"103":2}}],["`dashed`",{"2":{"85":2,"87":2}}],["虚线参数",{"2":{"85":2,"87":2}}],["虚线参数值",{"2":{"58":1,"60":1}}],["属性plots变更为figures",{"2":{"180":1}}],["属性说明",{"0":{"93":1,"112":1,"167":1}}],["属性",{"2":{"83":2,"95":1}}],["等",{"2":{"83":2}}],["需要返回一个数组",{"2":{"171":2}}],["需要返回一个boolean类型的值",{"2":{"167":2}}],["需要转换的值",{"2":{"160":1,"161":1}}],["需要覆盖的参数",{"2":{"147":1}}],["需要覆盖的一些参数",{"2":{"142":1}}],["需要在有画布上下文的情况下使用",{"2":{"83":1}}],["需要运行在支持",{"2":{"67":1}}],["注意",{"2":{"83":1,"115":2,"163":1}}],["建议仔细阅读",{"2":{"82":1}}],["加密货币",{"0":{"188":1}}],["加入群聊",{"2":{"80":1}}],["加载",{"2":{"67":1}}],["备注",{"2":{"80":1}}],["添加历史更多数据",{"2":{"136":1}}],["添加新数据",{"2":{"135":1}}],["添加到图表即可和内置覆盖物一样去使用",{"2":{"166":1}}],["添加到图表即可和内置技术指标一样去使用",{"2":{"111":1}}],["添加到图表即可和内置基础图形一样去使用",{"2":{"92":1}}],["添加开发者",{"2":{"80":1}}],["添加一个中文繁体的语言包",{"2":{"107":1}}],["添加一个覆盖物",{"2":{"31":1}}],["添加一个技术指标",{"2":{"29":1}}],["添加一个基础图形",{"2":{"26":1}}],["添加一个样式配置",{"2":{"25":1}}],["添加一个本地化语言",{"2":{"22":1}}],["扫一扫",{"2":{"80":1}}],["反馈和共建",{"0":{"76":1},"1":{"77":1,"78":1,"79":1,"80":1,"81":1}}],["用",{"2":{"115":2}}],["用图表api创建即可createoverlay",{"2":{"75":1}}],["用于生成样式",{"2":{"112":2}}],["用于生成自定义图形的属性",{"2":{"112":2}}],["用于tooltip显示",{"2":{"112":2}}],["用于取计算结果中值",{"2":{"112":2}}],["用于创建的唯一标识",{"2":{"31":1,"147":1}}],["用于创建和操作的唯一标识",{"2":{"29":1,"142":1}}],["用于显示",{"2":{"29":1,"112":2,"142":1}}],["该怎么做",{"0":{"75":1}}],["想显示时间",{"2":{"171":2}}],["想标记一下买卖点",{"0":{"75":1}}],["想创建一个内置技术指标之外的指标",{"0":{"74":1}}],["内置多种指标和画线模型",{"2":{"183":1}}],["内置覆盖物类型",{"0":{"165":1}}],["内置一些转换方法",{"2":{"112":8,"167":4}}],["内置技术指标",{"0":{"110":1}}],["内置基础图形",{"0":{"84":1},"1":{"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1}}],["内置的右击删除将无效",{"2":{"167":2}}],["内置的覆盖物有一个simpleannotation",{"2":{"75":1}}],["内置的技术指标",{"0":{"73":1}}],["内置支持zh",{"2":{"20":1}}],["通过样式设置",{"2":{"72":1}}],["通过图表实例",{"2":{"65":1}}],["分时图怎么创建",{"0":{"72":1}}],["分割线事件响应回退",{"2":{"1":1}}],["怎么办",{"0":{"71":1,"73":1,"74":1}}],["看不到波动",{"0":{"71":1}}],["初始化图表",{"2":{"103":2,"104":2}}],["初始化图表后",{"0":{"70":1}}],["初始化一个图表",{"2":{"20":1}}],["常见问题",{"0":{"69":1},"1":{"70":1,"71":1,"72":1,"73":1,"74":1,"75":1}}],["兼容处理",{"0":{"68":1}}],["构建",{"2":{"67":1}}],["浏览器支持",{"0":{"67":1}}],["环境要求",{"0":{"66":1},"1":{"67":1,"68":1}}],["🌟",{"2":{"184":1}}],["🎨",{"0":{"169":1},"1":{"170":1,"171":1},"2":{"183":1}}],["🌏",{"0":{"106":1},"1":{"107":1,"108":1}}],["🏝️",{"0":{"66":1},"1":{"67":1,"68":1}}],["🆕",{"2":{"1":2,"2":2,"3":3,"4":3,"7":5,"11":2,"13":1}}],["最新值标记",{"2":{"171":2}}],["最新价标记",{"2":{"171":2}}],["最低价标记",{"2":{"171":2}}],["最低价",{"2":{"65":2}}],["最高价标记",{"2":{"171":2}}],["最高价",{"2":{"65":2}}],["开箱即用",{"2":{"183":1}}],["开盘和收盘",{"2":{"171":2}}],["开盘价",{"2":{"65":2}}],["开始角度",{"2":{"85":2}}],["开始绘制事件",{"2":{"31":1,"147":1}}],["毫秒级别",{"2":{"65":2}}],["来和图表进行数据交互",{"2":{"65":1}}],["代替即可",{"2":{"115":2}}],["代替",{"2":{"64":1,"177":1,"178":3}}],["已废弃",{"2":{"64":1,"91":1}}],["背景色",{"2":{"63":1,"90":2,"162":1}}],["右击回调事件",{"2":{"167":2}}],["右击事件",{"2":{"31":1,"147":1}}],["右移",{"2":{"105":1}}],["右内边距",{"2":{"63":1,"90":2}}],["多边形参数",{"2":{"61":1}}],["线样式",{"2":{"60":1}}],["线参数",{"2":{"60":1}}],["粗细",{"2":{"58":1,"60":1,"90":2}}],["弧样式",{"2":{"58":1}}],["画布上下文",{"2":{"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"83":2,"93":2,"112":2}}],["权重",{"2":{"57":1,"63":1}}],["字体",{"2":{"57":1,"63":1,"90":2}}],["尺寸",{"2":{"57":1,"63":1,"85":2,"87":2,"90":2}}],["颜色",{"2":{"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2}}],["垂直对齐方式",{"2":{"57":1,"63":1}}],["水平对齐方式",{"2":{"57":1,"63":1}}],["文字内容",{"2":{"57":1,"63":1,"90":2}}],["文字参数",{"2":{"57":1,"63":1}}],["矩形参数",{"2":{"56":1,"62":1}}],["wr",{"2":{"110":1}}],["window",{"2":{"104":2}}],["width=device",{"2":{"104":2}}],["width是宽度",{"2":{"95":1}}],["width",{"2":{"56":3,"62":3,"63":3,"89":2,"90":2,"95":1,"96":16,"104":4,"112":4,"118":2,"167":2}}],["web",{"2":{"167":2}}],["webview",{"2":{"67":1}}],["weight",{"0":{"48":1},"2":{"48":2,"57":3,"63":3,"90":2,"171":20}}],["weak",{"2":{"31":4,"145":6,"147":6,"167":6}}],["结束角度",{"2":{"52":1,"58":1,"85":2}}],["半径",{"2":{"52":1,"53":1,"58":1,"59":1,"85":2,"86":2}}],["圆心y轴坐标值",{"2":{"85":2,"86":2}}],["圆心x轴坐标值",{"2":{"85":2,"86":2}}],["圆心的y轴值",{"2":{"52":1,"53":1,"58":1,"59":1}}],["圆心的x轴值",{"2":{"52":1,"53":1,"58":1,"59":1}}],["圆参数",{"2":{"53":1,"59":1}}],["圆弧参数",{"2":{"52":1,"58":1}}],["+098syuqtzi0ynzll",{"2":{"78":1}}],["+",{"2":{"49":1,"96":10,"105":5,"115":4,"168":2}}],["获取到对应的dom后操作",{"2":{"178":1}}],["获取可见区间范围",{"2":{"134":1}}],["获取样式配置",{"2":{"120":1}}],["获取尺寸",{"2":{"118":1}}],["获取dom容器",{"2":{"117":1}}],["获取klinechart",{"0":{"98":1},"1":{"99":1,"100":1,"101":1}}],["获取基础图形实例",{"2":{"83":2}}],["获取",{"2":{"82":1}}],["获取一个点在斜率和常数项形成的线上的y轴坐标值",{"2":{"51":1}}],["获取一个点在另外两个坐标点形成的线上的y轴坐标值",{"2":{"50":1}}],["获取点组成的线的斜率和常数项",{"2":{"49":1}}],["获取图表转换成图片后的图片url",{"2":{"162":1}}],["获取图表目前的数据源",{"2":{"138":1}}],["获取图表单根蜡烛柱的宽度",{"2":{"133":1}}],["获取图表右边可以空出来的间隙",{"2":{"129":1}}],["获取图表时区名",{"2":{"123":1}}],["获取图表当前版本号",{"2":{"33":1}}],["获取图表支持的覆盖物",{"2":{"32":1}}],["获取图表支持的技术指标",{"2":{"30":1}}],["获取图表支持的基础图形类型",{"2":{"27":1}}],["获取图表支持的本地化语言类型",{"2":{"24":1}}],["获取图形类",{"2":{"28":1}}],["根据id获取覆盖物信息",{"2":{"146":1}}],["根据窗口id获取技术指标信息",{"2":{"143":1}}],["根据两个坐标点",{"2":{"49":1}}],["根据覆盖物名称获取图表内覆盖物的属性",{"2":{"23":1}}],["y轴线",{"2":{"171":2}}],["y轴",{"2":{"171":2}}],["y轴组件",{"2":{"112":4,"167":2}}],["ydis",{"2":{"96":4,"168":6}}],["y是中心点y轴坐标值",{"2":{"95":1}}],["y",{"2":{"49":4,"50":6,"51":2,"52":5,"53":5,"54":4,"55":4,"56":5,"57":5,"58":3,"59":3,"60":2,"61":2,"62":3,"63":3,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"93":2,"95":1,"96":24,"153":2,"160":4,"161":4,"167":2,"168":4}}],["yyyy",{"2":{"46":1}}],["yaxis",{"2":{"13":3,"29":8,"112":12,"117":3,"118":3,"167":4,"171":2,"175":3,"180":4}}],["取消回调事件",{"2":{"167":2}}],["取消订阅图表动作",{"2":{"159":1}}],["取消选中事件",{"2":{"31":1,"147":1}}],["取c的值",{"2":{"43":1}}],["检查一下容器是否有高度",{"2":{"70":1}}],["检查某个坐标点是否在文字上",{"2":{"57":1}}],["检查某个坐标点是否在矩形上",{"2":{"56":1}}],["检查某个坐标点是否在多边形上",{"2":{"55":1}}],["检查某个坐标点是否在线上",{"2":{"54":1}}],["检查某个坐标点是否在圆上",{"2":{"53":1}}],["检查某个坐标点是否在圆弧上",{"2":{"52":1}}],["检查某个值是否有效",{"2":{"39":1}}],["检查某个值是否是bool值",{"2":{"42":1}}],["检查某个值是否是方法",{"2":{"41":1}}],["检查某个值是否是对象",{"2":{"40":1}}],["检查某个值是否是数字",{"2":{"38":1}}],["检查某个值是否是字符串",{"2":{"37":1}}],["检查事件是否在图形上",{"2":{"26":1}}],["深度复制",{"2":{"35":1}}],["辅助方法集合",{"2":{"34":1}}],["鼠标移出事件",{"2":{"31":1,"147":1,"167":2}}],["鼠标移入事件",{"2":{"31":1,"147":1,"167":2}}],["按住拖动结束回调事件",{"2":{"167":2}}],["按住拖动回调事件",{"2":{"167":2}}],["按住拖动开始回调事件",{"2":{"167":2}}],["按住某个操作点移动过程中触发",{"2":{"167":2}}],["按住移动结束事件",{"2":{"31":1,"147":1}}],["按住移动中事件",{"2":{"31":1,"147":1}}],["按住移动事件特殊处理方法",{"2":{"31":1}}],["按住开始移动事件",{"2":{"31":1,"147":1}}],["点击回调事件",{"2":{"167":2}}],["点击事件",{"2":{"31":1,"147":1}}],["点信息",{"2":{"31":1,"147":1,"167":4}}],["创建时候的id",{"2":{"148":1}}],["创建覆盖物",{"2":{"145":1}}],["创建一个技术指标",{"2":{"141":1}}],["创建一个自定义技术指标",{"2":{"111":1}}],["创建一个自定义基础图形",{"2":{"92":1}}],["创建自定义提示文字",{"2":{"112":2}}],["创建自定义提示信息方法",{"2":{"29":1,"142":1}}],["创建第一个图表",{"0":{"102":1},"1":{"103":1,"104":1}}],["创建y轴上的图形",{"2":{"31":1,"167":2}}],["创建x轴上的图形",{"2":{"31":1,"167":2}}],["创建点对应的图形信息",{"2":{"168":2}}],["创建点对应的图形",{"2":{"31":1,"167":2}}],["时间戳",{"2":{"65":2,"152":1,"155":1,"160":1,"167":4}}],["时有效",{"2":{"31":1,"147":1,"167":2}}],["时区对应名字列表请参阅时区列表",{"2":{"20":1,"122":1}}],["时区名",{"2":{"20":1,"122":1}}],["是一款可高度自定义的专业级轻量金融图表",{"2":{"182":1}}],["是一个回调方法",{"2":{"140":1,"158":1}}],["是一个k线数据数组",{"2":{"135":1,"136":1}}],["是一个方法",{"2":{"112":4}}],["是创建的唯一标识",{"2":{"93":2}}],["是怎么回事",{"0":{"70":1}}],["是",{"2":{"31":1,"147":1,"167":2}}],["是否忽略事件",{"2":{"167":2}}],["是否锁定",{"2":{"167":2}}],["是否锁定不让拖动",{"2":{"31":1,"147":1}}],["是否是绝对坐标",{"2":{"160":1,"161":1}}],["是否覆盖",{"2":{"141":1}}],["是否可以拖拽滚动",{"2":{"127":1}}],["是否可以缩放",{"2":{"125":1}}],["是否可见",{"2":{"29":1,"31":1,"112":2,"142":1,"147":1,"167":2}}],["是否需要包含浮层",{"2":{"162":1}}],["是否需要格式化大数据值",{"2":{"112":2}}],["是否需要格式化大的数字",{"2":{"29":1,"142":1}}],["是否需要ohlc",{"2":{"112":2}}],["是否需要ohlc辅助图形",{"2":{"29":1,"142":1}}],["是否需要默认的y轴上的图形",{"2":{"31":1,"147":1,"167":2}}],["是否需要默认的x轴上的图形",{"2":{"31":1,"147":1,"167":2}}],["是否需要默认的点对应的图形",{"2":{"31":1,"147":1,"167":2}}],["仅支持",{"2":{"157":1}}],["仅",{"2":{"31":1,"147":1,"167":2}}],["模式灵敏度",{"2":{"31":1,"147":1,"167":2}}],["模式",{"2":{"31":1,"147":1,"167":4}}],["越靠前显示",{"2":{"31":1}}],["绘制结束回调事件",{"2":{"167":2}}],["绘制结束事件",{"2":{"31":1,"147":1}}],["绘制过程中回调事件",{"2":{"167":2}}],["绘制开始回调事件",{"2":{"167":2}}],["绘制边框的菱形",{"2":{"96":2}}],["绘制填充的菱形",{"2":{"96":2}}],["绘制",{"2":{"93":2}}],["绘制带背景的文字",{"2":{"63":1}}],["绘制矩形",{"2":{"62":1}}],["绘制多边形",{"2":{"61":1}}],["绘制线",{"2":{"60":1}}],["绘制圆",{"2":{"59":1}}],["绘制圆弧",{"2":{"58":1}}],["绘制中事件",{"2":{"31":1,"147":1}}],["绘制层级",{"2":{"31":1,"147":1,"167":2}}],["绘制方法",{"2":{"26":1}}],["计算结果",{"2":{"115":2}}],["计算出来的数据不是想要的",{"0":{"73":1}}],["计算文字宽度",{"2":{"48":1}}],["计算方法",{"2":{"29":1,"112":2,"142":1}}],["计算参数最好取回调参数calcparams",{"2":{"115":2}}],["计算参数是2个",{"2":{"114":2}}],["计算参数文字",{"2":{"112":2}}],["计算参数",{"2":{"29":1,"112":4,"142":1}}],["指定的最大值",{"2":{"112":2}}],["指定的最小值",{"2":{"112":2}}],["指定高",{"2":{"90":2}}],["指定宽",{"2":{"90":2}}],["指定最大值",{"2":{"29":1,"142":1}}],["指定最小值",{"2":{"29":1,"142":1}}],["指标创建完成回调方法",{"2":{"141":1}}],["指标简短名称",{"2":{"112":2}}],["指标系列",{"2":{"29":1,"142":1}}],["指标名",{"2":{"29":1,"110":3,"112":2,"142":1}}],["指标图形配置支持自定义",{"2":{"4":1}}],["扩展数据",{"2":{"29":1,"31":1,"112":2,"142":1,"147":1,"167":2}}],["精度",{"2":{"29":1,"112":2,"142":1,"167":2}}],["mtm",{"2":{"110":1}}],["meta",{"2":{"104":10}}],["me",{"2":{"78":1}}],["merge",{"0":{"36":1}}],["mozilla",{"2":{"167":2}}],["moveto",{"2":{"96":4}}],["more",{"0":{"135":1,"136":1},"2":{"65":2,"135":3,"136":3}}],["modesensitivity",{"2":{"31":3,"145":6,"147":5,"167":2}}],["mode",{"2":{"31":4,"145":6,"147":6,"167":6}}],["minheight",{"2":{"141":5,"156":5}}],["min",{"2":{"101":2}}],["minvalue",{"2":{"29":3,"112":2,"141":2,"142":5}}],["middle",{"2":{"57":2,"63":2,"171":4}}],["mm",{"2":{"46":2}}],["main和yaxis",{"2":{"178":1}}],["main",{"2":{"117":3,"118":3}}],["map",{"2":{"115":4}}],["ma5",{"2":{"114":4,"115":2}}],["ma2",{"2":{"114":3,"115":4}}],["ma10",{"2":{"114":6,"115":2}}],["ma1",{"2":{"114":5,"115":4}}],["macd",{"2":{"110":1}}],["ma",{"2":{"110":1,"113":1,"114":1,"115":10,"141":2}}],["math",{"2":{"96":4,"168":6}}],["magnet`",{"2":{"167":4}}],["magnet",{"2":{"31":7,"145":10,"147":9,"167":10}}],["maxvalue",{"2":{"29":3,"112":2,"141":2,"142":5}}],["marginstrat",{"2":{"171":4}}],["marginstart",{"2":{"13":2,"175":2}}],["marginbottom",{"2":{"171":12}}],["marginright",{"2":{"171":8}}],["margintop",{"2":{"171":8}}],["marginleft",{"2":{"171":8}}],["margin",{"2":{"13":2}}],["marginend",{"2":{"13":2,"175":2}}],["k线数据",{"2":{"112":4}}],["kdj",{"2":{"110":1}}],["kb",{"0":{"51":1},"2":{"51":2}}],["kx",{"2":{"49":1}}],["klinechart",{"0":{"182":1},"2":{"77":2,"80":1,"98":1,"182":1}}],["klinechartsyarn",{"2":{"100":1}}],["klinecharts",{"2":{"7":1,"83":2,"99":2,"100":1,"101":4,"103":2,"104":2,"107":1,"172":2,"173":1}}],["klinedatalist",{"2":{"112":4,"115":6,"180":4}}],["klinedata",{"2":{"29":2,"112":22,"115":4,"141":2,"142":2}}],["keywords",{"2":{"104":2}}],["key",{"0":{"43":1},"2":{"29":4,"31":12,"43":2,"107":1,"108":1,"112":2,"114":4,"115":8,"141":4,"142":4,"167":4,"168":2,"171":2}}],["erc20",{"2":{"188":1}}],["eth",{"2":{"188":1}}],["e11d74",{"2":{"171":2}}],["ededed",{"2":{"171":4}}],["extension",{"2":{"177":1}}],["extenddata",{"2":{"29":3,"31":3,"112":2,"141":2,"142":5,"145":6,"147":5,"167":2}}],["executeaction",{"0":{"157":1}}],["ef5350",{"2":{"142":4}}],["ef5350变更为",{"2":{"6":1}}],["ema",{"2":{"110":1}}],["emv",{"2":{"65":2,"110":1}}],["enabled",{"0":{"124":1,"126":1},"2":{"124":2,"126":2}}],["en",{"2":{"104":2}}],["end",{"2":{"57":2,"63":2}}],["endangle",{"2":{"52":3,"58":3,"85":2}}],["else",{"2":{"96":2}}],["event",{"2":{"31":28,"145":112,"147":84,"167":28}}],["图解说明",{"0":{"170":1}}],["图形辅助api",{"0":{"179":1}}],["图形类型",{"2":{"112":2,"167":2}}],["图形的样式",{"2":{"93":4}}],["图形的属性",{"2":{"93":4}}],["图形配置",{"2":{"29":1,"142":1}}],["图形名字",{"2":{"93":2}}],["图形名",{"2":{"28":1}}],["图表之间的分割线",{"2":{"171":2}}],["图表上看到的不管是点还是线",{"2":{"169":1}}],["图表上所有的元素都是由基础图形组成",{"2":{"82":1}}],["图表不会重绘",{"2":{"139":1}}],["图表内置了基础图形",{"2":{"168":2}}],["图表内置了这些基础图形",{"2":{"84":1}}],["图表内置了zh",{"2":{"22":1}}],["图表支持自定义技术指标",{"2":{"74":1}}],["图表默认价格精度为两位小数",{"2":{"71":1}}],["图表总是会填充容器",{"2":{"70":1}}],["图表基于",{"2":{"67":1}}],["图表所需要的数据必须是固定格式",{"2":{"65":1}}],["图表将不再可用",{"2":{"21":1}}],["图表方法extension",{"2":{"13":2}}],["图表方法新增getoverlayclass",{"2":{"1":1}}],["图表实例方法subscribeaction和unsubscribeaction类型新增oncandlebarclick",{"2":{"11":1}}],["图表api",{"0":{"19":1,"177":1},"1":{"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"2":{"4":1}}],["唯一标识",{"2":{"26":1}}],["元素id或者图表实例",{"2":{"21":1}}],["销毁一个图表",{"2":{"21":1}}],["千分符",{"2":{"20":1,"167":2}}],["格式化精度",{"2":{"44":1}}],["格式化大的数字",{"2":{"20":1,"45":1}}],["格式化日期和时间的对象的构造器",{"2":{"167":2}}],["格式化日期千分符",{"2":{"47":1}}],["格式化日期",{"2":{"20":1,"46":1}}],["自定义显示",{"2":{"171":2}}],["自定义一个覆盖物",{"2":{"166":1}}],["自定义一些api",{"2":{"20":1}}],["自定义覆盖物",{"0":{"166":1},"1":{"167":1,"168":1}}],["自定义绘制",{"2":{"112":2}}],["自定义绘制方法",{"2":{"29":1,"142":1}}],["自定义技术指标调整",{"0":{"180":1}}],["自定义技术指标",{"0":{"111":1},"1":{"112":1,"113":1,"114":1,"115":1}}],["自定义基础图形",{"0":{"92":1},"1":{"93":1,"94":1,"95":1,"96":1}}],["自定义扩展",{"2":{"13":2}}],["样式",{"2":{"29":1,"31":1,"57":1,"58":1,"59":2,"60":1,"61":2,"62":2,"63":2,"83":2,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"95":1,"112":10,"142":1,"147":1,"167":6}}],["样式名",{"2":{"25":1}}],["样式列表",{"2":{"20":1}}],["样式配置调整",{"0":{"175":1}}],["样式配置",{"0":{"169":1},"1":{"170":1,"171":1},"2":{"13":3,"25":1,"119":1}}],["样式配置新增candle",{"2":{"7":1}}],["样式配置candle",{"2":{"1":1,"2":1}}],["如果能够打赏一杯",{"2":{"184":1}}],["如果你觉得插件还不错",{"2":{"184":1}}],["如果你是",{"2":{"172":1}}],["如果dataindex和timestamp同时存在",{"2":{"160":1}}],["如果id存在",{"2":{"147":1}}],["如果缺省",{"2":{"144":1}}],["如果有值的情况下",{"2":{"115":2}}],["如果不是",{"2":{"115":2}}],["如果不设置会自动获取本机时区",{"2":{"20":1,"122":1}}],["如果无值",{"2":{"115":2}}],["如果返回true",{"2":{"112":2,"167":2}}],["如果name无值",{"2":{"112":2}}],["如果给定",{"2":{"112":2}}],["如果需要使用其他语言",{"2":{"106":1}}],["如果需要制作复杂的自定义技术指标和覆盖物",{"2":{"82":1}}],["如果需要运行在移动端",{"2":{"67":1}}],["如果需要展示技术指标",{"2":{"65":2}}],["如const",{"2":{"43":1}}],["如1000转换成1k",{"2":{"20":1,"29":1,"45":1,"142":1}}],["如",{"2":{"20":1,"46":1,"83":2,"122":1}}],["语言配置",{"2":{"22":1}}],["语言名",{"2":{"22":1}}],["语言",{"2":{"20":1}}],["可用于扩展字段",{"2":{"167":2}}],["可缺省",{"2":{"135":1,"136":1,"141":5,"143":1,"145":1,"153":1,"156":4,"162":3,"167":32}}],["可见区域信息",{"2":{"112":4}}],["可以直接使用",{"2":{"168":2}}],["可以缺省",{"2":{"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1}}],["可以通过图表方法init",{"2":{"169":1}}],["可以通过图表方法createindicator或者overrideindicator重写calc即可",{"2":{"73":1}}],["可以通过图表api",{"2":{"108":1}}],["可以这样做",{"2":{"107":1}}],["可以参考下面的方案",{"2":{"106":1}}],["可以使用jsdelivr",{"2":{"101":1}}],["可以使用覆盖物",{"2":{"75":1}}],["可以定义两个选项solid和dashed",{"2":{"95":1}}],["可以是国际化的",{"2":{"171":2}}],["可以是回调方法也可以是数组",{"2":{"171":2}}],["可以是当个对象",{"2":{"160":1,"161":1}}],["可以是单个id",{"2":{"148":1}}],["可以是通过registerstyles注册进去的样式名",{"2":{"119":1}}],["可以是通过klinecharts",{"2":{"20":1}}],["可以是一个promise",{"2":{"112":2}}],["可以是dom元素",{"2":{"21":1}}],["可以是dom元素或者元素id",{"2":{"20":1}}],["可选项为`normal`",{"2":{"167":2}}],["可选项为",{"2":{"117":1,"158":1,"159":1}}],["可选项`fill`",{"2":{"86":2,"88":2,"89":2,"90":2}}],["可选项`solid`",{"2":{"85":2,"87":2}}],["可选项有",{"2":{"29":1,"31":1,"142":1,"147":1}}],["可选配置项",{"2":{"20":1}}],["容器",{"2":{"20":1}}],["gzip压缩下仅40k",{"2":{"183":1}}],["grid",{"2":{"171":2}}],["groupid",{"2":{"145":6,"147":5,"148":3}}],["global",{"2":{"167":2}}],["gap",{"2":{"141":5,"156":5}}],["gapbar",{"2":{"112":2,"167":2}}],["gg",{"2":{"79":1}}],["github",{"0":{"77":1},"2":{"77":2}}],["gt",{"2":{"20":6,"21":2,"22":2,"23":4,"24":2,"25":2,"26":6,"27":2,"28":2,"29":26,"30":2,"31":48,"32":2,"33":2,"35":2,"36":2,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"43":2,"44":2,"45":2,"46":2,"47":2,"48":2,"49":2,"50":2,"51":4,"52":2,"53":2,"54":4,"55":4,"56":2,"57":2,"58":2,"59":4,"60":4,"61":6,"62":4,"63":2,"85":2,"86":2,"87":4,"88":4,"89":2,"90":2,"93":4,"96":4,"101":4,"104":36,"112":26,"115":12,"117":2,"118":2,"119":2,"120":2,"121":2,"122":2,"123":2,"124":2,"125":2,"126":2,"127":2,"128":2,"129":2,"130":2,"131":2,"132":2,"133":2,"134":2,"135":6,"136":6,"137":4,"138":4,"139":2,"140":4,"141":26,"142":32,"143":2,"144":2,"145":64,"146":2,"147":32,"148":2,"149":2,"150":2,"151":2,"152":2,"153":2,"154":2,"155":2,"156":2,"157":4,"158":4,"159":4,"160":6,"161":4,"162":2,"163":2,"167":42,"168":2}}],["getwidth",{"2":{"178":1}}],["getconvertpictureurl",{"0":{"162":1}}],["getindicatorbypaneid",{"0":{"143":1}}],["getdatalist",{"0":{"138":1}}],["getdom",{"0":{"117":1},"2":{"178":1}}],["getbarspace",{"0":{"133":1}}],["getoffsetrightdistance",{"0":{"129":1}}],["getoverlayclass",{"0":{"23":1}}],["getoverlaybyid",{"0":{"146":1},"2":{"13":1}}],["gettechnicalindicatorbypaneid",{"2":{"178":1}}],["gettechnicalindicatortemplate",{"2":{"13":1}}],["gettimezone",{"0":{"123":1}}],["getlinearyfromslopeintercept",{"0":{"51":1}}],["getlinearyfromcoordinates",{"0":{"50":1}}],["getlinearslopeintercept",{"0":{"49":1}}],["getlocal",{"2":{"13":1}}],["getheight",{"2":{"13":1}}],["getvisiblerange",{"0":{"134":1},"2":{"13":1}}],["getstyleoptions",{"2":{"178":1}}],["getstyles",{"0":{"120":1}}],["getsize",{"0":{"118":1},"2":{"13":1}}],["getsupportedoverlays",{"0":{"32":1}}],["getsupportedindicators",{"0":{"30":1}}],["getsupportedfigures",{"0":{"27":1}}],["getsupportedlocales",{"0":{"24":1}}],["getsupportlocales",{"2":{"13":1}}],["getsupportoverlays",{"2":{"13":1}}],["getsupportfigures返回值中的一种",{"2":{"167":2}}],["getsupportfigures",{"2":{"13":1}}],["getfigureclass",{"0":{"28":1},"2":{"13":1,"82":1,"83":2}}],["===",{"2":{"96":10,"168":2}}],["=",{"2":{"20":6,"21":2,"22":2,"23":2,"24":2,"25":2,"26":6,"27":2,"28":2,"29":18,"30":2,"31":40,"32":2,"33":2,"35":2,"36":2,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"43":3,"44":2,"45":2,"46":2,"47":2,"48":2,"49":3,"50":2,"51":2,"52":2,"53":2,"54":2,"55":2,"56":2,"57":2,"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"83":2,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"93":4,"96":32,"103":2,"104":4,"112":12,"115":24,"117":2,"118":2,"119":2,"120":2,"121":2,"122":2,"123":2,"124":2,"125":2,"126":2,"127":2,"128":2,"129":2,"130":2,"131":2,"132":2,"133":2,"134":2,"135":4,"136":4,"137":4,"138":2,"139":2,"140":4,"141":18,"142":24,"143":2,"144":2,"145":58,"146":2,"147":30,"148":2,"149":2,"150":2,"151":2,"152":2,"153":2,"154":2,"155":2,"156":2,"157":4,"158":4,"159":4,"160":2,"161":2,"162":2,"163":2,"167":34,"168":8}}],["n",{"2":{"171":4}}],["npm",{"2":{"101":2}}],["neue",{"2":{"171":24}}],["next",{"2":{"112":2}}],["net",{"2":{"101":2}}],["new",{"2":{"83":2}}],["needdefaultyaxisfigure",{"2":{"31":3,"145":6,"147":5,"167":2}}],["needdefaultxaxisfigure",{"2":{"31":3,"145":6,"147":5,"167":2}}],["needdefaultpointfigure",{"2":{"31":3,"145":6,"147":5,"167":2}}],["none",{"2":{"171":4}}],["normal",{"2":{"29":3,"31":3,"112":4,"141":2,"142":3,"145":4,"147":3,"167":4,"171":28}}],["nochangecolor",{"2":{"142":4,"171":10}}],["nochangewickcolor",{"2":{"7":1,"171":2}}],["nochangebordercolor",{"2":{"7":1,"171":2}}],["null",{"2":{"140":2,"141":4,"142":6,"145":2,"147":2,"171":2}}],["nullable",{"2":{"23":2}}],["number",{"2":{"20":6,"29":10,"31":12,"44":4,"45":2,"46":2,"47":2,"48":6,"49":8,"50":14,"51":8,"52":14,"53":10,"54":8,"55":8,"56":12,"57":12,"58":14,"59":10,"60":8,"61":8,"62":14,"63":26,"65":14,"85":14,"86":10,"87":8,"88":8,"89":14,"90":26,"93":4,"112":62,"118":12,"121":4,"128":2,"129":2,"130":2,"131":2,"132":2,"133":2,"134":8,"135":14,"136":14,"137":14,"138":14,"140":2,"141":18,"142":10,"145":20,"147":10,"149":4,"150":4,"151":4,"152":4,"153":8,"154":6,"155":6,"156":8,"160":20,"161":20,"167":48}}],["name=",{"2":{"104":8}}],["name为基础图形名字",{"2":{"83":2}}],["name",{"0":{"25":1,"28":1,"143":1,"144":1},"2":{"23":2,"25":3,"26":3,"28":3,"29":5,"31":3,"75":1,"82":1,"83":2,"93":2,"96":2,"112":4,"115":2,"141":4,"142":7,"143":3,"144":3,"145":6,"147":5,"148":3,"167":2,"168":2,"178":5,"180":1}}],["||",{"2":{"96":4,"115":2}}],["|",{"2":{"20":6,"21":4,"29":10,"31":34,"44":2,"45":2,"47":2,"48":2,"57":20,"58":2,"59":8,"60":2,"61":8,"62":8,"63":26,"85":2,"86":6,"87":2,"88":6,"89":6,"90":10,"112":10,"117":4,"118":4,"119":2,"140":2,"141":32,"142":28,"145":16,"147":6,"148":2,"158":12,"159":12,"160":4,"161":4,"167":18,"171":102}}],["686d76",{"2":{"171":8}}],["60",{"2":{"110":2}}],["600px",{"2":{"104":4}}],["62",{"2":{"103":2,"104":2}}],["66",{"2":{"103":4,"104":4}}],["64",{"2":{"103":2,"104":2}}],["61",{"2":{"103":4,"104":4}}],["6",{"0":{"16":1},"2":{"16":1,"110":9,"171":10}}],["76808f",{"2":{"171":4}}],["76",{"2":{"103":2,"104":2}}],["72",{"2":{"103":2,"104":2}}],["70",{"2":{"103":2,"104":2}}],["74",{"2":{"103":2,"104":2}}],["77",{"2":{"103":2,"104":2}}],["7yjhygvvvz",{"2":{"79":1}}],["7",{"0":{"15":1},"2":{"15":1,"171":12,"172":1}}],["的浏览器上",{"2":{"67":1}}],["的版本记录",{"2":{"17":1,"18":1}}],["的",{"2":{"14":1,"15":1,"16":1}}],["x轴分割线",{"2":{"171":4}}],["x轴分割文字",{"2":{"171":4}}],["x轴线",{"2":{"171":2}}],["x轴",{"2":{"171":2}}],["x轴组件",{"2":{"112":4,"167":2}}],["xxxxxxxx",{"2":{"145":2,"147":2}}],["xxx",{"2":{"115":4,"180":8}}],["xdis",{"2":{"96":4,"168":6}}],["x是中心点x轴坐标值",{"2":{"95":1}}],["x",{"0":{"14":1,"15":1,"16":1,"17":1,"18":1},"2":{"14":1,"15":1,"16":1,"17":1,"18":1,"49":4,"50":6,"51":2,"52":5,"53":5,"54":4,"55":4,"56":5,"57":5,"58":3,"59":3,"60":2,"61":2,"62":3,"63":3,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"93":2,"95":1,"96":24,"153":2,"160":4,"161":4,"167":2,"168":4,"172":4}}],["xaxis",{"2":{"13":3,"29":8,"112":12,"167":4,"171":2,"175":3,"180":4}}],["xaxis新增方法converttimestampfrompixel和converttimestamptopixel",{"2":{"3":1}}],["85",{"2":{"171":6}}],["888888",{"2":{"142":4,"171":28}}],["88",{"2":{"103":2,"104":2}}],["89",{"2":{"103":2,"104":2}}],["8",{"0":{"14":1},"2":{"14":1,"104":2,"145":2,"147":2,"171":12,"172":2}}],["删除属性shouldcheckparamcount",{"2":{"180":1}}],["删除gettechnicalindicatorbypaneid",{"2":{"178":1}}],["删除setshapeoptions",{"2":{"178":1}}],["删除shape",{"2":{"13":2,"175":1}}],["删除removeshape",{"2":{"178":1}}],["删除createhtml",{"2":{"178":1}}],["删除createshape",{"2":{"178":1}}],["删除candle",{"2":{"13":1}}],["删除extension",{"2":{"177":1}}],["删除回调事件",{"2":{"167":2}}],["删除一个html元素",{"2":{"148":1}}],["删除事件",{"2":{"31":1,"147":1}}],["删除实例方法createhtml",{"2":{"13":1}}],["删除实例方法createshape",{"2":{"13":1}}],["删除实例方法setshapeoptions",{"2":{"13":1}}],["删除实例方法removeshape",{"2":{"13":1}}],["删除实例方法getwidth",{"2":{"13":1}}],["改用overlay",{"2":{"13":2}}],["改用overrideoverlay",{"2":{"13":1}}],["改用removeoverlay",{"2":{"13":1}}],["改用createoverlay",{"2":{"13":1}}],["改用getsize",{"2":{"13":1}}],["废弃",{"2":{"13":1}}],["length",{"2":{"168":2,"171":4}}],["left",{"2":{"57":2,"63":2,"112":4,"118":2,"167":2,"171":10}}],["labels和candle",{"2":{"175":1}}],["lang=",{"2":{"104":2}}],["lastvaluemark",{"2":{"13":1,"171":2}}],["last",{"2":{"13":1,"171":2}}],["liihuu",{"2":{"77":2}}],["linecolor",{"2":{"171":2}}],["linewidth",{"2":{"96":2}}],["lineto",{"2":{"96":12}}],["line",{"0":{"54":1,"60":1,"87":1},"2":{"54":2,"60":3,"84":1,"114":4,"115":6,"145":2,"147":2,"171":8}}],["linesize",{"2":{"171":2}}],["lines",{"2":{"13":1,"142":2,"171":2,"175":1}}],["line变更为indicator",{"2":{"13":1,"175":1}}],["lt",{"2":{"23":2,"29":8,"31":8,"51":2,"54":2,"55":2,"59":2,"60":2,"61":4,"62":2,"87":2,"88":2,"96":2,"101":4,"104":36,"112":14,"135":2,"136":2,"138":2,"141":8,"142":8,"145":6,"147":2,"160":4,"161":4,"167":8}}],["loadmore",{"0":{"140":1}}],["lock",{"2":{"31":3,"145":6,"147":5,"167":2}}],["locales",{"0":{"22":1},"2":{"22":3,"107":1}}],["locale",{"0":{"22":1},"2":{"20":3,"22":3}}],["low",{"2":{"22":2,"65":2,"103":20,"104":20,"107":2,"135":2,"136":2,"137":2,"138":2,"171":2}}],["log",{"2":{"14":1,"15":1,"16":1,"145":28,"147":28,"171":2}}],["halfgapbar",{"2":{"112":2,"167":2}}],["halfbar",{"2":{"112":2,"167":2}}],["hanging",{"2":{"57":2,"63":2}}],["hk",{"2":{"107":2}}],["helvetica",{"2":{"171":24}}],["head",{"2":{"104":4}}],["height是高度",{"2":{"95":1}}],["height",{"2":{"56":3,"62":3,"63":3,"89":2,"90":2,"95":1,"96":16,"104":2,"112":4,"118":2,"141":5,"156":5,"167":2}}],["height变更为yaxis",{"2":{"13":1,"175":1}}],["height变更为xaxis",{"2":{"13":1,"175":1}}],["https",{"2":{"77":2,"78":1,"79":1,"101":2,"167":2}}],["htmlid",{"2":{"148":1,"178":1}}],["html",{"2":{"104":7,"178":1}}],["html5",{"2":{"67":1}}],["htmlelement",{"2":{"20":2,"21":2,"117":2,"119":2}}],["hh",{"2":{"46":1}}],["high",{"2":{"22":2,"65":2,"103":20,"104":20,"107":2,"135":2,"136":2,"137":2,"138":2,"171":2}}],["horizontalstraightline",{"2":{"165":1}}],["horizontalsegment",{"2":{"165":1}}],["horizontalrayline",{"2":{"165":1}}],["horizontal",{"2":{"13":1,"171":4}}],["smooth",{"2":{"171":12}}],["sma",{"2":{"110":1}}],["sqrt",{"2":{"168":2}}],["subscribeaction",{"0":{"158":1},"2":{"178":1}}],["space",{"0":{"132":1},"2":{"132":2,"178":1}}],["samplecircle",{"2":{"168":4}}],["sar",{"2":{"110":1}}],["save",{"2":{"99":1}}],["savenpm",{"2":{"99":1}}],["scale",{"0":{"153":1,"154":1,"155":1},"2":{"153":3,"154":3,"155":3}}],["scale=1",{"2":{"104":2}}],["scrolltotimestamp",{"0":{"152":1}}],["scrolltodataindex",{"0":{"151":1}}],["scrolltorealtime",{"0":{"150":1}}],["scrollbydistance",{"0":{"149":1}}],["scrollzoomenabled",{"2":{"141":5,"156":5}}],["script",{"0":{"104":1},"2":{"101":4,"104":4}}],["src=",{"2":{"101":2}}],["solid是实线",{"2":{"95":1}}],["solid",{"2":{"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"96":2,"141":4,"142":10,"145":2,"147":2,"171":70}}],["source",{"0":{"36":1},"2":{"36":2}}],["simple",{"2":{"173":1}}],["simpletag",{"2":{"165":1}}],["simpleannotation",{"2":{"75":1,"165":1}}],["sign",{"0":{"47":1},"2":{"47":2}}],["size",{"0":{"48":1},"2":{"13":2,"48":2,"57":3,"58":3,"60":3,"63":3,"85":2,"87":2,"90":2,"142":2,"145":2,"147":2,"171":62,"175":2}}],["ss",{"2":{"46":1}}],["separator",{"2":{"171":2}}],["segment",{"2":{"145":6,"147":6,"165":1}}],["series",{"2":{"29":3,"112":2,"141":2,"142":5}}],["setoffsetrightspace",{"2":{"178":1}}],["setoffsetrightdistance",{"0":{"128":1}}],["setpaneoptions",{"0":{"156":1},"2":{"156":2}}],["setpricevolumeprecision",{"0":{"121":1}}],["setbarspace",{"0":{"132":1}}],["setrightminvisiblebarcount",{"0":{"131":1}}],["setstyleoptions",{"2":{"178":1}}],["setstyles",{"0":{"119":1},"2":{"72":2}}],["setscrollenabled",{"0":{"126":1}}],["setzoomenabled",{"0":{"124":1}}],["settimezone",{"0":{"122":1}}],["setleftminvisiblebarcount",{"0":{"130":1}}],["setlinedash",{"2":{"96":4}}],["setlocale",{"2":{"13":1}}],["setcustomapi",{"2":{"13":1}}],["shape",{"2":{"174":1}}],["shanghai",{"2":{"20":1,"122":1}}],["shift",{"2":{"105":4}}],["showparams",{"2":{"171":2}}],["showtype",{"2":{"171":4}}],["showrule",{"2":{"171":4}}],["show",{"2":{"171":52}}],["showname",{"2":{"142":2,"171":2}}],["shouldformatbignumber",{"2":{"29":3,"112":2,"141":2,"142":5}}],["shouldohlc",{"2":{"29":3,"112":2,"141":2,"142":5}}],["shortname",{"2":{"29":3,"112":2,"115":2,"141":2,"142":3}}],["standard",{"2":{"171":8}}],["start",{"2":{"57":2,"63":2}}],["startangle",{"2":{"52":3,"58":3,"85":2}}],["straightline",{"2":{"165":1}}],["strokestyle",{"2":{"96":2}}],["stroke只有边框",{"2":{"95":1}}],["stroke",{"2":{"59":4,"61":4,"62":4,"63":4,"86":4,"88":4,"89":4,"90":4,"95":2,"96":8,"141":8,"142":8,"168":2,"171":46}}],["strong",{"2":{"31":3,"145":4,"147":3,"167":4}}],["string",{"2":{"20":18,"21":2,"22":14,"23":2,"24":2,"25":2,"26":2,"27":2,"28":2,"29":32,"30":2,"31":26,"32":2,"33":2,"43":2,"44":4,"45":4,"46":4,"47":6,"48":6,"57":6,"58":2,"59":4,"60":2,"61":4,"62":4,"63":10,"85":2,"86":4,"87":2,"88":4,"89":4,"90":10,"93":2,"112":28,"117":2,"118":2,"119":2,"122":2,"123":2,"141":42,"142":38,"143":4,"144":4,"145":20,"146":2,"147":8,"148":8,"156":2,"160":2,"161":2,"162":6,"167":12}}],["style=",{"2":{"104":2}}],["style是样式类型",{"2":{"95":1}}],["style",{"2":{"58":3,"59":3,"60":3,"61":3,"62":3,"63":3,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"95":1,"96":10,"141":4,"142":10,"145":2,"147":2,"168":2,"171":44}}],["styles",{"0":{"25":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"119":1},"2":{"20":3,"25":3,"26":4,"29":7,"31":15,"57":3,"58":3,"59":3,"60":3,"61":3,"62":3,"63":3,"64":2,"83":4,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"93":2,"96":8,"112":4,"119":3,"141":6,"142":9,"145":6,"147":5,"167":6,"168":2,"169":1,"178":2,"180":1}}],["style选项变更为solid和dashed",{"2":{"13":1}}],["所有的api都迁移至klinecharts",{"2":{"179":1}}],["所有线的样式选项dash",{"2":{"175":1}}],["所有dashvalue变更为dashedvalue",{"2":{"13":1}}],["所有line",{"2":{"13":1}}],["所有visiblerange新增realfrom和realto",{"2":{"7":1}}],["变更为draw",{"2":{"180":1}}],["变更为",{"2":{"180":1}}],["变更为createtooltipdatasource",{"2":{"180":1}}],["变更为createindicator",{"2":{"178":1}}],["变更为calc",{"2":{"180":1}}],["变更为regeneratefigures",{"2":{"180":1}}],["变更为registerindicator",{"2":{"177":1}}],["变更为removeindicator",{"2":{"178":1}}],["变更为overrideindicator",{"2":{"178":1}}],["变更为setoffsetrightdistance",{"2":{"178":1}}],["变更为setstyles",{"2":{"178":1}}],["变更为getindicatorbypaneid",{"2":{"178":1}}],["变更为getstyles",{"2":{"178":1}}],["变更为getdom",{"2":{"178":1}}],["变更为支持任意类型",{"2":{"13":1}}],["变更",{"2":{"13":1}}],["v9",{"0":{"172":1},"1":{"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1}}],["v8",{"0":{"172":1},"1":{"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1}}],["vr",{"2":{"110":1}}],["var",{"2":{"104":2}}],["values",{"2":{"29":2,"112":2,"141":2,"142":2,"175":1,"180":1}}],["value",{"0":{"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"47":1,"141":1,"145":1,"160":1},"2":{"4":1,"20":2,"29":2,"31":2,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"44":2,"45":2,"47":2,"112":2,"141":5,"142":2,"145":11,"147":6,"160":8,"161":4,"167":4,"171":14,"178":5,"180":2}}],["viewport",{"2":{"104":2,"180":2}}],["visiblerange",{"2":{"112":4,"180":2}}],["visible",{"2":{"29":3,"31":3,"112":2,"141":2,"142":5,"145":6,"147":5,"167":2}}],["v10之后会删除",{"2":{"64":1,"91":1}}],["version",{"0":{"33":1}}],["verticalstraightline",{"2":{"165":1}}],["verticalsegment",{"2":{"165":1}}],["verticalrayline",{"2":{"165":1}}],["vertical",{"2":{"13":1,"171":4}}],["vol",{"2":{"110":1}}],["volumeprecision",{"0":{"121":1},"2":{"71":1,"121":3}}],["volume",{"2":{"22":2,"29":3,"65":2,"103":20,"104":20,"107":2,"112":2,"121":1,"135":2,"136":2,"137":2,"138":2,"141":2,"142":3,"167":2}}],["void",{"2":{"21":2,"22":2,"25":2,"26":4,"29":2,"31":6,"36":2,"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"93":2,"121":2,"122":2,"124":2,"126":2,"128":2,"130":2,"131":2,"132":2,"135":4,"136":4,"137":4,"139":2,"140":4,"141":2,"142":4,"148":2,"149":2,"150":2,"151":2,"152":2,"153":2,"154":2,"155":2,"156":2,"157":4,"158":4,"159":4,"163":2,"167":4}}],["iconfont",{"2":{"171":4}}],["icon",{"2":{"171":8}}],["icons",{"2":{"13":2,"171":4}}],["i",{"2":{"115":10}}],["id",{"0":{"146":1},"2":{"141":5,"145":6,"146":3,"147":5,"148":3,"156":5,"171":8,"178":2}}],["id=",{"2":{"104":2}}],["ideographic",{"2":{"57":2,"63":2}}],["import",{"2":{"103":1}}],["if",{"2":{"96":6,"115":2,"168":2}}],["ignoreevent",{"2":{"31":12,"167":4}}],["index",{"2":{"173":2}}],["indicatorfigure",{"2":{"112":2}}],["indicatorfigurestyle",{"2":{"112":2}}],["indicatorfigureattrs",{"2":{"112":2}}],["indicatorfigureattrscallbackcoordinate",{"2":{"112":2}}],["indicatorstyle",{"2":{"112":8}}],["indicatordata",{"2":{"112":6}}],["indicator",{"0":{"29":1},"2":{"13":2,"29":9,"112":16,"141":6,"142":6,"171":2,"180":3}}],["inside",{"2":{"171":2}}],["install",{"2":{"99":2}}],["includeoverlay",{"0":{"162":1},"2":{"162":3}}],["intl",{"2":{"20":2,"46":2,"167":4}}],["initial",{"2":{"104":2}}],["init",{"0":{"20":1},"2":{"103":4,"104":2,"108":1}}],["isdashed合并成styles",{"2":{"180":1}}],["iszoomenabled",{"0":{"125":1}}],["isscrollenabled",{"0":{"127":1}}],["issues",{"2":{"77":2}}],["isstroke",{"2":{"180":1}}],["isstring",{"0":{"37":1}}],["isstack",{"0":{"141":1},"2":{"4":1,"141":3,"178":2}}],["isboolean",{"0":{"42":1}}],["isfunction",{"0":{"41":1}}],["isobject",{"0":{"40":1}}],["isvalid",{"0":{"39":1}}],["isvalid和klinecharts",{"2":{"7":1}}],["isnumber",{"0":{"38":1}}],["bc1qnwzukszzk5xfk0zs3sr8etzgctgnrtqts43jzp3khe6gm7xazprsp4y6n3",{"2":{"188":1}}],["btc",{"2":{"188":1}}],["blank和klinecharts",{"2":{"173":1}}],["bmp",{"2":{"162":1}}],["bbi",{"2":{"110":1}}],["brar",{"2":{"110":1}}],["bias",{"2":{"110":1}}],["beginpath",{"2":{"96":6}}],["b中的k和b",{"2":{"49":1}}],["b",{"2":{"43":2}}],["bash",{"2":{"101":1}}],["bashyarn",{"2":{"100":1}}],["bashnpm",{"2":{"99":1}}],["baseline",{"2":{"57":3,"63":3,"90":2}}],["basevalue",{"2":{"29":4,"112":2,"141":4,"142":4}}],["backgroundcolor",{"0":{"162":1},"2":{"63":3,"90":2,"162":3,"171":12}}],["barcount",{"0":{"130":1,"131":1},"2":{"130":2,"131":2}}],["barspace",{"2":{"29":8,"112":6,"167":2,"180":1}}],["bars",{"2":{"13":1,"171":2,"175":1}}],["bar变更为indicator",{"2":{"13":1,"175":1}}],["bar",{"2":{"7":6,"112":2,"167":2,"171":2}}],["boll",{"2":{"110":1,"142":4}}],["body",{"2":{"104":4}}],["borderradius",{"2":{"62":3,"63":3,"89":2,"90":2,"171":14}}],["borderdashedvalue",{"2":{"59":3,"61":3,"62":3,"63":3,"86":2,"88":2,"89":2,"90":2,"96":4,"142":4,"171":20}}],["bordersize是边框尺寸",{"2":{"95":1}}],["bordersize",{"2":{"59":3,"61":3,"62":3,"63":3,"86":2,"88":2,"89":2,"90":2,"95":1,"96":4,"142":4,"171":24}}],["borderstyle是边框样式",{"2":{"95":1}}],["borderstyle",{"2":{"13":4,"59":3,"61":3,"62":3,"63":3,"86":2,"88":2,"89":2,"90":2,"95":1,"96":4,"142":4,"171":20}}],["bordercolor是边框颜色",{"2":{"95":1}}],["bordercolor",{"2":{"59":3,"61":3,"62":3,"63":3,"86":2,"88":2,"89":2,"90":2,"95":1,"96":4,"171":16}}],["bottom",{"2":{"57":2,"63":2,"112":4,"118":2,"141":5,"156":5,"167":2}}],["bounding",{"2":{"29":8,"112":8,"167":2,"180":2}}],["boolean",{"2":{"26":2,"29":8,"31":50,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"52":2,"53":2,"54":2,"55":2,"56":2,"57":2,"93":2,"112":8,"124":2,"125":2,"126":2,"127":2,"135":2,"136":2,"141":14,"142":8,"145":76,"147":38,"156":4,"160":2,"161":2,"162":2,"167":42}}],["percentage",{"2":{"171":2}}],["performpoint",{"2":{"167":2}}],["performpointindex",{"2":{"167":2}}],["performeventmovefordrawing",{"2":{"31":3,"167":2}}],["performeventpressedmove",{"2":{"31":3,"167":2}}],["png",{"2":{"162":1}}],["p",{"2":{"115":4}}],["pvt",{"2":{"110":1}}],["psy",{"2":{"110":1}}],["point",{"2":{"171":2}}],["pointer",{"2":{"171":2}}],["points对应的坐标信息",{"2":{"167":2}}],["points",{"2":{"31":3,"145":6,"147":5,"167":4,"178":1}}],["position",{"0":{"117":1,"118":1},"2":{"117":3,"118":3,"171":8,"178":4}}],["position和candle",{"2":{"7":1}}],["polygon",{"0":{"55":1,"61":1,"88":1},"2":{"55":2,"61":3,"84":1,"171":2}}],["paypal",{"0":{"187":1},"2":{"187":1}}],["parallelstraightline",{"2":{"165":1}}],["param",{"2":{"115":8}}],["params",{"2":{"29":4,"31":10,"112":4,"115":4,"141":4,"142":4,"167":2,"180":2}}],["pane",{"2":{"141":3,"142":3,"143":1,"144":1,"145":1,"156":3}}],["paneoptions",{"0":{"141":1},"2":{"141":3,"156":1,"178":2}}],["paneid",{"0":{"117":1,"118":1,"142":1,"143":1,"144":1,"145":1},"2":{"75":1,"112":2,"117":3,"118":3,"142":3,"143":3,"144":3,"145":3,"148":1,"160":3,"161":3,"178":19}}],["paddingbottom",{"2":{"63":3,"90":2,"171":16}}],["paddingbottom变更为yaxis",{"2":{"13":1,"175":1}}],["paddingbottom变更为xaxis",{"2":{"13":1,"175":1}}],["paddingright",{"2":{"63":3,"90":2,"171":16}}],["paddingtop",{"2":{"63":3,"90":2,"171":16}}],["paddingtop变更为yaxis",{"2":{"13":1,"175":1}}],["paddingtop变更为xaxis",{"2":{"13":1,"175":1}}],["paddingleft",{"2":{"63":3,"90":2,"171":16}}],["prev",{"2":{"112":2}}],["precision",{"2":{"29":3,"44":2,"112":2,"141":2,"142":5,"167":2}}],["promise",{"2":{"29":2,"112":2,"141":2,"142":2}}],["pricechannelline",{"2":{"165":1}}],["priceline",{"2":{"165":1}}],["priceprecision",{"0":{"121":1},"2":{"71":1,"121":3}}],["price",{"2":{"29":3,"112":2,"121":1,"141":2,"142":5,"167":2}}],["pricemark",{"2":{"13":1,"171":2}}],["rgba",{"2":{"171":34}}],["radius",{"2":{"168":4,"171":2}}],["rayline",{"2":{"165":1}}],["root",{"2":{"117":4,"118":2}}],["roc",{"2":{"110":1}}],["rsi",{"2":{"110":1}}],["right",{"2":{"57":2,"63":2,"112":4,"118":2,"167":2,"171":8}}],["rigisteroverlay",{"2":{"13":1}}],["r",{"2":{"52":3,"53":3,"58":3,"59":3,"85":2,"86":2,"168":2}}],["reverse",{"2":{"171":2}}],["reference",{"2":{"167":2}}],["resize",{"0":{"163":1}}],["realdataindex",{"2":{"112":2}}],["realx",{"2":{"112":2}}],["realto",{"2":{"112":4,"134":2}}],["realfrom",{"2":{"112":4,"134":2}}],["return",{"2":{"96":2,"115":8,"145":2,"147":2,"168":4}}],["regeneratefigures",{"2":{"29":3,"112":2,"115":2,"141":2,"142":5}}],["registeroverlay",{"0":{"31":1},"2":{"166":1}}],["registerindicator全局添加",{"2":{"111":1}}],["registerindicator",{"0":{"29":1}}],["registerfigure全局添加",{"2":{"92":1}}],["registerfigure",{"0":{"26":1}}],["registerstyles注册的样式名",{"2":{"20":1}}],["registerstyles",{"0":{"25":1},"2":{"13":1}}],["registerlocale",{"0":{"22":1},"2":{"13":1,"107":3}}],["removetechnicalindicator",{"2":{"178":1}}],["removetag",{"2":{"13":1,"178":1}}],["remove",{"0":{"148":1},"2":{"148":2}}],["removeindicator",{"0":{"144":1}}],["removehtml",{"2":{"13":1,"178":1}}],["removeannotation",{"2":{"13":1,"178":1}}],["removeoverlay",{"0":{"148":1},"2":{"13":1}}],["recttext",{"0":{"64":1,"91":1},"2":{"84":1,"171":2}}],["rect",{"0":{"56":1,"62":1,"89":1},"2":{"7":2,"56":3,"62":3,"84":1,"112":2,"171":8}}],["滚动到指定时间戳",{"2":{"152":1}}],["滚动到指定的位置",{"2":{"151":1}}],["滚动到最初的位置",{"2":{"150":1}}],["滚动一定的距离",{"2":{"149":1}}],["滚动",{"2":{"13":1}}],["新特性",{"2":{"13":1}}],["新增candle",{"2":{"13":1}}],["新增实例方法",{"2":{"13":1}}],["新增基图表方法registerfigure",{"2":{"13":1}}],["新增y轴方向缩放",{"2":{"13":1}}],["新增figurekey和figureindex",{"2":{"8":1}}],["新增options",{"2":{"4":1}}],["新增图表api",{"2":{"4":1}}],["新增属性modesensitivity",{"2":{"2":1}}],["trc20",{"2":{"188":1}}],["true",{"2":{"141":4,"142":4,"145":2,"147":2,"156":4,"171":54}}],["trix",{"2":{"110":1}}],["thjptqmfgavm12ke1jzc5mlxiapp6qxmci",{"2":{"188":1}}],["theme",{"2":{"104":2}}],["thousandsseparator",{"2":{"20":3,"167":2}}],["t",{"2":{"78":1}}],["turnover",{"2":{"65":2,"135":2,"136":2,"137":2,"138":2}}],["targetcoordinate",{"0":{"50":1,"51":1},"2":{"50":2,"51":2}}],["target",{"0":{"35":1,"36":1},"2":{"35":2,"36":2}}],["tagid",{"2":{"178":1}}],["tag合并成overlay",{"2":{"174":1}}],["tag",{"2":{"13":1,"175":1,"178":1}}],["to",{"2":{"112":4,"134":2}}],["top",{"2":{"57":2,"63":2,"112":4,"118":2,"141":5,"156":5,"167":2}}],["totalstep",{"2":{"31":3,"167":2,"168":2}}],["tooltip",{"2":{"1":1,"2":1,"7":2,"13":2,"171":4,"175":3}}],["type对应的图形的样式",{"2":{"167":2}}],["type对应的图形的属性",{"2":{"167":2}}],["type=",{"2":{"101":2}}],["type",{"0":{"157":1,"158":1,"159":1,"162":1},"2":{"20":2,"29":4,"31":12,"72":2,"112":2,"114":4,"115":6,"141":4,"142":4,"157":3,"158":3,"159":3,"162":3,"167":4,"168":2,"171":4,"178":2}}],["typescript开发",{"2":{"183":1}}],["typescriptklinecharts",{"2":{"107":1}}],["typescriptnew",{"2":{"85":1,"86":1,"87":1,"88":1,"89":1,"90":1}}],["typescript",{"2":{"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"65":1,"93":1,"112":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"167":1}}],["typescript重构",{"2":{"13":1}}],["tickline",{"2":{"171":4}}],["ticktext",{"2":{"13":8,"171":4,"175":8}}],["title和value可以是字符串或者对象",{"2":{"171":2}}],["title",{"2":{"29":6,"104":4,"112":4,"114":4,"115":6,"141":6,"142":6,"171":12,"180":2}}],["time",{"2":{"22":2,"107":2,"171":4}}],["timestamp为第一条数据的时间戳",{"2":{"140":1}}],["timestamp",{"0":{"46":1,"152":1,"155":1},"2":{"20":2,"31":2,"46":2,"65":2,"103":20,"104":20,"135":2,"136":2,"137":2,"138":2,"140":2,"145":8,"147":6,"152":3,"155":3,"160":5,"161":4,"167":4}}],["timezone",{"0":{"122":1},"2":{"20":3,"122":3}}],["template",{"2":{"177":4}}],["telegram",{"0":{"78":1}}],["technicalindicator",{"2":{"13":4,"175":3,"180":1}}],["textweight",{"2":{"171":4}}],["textfamily",{"2":{"171":4}}],["textsize",{"2":{"171":4}}],["textoffset",{"2":{"171":4}}],["text",{"0":{"48":1,"57":1,"63":1,"90":1},"2":{"13":4,"29":4,"48":2,"57":6,"63":5,"64":2,"84":1,"90":2,"101":2,"112":4,"141":4,"142":4,"171":20}}],["和convertfrompixel",{"2":{"178":1}}],["和unsubscribeaction",{"2":{"178":1}}],["和updatedata",{"2":{"65":1}}],["和getheight",{"2":{"178":1}}],["和配置项",{"2":{"114":1}}],["和",{"2":{"29":1,"31":1,"65":2,"117":1,"142":1,"147":1,"158":1,"159":1}}],["和基础类型deeppartial",{"2":{"8":1}}],["和setpaneoptions",{"2":{"4":1}}],["入参是空数组时不刷新问题",{"2":{"8":1}}],["日志输出",{"2":{"7":1}}],["fefefe",{"2":{"171":2}}],["f2f3f5",{"2":{"171":2}}],["fontfamily",{"2":{"171":4}}],["follow",{"2":{"171":4}}],["foreach",{"2":{"115":2}}],["formatthousands",{"0":{"47":1}}],["format格式",{"2":{"46":1}}],["formatprecision",{"0":{"44":1}}],["formatvalue",{"0":{"43":1},"2":{"43":1}}],["format",{"0":{"46":1},"2":{"20":2,"46":2}}],["formatdate",{"0":{"46":1},"2":{"20":3}}],["formatbignumber",{"0":{"45":1},"2":{"7":1,"20":3}}],["ffffff",{"2":{"162":1,"171":10}}],["ff9600",{"2":{"142":2,"171":2}}],["f00",{"2":{"145":2,"147":2}}],["false",{"2":{"141":2,"142":2,"145":10,"147":10,"171":20}}],["family",{"0":{"48":1},"2":{"48":2,"57":3,"63":3,"90":2,"171":20}}],["function",{"2":{"104":2,"145":28,"147":28}}],["from",{"2":{"103":2,"112":4,"134":2,"173":1}}],["fixed",{"2":{"171":4}}],["fibonacciline",{"2":{"165":1}}],["finder",{"0":{"160":1,"161":1},"2":{"160":3,"161":3,"178":2}}],["fillstyle",{"2":{"96":2}}],["fill又有边框又有背景",{"2":{"95":1}}],["fill只有背景",{"2":{"95":1}}],["fill`",{"2":{"86":2,"88":2,"89":2,"90":2}}],["fill",{"2":{"59":4,"61":4,"62":4,"63":4,"86":4,"88":4,"89":4,"90":4,"95":2,"96":10,"141":8,"142":12,"168":2,"171":62}}],["figurenew",{"2":{"85":1,"86":1,"87":1,"88":1,"89":1,"90":1}}],["figures",{"2":{"29":3,"112":2,"114":3,"115":6,"141":2,"142":5}}],["figure",{"0":{"26":1},"2":{"26":3,"28":2,"83":4,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1}}],["f92855",{"2":{"6":1,"171":8}}],["d9d9d9",{"2":{"171":12}}],["dragenbaled",{"2":{"141":1,"156":1}}],["dragenabled",{"2":{"141":4,"156":4}}],["drawtext",{"0":{"63":1},"2":{"64":2}}],["drawrecttext",{"0":{"64":1}}],["drawrect",{"0":{"62":1}}],["drawpolygon",{"0":{"61":1}}],["drawline",{"0":{"60":1}}],["drawcircle",{"0":{"59":1}}],["drawarc",{"0":{"58":1}}],["draw",{"2":{"26":3,"29":3,"83":2,"93":2,"96":2,"112":2,"141":2,"142":5}}],["d",{"2":{"112":2}}],["dma",{"2":{"110":1}}],["dmi",{"2":{"110":1}}],["docs",{"2":{"167":2}}],["doctype",{"2":{"104":2}}],["domid",{"2":{"103":2}}],["down",{"2":{"171":2}}],["downcolor",{"2":{"142":4,"171":10}}],["downwickcolor",{"2":{"7":1,"171":2}}],["downbordercolor",{"2":{"7":1,"171":2}}],["div",{"2":{"104":4}}],["diamond",{"2":{"96":2}}],["distance",{"0":{"128":1,"149":1},"2":{"128":2,"149":3,"150":2,"178":1}}],["dist",{"2":{"101":2}}],["discord",{"0":{"79":1},"2":{"79":1}}],["discussions",{"2":{"77":2}}],["dispose",{"0":{"21":1}}],["dashvalue更改为dashedvalue",{"2":{"175":1}}],["dashed是虚线",{"2":{"95":1}}],["dashedvalue是虚线值",{"2":{"95":1}}],["dashedvalue",{"2":{"58":3,"60":3,"85":2,"87":2,"95":1,"142":2,"145":2,"147":2,"171":24}}],["dashed",{"2":{"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"96":2,"141":4,"142":4,"171":42}}],["datasource",{"2":{"180":2}}],["dataindex",{"0":{"151":1,"154":1},"2":{"31":2,"112":2,"145":4,"147":2,"151":3,"154":3,"160":5,"161":4,"167":4}}],["datalist",{"0":{"135":1,"136":1},"2":{"29":2,"65":2,"112":2,"135":3,"136":3,"141":2,"142":2}}],["data",{"0":{"137":1,"157":1},"2":{"29":4,"43":2,"65":1,"112":2,"137":3,"141":4,"142":4,"157":3,"158":2,"159":2}}],["datetimeformat",{"0":{"46":1},"2":{"20":4,"46":4,"167":6}}],["dd",{"2":{"46":1}}],["dcs",{"0":{"21":1},"2":{"21":3}}],["ds",{"0":{"20":1},"2":{"20":3,"169":1}}],["developer",{"2":{"167":2}}],["description",{"2":{"104":2}}],["defaultvalue",{"0":{"43":1},"2":{"43":2,"171":4}}],["defaultstyles",{"2":{"29":4,"112":6,"141":4,"142":4,"167":2,"180":3}}],["defaultzlevel和zlevel",{"2":{"3":1}}],["deeprequired",{"2":{"8":1}}],["ue900",{"2":{"171":4}}],["unsubscribeaction",{"0":{"159":1}}],["unpkg或者其它的",{"2":{"101":1}}],["utf",{"2":{"104":2}}],["utils",{"0":{"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"1":{"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"2":{"4":1,"7":2,"179":1}}],["usdt",{"2":{"188":3}}],["us和zh",{"2":{"106":1}}],["us",{"2":{"20":1,"22":1,"106":1}}],["up",{"2":{"171":2}}],["upcolor",{"2":{"142":4,"171":10}}],["updatedata",{"0":{"137":1}}],["upwickcolor",{"2":{"7":1,"171":2}}],["upbordercolor",{"2":{"7":1,"171":2}}],["activeradius",{"2":{"171":2}}],["activebordersize",{"2":{"171":2}}],["activebordercolor",{"2":{"171":2}}],["activebackgroundcolor",{"2":{"171":6}}],["activecolor",{"2":{"171":2}}],["axisline",{"2":{"171":4}}],["axisoptions",{"2":{"4":1,"141":5,"156":5}}],["auto",{"2":{"171":4}}],["ao",{"2":{"110":1}}],["absoluteyaxis变更为finder",{"2":{"178":1}}],["absolute",{"2":{"160":3,"161":3,"178":1}}],["abs",{"2":{"96":4,"168":4}}],["avp",{"2":{"65":2,"110":1}}],["always",{"2":{"171":8}}],["alphabetic",{"2":{"57":2,"63":2}}],["align",{"2":{"57":3,"63":3,"90":2}}],["area",{"2":{"72":2,"171":4}}],["arc",{"0":{"52":1,"58":1,"85":1},"2":{"52":3,"58":3,"83":2,"84":1,"171":2}}],["array",{"2":{"29":6,"31":8,"51":2,"54":2,"55":2,"59":2,"60":2,"61":4,"62":2,"87":2,"88":2,"112":10,"135":2,"136":2,"138":2,"141":6,"142":6,"145":6,"147":2,"160":4,"161":4,"167":8}}],["a",{"2":{"43":2,"171":4}}],["animationduration",{"0":{"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1},"2":{"149":3,"150":3,"151":3,"152":3,"153":3,"154":3,"155":3}}],["any",{"2":{"26":4,"29":6,"31":38,"35":4,"37":2,"38":2,"39":2,"40":2,"41":2,"42":2,"43":6,"57":2,"63":2,"90":2,"93":6,"112":16,"141":6,"142":6,"145":4,"147":2,"157":2,"158":2,"159":2,"167":14}}],["annotation",{"2":{"13":1,"174":1,"175":1,"178":1}}],["attrs",{"2":{"26":4,"29":4,"31":12,"63":1,"83":4,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"93":4,"96":8,"112":2,"167":4,"168":2}}],["asia",{"2":{"20":1,"122":1}}],["add",{"2":{"100":2}}],["addshapetemplate",{"2":{"13":1,"177":1}}],["addshapetemplate变更为registeroverlay",{"2":{"13":1}}],["addtechnicalindicatortemplate",{"2":{"13":1,"177":1}}],["addtechnicalindicatortemplate变更为registerindicator",{"2":{"13":1}}],["api调整",{"0":{"176":1},"1":{"177":1,"178":1,"179":1}}],["api",{"2":{"13":3,"65":1}}],["applymoredata",{"0":{"136":1},"2":{"65":1}}],["applymoredata和updatedata新增成功回调入参callback",{"2":{"7":1}}],["applynewdata",{"0":{"135":1},"2":{"8":1,"65":1,"103":2,"104":2}}],["修复typescript引入问题",{"2":{"12":1}}],["修复内置基础图形arc不生效问题",{"2":{"10":1}}],["修复内置基础图形line触发事件不准确问题",{"2":{"9":1}}],["修复内置覆盖物simpleannotation和simpletag绘制完成后第一次触发事件问题",{"2":{"9":1}}],["修复无数据时y轴上十字光标文字不显示问题",{"2":{"8":1}}],["修复图表api",{"2":{"8":1}}],["修复基础图形line事件检查可能导致错误问题",{"2":{"5":1}}],["修复窗口id命名拼写错误",{"2":{"2":1}}],["omni",{"2":{"188":1}}],["offsetright",{"2":{"171":2}}],["offsettop",{"2":{"171":2}}],["offsetleft",{"2":{"171":2}}],["offset",{"2":{"171":4}}],["offsetbottom",{"2":{"7":1,"171":2}}],["ohlc",{"2":{"171":4}}],["org",{"2":{"167":2}}],["obv",{"2":{"110":1}}],["objects",{"2":{"167":2}}],["object",{"2":{"20":2,"25":2,"26":4,"29":36,"31":40,"36":4,"119":2,"120":2,"141":24,"142":24,"143":2,"144":2,"145":60,"146":2,"147":30}}],["o",{"2":{"43":2}}],["onpanedrag",{"2":{"158":3,"159":3}}],["onpressedmoveend",{"2":{"31":3,"145":6,"147":5,"167":2}}],["onpressedmovestart",{"2":{"31":3,"145":6,"147":5,"167":2}}],["onpressedmoving",{"2":{"31":3,"145":6,"147":5,"167":2}}],["ontooltipiconclick",{"2":{"158":3,"159":3}}],["onvisiblerangechange和onpanedrag",{"2":{"178":1}}],["onvisiblerangechange",{"2":{"158":3,"159":3}}],["onscroll",{"2":{"158":3,"159":3,"178":1}}],["onselected",{"2":{"31":3,"145":6,"147":5,"167":2}}],["onzoom",{"2":{"158":3,"159":3}}],["oncandlebarclick",{"2":{"158":3,"159":3}}],["oncrosshairchange",{"2":{"157":3,"158":3,"159":3,"178":1}}],["onclick",{"2":{"31":3,"145":6,"147":5,"167":2}}],["onload",{"2":{"104":2}}],["onremoved",{"2":{"31":3,"145":6,"147":5,"167":2}}],["onrightclick",{"2":{"31":3,"145":6,"147":5,"167":2}}],["onmouseleave",{"2":{"31":3,"145":6,"147":5,"167":2}}],["onmouseenter",{"2":{"31":3,"145":6,"147":5,"167":2}}],["ondeselected",{"2":{"31":3,"145":6,"147":5,"167":2}}],["ondoubleclick",{"2":{"31":3,"145":6,"147":5,"167":2}}],["ondrawend",{"2":{"31":3,"145":6,"147":5,"167":2}}],["ondrawing",{"2":{"31":3,"145":6,"147":5,"167":2}}],["ondrawstart",{"2":{"31":3,"145":6,"147":5,"167":2}}],["open",{"2":{"22":2,"65":2,"103":20,"104":20,"107":2,"135":2,"136":2,"137":2,"138":2,"171":4}}],["options新增属性gap",{"2":{"13":1}}],["options",{"0":{"20":1,"156":1},"2":{"4":2,"13":1,"20":3,"108":1,"156":2,"169":1,"178":1,"180":1}}],["overridetechnicalindicator",{"2":{"178":1}}],["override",{"0":{"142":1,"147":1},"2":{"142":3,"147":3,"178":3}}],["overrideindicator",{"0":{"142":1},"2":{"142":2}}],["overrideoverlay",{"0":{"147":1},"2":{"13":1,"147":2}}],["overlayevent",{"2":{"167":28}}],["overlayperformeventparams",{"2":{"167":2}}],["overlaycreatefigurescallback",{"2":{"167":4}}],["overlayconstructor",{"2":{"23":2}}],["overlaystyle",{"2":{"167":4}}],["overlayfigureignoreeventtype",{"2":{"31":12,"167":4}}],["overlayfigure中的attrs类型声明",{"2":{"2":1}}],["overlay",{"0":{"31":1},"2":{"31":3,"167":4,"171":2}}],["overlay新增属性paneid",{"2":{"3":1}}],["overlay新增事件ondoubleclick",{"2":{"2":1}}],["3dsxsbtbmwxumaaqmysvpgedbp9rghpnfq",{"2":{"188":1}}],["30",{"2":{"103":2,"104":2,"110":3,"141":2}}],["35",{"2":{"103":2,"104":2,"171":4}}],["31",{"2":{"103":2,"104":2}}],["34",{"2":{"103":2,"104":2,"110":1}}],["33",{"2":{"103":2,"104":2,"171":12}}],["39",{"2":{"29":12,"31":12,"57":44,"58":8,"59":20,"60":8,"61":20,"62":20,"63":64,"65":8,"72":4,"83":8,"85":8,"86":20,"87":8,"88":20,"89":20,"90":20,"96":38,"103":4,"104":4,"107":28,"112":20,"114":40,"115":36,"117":12,"118":12,"141":60,"142":108,"145":52,"147":40,"156":4,"157":4,"158":28,"159":28,"167":24,"168":20,"171":1004}}],["3",{"0":{"4":1,"8":1},"2":{"110":3,"156":2,"168":2,"171":6}}],["cb",{"0":{"140":1},"2":{"140":3}}],["cleardata",{"0":{"139":1}}],["clone",{"0":{"35":1}}],["closesums",{"2":{"115":10}}],["closepath",{"2":{"96":4}}],["close",{"2":{"22":2,"65":2,"103":20,"104":20,"107":2,"115":8,"135":2,"136":2,"137":2,"138":2,"171":6}}],["cci",{"2":{"110":1}}],["cn",{"2":{"167":2}}],["cn两种语言",{"2":{"106":1}}],["cn和en",{"2":{"20":1,"22":1}}],["cdn",{"2":{"101":2}}],["currentstep",{"2":{"167":2}}],["current",{"2":{"112":2}}],["currentcolor",{"2":{"96":4}}],["custom",{"2":{"171":2,"175":1}}],["customapi",{"2":{"20":3}}],["custom支持字符串模版",{"2":{"2":1}}],["custom新增内置涨跌幅支持",{"2":{"1":1}}],["center",{"2":{"57":2,"63":2}}],["c",{"2":{"43":2}}],["convertfrompixel",{"0":{"161":1}}],["converttopixel",{"0":{"160":1},"2":{"178":1}}],["console",{"2":{"145":28,"147":28}}],["const",{"2":{"83":2,"96":10,"103":2,"115":6,"168":6}}],["content=",{"2":{"104":8}}],["com",{"2":{"77":2}}],["color是颜色",{"2":{"95":1}}],["color",{"2":{"29":4,"57":3,"58":3,"59":3,"60":3,"61":3,"62":3,"63":3,"85":2,"86":2,"87":2,"88":2,"89":2,"90":2,"95":1,"96":4,"104":2,"112":4,"141":8,"142":10,"145":2,"147":2,"171":76,"180":2}}],["coordinates",{"2":{"54":2,"55":2,"60":2,"61":2,"87":2,"88":2,"167":2,"168":14}}],["coordinate2",{"0":{"49":1,"50":1},"2":{"49":2,"50":2}}],["coordinate1",{"0":{"49":1,"50":1},"2":{"49":2,"50":2}}],["coordinate",{"0":{"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"153":1,"161":1},"2":{"26":4,"29":4,"52":3,"53":3,"54":2,"55":2,"56":3,"57":3,"93":2,"96":6,"112":2,"153":3,"161":3,"178":1}}],["checkcoordinateontext",{"0":{"57":1}}],["checkcoordinateonrect",{"0":{"56":1}}],["checkcoordinateonpolygon",{"0":{"55":1}}],["checkcoordinateonline",{"0":{"54":1}}],["checkcoordinateoncircle",{"0":{"53":1}}],["checkcoordinateonarc",{"0":{"52":1}}],["checkeventon",{"2":{"26":3,"93":2,"96":2}}],["charset=",{"2":{"104":2}}],["chart",{"2":{"20":2,"21":2,"72":1,"103":4,"104":8,"141":1,"142":1,"145":1,"147":1,"156":1}}],["change",{"2":{"14":1,"15":1,"16":1}}],["ctx",{"0":{"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1},"2":{"26":2,"58":3,"59":3,"60":3,"61":3,"62":3,"63":3,"64":2,"83":4,"93":2,"96":42,"112":2,"180":2}}],["circle",{"0":{"53":1,"59":1,"86":1},"2":{"53":3,"59":3,"83":2,"84":1,"168":4,"171":2}}],["circles",{"2":{"13":1,"142":2,"171":2,"175":1}}],["circle变更为indicator",{"2":{"13":1,"175":1}}],["cross",{"2":{"171":4}}],["crosshair",{"2":{"13":2,"112":2,"171":2,"180":2}}],["cr",{"2":{"110":1}}],["createyaxisfigures",{"2":{"31":3,"167":2}}],["createxaxisfigures",{"2":{"31":3,"167":2}}],["createpointfigures",{"2":{"31":3,"167":2,"168":2}}],["createtechnicalindicator",{"2":{"178":1}}],["createtooltipdatasource",{"2":{"29":3,"112":2,"141":2,"142":3}}],["createtag",{"2":{"13":1,"178":1}}],["createannotation",{"2":{"13":1,"178":1}}],["createindicator",{"0":{"141":1},"2":{"4":1,"141":2}}],["createoverlay",{"0":{"145":1},"2":{"3":1,"13":1,"145":2}}],["callback",{"0":{"135":1,"136":1,"137":1,"141":1,"142":1,"158":1,"159":1},"2":{"135":3,"136":3,"137":3,"141":3,"142":3,"158":3,"159":3,"178":2}}],["calcparms",{"2":{"29":2,"112":2,"141":2,"142":2}}],["calcparamstext",{"2":{"29":2,"112":2,"141":2,"142":2,"180":1}}],["calcparams",{"2":{"29":3,"112":2,"114":3,"115":6,"141":2,"142":5}}],["calc",{"2":{"29":3,"112":2,"115":2,"141":2,"142":5}}],["calctextwidth",{"0":{"48":1},"2":{"4":1}}],["canvastextbaseline",{"2":{"90":2}}],["canvastextalign",{"2":{"90":2}}],["canvas",{"2":{"67":2}}],["canvasgradient",{"2":{"59":2,"61":2,"62":2,"90":2}}],["canvasrenderingcontext2d",{"2":{"26":2,"58":2,"59":2,"60":2,"61":2,"62":2,"63":2,"93":2,"112":2}}],["candle",{"2":{"7":6,"13":1,"72":2,"141":1,"142":3,"143":1,"144":1,"145":1,"156":1,"171":12,"175":1}}],["22",{"2":{"171":8}}],["2196f3",{"2":{"171":4}}],["26a69a",{"2":{"142":4}}],["26a69a变更为",{"2":{"6":1}}],["26",{"2":{"110":3}}],["28",{"2":{"103":6,"104":6}}],["20",{"2":{"103":6,"104":6,"110":6,"142":2}}],["204",{"2":{"103":2,"104":2}}],["2023",{"2":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1}}],["230",{"2":{"171":6}}],["23",{"2":{"11":1}}],["249",{"2":{"171":6}}],["243",{"2":{"171":12}}],["2432435",{"2":{"142":2}}],["24",{"2":{"7":1,"110":4}}],["2dc08e",{"2":{"6":1,"171":8}}],["27",{"2":{"6":1}}],["2",{"0":{"5":2,"6":1,"7":1,"9":1},"2":{"96":22,"110":3,"141":2,"142":12,"145":6,"147":6,"156":2,"168":2,"171":98}}],["255",{"2":{"171":8}}],["25",{"2":{"3":1,"171":4}}],["45",{"2":{"171":6}}],["40",{"2":{"110":1,"171":6}}],["42",{"2":{"103":2,"104":2}}],["4986",{"2":{"103":2,"104":2}}],["4980",{"2":{"103":2,"104":2}}],["4988",{"2":{"103":2,"104":2}}],["4985",{"2":{"103":2,"104":2}}],["4981",{"2":{"103":4,"104":4}}],["4964",{"2":{"103":6,"104":6}}],["4961",{"2":{"103":10,"104":10}}],["4963",{"2":{"103":2,"104":2}}],["4962",{"2":{"103":2,"104":2}}],["4968",{"2":{"103":4,"104":4}}],["4966",{"2":{"103":4,"104":4}}],["4975",{"2":{"103":2,"104":2}}],["4974",{"2":{"103":2,"104":2}}],["4973",{"2":{"103":4,"104":4}}],["4971",{"2":{"103":2,"104":2}}],["4979",{"2":{"103":6,"104":6}}],["4972",{"2":{"103":6,"104":6}}],["4970",{"2":{"103":2,"104":2}}],["4977",{"2":{"103":12,"104":12}}],["4976",{"2":{"103":4,"104":4}}],["4",{"0":{"3":1,"18":1},"2":{"18":1,"142":2,"171":62}}],["优化事件处理",{"2":{"11":1}}],["优化渲染更新",{"2":{"10":1}}],["优化覆盖物图形事件忽略",{"2":{"9":1}}],["优化覆盖物事件回调参数",{"2":{"8":1}}],["优化面积图显示",{"2":{"8":1}}],["优化开发环境下",{"2":{"7":1}}],["优化api",{"2":{"7":1}}],["优化typescript覆盖物样式类型",{"2":{"8":1}}],["优化typescript声明",{"2":{"6":1}}],["优化typescript下",{"2":{"2":1}}],["优化默认样式",{"2":{"6":1}}],["优化类型检查",{"2":{"5":1}}],["优化内部id生成",{"2":{"4":1}}],["优化内部获取屏幕像素比",{"2":{"4":1}}],["优化bar宽度比例",{"2":{"4":1}}],["优化蜡烛柱显示",{"2":{"3":1}}],["优化分割线事件响应灵敏度",{"2":{"2":1}}],["优化移动端阻尼滚动掉帧问题",{"2":{"2":1}}],["优化基础图形rect事件响应",{"2":{"1":1}}],["0xd2c3911654db861e0a2e17415e11a209c1fc3594",{"2":{"188":2}}],["01c5c4",{"2":{"171":2}}],["01",{"2":{"171":2}}],["000000",{"2":{"104":2}}],["09",{"2":{"103":2,"104":2}}],["02",{"2":{"11":1,"12":1,"13":1,"103":2,"104":2}}],["03",{"2":{"10":1}}],["04",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1}}],["05",{"2":{"3":1,"4":1,"5":1}}],["06",{"2":{"2":1,"103":2,"104":2}}],["0",{"0":{"2":1,"3":1,"4":1,"7":1,"11":1,"12":1,"13":2},"2":{"115":2,"141":4,"145":2,"147":2,"156":4,"168":6,"171":42}}],["08",{"2":{"1":1}}],["↩️",{"2":{"1":1}}],["🛡",{"2":{"183":1}}],["📱",{"2":{"183":1}}],["💪",{"2":{"183":1}}],["📦",{"2":{"183":1}}],["📃",{"0":{"181":1},"1":{"182":1,"183":1}}],["🚀",{"0":{"97":1},"1":{"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1},"2":{"183":1}}],["💬",{"0":{"76":1},"1":{"77":1,"78":1,"79":1,"80":1,"81":1}}],["🙋",{"0":{"69":1},"1":{"70":1,"71":1,"72":1,"73":1,"74":1,"75":1}}],["📚",{"0":{"65":1}}],["🗑",{"2":{"13":1}}],["👉",{"2":{"13":1}}],["🛠️",{"0":{"172":1},"1":{"173":1,"174":1,"175":1,"176":1,"177":1,"178":1,"179":1,"180":1}}],["🛠",{"2":{"13":1}}],["🐞",{"2":{"2":2,"5":1,"8":2,"9":2,"10":1,"12":1}}],["💄",{"2":{"1":1,"2":2,"3":1,"4":3,"5":1,"6":2,"7":2,"8":3,"9":1,"10":1,"11":1}}],["📠",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1}}],["119",{"2":{"171":8}}],["18987",{"2":{"145":2,"147":2}}],["184",{"2":{"103":2,"104":2}}],["192",{"2":{"171":6}}],["191",{"2":{"103":2,"104":2}}],["19",{"2":{"103":2,"104":2}}],["197",{"2":{"103":2,"104":2}}],["194",{"2":{"103":2,"104":2}}],["12",{"2":{"103":2,"104":2,"110":9,"171":24}}],["1677ff",{"2":{"171":22}}],["16098",{"2":{"145":2,"147":2}}],["1614171202000",{"2":{"145":2,"147":2}}],["1614171282000",{"2":{"145":2,"147":2}}],["16",{"2":{"13":1,"103":2,"104":2}}],["17",{"2":{"12":1}}],["100",{"2":{"141":2,"156":2}}],["1000000转换为1m等",{"2":{"20":1,"29":1,"45":1,"142":1}}],["105",{"2":{"103":2,"104":2}}],["10",{"2":{"9":1,"110":7,"114":2,"115":2,"171":12}}],["135",{"2":{"103":2,"104":2}}],["13",{"2":{"4":1,"110":1}}],["150",{"2":{"171":12}}],["1587660540000",{"2":{"103":2,"104":2}}],["1587660480000",{"2":{"103":2,"104":2}}],["1587660420000",{"2":{"103":2,"104":2}}],["1587660360000",{"2":{"103":2,"104":2}}],["1587660300000",{"2":{"103":2,"104":2}}],["1587660240000",{"2":{"103":2,"104":2}}],["1587660180000",{"2":{"103":2,"104":2}}],["1587660120000",{"2":{"103":2,"104":2}}],["1587660060000",{"2":{"103":2,"104":2}}],["1587660000000",{"2":{"103":2,"104":2}}],["15",{"2":{"2":1,"8":1,"171":2}}],["142",{"2":{"171":6}}],["14",{"2":{"1":1,"10":1,"103":2,"104":2,"110":3}}],["1",{"0":{"1":1,"6":1,"8":1,"9":1,"10":2,"11":1,"12":1},"2":{"43":1,"96":2,"115":6,"141":4,"142":6,"145":2,"147":2,"156":4,"168":4,"171":76}}],["50",{"2":{"110":1}}],["55",{"2":{"103":2,"104":2}}],["56",{"2":{"103":2,"104":2}}],["53",{"2":{"103":4,"104":4}}],["5",{"0":{"1":1,"2":1,"17":1},"2":{"17":1,"110":3,"114":2,"115":2,"142":4,"171":8}}],["96",{"2":{"103":2,"104":2}}],["935ebd",{"2":{"171":2}}],["93",{"2":{"103":6,"104":6}}],["94",{"2":{"103":2,"104":2}}],["99",{"2":{"103":4,"104":4}}],["9",{"0":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1},"2":{"110":3,"172":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/assets/chunks/StyleExplain.febf53f8.js b/assets/chunks/StyleExplain.cbaaf100.js similarity index 87% rename from assets/chunks/StyleExplain.febf53f8.js rename to assets/chunks/StyleExplain.cbaaf100.js index b4a9750f4..c15f5de6a 100644 --- a/assets/chunks/StyleExplain.febf53f8.js +++ b/assets/chunks/StyleExplain.cbaaf100.js @@ -1 +1 @@ -import{_ as o,h as d,o as a,c as t,k as s,L as i,M as p,t as c,a as _,p as x,m as h}from"./framework.6909765d.js";const u="/images/style.jpg";const y=e=>(x("data-v-214cdbcb"),e=e(),h(),e),k=y(()=>s("img",{src:u},null,-1)),m={class:"style-explain"},g={class:"style-explain-item"},v={__name:"StyleExplain",setup(e){const l=d(["grid.horizontal","grid.vertical","candle.bar","candle.candle.priceMark.last.line","candle.candle.priceMark.last.text","candle.candle.priceMark.high","candle.candle.priceMark.low","candle.candle.tooltip","indicator.ohlc","indicator.lastValueMark","indicator.tooltip","xAxis.axisLine","xAxis.tickLine","xAxis.tickText","yAxis.axisLine","yAxis.tickLine","yAxis.tickText","separator","crosshair.horizontal.line","crosshair.horizontal.text","crosshair.vertical.line","crosshair.vertical.text","overlay"]);return(S,b)=>(a(),t(i,null,[k,s("div",m,[(a(!0),t(i,null,p(l.value,(r,n)=>(a(),t("span",g,[s("strong",null,c(n+1),1),_(" "+c(r),1)]))),256))])],64))}},L=o(v,[["__scopeId","data-v-214cdbcb"]]);export{L as S}; +import{_ as o,h as d,o as a,c as t,k as s,F as i,D as p,t as c,a as _,p as x,m as h}from"./framework.385ac4c3.js";const u="/images/style.jpg";const y=e=>(x("data-v-214cdbcb"),e=e(),h(),e),k=y(()=>s("img",{src:u},null,-1)),m={class:"style-explain"},g={class:"style-explain-item"},v={__name:"StyleExplain",setup(e){const l=d(["grid.horizontal","grid.vertical","candle.bar","candle.candle.priceMark.last.line","candle.candle.priceMark.last.text","candle.candle.priceMark.high","candle.candle.priceMark.low","candle.candle.tooltip","indicator.ohlc","indicator.lastValueMark","indicator.tooltip","xAxis.axisLine","xAxis.tickLine","xAxis.tickText","yAxis.axisLine","yAxis.tickLine","yAxis.tickText","separator","crosshair.horizontal.line","crosshair.horizontal.text","crosshair.vertical.line","crosshair.vertical.text","overlay"]);return(S,b)=>(a(),t(i,null,[k,s("div",m,[(a(!0),t(i,null,p(l.value,(r,n)=>(a(),t("span",g,[s("strong",null,c(n+1),1),_(" "+c(r),1)]))),256))])],64))}},L=o(v,[["__scopeId","data-v-214cdbcb"]]);export{L as S}; diff --git a/assets/chunks/VPLocalSearchBox.236648bd.js b/assets/chunks/VPLocalSearchBox.236648bd.js deleted file mode 100644 index e49fe2848..000000000 --- a/assets/chunks/VPLocalSearchBox.236648bd.js +++ /dev/null @@ -1,7 +0,0 @@ -import{$ as Ve,h as ie,z as $e,d as Dt,D as de,g as _e,A as Ot,j as De,E as he,aj as Rt,ak as Mt,o as X,b as Pt,k as A,a3 as Lt,l as W,al as zt,am as Bt,C as Vt,c as te,n as rt,e as we,M as at,L as nt,a as ve,t as pe,an as $t,p as jt,m as Wt,ao as it,ap as Kt,a9 as Jt,af as Ut,_ as Ht}from"./framework.6909765d.js";import{u as Gt,a as qt,b as Qt,c as ot,d as Yt,e as Zt,w as Xt,o as xe,f as er,g as tr,h as rr}from"./theme.c4ee4772.js";const ar={"en-US":()=>Ve(()=>import("./@localSearchIndexen-US.3956ab05.js"),[]),root:()=>Ve(()=>import("./@localSearchIndexroot.6beb67a5.js"),[])};/*! -* tabbable 6.2.0 -* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE -*/var gt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Se=gt.join(","),bt=typeof Element>"u",se=bt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ae=!bt&&Element.prototype.getRootNode?function(o){var e;return o==null||(e=o.getRootNode)===null||e===void 0?void 0:e.call(o)}:function(o){return o==null?void 0:o.ownerDocument},Ce=function o(e,t){var r;t===void 0&&(t=!0);var n=e==null||(r=e.getAttribute)===null||r===void 0?void 0:r.call(e,"inert"),a=n===""||n==="true",i=a||t&&e&&o(e.parentNode);return i},nr=function(e){var t,r=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return r===""||r==="true"},wt=function(e,t,r){if(Ce(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Se));return t&&se.call(e,Se)&&n.unshift(e),n=n.filter(r),n},xt=function o(e,t,r){for(var n=[],a=Array.from(e);a.length;){var i=a.shift();if(!Ce(i,!1))if(i.tagName==="SLOT"){var s=i.assignedElements(),l=s.length?s:i.children,u=o(l,!0,r);r.flatten?n.push.apply(n,u):n.push({scopeParent:i,candidates:u})}else{var d=se.call(i,Se);d&&r.filter(i)&&(t||!e.includes(i))&&n.push(i);var h=i.shadowRoot||typeof r.getShadowRoot=="function"&&r.getShadowRoot(i),v=!Ce(h,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(h&&v){var p=o(h===!0?i.children:h.children,!0,r);r.flatten?n.push.apply(n,p):n.push({scopeParent:i,candidates:p})}else a.unshift.apply(a,i.children)}}return n},Ft=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},oe=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||nr(e))&&!Ft(e)?0:e.tabIndex},ir=function(e,t){var r=oe(e);return r<0&&t&&!Ft(e)?0:r},or=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},Et=function(e){return e.tagName==="INPUT"},sr=function(e){return Et(e)&&e.type==="hidden"},lr=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(r){return r.tagName==="SUMMARY"});return t},ur=function(e,t){for(var r=0;rsummary:first-of-type"),i=a?e.parentElement:e;if(se.call(i,"details:not([open]) *"))return!0;if(!r||r==="full"||r==="legacy-full"){if(typeof n=="function"){for(var s=e;e;){var l=e.parentElement,u=Ae(e);if(l&&!l.shadowRoot&&n(l)===!0)return st(e);e.assignedSlot?e=e.assignedSlot:!l&&u!==e.ownerDocument?e=u.host:e=l}e=s}if(hr(e))return!e.getClientRects().length;if(r!=="legacy-full")return!0}else if(r==="non-zero-area")return st(e);return!1},pr=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var r=0;r=0)},mr=function o(e){var t=[],r=[];return e.forEach(function(n,a){var i=!!n.scopeParent,s=i?n.scopeParent:n,l=ir(s,i),u=i?o(n.candidates):s;l===0?i?t.push.apply(t,u):t.push(s):r.push({documentOrder:a,tabIndex:l,item:n,isScope:i,content:u})}),r.sort(or).reduce(function(n,a){return a.isScope?n.push.apply(n,a.content):n.push(a.content),n},[]).concat(t)},gr=function(e,t){t=t||{};var r;return t.getShadowRoot?r=xt([e],t.includeContainer,{filter:je.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:yr}):r=wt(e,t.includeContainer,je.bind(null,t)),mr(r)},br=function(e,t){t=t||{};var r;return t.getShadowRoot?r=xt([e],t.includeContainer,{filter:Ne.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):r=wt(e,t.includeContainer,Ne.bind(null,t)),r},le=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return se.call(e,Se)===!1?!1:je(t,e)},wr=gt.concat("iframe").join(","),Oe=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return se.call(e,wr)===!1?!1:Ne(t,e)};/*! -* focus-trap 7.5.2 -* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE -*/function lt(o,e){var t=Object.keys(o);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(o);e&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(o,n).enumerable})),t.push.apply(t,r)}return t}function ut(o){for(var e=1;e0){var r=e[e.length-1];r!==t&&r.pause()}var n=e.indexOf(t);n===-1||e.splice(n,1),e.push(t)},deactivateTrap:function(e,t){var r=e.indexOf(t);r!==-1&&e.splice(r,1),e.length>0&&e[e.length-1].unpause()}},Sr=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},Ar=function(e){return(e==null?void 0:e.key)==="Escape"||(e==null?void 0:e.key)==="Esc"||(e==null?void 0:e.keyCode)===27},ge=function(e){return(e==null?void 0:e.key)==="Tab"||(e==null?void 0:e.keyCode)===9},Cr=function(e){return ge(e)&&!e.shiftKey},Nr=function(e){return ge(e)&&e.shiftKey},ft=function(e){return setTimeout(e,0)},dt=function(e,t){var r=-1;return e.every(function(n,a){return t(n)?(r=a,!1):!0}),r},ye=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n1?y-1:0),I=1;I=0)f=r.activeElement;else{var c=i.tabbableGroups[0],y=c&&c.firstTabbableNode;f=y||d("fallbackFocus")}if(!f)throw new Error("Your focus-trap needs to have at least one focusable element");return f},v=function(){if(i.containerGroups=i.containers.map(function(f){var c=gr(f,a.tabbableOptions),y=br(f,a.tabbableOptions),x=c.length>0?c[0]:void 0,I=c.length>0?c[c.length-1]:void 0,O=y.find(function(m){return le(m)}),P=y.slice().reverse().find(function(m){return le(m)}),z=!!c.find(function(m){return oe(m)>0});return{container:f,tabbableNodes:c,focusableNodes:y,posTabIndexesFound:z,firstTabbableNode:x,lastTabbableNode:I,firstDomTabbableNode:O,lastDomTabbableNode:P,nextTabbableNode:function(N){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,J=c.indexOf(N);return J<0?$?y.slice(y.indexOf(N)+1).find(function(H){return le(H)}):y.slice(0,y.indexOf(N)).reverse().find(function(H){return le(H)}):c[J+($?1:-1)]}}}),i.tabbableGroups=i.containerGroups.filter(function(f){return f.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!d("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(i.containerGroups.find(function(f){return f.posTabIndexesFound})&&i.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},p=function F(f){if(f!==!1&&f!==r.activeElement){if(!f||!f.focus){F(h());return}f.focus({preventScroll:!!a.preventScroll}),i.mostRecentlyFocusedNode=f,Sr(f)&&f.select()}},b=function(f){var c=d("setReturnFocus",f);return c||(c===!1?!1:f)},g=function(f){var c=f.target,y=f.event,x=f.isBackward,I=x===void 0?!1:x;c=c||Fe(y),v();var O=null;if(i.tabbableGroups.length>0){var P=u(c,y),z=P>=0?i.containerGroups[P]:void 0;if(P<0)I?O=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:O=i.tabbableGroups[0].firstTabbableNode;else if(I){var m=dt(i.tabbableGroups,function(B){var U=B.firstTabbableNode;return c===U});if(m<0&&(z.container===c||Oe(c,a.tabbableOptions)&&!le(c,a.tabbableOptions)&&!z.nextTabbableNode(c,!1))&&(m=P),m>=0){var N=m===0?i.tabbableGroups.length-1:m-1,$=i.tabbableGroups[N];O=oe(c)>=0?$.lastTabbableNode:$.lastDomTabbableNode}else ge(y)||(O=z.nextTabbableNode(c,!1))}else{var J=dt(i.tabbableGroups,function(B){var U=B.lastTabbableNode;return c===U});if(J<0&&(z.container===c||Oe(c,a.tabbableOptions)&&!le(c,a.tabbableOptions)&&!z.nextTabbableNode(c))&&(J=P),J>=0){var H=J===i.tabbableGroups.length-1?0:J+1,G=i.tabbableGroups[H];O=oe(c)>=0?G.firstTabbableNode:G.firstDomTabbableNode}else ge(y)||(O=z.nextTabbableNode(c))}}else O=d("fallbackFocus");return O},w=function(f){var c=Fe(f);if(!(u(c,f)>=0)){if(ye(a.clickOutsideDeactivates,f)){s.deactivate({returnFocus:a.returnFocusOnDeactivate});return}ye(a.allowOutsideClick,f)||f.preventDefault()}},C=function(f){var c=Fe(f),y=u(c,f)>=0;if(y||c instanceof Document)y&&(i.mostRecentlyFocusedNode=c);else{f.stopImmediatePropagation();var x,I=!0;if(i.mostRecentlyFocusedNode)if(oe(i.mostRecentlyFocusedNode)>0){var O=u(i.mostRecentlyFocusedNode),P=i.containerGroups[O].tabbableNodes;if(P.length>0){var z=P.findIndex(function(m){return m===i.mostRecentlyFocusedNode});z>=0&&(a.isKeyForward(i.recentNavEvent)?z+1=0&&(x=P[z-1],I=!1))}}else i.containerGroups.some(function(m){return m.tabbableNodes.some(function(N){return oe(N)>0})})||(I=!1);else I=!1;I&&(x=g({target:i.mostRecentlyFocusedNode,isBackward:a.isKeyBackward(i.recentNavEvent)})),p(x||i.mostRecentlyFocusedNode||h())}i.recentNavEvent=void 0},T=function(f){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;i.recentNavEvent=f;var y=g({event:f,isBackward:c});y&&(ge(f)&&f.preventDefault(),p(y))},E=function(f){if(Ar(f)&&ye(a.escapeDeactivates,f)!==!1){f.preventDefault(),s.deactivate();return}(a.isKeyForward(f)||a.isKeyBackward(f))&&T(f,a.isKeyBackward(f))},M=function(f){var c=Fe(f);u(c,f)>=0||ye(a.clickOutsideDeactivates,f)||ye(a.allowOutsideClick,f)||(f.preventDefault(),f.stopImmediatePropagation())},R=function(){if(i.active)return ct.activateTrap(n,s),i.delayInitialFocusTimer=a.delayInitialFocus?ft(function(){p(h())}):p(h()),r.addEventListener("focusin",C,!0),r.addEventListener("mousedown",w,{capture:!0,passive:!1}),r.addEventListener("touchstart",w,{capture:!0,passive:!1}),r.addEventListener("click",M,{capture:!0,passive:!1}),r.addEventListener("keydown",E,{capture:!0,passive:!1}),s},L=function(){if(i.active)return r.removeEventListener("focusin",C,!0),r.removeEventListener("mousedown",w,!0),r.removeEventListener("touchstart",w,!0),r.removeEventListener("click",M,!0),r.removeEventListener("keydown",E,!0),s},S=function(f){var c=f.some(function(y){var x=Array.from(y.removedNodes);return x.some(function(I){return I===i.mostRecentlyFocusedNode})});c&&p(h())},k=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(S):void 0,D=function(){k&&(k.disconnect(),i.active&&!i.paused&&i.containers.map(function(f){k.observe(f,{subtree:!0,childList:!0})}))};return s={get active(){return i.active},get paused(){return i.paused},activate:function(f){if(i.active)return this;var c=l(f,"onActivate"),y=l(f,"onPostActivate"),x=l(f,"checkCanFocusTrap");x||v(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=r.activeElement,c==null||c();var I=function(){x&&v(),R(),D(),y==null||y()};return x?(x(i.containers.concat()).then(I,I),this):(I(),this)},deactivate:function(f){if(!i.active)return this;var c=ut({onDeactivate:a.onDeactivate,onPostDeactivate:a.onPostDeactivate,checkCanReturnFocus:a.checkCanReturnFocus},f);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,L(),i.active=!1,i.paused=!1,D(),ct.deactivateTrap(n,s);var y=l(c,"onDeactivate"),x=l(c,"onPostDeactivate"),I=l(c,"checkCanReturnFocus"),O=l(c,"returnFocus","returnFocusOnDeactivate");y==null||y();var P=function(){ft(function(){O&&p(b(i.nodeFocusedBeforeActivation)),x==null||x()})};return O&&I?(I(b(i.nodeFocusedBeforeActivation)).then(P,P),this):(P(),this)},pause:function(f){if(i.paused||!i.active)return this;var c=l(f,"onPause"),y=l(f,"onPostPause");return i.paused=!0,c==null||c(),L(),D(),y==null||y(),this},unpause:function(f){if(!i.paused||!i.active)return this;var c=l(f,"onUnpause"),y=l(f,"onPostUnpause");return i.paused=!1,c==null||c(),v(),R(),D(),y==null||y(),this},updateContainerElements:function(f){var c=[].concat(f).filter(Boolean);return i.containers=c.map(function(y){return typeof y=="string"?r.querySelector(y):y}),i.active&&v(),D(),this}},s.updateContainerElements(e),s},Ir=Object.defineProperty,_r=Object.defineProperties,Dr=Object.getOwnPropertyDescriptors,Te=Object.getOwnPropertySymbols,St=Object.prototype.hasOwnProperty,At=Object.prototype.propertyIsEnumerable,ht=(o,e,t)=>e in o?Ir(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,Or=(o,e)=>{for(var t in e||(e={}))St.call(e,t)&&ht(o,t,e[t]);if(Te)for(var t of Te(e))At.call(e,t)&&ht(o,t,e[t]);return o},Rr=(o,e)=>_r(o,Dr(e)),Mr=(o,e)=>{var t={};for(var r in o)St.call(o,r)&&e.indexOf(r)<0&&(t[r]=o[r]);if(o!=null&&Te)for(var r of Te(o))e.indexOf(r)<0&&At.call(o,r)&&(t[r]=o[r]);return t};function Pr(o,e={}){let t;const r=e,{immediate:n}=r,a=Mr(r,["immediate"]),i=ie(!1),s=ie(!1),l=v=>t&&t.activate(v),u=v=>t&&t.deactivate(v),d=()=>{t&&(t.pause(),s.value=!0)},h=()=>{t&&(t.unpause(),s.value=!1)};return $e(()=>Gt(o),v=>{v&&(t=kr(v,Rr(Or({},a),{onActivate(){i.value=!0,e.onActivate&&e.onActivate()},onDeactivate(){i.value=!1,e.onDeactivate&&e.onDeactivate()}})),n&&l())},{flush:"post"}),qt(()=>u()),{hasFocus:i,isPaused:s,activate:l,deactivate:u,pause:d,unpause:h}}class ce{constructor(e,t=!0,r=[],n=5e3){this.ctx=e,this.iframes=t,this.exclude=r,this.iframesTimeout=n}static matches(e,t){const r=typeof t=="string"?[t]:t,n=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(n){let a=!1;return r.every(i=>n.call(e,i)?(a=!0,!1):!0),a}else return!1}getContexts(){let e,t=[];return typeof this.ctx>"u"||!this.ctx?e=[]:NodeList.prototype.isPrototypeOf(this.ctx)?e=Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?e=this.ctx:typeof this.ctx=="string"?e=Array.prototype.slice.call(document.querySelectorAll(this.ctx)):e=[this.ctx],e.forEach(r=>{const n=t.filter(a=>a.contains(r)).length>0;t.indexOf(r)===-1&&!n&&t.push(r)}),t}getIframeContents(e,t,r=()=>{}){let n;try{const a=e.contentWindow;if(n=a.document,!a||!n)throw new Error("iframe inaccessible")}catch{r()}n&&t(n)}isIframeBlank(e){const t="about:blank",r=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&r!==t&&r}observeIframeLoad(e,t,r){let n=!1,a=null;const i=()=>{if(!n){n=!0,clearTimeout(a);try{this.isIframeBlank(e)||(e.removeEventListener("load",i),this.getIframeContents(e,t,r))}catch{r()}}};e.addEventListener("load",i),a=setTimeout(i,this.iframesTimeout)}onIframeReady(e,t,r){try{e.contentWindow.document.readyState==="complete"?this.isIframeBlank(e)?this.observeIframeLoad(e,t,r):this.getIframeContents(e,t,r):this.observeIframeLoad(e,t,r)}catch{r()}}waitForIframes(e,t){let r=0;this.forEachIframe(e,()=>!0,n=>{r++,this.waitForIframes(n.querySelector("html"),()=>{--r||t()})},n=>{n||t()})}forEachIframe(e,t,r,n=()=>{}){let a=e.querySelectorAll("iframe"),i=a.length,s=0;a=Array.prototype.slice.call(a);const l=()=>{--i<=0&&n(s)};i||l(),a.forEach(u=>{ce.matches(u,this.exclude)?l():this.onIframeReady(u,d=>{t(u)&&(s++,r(d)),l()},l)})}createIterator(e,t,r){return document.createNodeIterator(e,t,r,!1)}createInstanceOnIframe(e){return new ce(e.querySelector("html"),this.iframes)}compareNodeIframe(e,t,r){const n=e.compareDocumentPosition(r),a=Node.DOCUMENT_POSITION_PRECEDING;if(n&a)if(t!==null){const i=t.compareDocumentPosition(r),s=Node.DOCUMENT_POSITION_FOLLOWING;if(i&s)return!0}else return!0;return!1}getIteratorNode(e){const t=e.previousNode();let r;return t===null?r=e.nextNode():r=e.nextNode()&&e.nextNode(),{prevNode:t,node:r}}checkIframeFilter(e,t,r,n){let a=!1,i=!1;return n.forEach((s,l)=>{s.val===r&&(a=l,i=s.handled)}),this.compareNodeIframe(e,t,r)?(a===!1&&!i?n.push({val:r,handled:!0}):a!==!1&&!i&&(n[a].handled=!0),!0):(a===!1&&n.push({val:r,handled:!1}),!1)}handleOpenIframes(e,t,r,n){e.forEach(a=>{a.handled||this.getIframeContents(a.val,i=>{this.createInstanceOnIframe(i).forEachNode(t,r,n)})})}iterateThroughNodes(e,t,r,n,a){const i=this.createIterator(t,e,n);let s=[],l=[],u,d,h=()=>({prevNode:d,node:u}=this.getIteratorNode(i),u);for(;h();)this.iframes&&this.forEachIframe(t,v=>this.checkIframeFilter(u,d,v,s),v=>{this.createInstanceOnIframe(v).forEachNode(e,p=>l.push(p),n)}),l.push(u);l.forEach(v=>{r(v)}),this.iframes&&this.handleOpenIframes(s,e,r,n),a()}forEachNode(e,t,r,n=()=>{}){const a=this.getContexts();let i=a.length;i||n(),a.forEach(s=>{const l=()=>{this.iterateThroughNodes(e,s,t,r,()=>{--i<=0&&n()})};this.iframes?this.waitForIframes(s,l):l()})}}let Lr=class{constructor(e){this.ctx=e,this.ie=!1;const t=window.navigator.userAgent;(t.indexOf("MSIE")>-1||t.indexOf("Trident")>-1)&&(this.ie=!0)}set opt(e){this._opt=Object.assign({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:"partially",acrossElements:!1,caseSensitive:!1,ignoreJoiners:!1,ignoreGroups:0,ignorePunctuation:[],wildcards:"disabled",each:()=>{},noMatch:()=>{},filter:()=>!0,done:()=>{},debug:!1,log:window.console},e)}get opt(){return this._opt}get iterator(){return new ce(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}log(e,t="debug"){const r=this.opt.log;this.opt.debug&&typeof r=="object"&&typeof r[t]=="function"&&r[t](`mark.js: ${e}`)}escapeStr(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}createRegExp(e){return this.opt.wildcards!=="disabled"&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),this.opt.wildcards!=="disabled"&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e),e}createSynonymsRegExp(e){const t=this.opt.synonyms,r=this.opt.caseSensitive?"":"i",n=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(let a in t)if(t.hasOwnProperty(a)){const i=t[a],s=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(a):this.escapeStr(a),l=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(i):this.escapeStr(i);s!==""&&l!==""&&(e=e.replace(new RegExp(`(${this.escapeStr(s)}|${this.escapeStr(l)})`,`gm${r}`),n+`(${this.processSynomyms(s)}|${this.processSynomyms(l)})`+n))}return e}processSynomyms(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}setupWildcardsRegExp(e){return e=e.replace(/(?:\\)*\?/g,t=>t.charAt(0)==="\\"?"?":""),e.replace(/(?:\\)*\*/g,t=>t.charAt(0)==="\\"?"*":"")}createWildcardsRegExp(e){let t=this.opt.wildcards==="withSpaces";return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}setupIgnoreJoinersRegExp(e){return e.replace(/[^(|)\\]/g,(t,r,n)=>{let a=n.charAt(r+1);return/[(|)\\]/.test(a)||a===""?t:t+"\0"})}createJoinersRegExp(e){let t=[];const r=this.opt.ignorePunctuation;return Array.isArray(r)&&r.length&&t.push(this.escapeStr(r.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join(`[${t.join("")}]*`):e}createDiacriticsRegExp(e){const t=this.opt.caseSensitive?"":"i",r=this.opt.caseSensitive?["aàáảãạăằắẳẵặâầấẩẫậäåāą","AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćč","CÇĆČ","dđď","DĐĎ","eèéẻẽẹêềếểễệëěēę","EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïī","IÌÍỈĨỊÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøō","OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rř","RŘ","sšśșş","SŠŚȘŞ","tťțţ","TŤȚŢ","uùúủũụưừứửữựûüůū","UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿ","YÝỲỶỸỴŸ","zžżź","ZŽŻŹ"]:["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćčCÇĆČ","dđďDĐĎ","eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïīIÌÍỈĨỊÎÏĪ","lłLŁ","nñňńNÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rřRŘ","sšśșşSŠŚȘŞ","tťțţTŤȚŢ","uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿYÝỲỶỸỴŸ","zžżźZŽŻŹ"];let n=[];return e.split("").forEach(a=>{r.every(i=>{if(i.indexOf(a)!==-1){if(n.indexOf(i)>-1)return!1;e=e.replace(new RegExp(`[${i}]`,`gm${t}`),`[${i}]`),n.push(i)}return!0})}),e}createMergedBlanksRegExp(e){return e.replace(/[\s]+/gmi,"[\\s]+")}createAccuracyRegExp(e){const t="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿";let r=this.opt.accuracy,n=typeof r=="string"?r:r.value,a=typeof r=="string"?[]:r.limiters,i="";switch(a.forEach(s=>{i+=`|${this.escapeStr(s)}`}),n){case"partially":default:return`()(${e})`;case"complementary":return i="\\s"+(i||this.escapeStr(t)),`()([^${i}]*${e}[^${i}]*)`;case"exactly":return`(^|\\s${i})(${e})(?=$|\\s${i})`}}getSeparatedKeywords(e){let t=[];return e.forEach(r=>{this.opt.separateWordSearch?r.split(" ").forEach(n=>{n.trim()&&t.indexOf(n)===-1&&t.push(n)}):r.trim()&&t.indexOf(r)===-1&&t.push(r)}),{keywords:t.sort((r,n)=>n.length-r.length),length:t.length}}isNumeric(e){return Number(parseFloat(e))==e}checkRanges(e){if(!Array.isArray(e)||Object.prototype.toString.call(e[0])!=="[object Object]")return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];const t=[];let r=0;return e.sort((n,a)=>n.start-a.start).forEach(n=>{let{start:a,end:i,valid:s}=this.callNoMatchOnInvalidRanges(n,r);s&&(n.start=a,n.length=i-a,t.push(n),r=i)}),t}callNoMatchOnInvalidRanges(e,t){let r,n,a=!1;return e&&typeof e.start<"u"?(r=parseInt(e.start,10),n=r+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&n-t>0&&n-r>0?a=!0:(this.log(`Ignoring invalid or overlapping range: ${JSON.stringify(e)}`),this.opt.noMatch(e))):(this.log(`Ignoring invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)),{start:r,end:n,valid:a}}checkWhitespaceRanges(e,t,r){let n,a=!0,i=r.length,s=t-i,l=parseInt(e.start,10)-s;return l=l>i?i:l,n=l+parseInt(e.length,10),n>i&&(n=i,this.log(`End range automatically set to the max value of ${i}`)),l<0||n-l<0||l>i||n>i?(a=!1,this.log(`Invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)):r.substring(l,n).replace(/\s+/g,"")===""&&(a=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:l,end:n,valid:a}}getTextNodes(e){let t="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,n=>{r.push({start:t.length,end:(t+=n.textContent).length,node:n})},n=>this.matchesExclude(n.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT,()=>{e({value:t,nodes:r})})}matchesExclude(e){return ce.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}wrapRangeInTextNode(e,t,r){const n=this.opt.element?this.opt.element:"mark",a=e.splitText(t),i=a.splitText(r-t);let s=document.createElement(n);return s.setAttribute("data-markjs","true"),this.opt.className&&s.setAttribute("class",this.opt.className),s.textContent=a.textContent,a.parentNode.replaceChild(s,a),i}wrapRangeInMappedTextNode(e,t,r,n,a){e.nodes.every((i,s)=>{const l=e.nodes[s+1];if(typeof l>"u"||l.start>t){if(!n(i.node))return!1;const u=t-i.start,d=(r>i.end?i.end:r)-i.start,h=e.value.substr(0,i.start),v=e.value.substr(d+i.start);if(i.node=this.wrapRangeInTextNode(i.node,u,d),e.value=h+v,e.nodes.forEach((p,b)=>{b>=s&&(e.nodes[b].start>0&&b!==s&&(e.nodes[b].start-=d),e.nodes[b].end-=d)}),r-=d,a(i.node.previousSibling,i.start),r>i.end)t=i.end;else return!1}return!0})}wrapMatches(e,t,r,n,a){const i=t===0?0:t+1;this.getTextNodes(s=>{s.nodes.forEach(l=>{l=l.node;let u;for(;(u=e.exec(l.textContent))!==null&&u[i]!=="";){if(!r(u[i],l))continue;let d=u.index;if(i!==0)for(let h=1;h{let l;for(;(l=e.exec(s.value))!==null&&l[i]!=="";){let u=l.index;if(i!==0)for(let h=1;hr(l[i],h),(h,v)=>{e.lastIndex=v,n(h)})}a()})}wrapRangeFromIndex(e,t,r,n){this.getTextNodes(a=>{const i=a.value.length;e.forEach((s,l)=>{let{start:u,end:d,valid:h}=this.checkWhitespaceRanges(s,i,a.value);h&&this.wrapRangeInMappedTextNode(a,u,d,v=>t(v,s,a.value.substring(u,d),l),v=>{r(v,s)})}),n()})}unwrapMatches(e){const t=e.parentNode;let r=document.createDocumentFragment();for(;e.firstChild;)r.appendChild(e.removeChild(e.firstChild));t.replaceChild(r,e),this.ie?this.normalizeTextNode(t):t.normalize()}normalizeTextNode(e){if(e){if(e.nodeType===3)for(;e.nextSibling&&e.nextSibling.nodeType===3;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}markRegExp(e,t){this.opt=t,this.log(`Searching with expression "${e}"`);let r=0,n="wrapMatches";const a=i=>{r++,this.opt.each(i)};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),this[n](e,this.opt.ignoreGroups,(i,s)=>this.opt.filter(s,i,r),a,()=>{r===0&&this.opt.noMatch(e),this.opt.done(r)})}mark(e,t){this.opt=t;let r=0,n="wrapMatches";const{keywords:a,length:i}=this.getSeparatedKeywords(typeof e=="string"?[e]:e),s=this.opt.caseSensitive?"":"i",l=u=>{let d=new RegExp(this.createRegExp(u),`gm${s}`),h=0;this.log(`Searching with expression "${d}"`),this[n](d,1,(v,p)=>this.opt.filter(p,u,r,h),v=>{h++,r++,this.opt.each(v)},()=>{h===0&&this.opt.noMatch(u),a[i-1]===u?this.opt.done(r):l(a[a.indexOf(u)+1])})};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),i===0?this.opt.done(r):l(a[0])}markRanges(e,t){this.opt=t;let r=0,n=this.checkRanges(e);n&&n.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(n)),this.wrapRangeFromIndex(n,(a,i,s,l)=>this.opt.filter(a,i,s,l),(a,i)=>{r++,this.opt.each(a,i)},()=>{this.opt.done(r)})):this.opt.done(r)}unmark(e){this.opt=e;let t=this.opt.element?this.opt.element:"*";t+="[data-markjs]",this.opt.className&&(t+=`.${this.opt.className}`),this.log(`Removal selector "${t}"`),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,r=>{this.unwrapMatches(r)},r=>{const n=ce.matches(r,t),a=this.matchesExclude(r);return!n||a?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},this.opt.done)}};function zr(o){const e=new Lr(o);return this.mark=(t,r)=>(e.mark(t,r),this),this.markRegExp=(t,r)=>(e.markRegExp(t,r),this),this.markRanges=(t,r)=>(e.markRanges(t,r),this),this.unmark=t=>(e.unmark(t),this),this}var V=function(){return V=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0&&a[a.length-1])&&(u[0]===6||u[0]===2)){t=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]=o.length&&(o=void 0),{value:o&&o[r++],done:!o}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function j(o,e){var t=typeof Symbol=="function"&&o[Symbol.iterator];if(!t)return o;var r=t.call(o),n,a=[],i;try{for(;(e===void 0||e-- >0)&&!(n=r.next()).done;)a.push(n.value)}catch(s){i={error:s}}finally{try{n&&!n.done&&(t=r.return)&&t.call(r)}finally{if(i)throw i.error}}return a}var $r="ENTRIES",Ct="KEYS",Nt="VALUES",K="",Re=function(){function o(e,t){var r=e._tree,n=Array.from(r.keys());this.set=e,this._type=t,this._path=n.length>0?[{node:r,keys:n}]:[]}return o.prototype.next=function(){var e=this.dive();return this.backtrack(),e},o.prototype.dive=function(){if(this._path.length===0)return{done:!0,value:void 0};var e=ue(this._path),t=e.node,r=e.keys;if(ue(r)===K)return{done:!1,value:this.result()};var n=t.get(ue(r));return this._path.push({node:n,keys:Array.from(n.keys())}),this.dive()},o.prototype.backtrack=function(){if(this._path.length!==0){var e=ue(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}},o.prototype.key=function(){return this.set._prefix+this._path.map(function(e){var t=e.keys;return ue(t)}).filter(function(e){return e!==K}).join("")},o.prototype.value=function(){return ue(this._path).node.get(K)},o.prototype.result=function(){switch(this._type){case Nt:return this.value();case Ct:return this.key();default:return[this.key(),this.value()]}},o.prototype[Symbol.iterator]=function(){return this},o}(),ue=function(o){return o[o.length-1]},jr=function(o,e,t){var r=new Map;if(e===void 0)return r;for(var n=e.length+1,a=n+t,i=new Uint8Array(a*n).fill(t+1),s=0;st)continue e}Tt(o.get(p),e,t,r,n,g,i,s+p)}}}catch(y){l={error:y}}finally{try{v&&!v.done&&(u=h.return)&&u.call(h)}finally{if(l)throw l.error}}},Me=function(){function o(e,t){e===void 0&&(e=new Map),t===void 0&&(t=""),this._size=void 0,this._tree=e,this._prefix=t}return o.prototype.atPrefix=function(e){var t,r;if(!e.startsWith(this._prefix))throw new Error("Mismatched prefix");var n=j(ke(this._tree,e.slice(this._prefix.length)),2),a=n[0],i=n[1];if(a===void 0){var s=j(Ue(i),2),l=s[0],u=s[1];try{for(var d=_(l.keys()),h=d.next();!h.done;h=d.next()){var v=h.value;if(v!==K&&v.startsWith(u)){var p=new Map;return p.set(v.slice(u.length),l.get(v)),new o(p,e)}}}catch(b){t={error:b}}finally{try{h&&!h.done&&(r=d.return)&&r.call(d)}finally{if(t)throw t.error}}}return new o(a,e)},o.prototype.clear=function(){this._size=void 0,this._tree.clear()},o.prototype.delete=function(e){return this._size=void 0,Wr(this._tree,e)},o.prototype.entries=function(){return new Re(this,$r)},o.prototype.forEach=function(e){var t,r;try{for(var n=_(this),a=n.next();!a.done;a=n.next()){var i=j(a.value,2),s=i[0],l=i[1];e(s,l,this)}}catch(u){t={error:u}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}},o.prototype.fuzzyGet=function(e,t){return jr(this._tree,e,t)},o.prototype.get=function(e){var t=We(this._tree,e);return t!==void 0?t.get(K):void 0},o.prototype.has=function(e){var t=We(this._tree,e);return t!==void 0&&t.has(K)},o.prototype.keys=function(){return new Re(this,Ct)},o.prototype.set=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var r=Pe(this._tree,e);return r.set(K,t),this},Object.defineProperty(o.prototype,"size",{get:function(){if(this._size)return this._size;this._size=0;for(var e=this.entries();!e.next().done;)this._size+=1;return this._size},enumerable:!1,configurable:!0}),o.prototype.update=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var r=Pe(this._tree,e);return r.set(K,t(r.get(K))),this},o.prototype.fetch=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var r=Pe(this._tree,e),n=r.get(K);return n===void 0&&r.set(K,n=t()),n},o.prototype.values=function(){return new Re(this,Nt)},o.prototype[Symbol.iterator]=function(){return this.entries()},o.from=function(e){var t,r,n=new o;try{for(var a=_(e),i=a.next();!i.done;i=a.next()){var s=j(i.value,2),l=s[0],u=s[1];n.set(l,u)}}catch(d){t={error:d}}finally{try{i&&!i.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}return n},o.fromObject=function(e){return o.from(Object.entries(e))},o}(),ke=function(o,e,t){var r,n;if(t===void 0&&(t=[]),e.length===0||o==null)return[o,t];try{for(var a=_(o.keys()),i=a.next();!i.done;i=a.next()){var s=i.value;if(s!==K&&e.startsWith(s))return t.push([o,s]),ke(o.get(s),e.slice(s.length),t)}}catch(l){r={error:l}}finally{try{i&&!i.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return t.push([o,e]),ke(void 0,"",t)},We=function(o,e){var t,r;if(e.length===0||o==null)return o;try{for(var n=_(o.keys()),a=n.next();!a.done;a=n.next()){var i=a.value;if(i!==K&&e.startsWith(i))return We(o.get(i),e.slice(i.length))}}catch(s){t={error:s}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}},Pe=function(o,e){var t,r,n=e.length;e:for(var a=0;o&&a0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new Me,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}},o.prototype.discard=function(e){var t=this,r=this._idToShortId.get(e);if(r==null)throw new Error("MiniSearch: cannot discard document with ID ".concat(e,": it is not in the index"));this._idToShortId.delete(e),this._documentIds.delete(r),this._storedFields.delete(r),(this._fieldLength.get(r)||[]).forEach(function(n,a){t.removeFieldLength(r,a,t._documentCount,n)}),this._fieldLength.delete(r),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()},o.prototype.maybeAutoVacuum=function(){if(this._options.autoVacuum!==!1){var e=this._options.autoVacuum,t=e.minDirtFactor,r=e.minDirtCount,n=e.batchSize,a=e.batchWait;this.conditionalVacuum({batchSize:n,batchWait:a},{minDirtCount:r,minDirtFactor:t})}},o.prototype.discardAll=function(e){var t,r,n=this._options.autoVacuum;try{this._options.autoVacuum=!1;try{for(var a=_(e),i=a.next();!i.done;i=a.next()){var s=i.value;this.discard(s)}}catch(l){t={error:l}}finally{try{i&&!i.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}}finally{this._options.autoVacuum=n}this.maybeAutoVacuum()},o.prototype.replace=function(e){var t=this._options,r=t.idField,n=t.extractField,a=n(e,r);this.discard(a),this.add(e)},o.prototype.vacuum=function(e){return e===void 0&&(e={}),this.conditionalVacuum(e)},o.prototype.conditionalVacuum=function(e,t){var r=this;return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&t,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(function(){var n=r._enqueuedVacuumConditions;return r._enqueuedVacuumConditions=Je,r.performVacuuming(e,n)}),this._enqueuedVacuum)):this.vacuumConditionsMet(t)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(e),this._currentVacuum)},o.prototype.performVacuuming=function(e,t){return Br(this,void 0,void 0,function(){var r,n,a,i,s,l,u,d,h,v,p,b,g,w,C,T,E,M,R,L,S,k,D,F,f;return Vr(this,function(c){switch(c.label){case 0:if(r=this._dirtCount,!this.vacuumConditionsMet(t))return[3,10];n=e.batchSize||Ke.batchSize,a=e.batchWait||Ke.batchWait,i=1,c.label=1;case 1:c.trys.push([1,7,8,9]),s=_(this._index),l=s.next(),c.label=2;case 2:if(l.done)return[3,6];u=j(l.value,2),d=u[0],h=u[1];try{for(v=(k=void 0,_(h)),p=v.next();!p.done;p=v.next()){b=j(p.value,2),g=b[0],w=b[1];try{for(C=(F=void 0,_(w)),T=C.next();!T.done;T=C.next())E=j(T.value,1),M=E[0],!this._documentIds.has(M)&&(w.size<=1?h.delete(g):w.delete(M))}catch(y){F={error:y}}finally{try{T&&!T.done&&(f=C.return)&&f.call(C)}finally{if(F)throw F.error}}}}catch(y){k={error:y}}finally{try{p&&!p.done&&(D=v.return)&&D.call(v)}finally{if(k)throw k.error}}return this._index.get(d).size===0&&this._index.delete(d),i%n!==0?[3,4]:[4,new Promise(function(y){return setTimeout(y,a)})];case 3:c.sent(),c.label=4;case 4:i+=1,c.label=5;case 5:return l=s.next(),[3,2];case 6:return[3,9];case 7:return R=c.sent(),L={error:R},[3,9];case 8:try{l&&!l.done&&(S=s.return)&&S.call(s)}finally{if(L)throw L.error}return[7];case 9:this._dirtCount-=r,c.label=10;case 10:return[4,null];case 11:return c.sent(),this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null,[2]}})})},o.prototype.vacuumConditionsMet=function(e){if(e==null)return!0;var t=e.minDirtCount,r=e.minDirtFactor;return t=t||Be.minDirtCount,r=r||Be.minDirtFactor,this.dirtCount>=t&&this.dirtFactor>=r},Object.defineProperty(o.prototype,"isVacuuming",{get:function(){return this._currentVacuum!=null},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"dirtCount",{get:function(){return this._dirtCount},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"dirtFactor",{get:function(){return this._dirtCount/(1+this._documentCount+this._dirtCount)},enumerable:!1,configurable:!0}),o.prototype.has=function(e){return this._idToShortId.has(e)},o.prototype.getStoredFields=function(e){var t=this._idToShortId.get(e);if(t!=null)return this._storedFields.get(t)},o.prototype.search=function(e,t){var r,n;t===void 0&&(t={});var a=this.executeQuery(e,t),i=[];try{for(var s=_(a),l=s.next();!l.done;l=s.next()){var u=j(l.value,2),d=u[0],h=u[1],v=h.score,p=h.terms,b=h.match,g=p.length,w={id:this._documentIds.get(d),score:v*g,terms:Object.keys(b),match:b};Object.assign(w,this._storedFields.get(d)),(t.filter==null||t.filter(w))&&i.push(w)}}catch(C){r={error:C}}finally{try{l&&!l.done&&(n=s.return)&&n.call(s)}finally{if(r)throw r.error}}return i.sort(yt),i},o.prototype.autoSuggest=function(e,t){var r,n,a,i;t===void 0&&(t={}),t=V(V({},this._options.autoSuggestOptions),t);var s=new Map;try{for(var l=_(this.search(e,t)),u=l.next();!u.done;u=l.next()){var d=u.value,h=d.score,v=d.terms,p=v.join(" "),b=s.get(p);b!=null?(b.score+=h,b.count+=1):s.set(p,{score:h,terms:v,count:1})}}catch(R){r={error:R}}finally{try{u&&!u.done&&(n=l.return)&&n.call(l)}finally{if(r)throw r.error}}var g=[];try{for(var w=_(s),C=w.next();!C.done;C=w.next()){var T=j(C.value,2),b=T[0],E=T[1],h=E.score,v=E.terms,M=E.count;g.push({suggestion:b,terms:v,score:h/M})}}catch(R){a={error:R}}finally{try{C&&!C.done&&(i=w.return)&&i.call(w)}finally{if(a)throw a.error}}return g.sort(yt),g},Object.defineProperty(o.prototype,"documentCount",{get:function(){return this._documentCount},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"termCount",{get:function(){return this._index.size},enumerable:!1,configurable:!0}),o.loadJSON=function(e,t){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(e),t)},o.getDefault=function(e){if(ze.hasOwnProperty(e))return Le(ze,e);throw new Error('MiniSearch: unknown option "'.concat(e,'"'))},o.loadJS=function(e,t){var r,n,a,i,s,l,u=e.index,d=e.documentCount,h=e.nextId,v=e.documentIds,p=e.fieldIds,b=e.fieldLength,g=e.averageFieldLength,w=e.storedFields,C=e.dirtCount,T=e.serializationVersion;if(T!==1&&T!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");var E=new o(t);E._documentCount=d,E._nextId=h,E._documentIds=Ee(v),E._idToShortId=new Map,E._fieldIds=p,E._fieldLength=Ee(b),E._avgFieldLength=g,E._storedFields=Ee(w),E._dirtCount=C||0,E._index=new Me;try{for(var M=_(E._documentIds),R=M.next();!R.done;R=M.next()){var L=j(R.value,2),S=L[0],k=L[1];E._idToShortId.set(k,S)}}catch(m){r={error:m}}finally{try{R&&!R.done&&(n=M.return)&&n.call(M)}finally{if(r)throw r.error}}try{for(var D=_(u),F=D.next();!F.done;F=D.next()){var f=j(F.value,2),c=f[0],y=f[1],x=new Map;try{for(var I=(s=void 0,_(Object.keys(y))),O=I.next();!O.done;O=I.next()){var P=O.value,z=y[P];T===1&&(z=z.ds),x.set(parseInt(P,10),Ee(z))}}catch(m){s={error:m}}finally{try{O&&!O.done&&(l=I.return)&&l.call(I)}finally{if(s)throw s.error}}E._index.set(c,x)}}catch(m){a={error:m}}finally{try{F&&!F.done&&(i=D.return)&&i.call(D)}finally{if(a)throw a.error}}return E},o.prototype.executeQuery=function(e,t){var r=this;if(t===void 0&&(t={}),typeof e!="string"){var n=V(V(V({},t),e),{queries:void 0}),a=e.queries.map(function(w){return r.executeQuery(w,n)});return this.combineResults(a,n.combineWith)}var i=this._options,s=i.tokenize,l=i.processTerm,u=i.searchOptions,d=V(V({tokenize:s,processTerm:l},u),t),h=d.tokenize,v=d.processTerm,p=h(e).flatMap(function(w){return v(w)}).filter(function(w){return!!w}),b=p.map(qr(d)),g=b.map(function(w){return r.executeQuerySpec(w,d)});return this.combineResults(g,d.combineWith)},o.prototype.executeQuerySpec=function(e,t){var r,n,a,i,s=V(V({},this._options.searchOptions),t),l=(s.fields||this._options.fields).reduce(function(P,z){var m;return V(V({},P),(m={},m[z]=Le(s.boost,z)||1,m))},{}),u=s.boostDocument,d=s.weights,h=s.maxFuzzy,v=s.bm25,p=V(V({},vt.weights),d),b=p.fuzzy,g=p.prefix,w=this._index.get(e.term),C=this.termResults(e.term,e.term,1,w,l,u,v),T,E;if(e.prefix&&(T=this._index.atPrefix(e.term)),e.fuzzy){var M=e.fuzzy===!0?.2:e.fuzzy,R=M<1?Math.min(h,Math.round(e.term.length*M)):M;R&&(E=this._index.fuzzyGet(e.term,R))}if(T)try{for(var L=_(T),S=L.next();!S.done;S=L.next()){var k=j(S.value,2),D=k[0],F=k[1],f=D.length-e.term.length;if(f){E==null||E.delete(D);var c=g*D.length/(D.length+.3*f);this.termResults(e.term,D,c,F,l,u,v,C)}}}catch(P){r={error:P}}finally{try{S&&!S.done&&(n=L.return)&&n.call(L)}finally{if(r)throw r.error}}if(E)try{for(var y=_(E.keys()),x=y.next();!x.done;x=y.next()){var D=x.value,I=j(E.get(D),2),O=I[0],f=I[1];if(f){var c=b*D.length/(D.length+f);this.termResults(e.term,D,c,O,l,u,v,C)}}}catch(P){a={error:P}}finally{try{x&&!x.done&&(i=y.return)&&i.call(y)}finally{if(a)throw a.error}}return C},o.prototype.combineResults=function(e,t){if(t===void 0&&(t=He),e.length===0)return new Map;var r=t.toLowerCase();return e.reduce(Ur[r])||new Map},o.prototype.toJSON=function(){var e,t,r,n,a=[];try{for(var i=_(this._index),s=i.next();!s.done;s=i.next()){var l=j(s.value,2),u=l[0],d=l[1],h={};try{for(var v=(r=void 0,_(d)),p=v.next();!p.done;p=v.next()){var b=j(p.value,2),g=b[0],w=b[1];h[g]=Object.fromEntries(w)}}catch(C){r={error:C}}finally{try{p&&!p.done&&(n=v.return)&&n.call(v)}finally{if(r)throw r.error}}a.push([u,h])}}catch(C){e={error:C}}finally{try{s&&!s.done&&(t=i.return)&&t.call(i)}finally{if(e)throw e.error}}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:a,serializationVersion:2}},o.prototype.termResults=function(e,t,r,n,a,i,s,l){var u,d,h,v,p;if(l===void 0&&(l=new Map),n==null)return l;try{for(var b=_(Object.keys(a)),g=b.next();!g.done;g=b.next()){var w=g.value,C=a[w],T=this._fieldIds[w],E=n.get(T);if(E!=null){var M=E.size,R=this._avgFieldLength[T];try{for(var L=(h=void 0,_(E.keys())),S=L.next();!S.done;S=L.next()){var k=S.value;if(!this._documentIds.has(k)){this.removeTerm(T,k,t),M-=1;continue}var D=i?i(this._documentIds.get(k),t,this._storedFields.get(k)):1;if(D){var F=E.get(k),f=this._fieldLength.get(k)[T],c=Gr(F,M,this._documentCount,f,R,s),y=r*C*D*c,x=l.get(k);if(x){x.score+=y,Yr(x.terms,e);var I=Le(x.match,t);I?I.push(w):x.match[t]=[w]}else l.set(k,{score:y,terms:[e],match:(p={},p[t]=[w],p)})}}}catch(O){h={error:O}}finally{try{S&&!S.done&&(v=L.return)&&v.call(L)}finally{if(h)throw h.error}}}}}catch(O){u={error:O}}finally{try{g&&!g.done&&(d=b.return)&&d.call(b)}finally{if(u)throw u.error}}return l},o.prototype.addTerm=function(e,t,r){var n=this._index.fetch(r,mt),a=n.get(e);if(a==null)a=new Map,a.set(t,1),n.set(e,a);else{var i=a.get(t);a.set(t,(i||0)+1)}},o.prototype.removeTerm=function(e,t,r){if(!this._index.has(r)){this.warnDocumentChanged(t,e,r);return}var n=this._index.fetch(r,mt),a=n.get(e);a==null||a.get(t)==null?this.warnDocumentChanged(t,e,r):a.get(t)<=1?a.size<=1?n.delete(e):a.delete(t):a.set(t,a.get(t)-1),this._index.get(r).size===0&&this._index.delete(r)},o.prototype.warnDocumentChanged=function(e,t,r){var n,a;try{for(var i=_(Object.keys(this._fieldIds)),s=i.next();!s.done;s=i.next()){var l=s.value;if(this._fieldIds[l]===t){this._options.logger("warn","MiniSearch: document with ID ".concat(this._documentIds.get(e),' has changed before removal: term "').concat(r,'" was not present in field "').concat(l,'". Removing a document after it has changed can corrupt the index!'),"version_conflict");return}}}catch(u){n={error:u}}finally{try{s&&!s.done&&(a=i.return)&&a.call(i)}finally{if(n)throw n.error}}},o.prototype.addDocumentId=function(e){var t=this._nextId;return this._idToShortId.set(e,t),this._documentIds.set(t,e),this._documentCount+=1,this._nextId+=1,t},o.prototype.addFields=function(e){for(var t=0;t(jt("data-v-c2b3b158"),o=o(),Wt(),o),Xr=["aria-owns"],ea={class:"shell"},ta=["title"],ra=Q(()=>A("svg",{class:"search-icon",width:"18",height:"18",viewBox:"0 0 24 24","aria-hidden":"true"},[A("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[A("circle",{cx:"11",cy:"11",r:"8"}),A("path",{d:"m21 21l-4.35-4.35"})])],-1)),aa=[ra],na={class:"search-actions before"},ia=["title"],oa=Q(()=>A("svg",{width:"18",height:"18",viewBox:"0 0 24 24","aria-hidden":"true"},[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 12H5m7 7l-7-7l7-7"})],-1)),sa=[oa],la=["placeholder"],ua={class:"search-actions"},ca=["title"],fa=Q(()=>A("svg",{width:"18",height:"18",viewBox:"0 0 24 24","aria-hidden":"true"},[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 14h7v7H3zM3 3h7v7H3zm11 1h7m-7 5h7m-7 6h7m-7 5h7"})],-1)),da=[fa],ha=["disabled","title"],va=Q(()=>A("svg",{width:"18",height:"18",viewBox:"0 0 24 24","aria-hidden":"true"},[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M20 5H9l-7 7l7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2Zm-2 4l-6 6m0-6l6 6"})],-1)),pa=[va],ya=["id","role","aria-labelledby"],ma=["aria-selected"],ga=["href","aria-label","onMouseenter","onFocusin"],ba={class:"titles"},wa=Q(()=>A("span",{class:"title-icon"},"#",-1)),xa=["innerHTML"],Fa=Q(()=>A("svg",{width:"18",height:"18",viewBox:"0 0 24 24"},[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m9 18l6-6l-6-6"})],-1)),Ea={class:"title main"},Sa=["innerHTML"],Aa={key:0,class:"excerpt-wrapper"},Ca={key:0,class:"excerpt",inert:""},Na=["innerHTML"],Ta=Q(()=>A("div",{class:"excerpt-gradient-bottom"},null,-1)),ka=Q(()=>A("div",{class:"excerpt-gradient-top"},null,-1)),Ia={key:0,class:"no-results"},_a={class:"search-keyboard-shortcuts"},Da=["aria-label"],Oa=Q(()=>A("svg",{width:"14",height:"14",viewBox:"0 0 24 24"},[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 19V5m-7 7l7-7l7 7"})],-1)),Ra=[Oa],Ma=["aria-label"],Pa=Q(()=>A("svg",{width:"14",height:"14",viewBox:"0 0 24 24"},[A("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 5v14m7-7l-7 7l-7-7"})],-1)),La=[Pa],za=["aria-label"],Ba=Q(()=>A("svg",{width:"14",height:"14",viewBox:"0 0 24 24"},[A("g",{fill:"none",stroke:"currentcolor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[A("path",{d:"m9 10l-5 5l5 5"}),A("path",{d:"M20 4v7a4 4 0 0 1-4 4H4"})])],-1)),Va=[Ba],$a=["aria-label"],ja=Dt({__name:"VPLocalSearchBox",props:{placeholder:{}},emits:["close"],setup(o,{emit:e}){var O,P,z;const t=de(),r=de(),n=de(),a=de(ar),i=Qt(),{activate:s}=Pr(t,{immediate:!0,allowOutsideClick:!0,clickOutsideDeactivates:!0,escapeDeactivates:!0}),{localeIndex:l,theme:u}=i,d=ot(async()=>{var m,N,$,J,H,G,B,U,Y;return it(Jr.loadJSON(($=await((N=(m=a.value)[l.value])==null?void 0:N.call(m)))==null?void 0:$.default,{fields:["title","titles","text"],storeFields:["title","titles"],searchOptions:{fuzzy:.2,prefix:!0,boost:{title:4,text:2,titles:1},...((J=u.value.search)==null?void 0:J.provider)==="local"&&((G=(H=u.value.search.options)==null?void 0:H.miniSearch)==null?void 0:G.searchOptions)},...((B=u.value.search)==null?void 0:B.provider)==="local"&&((Y=(U=u.value.search.options)==null?void 0:U.miniSearch)==null?void 0:Y.options)}))}),v=_e(()=>{var m,N;return((m=u.value.search)==null?void 0:m.provider)==="local"&&((N=u.value.search.options)==null?void 0:N.disableQueryPersistence)===!0}).value?ie(""):Yt("vitepress:local-search-filter",""),p=Zt("vitepress:local-search-detailed-list",((O=u.value.search)==null?void 0:O.provider)==="local"&&((P=u.value.search.options)==null?void 0:P.detailedView)===!0),b=_e(()=>{var m,N,$;return((m=u.value.search)==null?void 0:m.provider)==="local"&&(((N=u.value.search.options)==null?void 0:N.disableDetailedView)===!0||(($=u.value.search.options)==null?void 0:$.detailedView)===!1)});Ot(()=>{b.value&&(p.value=!1)});const g=de([]),w=ie(!1);$e(v,()=>{w.value=!1});const C=ot(async()=>{if(r.value)return it(new zr(r.value))},null);Xt(()=>[d.value,v.value,p.value],async([m,N,$],J,H)=>{var Ge,qe,Qe,Ye;let G=!1;if(H(()=>{G=!0}),!m)return;g.value=m.search(N).slice(0,16),w.value=!0;const B=$?await Promise.all(g.value.map(q=>T(q.id))):[];if(G)return;const U=new Map;for(const{id:q,mod:re}of B){const ae=q.slice(0,q.indexOf("#"));let ee=U.get(ae);if(ee)continue;ee=new Map,U.set(ae,ee);const Z=re.default??re;if(Z!=null&&Z.render||Z!=null&&Z.setup){const ne=Kt(Z);ne.config.warnHandler=()=>{},ne.provide(Jt,i),Object.defineProperties(ne.config.globalProperties,{$frontmatter:{get(){return i.frontmatter.value}},$params:{get(){return i.page.value.params}}});const Ze=document.createElement("div");ne.mount(Ze),Ze.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(fe=>{var tt;const be=(tt=fe.querySelector("a"))==null?void 0:tt.getAttribute("href"),Xe=(be==null?void 0:be.startsWith("#"))&&be.slice(1);if(!Xe)return;let et="";for(;(fe=fe.nextElementSibling)&&!/^h[1-6]$/i.test(fe.tagName);)et+=fe.outerHTML;ee.set(Xe,et)}),ne.unmount()}if(G)return}const Y=new Set;if(g.value=g.value.map(q=>{const[re,ae]=q.id.split("#"),ee=U.get(re),Z=(ee==null?void 0:ee.get(ae))??"";for(const ne in q.match)Y.add(ne);return{...q,text:Z}}),await he(),G)return;await new Promise(q=>{var re;(re=C.value)==null||re.unmark({done:()=>{var ae;(ae=C.value)==null||ae.markRegExp(I(Y),{done:q})}})});const Ie=((Ge=t.value)==null?void 0:Ge.querySelectorAll(".result .excerpt"))??[];for(const q of Ie)(qe=q.querySelector('mark[data-markjs="true"]'))==null||qe.scrollIntoView({block:"center"});(Ye=(Qe=r.value)==null?void 0:Qe.firstElementChild)==null||Ye.scrollIntoView({block:"start"})},{debounce:200,immediate:!0});async function T(m){const N=Ut(m.slice(0,m.indexOf("#")));try{if(!N)throw new Error(`Cannot find file for id: ${m}`);return{id:m,mod:await Ve(()=>import(N),[])}}catch($){return console.error($),{id:m,mod:{}}}}const E=ie(),M=_e(()=>{var m;return((m=v.value)==null?void 0:m.length)<=0});function R(m=!0){var N,$;(N=E.value)==null||N.focus(),m&&(($=E.value)==null||$.select())}De(()=>{R()});function L(m){m.pointerType==="mouse"&&R()}const S=ie(-1),k=ie(!1);$e(g,m=>{S.value=m.length?0:-1,D()});function D(){he(()=>{const m=document.querySelector(".result.selected");m&&m.scrollIntoView({block:"nearest"})})}xe("ArrowUp",m=>{m.preventDefault(),S.value--,S.value<0&&(S.value=g.value.length-1),k.value=!0,D()}),xe("ArrowDown",m=>{m.preventDefault(),S.value++,S.value>=g.value.length&&(S.value=0),k.value=!0,D()});const F=Rt();xe("Enter",()=>{const m=g.value[S.value];m&&(F.go(m.id),e("close"))}),xe("Escape",()=>{e("close")});const f={modal:{displayDetails:"Display detailed list",resetButtonTitle:"Reset search",backButtonTitle:"Close search",noResultsText:"No results for",footer:{selectText:"to select",selectKeyAriaLabel:"enter",navigateText:"to navigate",navigateUpKeyAriaLabel:"up arrow",navigateDownKeyAriaLabel:"down arrow",closeText:"to close",closeKeyAriaLabel:"escape"}}},c=er((z=u.value.search)==null?void 0:z.options,f);De(()=>{window.history.pushState(null,"",null)}),tr("popstate",m=>{m.preventDefault(),e("close")});const y=rr(n);De(()=>{n.value=document.body,he(()=>{y.value=!0,he().then(()=>s())})}),Mt(()=>{y.value=!1});function x(){v.value="",he().then(()=>R(!1))}function I(m){return new RegExp([...m].sort((N,$)=>$.length-N.length).map(N=>`(${N.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")})`).join("|"),"gi")}return(m,N)=>{var $,J,H,G;return X(),Pt($t,{to:"body"},[A("div",{ref_key:"el",ref:t,role:"button","aria-owns":($=g.value)!=null&&$.length?"localsearch-list":void 0,"aria-expanded":"true","aria-haspopup":"listbox","aria-labelledby":"localsearch-label",class:"VPLocalSearchBox"},[A("div",{class:"backdrop",onClick:N[0]||(N[0]=B=>m.$emit("close"))}),A("div",ea,[A("form",{class:"search-bar",onPointerup:N[4]||(N[4]=B=>L(B)),onSubmit:N[5]||(N[5]=Lt(()=>{},["prevent"]))},[A("label",{title:m.placeholder,id:"localsearch-label",for:"localsearch-input"},aa,8,ta),A("div",na,[A("button",{class:"back-button",title:W(c)("modal.backButtonTitle"),onClick:N[1]||(N[1]=B=>m.$emit("close"))},sa,8,ia)]),zt(A("input",{ref_key:"searchInput",ref:E,"onUpdate:modelValue":N[2]||(N[2]=B=>Vt(v)?v.value=B:null),placeholder:m.placeholder,id:"localsearch-input","aria-labelledby":"localsearch-label",class:"search-input"},null,8,la),[[Bt,W(v)]]),A("div",ua,[b.value?we("",!0):(X(),te("button",{key:0,class:rt(["toggle-layout-button",{"detailed-list":W(p)}]),title:W(c)("modal.displayDetails"),onClick:N[3]||(N[3]=B=>S.value>-1&&(p.value=!W(p)))},da,10,ca)),A("button",{class:"clear-button",type:"reset",disabled:M.value,title:W(c)("modal.resetButtonTitle"),onClick:x},pa,8,ha)])],32),A("ul",{ref_key:"resultsEl",ref:r,id:(J=g.value)!=null&&J.length?"localsearch-list":void 0,role:(H=g.value)!=null&&H.length?"listbox":void 0,"aria-labelledby":(G=g.value)!=null&&G.length?"localsearch-label":void 0,class:"results",onMousemove:N[7]||(N[7]=B=>k.value=!1)},[(X(!0),te(nt,null,at(g.value,(B,U)=>(X(),te("li",{key:B.id,role:"option","aria-selected":S.value===U?"true":"false"},[A("a",{href:B.id,class:rt(["result",{selected:S.value===U}]),"aria-label":[...B.titles,B.title].join(" > "),onMouseenter:Y=>!k.value&&(S.value=U),onFocusin:Y=>S.value=U,onClick:N[6]||(N[6]=Y=>m.$emit("close"))},[A("div",null,[A("div",ba,[wa,(X(!0),te(nt,null,at(B.titles,(Y,Ie)=>(X(),te("span",{key:Ie,class:"title"},[A("span",{class:"text",innerHTML:Y},null,8,xa),Fa]))),128)),A("span",Ea,[A("span",{class:"text",innerHTML:B.title},null,8,Sa)])]),W(p)?(X(),te("div",Aa,[B.text?(X(),te("div",Ca,[A("div",{class:"vp-doc",innerHTML:B.text},null,8,Na)])):we("",!0),Ta,ka])):we("",!0)])],42,ga)],8,ma))),128)),W(v)&&!g.value.length&&w.value?(X(),te("li",Ia,[ve(pe(W(c)("modal.noResultsText"))+' "',1),A("strong",null,pe(W(v)),1),ve('" ')])):we("",!0)],40,ya),A("div",_a,[A("span",null,[A("kbd",{"aria-label":W(c)("modal.footer.navigateUpKeyAriaLabel")},Ra,8,Da),A("kbd",{"aria-label":W(c)("modal.footer.navigateDownKeyAriaLabel")},La,8,Ma),ve(" "+pe(W(c)("modal.footer.navigateText")),1)]),A("span",null,[A("kbd",{"aria-label":W(c)("modal.footer.selectKeyAriaLabel")},Va,8,za),ve(" "+pe(W(c)("modal.footer.selectText")),1)]),A("span",null,[A("kbd",{"aria-label":W(c)("modal.footer.closeKeyAriaLabel")},"esc",8,$a),ve(" "+pe(W(c)("modal.footer.closeText")),1)])])])],8,Xr)])}}});const Ha=Ht(ja,[["__scopeId","data-v-c2b3b158"]]);export{Ha as default}; diff --git a/assets/chunks/VPLocalSearchBox.b889f6b1.js b/assets/chunks/VPLocalSearchBox.b889f6b1.js new file mode 100644 index 000000000..da1ecea4c --- /dev/null +++ b/assets/chunks/VPLocalSearchBox.b889f6b1.js @@ -0,0 +1,7 @@ +import{V as ze,h as ne,x as Be,af as Nt,ag as Tt,d as kt,E as ge,ah as et,g as ke,ai as It,aj as Dt,y as _t,ak as Ot,j as Ie,O as fe,S as be,al as Rt,am as Mt,W as Lt,s as Pt,an as zt,o as Z,b as Bt,k as S,$ as Vt,l as W,ao as $t,ap as Wt,aq as Kt,c as ee,n as tt,e as we,D as rt,F as at,a as de,t as he,ar as jt,p as Jt,m as Ut,as as nt,at as Ht,a5 as Gt,ab as qt,_ as Qt}from"./framework.385ac4c3.js";import{u as Yt,c as Zt}from"./theme.5fb6dc5e.js";const Xt={"en-US":()=>ze(()=>import("./@localSearchIndexen-US.7bc93ad6.js"),[]),root:()=>ze(()=>import("./@localSearchIndexroot.64cd48c1.js"),[])};/*! +* tabbable 6.2.0 +* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE +*/var pt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ee=pt.join(","),yt=typeof Element>"u",oe=yt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Se=!yt&&Element.prototype.getRootNode?function(o){var e;return o==null||(e=o.getRootNode)===null||e===void 0?void 0:e.call(o)}:function(o){return o==null?void 0:o.ownerDocument},Ae=function o(e,t){var r;t===void 0&&(t=!0);var n=e==null||(r=e.getAttribute)===null||r===void 0?void 0:r.call(e,"inert"),a=n===""||n==="true",i=a||t&&e&&o(e.parentNode);return i},er=function(e){var t,r=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return r===""||r==="true"},mt=function(e,t,r){if(Ae(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ee));return t&&oe.call(e,Ee)&&n.unshift(e),n=n.filter(r),n},gt=function o(e,t,r){for(var n=[],a=Array.from(e);a.length;){var i=a.shift();if(!Ae(i,!1))if(i.tagName==="SLOT"){var s=i.assignedElements(),u=s.length?s:i.children,l=o(u,!0,r);r.flatten?n.push.apply(n,l):n.push({scopeParent:i,candidates:l})}else{var h=oe.call(i,Ee);h&&r.filter(i)&&(t||!e.includes(i))&&n.push(i);var d=i.shadowRoot||typeof r.getShadowRoot=="function"&&r.getShadowRoot(i),v=!Ae(d,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(d&&v){var y=o(d===!0?i.children:d.children,!0,r);r.flatten?n.push.apply(n,y):n.push({scopeParent:i,candidates:y})}else a.unshift.apply(a,i.children)}}return n},bt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},ie=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||er(e))&&!bt(e)?0:e.tabIndex},tr=function(e,t){var r=ie(e);return r<0&&t&&!bt(e)?0:r},rr=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},wt=function(e){return e.tagName==="INPUT"},ar=function(e){return wt(e)&&e.type==="hidden"},nr=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(r){return r.tagName==="SUMMARY"});return t},ir=function(e,t){for(var r=0;rsummary:first-of-type"),i=a?e.parentElement:e;if(oe.call(i,"details:not([open]) *"))return!0;if(!r||r==="full"||r==="legacy-full"){if(typeof n=="function"){for(var s=e;e;){var u=e.parentElement,l=Se(e);if(u&&!u.shadowRoot&&n(u)===!0)return it(e);e.assignedSlot?e=e.assignedSlot:!u&&l!==e.ownerDocument?e=l.host:e=u}e=s}if(lr(e))return!e.getClientRects().length;if(r!=="legacy-full")return!0}else if(r==="non-zero-area")return it(e);return!1},fr=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var r=0;r=0)},hr=function o(e){var t=[],r=[];return e.forEach(function(n,a){var i=!!n.scopeParent,s=i?n.scopeParent:n,u=tr(s,i),l=i?o(n.candidates):s;u===0?i?t.push.apply(t,l):t.push(s):r.push({documentOrder:a,tabIndex:u,item:n,isScope:i,content:l})}),r.sort(rr).reduce(function(n,a){return a.isScope?n.push.apply(n,a.content):n.push(a.content),n},[]).concat(t)},vr=function(e,t){t=t||{};var r;return t.getShadowRoot?r=gt([e],t.includeContainer,{filter:Ve.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:dr}):r=mt(e,t.includeContainer,Ve.bind(null,t)),hr(r)},pr=function(e,t){t=t||{};var r;return t.getShadowRoot?r=gt([e],t.includeContainer,{filter:Ce.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):r=mt(e,t.includeContainer,Ce.bind(null,t)),r},se=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return oe.call(e,Ee)===!1?!1:Ve(t,e)},yr=pt.concat("iframe").join(","),De=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return oe.call(e,yr)===!1?!1:Ce(t,e)};/*! +* focus-trap 7.5.2 +* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE +*/function ot(o,e){var t=Object.keys(o);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(o);e&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(o,n).enumerable})),t.push.apply(t,r)}return t}function st(o){for(var e=1;e0){var r=e[e.length-1];r!==t&&r.pause()}var n=e.indexOf(t);n===-1||e.splice(n,1),e.push(t)},deactivateTrap:function(e,t){var r=e.indexOf(t);r!==-1&&e.splice(r,1),e.length>0&&e[e.length-1].unpause()}},wr=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},xr=function(e){return(e==null?void 0:e.key)==="Escape"||(e==null?void 0:e.key)==="Esc"||(e==null?void 0:e.keyCode)===27},ye=function(e){return(e==null?void 0:e.key)==="Tab"||(e==null?void 0:e.keyCode)===9},Fr=function(e){return ye(e)&&!e.shiftKey},Er=function(e){return ye(e)&&e.shiftKey},lt=function(e){return setTimeout(e,0)},ct=function(e,t){var r=-1;return e.every(function(n,a){return t(n)?(r=a,!1):!0}),r},ve=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n1?p-1:0),k=1;k=0)c=r.activeElement;else{var f=i.tabbableGroups[0],p=f&&f.firstTabbableNode;c=p||h("fallbackFocus")}if(!c)throw new Error("Your focus-trap needs to have at least one focusable element");return c},v=function(){if(i.containerGroups=i.containers.map(function(c){var f=vr(c,a.tabbableOptions),p=pr(c,a.tabbableOptions),w=f.length>0?f[0]:void 0,k=f.length>0?f[f.length-1]:void 0,O=p.find(function(b){return se(b)}),P=p.slice().reverse().find(function(b){return se(b)}),m=!!f.find(function(b){return ie(b)>0});return{container:c,tabbableNodes:f,focusableNodes:p,posTabIndexesFound:m,firstTabbableNode:w,lastTabbableNode:k,firstDomTabbableNode:O,lastDomTabbableNode:P,nextTabbableNode:function(z){var G=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,j=f.indexOf(z);return j<0?G?p.slice(p.indexOf(z)+1).find(function(J){return se(J)}):p.slice(0,p.indexOf(z)).reverse().find(function(J){return se(J)}):f[j+(G?1:-1)]}}}),i.tabbableGroups=i.containerGroups.filter(function(c){return c.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!h("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(i.containerGroups.find(function(c){return c.posTabIndexesFound})&&i.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},y=function F(c){if(c!==!1&&c!==r.activeElement){if(!c||!c.focus){F(d());return}c.focus({preventScroll:!!a.preventScroll}),i.mostRecentlyFocusedNode=c,wr(c)&&c.select()}},g=function(c){var f=h("setReturnFocus",c);return f||(f===!1?!1:c)},E=function(c){var f=c.target,p=c.event,w=c.isBackward,k=w===void 0?!1:w;f=f||xe(p),v();var O=null;if(i.tabbableGroups.length>0){var P=l(f,p),m=P>=0?i.containerGroups[P]:void 0;if(P<0)k?O=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:O=i.tabbableGroups[0].firstTabbableNode;else if(k){var b=ct(i.tabbableGroups,function(U){var H=U.firstTabbableNode;return f===H});if(b<0&&(m.container===f||De(f,a.tabbableOptions)&&!se(f,a.tabbableOptions)&&!m.nextTabbableNode(f,!1))&&(b=P),b>=0){var z=b===0?i.tabbableGroups.length-1:b-1,G=i.tabbableGroups[z];O=ie(f)>=0?G.lastTabbableNode:G.lastDomTabbableNode}else ye(p)||(O=m.nextTabbableNode(f,!1))}else{var j=ct(i.tabbableGroups,function(U){var H=U.lastTabbableNode;return f===H});if(j<0&&(m.container===f||De(f,a.tabbableOptions)&&!se(f,a.tabbableOptions)&&!m.nextTabbableNode(f))&&(j=P),j>=0){var J=j===i.tabbableGroups.length-1?0:j+1,B=i.tabbableGroups[J];O=ie(f)>=0?B.firstTabbableNode:B.firstDomTabbableNode}else ye(p)||(O=m.nextTabbableNode(f))}}else O=h("fallbackFocus");return O},x=function(c){var f=xe(c);if(!(l(f,c)>=0)){if(ve(a.clickOutsideDeactivates,c)){s.deactivate({returnFocus:a.returnFocusOnDeactivate});return}ve(a.allowOutsideClick,c)||c.preventDefault()}},C=function(c){var f=xe(c),p=l(f,c)>=0;if(p||f instanceof Document)p&&(i.mostRecentlyFocusedNode=f);else{c.stopImmediatePropagation();var w,k=!0;if(i.mostRecentlyFocusedNode)if(ie(i.mostRecentlyFocusedNode)>0){var O=l(i.mostRecentlyFocusedNode),P=i.containerGroups[O].tabbableNodes;if(P.length>0){var m=P.findIndex(function(b){return b===i.mostRecentlyFocusedNode});m>=0&&(a.isKeyForward(i.recentNavEvent)?m+1=0&&(w=P[m-1],k=!1))}}else i.containerGroups.some(function(b){return b.tabbableNodes.some(function(z){return ie(z)>0})})||(k=!1);else k=!1;k&&(w=E({target:i.mostRecentlyFocusedNode,isBackward:a.isKeyBackward(i.recentNavEvent)})),y(w||i.mostRecentlyFocusedNode||d())}i.recentNavEvent=void 0},N=function(c){var f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;i.recentNavEvent=c;var p=E({event:c,isBackward:f});p&&(ye(c)&&c.preventDefault(),y(p))},A=function(c){if(xr(c)&&ve(a.escapeDeactivates,c)!==!1){c.preventDefault(),s.deactivate();return}(a.isKeyForward(c)||a.isKeyBackward(c))&&N(c,a.isKeyBackward(c))},M=function(c){var f=xe(c);l(f,c)>=0||ve(a.clickOutsideDeactivates,c)||ve(a.allowOutsideClick,c)||(c.preventDefault(),c.stopImmediatePropagation())},L=function(){if(i.active)return ut.activateTrap(n,s),i.delayInitialFocusTimer=a.delayInitialFocus?lt(function(){y(d())}):y(d()),r.addEventListener("focusin",C,!0),r.addEventListener("mousedown",x,{capture:!0,passive:!1}),r.addEventListener("touchstart",x,{capture:!0,passive:!1}),r.addEventListener("click",M,{capture:!0,passive:!1}),r.addEventListener("keydown",A,{capture:!0,passive:!1}),s},D=function(){if(i.active)return r.removeEventListener("focusin",C,!0),r.removeEventListener("mousedown",x,!0),r.removeEventListener("touchstart",x,!0),r.removeEventListener("click",M,!0),r.removeEventListener("keydown",A,!0),s},T=function(c){var f=c.some(function(p){var w=Array.from(p.removedNodes);return w.some(function(k){return k===i.mostRecentlyFocusedNode})});f&&y(d())},I=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(T):void 0,R=function(){I&&(I.disconnect(),i.active&&!i.paused&&i.containers.map(function(c){I.observe(c,{subtree:!0,childList:!0})}))};return s={get active(){return i.active},get paused(){return i.paused},activate:function(c){if(i.active)return this;var f=u(c,"onActivate"),p=u(c,"onPostActivate"),w=u(c,"checkCanFocusTrap");w||v(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=r.activeElement,f==null||f();var k=function(){w&&v(),L(),R(),p==null||p()};return w?(w(i.containers.concat()).then(k,k),this):(k(),this)},deactivate:function(c){if(!i.active)return this;var f=st({onDeactivate:a.onDeactivate,onPostDeactivate:a.onPostDeactivate,checkCanReturnFocus:a.checkCanReturnFocus},c);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,D(),i.active=!1,i.paused=!1,R(),ut.deactivateTrap(n,s);var p=u(f,"onDeactivate"),w=u(f,"onPostDeactivate"),k=u(f,"checkCanReturnFocus"),O=u(f,"returnFocus","returnFocusOnDeactivate");p==null||p();var P=function(){lt(function(){O&&y(g(i.nodeFocusedBeforeActivation)),w==null||w()})};return O&&k?(k(g(i.nodeFocusedBeforeActivation)).then(P,P),this):(P(),this)},pause:function(c){if(i.paused||!i.active)return this;var f=u(c,"onPause"),p=u(c,"onPostPause");return i.paused=!0,f==null||f(),D(),R(),p==null||p(),this},unpause:function(c){if(!i.paused||!i.active)return this;var f=u(c,"onUnpause"),p=u(c,"onPostUnpause");return i.paused=!1,f==null||f(),v(),L(),R(),p==null||p(),this},updateContainerElements:function(c){var f=[].concat(c).filter(Boolean);return i.containers=f.map(function(p){return typeof p=="string"?r.querySelector(p):p}),i.active&&v(),R(),this}},s.updateContainerElements(e),s};function Cr(o,e={}){let t;const{immediate:r,...n}=e,a=ne(!1),i=ne(!1),s=d=>t&&t.activate(d),u=d=>t&&t.deactivate(d),l=()=>{t&&(t.pause(),i.value=!0)},h=()=>{t&&(t.unpause(),i.value=!1)};return Be(()=>Nt(o),d=>{d&&(t=Ar(d,{...n,onActivate(){a.value=!0,e.onActivate&&e.onActivate()},onDeactivate(){a.value=!1,e.onDeactivate&&e.onDeactivate()}}),r&&s())},{flush:"post"}),Tt(()=>u()),{hasFocus:a,isPaused:i,activate:s,deactivate:u,pause:l,unpause:h}}class le{constructor(e,t=!0,r=[],n=5e3){this.ctx=e,this.iframes=t,this.exclude=r,this.iframesTimeout=n}static matches(e,t){const r=typeof t=="string"?[t]:t,n=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(n){let a=!1;return r.every(i=>n.call(e,i)?(a=!0,!1):!0),a}else return!1}getContexts(){let e,t=[];return typeof this.ctx>"u"||!this.ctx?e=[]:NodeList.prototype.isPrototypeOf(this.ctx)?e=Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?e=this.ctx:typeof this.ctx=="string"?e=Array.prototype.slice.call(document.querySelectorAll(this.ctx)):e=[this.ctx],e.forEach(r=>{const n=t.filter(a=>a.contains(r)).length>0;t.indexOf(r)===-1&&!n&&t.push(r)}),t}getIframeContents(e,t,r=()=>{}){let n;try{const a=e.contentWindow;if(n=a.document,!a||!n)throw new Error("iframe inaccessible")}catch{r()}n&&t(n)}isIframeBlank(e){const t="about:blank",r=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&r!==t&&r}observeIframeLoad(e,t,r){let n=!1,a=null;const i=()=>{if(!n){n=!0,clearTimeout(a);try{this.isIframeBlank(e)||(e.removeEventListener("load",i),this.getIframeContents(e,t,r))}catch{r()}}};e.addEventListener("load",i),a=setTimeout(i,this.iframesTimeout)}onIframeReady(e,t,r){try{e.contentWindow.document.readyState==="complete"?this.isIframeBlank(e)?this.observeIframeLoad(e,t,r):this.getIframeContents(e,t,r):this.observeIframeLoad(e,t,r)}catch{r()}}waitForIframes(e,t){let r=0;this.forEachIframe(e,()=>!0,n=>{r++,this.waitForIframes(n.querySelector("html"),()=>{--r||t()})},n=>{n||t()})}forEachIframe(e,t,r,n=()=>{}){let a=e.querySelectorAll("iframe"),i=a.length,s=0;a=Array.prototype.slice.call(a);const u=()=>{--i<=0&&n(s)};i||u(),a.forEach(l=>{le.matches(l,this.exclude)?u():this.onIframeReady(l,h=>{t(l)&&(s++,r(h)),u()},u)})}createIterator(e,t,r){return document.createNodeIterator(e,t,r,!1)}createInstanceOnIframe(e){return new le(e.querySelector("html"),this.iframes)}compareNodeIframe(e,t,r){const n=e.compareDocumentPosition(r),a=Node.DOCUMENT_POSITION_PRECEDING;if(n&a)if(t!==null){const i=t.compareDocumentPosition(r),s=Node.DOCUMENT_POSITION_FOLLOWING;if(i&s)return!0}else return!0;return!1}getIteratorNode(e){const t=e.previousNode();let r;return t===null?r=e.nextNode():r=e.nextNode()&&e.nextNode(),{prevNode:t,node:r}}checkIframeFilter(e,t,r,n){let a=!1,i=!1;return n.forEach((s,u)=>{s.val===r&&(a=u,i=s.handled)}),this.compareNodeIframe(e,t,r)?(a===!1&&!i?n.push({val:r,handled:!0}):a!==!1&&!i&&(n[a].handled=!0),!0):(a===!1&&n.push({val:r,handled:!1}),!1)}handleOpenIframes(e,t,r,n){e.forEach(a=>{a.handled||this.getIframeContents(a.val,i=>{this.createInstanceOnIframe(i).forEachNode(t,r,n)})})}iterateThroughNodes(e,t,r,n,a){const i=this.createIterator(t,e,n);let s=[],u=[],l,h,d=()=>({prevNode:h,node:l}=this.getIteratorNode(i),l);for(;d();)this.iframes&&this.forEachIframe(t,v=>this.checkIframeFilter(l,h,v,s),v=>{this.createInstanceOnIframe(v).forEachNode(e,y=>u.push(y),n)}),u.push(l);u.forEach(v=>{r(v)}),this.iframes&&this.handleOpenIframes(s,e,r,n),a()}forEachNode(e,t,r,n=()=>{}){const a=this.getContexts();let i=a.length;i||n(),a.forEach(s=>{const u=()=>{this.iterateThroughNodes(e,s,t,r,()=>{--i<=0&&n()})};this.iframes?this.waitForIframes(s,u):u()})}}let Nr=class{constructor(e){this.ctx=e,this.ie=!1;const t=window.navigator.userAgent;(t.indexOf("MSIE")>-1||t.indexOf("Trident")>-1)&&(this.ie=!0)}set opt(e){this._opt=Object.assign({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:"partially",acrossElements:!1,caseSensitive:!1,ignoreJoiners:!1,ignoreGroups:0,ignorePunctuation:[],wildcards:"disabled",each:()=>{},noMatch:()=>{},filter:()=>!0,done:()=>{},debug:!1,log:window.console},e)}get opt(){return this._opt}get iterator(){return new le(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}log(e,t="debug"){const r=this.opt.log;this.opt.debug&&typeof r=="object"&&typeof r[t]=="function"&&r[t](`mark.js: ${e}`)}escapeStr(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}createRegExp(e){return this.opt.wildcards!=="disabled"&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),this.opt.wildcards!=="disabled"&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e),e}createSynonymsRegExp(e){const t=this.opt.synonyms,r=this.opt.caseSensitive?"":"i",n=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(let a in t)if(t.hasOwnProperty(a)){const i=t[a],s=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(a):this.escapeStr(a),u=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(i):this.escapeStr(i);s!==""&&u!==""&&(e=e.replace(new RegExp(`(${this.escapeStr(s)}|${this.escapeStr(u)})`,`gm${r}`),n+`(${this.processSynomyms(s)}|${this.processSynomyms(u)})`+n))}return e}processSynomyms(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}setupWildcardsRegExp(e){return e=e.replace(/(?:\\)*\?/g,t=>t.charAt(0)==="\\"?"?":""),e.replace(/(?:\\)*\*/g,t=>t.charAt(0)==="\\"?"*":"")}createWildcardsRegExp(e){let t=this.opt.wildcards==="withSpaces";return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}setupIgnoreJoinersRegExp(e){return e.replace(/[^(|)\\]/g,(t,r,n)=>{let a=n.charAt(r+1);return/[(|)\\]/.test(a)||a===""?t:t+"\0"})}createJoinersRegExp(e){let t=[];const r=this.opt.ignorePunctuation;return Array.isArray(r)&&r.length&&t.push(this.escapeStr(r.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join(`[${t.join("")}]*`):e}createDiacriticsRegExp(e){const t=this.opt.caseSensitive?"":"i",r=this.opt.caseSensitive?["aàáảãạăằắẳẵặâầấẩẫậäåāą","AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćč","CÇĆČ","dđď","DĐĎ","eèéẻẽẹêềếểễệëěēę","EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïī","IÌÍỈĨỊÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøō","OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rř","RŘ","sšśșş","SŠŚȘŞ","tťțţ","TŤȚŢ","uùúủũụưừứửữựûüůū","UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿ","YÝỲỶỸỴŸ","zžżź","ZŽŻŹ"]:["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćčCÇĆČ","dđďDĐĎ","eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïīIÌÍỈĨỊÎÏĪ","lłLŁ","nñňńNÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rřRŘ","sšśșşSŠŚȘŞ","tťțţTŤȚŢ","uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿYÝỲỶỸỴŸ","zžżźZŽŻŹ"];let n=[];return e.split("").forEach(a=>{r.every(i=>{if(i.indexOf(a)!==-1){if(n.indexOf(i)>-1)return!1;e=e.replace(new RegExp(`[${i}]`,`gm${t}`),`[${i}]`),n.push(i)}return!0})}),e}createMergedBlanksRegExp(e){return e.replace(/[\s]+/gmi,"[\\s]+")}createAccuracyRegExp(e){const t="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿";let r=this.opt.accuracy,n=typeof r=="string"?r:r.value,a=typeof r=="string"?[]:r.limiters,i="";switch(a.forEach(s=>{i+=`|${this.escapeStr(s)}`}),n){case"partially":default:return`()(${e})`;case"complementary":return i="\\s"+(i||this.escapeStr(t)),`()([^${i}]*${e}[^${i}]*)`;case"exactly":return`(^|\\s${i})(${e})(?=$|\\s${i})`}}getSeparatedKeywords(e){let t=[];return e.forEach(r=>{this.opt.separateWordSearch?r.split(" ").forEach(n=>{n.trim()&&t.indexOf(n)===-1&&t.push(n)}):r.trim()&&t.indexOf(r)===-1&&t.push(r)}),{keywords:t.sort((r,n)=>n.length-r.length),length:t.length}}isNumeric(e){return Number(parseFloat(e))==e}checkRanges(e){if(!Array.isArray(e)||Object.prototype.toString.call(e[0])!=="[object Object]")return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];const t=[];let r=0;return e.sort((n,a)=>n.start-a.start).forEach(n=>{let{start:a,end:i,valid:s}=this.callNoMatchOnInvalidRanges(n,r);s&&(n.start=a,n.length=i-a,t.push(n),r=i)}),t}callNoMatchOnInvalidRanges(e,t){let r,n,a=!1;return e&&typeof e.start<"u"?(r=parseInt(e.start,10),n=r+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&n-t>0&&n-r>0?a=!0:(this.log(`Ignoring invalid or overlapping range: ${JSON.stringify(e)}`),this.opt.noMatch(e))):(this.log(`Ignoring invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)),{start:r,end:n,valid:a}}checkWhitespaceRanges(e,t,r){let n,a=!0,i=r.length,s=t-i,u=parseInt(e.start,10)-s;return u=u>i?i:u,n=u+parseInt(e.length,10),n>i&&(n=i,this.log(`End range automatically set to the max value of ${i}`)),u<0||n-u<0||u>i||n>i?(a=!1,this.log(`Invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)):r.substring(u,n).replace(/\s+/g,"")===""&&(a=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:u,end:n,valid:a}}getTextNodes(e){let t="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,n=>{r.push({start:t.length,end:(t+=n.textContent).length,node:n})},n=>this.matchesExclude(n.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT,()=>{e({value:t,nodes:r})})}matchesExclude(e){return le.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}wrapRangeInTextNode(e,t,r){const n=this.opt.element?this.opt.element:"mark",a=e.splitText(t),i=a.splitText(r-t);let s=document.createElement(n);return s.setAttribute("data-markjs","true"),this.opt.className&&s.setAttribute("class",this.opt.className),s.textContent=a.textContent,a.parentNode.replaceChild(s,a),i}wrapRangeInMappedTextNode(e,t,r,n,a){e.nodes.every((i,s)=>{const u=e.nodes[s+1];if(typeof u>"u"||u.start>t){if(!n(i.node))return!1;const l=t-i.start,h=(r>i.end?i.end:r)-i.start,d=e.value.substr(0,i.start),v=e.value.substr(h+i.start);if(i.node=this.wrapRangeInTextNode(i.node,l,h),e.value=d+v,e.nodes.forEach((y,g)=>{g>=s&&(e.nodes[g].start>0&&g!==s&&(e.nodes[g].start-=h),e.nodes[g].end-=h)}),r-=h,a(i.node.previousSibling,i.start),r>i.end)t=i.end;else return!1}return!0})}wrapMatches(e,t,r,n,a){const i=t===0?0:t+1;this.getTextNodes(s=>{s.nodes.forEach(u=>{u=u.node;let l;for(;(l=e.exec(u.textContent))!==null&&l[i]!=="";){if(!r(l[i],u))continue;let h=l.index;if(i!==0)for(let d=1;d{let u;for(;(u=e.exec(s.value))!==null&&u[i]!=="";){let l=u.index;if(i!==0)for(let d=1;dr(u[i],d),(d,v)=>{e.lastIndex=v,n(d)})}a()})}wrapRangeFromIndex(e,t,r,n){this.getTextNodes(a=>{const i=a.value.length;e.forEach((s,u)=>{let{start:l,end:h,valid:d}=this.checkWhitespaceRanges(s,i,a.value);d&&this.wrapRangeInMappedTextNode(a,l,h,v=>t(v,s,a.value.substring(l,h),u),v=>{r(v,s)})}),n()})}unwrapMatches(e){const t=e.parentNode;let r=document.createDocumentFragment();for(;e.firstChild;)r.appendChild(e.removeChild(e.firstChild));t.replaceChild(r,e),this.ie?this.normalizeTextNode(t):t.normalize()}normalizeTextNode(e){if(e){if(e.nodeType===3)for(;e.nextSibling&&e.nextSibling.nodeType===3;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}markRegExp(e,t){this.opt=t,this.log(`Searching with expression "${e}"`);let r=0,n="wrapMatches";const a=i=>{r++,this.opt.each(i)};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),this[n](e,this.opt.ignoreGroups,(i,s)=>this.opt.filter(s,i,r),a,()=>{r===0&&this.opt.noMatch(e),this.opt.done(r)})}mark(e,t){this.opt=t;let r=0,n="wrapMatches";const{keywords:a,length:i}=this.getSeparatedKeywords(typeof e=="string"?[e]:e),s=this.opt.caseSensitive?"":"i",u=l=>{let h=new RegExp(this.createRegExp(l),`gm${s}`),d=0;this.log(`Searching with expression "${h}"`),this[n](h,1,(v,y)=>this.opt.filter(y,l,r,d),v=>{d++,r++,this.opt.each(v)},()=>{d===0&&this.opt.noMatch(l),a[i-1]===l?this.opt.done(r):u(a[a.indexOf(l)+1])})};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),i===0?this.opt.done(r):u(a[0])}markRanges(e,t){this.opt=t;let r=0,n=this.checkRanges(e);n&&n.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(n)),this.wrapRangeFromIndex(n,(a,i,s,u)=>this.opt.filter(a,i,s,u),(a,i)=>{r++,this.opt.each(a,i)},()=>{this.opt.done(r)})):this.opt.done(r)}unmark(e){this.opt=e;let t=this.opt.element?this.opt.element:"*";t+="[data-markjs]",this.opt.className&&(t+=`.${this.opt.className}`),this.log(`Removal selector "${t}"`),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,r=>{this.unwrapMatches(r)},r=>{const n=le.matches(r,t),a=this.matchesExclude(r);return!n||a?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},this.opt.done)}};function Tr(o){const e=new Nr(o);return this.mark=(t,r)=>(e.mark(t,r),this),this.markRegExp=(t,r)=>(e.markRegExp(t,r),this),this.markRanges=(t,r)=>(e.markRanges(t,r),this),this.unmark=t=>(e.unmark(t),this),this}var V=function(){return V=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0&&a[a.length-1])&&(l[0]===6||l[0]===2)){t=0;continue}if(l[0]===3&&(!a||l[1]>a[0]&&l[1]=o.length&&(o=void 0),{value:o&&o[r++],done:!o}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function $(o,e){var t=typeof Symbol=="function"&&o[Symbol.iterator];if(!t)return o;var r=t.call(o),n,a=[],i;try{for(;(e===void 0||e-- >0)&&!(n=r.next()).done;)a.push(n.value)}catch(s){i={error:s}}finally{try{n&&!n.done&&(t=r.return)&&t.call(r)}finally{if(i)throw i.error}}return a}var Dr="ENTRIES",xt="KEYS",Ft="VALUES",K="",_e=function(){function o(e,t){var r=e._tree,n=Array.from(r.keys());this.set=e,this._type=t,this._path=n.length>0?[{node:r,keys:n}]:[]}return o.prototype.next=function(){var e=this.dive();return this.backtrack(),e},o.prototype.dive=function(){if(this._path.length===0)return{done:!0,value:void 0};var e=ue(this._path),t=e.node,r=e.keys;if(ue(r)===K)return{done:!1,value:this.result()};var n=t.get(ue(r));return this._path.push({node:n,keys:Array.from(n.keys())}),this.dive()},o.prototype.backtrack=function(){if(this._path.length!==0){var e=ue(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}},o.prototype.key=function(){return this.set._prefix+this._path.map(function(e){var t=e.keys;return ue(t)}).filter(function(e){return e!==K}).join("")},o.prototype.value=function(){return ue(this._path).node.get(K)},o.prototype.result=function(){switch(this._type){case Ft:return this.value();case xt:return this.key();default:return[this.key(),this.value()]}},o.prototype[Symbol.iterator]=function(){return this},o}(),ue=function(o){return o[o.length-1]},_r=function(o,e,t){var r=new Map;if(e===void 0)return r;for(var n=e.length+1,a=n+t,i=new Uint8Array(a*n).fill(t+1),s=0;st)continue e}Et(o.get(y),e,t,r,n,E,i,s+y)}}}catch(p){u={error:p}}finally{try{v&&!v.done&&(l=d.return)&&l.call(d)}finally{if(u)throw u.error}}},Oe=function(){function o(e,t){e===void 0&&(e=new Map),t===void 0&&(t=""),this._size=void 0,this._tree=e,this._prefix=t}return o.prototype.atPrefix=function(e){var t,r;if(!e.startsWith(this._prefix))throw new Error("Mismatched prefix");var n=$(Ne(this._tree,e.slice(this._prefix.length)),2),a=n[0],i=n[1];if(a===void 0){var s=$(je(i),2),u=s[0],l=s[1];try{for(var h=_(u.keys()),d=h.next();!d.done;d=h.next()){var v=d.value;if(v!==K&&v.startsWith(l)){var y=new Map;return y.set(v.slice(l.length),u.get(v)),new o(y,e)}}}catch(g){t={error:g}}finally{try{d&&!d.done&&(r=h.return)&&r.call(h)}finally{if(t)throw t.error}}}return new o(a,e)},o.prototype.clear=function(){this._size=void 0,this._tree.clear()},o.prototype.delete=function(e){return this._size=void 0,Or(this._tree,e)},o.prototype.entries=function(){return new _e(this,Dr)},o.prototype.forEach=function(e){var t,r;try{for(var n=_(this),a=n.next();!a.done;a=n.next()){var i=$(a.value,2),s=i[0],u=i[1];e(s,u,this)}}catch(l){t={error:l}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}},o.prototype.fuzzyGet=function(e,t){return _r(this._tree,e,t)},o.prototype.get=function(e){var t=$e(this._tree,e);return t!==void 0?t.get(K):void 0},o.prototype.has=function(e){var t=$e(this._tree,e);return t!==void 0&&t.has(K)},o.prototype.keys=function(){return new _e(this,xt)},o.prototype.set=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var r=Re(this._tree,e);return r.set(K,t),this},Object.defineProperty(o.prototype,"size",{get:function(){if(this._size)return this._size;this._size=0;for(var e=this.entries();!e.next().done;)this._size+=1;return this._size},enumerable:!1,configurable:!0}),o.prototype.update=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var r=Re(this._tree,e);return r.set(K,t(r.get(K))),this},o.prototype.fetch=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var r=Re(this._tree,e),n=r.get(K);return n===void 0&&r.set(K,n=t()),n},o.prototype.values=function(){return new _e(this,Ft)},o.prototype[Symbol.iterator]=function(){return this.entries()},o.from=function(e){var t,r,n=new o;try{for(var a=_(e),i=a.next();!i.done;i=a.next()){var s=$(i.value,2),u=s[0],l=s[1];n.set(u,l)}}catch(h){t={error:h}}finally{try{i&&!i.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}return n},o.fromObject=function(e){return o.from(Object.entries(e))},o}(),Ne=function(o,e,t){var r,n;if(t===void 0&&(t=[]),e.length===0||o==null)return[o,t];try{for(var a=_(o.keys()),i=a.next();!i.done;i=a.next()){var s=i.value;if(s!==K&&e.startsWith(s))return t.push([o,s]),Ne(o.get(s),e.slice(s.length),t)}}catch(u){r={error:u}}finally{try{i&&!i.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return t.push([o,e]),Ne(void 0,"",t)},$e=function(o,e){var t,r;if(e.length===0||o==null)return o;try{for(var n=_(o.keys()),a=n.next();!a.done;a=n.next()){var i=a.value;if(i!==K&&e.startsWith(i))return $e(o.get(i),e.slice(i.length))}}catch(s){t={error:s}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}},Re=function(o,e){var t,r,n=e.length;e:for(var a=0;o&&a0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new Oe,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}},o.prototype.discard=function(e){var t=this,r=this._idToShortId.get(e);if(r==null)throw new Error("MiniSearch: cannot discard document with ID ".concat(e,": it is not in the index"));this._idToShortId.delete(e),this._documentIds.delete(r),this._storedFields.delete(r),(this._fieldLength.get(r)||[]).forEach(function(n,a){t.removeFieldLength(r,a,t._documentCount,n)}),this._fieldLength.delete(r),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()},o.prototype.maybeAutoVacuum=function(){if(this._options.autoVacuum!==!1){var e=this._options.autoVacuum,t=e.minDirtFactor,r=e.minDirtCount,n=e.batchSize,a=e.batchWait;this.conditionalVacuum({batchSize:n,batchWait:a},{minDirtCount:r,minDirtFactor:t})}},o.prototype.discardAll=function(e){var t,r,n=this._options.autoVacuum;try{this._options.autoVacuum=!1;try{for(var a=_(e),i=a.next();!i.done;i=a.next()){var s=i.value;this.discard(s)}}catch(u){t={error:u}}finally{try{i&&!i.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}}finally{this._options.autoVacuum=n}this.maybeAutoVacuum()},o.prototype.replace=function(e){var t=this._options,r=t.idField,n=t.extractField,a=n(e,r);this.discard(a),this.add(e)},o.prototype.vacuum=function(e){return e===void 0&&(e={}),this.conditionalVacuum(e)},o.prototype.conditionalVacuum=function(e,t){var r=this;return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&t,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(function(){var n=r._enqueuedVacuumConditions;return r._enqueuedVacuumConditions=Ke,r.performVacuuming(e,n)}),this._enqueuedVacuum)):this.vacuumConditionsMet(t)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(e),this._currentVacuum)},o.prototype.performVacuuming=function(e,t){return kr(this,void 0,void 0,function(){var r,n,a,i,s,u,l,h,d,v,y,g,E,x,C,N,A,M,L,D,T,I,R,F,c;return Ir(this,function(f){switch(f.label){case 0:if(r=this._dirtCount,!this.vacuumConditionsMet(t))return[3,10];n=e.batchSize||We.batchSize,a=e.batchWait||We.batchWait,i=1,f.label=1;case 1:f.trys.push([1,7,8,9]),s=_(this._index),u=s.next(),f.label=2;case 2:if(u.done)return[3,6];l=$(u.value,2),h=l[0],d=l[1];try{for(v=(I=void 0,_(d)),y=v.next();!y.done;y=v.next()){g=$(y.value,2),E=g[0],x=g[1];try{for(C=(F=void 0,_(x)),N=C.next();!N.done;N=C.next())A=$(N.value,1),M=A[0],!this._documentIds.has(M)&&(x.size<=1?d.delete(E):x.delete(M))}catch(p){F={error:p}}finally{try{N&&!N.done&&(c=C.return)&&c.call(C)}finally{if(F)throw F.error}}}}catch(p){I={error:p}}finally{try{y&&!y.done&&(R=v.return)&&R.call(v)}finally{if(I)throw I.error}}return this._index.get(h).size===0&&this._index.delete(h),i%n!==0?[3,4]:[4,new Promise(function(p){return setTimeout(p,a)})];case 3:f.sent(),f.label=4;case 4:i+=1,f.label=5;case 5:return u=s.next(),[3,2];case 6:return[3,9];case 7:return L=f.sent(),D={error:L},[3,9];case 8:try{u&&!u.done&&(T=s.return)&&T.call(s)}finally{if(D)throw D.error}return[7];case 9:this._dirtCount-=r,f.label=10;case 10:return[4,null];case 11:return f.sent(),this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null,[2]}})})},o.prototype.vacuumConditionsMet=function(e){if(e==null)return!0;var t=e.minDirtCount,r=e.minDirtFactor;return t=t||Pe.minDirtCount,r=r||Pe.minDirtFactor,this.dirtCount>=t&&this.dirtFactor>=r},Object.defineProperty(o.prototype,"isVacuuming",{get:function(){return this._currentVacuum!=null},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"dirtCount",{get:function(){return this._dirtCount},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"dirtFactor",{get:function(){return this._dirtCount/(1+this._documentCount+this._dirtCount)},enumerable:!1,configurable:!0}),o.prototype.has=function(e){return this._idToShortId.has(e)},o.prototype.getStoredFields=function(e){var t=this._idToShortId.get(e);if(t!=null)return this._storedFields.get(t)},o.prototype.search=function(e,t){var r,n;t===void 0&&(t={});var a=this.executeQuery(e,t),i=[];try{for(var s=_(a),u=s.next();!u.done;u=s.next()){var l=$(u.value,2),h=l[0],d=l[1],v=d.score,y=d.terms,g=d.match,E=y.length,x={id:this._documentIds.get(h),score:v*E,terms:Object.keys(g),match:g};Object.assign(x,this._storedFields.get(h)),(t.filter==null||t.filter(x))&&i.push(x)}}catch(C){r={error:C}}finally{try{u&&!u.done&&(n=s.return)&&n.call(s)}finally{if(r)throw r.error}}return i.sort(ht),i},o.prototype.autoSuggest=function(e,t){var r,n,a,i;t===void 0&&(t={}),t=V(V({},this._options.autoSuggestOptions),t);var s=new Map;try{for(var u=_(this.search(e,t)),l=u.next();!l.done;l=u.next()){var h=l.value,d=h.score,v=h.terms,y=v.join(" "),g=s.get(y);g!=null?(g.score+=d,g.count+=1):s.set(y,{score:d,terms:v,count:1})}}catch(L){r={error:L}}finally{try{l&&!l.done&&(n=u.return)&&n.call(u)}finally{if(r)throw r.error}}var E=[];try{for(var x=_(s),C=x.next();!C.done;C=x.next()){var N=$(C.value,2),g=N[0],A=N[1],d=A.score,v=A.terms,M=A.count;E.push({suggestion:g,terms:v,score:d/M})}}catch(L){a={error:L}}finally{try{C&&!C.done&&(i=x.return)&&i.call(x)}finally{if(a)throw a.error}}return E.sort(ht),E},Object.defineProperty(o.prototype,"documentCount",{get:function(){return this._documentCount},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"termCount",{get:function(){return this._index.size},enumerable:!1,configurable:!0}),o.loadJSON=function(e,t){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(e),t)},o.getDefault=function(e){if(Le.hasOwnProperty(e))return Me(Le,e);throw new Error('MiniSearch: unknown option "'.concat(e,'"'))},o.loadJS=function(e,t){var r,n,a,i,s,u,l=e.index,h=e.documentCount,d=e.nextId,v=e.documentIds,y=e.fieldIds,g=e.fieldLength,E=e.averageFieldLength,x=e.storedFields,C=e.dirtCount,N=e.serializationVersion;if(N!==1&&N!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");var A=new o(t);A._documentCount=h,A._nextId=d,A._documentIds=Fe(v),A._idToShortId=new Map,A._fieldIds=y,A._fieldLength=Fe(g),A._avgFieldLength=E,A._storedFields=Fe(x),A._dirtCount=C||0,A._index=new Oe;try{for(var M=_(A._documentIds),L=M.next();!L.done;L=M.next()){var D=$(L.value,2),T=D[0],I=D[1];A._idToShortId.set(I,T)}}catch(b){r={error:b}}finally{try{L&&!L.done&&(n=M.return)&&n.call(M)}finally{if(r)throw r.error}}try{for(var R=_(l),F=R.next();!F.done;F=R.next()){var c=$(F.value,2),f=c[0],p=c[1],w=new Map;try{for(var k=(s=void 0,_(Object.keys(p))),O=k.next();!O.done;O=k.next()){var P=O.value,m=p[P];N===1&&(m=m.ds),w.set(parseInt(P,10),Fe(m))}}catch(b){s={error:b}}finally{try{O&&!O.done&&(u=k.return)&&u.call(k)}finally{if(s)throw s.error}}A._index.set(f,w)}}catch(b){a={error:b}}finally{try{F&&!F.done&&(i=R.return)&&i.call(R)}finally{if(a)throw a.error}}return A},o.prototype.executeQuery=function(e,t){var r=this;if(t===void 0&&(t={}),typeof e!="string"){var n=V(V(V({},t),e),{queries:void 0}),a=e.queries.map(function(x){return r.executeQuery(x,n)});return this.combineResults(a,n.combineWith)}var i=this._options,s=i.tokenize,u=i.processTerm,l=i.searchOptions,h=V(V({tokenize:s,processTerm:u},l),t),d=h.tokenize,v=h.processTerm,y=d(e).flatMap(function(x){return v(x)}).filter(function(x){return!!x}),g=y.map(Br(h)),E=g.map(function(x){return r.executeQuerySpec(x,h)});return this.combineResults(E,h.combineWith)},o.prototype.executeQuerySpec=function(e,t){var r,n,a,i,s=V(V({},this._options.searchOptions),t),u=(s.fields||this._options.fields).reduce(function(P,m){var b;return V(V({},P),(b={},b[m]=Me(s.boost,m)||1,b))},{}),l=s.boostDocument,h=s.weights,d=s.maxFuzzy,v=s.bm25,y=V(V({},ft.weights),h),g=y.fuzzy,E=y.prefix,x=this._index.get(e.term),C=this.termResults(e.term,e.term,1,x,u,l,v),N,A;if(e.prefix&&(N=this._index.atPrefix(e.term)),e.fuzzy){var M=e.fuzzy===!0?.2:e.fuzzy,L=M<1?Math.min(d,Math.round(e.term.length*M)):M;L&&(A=this._index.fuzzyGet(e.term,L))}if(N)try{for(var D=_(N),T=D.next();!T.done;T=D.next()){var I=$(T.value,2),R=I[0],F=I[1],c=R.length-e.term.length;if(c){A==null||A.delete(R);var f=E*R.length/(R.length+.3*c);this.termResults(e.term,R,f,F,u,l,v,C)}}}catch(P){r={error:P}}finally{try{T&&!T.done&&(n=D.return)&&n.call(D)}finally{if(r)throw r.error}}if(A)try{for(var p=_(A.keys()),w=p.next();!w.done;w=p.next()){var R=w.value,k=$(A.get(R),2),O=k[0],c=k[1];if(c){var f=g*R.length/(R.length+c);this.termResults(e.term,R,f,O,u,l,v,C)}}}catch(P){a={error:P}}finally{try{w&&!w.done&&(i=p.return)&&i.call(p)}finally{if(a)throw a.error}}return C},o.prototype.combineResults=function(e,t){if(t===void 0&&(t=Je),e.length===0)return new Map;var r=t.toLowerCase();return e.reduce(Lr[r])||new Map},o.prototype.toJSON=function(){var e,t,r,n,a=[];try{for(var i=_(this._index),s=i.next();!s.done;s=i.next()){var u=$(s.value,2),l=u[0],h=u[1],d={};try{for(var v=(r=void 0,_(h)),y=v.next();!y.done;y=v.next()){var g=$(y.value,2),E=g[0],x=g[1];d[E]=Object.fromEntries(x)}}catch(C){r={error:C}}finally{try{y&&!y.done&&(n=v.return)&&n.call(v)}finally{if(r)throw r.error}}a.push([l,d])}}catch(C){e={error:C}}finally{try{s&&!s.done&&(t=i.return)&&t.call(i)}finally{if(e)throw e.error}}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:a,serializationVersion:2}},o.prototype.termResults=function(e,t,r,n,a,i,s,u){var l,h,d,v,y;if(u===void 0&&(u=new Map),n==null)return u;try{for(var g=_(Object.keys(a)),E=g.next();!E.done;E=g.next()){var x=E.value,C=a[x],N=this._fieldIds[x],A=n.get(N);if(A!=null){var M=A.size,L=this._avgFieldLength[N];try{for(var D=(d=void 0,_(A.keys())),T=D.next();!T.done;T=D.next()){var I=T.value;if(!this._documentIds.has(I)){this.removeTerm(N,I,t),M-=1;continue}var R=i?i(this._documentIds.get(I),t,this._storedFields.get(I)):1;if(R){var F=A.get(I),c=this._fieldLength.get(I)[N],f=zr(F,M,this._documentCount,c,L,s),p=r*C*R*f,w=u.get(I);if(w){w.score+=p,$r(w.terms,e);var k=Me(w.match,t);k?k.push(x):w.match[t]=[x]}else u.set(I,{score:p,terms:[e],match:(y={},y[t]=[x],y)})}}}catch(O){d={error:O}}finally{try{T&&!T.done&&(v=D.return)&&v.call(D)}finally{if(d)throw d.error}}}}}catch(O){l={error:O}}finally{try{E&&!E.done&&(h=g.return)&&h.call(g)}finally{if(l)throw l.error}}return u},o.prototype.addTerm=function(e,t,r){var n=this._index.fetch(r,vt),a=n.get(e);if(a==null)a=new Map,a.set(t,1),n.set(e,a);else{var i=a.get(t);a.set(t,(i||0)+1)}},o.prototype.removeTerm=function(e,t,r){if(!this._index.has(r)){this.warnDocumentChanged(t,e,r);return}var n=this._index.fetch(r,vt),a=n.get(e);a==null||a.get(t)==null?this.warnDocumentChanged(t,e,r):a.get(t)<=1?a.size<=1?n.delete(e):a.delete(t):a.set(t,a.get(t)-1),this._index.get(r).size===0&&this._index.delete(r)},o.prototype.warnDocumentChanged=function(e,t,r){var n,a;try{for(var i=_(Object.keys(this._fieldIds)),s=i.next();!s.done;s=i.next()){var u=s.value;if(this._fieldIds[u]===t){this._options.logger("warn","MiniSearch: document with ID ".concat(this._documentIds.get(e),' has changed before removal: term "').concat(r,'" was not present in field "').concat(u,'". Removing a document after it has changed can corrupt the index!'),"version_conflict");return}}}catch(l){n={error:l}}finally{try{s&&!s.done&&(a=i.return)&&a.call(i)}finally{if(n)throw n.error}}},o.prototype.addDocumentId=function(e){var t=this._nextId;return this._idToShortId.set(e,t),this._documentIds.set(t,e),this._documentCount+=1,this._nextId+=1,t},o.prototype.addFields=function(e){for(var t=0;t(Jt("data-v-d2d5d924"),o=o(),Ut(),o),Kr=["aria-owns"],jr={class:"shell"},Jr=["title"],Ur=Q(()=>S("svg",{class:"search-icon",width:"18",height:"18",viewBox:"0 0 24 24","aria-hidden":"true"},[S("g",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[S("circle",{cx:"11",cy:"11",r:"8"}),S("path",{d:"m21 21l-4.35-4.35"})])],-1)),Hr=[Ur],Gr={class:"search-actions before"},qr=["title"],Qr=Q(()=>S("svg",{width:"18",height:"18",viewBox:"0 0 24 24","aria-hidden":"true"},[S("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 12H5m7 7l-7-7l7-7"})],-1)),Yr=[Qr],Zr=["placeholder"],Xr={class:"search-actions"},ea=["title"],ta=Q(()=>S("svg",{width:"18",height:"18",viewBox:"0 0 24 24","aria-hidden":"true"},[S("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 14h7v7H3zM3 3h7v7H3zm11 1h7m-7 5h7m-7 6h7m-7 5h7"})],-1)),ra=[ta],aa=["disabled","title"],na=Q(()=>S("svg",{width:"18",height:"18",viewBox:"0 0 24 24","aria-hidden":"true"},[S("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M20 5H9l-7 7l7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2Zm-2 4l-6 6m0-6l6 6"})],-1)),ia=[na],oa=["id","role","aria-labelledby"],sa=["aria-selected"],ua=["href","aria-label","onMouseenter","onFocusin"],la={class:"titles"},ca=Q(()=>S("span",{class:"title-icon"},"#",-1)),fa=["innerHTML"],da=Q(()=>S("svg",{width:"18",height:"18",viewBox:"0 0 24 24"},[S("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"m9 18l6-6l-6-6"})],-1)),ha={class:"title main"},va=["innerHTML"],pa={key:0,class:"excerpt-wrapper"},ya={key:0,class:"excerpt",inert:""},ma=["innerHTML"],ga=Q(()=>S("div",{class:"excerpt-gradient-bottom"},null,-1)),ba=Q(()=>S("div",{class:"excerpt-gradient-top"},null,-1)),wa={key:0,class:"no-results"},xa={class:"search-keyboard-shortcuts"},Fa=["aria-label"],Ea=Q(()=>S("svg",{width:"14",height:"14",viewBox:"0 0 24 24"},[S("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 19V5m-7 7l7-7l7 7"})],-1)),Sa=[Ea],Aa=["aria-label"],Ca=Q(()=>S("svg",{width:"14",height:"14",viewBox:"0 0 24 24"},[S("path",{fill:"none",stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 5v14m7-7l-7 7l-7-7"})],-1)),Na=[Ca],Ta=["aria-label"],ka=Q(()=>S("svg",{width:"14",height:"14",viewBox:"0 0 24 24"},[S("g",{fill:"none",stroke:"currentcolor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2"},[S("path",{d:"m9 10l-5 5l5 5"}),S("path",{d:"M20 4v7a4 4 0 0 1-4 4H4"})])],-1)),Ia=[ka],Da=["aria-label"],_a=kt({__name:"VPLocalSearchBox",props:{placeholder:{}},emits:["close"],setup(o,{emit:e}){var k,O,P;const t=ge(),r=ge(),n=ge(Xt),a=Yt(),{activate:i}=Cr(t,{immediate:!0,allowOutsideClick:!0,clickOutsideDeactivates:!0,escapeDeactivates:!0}),{localeIndex:s,theme:u}=a,l=et(async()=>{var m,b,z,G,j,J,B,U,H;return nt(Mr.loadJSON((z=await((b=(m=n.value)[s.value])==null?void 0:b.call(m)))==null?void 0:z.default,{fields:["title","titles","text"],storeFields:["title","titles"],searchOptions:{fuzzy:.2,prefix:!0,boost:{title:4,text:2,titles:1},...((G=u.value.search)==null?void 0:G.provider)==="local"&&((J=(j=u.value.search.options)==null?void 0:j.miniSearch)==null?void 0:J.searchOptions)},...((B=u.value.search)==null?void 0:B.provider)==="local"&&((H=(U=u.value.search.options)==null?void 0:U.miniSearch)==null?void 0:H.options)}))}),d=ke(()=>{var m,b;return((m=u.value.search)==null?void 0:m.provider)==="local"&&((b=u.value.search.options)==null?void 0:b.disableQueryPersistence)===!0}).value?ne(""):It("vitepress:local-search-filter",""),v=Dt("vitepress:local-search-detailed-list",((k=u.value.search)==null?void 0:k.provider)==="local"&&((O=u.value.search.options)==null?void 0:O.detailedView)===!0),y=ke(()=>{var m,b,z;return((m=u.value.search)==null?void 0:m.provider)==="local"&&(((b=u.value.search.options)==null?void 0:b.disableDetailedView)===!0||((z=u.value.search.options)==null?void 0:z.detailedView)===!1)});_t(()=>{y.value&&(v.value=!1)});const g=ge([]),E=ne(!1);Be(d,()=>{E.value=!1});const x=et(async()=>{if(r.value)return nt(new Tr(r.value))},null);Ot(()=>[l.value,d.value,v.value],async([m,b,z],G,j)=>{var Ue,He,Ge,qe;let J=!1;if(j(()=>{J=!0}),!m)return;g.value=m.search(b).slice(0,16),E.value=!0;const B=z?await Promise.all(g.value.map(q=>C(q.id))):[];if(J)return;const U=new Map;for(const{id:q,mod:te}of B){const re=q.slice(0,q.indexOf("#"));let X=U.get(re);if(X)continue;X=new Map,U.set(re,X);const Y=te.default??te;if(Y!=null&&Y.render||Y!=null&&Y.setup){const ae=Ht(Y);ae.config.warnHandler=()=>{},ae.provide(Gt,a),Object.defineProperties(ae.config.globalProperties,{$frontmatter:{get(){return a.frontmatter.value}},$params:{get(){return a.page.value.params}}});const Qe=document.createElement("div");ae.mount(Qe),Qe.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(ce=>{var Xe;const me=(Xe=ce.querySelector("a"))==null?void 0:Xe.getAttribute("href"),Ye=(me==null?void 0:me.startsWith("#"))&&me.slice(1);if(!Ye)return;let Ze="";for(;(ce=ce.nextElementSibling)&&!/^h[1-6]$/i.test(ce.tagName);)Ze+=ce.outerHTML;X.set(Ye,Ze)}),ae.unmount()}if(J)return}const H=new Set;if(g.value=g.value.map(q=>{const[te,re]=q.id.split("#"),X=U.get(te),Y=(X==null?void 0:X.get(re))??"";for(const ae in q.match)H.add(ae);return{...q,text:Y}}),await fe(),J)return;await new Promise(q=>{var te;(te=x.value)==null||te.unmark({done:()=>{var re;(re=x.value)==null||re.markRegExp(w(H),{done:q})}})});const Te=((Ue=t.value)==null?void 0:Ue.querySelectorAll(".result .excerpt"))??[];for(const q of Te)(He=q.querySelector('mark[data-markjs="true"]'))==null||He.scrollIntoView({block:"center"});(qe=(Ge=r.value)==null?void 0:Ge.firstElementChild)==null||qe.scrollIntoView({block:"start"})},{debounce:200,immediate:!0});async function C(m){const b=qt(m.slice(0,m.indexOf("#")));try{if(!b)throw new Error(`Cannot find file for id: ${m}`);return{id:m,mod:await ze(()=>import(b),[])}}catch(z){return console.error(z),{id:m,mod:{}}}}const N=ne(),A=ke(()=>{var m;return((m=d.value)==null?void 0:m.length)<=0});function M(m=!0){var b,z;(b=N.value)==null||b.focus(),m&&((z=N.value)==null||z.select())}Ie(()=>{M()});function L(m){m.pointerType==="mouse"&&M()}const D=ne(-1),T=ne(!1);Be(g,m=>{D.value=m.length?0:-1,I()});function I(){fe(()=>{const m=document.querySelector(".result.selected");m&&m.scrollIntoView({block:"nearest"})})}be("ArrowUp",m=>{m.preventDefault(),D.value--,D.value<0&&(D.value=g.value.length-1),T.value=!0,I()}),be("ArrowDown",m=>{m.preventDefault(),D.value++,D.value>=g.value.length&&(D.value=0),T.value=!0,I()});const R=Rt();be("Enter",m=>{if(m.target instanceof HTMLButtonElement&&m.target.type!=="submit")return;const b=g.value[D.value];if(m.target instanceof HTMLInputElement&&!b){m.preventDefault();return}b&&(R.go(b.id),e("close"))}),be("Escape",()=>{e("close")});const F={modal:{displayDetails:"Display detailed list",resetButtonTitle:"Reset search",backButtonTitle:"Close search",noResultsText:"No results for",footer:{selectText:"to select",selectKeyAriaLabel:"enter",navigateText:"to navigate",navigateUpKeyAriaLabel:"up arrow",navigateDownKeyAriaLabel:"down arrow",closeText:"to close",closeKeyAriaLabel:"escape"}}},c=Zt((P=u.value.search)==null?void 0:P.options,F);Ie(()=>{window.history.pushState(null,"",null)}),Mt("popstate",m=>{m.preventDefault(),e("close")});const f=Lt(Pt?document.body:null);Ie(()=>{fe(()=>{f.value=!0,fe().then(()=>i())})}),zt(()=>{f.value=!1});function p(){d.value="",fe().then(()=>M(!1))}function w(m){return new RegExp([...m].sort((b,z)=>z.length-b.length).map(b=>`(${b.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")})`).join("|"),"gi")}return(m,b)=>{var z,G,j,J;return Z(),Bt(jt,{to:"body"},[S("div",{ref_key:"el",ref:t,role:"button","aria-owns":(z=g.value)!=null&&z.length?"localsearch-list":void 0,"aria-expanded":"true","aria-haspopup":"listbox","aria-labelledby":"localsearch-label",class:"VPLocalSearchBox"},[S("div",{class:"backdrop",onClick:b[0]||(b[0]=B=>m.$emit("close"))}),S("div",jr,[S("form",{class:"search-bar",onPointerup:b[4]||(b[4]=B=>L(B)),onSubmit:b[5]||(b[5]=Vt(()=>{},["prevent"]))},[S("label",{title:m.placeholder,id:"localsearch-label",for:"localsearch-input"},Hr,8,Jr),S("div",Gr,[S("button",{class:"back-button",title:W(c)("modal.backButtonTitle"),onClick:b[1]||(b[1]=B=>m.$emit("close"))},Yr,8,qr)]),$t(S("input",{ref_key:"searchInput",ref:N,"onUpdate:modelValue":b[2]||(b[2]=B=>Kt(d)?d.value=B:null),placeholder:m.placeholder,id:"localsearch-input","aria-labelledby":"localsearch-label",class:"search-input"},null,8,Zr),[[Wt,W(d)]]),S("div",Xr,[y.value?we("",!0):(Z(),ee("button",{key:0,class:tt(["toggle-layout-button",{"detailed-list":W(v)}]),type:"button",title:W(c)("modal.displayDetails"),onClick:b[3]||(b[3]=B=>D.value>-1&&(v.value=!W(v)))},ra,10,ea)),S("button",{class:"clear-button",type:"reset",disabled:A.value,title:W(c)("modal.resetButtonTitle"),onClick:p},ia,8,aa)])],32),S("ul",{ref_key:"resultsEl",ref:r,id:(G=g.value)!=null&&G.length?"localsearch-list":void 0,role:(j=g.value)!=null&&j.length?"listbox":void 0,"aria-labelledby":(J=g.value)!=null&&J.length?"localsearch-label":void 0,class:"results",onMousemove:b[7]||(b[7]=B=>T.value=!1)},[(Z(!0),ee(at,null,rt(g.value,(B,U)=>(Z(),ee("li",{key:B.id,role:"option","aria-selected":D.value===U?"true":"false"},[S("a",{href:B.id,class:tt(["result",{selected:D.value===U}]),"aria-label":[...B.titles,B.title].join(" > "),onMouseenter:H=>!T.value&&(D.value=U),onFocusin:H=>D.value=U,onClick:b[6]||(b[6]=H=>m.$emit("close"))},[S("div",null,[S("div",la,[ca,(Z(!0),ee(at,null,rt(B.titles,(H,Te)=>(Z(),ee("span",{key:Te,class:"title"},[S("span",{class:"text",innerHTML:H},null,8,fa),da]))),128)),S("span",ha,[S("span",{class:"text",innerHTML:B.title},null,8,va)])]),W(v)?(Z(),ee("div",pa,[B.text?(Z(),ee("div",ya,[S("div",{class:"vp-doc",innerHTML:B.text},null,8,ma)])):we("",!0),ga,ba])):we("",!0)])],42,ua)],8,sa))),128)),W(d)&&!g.value.length&&E.value?(Z(),ee("li",wa,[de(he(W(c)("modal.noResultsText"))+' "',1),S("strong",null,he(W(d)),1),de('" ')])):we("",!0)],40,oa),S("div",xa,[S("span",null,[S("kbd",{"aria-label":W(c)("modal.footer.navigateUpKeyAriaLabel")},Sa,8,Fa),S("kbd",{"aria-label":W(c)("modal.footer.navigateDownKeyAriaLabel")},Na,8,Aa),de(" "+he(W(c)("modal.footer.navigateText")),1)]),S("span",null,[S("kbd",{"aria-label":W(c)("modal.footer.selectKeyAriaLabel")},Ia,8,Ta),de(" "+he(W(c)("modal.footer.selectText")),1)]),S("span",null,[S("kbd",{"aria-label":W(c)("modal.footer.closeKeyAriaLabel")},"esc",8,Da),de(" "+he(W(c)("modal.footer.closeText")),1)])])])],8,Kr)])}}});const Pa=Qt(_a,[["__scopeId","data-v-d2d5d924"]]);export{Pa as default}; diff --git a/assets/chunks/framework.385ac4c3.js b/assets/chunks/framework.385ac4c3.js new file mode 100644 index 000000000..72342c244 --- /dev/null +++ b/assets/chunks/framework.385ac4c3.js @@ -0,0 +1,2 @@ +function ur(e,t){const n=Object.create(null),r=e.split(",");for(let s=0;s!!n[s.toLowerCase()]:s=>!!n[s]}const te={},pt=[],Pe=()=>{},ii=()=>!1,li=/^on[^a-z]/,Vt=e=>li.test(e),fr=e=>e.startsWith("onUpdate:"),ie=Object.assign,dr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},ci=Object.prototype.hasOwnProperty,Y=(e,t)=>ci.call(e,t),U=Array.isArray,gt=e=>Cn(e)==="[object Map]",Bs=e=>Cn(e)==="[object Set]",K=e=>typeof e=="function",re=e=>typeof e=="string",hr=e=>typeof e=="symbol",ee=e=>e!==null&&typeof e=="object",Us=e=>ee(e)&&K(e.then)&&K(e.catch),ks=Object.prototype.toString,Cn=e=>ks.call(e),ai=e=>Cn(e).slice(8,-1),Ks=e=>Cn(e)==="[object Object]",pr=e=>re(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Mt=ur(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),En=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},ui=/-(\w)/g,Ne=En(e=>e.replace(ui,(t,n)=>n?n.toUpperCase():"")),fi=/\B([A-Z])/g,at=En(e=>e.replace(fi,"-$1").toLowerCase()),xn=En(e=>e.charAt(0).toUpperCase()+e.slice(1)),an=En(e=>e?`on${xn(e)}`:""),jt=(e,t)=>!Object.is(e,t),un=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Jn=e=>{const t=parseFloat(e);return isNaN(t)?e:t},di=e=>{const t=re(e)?Number(e):NaN;return isNaN(t)?e:t};let Kr;const Xn=()=>Kr||(Kr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function gr(e){if(U(e)){const t={};for(let n=0;n{if(n){const r=n.split(pi);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function mr(e){let t="";if(re(e))t=e;else if(U(e))for(let n=0;nre(e)?e:e==null?"":U(e)||ee(e)&&(e.toString===ks||!K(e.toString))?JSON.stringify(e,Vs,2):String(e),Vs=(e,t)=>t&&t.__v_isRef?Vs(e,t.value):gt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s])=>(n[`${r} =>`]=s,n),{})}:Bs(t)?{[`Set(${t.size})`]:[...t.values()]}:ee(t)&&!U(t)&&!Ks(t)?String(t):t;let be;class bi{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=be,!t&&be&&(this.index=(be.scopes||(be.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=be;try{return be=this,t()}finally{be=n}}}on(){be=this}off(){be=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},zs=e=>(e.w&Je)>0,Ys=e=>(e.n&Je)>0,Ci=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{(f==="length"||f>=c)&&l.push(a)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":U(e)?pr(n)&&l.push(i.get("length")):(l.push(i.get(lt)),gt(e)&&l.push(i.get(Zn)));break;case"delete":U(e)||(l.push(i.get(lt)),gt(e)&&l.push(i.get(Zn)));break;case"set":gt(e)&&l.push(i.get(lt));break}if(l.length===1)l[0]&&Gn(l[0]);else{const c=[];for(const a of l)a&&c.push(...a);Gn(_r(c))}}function Gn(e,t){const n=U(e)?e:[...e];for(const r of n)r.computed&&Vr(r);for(const r of n)r.computed||Vr(r)}function Vr(e,t){(e!==Se||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function xi(e,t){var n;return(n=pn.get(e))==null?void 0:n.get(t)}const Ti=ur("__proto__,__v_isRef,__isVue"),Qs=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(hr)),Ai=br(),Si=br(!1,!0),Oi=br(!0),qr=Pi();function Pi(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=J(this);for(let o=0,i=this.length;o{e[t]=function(...n){xt();const r=J(this)[t].apply(this,n);return Tt(),r}}),e}function Ri(e){const t=J(this);return me(t,"has",e),t.hasOwnProperty(e)}function br(e=!1,t=!1){return function(r,s,o){if(s==="__v_isReactive")return!e;if(s==="__v_isReadonly")return e;if(s==="__v_isShallow")return t;if(s==="__v_raw"&&o===(e?t?qi:no:t?to:eo).get(r))return r;const i=U(r);if(!e){if(i&&Y(qr,s))return Reflect.get(qr,s,o);if(s==="hasOwnProperty")return Ri}const l=Reflect.get(r,s,o);return(hr(s)?Qs.has(s):Ti(s))||(e||me(r,"get",s),t)?l:ce(l)?i&&pr(s)?l:l.value:ee(l)?e?Sn(l):An(l):l}}const Mi=Zs(),Fi=Zs(!0);function Zs(e=!1){return function(n,r,s,o){let i=n[r];if(vt(i)&&ce(i)&&!ce(s))return!1;if(!e&&(!gn(s)&&!vt(s)&&(i=J(i),s=J(s)),!U(n)&&ce(i)&&!ce(s)))return i.value=s,!0;const l=U(n)&&pr(r)?Number(r)e,Tn=e=>Reflect.getPrototypeOf(e);function Xt(e,t,n=!1,r=!1){e=e.__v_raw;const s=J(e),o=J(t);n||(t!==o&&me(s,"get",t),me(s,"get",o));const{has:i}=Tn(s),l=r?vr:n?Er:Dt;if(i.call(s,t))return l(e.get(t));if(i.call(s,o))return l(e.get(o));e!==s&&e.get(t)}function Qt(e,t=!1){const n=this.__v_raw,r=J(n),s=J(e);return t||(e!==s&&me(r,"has",e),me(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function Zt(e,t=!1){return e=e.__v_raw,!t&&me(J(e),"iterate",lt),Reflect.get(e,"size",e)}function zr(e){e=J(e);const t=J(this);return Tn(t).has.call(t,e)||(t.add(e),je(t,"add",e,e)),this}function Yr(e,t){t=J(t);const n=J(this),{has:r,get:s}=Tn(n);let o=r.call(n,e);o||(e=J(e),o=r.call(n,e));const i=s.call(n,e);return n.set(e,t),o?jt(t,i)&&je(n,"set",e,t):je(n,"add",e,t),this}function Jr(e){const t=J(this),{has:n,get:r}=Tn(t);let s=n.call(t,e);s||(e=J(e),s=n.call(t,e)),r&&r.call(t,e);const o=t.delete(e);return s&&je(t,"delete",e,void 0),o}function Xr(){const e=J(this),t=e.size!==0,n=e.clear();return t&&je(e,"clear",void 0,void 0),n}function Gt(e,t){return function(r,s){const o=this,i=o.__v_raw,l=J(i),c=t?vr:e?Er:Dt;return!e&&me(l,"iterate",lt),i.forEach((a,f)=>r.call(s,c(a),c(f),o))}}function en(e,t,n){return function(...r){const s=this.__v_raw,o=J(s),i=gt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,a=s[e](...r),f=n?vr:t?Er:Dt;return!t&&me(o,"iterate",c?Zn:lt),{next(){const{value:h,done:g}=a.next();return g?{value:h,done:g}:{value:l?[f(h[0]),f(h[1])]:f(h),done:g}},[Symbol.iterator](){return this}}}}function Ue(e){return function(...t){return e==="delete"?!1:this}}function ji(){const e={get(o){return Xt(this,o)},get size(){return Zt(this)},has:Qt,add:zr,set:Yr,delete:Jr,clear:Xr,forEach:Gt(!1,!1)},t={get(o){return Xt(this,o,!1,!0)},get size(){return Zt(this)},has:Qt,add:zr,set:Yr,delete:Jr,clear:Xr,forEach:Gt(!1,!0)},n={get(o){return Xt(this,o,!0)},get size(){return Zt(this,!0)},has(o){return Qt.call(this,o,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:Gt(!0,!1)},r={get(o){return Xt(this,o,!0,!0)},get size(){return Zt(this,!0)},has(o){return Qt.call(this,o,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:Gt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=en(o,!1,!1),n[o]=en(o,!0,!1),t[o]=en(o,!1,!0),r[o]=en(o,!0,!0)}),[e,n,t,r]}const[Di,Bi,Ui,ki]=ji();function wr(e,t){const n=t?e?ki:Ui:e?Bi:Di;return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(Y(n,s)&&s in r?n:r,s,o)}const Ki={get:wr(!1,!1)},Wi={get:wr(!1,!0)},Vi={get:wr(!0,!1)},eo=new WeakMap,to=new WeakMap,no=new WeakMap,qi=new WeakMap;function zi(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Yi(e){return e.__v_skip||!Object.isExtensible(e)?0:zi(ai(e))}function An(e){return vt(e)?e:Cr(e,!1,Gs,Ki,eo)}function Ji(e){return Cr(e,!1,$i,Wi,to)}function Sn(e){return Cr(e,!0,Hi,Vi,no)}function Cr(e,t,n,r,s){if(!ee(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=s.get(e);if(o)return o;const i=Yi(e);if(i===0)return e;const l=new Proxy(e,i===2?r:n);return s.set(e,l),l}function mt(e){return vt(e)?mt(e.__v_raw):!!(e&&e.__v_isReactive)}function vt(e){return!!(e&&e.__v_isReadonly)}function gn(e){return!!(e&&e.__v_isShallow)}function ro(e){return mt(e)||vt(e)}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function Ft(e){return hn(e,"__v_skip",!0),e}const Dt=e=>ee(e)?An(e):e,Er=e=>ee(e)?Sn(e):e;function xr(e){qe&&Se&&(e=J(e),Xs(e.dep||(e.dep=_r())))}function Tr(e,t){e=J(e);const n=e.dep;n&&Gn(n)}function ce(e){return!!(e&&e.__v_isRef===!0)}function ue(e){return so(e,!1)}function Ar(e){return so(e,!0)}function so(e,t){return ce(e)?e:new Xi(e,t)}class Xi{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:J(t),this._value=n?t:Dt(t)}get value(){return xr(this),this._value}set value(t){const n=this.__v_isShallow||gn(t)||vt(t);t=n?t:J(t),jt(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Dt(t),Tr(this))}}function oo(e){return ce(e)?e.value:e}const Qi={get:(e,t,n)=>oo(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ce(s)&&!ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function io(e){return mt(e)?e:new Proxy(e,Qi)}class Zi{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>xr(this),()=>Tr(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function Gi(e){return new Zi(e)}class el{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 xi(J(this._object),this._key)}}class tl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function nl(e,t,n){return ce(e)?e:K(e)?new tl(e):ee(e)&&arguments.length>1?rl(e,t,n):ue(e)}function rl(e,t,n){const r=e[t];return ce(r)?r:new el(e,t,n)}class sl{constructor(t,n,r,s){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new yr(t,()=>{this._dirty||(this._dirty=!0,Tr(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!s,this.__v_isReadonly=r}get value(){const t=J(this);return xr(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function ol(e,t,n=!1){let r,s;const o=K(e);return o?(r=e,s=Pe):(r=e.get,s=e.set),new sl(r,s,o||!s,n)}function ze(e,t,n,r){let s;try{s=r?e(...r):e()}catch(o){qt(o,t,n)}return s}function xe(e,t,n,r){if(K(e)){const o=ze(e,t,n,r);return o&&Us(o)&&o.catch(i=>{qt(i,t,n)}),o}const s=[];for(let o=0;o>>1;Ut(de[r])Ie&&de.splice(t,1)}function al(e){U(e)?_t.push(...e):(!$e||!$e.includes(e,e.allowRecurse?nt+1:nt))&&_t.push(e),co()}function Qr(e,t=Bt?Ie+1:0){for(;tUt(n)-Ut(r)),nt=0;nt<$e.length;nt++)$e[nt]();$e=null,nt=0}}const Ut=e=>e.id==null?1/0:e.id,ul=(e,t)=>{const n=Ut(e)-Ut(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function ao(e){er=!1,Bt=!0,de.sort(ul);const t=Pe;try{for(Ie=0;Iere(w)?w.trim():w)),h&&(s=n.map(Jn))}let l,c=r[l=an(t)]||r[l=an(Ne(t))];!c&&o&&(c=r[l=an(at(t))]),c&&xe(c,e,6,s);const a=r[l+"Once"];if(a){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,xe(a,e,6,s)}}function uo(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!K(e)){const c=a=>{const f=uo(a,t,!0);f&&(l=!0,ie(i,f))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(ee(e)&&r.set(e,null),null):(U(o)?o.forEach(c=>i[c]=null):ie(i,o),ee(e)&&r.set(e,i),i)}function Rn(e,t){return!e||!Vt(t)?!1:(t=t.slice(2).replace(/Once$/,""),Y(e,t[0].toLowerCase()+t.slice(1))||Y(e,at(t))||Y(e,t))}let fe=null,Mn=null;function _n(e){const t=fe;return fe=e,Mn=e&&e.type.__scopeId||null,t}function La(e){Mn=e}function Na(){Mn=null}function dl(e,t=fe,n){if(!t||e._n)return e;const r=(...s)=>{r._d&&us(-1);const o=_n(t);let i;try{i=e(...s)}finally{_n(o),r._d&&us(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Bn(e){const{type:t,vnode:n,proxy:r,withProxy:s,props:o,propsOptions:[i],slots:l,attrs:c,emit:a,render:f,renderCache:h,data:g,setupState:w,ctx:E,inheritAttrs:S}=e;let H,m;const y=_n(e);try{if(n.shapeFlag&4){const A=s||r;H=Ae(f.call(A,A,h,o,w,g,E)),m=c}else{const A=t;H=Ae(A.length>1?A(o,{attrs:c,slots:l,emit:a}):A(o,null)),m=t.props?c:hl(c)}}catch(A){Ht.length=0,qt(A,e,1),H=se(ve)}let N=H;if(m&&S!==!1){const A=Object.keys(m),{shapeFlag:B}=N;A.length&&B&7&&(i&&A.some(fr)&&(m=pl(m,i)),N=Xe(N,m))}return n.dirs&&(N=Xe(N),N.dirs=N.dirs?N.dirs.concat(n.dirs):n.dirs),n.transition&&(N.transition=n.transition),H=N,_n(y),H}const hl=e=>{let t;for(const n in e)(n==="class"||n==="style"||Vt(n))&&((t||(t={}))[n]=e[n]);return t},pl=(e,t)=>{const n={};for(const r in e)(!fr(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function gl(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:l,patchFlag:c}=t,a=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Zr(r,i,a):!!i;if(c&8){const f=t.dynamicProps;for(let h=0;he.__isSuspense;function fo(e,t){t&&t.pendingBranch?U(e)?t.effects.push(...e):t.effects.push(e):al(e)}function Or(e,t){return Fn(e,null,t)}function Ha(e,t){return Fn(e,null,{flush:"post"})}const tn={};function Ye(e,t,n){return Fn(e,t,n)}function Fn(e,t,{immediate:n,deep:r,flush:s,onTrack:o,onTrigger:i}=te){var l;const c=qs()===((l=le)==null?void 0:l.scope)?le:null;let a,f=!1,h=!1;if(ce(e)?(a=()=>e.value,f=gn(e)):mt(e)?(a=()=>e,r=!0):U(e)?(h=!0,f=e.some(A=>mt(A)||gn(A)),a=()=>e.map(A=>{if(ce(A))return A.value;if(mt(A))return ot(A);if(K(A))return ze(A,c,2)})):K(e)?t?a=()=>ze(e,c,2):a=()=>{if(!(c&&c.isUnmounted))return g&&g(),xe(e,c,3,[w])}:a=Pe,t&&r){const A=a;a=()=>ot(A())}let g,w=A=>{g=y.onStop=()=>{ze(A,c,4)}},E;if(Et)if(w=Pe,t?n&&xe(t,c,3,[a(),h?[]:void 0,w]):a(),s==="sync"){const A=hc();E=A.__watcherHandles||(A.__watcherHandles=[])}else return Pe;let S=h?new Array(e.length).fill(tn):tn;const H=()=>{if(y.active)if(t){const A=y.run();(r||f||(h?A.some((B,W)=>jt(B,S[W])):jt(A,S)))&&(g&&g(),xe(t,c,3,[A,S===tn?void 0:h&&S[0]===tn?[]:S,w]),S=A)}else y.run()};H.allowRecurse=!!t;let m;s==="sync"?m=H:s==="post"?m=()=>pe(H,c&&c.suspense):(H.pre=!0,c&&(H.id=c.uid),m=()=>Pn(H));const y=new yr(a,m);t?n?H():S=y.run():s==="post"?pe(y.run.bind(y),c&&c.suspense):y.run();const N=()=>{y.stop(),c&&c.scope&&dr(c.scope.effects,y)};return E&&E.push(N),N}function yl(e,t,n){const r=this.proxy,s=re(e)?e.includes(".")?ho(r,e):()=>r[e]:e.bind(r,r);let o;K(t)?o=t:(o=t.handler,n=t);const i=le;Ct(this);const l=Fn(s,o.bind(r),n);return i?Ct(i):ct(),l}function ho(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;s{ot(n,t)});else if(Ks(e))for(const n in e)ot(e[n],t);return e}function $a(e,t){const n=fe;if(n===null)return e;const r=$n(n)||n.proxy,s=e.dirs||(e.dirs=[]);for(let o=0;o{e.isMounted=!0}),yo(()=>{e.isUnmounting=!0}),e}const we=[Function,Array],po={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:we,onEnter:we,onAfterEnter:we,onEnterCancelled:we,onBeforeLeave:we,onLeave:we,onAfterLeave:we,onLeaveCancelled:we,onBeforeAppear:we,onAppear:we,onAfterAppear:we,onAppearCancelled:we},vl={name:"BaseTransition",props:po,setup(e,{slots:t}){const n=Hn(),r=bl();let s;return()=>{const o=t.default&&mo(t.default(),!0);if(!o||!o.length)return;let i=o[0];if(o.length>1){for(const S of o)if(S.type!==ve){i=S;break}}const l=J(e),{mode:c}=l;if(r.isLeaving)return Un(i);const a=Gr(i);if(!a)return Un(i);const f=tr(a,l,r,n);nr(a,f);const h=n.subTree,g=h&&Gr(h);let w=!1;const{getTransitionKey:E}=a.type;if(E){const S=E();s===void 0?s=S:S!==s&&(s=S,w=!0)}if(g&&g.type!==ve&&(!rt(a,g)||w)){const S=tr(g,l,r,n);if(nr(g,S),c==="out-in")return r.isLeaving=!0,S.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&n.update()},Un(i);c==="in-out"&&a.type!==ve&&(S.delayLeave=(H,m,y)=>{const N=go(r,g);N[String(g.key)]=g,H._leaveCb=()=>{m(),H._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=y})}return i}}},wl=vl;function go(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 tr(e,t,n,r){const{appear:s,mode:o,persisted:i=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:h,onLeave:g,onAfterLeave:w,onLeaveCancelled:E,onBeforeAppear:S,onAppear:H,onAfterAppear:m,onAppearCancelled:y}=t,N=String(e.key),A=go(n,e),B=(_,R)=>{_&&xe(_,r,9,R)},W=(_,R)=>{const I=R[1];B(_,R),U(_)?_.every(V=>V.length<=1)&&I():_.length<=1&&I()},D={mode:o,persisted:i,beforeEnter(_){let R=l;if(!n.isMounted)if(s)R=S||l;else return;_._leaveCb&&_._leaveCb(!0);const I=A[N];I&&rt(e,I)&&I.el._leaveCb&&I.el._leaveCb(),B(R,[_])},enter(_){let R=c,I=a,V=f;if(!n.isMounted)if(s)R=H||c,I=m||a,V=y||f;else return;let M=!1;const q=_._enterCb=L=>{M||(M=!0,L?B(V,[_]):B(I,[_]),D.delayedLeave&&D.delayedLeave(),_._enterCb=void 0)};R?W(R,[_,q]):q()},leave(_,R){const I=String(e.key);if(_._enterCb&&_._enterCb(!0),n.isUnmounting)return R();B(h,[_]);let V=!1;const M=_._leaveCb=q=>{V||(V=!0,R(),q?B(E,[_]):B(w,[_]),_._leaveCb=void 0,A[I]===e&&delete A[I])};A[I]=e,g?W(g,[_,M]):M()},clone(_){return tr(_,t,n,r)}};return D}function Un(e){if(zt(e))return e=Xe(e),e.children=null,e}function Gr(e){return zt(e)?e.children?e.children[0]:void 0:e}function nr(e,t){e.shapeFlag&6&&e.component?nr(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 mo(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oie({name:e.name},t,{setup:e}))():e}const yt=e=>!!e.type.__asyncLoader;function ja(e){K(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,timeout:o,suspensible:i=!0,onError:l}=e;let c=null,a,f=0;const h=()=>(f++,c=null,g()),g=()=>{let w;return c||(w=c=t().catch(E=>{if(E=E instanceof Error?E:new Error(String(E)),l)return new Promise((S,H)=>{l(E,()=>S(h()),()=>H(E),f+1)});throw E}).then(E=>w!==c&&c?c:(E&&(E.__esModule||E[Symbol.toStringTag]==="Module")&&(E=E.default),a=E,E)))};return Pr({name:"AsyncComponentWrapper",__asyncLoader:g,get __asyncResolved(){return a},setup(){const w=le;if(a)return()=>kn(a,w);const E=y=>{c=null,qt(y,w,13,!r)};if(i&&w.suspense||Et)return g().then(y=>()=>kn(y,w)).catch(y=>(E(y),()=>r?se(r,{error:y}):null));const S=ue(!1),H=ue(),m=ue(!!s);return s&&setTimeout(()=>{m.value=!1},s),o!=null&&setTimeout(()=>{if(!S.value&&!H.value){const y=new Error(`Async component timed out after ${o}ms.`);E(y),H.value=y}},o),g().then(()=>{S.value=!0,w.parent&&zt(w.parent.vnode)&&Pn(w.parent.update)}).catch(y=>{E(y),H.value=y}),()=>{if(S.value&&a)return kn(a,w);if(H.value&&r)return se(r,{error:H.value});if(n&&!m.value)return se(n)}}})}function kn(e,t){const{ref:n,props:r,children:s,ce:o}=t.vnode,i=se(e,r,s);return i.ref=n,i.ce=o,delete t.vnode.ce,i}const zt=e=>e.type.__isKeepAlive;function Cl(e,t){_o(e,"a",t)}function El(e,t){_o(e,"da",t)}function _o(e,t,n=le){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(In(t,r,n),n){let s=n.parent;for(;s&&s.parent;)zt(s.parent.vnode)&&xl(r,t,n,s),s=s.parent}}function xl(e,t,n,r){const s=In(t,e,r,!0);Ln(()=>{dr(r[t],s)},n)}function In(e,t,n=le,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{if(n.isUnmounted)return;xt(),Ct(n);const l=xe(t,n,e,i);return ct(),Tt(),l});return r?s.unshift(o):s.push(o),o}}const Be=e=>(t,n=le)=>(!Et||e==="sp")&&In(e,(...r)=>t(...r),n),Tl=Be("bm"),At=Be("m"),Al=Be("bu"),Sl=Be("u"),yo=Be("bum"),Ln=Be("um"),Ol=Be("sp"),Pl=Be("rtg"),Rl=Be("rtc");function Ml(e,t=le){In("ec",e,t)}const Rr="components";function Da(e,t){return vo(Rr,e,!0,t)||e}const bo=Symbol.for("v-ndc");function Ba(e){return re(e)?vo(Rr,e,!1)||e:e||bo}function vo(e,t,n=!0,r=!1){const s=fe||le;if(s){const o=s.type;if(e===Rr){const l=uc(o,!1);if(l&&(l===t||l===Ne(t)||l===xn(Ne(t))))return o}const i=es(s[e]||o[e],t)||es(s.appContext[e],t);return!i&&r?o:i}}function es(e,t){return e&&(e[t]||e[Ne(t)]||e[xn(Ne(t))])}function Ua(e,t,n,r){let s;const o=n&&n[r];if(U(e)||re(e)){s=new Array(e.length);for(let i=0,l=e.length;it(i,l,void 0,o&&o[l]));else{const i=Object.keys(e);s=new Array(i.length);for(let l=0,c=i.length;lwn(t)?!(t.type===ve||t.type===ge&&!wo(t.children)):!0)?e:null}function Ka(e,t){const n={};for(const r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:an(r)]=e[r];return n}const rr=e=>e?$o(e)?$n(e)||e.proxy:rr(e.parent):null,It=ie(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=>rr(e.parent),$root:e=>rr(e.root),$emit:e=>e.emit,$options:e=>Mr(e),$forceUpdate:e=>e.f||(e.f=()=>Pn(e.update)),$nextTick:e=>e.n||(e.n=On.bind(e.proxy)),$watch:e=>yl.bind(e)}),Kn=(e,t)=>e!==te&&!e.__isScriptSetup&&Y(e,t),Fl={get({_:e},t){const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;let a;if(t[0]!=="$"){const w=i[t];if(w!==void 0)switch(w){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Kn(r,t))return i[t]=1,r[t];if(s!==te&&Y(s,t))return i[t]=2,s[t];if((a=e.propsOptions[0])&&Y(a,t))return i[t]=3,o[t];if(n!==te&&Y(n,t))return i[t]=4,n[t];sr&&(i[t]=0)}}const f=It[t];let h,g;if(f)return t==="$attrs"&&me(e,"get",t),f(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==te&&Y(n,t))return i[t]=4,n[t];if(g=c.config.globalProperties,Y(g,t))return g[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Kn(s,t)?(s[t]=n,!0):r!==te&&Y(r,t)?(r[t]=n,!0):Y(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:o}},i){let l;return!!n[i]||e!==te&&Y(e,i)||Kn(t,i)||(l=o[0])&&Y(l,i)||Y(r,i)||Y(It,i)||Y(s.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Y(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Wa(){return Il().slots}function Il(){const e=Hn();return e.setupContext||(e.setupContext=Do(e))}function ts(e){return U(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let sr=!0;function Ll(e){const t=Mr(e),n=e.proxy,r=e.ctx;sr=!1,t.beforeCreate&&ns(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:a,created:f,beforeMount:h,mounted:g,beforeUpdate:w,updated:E,activated:S,deactivated:H,beforeDestroy:m,beforeUnmount:y,destroyed:N,unmounted:A,render:B,renderTracked:W,renderTriggered:D,errorCaptured:_,serverPrefetch:R,expose:I,inheritAttrs:V,components:M,directives:q,filters:L}=t;if(a&&Nl(a,r,null),i)for(const ne in i){const Z=i[ne];K(Z)&&(r[ne]=Z.bind(n))}if(s){const ne=s.call(n,n);ee(ne)&&(e.data=An(ne))}if(sr=!0,o)for(const ne in o){const Z=o[ne],Qe=K(Z)?Z.bind(n,n):K(Z.get)?Z.get.bind(n,n):Pe,Yt=!K(Z)&&K(Z.set)?Z.set.bind(n):Pe,Ze=ae({get:Qe,set:Yt});Object.defineProperty(r,ne,{enumerable:!0,configurable:!0,get:()=>Ze.value,set:Re=>Ze.value=Re})}if(l)for(const ne in l)Co(l[ne],r,n,ne);if(c){const ne=K(c)?c.call(n):c;Reflect.ownKeys(ne).forEach(Z=>{Ul(Z,ne[Z])})}f&&ns(f,e,"c");function X(ne,Z){U(Z)?Z.forEach(Qe=>ne(Qe.bind(n))):Z&&ne(Z.bind(n))}if(X(Tl,h),X(At,g),X(Al,w),X(Sl,E),X(Cl,S),X(El,H),X(Ml,_),X(Rl,W),X(Pl,D),X(yo,y),X(Ln,A),X(Ol,R),U(I))if(I.length){const ne=e.exposed||(e.exposed={});I.forEach(Z=>{Object.defineProperty(ne,Z,{get:()=>n[Z],set:Qe=>n[Z]=Qe})})}else e.exposed||(e.exposed={});B&&e.render===Pe&&(e.render=B),V!=null&&(e.inheritAttrs=V),M&&(e.components=M),q&&(e.directives=q)}function Nl(e,t,n=Pe){U(e)&&(e=or(e));for(const r in e){const s=e[r];let o;ee(s)?"default"in s?o=bt(s.from||r,s.default,!0):o=bt(s.from||r):o=bt(s),ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function ns(e,t,n){xe(U(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Co(e,t,n,r){const s=r.includes(".")?ho(n,r):()=>n[r];if(re(e)){const o=t[e];K(o)&&Ye(s,o)}else if(K(e))Ye(s,e.bind(n));else if(ee(e))if(U(e))e.forEach(o=>Co(o,t,n,r));else{const o=K(e.handler)?e.handler.bind(n):t[e.handler];K(o)&&Ye(s,o,e)}}function Mr(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(a=>yn(c,a,i,!0)),yn(c,t,i)),ee(t)&&o.set(t,c),c}function yn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&yn(e,o,n,!0),s&&s.forEach(i=>yn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Hl[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Hl={data:rs,props:ss,emits:ss,methods:Rt,computed:Rt,beforeCreate:he,created:he,beforeMount:he,mounted:he,beforeUpdate:he,updated:he,beforeDestroy:he,beforeUnmount:he,destroyed:he,unmounted:he,activated:he,deactivated:he,errorCaptured:he,serverPrefetch:he,components:Rt,directives:Rt,watch:jl,provide:rs,inject:$l};function rs(e,t){return t?e?function(){return ie(K(e)?e.call(this,this):e,K(t)?t.call(this,this):t)}:t:e}function $l(e,t){return Rt(or(e),or(t))}function or(e){if(U(e)){const t={};for(let n=0;n1)return n&&K(t)?t.call(r&&r.proxy):t}}function kl(e,t,n,r=!1){const s={},o={};hn(o,Nn,1),e.propsDefaults=Object.create(null),xo(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ji(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Kl(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=J(s),[c]=e.propsOptions;let a=!1;if((r||i>0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[g,w]=To(h,t,!0);ie(i,g),w&&l.push(...w)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!o&&!c)return ee(e)&&r.set(e,pt),pt;if(U(o))for(let f=0;f-1,w[1]=S<0||E-1||Y(w,"default"))&&l.push(h)}}}const a=[i,l];return ee(e)&&r.set(e,a),a}function os(e){return e[0]!=="$"}function is(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function ls(e,t){return is(e)===is(t)}function cs(e,t){return U(t)?t.findIndex(n=>ls(n,e)):K(t)&&ls(t,e)?0:-1}const Ao=e=>e[0]==="_"||e==="$stable",Fr=e=>U(e)?e.map(Ae):[Ae(e)],Wl=(e,t,n)=>{if(t._n)return t;const r=dl((...s)=>Fr(t(...s)),n);return r._c=!1,r},So=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Ao(s))continue;const o=e[s];if(K(o))t[s]=Wl(s,o,r);else if(o!=null){const i=Fr(o);t[s]=()=>i}}},Oo=(e,t)=>{const n=Fr(t);e.slots.default=()=>n},Vl=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=J(t),hn(t,"_",n)):So(t,e.slots={})}else e.slots={},t&&Oo(e,t);hn(e.slots,Nn,1)},ql=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=te;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:(ie(s,t),!n&&l===1&&delete s._):(o=!t.$stable,So(t,s)),i=t}else t&&(Oo(e,t),i={default:1});if(o)for(const l in s)!Ao(l)&&!(l in i)&&delete s[l]};function vn(e,t,n,r,s=!1){if(U(e)){e.forEach((g,w)=>vn(g,t&&(U(t)?t[w]:t),n,r,s));return}if(yt(r)&&!s)return;const o=r.shapeFlag&4?$n(r.component)||r.component.proxy:r.el,i=s?null:o,{i:l,r:c}=e,a=t&&t.r,f=l.refs===te?l.refs={}:l.refs,h=l.setupState;if(a!=null&&a!==c&&(re(a)?(f[a]=null,Y(h,a)&&(h[a]=null)):ce(a)&&(a.value=null)),K(c))ze(c,l,12,[i,f]);else{const g=re(c),w=ce(c);if(g||w){const E=()=>{if(e.f){const S=g?Y(h,c)?h[c]:f[c]:c.value;s?U(S)&&dr(S,o):U(S)?S.includes(o)||S.push(o):g?(f[c]=[o],Y(h,c)&&(h[c]=f[c])):(c.value=[o],e.k&&(f[e.k]=c.value))}else g?(f[c]=i,Y(h,c)&&(h[c]=i)):w&&(c.value=i,e.k&&(f[e.k]=i))};i?(E.id=-1,pe(E,n)):E()}}}let ke=!1;const nn=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",rn=e=>e.nodeType===8;function zl(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:l,insert:c,createComment:a}}=e,f=(m,y)=>{if(!y.hasChildNodes()){n(null,m,y),mn(),y._vnode=m;return}ke=!1,h(y.firstChild,m,null,null,null),mn(),y._vnode=m,ke&&console.error("Hydration completed but contains mismatches.")},h=(m,y,N,A,B,W=!1)=>{const D=rn(m)&&m.data==="[",_=()=>S(m,y,N,A,B,D),{type:R,ref:I,shapeFlag:V,patchFlag:M}=y;let q=m.nodeType;y.el=m,M===-2&&(W=!1,y.dynamicChildren=null);let L=null;switch(R){case wt:q!==3?y.children===""?(c(y.el=s(""),i(m),m),L=m):L=_():(m.data!==y.children&&(ke=!0,m.data=y.children),L=o(m));break;case ve:q!==8||D?L=_():L=o(m);break;case Nt:if(D&&(m=o(m),q=m.nodeType),q===1||q===3){L=m;const _e=!y.children.length;for(let X=0;X{W=W||!!y.dynamicChildren;const{type:D,props:_,patchFlag:R,shapeFlag:I,dirs:V}=y,M=D==="input"&&V||D==="option";if(M||R!==-1){if(V&&Fe(y,null,N,"created"),_)if(M||!W||R&48)for(const L in _)(M&&L.endsWith("value")||Vt(L)&&!Mt(L))&&r(m,L,null,_[L],!1,void 0,N);else _.onClick&&r(m,"onClick",null,_.onClick,!1,void 0,N);let q;if((q=_&&_.onVnodeBeforeMount)&&Ce(q,N,y),V&&Fe(y,null,N,"beforeMount"),((q=_&&_.onVnodeMounted)||V)&&fo(()=>{q&&Ce(q,N,y),V&&Fe(y,null,N,"mounted")},A),I&16&&!(_&&(_.innerHTML||_.textContent))){let L=w(m.firstChild,y,m,N,A,B,W);for(;L;){ke=!0;const _e=L;L=L.nextSibling,l(_e)}}else I&8&&m.textContent!==y.children&&(ke=!0,m.textContent=y.children)}return m.nextSibling},w=(m,y,N,A,B,W,D)=>{D=D||!!y.dynamicChildren;const _=y.children,R=_.length;for(let I=0;I{const{slotScopeIds:D}=y;D&&(B=B?B.concat(D):D);const _=i(m),R=w(o(m),y,_,N,A,B,W);return R&&rn(R)&&R.data==="]"?o(y.anchor=R):(ke=!0,c(y.anchor=a("]"),_,R),R)},S=(m,y,N,A,B,W)=>{if(ke=!0,y.el=null,W){const R=H(m);for(;;){const I=o(m);if(I&&I!==R)l(I);else break}}const D=o(m),_=i(m);return l(m),n(null,y,_,D,N,A,nn(_),B),D},H=m=>{let y=0;for(;m;)if(m=o(m),m&&rn(m)&&(m.data==="["&&y++,m.data==="]")){if(y===0)return o(m);y--}return m};return[f,h]}const pe=fo;function Yl(e){return Po(e)}function Jl(e){return Po(e,zl)}function Po(e,t){const n=Xn();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:a,setElementText:f,parentNode:h,nextSibling:g,setScopeId:w=Pe,insertStaticContent:E}=e,S=(u,d,p,v=null,b=null,T=null,P=!1,x=null,O=!!d.dynamicChildren)=>{if(u===d)return;u&&!rt(u,d)&&(v=Jt(u),Re(u,b,T,!0),u=null),d.patchFlag===-2&&(O=!1,d.dynamicChildren=null);const{type:C,ref:$,shapeFlag:F}=d;switch(C){case wt:H(u,d,p,v);break;case ve:m(u,d,p,v);break;case Nt:u==null&&y(d,p,v,P);break;case ge:M(u,d,p,v,b,T,P,x,O);break;default:F&1?B(u,d,p,v,b,T,P,x,O):F&6?q(u,d,p,v,b,T,P,x,O):(F&64||F&128)&&C.process(u,d,p,v,b,T,P,x,O,ut)}$!=null&&b&&vn($,u&&u.ref,T,d||u,!d)},H=(u,d,p,v)=>{if(u==null)r(d.el=l(d.children),p,v);else{const b=d.el=u.el;d.children!==u.children&&a(b,d.children)}},m=(u,d,p,v)=>{u==null?r(d.el=c(d.children||""),p,v):d.el=u.el},y=(u,d,p,v)=>{[u.el,u.anchor]=E(u.children,d,p,v,u.el,u.anchor)},N=({el:u,anchor:d},p,v)=>{let b;for(;u&&u!==d;)b=g(u),r(u,p,v),u=b;r(d,p,v)},A=({el:u,anchor:d})=>{let p;for(;u&&u!==d;)p=g(u),s(u),u=p;s(d)},B=(u,d,p,v,b,T,P,x,O)=>{P=P||d.type==="svg",u==null?W(d,p,v,b,T,P,x,O):R(u,d,b,T,P,x,O)},W=(u,d,p,v,b,T,P,x)=>{let O,C;const{type:$,props:F,shapeFlag:j,transition:k,dirs:z}=u;if(O=u.el=i(u.type,T,F&&F.is,F),j&8?f(O,u.children):j&16&&_(u.children,O,null,v,b,T&&$!=="foreignObject",P,x),z&&Fe(u,null,v,"created"),D(O,u,u.scopeId,P,v),F){for(const Q in F)Q!=="value"&&!Mt(Q)&&o(O,Q,null,F[Q],T,u.children,v,b,He);"value"in F&&o(O,"value",null,F.value),(C=F.onVnodeBeforeMount)&&Ce(C,v,u)}z&&Fe(u,null,v,"beforeMount");const G=(!b||b&&!b.pendingBranch)&&k&&!k.persisted;G&&k.beforeEnter(O),r(O,d,p),((C=F&&F.onVnodeMounted)||G||z)&&pe(()=>{C&&Ce(C,v,u),G&&k.enter(O),z&&Fe(u,null,v,"mounted")},b)},D=(u,d,p,v,b)=>{if(p&&w(u,p),v)for(let T=0;T{for(let C=O;C{const x=d.el=u.el;let{patchFlag:O,dynamicChildren:C,dirs:$}=d;O|=u.patchFlag&16;const F=u.props||te,j=d.props||te;let k;p&&Ge(p,!1),(k=j.onVnodeBeforeUpdate)&&Ce(k,p,d,u),$&&Fe(d,u,p,"beforeUpdate"),p&&Ge(p,!0);const z=b&&d.type!=="foreignObject";if(C?I(u.dynamicChildren,C,x,p,v,z,T):P||Z(u,d,x,null,p,v,z,T,!1),O>0){if(O&16)V(x,d,F,j,p,v,b);else if(O&2&&F.class!==j.class&&o(x,"class",null,j.class,b),O&4&&o(x,"style",F.style,j.style,b),O&8){const G=d.dynamicProps;for(let Q=0;Q{k&&Ce(k,p,d,u),$&&Fe(d,u,p,"updated")},v)},I=(u,d,p,v,b,T,P)=>{for(let x=0;x{if(p!==v){if(p!==te)for(const x in p)!Mt(x)&&!(x in v)&&o(u,x,p[x],null,P,d.children,b,T,He);for(const x in v){if(Mt(x))continue;const O=v[x],C=p[x];O!==C&&x!=="value"&&o(u,x,C,O,P,d.children,b,T,He)}"value"in v&&o(u,"value",p.value,v.value)}},M=(u,d,p,v,b,T,P,x,O)=>{const C=d.el=u?u.el:l(""),$=d.anchor=u?u.anchor:l("");let{patchFlag:F,dynamicChildren:j,slotScopeIds:k}=d;k&&(x=x?x.concat(k):k),u==null?(r(C,p,v),r($,p,v),_(d.children,p,$,b,T,P,x,O)):F>0&&F&64&&j&&u.dynamicChildren?(I(u.dynamicChildren,j,p,b,T,P,x),(d.key!=null||b&&d===b.subTree)&&Ir(u,d,!0)):Z(u,d,p,$,b,T,P,x,O)},q=(u,d,p,v,b,T,P,x,O)=>{d.slotScopeIds=x,u==null?d.shapeFlag&512?b.ctx.activate(d,p,v,P,O):L(d,p,v,b,T,P,O):_e(u,d,O)},L=(u,d,p,v,b,T,P)=>{const x=u.component=ic(u,v,b);if(zt(u)&&(x.ctx.renderer=ut),lc(x),x.asyncDep){if(b&&b.registerDep(x,X),!u.el){const O=x.subTree=se(ve);m(null,O,d,p)}return}X(x,u,d,p,b,T,P)},_e=(u,d,p)=>{const v=d.component=u.component;if(gl(u,d,p))if(v.asyncDep&&!v.asyncResolved){ne(v,d,p);return}else v.next=d,cl(v.update),v.update();else d.el=u.el,v.vnode=d},X=(u,d,p,v,b,T,P)=>{const x=()=>{if(u.isMounted){let{next:$,bu:F,u:j,parent:k,vnode:z}=u,G=$,Q;Ge(u,!1),$?($.el=z.el,ne(u,$,P)):$=z,F&&un(F),(Q=$.props&&$.props.onVnodeBeforeUpdate)&&Ce(Q,k,$,z),Ge(u,!0);const oe=Bn(u),Te=u.subTree;u.subTree=oe,S(Te,oe,h(Te.el),Jt(Te),u,b,T),$.el=oe.el,G===null&&ml(u,oe.el),j&&pe(j,b),(Q=$.props&&$.props.onVnodeUpdated)&&pe(()=>Ce(Q,k,$,z),b)}else{let $;const{el:F,props:j}=d,{bm:k,m:z,parent:G}=u,Q=yt(d);if(Ge(u,!1),k&&un(k),!Q&&($=j&&j.onVnodeBeforeMount)&&Ce($,G,d),Ge(u,!0),F&&Dn){const oe=()=>{u.subTree=Bn(u),Dn(F,u.subTree,u,b,null)};Q?d.type.__asyncLoader().then(()=>!u.isUnmounted&&oe()):oe()}else{const oe=u.subTree=Bn(u);S(null,oe,p,v,u,b,T),d.el=oe.el}if(z&&pe(z,b),!Q&&($=j&&j.onVnodeMounted)){const oe=d;pe(()=>Ce($,G,oe),b)}(d.shapeFlag&256||G&&yt(G.vnode)&&G.vnode.shapeFlag&256)&&u.a&&pe(u.a,b),u.isMounted=!0,d=p=v=null}},O=u.effect=new yr(x,()=>Pn(C),u.scope),C=u.update=()=>O.run();C.id=u.uid,Ge(u,!0),C()},ne=(u,d,p)=>{d.component=u;const v=u.vnode.props;u.vnode=d,u.next=null,Kl(u,d.props,v,p),ql(u,d.children,p),xt(),Qr(),Tt()},Z=(u,d,p,v,b,T,P,x,O=!1)=>{const C=u&&u.children,$=u?u.shapeFlag:0,F=d.children,{patchFlag:j,shapeFlag:k}=d;if(j>0){if(j&128){Yt(C,F,p,v,b,T,P,x,O);return}else if(j&256){Qe(C,F,p,v,b,T,P,x,O);return}}k&8?($&16&&He(C,b,T),F!==C&&f(p,F)):$&16?k&16?Yt(C,F,p,v,b,T,P,x,O):He(C,b,T,!0):($&8&&f(p,""),k&16&&_(F,p,v,b,T,P,x,O))},Qe=(u,d,p,v,b,T,P,x,O)=>{u=u||pt,d=d||pt;const C=u.length,$=d.length,F=Math.min(C,$);let j;for(j=0;j$?He(u,b,T,!0,!1,F):_(d,p,v,b,T,P,x,O,F)},Yt=(u,d,p,v,b,T,P,x,O)=>{let C=0;const $=d.length;let F=u.length-1,j=$-1;for(;C<=F&&C<=j;){const k=u[C],z=d[C]=O?Ve(d[C]):Ae(d[C]);if(rt(k,z))S(k,z,p,null,b,T,P,x,O);else break;C++}for(;C<=F&&C<=j;){const k=u[F],z=d[j]=O?Ve(d[j]):Ae(d[j]);if(rt(k,z))S(k,z,p,null,b,T,P,x,O);else break;F--,j--}if(C>F){if(C<=j){const k=j+1,z=k<$?d[k].el:v;for(;C<=j;)S(null,d[C]=O?Ve(d[C]):Ae(d[C]),p,z,b,T,P,x,O),C++}}else if(C>j)for(;C<=F;)Re(u[C],b,T,!0),C++;else{const k=C,z=C,G=new Map;for(C=z;C<=j;C++){const ye=d[C]=O?Ve(d[C]):Ae(d[C]);ye.key!=null&&G.set(ye.key,C)}let Q,oe=0;const Te=j-z+1;let ft=!1,Br=0;const St=new Array(Te);for(C=0;C=Te){Re(ye,b,T,!0);continue}let Me;if(ye.key!=null)Me=G.get(ye.key);else for(Q=z;Q<=j;Q++)if(St[Q-z]===0&&rt(ye,d[Q])){Me=Q;break}Me===void 0?Re(ye,b,T,!0):(St[Me-z]=C+1,Me>=Br?Br=Me:ft=!0,S(ye,d[Me],p,null,b,T,P,x,O),oe++)}const Ur=ft?Xl(St):pt;for(Q=Ur.length-1,C=Te-1;C>=0;C--){const ye=z+C,Me=d[ye],kr=ye+1<$?d[ye+1].el:v;St[C]===0?S(null,Me,p,kr,b,T,P,x,O):ft&&(Q<0||C!==Ur[Q]?Ze(Me,p,kr,2):Q--)}}},Ze=(u,d,p,v,b=null)=>{const{el:T,type:P,transition:x,children:O,shapeFlag:C}=u;if(C&6){Ze(u.component.subTree,d,p,v);return}if(C&128){u.suspense.move(d,p,v);return}if(C&64){P.move(u,d,p,ut);return}if(P===ge){r(T,d,p);for(let F=0;Fx.enter(T),b);else{const{leave:F,delayLeave:j,afterLeave:k}=x,z=()=>r(T,d,p),G=()=>{F(T,()=>{z(),k&&k()})};j?j(T,z,G):G()}else r(T,d,p)},Re=(u,d,p,v=!1,b=!1)=>{const{type:T,props:P,ref:x,children:O,dynamicChildren:C,shapeFlag:$,patchFlag:F,dirs:j}=u;if(x!=null&&vn(x,null,p,u,!0),$&256){d.ctx.deactivate(u);return}const k=$&1&&j,z=!yt(u);let G;if(z&&(G=P&&P.onVnodeBeforeUnmount)&&Ce(G,d,u),$&6)oi(u.component,p,v);else{if($&128){u.suspense.unmount(p,v);return}k&&Fe(u,null,d,"beforeUnmount"),$&64?u.type.remove(u,d,p,b,ut,v):C&&(T!==ge||F>0&&F&64)?He(C,d,p,!1,!0):(T===ge&&F&384||!b&&$&16)&&He(O,d,p),v&&jr(u)}(z&&(G=P&&P.onVnodeUnmounted)||k)&&pe(()=>{G&&Ce(G,d,u),k&&Fe(u,null,d,"unmounted")},p)},jr=u=>{const{type:d,el:p,anchor:v,transition:b}=u;if(d===ge){si(p,v);return}if(d===Nt){A(u);return}const T=()=>{s(p),b&&!b.persisted&&b.afterLeave&&b.afterLeave()};if(u.shapeFlag&1&&b&&!b.persisted){const{leave:P,delayLeave:x}=b,O=()=>P(p,T);x?x(u.el,T,O):O()}else T()},si=(u,d)=>{let p;for(;u!==d;)p=g(u),s(u),u=p;s(d)},oi=(u,d,p)=>{const{bum:v,scope:b,update:T,subTree:P,um:x}=u;v&&un(v),b.stop(),T&&(T.active=!1,Re(P,u,d,p)),x&&pe(x,d),pe(()=>{u.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},He=(u,d,p,v=!1,b=!1,T=0)=>{for(let P=T;Pu.shapeFlag&6?Jt(u.component.subTree):u.shapeFlag&128?u.suspense.next():g(u.anchor||u.el),Dr=(u,d,p)=>{u==null?d._vnode&&Re(d._vnode,null,null,!0):S(d._vnode||null,u,d,null,null,null,p),Qr(),mn(),d._vnode=u},ut={p:S,um:Re,m:Ze,r:jr,mt:L,mc:_,pc:Z,pbc:I,n:Jt,o:e};let jn,Dn;return t&&([jn,Dn]=t(ut)),{render:Dr,hydrate:jn,createApp:Bl(Dr,jn)}}function Ge({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Ir(e,t,n=!1){const r=e.children,s=t.children;if(U(r)&&U(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}const Ql=e=>e.__isTeleport,Lt=e=>e&&(e.disabled||e.disabled===""),as=e=>typeof SVGElement<"u"&&e instanceof SVGElement,lr=(e,t)=>{const n=e&&e.to;return re(n)?t?t(n):null:n},Zl={__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,a){const{mc:f,pc:h,pbc:g,o:{insert:w,querySelector:E,createText:S,createComment:H}}=a,m=Lt(t.props);let{shapeFlag:y,children:N,dynamicChildren:A}=t;if(e==null){const B=t.el=S(""),W=t.anchor=S("");w(B,n,r),w(W,n,r);const D=t.target=lr(t.props,E),_=t.targetAnchor=S("");D&&(w(_,D),i=i||as(D));const R=(I,V)=>{y&16&&f(N,I,V,s,o,i,l,c)};m?R(n,W):D&&R(D,_)}else{t.el=e.el;const B=t.anchor=e.anchor,W=t.target=e.target,D=t.targetAnchor=e.targetAnchor,_=Lt(e.props),R=_?n:W,I=_?B:D;if(i=i||as(W),A?(g(e.dynamicChildren,A,R,s,o,i,l),Ir(e,t,!0)):c||h(e,t,R,I,s,o,i,l,!1),m)_||sn(t,n,B,a,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const V=t.target=lr(t.props,E);V&&sn(t,V,null,a,0)}else _&&sn(t,W,D,a,1)}Ro(t)},remove(e,t,n,r,{um:s,o:{remove:o}},i){const{shapeFlag:l,children:c,anchor:a,targetAnchor:f,target:h,props:g}=e;if(h&&o(f),(i||!Lt(g))&&(o(a),l&16))for(let w=0;w0?Oe||pt:null,ec(),kt>0&&Oe&&Oe.push(e),e}function qa(e,t,n,r,s,o){return Fo(No(e,t,n,r,s,o,!0))}function Io(e,t,n,r,s){return Fo(se(e,t,n,r,s,!0))}function wn(e){return e?e.__v_isVNode===!0:!1}function rt(e,t){return e.type===t.type&&e.key===t.key}const Nn="__vInternal",Lo=({key:e})=>e??null,fn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?re(e)||ce(e)||K(e)?{i:fe,r:e,k:t,f:!!n}:e:null);function No(e,t=null,n=null,r=0,s=null,o=e===ge?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Lo(t),ref:t&&fn(t),scopeId:Mn,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:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:fe};return l?(Lr(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=re(n)?8:16),kt>0&&!i&&Oe&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Oe.push(c),c}const se=tc;function tc(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===bo)&&(e=ve),wn(e)){const l=Xe(e,t,!0);return n&&Lr(l,n),kt>0&&!o&&Oe&&(l.shapeFlag&6?Oe[Oe.indexOf(e)]=l:Oe.push(l)),l.patchFlag|=-2,l}if(fc(e)&&(e=e.__vccOpts),t){t=nc(t);let{class:l,style:c}=t;l&&!re(l)&&(t.class=mr(l)),ee(c)&&(ro(c)&&!U(c)&&(c=ie({},c)),t.style=gr(c))}const i=re(e)?1:_l(e)?128:Ql(e)?64:ee(e)?4:K(e)?2:0;return No(e,t,n,r,s,i,o,!0)}function nc(e){return e?ro(e)||Nn in e?ie({},e):e:null}function Xe(e,t,n=!1){const{props:r,ref:s,patchFlag:o,children:i}=e,l=t?rc(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Lo(l),ref:t&&t.ref?n&&s?U(s)?s.concat(fn(t)):[s,fn(t)]:fn(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ge?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Xe(e.ssContent),ssFallback:e.ssFallback&&Xe(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Ho(e=" ",t=0){return se(wt,null,e,t)}function za(e,t){const n=se(Nt,null,e);return n.staticCount=t,n}function Ya(e="",t=!1){return t?(Mo(),Io(ve,null,e)):se(ve,null,e)}function Ae(e){return e==null||typeof e=="boolean"?se(ve):U(e)?se(ge,null,e.slice()):typeof e=="object"?Ve(e):se(wt,null,String(e))}function Ve(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Xe(e)}function Lr(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(U(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Lr(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!(Nn in t)?t._ctx=fe:s===3&&fe&&(fe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else K(t)?(t={default:t,_ctx:fe},n=32):(t=String(t),r&64?(n=16,t=[Ho(t)]):n=8);e.children=t,e.shapeFlag|=n}function rc(...e){const t={};for(let n=0;nle||fe;let Nr,dt,fs="__VUE_INSTANCE_SETTERS__";(dt=Xn()[fs])||(dt=Xn()[fs]=[]),dt.push(e=>le=e),Nr=e=>{dt.length>1?dt.forEach(t=>t(e)):dt[0](e)};const Ct=e=>{Nr(e),e.scope.on()},ct=()=>{le&&le.scope.off(),Nr(null)};function $o(e){return e.vnode.shapeFlag&4}let Et=!1;function lc(e,t=!1){Et=t;const{props:n,children:r}=e.vnode,s=$o(e);kl(e,n,s,t),Vl(e,r);const o=s?cc(e,t):void 0;return Et=!1,o}function cc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Ft(new Proxy(e.ctx,Fl));const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?Do(e):null;Ct(e),xt();const o=ze(r,e,0,[e.props,s]);if(Tt(),ct(),Us(o)){if(o.then(ct,ct),t)return o.then(i=>{ds(e,i,t)}).catch(i=>{qt(i,e,0)});e.asyncDep=o}else ds(e,o,t)}else jo(e,t)}function ds(e,t,n){K(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ee(t)&&(e.setupState=io(t)),jo(e,n)}let hs;function jo(e,t,n){const r=e.type;if(!e.render){if(!t&&hs&&!r.render){const s=r.template||Mr(e).template;if(s){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,a=ie(ie({isCustomElement:o,delimiters:l},i),c);r.render=hs(s,a)}}e.render=r.render||Pe}Ct(e),xt(),Ll(e),Tt(),ct()}function ac(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return me(e,"get","$attrs"),t[n]}}))}function Do(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return ac(e)},slots:e.slots,emit:e.emit,expose:t}}function $n(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(io(Ft(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in It)return It[n](e)},has(t,n){return n in t||n in It}}))}function uc(e,t=!0){return K(e)?e.displayName||e.name:e.name||t&&e.__name}function fc(e){return K(e)&&"__vccOpts"in e}const ae=(e,t)=>ol(e,t,Et);function cr(e,t,n){const r=arguments.length;return r===2?ee(t)&&!U(t)?wn(t)?se(e,null,[t]):se(e,t):se(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&wn(n)&&(n=[n]),se(e,t,n))}const dc=Symbol.for("v-scx"),hc=()=>bt(dc),pc="3.3.4",gc="http://www.w3.org/2000/svg",st=typeof document<"u"?document:null,ps=st&&st.createElement("template"),mc={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 s=t?st.createElementNS(gc,e):st.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>st.createTextNode(e),createComment:e=>st.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>st.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{ps.innerHTML=r?`${e}`:e;const l=ps.content;if(r){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]}};function _c(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function yc(e,t,n){const r=e.style,s=re(n);if(n&&!s){if(t&&!re(t))for(const o in t)n[o]==null&&ar(r,o,"");for(const o in n)ar(r,o,n[o])}else{const o=r.display;s?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=o)}}const gs=/\s*!important$/;function ar(e,t,n){if(U(n))n.forEach(r=>ar(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=bc(e,t);gs.test(n)?e.setProperty(at(r),n.replace(gs,""),"important"):e[r]=n}}const ms=["Webkit","Moz","ms"],Wn={};function bc(e,t){const n=Wn[t];if(n)return n;let r=Ne(t);if(r!=="filter"&&r in e)return Wn[t]=r;r=xn(r);for(let s=0;sVn||(Tc.then(()=>Vn=0),Vn=Date.now());function Sc(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;xe(Oc(r,n.value),t,5,[r])};return n.value=e,n.attached=Ac(),n}function Oc(e,t){if(U(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const bs=/^on[a-z]/,Pc=(e,t,n,r,s=!1,o,i,l,c)=>{t==="class"?_c(e,r,s):t==="style"?yc(e,n,r):Vt(t)?fr(t)||Ec(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Rc(e,t,r,s))?wc(e,t,r,o,i,l,c):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),vc(e,t,r,s))};function Rc(e,t,n,r){return r?!!(t==="innerHTML"||t==="textContent"||t in e&&bs.test(t)&&K(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||bs.test(t)&&re(n)?!1:t in e}const Ke="transition",Ot="animation",Bo=(e,{slots:t})=>cr(wl,Mc(e),t);Bo.displayName="Transition";const Uo={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};Bo.props=ie({},po,Uo);const et=(e,t=[])=>{U(e)?e.forEach(n=>n(...t)):e&&e(...t)},vs=e=>e?U(e)?e.some(t=>t.length>1):e.length>1:!1;function Mc(e){const t={};for(const M in e)M in Uo||(t[M]=e[M]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:a=i,appearToClass:f=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:g=`${n}-leave-active`,leaveToClass:w=`${n}-leave-to`}=e,E=Fc(s),S=E&&E[0],H=E&&E[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:N,onLeave:A,onLeaveCancelled:B,onBeforeAppear:W=m,onAppear:D=y,onAppearCancelled:_=N}=t,R=(M,q,L)=>{tt(M,q?f:l),tt(M,q?a:i),L&&L()},I=(M,q)=>{M._isLeaving=!1,tt(M,h),tt(M,w),tt(M,g),q&&q()},V=M=>(q,L)=>{const _e=M?D:y,X=()=>R(q,M,L);et(_e,[q,X]),ws(()=>{tt(q,M?c:o),We(q,M?f:l),vs(_e)||Cs(q,r,S,X)})};return ie(t,{onBeforeEnter(M){et(m,[M]),We(M,o),We(M,i)},onBeforeAppear(M){et(W,[M]),We(M,c),We(M,a)},onEnter:V(!1),onAppear:V(!0),onLeave(M,q){M._isLeaving=!0;const L=()=>I(M,q);We(M,h),Nc(),We(M,g),ws(()=>{M._isLeaving&&(tt(M,h),We(M,w),vs(A)||Cs(M,r,H,L))}),et(A,[M,L])},onEnterCancelled(M){R(M,!1),et(N,[M])},onAppearCancelled(M){R(M,!0),et(_,[M])},onLeaveCancelled(M){I(M),et(B,[M])}})}function Fc(e){if(e==null)return null;if(ee(e))return[qn(e.enter),qn(e.leave)];{const t=qn(e);return[t,t]}}function qn(e){return di(e)}function We(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function tt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function ws(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Ic=0;function Cs(e,t,n,r){const s=e._endId=++Ic,o=()=>{s===e._endId&&r()};if(n)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Lc(e,t);if(!i)return r();const a=i+"end";let f=0;const h=()=>{e.removeEventListener(a,g),o()},g=w=>{w.target===e&&++f>=c&&h()};setTimeout(()=>{f(n[E]||"").split(", "),s=r(`${Ke}Delay`),o=r(`${Ke}Duration`),i=Es(s,o),l=r(`${Ot}Delay`),c=r(`${Ot}Duration`),a=Es(l,c);let f=null,h=0,g=0;t===Ke?i>0&&(f=Ke,h=i,g=o.length):t===Ot?a>0&&(f=Ot,h=a,g=c.length):(h=Math.max(i,a),f=h>0?i>a?Ke:Ot:null,g=f?f===Ke?o.length:c.length:0);const w=f===Ke&&/\b(transform|all)(,|$)/.test(r(`${Ke}Property`).toString());return{type:f,timeout:h,propCount:g,hasTransform:w}}function Es(e,t){for(;e.lengthxs(n)+xs(e[r])))}function xs(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function Nc(){return document.body.offsetHeight}const Ts=e=>{const t=e.props["onUpdate:modelValue"]||!1;return U(t)?n=>un(t,n):t};function Hc(e){e.target.composing=!0}function As(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ja={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e._assign=Ts(s);const o=r||s.props&&s.props.type==="number";ht(e,t?"change":"input",i=>{if(i.target.composing)return;let l=e.value;n&&(l=l.trim()),o&&(l=Jn(l)),e._assign(l)}),n&&ht(e,"change",()=>{e.value=e.value.trim()}),t||(ht(e,"compositionstart",Hc),ht(e,"compositionend",As),ht(e,"change",As))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:r,number:s}},o){if(e._assign=Ts(o),e.composing||document.activeElement===e&&e.type!=="range"&&(n||r&&e.value.trim()===t||(s||e.type==="number")&&Jn(e.value)===t))return;const i=t??"";e.value!==i&&(e.value=i)}},$c=["ctrl","shift","alt","meta"],jc={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>$c.some(n=>e[`${n}Key`]&&!t.includes(n))},Xa=(e,t)=>(n,...r)=>{for(let s=0;sn=>{if(!("key"in n))return;const r=at(n.key);if(t.some(s=>s===r||Dc[s]===r))return e(n)},ko=ie({patchProp:Pc},mc);let $t,Ss=!1;function Bc(){return $t||($t=Yl(ko))}function Uc(){return $t=Ss?$t:Jl(ko),Ss=!0,$t}const Za=(...e)=>{const t=Bc().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ko(r);if(!s)return;const o=t._component;!K(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.innerHTML="";const i=n(s,!1,s instanceof SVGElement);return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t},Ga=(...e)=>{const t=Uc().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Ko(r);if(s)return n(s,!0,s instanceof SVGElement)},t};function Ko(e){return re(e)?document.querySelector(e):e}const eu=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},kc="modulepreload",Kc=function(e){return"/"+e},Os={},tu=function(t,n,r){if(!n||n.length===0)return t();const s=document.getElementsByTagName("link");return Promise.all(n.map(o=>{if(o=Kc(o),o in Os)return;Os[o]=!0;const i=o.endsWith(".css"),l=i?'[rel="stylesheet"]':"";if(!!r)for(let f=s.length-1;f>=0;f--){const h=s[f];if(h.href===o&&(!i||h.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${o}"]${l}`))return;const a=document.createElement("link");if(a.rel=i?"stylesheet":kc,i||(a.as="script",a.crossOrigin=""),a.href=o,document.head.appendChild(a),i)return new Promise((f,h)=>{a.addEventListener("load",f),a.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${o}`)))})})).then(()=>t()).catch(o=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o})},Wc=window.__VP_SITE_DATA__;function Hr(e){return qs()?(wi(e),!0):!1}function Le(e){return typeof e=="function"?e():oo(e)}const Wo=typeof window<"u"&&typeof document<"u",Vc=Object.prototype.toString,qc=e=>Vc.call(e)==="[object Object]",Kt=()=>{},Ps=zc();function zc(){var e;return Wo&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent)}function Yc(e,t){function n(...r){return new Promise((s,o)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(o)})}return n}const Vo=e=>e();function Jc(e,t={}){let n,r,s=Kt;const o=l=>{clearTimeout(l),s(),s=Kt};return l=>{const c=Le(e),a=Le(t.maxWait);return n&&o(n),c<=0||a!==void 0&&a<=0?(r&&(o(r),r=null),Promise.resolve(l())):new Promise((f,h)=>{s=t.rejectOnCancel?h:f,a&&!r&&(r=setTimeout(()=>{n&&o(n),r=null,f(l())},a)),n=setTimeout(()=>{r&&o(r),r=null,f(l())},c)})}}function Xc(e=Vo){const t=ue(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...o)=>{t.value&&e(...o)};return{isActive:Sn(t),pause:n,resume:r,eventFilter:s}}function qo(...e){if(e.length!==1)return nl(...e);const t=e[0];return typeof t=="function"?Sn(Gi(()=>({get:t,set:Kt}))):ue(t)}function zo(e,t,n={}){const{eventFilter:r=Vo,...s}=n;return Ye(e,Yc(r,t),s)}function Qc(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:o,pause:i,resume:l,isActive:c}=Xc(r);return{stop:zo(e,t,{...s,eventFilter:o}),pause:i,resume:l,isActive:c}}function Zc(e,t=!0){Hn()?At(e):t?e():On(e)}function nu(e,t,n={}){const{debounce:r=0,maxWait:s=void 0,...o}=n;return zo(e,t,{...o,eventFilter:Jc(r,{maxWait:s})})}function ru(e,t,n){let r;ce(n)?r={evaluating:n}:r=n||{};const{lazy:s=!1,evaluating:o=void 0,shallow:i=!0,onError:l=Kt}=r,c=ue(!s),a=i?Ar(t):ue(t);let f=0;return Or(async h=>{if(!c.value)return;f++;const g=f;let w=!1;o&&Promise.resolve().then(()=>{o.value=!0});try{const E=await e(S=>{h(()=>{o&&(o.value=!1),w||S()})});g===f&&(a.value=E)}catch(E){l(E)}finally{o&&g===f&&(o.value=!1),w=!0}}),s?ae(()=>(c.value=!0,a.value)):a}function Yo(e){var t;const n=Le(e);return(t=n==null?void 0:n.$el)!=null?t:n}const De=Wo?window:void 0;function Wt(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=De):[t,n,r,s]=e,!t)return Kt;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const o=[],i=()=>{o.forEach(f=>f()),o.length=0},l=(f,h,g,w)=>(f.addEventListener(h,g,w),()=>f.removeEventListener(h,g,w)),c=Ye(()=>[Yo(t),Le(s)],([f,h])=>{if(i(),!f)return;const g=qc(h)?{...h}:h;o.push(...n.flatMap(w=>r.map(E=>l(f,w,E,g))))},{immediate:!0,flush:"post"}),a=()=>{c(),i()};return Hr(a),a}function Gc(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function su(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=De,eventName:o="keydown",passive:i=!1,dedupe:l=!1}=r,c=Gc(t);return Wt(s,o,f=>{f.repeat&&Le(l)||c(f)&&n(f)},i)}function ea(){const e=ue(!1);return Hn()&&At(()=>{e.value=!0}),e}function ta(e){const t=ea();return ae(()=>(t.value,!!e()))}function na(e,t={}){const{window:n=De}=t,r=ta(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const o=ue(!1),i=a=>{o.value=a.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",i):s.removeListener(i))},c=Or(()=>{r.value&&(l(),s=n.matchMedia(Le(e)),"addEventListener"in s?s.addEventListener("change",i):s.addListener(i),o.value=s.matches)});return Hr(()=>{c(),l(),s=void 0}),o}const on=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ln="__vueuse_ssr_handlers__",ra=sa();function sa(){return ln in on||(on[ln]=on[ln]||{}),on[ln]}function Jo(e,t){return ra[e]||t}function oa(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 ia={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()}},Rs="vueuse-storage";function $r(e,t,n,r={}){var s;const{flush:o="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:a=!1,shallow:f,window:h=De,eventFilter:g,onError:w=_=>{console.error(_)}}=r,E=(f?Ar:ue)(t);if(!n)try{n=Jo("getDefaultStorage",()=>{var _;return(_=De)==null?void 0:_.localStorage})()}catch(_){w(_)}if(!n)return E;const S=Le(t),H=oa(S),m=(s=r.serializer)!=null?s:ia[H],{pause:y,resume:N}=Qc(E,()=>A(E.value),{flush:o,deep:i,eventFilter:g});return h&&l&&(Wt(h,"storage",D),Wt(h,Rs,W)),D(),E;function A(_){try{if(_==null)n.removeItem(e);else{const R=m.write(_),I=n.getItem(e);I!==R&&(n.setItem(e,R),h&&h.dispatchEvent(new CustomEvent(Rs,{detail:{key:e,oldValue:I,newValue:R,storageArea:n}})))}}catch(R){w(R)}}function B(_){const R=_?_.newValue:n.getItem(e);if(R==null)return c&&S!==null&&n.setItem(e,m.write(S)),S;if(!_&&a){const I=m.read(R);return typeof a=="function"?a(I,S):H==="object"&&!Array.isArray(I)?{...S,...I}:I}else return typeof R!="string"?R:m.read(R)}function W(_){D(_.detail)}function D(_){if(!(_&&_.storageArea!==n)){if(_&&_.key==null){E.value=S;return}if(!(_&&_.key!==e)){y();try{(_==null?void 0:_.newValue)!==m.write(E.value)&&(E.value=B(_))}catch(R){w(R)}finally{_?On(N):N()}}}}}function la(e){return na("(prefers-color-scheme: dark)",e)}function ca(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=De,storage:o,storageKey:i="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:a,disableTransition:f=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},g=la({window:s}),w=ae(()=>g.value?"dark":"light"),E=c||(i==null?qo(r):$r(i,r,o,{window:s,listenToStorageChanges:l})),S=ae(()=>E.value==="auto"?w.value:E.value),H=Jo("updateHTMLAttrs",(A,B,W)=>{const D=typeof A=="string"?s==null?void 0:s.document.querySelector(A):Yo(A);if(!D)return;let _;if(f){_=s.document.createElement("style");const R="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";_.appendChild(document.createTextNode(R)),s.document.head.appendChild(_)}if(B==="class"){const R=W.split(/\s/g);Object.values(h).flatMap(I=>(I||"").split(/\s/g)).filter(Boolean).forEach(I=>{R.includes(I)?D.classList.add(I):D.classList.remove(I)})}else D.setAttribute(B,W);f&&(s.getComputedStyle(_).opacity,document.head.removeChild(_))});function m(A){var B;H(t,n,(B=h[A])!=null?B:A)}function y(A){e.onChanged?e.onChanged(A,m):m(A)}Ye(S,y,{flush:"post",immediate:!0}),Zc(()=>y(S.value));const N=ae({get(){return a?E.value:S.value},set(A){E.value=A}});try{return Object.assign(N,{store:E,system:w,state:S})}catch{return N}}function aa(e={}){const{valueDark:t="dark",valueLight:n=""}=e,r=ca({...e,onChanged:(o,i)=>{var l;e.onChanged?(l=e.onChanged)==null||l.call(e,o==="dark",i,o):i(o)},modes:{dark:t,light:n}});return ae({get(){return r.value==="dark"},set(o){const i=o?"dark":"light";r.system.value===i?r.value="auto":r.value=i}})}function zn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function ou(e,t,n={}){const{window:r=De}=n;return $r(e,t,r==null?void 0:r.localStorage,n)}function Xo(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}function iu(e,t=!1){const n=ue(t);let r=null,s;Ye(qo(e),l=>{const c=zn(Le(l));if(c){const a=c;s=a.style.overflow,n.value&&(a.style.overflow="hidden")}},{immediate:!0});const o=()=>{const l=zn(Le(e));!l||n.value||(Ps&&(r=Wt(l,"touchmove",c=>{ua(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},i=()=>{const l=zn(Le(e));!l||!n.value||(Ps&&(r==null||r()),l.style.overflow=s,n.value=!1)};return Hr(i),ae({get(){return n.value},set(l){l?o():i()}})}function lu(e,t,n={}){const{window:r=De}=n;return $r(e,t,r==null?void 0:r.sessionStorage,n)}function cu({window:e=De}={}){if(!e)return{x:ue(0),y:ue(0)};const t=ue(e.scrollX),n=ue(e.scrollY);return Wt(e,"scroll",()=>{t.value=e.scrollX,n.value=e.scrollY},{capture:!1,passive:!0}),{x:t,y:n}}const Qo=/^[a-z]+:/i,fa="vitepress-theme-appearance",Zo=/#.*$/,da=/(index)?\.(md|html)$/,Ee=typeof document<"u",Go={relativePath:"",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function ha(e,t,n=!1){if(t===void 0)return!1;if(e=Ms(`/${e}`),n)return new RegExp(t).test(e);if(Ms(t)!==e)return!1;const r=t.match(Zo);return r?(Ee?location.hash:"")===r[0]:!0}function Ms(e){return decodeURI(e).replace(Zo,"").replace(da,"")}function pa(e){return Qo.test(e)}function ga(e,t){var r,s,o,i,l,c,a;const n=Object.keys(e.locales).find(f=>f!=="root"&&!pa(f)&&ha(t,`/${f}/`,!0))||"root";return Object.assign({},e,{localeIndex:n,lang:((r=e.locales[n])==null?void 0:r.lang)??e.lang,dir:((s=e.locales[n])==null?void 0:s.dir)??e.dir,title:((o=e.locales[n])==null?void 0:o.title)??e.title,titleTemplate:((i=e.locales[n])==null?void 0:i.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:ti(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(a=e.locales[n])==null?void 0:a.themeConfig}})}function ei(e,t){const n=t.title||e.title,r=t.titleTemplate??e.titleTemplate;if(typeof r=="string"&&r.includes(":title"))return r.replace(/:title/g,n);const s=ma(e.title,r);return`${n}${s}`}function ma(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function _a(e,t){const[n,r]=t;if(n!=="meta")return!1;const s=Object.entries(r)[0];return s==null?!1:e.some(([o,i])=>o===n&&i[s[0]]===s[1])}function ti(e,t){return[...e.filter(n=>!_a(t,n)),...t]}const ya=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,ba=/^[a-z]:/i;function Fs(e){const t=ba.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(ya,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const va=Symbol(),it=Ar(Wc);function au(e){const t=ae(()=>ga(it.value,e.data.relativePath)),n=t.value.appearance?aa({storageKey:fa,initialValue:()=>typeof t.value.appearance=="string"?t.value.appearance:"auto",...typeof t.value.appearance=="object"?t.value.appearance:{}}):ue(!1);return{site:t,theme:ae(()=>t.value.themeConfig),page:ae(()=>e.data),frontmatter:ae(()=>e.data.frontmatter),params:ae(()=>e.data.params),lang:ae(()=>t.value.lang),dir:ae(()=>t.value.dir),localeIndex:ae(()=>t.value.localeIndex||"root"),title:ae(()=>ei(t.value,e.data)),description:ae(()=>e.data.description||t.value.description),isDark:n}}function wa(){const e=bt(va);if(!e)throw new Error("vitepress data not properly injected in app");return e}function Ca(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Is(e){return Qo.test(e)||!e.startsWith("/")?e:Ca(it.value.base,e)}function Ea(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),Ee){const n="/";t=Fs(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let r=__VP_HASH_MAP__[t.toLowerCase()];if(r||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",r=__VP_HASH_MAP__[t.toLowerCase()]),!r)return null;t=`${n}assets/${t}.${r}.js`}else t=`./${Fs(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let dn=[];function uu(e){dn.push(e),Ln(()=>{dn=dn.filter(t=>t!==e)})}const xa=Symbol(),Ls="http://a.com",Ta=()=>({path:"/",component:null,data:Go});function fu(e,t){const n=An(Ta()),r={route:n,go:s};async function s(l=Ee?location.href:"/"){var a,f;if(await((a=r.onBeforeRouteChange)==null?void 0:a.call(r,l))===!1)return;const c=new URL(l,Ls);it.value.cleanUrls||!c.pathname.endsWith("/")&&!c.pathname.endsWith(".html")&&(c.pathname+=".html",l=c.pathname+c.search+c.hash),$s(l),await i(l),await((f=r.onAfterRouteChanged)==null?void 0:f.call(r,l))}let o=null;async function i(l,c=0,a=!1){var g;if(await((g=r.onBeforePageLoad)==null?void 0:g.call(r,l))===!1)return;const f=new URL(l,Ls),h=o=f.pathname;try{let w=await e(h);if(!w)throw new Error(`Page not found: ${h}`);if(o===h){o=null;const{default:E,__pageData:S}=w;if(!E)throw new Error(`Invalid route component: ${E}`);n.path=Ee?h:Is(h),n.component=Ft(E),n.data=Ft(S),Ee&&On(()=>{let H=it.value.base+S.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!it.value.cleanUrls&&!H.endsWith("/")&&(H+=".html"),H!==f.pathname&&(f.pathname=H,l=H+f.search+f.hash,history.replaceState(null,"",l)),f.hash&&!c){let m=null;try{m=document.getElementById(decodeURIComponent(f.hash).slice(1))}catch(y){console.warn(y)}if(m){Ns(m,f.hash);return}}window.scrollTo(0,c)})}}catch(w){if(!/fetch|Page not found/.test(w.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(w),!a)try{const E=await fetch(it.value.base+"hashmap.json");window.__VP_HASH_MAP__=await E.json(),await i(l,c,!0);return}catch{}o===h&&(o=null,n.path=Ee?h:Is(h),n.component=t?Ft(t):null,n.data=Go)}}return Ee&&(window.addEventListener("click",l=>{if(l.target.closest("button"))return;const a=l.target.closest("a");if(a&&!a.closest(".vp-raw")&&(a instanceof SVGElement||!a.download)){const{target:f}=a,{href:h,origin:g,pathname:w,hash:E,search:S}=new URL(a.href instanceof SVGAnimatedString?a.href.animVal:a.href,a.baseURI),H=window.location,m=w.match(/\.\w+$/);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&!f&&g===H.origin&&!(m&&m[0]!==".html")&&(l.preventDefault(),w===H.pathname&&S===H.search?(E!==H.hash&&(history.pushState(null,"",E),window.dispatchEvent(new Event("hashchange"))),E?Ns(a,E,a.classList.contains("header-anchor")):($s(h),window.scrollTo(0,0))):s(h))}},{capture:!0}),window.addEventListener("popstate",l=>{i(location.href,l.state&&l.state.scrollPosition||0)}),window.addEventListener("hashchange",l=>{l.preventDefault()})),r}function Aa(){const e=bt(xa);if(!e)throw new Error("useRouter() is called without provider.");return e}function ni(){return Aa().route}function Ns(e,t,n=!1){let r=null;try{r=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(s){console.warn(s)}if(r){let a=function(){!n||Math.abs(c-window.scrollY)>window.innerHeight?window.scrollTo(0,c):window.scrollTo({left:0,top:c,behavior:"smooth"})},s=it.value.scrollOffset,o=0,i=24;if(typeof s=="object"&&"padding"in s&&(i=s.padding,s=s.selector),typeof s=="number")o=s;else if(typeof s=="string")o=Hs(s,i);else if(Array.isArray(s))for(const f of s){const h=Hs(f,i);if(h){o=h;break}}const l=parseInt(window.getComputedStyle(r).paddingTop,10),c=window.scrollY+r.getBoundingClientRect().top-o+l;requestAnimationFrame(a)}}function Hs(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}function $s(e){Ee&&e!==location.href&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",e))}const js=()=>dn.forEach(e=>e()),du=Pr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=ni(),{site:n}=wa();return()=>cr(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?cr(t.component,{onVnodeMounted:js,onVnodeUpdated:js}):"404 Page Not Found"])}}),hu=Pr({setup(e,{slots:t}){const n=ue(!1);return At(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function pu(){Ee&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement;if(!r)return;const s=Array.from(r.querySelectorAll("input")).indexOf(t);if(s<0)return;const o=r.querySelector(".blocks");if(!o)return;const i=Array.from(o.children).find(a=>a.classList.contains("active"));if(!i)return;const l=o.children[s];if(!l||i===l)return;i.classList.remove("active"),l.classList.add("active");const c=r==null?void 0:r.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function gu(){if(Ee){const e=new WeakMap;window.addEventListener("click",t=>{var r;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const s=n.parentElement,o=(r=n.nextElementSibling)==null?void 0:r.nextElementSibling;if(!s||!o)return;const i=/language-(shellscript|shell|bash|sh|zsh)/.test(s.className);let l="";o.querySelectorAll("span.line:not(.diff.remove)").forEach(c=>l+=(c.textContent||"")+` +`),l=l.slice(0,-1),i&&(l=l.replace(/^ *(\$|>) /gm,"").trim()),Sa(l).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const c=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,c)})}})}}async function Sa(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const r=document.getSelection(),s=r?r.rangeCount>0&&r.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),s&&(r.removeAllRanges(),r.addRange(s)),n&&n.focus()}}function mu(e,t){let n=[],r=!0;const s=o=>{if(r){r=!1;return}n.forEach(i=>document.head.removeChild(i)),n=[],o.forEach(i=>{const l=Ds(i);document.head.appendChild(l),n.push(l)})};Or(()=>{const o=e.data,i=t.value,l=o&&o.description,c=o&&o.frontmatter.head||[];document.title=ei(i,o);const a=l||i.description;let f=document.querySelector("meta[name=description]");f?f.setAttribute("content",a):Ds(["meta",{name:"description",content:a}]),s(ti(i.head,Pa(c)))})}function Ds([e,t,n]){const r=document.createElement(e);for(const s in t)r.setAttribute(s,t[s]);return n&&(r.innerHTML=n),r}function Oa(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Pa(e){return e.filter(t=>!Oa(t))}const Yn=new Set,ri=()=>document.createElement("link"),Ra=e=>{const t=ri();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Ma=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let cn;const Fa=Ee&&(cn=ri())&&cn.relList&&cn.relList.supports&&cn.relList.supports("prefetch")?Ra:Ma;function _u(){if(!Ee||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const r=()=>{n&&n.disconnect(),n=new IntersectionObserver(o=>{o.forEach(i=>{if(i.isIntersecting){const l=i.target;n.unobserve(l);const{pathname:c}=l;if(!Yn.has(c)){Yn.add(c);const a=Ea(c);a&&Fa(a)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(o=>{const{hostname:i,pathname:l}=new URL(o.href instanceof SVGAnimatedString?o.href.animVal:o.href,o.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||o.target!=="_blank"&&i===location.hostname&&(l!==location.pathname?n.observe(o):Yn.add(l))})})};At(r);const s=ni();Ye(()=>s.path,r),Ln(()=>{n&&n.disconnect()})}export{Xa as $,Ha as A,Sl as B,Da as C,Ua as D,Ar as E,ge as F,uu as G,se as H,Ba as I,Qo as J,ni as K,rc as L,bt as M,gr as N,On as O,cu as P,za as Q,Sn as R,su as S,Bo as T,ja as U,tu as V,iu as W,Ul as X,Qa as Y,Ka as Z,eu as _,Ho as a,Wa as a0,cr as a1,mu as a2,xa as a3,au as a4,va as a5,du as a6,hu as a7,it as a8,Ga as a9,fu as aa,Ea as ab,_u as ac,gu as ad,pu as ae,Yo as af,Hr as ag,ru as ah,lu as ai,ou as aj,nu as ak,Aa as al,Wt as am,yo as an,$a as ao,Ja as ap,ce as aq,Va as ar,Ft as as,Za as at,Io as b,qa as c,Pr as d,Ya as e,Is as f,ae as g,ue as h,pa as i,At as j,No as k,oo as l,Na as m,mr as n,Mo as o,La as p,ha as q,ka as r,Ee as s,Ia as t,wa as u,na as v,dl as w,Ye as x,Or as y,Ln as z}; diff --git a/assets/chunks/framework.6909765d.js b/assets/chunks/framework.6909765d.js deleted file mode 100644 index 6ca2e01aa..000000000 --- a/assets/chunks/framework.6909765d.js +++ /dev/null @@ -1,2 +0,0 @@ -function es(e,t){const n=Object.create(null),s=e.split(",");for(let r=0;r!!n[r.toLowerCase()]:r=>!!n[r]}const te={},at=[],Pe=()=>{},$i=()=>!1,Bi=/^on[^a-z]/,Ut=e=>Bi.test(e),ts=e=>e.startsWith("onUpdate:"),oe=Object.assign,ns=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ui=Object.prototype.hasOwnProperty,Y=(e,t)=>Ui.call(e,t),N=Array.isArray,ut=e=>gn(e)==="[object Map]",xr=e=>gn(e)==="[object Set]",D=e=>typeof e=="function",se=e=>typeof e=="string",ss=e=>typeof e=="symbol",ee=e=>e!==null&&typeof e=="object",Tr=e=>ee(e)&&D(e.then)&&D(e.catch),Ar=Object.prototype.toString,gn=e=>Ar.call(e),ji=e=>gn(e).slice(8,-1),Rr=e=>gn(e)==="[object Object]",rs=e=>se(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Rt=es(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),mn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Di=/-(\w)/g,Le=mn(e=>e.replace(Di,(t,n)=>n?n.toUpperCase():"")),ki=/\B([A-Z])/g,it=mn(e=>e.replace(ki,"-$1").toLowerCase()),_n=mn(e=>e.charAt(0).toUpperCase()+e.slice(1)),en=mn(e=>e?`on${_n(e)}`:""),St=(e,t)=>!Object.is(e,t),tn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Un=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ki=e=>{const t=se(e)?Number(e):NaN;return isNaN(t)?e:t};let Is;const jn=()=>Is||(Is=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function is(e){if(N(e)){const t={};for(let n=0;n{if(n){const s=n.split(Vi);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function os(e){let t="";if(se(e))t=e;else if(N(e))for(let n=0;nse(e)?e:e==null?"":N(e)||ee(e)&&(e.toString===Ar||!D(e.toString))?JSON.stringify(e,Ir,2):String(e),Ir=(e,t)=>t&&t.__v_isRef?Ir(e,t.value):ut(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r])=>(n[`${s} =>`]=r,n),{})}:xr(t)?{[`Set(${t.size})`]:[...t.values()]}:ee(t)&&!N(t)&&!Rr(t)?String(t):t;let _e;class Xi{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=_e;try{return _e=this,t()}finally{_e=n}}}on(){_e=this}off(){_e=this.parent}stop(t){if(this._active){let n,s;for(n=0,s=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},Fr=e=>(e.w&Ve)>0,Or=e=>(e.n&Ve)>0,Gi=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let s=0;s{(d==="length"||d>=c)&&l.push(a)})}else switch(n!==void 0&&l.push(o.get(n)),t){case"add":N(e)?rs(n)&&l.push(o.get("length")):(l.push(o.get(st)),ut(e)&&l.push(o.get(kn)));break;case"delete":N(e)||(l.push(o.get(st)),ut(e)&&l.push(o.get(kn)));break;case"set":ut(e)&&l.push(o.get(st));break}if(l.length===1)l[0]&&Kn(l[0]);else{const c=[];for(const a of l)a&&c.push(...a);Kn(ls(c))}}function Kn(e,t){const n=N(e)?e:[...e];for(const s of n)s.computed&&Os(s);for(const s of n)s.computed||Os(s)}function Os(e,t){(e!==Ae||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function to(e,t){var n;return(n=ln.get(e))==null?void 0:n.get(t)}const no=es("__proto__,__v_isRef,__isVue"),Sr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ss)),so=fs(),ro=fs(!1,!0),io=fs(!0),Ms=oo();function oo(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=J(this);for(let i=0,o=this.length;i{e[t]=function(...n){wt();const s=J(this)[t].apply(this,n);return Ct(),s}}),e}function lo(e){const t=J(this);return pe(t,"has",e),t.hasOwnProperty(e)}function fs(e=!1,t=!1){return function(s,r,i){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&i===(e?t?xo:Ur:t?Br:$r).get(s))return s;const o=N(s);if(!e){if(o&&Y(Ms,r))return Reflect.get(Ms,r,i);if(r==="hasOwnProperty")return lo}const l=Reflect.get(s,r,i);return(ss(r)?Sr.has(r):no(r))||(e||pe(s,"get",r),t)?l:ce(l)?o&&rs(r)?l:l.value:ee(l)?e?jr(l):yn(l):l}}const co=Nr(),fo=Nr(!0);function Nr(e=!1){return function(n,s,r,i){let o=n[s];if(_t(o)&&ce(o)&&!ce(r))return!1;if(!e&&(!cn(r)&&!_t(r)&&(o=J(o),r=J(r)),!N(n)&&ce(o)&&!ce(r)))return o.value=r,!0;const l=N(n)&&rs(s)?Number(s)e,bn=e=>Reflect.getPrototypeOf(e);function Wt(e,t,n=!1,s=!1){e=e.__v_raw;const r=J(e),i=J(t);n||(t!==i&&pe(r,"get",t),pe(r,"get",i));const{has:o}=bn(r),l=s?as:n?hs:Nt;if(o.call(r,t))return l(e.get(t));if(o.call(r,i))return l(e.get(i));e!==r&&e.get(t)}function Vt(e,t=!1){const n=this.__v_raw,s=J(n),r=J(e);return t||(e!==r&&pe(s,"has",e),pe(s,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function qt(e,t=!1){return e=e.__v_raw,!t&&pe(J(e),"iterate",st),Reflect.get(e,"size",e)}function Ls(e){e=J(e);const t=J(this);return bn(t).has.call(t,e)||(t.add(e),He(t,"add",e,e)),this}function Ss(e,t){t=J(t);const n=J(this),{has:s,get:r}=bn(n);let i=s.call(n,e);i||(e=J(e),i=s.call(n,e));const o=r.call(n,e);return n.set(e,t),i?St(t,o)&&He(n,"set",e,t):He(n,"add",e,t),this}function Ns(e){const t=J(this),{has:n,get:s}=bn(t);let r=n.call(t,e);r||(e=J(e),r=n.call(t,e)),s&&s.call(t,e);const i=t.delete(e);return r&&He(t,"delete",e,void 0),i}function Hs(){const e=J(this),t=e.size!==0,n=e.clear();return t&&He(e,"clear",void 0,void 0),n}function zt(e,t){return function(s,r){const i=this,o=i.__v_raw,l=J(o),c=t?as:e?hs:Nt;return!e&&pe(l,"iterate",st),o.forEach((a,d)=>s.call(r,c(a),c(d),i))}}function Yt(e,t,n){return function(...s){const r=this.__v_raw,i=J(r),o=ut(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,a=r[e](...s),d=n?as:t?hs:Nt;return!t&&pe(i,"iterate",c?kn:st),{next(){const{value:h,done:g}=a.next();return g?{value:h,done:g}:{value:l?[d(h[0]),d(h[1])]:d(h),done:g}},[Symbol.iterator](){return this}}}}function Be(e){return function(...t){return e==="delete"?!1:this}}function mo(){const e={get(i){return Wt(this,i)},get size(){return qt(this)},has:Vt,add:Ls,set:Ss,delete:Ns,clear:Hs,forEach:zt(!1,!1)},t={get(i){return Wt(this,i,!1,!0)},get size(){return qt(this)},has:Vt,add:Ls,set:Ss,delete:Ns,clear:Hs,forEach:zt(!1,!0)},n={get(i){return Wt(this,i,!0)},get size(){return qt(this,!0)},has(i){return Vt.call(this,i,!0)},add:Be("add"),set:Be("set"),delete:Be("delete"),clear:Be("clear"),forEach:zt(!0,!1)},s={get(i){return Wt(this,i,!0,!0)},get size(){return qt(this,!0)},has(i){return Vt.call(this,i,!0)},add:Be("add"),set:Be("set"),delete:Be("delete"),clear:Be("clear"),forEach:zt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=Yt(i,!1,!1),n[i]=Yt(i,!0,!1),t[i]=Yt(i,!1,!0),s[i]=Yt(i,!0,!0)}),[e,n,t,s]}const[_o,bo,yo,vo]=mo();function us(e,t){const n=t?e?vo:yo:e?bo:_o;return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(Y(n,r)&&r in s?n:s,r,i)}const wo={get:us(!1,!1)},Co={get:us(!1,!0)},Eo={get:us(!0,!1)},$r=new WeakMap,Br=new WeakMap,Ur=new WeakMap,xo=new WeakMap;function To(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Ao(e){return e.__v_skip||!Object.isExtensible(e)?0:To(ji(e))}function yn(e){return _t(e)?e:ds(e,!1,Hr,wo,$r)}function Ro(e){return ds(e,!1,go,Co,Br)}function jr(e){return ds(e,!0,po,Eo,Ur)}function ds(e,t,n,s,r){if(!ee(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=r.get(e);if(i)return i;const o=Ao(e);if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function dt(e){return _t(e)?dt(e.__v_raw):!!(e&&e.__v_isReactive)}function _t(e){return!!(e&&e.__v_isReadonly)}function cn(e){return!!(e&&e.__v_isShallow)}function Dr(e){return dt(e)||_t(e)}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function Pt(e){return on(e,"__v_skip",!0),e}const Nt=e=>ee(e)?yn(e):e,hs=e=>ee(e)?jr(e):e;function ps(e){Ke&&Ae&&(e=J(e),Lr(e.dep||(e.dep=ls())))}function gs(e,t){e=J(e);const n=e.dep;n&&Kn(n)}function ce(e){return!!(e&&e.__v_isRef===!0)}function ht(e){return kr(e,!1)}function Po(e){return kr(e,!0)}function kr(e,t){return ce(e)?e:new Io(e,t)}class Io{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:J(t),this._value=n?t:Nt(t)}get value(){return ps(this),this._value}set value(t){const n=this.__v_isShallow||cn(t)||_t(t);t=n?t:J(t),St(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Nt(t),gs(this))}}function Fo(e){return ce(e)?e.value:e}const Oo={get:(e,t,n)=>Fo(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return ce(r)&&!ce(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Kr(e){return dt(e)?e:new Proxy(e,Oo)}class Mo{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:s}=t(()=>ps(this),()=>gs(this));this._get=n,this._set=s}get value(){return this._get()}set value(t){this._set(t)}}function zc(e){return new Mo(e)}class Lo{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,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 to(J(this._object),this._key)}}class So{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function Yc(e,t,n){return ce(e)?e:D(e)?new So(e):ee(e)&&arguments.length>1?No(e,t,n):ht(e)}function No(e,t,n){const s=e[t];return ce(s)?s:new Lo(e,t,n)}class Ho{constructor(t,n,s,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new cs(t,()=>{this._dirty||(this._dirty=!0,gs(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=J(this);return ps(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function $o(e,t,n=!1){let s,r;const i=D(e);return i?(s=e,r=Pe):(s=e.get,r=e.set),new Ho(s,r,i||!r,n)}function We(e,t,n,s){let r;try{r=s?e(...s):e()}catch(i){jt(i,t,n)}return r}function Ce(e,t,n,s){if(D(e)){const i=We(e,t,n,s);return i&&Tr(i)&&i.catch(o=>{jt(o,t,n)}),i}const r=[];for(let i=0;i>>1;$t(ae[s])Me&&ae.splice(t,1)}function Do(e){N(e)?pt.push(...e):(!Ne||!Ne.includes(e,e.allowRecurse?Qe+1:Qe))&&pt.push(e),qr()}function $s(e,t=Ht?Me+1:0){for(;t$t(n)-$t(s)),Qe=0;Qee.id==null?1/0:e.id,ko=(e,t)=>{const n=$t(e)-$t(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function zr(e){Wn=!1,Ht=!0,ae.sort(ko);const t=Pe;try{for(Me=0;Mese(w)?w.trim():w)),h&&(r=n.map(Un))}let l,c=s[l=en(t)]||s[l=en(Le(t))];!c&&i&&(c=s[l=en(it(t))]),c&&Ce(c,e,6,r);const a=s[l+"Once"];if(a){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Ce(a,e,6,r)}}function Yr(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!D(e)){const c=a=>{const d=Yr(a,t,!0);d&&(l=!0,oe(o,d))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(ee(e)&&s.set(e,null),null):(N(i)?i.forEach(c=>o[c]=null):oe(o,i),ee(e)&&s.set(e,o),o)}function wn(e,t){return!e||!Ut(t)?!1:(t=t.slice(2).replace(/Once$/,""),Y(e,t[0].toLowerCase()+t.slice(1))||Y(e,it(t))||Y(e,t))}let fe=null,Cn=null;function an(e){const t=fe;return fe=e,Cn=e&&e.type.__scopeId||null,t}function Jc(e){Cn=e}function Xc(){Cn=null}function Wo(e,t=fe,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&Xs(-1);const i=an(t);let o;try{o=e(...r)}finally{an(i),s._d&&Xs(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function On(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:i,propsOptions:[o],slots:l,attrs:c,emit:a,render:d,renderCache:h,data:g,setupState:w,ctx:A,inheritAttrs:I}=e;let H,m;const y=an(e);try{if(n.shapeFlag&4){const P=r||s;H=Te(d.call(P,P,h,i,w,g,A)),m=c}else{const P=t;H=Te(P.length>1?P(i,{attrs:c,slots:l,emit:a}):P(i,null)),m=t.props?c:Vo(c)}}catch(P){Mt.length=0,jt(P,e,1),H=re(be)}let $=H;if(m&&I!==!1){const P=Object.keys(m),{shapeFlag:k}=$;P.length&&k&7&&(o&&P.some(ts)&&(m=qo(m,o)),$=qe($,m))}return n.dirs&&($=qe($),$.dirs=$.dirs?$.dirs.concat(n.dirs):n.dirs),n.transition&&($.transition=n.transition),H=$,an(y),H}const Vo=e=>{let t;for(const n in e)(n==="class"||n==="style"||Ut(n))&&((t||(t={}))[n]=e[n]);return t},qo=(e,t)=>{const n={};for(const s in e)(!ts(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function zo(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,a=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?Bs(s,o,a):!!o;if(c&8){const d=t.dynamicProps;for(let h=0;he.__isSuspense;function Jr(e,t){t&&t.pendingBranch?N(e)?t.effects.push(...e):t.effects.push(e):Do(e)}function Xo(e,t){return En(e,null,t)}function Zc(e,t){return En(e,null,{flush:"post"})}const Jt={};function nn(e,t,n){return En(e,t,n)}function En(e,t,{immediate:n,deep:s,flush:r,onTrack:i,onTrigger:o}=te){var l;const c=Qi()===((l=le)==null?void 0:l.scope)?le:null;let a,d=!1,h=!1;if(ce(e)?(a=()=>e.value,d=cn(e)):dt(e)?(a=()=>e,s=!0):N(e)?(h=!0,d=e.some(P=>dt(P)||cn(P)),a=()=>e.map(P=>{if(ce(P))return P.value;if(dt(P))return tt(P);if(D(P))return We(P,c,2)})):D(e)?t?a=()=>We(e,c,2):a=()=>{if(!(c&&c.isUnmounted))return g&&g(),Ce(e,c,3,[w])}:a=Pe,t&&s){const P=a;a=()=>tt(P())}let g,w=P=>{g=y.onStop=()=>{We(P,c,4)}},A;if(vt)if(w=Pe,t?n&&Ce(t,c,3,[a(),h?[]:void 0,w]):a(),r==="sync"){const P=ql();A=P.__watcherHandles||(P.__watcherHandles=[])}else return Pe;let I=h?new Array(e.length).fill(Jt):Jt;const H=()=>{if(y.active)if(t){const P=y.run();(s||d||(h?P.some((k,q)=>St(k,I[q])):St(P,I)))&&(g&&g(),Ce(t,c,3,[P,I===Jt?void 0:h&&I[0]===Jt?[]:I,w]),I=P)}else y.run()};H.allowRecurse=!!t;let m;r==="sync"?m=H:r==="post"?m=()=>de(H,c&&c.suspense):(H.pre=!0,c&&(H.id=c.uid),m=()=>vn(H));const y=new cs(a,m);t?n?H():I=y.run():r==="post"?de(y.run.bind(y),c&&c.suspense):y.run();const $=()=>{y.stop(),c&&c.scope&&ns(c.scope.effects,y)};return A&&A.push($),$}function Zo(e,t,n){const s=this.proxy,r=se(e)?e.includes(".")?Xr(s,e):()=>s[e]:e.bind(s,s);let i;D(t)?i=t:(i=t.handler,n=t);const o=le;yt(this);const l=En(r,i.bind(s),n);return o?yt(o):rt(),l}function Xr(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r{tt(n,t)});else if(Rr(e))for(const n in e)tt(e[n],t);return e}function Qc(e,t){const n=fe;if(n===null)return e;const s=Pn(n)||n.proxy,r=e.dirs||(e.dirs=[]);for(let i=0;i{e.isMounted=!0}),ti(()=>{e.isUnmounting=!0}),e}const ye=[Function,Array],Zr={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ye,onEnter:ye,onAfterEnter:ye,onEnterCancelled:ye,onBeforeLeave:ye,onLeave:ye,onAfterLeave:ye,onLeaveCancelled:ye,onBeforeAppear:ye,onAppear:ye,onAfterAppear:ye,onAppearCancelled:ye},Go={name:"BaseTransition",props:Zr,setup(e,{slots:t}){const n=vi(),s=Qo();let r;return()=>{const i=t.default&&Gr(t.default(),!0);if(!i||!i.length)return;let o=i[0];if(i.length>1){for(const I of i)if(I.type!==be){o=I;break}}const l=J(e),{mode:c}=l;if(s.isLeaving)return Mn(o);const a=Us(o);if(!a)return Mn(o);const d=Vn(a,l,s,n);qn(a,d);const h=n.subTree,g=h&&Us(h);let w=!1;const{getTransitionKey:A}=a.type;if(A){const I=A();r===void 0?r=I:I!==r&&(r=I,w=!0)}if(g&&g.type!==be&&(!Ge(a,g)||w)){const I=Vn(g,l,s,n);if(qn(g,I),c==="out-in")return s.isLeaving=!0,I.afterLeave=()=>{s.isLeaving=!1,n.update.active!==!1&&n.update()},Mn(o);c==="in-out"&&a.type!==be&&(I.delayLeave=(H,m,y)=>{const $=Qr(s,g);$[String(g.key)]=g,H._leaveCb=()=>{m(),H._leaveCb=void 0,delete d.delayedLeave},d.delayedLeave=y})}return o}}},el=Go;function Qr(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function Vn(e,t,n,s){const{appear:r,mode:i,persisted:o=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:a,onEnterCancelled:d,onBeforeLeave:h,onLeave:g,onAfterLeave:w,onLeaveCancelled:A,onBeforeAppear:I,onAppear:H,onAfterAppear:m,onAppearCancelled:y}=t,$=String(e.key),P=Qr(n,e),k=(x,U)=>{x&&Ce(x,s,9,U)},q=(x,U)=>{const B=U[1];k(x,U),N(x)?x.every(W=>W.length<=1)&&B():x.length<=1&&B()},K={mode:i,persisted:o,beforeEnter(x){let U=l;if(!n.isMounted)if(r)U=I||l;else return;x._leaveCb&&x._leaveCb(!0);const B=P[$];B&&Ge(e,B)&&B.el._leaveCb&&B.el._leaveCb(),k(U,[x])},enter(x){let U=c,B=a,W=d;if(!n.isMounted)if(r)U=H||c,B=m||a,W=y||d;else return;let F=!1;const V=x._enterCb=M=>{F||(F=!0,M?k(W,[x]):k(B,[x]),K.delayedLeave&&K.delayedLeave(),x._enterCb=void 0)};U?q(U,[x,V]):V()},leave(x,U){const B=String(e.key);if(x._enterCb&&x._enterCb(!0),n.isUnmounting)return U();k(h,[x]);let W=!1;const F=x._leaveCb=V=>{W||(W=!0,U(),V?k(A,[x]):k(w,[x]),x._leaveCb=void 0,P[B]===e&&delete P[B])};P[B]=e,g?q(g,[x,F]):F()},clone(x){return Vn(x,t,n,s)}};return K}function Mn(e){if(Dt(e))return e=qe(e),e.children=null,e}function Us(e){return Dt(e)?e.children?e.children[0]:void 0:e}function qn(e,t){e.shapeFlag&6&&e.component?qn(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 Gr(e,t=!1,n){let s=[],r=0;for(let i=0;i1)for(let i=0;ioe({name:e.name},t,{setup:e}))():e}const gt=e=>!!e.type.__asyncLoader;function Gc(e){D(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:s,delay:r=200,timeout:i,suspensible:o=!0,onError:l}=e;let c=null,a,d=0;const h=()=>(d++,c=null,g()),g=()=>{let w;return c||(w=c=t().catch(A=>{if(A=A instanceof Error?A:new Error(String(A)),l)return new Promise((I,H)=>{l(A,()=>I(h()),()=>H(A),d+1)});throw A}).then(A=>w!==c&&c?c:(A&&(A.__esModule||A[Symbol.toStringTag]==="Module")&&(A=A.default),a=A,A)))};return _s({name:"AsyncComponentWrapper",__asyncLoader:g,get __asyncResolved(){return a},setup(){const w=le;if(a)return()=>Ln(a,w);const A=y=>{c=null,jt(y,w,13,!s)};if(o&&w.suspense||vt)return g().then(y=>()=>Ln(y,w)).catch(y=>(A(y),()=>s?re(s,{error:y}):null));const I=ht(!1),H=ht(),m=ht(!!r);return r&&setTimeout(()=>{m.value=!1},r),i!=null&&setTimeout(()=>{if(!I.value&&!H.value){const y=new Error(`Async component timed out after ${i}ms.`);A(y),H.value=y}},i),g().then(()=>{I.value=!0,w.parent&&Dt(w.parent.vnode)&&vn(w.parent.update)}).catch(y=>{A(y),H.value=y}),()=>{if(I.value&&a)return Ln(a,w);if(H.value&&s)return re(s,{error:H.value});if(n&&!m.value)return re(n)}}})}function Ln(e,t){const{ref:n,props:s,children:r,ce:i}=t.vnode,o=re(e,s,r);return o.ref=n,o.ce=i,delete t.vnode.ce,o}const Dt=e=>e.type.__isKeepAlive;function tl(e,t){ei(e,"a",t)}function nl(e,t){ei(e,"da",t)}function ei(e,t,n=le){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(xn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)Dt(r.parent.vnode)&&sl(s,t,n,r),r=r.parent}}function sl(e,t,n,s){const r=xn(t,e,s,!0);An(()=>{ns(s[t],r)},n)}function xn(e,t,n=le,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;wt(),yt(n);const l=Ce(t,n,e,o);return rt(),Ct(),l});return s?r.unshift(i):r.push(i),i}}const $e=e=>(t,n=le)=>(!vt||e==="sp")&&xn(e,(...s)=>t(...s),n),rl=$e("bm"),Tn=$e("m"),il=$e("bu"),ol=$e("u"),ti=$e("bum"),An=$e("um"),ll=$e("sp"),cl=$e("rtg"),fl=$e("rtc");function al(e,t=le){xn("ec",e,t)}const bs="components";function ef(e,t){return si(bs,e,!0,t)||e}const ni=Symbol.for("v-ndc");function tf(e){return se(e)?si(bs,e,!1)||e:e||ni}function si(e,t,n=!0,s=!1){const r=fe||le;if(r){const i=r.type;if(e===bs){const l=Kl(i,!1);if(l&&(l===t||l===Le(t)||l===_n(Le(t))))return i}const o=js(r[e]||i[e],t)||js(r.appContext[e],t);return!o&&s?i:o}}function js(e,t){return e&&(e[t]||e[Le(t)]||e[_n(Le(t))])}function nf(e,t,n,s){let r;const i=n&&n[s];if(N(e)||se(e)){r=new Array(e.length);for(let o=0,l=e.length;ot(o,l,void 0,i&&i[l]));else{const o=Object.keys(e);r=new Array(o.length);for(let l=0,c=o.length;lpn(t)?!(t.type===be||t.type===he&&!ri(t.children)):!0)?e:null}function rf(e,t){const n={};for(const s in e)n[t&&/[A-Z]/.test(s)?`on:${s}`:en(s)]=e[s];return n}const zn=e=>e?wi(e)?Pn(e)||e.proxy:zn(e.parent):null,It=oe(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=>zn(e.parent),$root:e=>zn(e.root),$emit:e=>e.emit,$options:e=>ys(e),$forceUpdate:e=>e.f||(e.f=()=>vn(e.update)),$nextTick:e=>e.n||(e.n=Vr.bind(e.proxy)),$watch:e=>Zo.bind(e)}),Sn=(e,t)=>e!==te&&!e.__isScriptSetup&&Y(e,t),ul={get({_:e},t){const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;let a;if(t[0]!=="$"){const w=o[t];if(w!==void 0)switch(w){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(Sn(s,t))return o[t]=1,s[t];if(r!==te&&Y(r,t))return o[t]=2,r[t];if((a=e.propsOptions[0])&&Y(a,t))return o[t]=3,i[t];if(n!==te&&Y(n,t))return o[t]=4,n[t];Yn&&(o[t]=0)}}const d=It[t];let h,g;if(d)return t==="$attrs"&&pe(e,"get",t),d(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==te&&Y(n,t))return o[t]=4,n[t];if(g=c.config.globalProperties,Y(g,t))return g[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return Sn(r,t)?(r[t]=n,!0):s!==te&&Y(s,t)?(s[t]=n,!0):Y(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:i}},o){let l;return!!n[o]||e!==te&&Y(e,o)||Sn(t,o)||(l=i[0])&&Y(l,o)||Y(s,o)||Y(It,o)||Y(r.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Y(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function of(){return dl().slots}function dl(){const e=vi();return e.setupContext||(e.setupContext=Ei(e))}function Ds(e){return N(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Yn=!0;function hl(e){const t=ys(e),n=e.proxy,s=e.ctx;Yn=!1,t.beforeCreate&&ks(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:a,created:d,beforeMount:h,mounted:g,beforeUpdate:w,updated:A,activated:I,deactivated:H,beforeDestroy:m,beforeUnmount:y,destroyed:$,unmounted:P,render:k,renderTracked:q,renderTriggered:K,errorCaptured:x,serverPrefetch:U,expose:B,inheritAttrs:W,components:F,directives:V,filters:M}=t;if(a&&pl(a,s,null),o)for(const ne in o){const Q=o[ne];D(Q)&&(s[ne]=Q.bind(n))}if(r){const ne=r.call(n,n);ee(ne)&&(e.data=yn(ne))}if(Yn=!0,i)for(const ne in i){const Q=i[ne],ze=D(Q)?Q.bind(n,n):D(Q.get)?Q.get.bind(n,n):Pe,kt=!D(Q)&&D(Q.set)?Q.set.bind(n):Pe,Ye=xe({get:ze,set:kt});Object.defineProperty(s,ne,{enumerable:!0,configurable:!0,get:()=>Ye.value,set:Ie=>Ye.value=Ie})}if(l)for(const ne in l)ii(l[ne],s,n,ne);if(c){const ne=D(c)?c.call(n):c;Reflect.ownKeys(ne).forEach(Q=>{vl(Q,ne[Q])})}d&&ks(d,e,"c");function X(ne,Q){N(Q)?Q.forEach(ze=>ne(ze.bind(n))):Q&&ne(Q.bind(n))}if(X(rl,h),X(Tn,g),X(il,w),X(ol,A),X(tl,I),X(nl,H),X(al,x),X(fl,q),X(cl,K),X(ti,y),X(An,P),X(ll,U),N(B))if(B.length){const ne=e.exposed||(e.exposed={});B.forEach(Q=>{Object.defineProperty(ne,Q,{get:()=>n[Q],set:ze=>n[Q]=ze})})}else e.exposed||(e.exposed={});k&&e.render===Pe&&(e.render=k),W!=null&&(e.inheritAttrs=W),F&&(e.components=F),V&&(e.directives=V)}function pl(e,t,n=Pe){N(e)&&(e=Jn(e));for(const s in e){const r=e[s];let i;ee(r)?"default"in r?i=mt(r.from||s,r.default,!0):i=mt(r.from||s):i=mt(r),ce(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function ks(e,t,n){Ce(N(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function ii(e,t,n,s){const r=s.includes(".")?Xr(n,s):()=>n[s];if(se(e)){const i=t[e];D(i)&&nn(r,i)}else if(D(e))nn(r,e.bind(n));else if(ee(e))if(N(e))e.forEach(i=>ii(i,t,n,s));else{const i=D(e.handler)?e.handler.bind(n):t[e.handler];D(i)&&nn(r,i,e)}}function ys(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(a=>un(c,a,o,!0)),un(c,t,o)),ee(t)&&i.set(t,c),c}function un(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&un(e,i,n,!0),r&&r.forEach(o=>un(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=gl[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const gl={data:Ks,props:Ws,emits:Ws,methods:At,computed:At,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:At,directives:At,watch:_l,provide:Ks,inject:ml};function Ks(e,t){return t?e?function(){return oe(D(e)?e.call(this,this):e,D(t)?t.call(this,this):t)}:t:e}function ml(e,t){return At(Jn(e),Jn(t))}function Jn(e){if(N(e)){const t={};for(let n=0;n1)return n&&D(t)?t.call(s&&s.proxy):t}}function wl(e,t,n,s=!1){const r={},i={};on(i,Rn,1),e.propsDefaults=Object.create(null),li(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:Ro(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function Cl(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=J(r),[c]=e.propsOptions;let a=!1;if((s||o>0)&&!(o&16)){if(o&8){const d=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[g,w]=ci(h,t,!0);oe(o,g),w&&l.push(...w)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!i&&!c)return ee(e)&&s.set(e,at),at;if(N(i))for(let d=0;d-1,w[1]=I<0||A-1||Y(w,"default"))&&l.push(h)}}}const a=[o,l];return ee(e)&&s.set(e,a),a}function Vs(e){return e[0]!=="$"}function qs(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function zs(e,t){return qs(e)===qs(t)}function Ys(e,t){return N(t)?t.findIndex(n=>zs(n,e)):D(t)&&zs(t,e)?0:-1}const fi=e=>e[0]==="_"||e==="$stable",vs=e=>N(e)?e.map(Te):[Te(e)],El=(e,t,n)=>{if(t._n)return t;const s=Wo((...r)=>vs(t(...r)),n);return s._c=!1,s},ai=(e,t,n)=>{const s=e._ctx;for(const r in e){if(fi(r))continue;const i=e[r];if(D(i))t[r]=El(r,i,s);else if(i!=null){const o=vs(i);t[r]=()=>o}}},ui=(e,t)=>{const n=vs(t);e.slots.default=()=>n},xl=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=J(t),on(t,"_",n)):ai(t,e.slots={})}else e.slots={},t&&ui(e,t);on(e.slots,Rn,1)},Tl=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=te;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:(oe(r,t),!n&&l===1&&delete r._):(i=!t.$stable,ai(t,r)),o=t}else t&&(ui(e,t),o={default:1});if(i)for(const l in r)!fi(l)&&!(l in o)&&delete r[l]};function hn(e,t,n,s,r=!1){if(N(e)){e.forEach((g,w)=>hn(g,t&&(N(t)?t[w]:t),n,s,r));return}if(gt(s)&&!r)return;const i=s.shapeFlag&4?Pn(s.component)||s.component.proxy:s.el,o=r?null:i,{i:l,r:c}=e,a=t&&t.r,d=l.refs===te?l.refs={}:l.refs,h=l.setupState;if(a!=null&&a!==c&&(se(a)?(d[a]=null,Y(h,a)&&(h[a]=null)):ce(a)&&(a.value=null)),D(c))We(c,l,12,[o,d]);else{const g=se(c),w=ce(c);if(g||w){const A=()=>{if(e.f){const I=g?Y(h,c)?h[c]:d[c]:c.value;r?N(I)&&ns(I,i):N(I)?I.includes(i)||I.push(i):g?(d[c]=[i],Y(h,c)&&(h[c]=d[c])):(c.value=[i],e.k&&(d[e.k]=c.value))}else g?(d[c]=o,Y(h,c)&&(h[c]=o)):w&&(c.value=o,e.k&&(d[e.k]=o))};o?(A.id=-1,de(A,n)):A()}}}let Ue=!1;const Xt=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",Zt=e=>e.nodeType===8;function Al(e){const{mt:t,p:n,o:{patchProp:s,createText:r,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:a}}=e,d=(m,y)=>{if(!y.hasChildNodes()){n(null,m,y),fn(),y._vnode=m;return}Ue=!1,h(y.firstChild,m,null,null,null),fn(),y._vnode=m,Ue&&console.error("Hydration completed but contains mismatches.")},h=(m,y,$,P,k,q=!1)=>{const K=Zt(m)&&m.data==="[",x=()=>I(m,y,$,P,k,K),{type:U,ref:B,shapeFlag:W,patchFlag:F}=y;let V=m.nodeType;y.el=m,F===-2&&(q=!1,y.dynamicChildren=null);let M=null;switch(U){case bt:V!==3?y.children===""?(c(y.el=r(""),o(m),m),M=m):M=x():(m.data!==y.children&&(Ue=!0,m.data=y.children),M=i(m));break;case be:V!==8||K?M=x():M=i(m);break;case Ot:if(K&&(m=i(m),V=m.nodeType),V===1||V===3){M=m;const ge=!y.children.length;for(let X=0;X{q=q||!!y.dynamicChildren;const{type:K,props:x,patchFlag:U,shapeFlag:B,dirs:W}=y,F=K==="input"&&W||K==="option";if(F||U!==-1){if(W&&Oe(y,null,$,"created"),x)if(F||!q||U&48)for(const M in x)(F&&M.endsWith("value")||Ut(M)&&!Rt(M))&&s(m,M,null,x[M],!1,void 0,$);else x.onClick&&s(m,"onClick",null,x.onClick,!1,void 0,$);let V;if((V=x&&x.onVnodeBeforeMount)&&ve(V,$,y),W&&Oe(y,null,$,"beforeMount"),((V=x&&x.onVnodeMounted)||W)&&Jr(()=>{V&&ve(V,$,y),W&&Oe(y,null,$,"mounted")},P),B&16&&!(x&&(x.innerHTML||x.textContent))){let M=w(m.firstChild,y,m,$,P,k,q);for(;M;){Ue=!0;const ge=M;M=M.nextSibling,l(ge)}}else B&8&&m.textContent!==y.children&&(Ue=!0,m.textContent=y.children)}return m.nextSibling},w=(m,y,$,P,k,q,K)=>{K=K||!!y.dynamicChildren;const x=y.children,U=x.length;for(let B=0;B{const{slotScopeIds:K}=y;K&&(k=k?k.concat(K):K);const x=o(m),U=w(i(m),y,x,$,P,k,q);return U&&Zt(U)&&U.data==="]"?i(y.anchor=U):(Ue=!0,c(y.anchor=a("]"),x,U),U)},I=(m,y,$,P,k,q)=>{if(Ue=!0,y.el=null,q){const U=H(m);for(;;){const B=i(m);if(B&&B!==U)l(B);else break}}const K=i(m),x=o(m);return l(m),n(null,y,x,K,$,P,Xt(x),k),K},H=m=>{let y=0;for(;m;)if(m=i(m),m&&Zt(m)&&(m.data==="["&&y++,m.data==="]")){if(y===0)return i(m);y--}return m};return[d,h]}const de=Jr;function Rl(e){return di(e)}function Pl(e){return di(e,Al)}function di(e,t){const n=jn();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:a,setElementText:d,parentNode:h,nextSibling:g,setScopeId:w=Pe,insertStaticContent:A}=e,I=(f,u,p,b=null,_=null,E=null,R=!1,C=null,T=!!u.dynamicChildren)=>{if(f===u)return;f&&!Ge(f,u)&&(b=Kt(f),Ie(f,_,E,!0),f=null),u.patchFlag===-2&&(T=!1,u.dynamicChildren=null);const{type:v,ref:L,shapeFlag:O}=u;switch(v){case bt:H(f,u,p,b);break;case be:m(f,u,p,b);break;case Ot:f==null&&y(u,p,b,R);break;case he:F(f,u,p,b,_,E,R,C,T);break;default:O&1?k(f,u,p,b,_,E,R,C,T):O&6?V(f,u,p,b,_,E,R,C,T):(O&64||O&128)&&v.process(f,u,p,b,_,E,R,C,T,ot)}L!=null&&_&&hn(L,f&&f.ref,E,u||f,!u)},H=(f,u,p,b)=>{if(f==null)s(u.el=l(u.children),p,b);else{const _=u.el=f.el;u.children!==f.children&&a(_,u.children)}},m=(f,u,p,b)=>{f==null?s(u.el=c(u.children||""),p,b):u.el=f.el},y=(f,u,p,b)=>{[f.el,f.anchor]=A(f.children,u,p,b,f.el,f.anchor)},$=({el:f,anchor:u},p,b)=>{let _;for(;f&&f!==u;)_=g(f),s(f,p,b),f=_;s(u,p,b)},P=({el:f,anchor:u})=>{let p;for(;f&&f!==u;)p=g(f),r(f),f=p;r(u)},k=(f,u,p,b,_,E,R,C,T)=>{R=R||u.type==="svg",f==null?q(u,p,b,_,E,R,C,T):U(f,u,_,E,R,C,T)},q=(f,u,p,b,_,E,R,C)=>{let T,v;const{type:L,props:O,shapeFlag:S,transition:j,dirs:z}=f;if(T=f.el=o(f.type,E,O&&O.is,O),S&8?d(T,f.children):S&16&&x(f.children,T,null,b,_,E&&L!=="foreignObject",R,C),z&&Oe(f,null,b,"created"),K(T,f,f.scopeId,R,b),O){for(const Z in O)Z!=="value"&&!Rt(Z)&&i(T,Z,null,O[Z],E,f.children,b,_,Se);"value"in O&&i(T,"value",null,O.value),(v=O.onVnodeBeforeMount)&&ve(v,b,f)}z&&Oe(f,null,b,"beforeMount");const G=(!_||_&&!_.pendingBranch)&&j&&!j.persisted;G&&j.beforeEnter(T),s(T,u,p),((v=O&&O.onVnodeMounted)||G||z)&&de(()=>{v&&ve(v,b,f),G&&j.enter(T),z&&Oe(f,null,b,"mounted")},_)},K=(f,u,p,b,_)=>{if(p&&w(f,p),b)for(let E=0;E{for(let v=T;v{const C=u.el=f.el;let{patchFlag:T,dynamicChildren:v,dirs:L}=u;T|=f.patchFlag&16;const O=f.props||te,S=u.props||te;let j;p&&Je(p,!1),(j=S.onVnodeBeforeUpdate)&&ve(j,p,u,f),L&&Oe(u,f,p,"beforeUpdate"),p&&Je(p,!0);const z=_&&u.type!=="foreignObject";if(v?B(f.dynamicChildren,v,C,p,b,z,E):R||Q(f,u,C,null,p,b,z,E,!1),T>0){if(T&16)W(C,u,O,S,p,b,_);else if(T&2&&O.class!==S.class&&i(C,"class",null,S.class,_),T&4&&i(C,"style",O.style,S.style,_),T&8){const G=u.dynamicProps;for(let Z=0;Z{j&&ve(j,p,u,f),L&&Oe(u,f,p,"updated")},b)},B=(f,u,p,b,_,E,R)=>{for(let C=0;C{if(p!==b){if(p!==te)for(const C in p)!Rt(C)&&!(C in b)&&i(f,C,p[C],null,R,u.children,_,E,Se);for(const C in b){if(Rt(C))continue;const T=b[C],v=p[C];T!==v&&C!=="value"&&i(f,C,v,T,R,u.children,_,E,Se)}"value"in b&&i(f,"value",p.value,b.value)}},F=(f,u,p,b,_,E,R,C,T)=>{const v=u.el=f?f.el:l(""),L=u.anchor=f?f.anchor:l("");let{patchFlag:O,dynamicChildren:S,slotScopeIds:j}=u;j&&(C=C?C.concat(j):j),f==null?(s(v,p,b),s(L,p,b),x(u.children,p,L,_,E,R,C,T)):O>0&&O&64&&S&&f.dynamicChildren?(B(f.dynamicChildren,S,p,_,E,R,C),(u.key!=null||_&&u===_.subTree)&&ws(f,u,!0)):Q(f,u,p,L,_,E,R,C,T)},V=(f,u,p,b,_,E,R,C,T)=>{u.slotScopeIds=C,f==null?u.shapeFlag&512?_.ctx.activate(u,p,b,R,T):M(u,p,b,_,E,R,T):ge(f,u,T)},M=(f,u,p,b,_,E,R)=>{const C=f.component=Ul(f,b,_);if(Dt(f)&&(C.ctx.renderer=ot),jl(C),C.asyncDep){if(_&&_.registerDep(C,X),!f.el){const T=C.subTree=re(be);m(null,T,u,p)}return}X(C,f,u,p,_,E,R)},ge=(f,u,p)=>{const b=u.component=f.component;if(zo(f,u,p))if(b.asyncDep&&!b.asyncResolved){ne(b,u,p);return}else b.next=u,jo(b.update),b.update();else u.el=f.el,b.vnode=u},X=(f,u,p,b,_,E,R)=>{const C=()=>{if(f.isMounted){let{next:L,bu:O,u:S,parent:j,vnode:z}=f,G=L,Z;Je(f,!1),L?(L.el=z.el,ne(f,L,R)):L=z,O&&tn(O),(Z=L.props&&L.props.onVnodeBeforeUpdate)&&ve(Z,j,L,z),Je(f,!0);const ie=On(f),Ee=f.subTree;f.subTree=ie,I(Ee,ie,h(Ee.el),Kt(Ee),f,_,E),L.el=ie.el,G===null&&Yo(f,ie.el),S&&de(S,_),(Z=L.props&&L.props.onVnodeUpdated)&&de(()=>ve(Z,j,L,z),_)}else{let L;const{el:O,props:S}=u,{bm:j,m:z,parent:G}=f,Z=gt(u);if(Je(f,!1),j&&tn(j),!Z&&(L=S&&S.onVnodeBeforeMount)&&ve(L,G,u),Je(f,!0),O&&Fn){const ie=()=>{f.subTree=On(f),Fn(O,f.subTree,f,_,null)};Z?u.type.__asyncLoader().then(()=>!f.isUnmounted&&ie()):ie()}else{const ie=f.subTree=On(f);I(null,ie,p,b,f,_,E),u.el=ie.el}if(z&&de(z,_),!Z&&(L=S&&S.onVnodeMounted)){const ie=u;de(()=>ve(L,G,ie),_)}(u.shapeFlag&256||G&>(G.vnode)&&G.vnode.shapeFlag&256)&&f.a&&de(f.a,_),f.isMounted=!0,u=p=b=null}},T=f.effect=new cs(C,()=>vn(v),f.scope),v=f.update=()=>T.run();v.id=f.uid,Je(f,!0),v()},ne=(f,u,p)=>{u.component=f;const b=f.vnode.props;f.vnode=u,f.next=null,Cl(f,u.props,b,p),Tl(f,u.children,p),wt(),$s(),Ct()},Q=(f,u,p,b,_,E,R,C,T=!1)=>{const v=f&&f.children,L=f?f.shapeFlag:0,O=u.children,{patchFlag:S,shapeFlag:j}=u;if(S>0){if(S&128){kt(v,O,p,b,_,E,R,C,T);return}else if(S&256){ze(v,O,p,b,_,E,R,C,T);return}}j&8?(L&16&&Se(v,_,E),O!==v&&d(p,O)):L&16?j&16?kt(v,O,p,b,_,E,R,C,T):Se(v,_,E,!0):(L&8&&d(p,""),j&16&&x(O,p,b,_,E,R,C,T))},ze=(f,u,p,b,_,E,R,C,T)=>{f=f||at,u=u||at;const v=f.length,L=u.length,O=Math.min(v,L);let S;for(S=0;SL?Se(f,_,E,!0,!1,O):x(u,p,b,_,E,R,C,T,O)},kt=(f,u,p,b,_,E,R,C,T)=>{let v=0;const L=u.length;let O=f.length-1,S=L-1;for(;v<=O&&v<=S;){const j=f[v],z=u[v]=T?ke(u[v]):Te(u[v]);if(Ge(j,z))I(j,z,p,null,_,E,R,C,T);else break;v++}for(;v<=O&&v<=S;){const j=f[O],z=u[S]=T?ke(u[S]):Te(u[S]);if(Ge(j,z))I(j,z,p,null,_,E,R,C,T);else break;O--,S--}if(v>O){if(v<=S){const j=S+1,z=jS)for(;v<=O;)Ie(f[v],_,E,!0),v++;else{const j=v,z=v,G=new Map;for(v=z;v<=S;v++){const me=u[v]=T?ke(u[v]):Te(u[v]);me.key!=null&&G.set(me.key,v)}let Z,ie=0;const Ee=S-z+1;let lt=!1,As=0;const Et=new Array(Ee);for(v=0;v=Ee){Ie(me,_,E,!0);continue}let Fe;if(me.key!=null)Fe=G.get(me.key);else for(Z=z;Z<=S;Z++)if(Et[Z-z]===0&&Ge(me,u[Z])){Fe=Z;break}Fe===void 0?Ie(me,_,E,!0):(Et[Fe-z]=v+1,Fe>=As?As=Fe:lt=!0,I(me,u[Fe],p,null,_,E,R,C,T),ie++)}const Rs=lt?Il(Et):at;for(Z=Rs.length-1,v=Ee-1;v>=0;v--){const me=z+v,Fe=u[me],Ps=me+1{const{el:E,type:R,transition:C,children:T,shapeFlag:v}=f;if(v&6){Ye(f.component.subTree,u,p,b);return}if(v&128){f.suspense.move(u,p,b);return}if(v&64){R.move(f,u,p,ot);return}if(R===he){s(E,u,p);for(let O=0;OC.enter(E),_);else{const{leave:O,delayLeave:S,afterLeave:j}=C,z=()=>s(E,u,p),G=()=>{O(E,()=>{z(),j&&j()})};S?S(E,z,G):G()}else s(E,u,p)},Ie=(f,u,p,b=!1,_=!1)=>{const{type:E,props:R,ref:C,children:T,dynamicChildren:v,shapeFlag:L,patchFlag:O,dirs:S}=f;if(C!=null&&hn(C,null,p,f,!0),L&256){u.ctx.deactivate(f);return}const j=L&1&&S,z=!gt(f);let G;if(z&&(G=R&&R.onVnodeBeforeUnmount)&&ve(G,u,f),L&6)Hi(f.component,p,b);else{if(L&128){f.suspense.unmount(p,b);return}j&&Oe(f,null,u,"beforeUnmount"),L&64?f.type.remove(f,u,p,_,ot,b):v&&(E!==he||O>0&&O&64)?Se(v,u,p,!1,!0):(E===he&&O&384||!_&&L&16)&&Se(T,u,p),b&&xs(f)}(z&&(G=R&&R.onVnodeUnmounted)||j)&&de(()=>{G&&ve(G,u,f),j&&Oe(f,null,u,"unmounted")},p)},xs=f=>{const{type:u,el:p,anchor:b,transition:_}=f;if(u===he){Ni(p,b);return}if(u===Ot){P(f);return}const E=()=>{r(p),_&&!_.persisted&&_.afterLeave&&_.afterLeave()};if(f.shapeFlag&1&&_&&!_.persisted){const{leave:R,delayLeave:C}=_,T=()=>R(p,E);C?C(f.el,E,T):T()}else E()},Ni=(f,u)=>{let p;for(;f!==u;)p=g(f),r(f),f=p;r(u)},Hi=(f,u,p)=>{const{bum:b,scope:_,update:E,subTree:R,um:C}=f;b&&tn(b),_.stop(),E&&(E.active=!1,Ie(R,f,u,p)),C&&de(C,u),de(()=>{f.isUnmounted=!0},u),u&&u.pendingBranch&&!u.isUnmounted&&f.asyncDep&&!f.asyncResolved&&f.suspenseId===u.pendingId&&(u.deps--,u.deps===0&&u.resolve())},Se=(f,u,p,b=!1,_=!1,E=0)=>{for(let R=E;Rf.shapeFlag&6?Kt(f.component.subTree):f.shapeFlag&128?f.suspense.next():g(f.anchor||f.el),Ts=(f,u,p)=>{f==null?u._vnode&&Ie(u._vnode,null,null,!0):I(u._vnode||null,f,u,null,null,null,p),$s(),fn(),u._vnode=f},ot={p:I,um:Ie,m:Ye,r:xs,mt:M,mc:x,pc:Q,pbc:B,n:Kt,o:e};let In,Fn;return t&&([In,Fn]=t(ot)),{render:Ts,hydrate:In,createApp:yl(Ts,In)}}function Je({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ws(e,t,n=!1){const s=e.children,r=t.children;if(N(s)&&N(r))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}const Fl=e=>e.__isTeleport,Ft=e=>e&&(e.disabled||e.disabled===""),Js=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Zn=(e,t)=>{const n=e&&e.to;return se(n)?t?t(n):null:n},Ol={__isTeleport:!0,process(e,t,n,s,r,i,o,l,c,a){const{mc:d,pc:h,pbc:g,o:{insert:w,querySelector:A,createText:I,createComment:H}}=a,m=Ft(t.props);let{shapeFlag:y,children:$,dynamicChildren:P}=t;if(e==null){const k=t.el=I(""),q=t.anchor=I("");w(k,n,s),w(q,n,s);const K=t.target=Zn(t.props,A),x=t.targetAnchor=I("");K&&(w(x,K),o=o||Js(K));const U=(B,W)=>{y&16&&d($,B,W,r,i,o,l,c)};m?U(n,q):K&&U(K,x)}else{t.el=e.el;const k=t.anchor=e.anchor,q=t.target=e.target,K=t.targetAnchor=e.targetAnchor,x=Ft(e.props),U=x?n:q,B=x?k:K;if(o=o||Js(q),P?(g(e.dynamicChildren,P,U,r,i,o,l),ws(e,t,!0)):c||h(e,t,U,B,r,i,o,l,!1),m)x||Qt(t,n,k,a,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const W=t.target=Zn(t.props,A);W&&Qt(t,W,null,a,0)}else x&&Qt(t,q,K,a,1)}hi(t)},remove(e,t,n,s,{um:r,o:{remove:i}},o){const{shapeFlag:l,children:c,anchor:a,targetAnchor:d,target:h,props:g}=e;if(h&&i(d),(o||!Ft(g))&&(i(a),l&16))for(let w=0;w0?Re||at:null,Ll(),Bt>0&&Re&&Re.push(e),e}function cf(e,t,n,s,r,i){return gi(bi(e,t,n,s,r,i,!0))}function mi(e,t,n,s,r){return gi(re(e,t,n,s,r,!0))}function pn(e){return e?e.__v_isVNode===!0:!1}function Ge(e,t){return e.type===t.type&&e.key===t.key}const Rn="__vInternal",_i=({key:e})=>e??null,sn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?se(e)||ce(e)||D(e)?{i:fe,r:e,k:t,f:!!n}:e:null);function bi(e,t=null,n=null,s=0,r=null,i=e===he?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&_i(t),ref:t&&sn(t),scopeId:Cn,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:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:fe};return l?(Cs(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=se(n)?8:16),Bt>0&&!o&&Re&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Re.push(c),c}const re=Sl;function Sl(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===ni)&&(e=be),pn(e)){const l=qe(e,t,!0);return n&&Cs(l,n),Bt>0&&!i&&Re&&(l.shapeFlag&6?Re[Re.indexOf(e)]=l:Re.push(l)),l.patchFlag|=-2,l}if(Wl(e)&&(e=e.__vccOpts),t){t=Nl(t);let{class:l,style:c}=t;l&&!se(l)&&(t.class=os(l)),ee(c)&&(Dr(c)&&!N(c)&&(c=oe({},c)),t.style=is(c))}const o=se(e)?1:Jo(e)?128:Fl(e)?64:ee(e)?4:D(e)?2:0;return bi(e,t,n,s,r,o,i,!0)}function Nl(e){return e?Dr(e)||Rn in e?oe({},e):e:null}function qe(e,t,n=!1){const{props:s,ref:r,patchFlag:i,children:o}=e,l=t?Hl(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&_i(l),ref:t&&t.ref?n&&r?N(r)?r.concat(sn(t)):[r,sn(t)]:sn(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==he?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&qe(e.ssContent),ssFallback:e.ssFallback&&qe(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function yi(e=" ",t=0){return re(bt,null,e,t)}function ff(e,t){const n=re(Ot,null,e);return n.staticCount=t,n}function af(e="",t=!1){return t?(pi(),mi(be,null,e)):re(be,null,e)}function Te(e){return e==null||typeof e=="boolean"?re(be):N(e)?re(he,null,e.slice()):typeof e=="object"?ke(e):re(bt,null,String(e))}function ke(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:qe(e)}function Cs(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(N(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),Cs(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(Rn in t)?t._ctx=fe:r===3&&fe&&(fe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else D(t)?(t={default:t,_ctx:fe},n=32):(t=String(t),s&64?(n=16,t=[yi(t)]):n=8);e.children=t,e.shapeFlag|=n}function Hl(...e){const t={};for(let n=0;nle||fe;let Es,ct,Zs="__VUE_INSTANCE_SETTERS__";(ct=jn()[Zs])||(ct=jn()[Zs]=[]),ct.push(e=>le=e),Es=e=>{ct.length>1?ct.forEach(t=>t(e)):ct[0](e)};const yt=e=>{Es(e),e.scope.on()},rt=()=>{le&&le.scope.off(),Es(null)};function wi(e){return e.vnode.shapeFlag&4}let vt=!1;function jl(e,t=!1){vt=t;const{props:n,children:s}=e.vnode,r=wi(e);wl(e,n,r,t),xl(e,s);const i=r?Dl(e,t):void 0;return vt=!1,i}function Dl(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Pt(new Proxy(e.ctx,ul));const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?Ei(e):null;yt(e),wt();const i=We(s,e,0,[e.props,r]);if(Ct(),rt(),Tr(i)){if(i.then(rt,rt),t)return i.then(o=>{Qs(e,o,t)}).catch(o=>{jt(o,e,0)});e.asyncDep=i}else Qs(e,i,t)}else Ci(e,t)}function Qs(e,t,n){D(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ee(t)&&(e.setupState=Kr(t)),Ci(e,n)}let Gs;function Ci(e,t,n){const s=e.type;if(!e.render){if(!t&&Gs&&!s.render){const r=s.template||ys(e).template;if(r){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,a=oe(oe({isCustomElement:i,delimiters:l},o),c);s.render=Gs(r,a)}}e.render=s.render||Pe}yt(e),wt(),hl(e),Ct(),rt()}function kl(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return pe(e,"get","$attrs"),t[n]}}))}function Ei(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return kl(e)},slots:e.slots,emit:e.emit,expose:t}}function Pn(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Kr(Pt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in It)return It[n](e)},has(t,n){return n in t||n in It}}))}function Kl(e,t=!0){return D(e)?e.displayName||e.name:e.name||t&&e.__name}function Wl(e){return D(e)&&"__vccOpts"in e}const xe=(e,t)=>$o(e,t,vt);function Qn(e,t,n){const s=arguments.length;return s===2?ee(t)&&!N(t)?pn(t)?re(e,null,[t]):re(e,t):re(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&pn(n)&&(n=[n]),re(e,t,n))}const Vl=Symbol.for("v-scx"),ql=()=>mt(Vl),zl="3.3.4",Yl="http://www.w3.org/2000/svg",et=typeof document<"u"?document:null,er=et&&et.createElement("template"),Jl={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t?et.createElementNS(Yl,e):et.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>et.createTextNode(e),createComment:e=>et.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>et.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{er.innerHTML=s?`${e}`:e;const l=er.content;if(s){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Xl(e,t,n){const s=e._vtc;s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Zl(e,t,n){const s=e.style,r=se(n);if(n&&!r){if(t&&!se(t))for(const i in t)n[i]==null&&Gn(s,i,"");for(const i in n)Gn(s,i,n[i])}else{const i=s.display;r?t!==n&&(s.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(s.display=i)}}const tr=/\s*!important$/;function Gn(e,t,n){if(N(n))n.forEach(s=>Gn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Ql(e,t);tr.test(n)?e.setProperty(it(s),n.replace(tr,""),"important"):e[s]=n}}const nr=["Webkit","Moz","ms"],Nn={};function Ql(e,t){const n=Nn[t];if(n)return n;let s=Le(t);if(s!=="filter"&&s in e)return Nn[t]=s;s=_n(s);for(let r=0;rHn||(rc.then(()=>Hn=0),Hn=Date.now());function oc(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;Ce(lc(s,n.value),t,5,[s])};return n.value=e,n.attached=ic(),n}function lc(e,t){if(N(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const ir=/^on[a-z]/,cc=(e,t,n,s,r=!1,i,o,l,c)=>{t==="class"?Xl(e,s,r):t==="style"?Zl(e,n,s):Ut(t)?ts(t)||nc(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):fc(e,t,s,r))?ec(e,t,s,i,o,l,c):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Gl(e,t,s,r))};function fc(e,t,n,s){return s?!!(t==="innerHTML"||t==="textContent"||t in e&&ir.test(t)&&D(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||ir.test(t)&&se(n)?!1:t in e}const je="transition",xt="animation",xi=(e,{slots:t})=>Qn(el,ac(e),t);xi.displayName="Transition";const Ti={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};xi.props=oe({},Zr,Ti);const Xe=(e,t=[])=>{N(e)?e.forEach(n=>n(...t)):e&&e(...t)},or=e=>e?N(e)?e.some(t=>t.length>1):e.length>1:!1;function ac(e){const t={};for(const F in e)F in Ti||(t[F]=e[F]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:a=o,appearToClass:d=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:g=`${n}-leave-active`,leaveToClass:w=`${n}-leave-to`}=e,A=uc(r),I=A&&A[0],H=A&&A[1],{onBeforeEnter:m,onEnter:y,onEnterCancelled:$,onLeave:P,onLeaveCancelled:k,onBeforeAppear:q=m,onAppear:K=y,onAppearCancelled:x=$}=t,U=(F,V,M)=>{Ze(F,V?d:l),Ze(F,V?a:o),M&&M()},B=(F,V)=>{F._isLeaving=!1,Ze(F,h),Ze(F,w),Ze(F,g),V&&V()},W=F=>(V,M)=>{const ge=F?K:y,X=()=>U(V,F,M);Xe(ge,[V,X]),lr(()=>{Ze(V,F?c:i),De(V,F?d:l),or(ge)||cr(V,s,I,X)})};return oe(t,{onBeforeEnter(F){Xe(m,[F]),De(F,i),De(F,o)},onBeforeAppear(F){Xe(q,[F]),De(F,c),De(F,a)},onEnter:W(!1),onAppear:W(!0),onLeave(F,V){F._isLeaving=!0;const M=()=>B(F,V);De(F,h),pc(),De(F,g),lr(()=>{F._isLeaving&&(Ze(F,h),De(F,w),or(P)||cr(F,s,H,M))}),Xe(P,[F,M])},onEnterCancelled(F){U(F,!1),Xe($,[F])},onAppearCancelled(F){U(F,!0),Xe(x,[F])},onLeaveCancelled(F){B(F),Xe(k,[F])}})}function uc(e){if(e==null)return null;if(ee(e))return[$n(e.enter),$n(e.leave)];{const t=$n(e);return[t,t]}}function $n(e){return Ki(e)}function De(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Ze(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function lr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let dc=0;function cr(e,t,n,s){const r=e._endId=++dc,i=()=>{r===e._endId&&s()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=hc(e,t);if(!o)return s();const a=o+"end";let d=0;const h=()=>{e.removeEventListener(a,g),i()},g=w=>{w.target===e&&++d>=c&&h()};setTimeout(()=>{d(n[A]||"").split(", "),r=s(`${je}Delay`),i=s(`${je}Duration`),o=fr(r,i),l=s(`${xt}Delay`),c=s(`${xt}Duration`),a=fr(l,c);let d=null,h=0,g=0;t===je?o>0&&(d=je,h=o,g=i.length):t===xt?a>0&&(d=xt,h=a,g=c.length):(h=Math.max(o,a),d=h>0?o>a?je:xt:null,g=d?d===je?i.length:c.length:0);const w=d===je&&/\b(transform|all)(,|$)/.test(s(`${je}Property`).toString());return{type:d,timeout:h,propCount:g,hasTransform:w}}function fr(e,t){for(;e.lengthar(n)+ar(e[s])))}function ar(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function pc(){return document.body.offsetHeight}const ur=e=>{const t=e.props["onUpdate:modelValue"]||!1;return N(t)?n=>tn(t,n):t};function gc(e){e.target.composing=!0}function dr(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const uf={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e._assign=ur(r);const i=s||r.props&&r.props.type==="number";ft(e,t?"change":"input",o=>{if(o.target.composing)return;let l=e.value;n&&(l=l.trim()),i&&(l=Un(l)),e._assign(l)}),n&&ft(e,"change",()=>{e.value=e.value.trim()}),t||(ft(e,"compositionstart",gc),ft(e,"compositionend",dr),ft(e,"change",dr))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:s,number:r}},i){if(e._assign=ur(i),e.composing||document.activeElement===e&&e.type!=="range"&&(n||s&&e.value.trim()===t||(r||e.type==="number")&&Un(e.value)===t))return;const o=t??"";e.value!==o&&(e.value=o)}},mc=["ctrl","shift","alt","meta"],_c={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>mc.some(n=>e[`${n}Key`]&&!t.includes(n))},df=(e,t)=>(n,...s)=>{for(let r=0;rn=>{if(!("key"in n))return;const s=it(n.key);if(t.some(r=>r===s||bc[r]===s))return e(n)},Ai=oe({patchProp:cc},Jl);let Lt,hr=!1;function yc(){return Lt||(Lt=Rl(Ai))}function vc(){return Lt=hr?Lt:Pl(Ai),hr=!0,Lt}const pf=(...e)=>{const t=yc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Ri(s);if(!r)return;const i=t._component;!D(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.innerHTML="";const o=n(r,!1,r instanceof SVGElement);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t},gf=(...e)=>{const t=vc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Ri(s);if(r)return n(r,!0,r instanceof SVGElement)},t};function Ri(e){return se(e)?document.querySelector(e):e}const mf=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},wc="modulepreload",Cc=function(e){return"/"+e},pr={},_f=function(t,n,s){if(!n||n.length===0)return t();const r=document.getElementsByTagName("link");return Promise.all(n.map(i=>{if(i=Cc(i),i in pr)return;pr[i]=!0;const o=i.endsWith(".css"),l=o?'[rel="stylesheet"]':"";if(!!s)for(let d=r.length-1;d>=0;d--){const h=r[d];if(h.href===i&&(!o||h.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${l}`))return;const a=document.createElement("link");if(a.rel=o?"stylesheet":wc,o||(a.as="script",a.crossOrigin=""),a.href=i,document.head.appendChild(a),o)return new Promise((d,h)=>{a.addEventListener("load",d),a.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>t()).catch(i=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=i,window.dispatchEvent(o),!o.defaultPrevented)throw i})},Ec=window.__VP_SITE_DATA__,Pi=/^[a-z]+:/i,bf=/^pathname:\/\//,yf="vitepress-theme-appearance",Ii=/#.*$/,xc=/(index)?\.(md|html)$/,we=typeof document<"u",Fi={relativePath:"",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Tc(e,t,n=!1){if(t===void 0)return!1;if(e=gr(`/${e}`),n)return new RegExp(t).test(e);if(gr(t)!==e)return!1;const s=t.match(Ii);return s?(we?location.hash:"")===s[0]:!0}function gr(e){return decodeURI(e).replace(Ii,"").replace(xc,"")}function Ac(e){return Pi.test(e)}function Rc(e,t){var s,r,i,o,l,c,a;const n=Object.keys(e.locales).find(d=>d!=="root"&&!Ac(d)&&Tc(t,`/${d}/`,!0))||"root";return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((r=e.locales[n])==null?void 0:r.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:Mi(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(a=e.locales[n])==null?void 0:a.themeConfig}})}function Oi(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const r=Pc(e.title,s);return`${n}${r}`}function Pc(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Ic(e,t){const[n,s]=t;if(n!=="meta")return!1;const r=Object.entries(s)[0];return r==null?!1:e.some(([i,o])=>i===n&&o[r[0]]===r[1])}function Mi(e,t){return[...e.filter(n=>!Ic(t,n)),...t]}const Fc=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Oc=/^[a-z]:/i;function mr(e){const t=Oc.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Fc,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const Mc=Symbol(),nt=Po(Ec);function vf(e){const t=xe(()=>Rc(nt.value,e.data.relativePath));return{site:t,theme:xe(()=>t.value.themeConfig),page:xe(()=>e.data),frontmatter:xe(()=>e.data.frontmatter),params:xe(()=>e.data.params),lang:xe(()=>t.value.lang),dir:xe(()=>t.value.dir),localeIndex:xe(()=>t.value.localeIndex||"root"),title:xe(()=>Oi(t.value,e.data)),description:xe(()=>e.data.description||t.value.description),isDark:ht(!1)}}function Lc(){const e=mt(Mc);if(!e)throw new Error("vitepress data not properly injected in app");return e}function Sc(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function _r(e){return Pi.test(e)||e.startsWith(".")?e:Sc(nt.value.base,e)}function Nc(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),we){const n="/";t=mr(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];if(s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),!s)return null;t=`${n}assets/${t}.${s}.js`}else t=`./${mr(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let rn=[];function wf(e){rn.push(e),An(()=>{rn=rn.filter(t=>t!==e)})}const Hc=Symbol(),br="http://a.com",$c=()=>({path:"/",component:null,data:Fi});function Cf(e,t){const n=yn($c()),s={route:n,go:r};async function r(l=we?location.href:"/"){var a,d;if(await((a=s.onBeforeRouteChange)==null?void 0:a.call(s,l))===!1)return;const c=new URL(l,br);nt.value.cleanUrls||!c.pathname.endsWith("/")&&!c.pathname.endsWith(".html")&&(c.pathname+=".html",l=c.pathname+c.search+c.hash),wr(l),await o(l),await((d=s.onAfterRouteChanged)==null?void 0:d.call(s,l))}let i=null;async function o(l,c=0,a=!1){var g;if(await((g=s.onBeforePageLoad)==null?void 0:g.call(s,l))===!1)return;const d=new URL(l,br),h=i=d.pathname;try{let w=await e(h);if(!w)throw new Error(`Page not found: ${h}`);if(i===h){i=null;const{default:A,__pageData:I}=w;if(!A)throw new Error(`Invalid route component: ${A}`);n.path=we?h:_r(h),n.component=Pt(A),n.data=Pt(I),we&&Vr(()=>{let H=nt.value.base+I.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!nt.value.cleanUrls&&!H.endsWith("/")&&(H+=".html"),H!==d.pathname&&(d.pathname=H,l=H+d.search+d.hash,history.replaceState(null,"",l)),d.hash&&!c){let m=null;try{m=document.getElementById(decodeURIComponent(d.hash).slice(1))}catch(y){console.warn(y)}if(m){yr(m,d.hash);return}}window.scrollTo(0,c)})}}catch(w){if(!/fetch|Page not found/.test(w.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(w),!a)try{const A=await fetch(nt.value.base+"hashmap.json");window.__VP_HASH_MAP__=await A.json(),await o(l,c,!0);return}catch{}i===h&&(i=null,n.path=we?h:_r(h),n.component=t?Pt(t):null,n.data=Fi)}}return we&&(window.addEventListener("click",l=>{if(l.target.closest("button"))return;const a=l.target.closest("a");if(a&&!a.closest(".vp-raw")&&(a instanceof SVGElement||!a.download)){const{target:d}=a,{href:h,origin:g,pathname:w,hash:A,search:I}=new URL(a.href instanceof SVGAnimatedString?a.href.animVal:a.href,a.baseURI),H=window.location,m=w.match(/\.\w+$/);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&!d&&g===H.origin&&!(m&&m[0]!==".html")&&(l.preventDefault(),w===H.pathname&&I===H.search?(A!==H.hash&&(history.pushState(null,"",A),window.dispatchEvent(new Event("hashchange"))),A?yr(a,A,a.classList.contains("header-anchor")):(wr(h),window.scrollTo(0,0))):r(h))}},{capture:!0}),window.addEventListener("popstate",l=>{o(location.href,l.state&&l.state.scrollPosition||0)}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function Bc(){const e=mt(Hc);if(!e)throw new Error("useRouter() is called without provider.");return e}function Li(){return Bc().route}function yr(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(r){console.warn(r)}if(s){let a=function(){!n||Math.abs(c-window.scrollY)>window.innerHeight?window.scrollTo(0,c):window.scrollTo({left:0,top:c,behavior:"smooth"})},r=nt.value.scrollOffset,i=0,o=24;if(typeof r=="object"&&"padding"in r&&(o=r.padding,r=r.selector),typeof r=="number")i=r;else if(typeof r=="string")i=vr(r,o);else if(Array.isArray(r))for(const d of r){const h=vr(d,o);if(h){i=h;break}}const l=parseInt(window.getComputedStyle(s).paddingTop,10),c=window.scrollY+s.getBoundingClientRect().top-i+l;requestAnimationFrame(a)}}function vr(e,t){const n=document.querySelector(e);if(!n)return 0;const s=n.getBoundingClientRect().bottom;return s<0?0:s+t}function wr(e){we&&e!==location.href&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",e))}const Cr=()=>rn.forEach(e=>e()),Ef=_s({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Li(),{site:n}=Lc();return()=>Qn(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?Qn(t.component,{onVnodeMounted:Cr,onVnodeUpdated:Cr}):"404 Page Not Found"])}}),xf=_s({setup(e,{slots:t}){const n=ht(!1);return Tn(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function Tf(){we&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const s=(n=t.parentElement)==null?void 0:n.parentElement;if(!s)return;const r=Array.from(s.querySelectorAll("input")).indexOf(t);if(r<0)return;const i=s.querySelector(".blocks");if(!i)return;const o=Array.from(i.children).find(a=>a.classList.contains("active"));if(!o)return;const l=i.children[r];if(!l||o===l)return;o.classList.remove("active"),l.classList.add("active");const c=s==null?void 0:s.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function Af(){if(we){const e=new WeakMap;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,i=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!r||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(r.className);let l="";i.querySelectorAll("span.line:not(.diff.remove)").forEach(c=>l+=(c.textContent||"")+` -`),l=l.slice(0,-1),o&&(l=l.replace(/^ *(\$|>) /gm,"").trim()),Uc(l).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const c=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,c)})}})}}async function Uc(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const s=document.getSelection(),r=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),r&&(s.removeAllRanges(),s.addRange(r)),n&&n.focus()}}function Rf(e,t){let n=[],s=!0;const r=i=>{if(s){s=!1;return}n.forEach(o=>document.head.removeChild(o)),n=[],i.forEach(o=>{const l=Er(o);document.head.appendChild(l),n.push(l)})};Xo(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[];document.title=Oi(o,i);const a=l||o.description;let d=document.querySelector("meta[name=description]");d?d.setAttribute("content",a):Er(["meta",{name:"description",content:a}]),r(Mi(o.head,Dc(c)))})}function Er([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),s}function jc(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Dc(e){return e.filter(t=>!jc(t))}const Bn=new Set,Si=()=>document.createElement("link"),kc=e=>{const t=Si();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Kc=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let Gt;const Wc=we&&(Gt=Si())&&Gt.relList&&Gt.relList.supports&&Gt.relList.supports("prefetch")?kc:Kc;function Pf(){if(!we||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const s=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!Bn.has(c)){Bn.add(c);const a=Nc(c);a&&Wc(a)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):Bn.add(l))})})};Tn(s);const r=Li();nn(()=>r.path,s),An(()=>{n&&n.disconnect()})}export{_f as $,Xo as A,vi as B,ce as C,Po as D,Vr as E,Tc as F,we as G,An as H,Zc as I,ol as J,ef as K,he as L,nf as M,wf as N,re as O,bf as P,tf as Q,Pi as R,Li as S,xi as T,Hl as U,mt as V,is as W,ff as X,yf as Y,Gc as Z,mf as _,yi as a,vl as a0,hf as a1,rf as a2,df as a3,of as a4,Qn as a5,Rf as a6,Hc as a7,vf as a8,Mc as a9,Ef as aa,xf as ab,nt as ac,gf as ad,Cf as ae,Nc as af,Pf as ag,Af as ah,Tf as ai,Bc as aj,ti as ak,Qc as al,uf as am,lf as an,Pt as ao,pf as ap,mi as b,cf as c,_s as d,af as e,_r as f,xe as g,ht as h,Ac as i,Tn as j,bi as k,Fo as l,Xc as m,os as n,pi as o,Jc as p,Qi as q,sf as r,qc as s,Vc as t,Lc as u,Yc as v,Wo as w,jr as x,zc as y,nn as z}; diff --git a/assets/chunks/theme.5fb6dc5e.js b/assets/chunks/theme.5fb6dc5e.js new file mode 100644 index 000000000..5e7ef7ca9 --- /dev/null +++ b/assets/chunks/theme.5fb6dc5e.js @@ -0,0 +1 @@ +import{d as g,o as a,c as i,r as u,n as C,a as x,t as w,_ as m,b as $,w as _,T as ie,e as f,u as De,i as Ee,f as ce,g as P,h as N,j as K,k as c,l as r,p as H,m as z,q as j,s as J,v as ae,x as q,y as ue,z as de,A as we,B as Fe,C as R,F as T,D as A,E as _e,G as W,H as h,I as U,J as Le,K as te,L as Z,M as se,N as Oe,O as Ge,P as Se,Q as Ue,R as je,S as ye,U as Ke,V as qe,W as Me,X as Ie,Y as Re,Z as We,$ as Ye,a0 as Je}from"./framework.385ac4c3.js";const Xe=g({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(s){return(e,t)=>(a(),i("span",{class:C(["VPBadge",e.type])},[u(e.$slots,"default",{},()=>[x(w(e.text),1)],!0)],2))}});const Ze=m(Xe,[["__scopeId","data-v-9613cc9f"]]),Qe={key:0,class:"VPBackdrop"},et=g({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(s){return(e,t)=>(a(),$(ie,{name:"fade"},{default:_(()=>[e.show?(a(),i("div",Qe)):f("",!0)]),_:1}))}});const tt=m(et,[["__scopeId","data-v-c79a1216"]]),V=De;function st(s,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(s,e):(s(),(n=!0)&&setTimeout(()=>n=!1,e))}}function le(s){return/^\//.test(s)?s:`/${s}`}function Y(s){if(Ee(s))return s;const{site:e}=V(),{pathname:t,search:n,hash:o}=new URL(s,"http://a.com"),l=t.endsWith("/")||t.endsWith(".html")?s:s.replace(/(?:(^\.+)\/)?.*$/,`$1${t.replace(/(\.md)?$/,e.value.cleanUrls?"":".html")}${n}${o}`);return ce(l)}function X({removeCurrent:s=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:n,page:o,theme:l}=V(),d=P(()=>{var v,b;return{label:(v=t.value.locales[n.value])==null?void 0:v.label,link:((b=t.value.locales[n.value])==null?void 0:b.link)||(n.value==="root"?"/":`/${n.value}/`)}});return{localeLinks:P(()=>Object.entries(t.value.locales).flatMap(([v,b])=>s&&d.value.label===b.label?[]:{text:b.label,link:nt(b.link||(v==="root"?"/":`/${v}/`),l.value.i18nRouting!==!1&&e,o.value.relativePath.slice(d.value.link.length-1),!t.value.cleanUrls)})),currentLang:d}}function nt(s,e,t,n){return e?s.replace(/\/$/,"")+le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):s}const ot=s=>(H("data-v-dfcf8e56"),s=s(),z(),s),at={class:"NotFound"},lt={class:"code"},rt={class:"title"},it=ot(()=>c("div",{class:"divider"},null,-1)),ct={class:"quote"},ut={class:"action"},dt=["href","aria-label"],_t=g({__name:"NotFound",setup(s){const{site:e,theme:t}=V(),{localeLinks:n}=X({removeCurrent:!1}),o=N("/");return K(()=>{var d;const l=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");n.value.length&&(o.value=((d=n.value.find(({link:p})=>p.startsWith(l)))==null?void 0:d.link)||n.value[0].link)}),(l,d)=>{var p,v,b,M,L;return a(),i("div",at,[c("p",lt,w(((p=r(t).notFound)==null?void 0:p.code)??"404"),1),c("h1",rt,w(((v=r(t).notFound)==null?void 0:v.title)??"PAGE NOT FOUND"),1),it,c("blockquote",ct,w(((b=r(t).notFound)==null?void 0:b.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),c("div",ut,[c("a",{class:"link",href:r(ce)(o.value),"aria-label":((M=r(t).notFound)==null?void 0:M.linkLabel)??"go to home",target:"_self"},w(((L=r(t).notFound)==null?void 0:L.linkText)??"Take me home"),9,dt)])])}}});const vt=m(_t,[["__scopeId","data-v-dfcf8e56"]]);function Ne(s,e){if(Array.isArray(s))return Q(s);if(s==null)return[];e=le(e);const t=Object.keys(s).sort((o,l)=>l.split("/").length-o.split("/").length).find(o=>e.startsWith(le(o))),n=t?s[t]:[];return Array.isArray(n)?Q(n):Q(n.items,n.base)}function pt(s){const e=[];let t=0;for(const n in s){const o=s[n];if(o.items){t=e.push(o);continue}e[t]||e.push({items:[]}),e[t].items.push(o)}return e}function ht(s){const e=[];function t(n){for(const o of n)o.text&&o.link&&e.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&t(o.items)}return t(s),e}function re(s,e){return Array.isArray(e)?e.some(t=>re(s,t)):j(s,e.link)?!0:e.items?re(s,e.items):!1}function Q(s,e){return[...s].map(t=>{const n={...t},o=n.base||e;return o&&n.link&&(n.link=o+n.link),n.items&&(n.items=Q(n.items,o)),n})}function F(){const{frontmatter:s,page:e,theme:t}=V(),n=ae("(min-width: 960px)"),o=N(!1),l=P(()=>{const I=t.value.sidebar,y=e.value.relativePath;return I?Ne(I,y):[]}),d=N(l.value);q(l,(I,y)=>{JSON.stringify(I)!==JSON.stringify(y)&&(d.value=l.value)});const p=P(()=>s.value.sidebar!==!1&&d.value.length>0&&s.value.layout!=="home"),v=P(()=>b?s.value.aside==null?t.value.aside==="left":s.value.aside==="left":!1),b=P(()=>s.value.layout==="home"?!1:s.value.aside!=null?!!s.value.aside:t.value.aside!==!1),M=P(()=>p.value&&n.value),L=P(()=>p.value?pt(d.value):[]);function B(){o.value=!0}function k(){o.value=!1}function S(){o.value?k():B()}return{isOpen:o,sidebar:d,sidebarGroups:L,hasSidebar:p,hasAside:b,leftAside:v,isSidebarEnabled:M,open:B,close:k,toggle:S}}function ft(s,e){let t;ue(()=>{t=s.value?document.activeElement:void 0}),K(()=>{window.addEventListener("keyup",n)}),de(()=>{window.removeEventListener("keyup",n)});function n(o){o.key==="Escape"&&s.value&&(e(),t==null||t.focus())}}const Te=N(J?location.hash:"");J&&window.addEventListener("hashchange",()=>{Te.value=location.hash});function mt(s){const{page:e}=V(),t=N(!1),n=P(()=>s.value.collapsed!=null),o=P(()=>!!s.value.link),l=N(!1),d=()=>{l.value=j(e.value.relativePath,s.value.link)};q([e,s,Te],d),K(d);const p=P(()=>l.value?!0:s.value.items?re(e.value.relativePath,s.value.items):!1),v=P(()=>!!(s.value.items&&s.value.items.length));ue(()=>{t.value=!!(n.value&&s.value.collapsed)}),we(()=>{(l.value||p.value)&&(t.value=!1)});function b(){n.value&&(t.value=!t.value)}return{collapsed:t,collapsible:n,isLink:o,isActiveLink:l,hasActiveLink:p,hasChildren:v,toggle:b}}function gt(){const{hasSidebar:s}=F(),e=ae("(min-width: 960px)"),t=ae("(min-width: 1280px)");return{isAsideEnabled:P(()=>!t.value&&!e.value?!1:s.value?t.value:e.value)}}const bt=71;function ve(s){return typeof s.outline=="object"&&!Array.isArray(s.outline)&&s.outline.label||s.outlineTitle||"On this page"}function pe(s){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{title:$t(t),link:"#"+t.id,level:n}});return kt(e,s)}function $t(s){let e="";for(const t of s.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function kt(s,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;s=s.filter(d=>d.level>=n&&d.level<=o);const l=[];e:for(let d=0;d=0;v--){const b=s[v];if(b.level{requestAnimationFrame(l),window.addEventListener("scroll",n)}),Fe(()=>{d(location.hash)}),de(()=>{window.removeEventListener("scroll",n)});function l(){if(!t.value)return;const p=[].slice.call(s.value.querySelectorAll(".outline-link")),v=[].slice.call(document.querySelectorAll(".content .header-anchor")).filter(k=>p.some(S=>S.hash===k.hash&&k.offsetParent!==null)),b=window.scrollY,M=window.innerHeight,L=document.body.offsetHeight,B=Math.abs(b+M-L)<1;if(v.length&&B){d(v[v.length-1].hash);return}for(let k=0;k{const o=R("VPDocOutlineItem",!0);return a(),i("ul",{class:C(t.root?"root":"nested")},[(a(!0),i(T,null,A(t.headers,({children:l,link:d,title:p})=>(a(),i("li",null,[c("a",{class:"outline-link",href:d,onClick:e,title:p},w(p),9,Vt),l!=null&&l.length?(a(),$(o,{key:0,headers:l},null,8,["headers"])):f("",!0)]))),256))],2)}}});const he=m(wt,[["__scopeId","data-v-d0ee3533"]]),Lt=s=>(H("data-v-d330b1bb"),s=s(),z(),s),St={class:"content"},Mt={class:"outline-title",role:"heading","aria-level":"2"},It={"aria-labelledby":"doc-outline-aria-label"},Nt=Lt(()=>c("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),Tt=g({__name:"VPDocAsideOutline",setup(s){const{frontmatter:e,theme:t}=V(),n=_e([]);W(()=>{n.value=pe(e.value.outline??t.value.outline)});const o=N(),l=N();return yt(o,l),(d,p)=>(a(),i("div",{class:C(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:o,role:"navigation"},[c("div",St,[c("div",{class:"outline-marker",ref_key:"marker",ref:l},null,512),c("div",Mt,w(r(ve)(r(t))),1),c("nav",It,[Nt,h(he,{headers:n.value,root:!0},null,8,["headers"])])])],2))}});const Ct=m(Tt,[["__scopeId","data-v-d330b1bb"]]),Bt={class:"VPDocAsideCarbonAds"},At=g({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(s){const e=()=>null;return(t,n)=>(a(),i("div",Bt,[h(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),xt=s=>(H("data-v-3f215769"),s=s(),z(),s),Ht={class:"VPDocAside"},zt=xt(()=>c("div",{class:"spacer"},null,-1)),Dt=g({__name:"VPDocAside",setup(s){const{theme:e}=V();return(t,n)=>(a(),i("div",Ht,[u(t.$slots,"aside-top",{},void 0,!0),u(t.$slots,"aside-outline-before",{},void 0,!0),h(Ct),u(t.$slots,"aside-outline-after",{},void 0,!0),zt,u(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),$(At,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):f("",!0),u(t.$slots,"aside-ads-after",{},void 0,!0),u(t.$slots,"aside-bottom",{},void 0,!0)]))}});const Et=m(Dt,[["__scopeId","data-v-3f215769"]]);function Ft(){const{theme:s,page:e}=V();return P(()=>{const{text:t="Edit this page",pattern:n=""}=s.value.editLink||{};let o;return typeof n=="function"?o=n(e.value):o=n.replace(/:path/g,e.value.filePath),{url:o,text:t}})}function Ot(){const{page:s,theme:e,frontmatter:t}=V();return P(()=>{var v,b,M,L,B,k,S,I;const n=Ne(e.value.sidebar,s.value.relativePath),o=ht(n),l=o.findIndex(y=>j(s.value.relativePath,y.link)),d=((v=e.value.docFooter)==null?void 0:v.prev)===!1&&!t.value.prev||t.value.prev===!1,p=((b=e.value.docFooter)==null?void 0:b.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((M=o[l-1])==null?void 0:M.docFooterText)??((L=o[l-1])==null?void 0:L.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((B=o[l-1])==null?void 0:B.link)},next:p?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((k=o[l+1])==null?void 0:k.docFooterText)??((S=o[l+1])==null?void 0:S.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((I=o[l+1])==null?void 0:I.link)}}})}const Gt={},Ut={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},jt=c("path",{d:"M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"},null,-1),Kt=c("path",{d:"M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"},null,-1),qt=[jt,Kt];function Rt(s,e){return a(),i("svg",Ut,qt)}const Wt=m(Gt,[["render",Rt]]),G=g({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(s){const e=s,t=P(()=>e.tag??(e.href?"a":"span")),n=P(()=>e.href&&Le.test(e.href));return(o,l)=>(a(),$(U(t.value),{class:C(["VPLink",{link:o.href,"vp-external-link-icon":n.value,"no-icon":o.noIcon}]),href:o.href?r(Y)(o.href):void 0,target:o.target??(n.value?"_blank":void 0),rel:o.rel??(n.value?"noreferrer":void 0)},{default:_(()=>[u(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Yt={class:"VPLastUpdated"},Jt=["datetime"],Xt=g({__name:"VPDocFooterLastUpdated",setup(s){const{theme:e,page:t,frontmatter:n}=V(),o=P(()=>new Date(n.value.lastUpdated??t.value.lastUpdated)),l=P(()=>o.value.toISOString()),d=N("");return K(()=>{ue(()=>{var p;d.value=new Intl.DateTimeFormat(void 0,((p=e.value.lastUpdated)==null?void 0:p.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(o.value)})}),(p,v)=>{var b;return a(),i("p",Yt,[x(w(((b=r(e).lastUpdated)==null?void 0:b.text)||r(e).lastUpdatedText||"Last updated")+": ",1),c("time",{datetime:l.value},w(d.value),9,Jt)])}}});const Zt=m(Xt,[["__scopeId","data-v-7de715c0"]]),Qt={key:0,class:"VPDocFooter"},es={key:0,class:"edit-info"},ts={key:0,class:"edit-link"},ss={key:1,class:"last-updated"},ns={key:1,class:"prev-next"},os={class:"pager"},as=["href"],ls=["innerHTML"],rs=["innerHTML"],is={class:"pager"},cs=["href"],us=["innerHTML"],ds=["innerHTML"],_s=g({__name:"VPDocFooter",setup(s){const{theme:e,page:t,frontmatter:n}=V(),o=Ft(),l=Ot(),d=P(()=>e.value.editLink&&n.value.editLink!==!1),p=P(()=>t.value.lastUpdated&&n.value.lastUpdated!==!1),v=P(()=>d.value||p.value||l.value.prev||l.value.next);return(b,M)=>{var L,B,k,S,I,y;return v.value?(a(),i("footer",Qt,[u(b.$slots,"doc-footer-before",{},void 0,!0),d.value||p.value?(a(),i("div",es,[d.value?(a(),i("div",ts,[h(G,{class:"edit-link-button",href:r(o).url,"no-icon":!0},{default:_(()=>[h(Wt,{class:"edit-link-icon","aria-label":"edit icon"}),x(" "+w(r(o).text),1)]),_:1},8,["href"])])):f("",!0),p.value?(a(),i("div",ss,[h(Zt)])):f("",!0)])):f("",!0),(L=r(l).prev)!=null&&L.link||(B=r(l).next)!=null&&B.link?(a(),i("nav",ns,[c("div",os,[(k=r(l).prev)!=null&&k.link?(a(),i("a",{key:0,class:"pager-link prev",href:r(Y)(r(l).prev.link)},[c("span",{class:"desc",innerHTML:((S=r(e).docFooter)==null?void 0:S.prev)||"Previous page"},null,8,ls),c("span",{class:"title",innerHTML:r(l).prev.text},null,8,rs)],8,as)):f("",!0)]),c("div",is,[(I=r(l).next)!=null&&I.link?(a(),i("a",{key:0,class:"pager-link next",href:r(Y)(r(l).next.link)},[c("span",{class:"desc",innerHTML:((y=r(e).docFooter)==null?void 0:y.next)||"Next page"},null,8,us),c("span",{class:"title",innerHTML:r(l).next.text},null,8,ds)],8,cs)):f("",!0)])])):f("",!0)])):f("",!0)}}});const vs=m(_s,[["__scopeId","data-v-ef5dee53"]]),ps={},hs={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},fs=c("path",{d:"M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"},null,-1),ms=[fs];function gs(s,e){return a(),i("svg",hs,ms)}const fe=m(ps,[["render",gs]]),bs={key:0,class:"VPDocOutlineDropdown"},$s={key:0,class:"items"},ks=g({__name:"VPDocOutlineDropdown",setup(s){const{frontmatter:e,theme:t}=V(),n=N(!1);W(()=>{n.value=!1});const o=_e([]);return W(()=>{o.value=pe(e.value.outline??t.value.outline)}),(l,d)=>o.value.length>0?(a(),i("div",bs,[c("button",{onClick:d[0]||(d[0]=p=>n.value=!n.value),class:C({open:n.value})},[x(w(r(ve)(r(t)))+" ",1),h(fe,{class:"icon"})],2),n.value?(a(),i("div",$s,[h(he,{headers:o.value},null,8,["headers"])])):f("",!0)])):f("",!0)}});const ys=m(ks,[["__scopeId","data-v-eadfb36b"]]),Ps=s=>(H("data-v-6b87e69f"),s=s(),z(),s),Vs={class:"container"},ws=Ps(()=>c("div",{class:"aside-curtain"},null,-1)),Ls={class:"aside-container"},Ss={class:"aside-content"},Ms={class:"content"},Is={class:"content-container"},Ns={class:"main"},Ts=g({__name:"VPDoc",setup(s){const{theme:e}=V(),t=te(),{hasSidebar:n,hasAside:o,leftAside:l}=F(),d=P(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(p,v)=>{const b=R("Content");return a(),i("div",{class:C(["VPDoc",{"has-sidebar":r(n),"has-aside":r(o)}])},[u(p.$slots,"doc-top",{},void 0,!0),c("div",Vs,[r(o)?(a(),i("div",{key:0,class:C(["aside",{"left-aside":r(l)}])},[ws,c("div",Ls,[c("div",Ss,[h(Et,null,{"aside-top":_(()=>[u(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":_(()=>[u(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":_(()=>[u(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":_(()=>[u(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":_(()=>[u(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":_(()=>[u(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):f("",!0),c("div",Ms,[c("div",Is,[u(p.$slots,"doc-before",{},void 0,!0),h(ys),c("main",Ns,[h(b,{class:C(["vp-doc",[d.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),h(vs,null,{"doc-footer-before":_(()=>[u(p.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),u(p.$slots,"doc-after",{},void 0,!0)])])]),u(p.$slots,"doc-bottom",{},void 0,!0)],2)}}});const Cs=m(Ts,[["__scopeId","data-v-6b87e69f"]]),Bs=g({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{}},setup(s){const e=s,t=P(()=>e.href&&Le.test(e.href)),n=P(()=>e.tag||e.href?"a":"button");return(o,l)=>(a(),$(U(n.value),{class:C(["VPButton",[o.size,o.theme]]),href:o.href?r(Y)(o.href):void 0,target:t.value?"_blank":void 0,rel:t.value?"noreferrer":void 0},{default:_(()=>[x(w(o.text),1)]),_:1},8,["class","href","target","rel"]))}});const As=m(Bs,[["__scopeId","data-v-c1c5efc1"]]),xs=["src","alt"],Hs=g({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(s){return(e,t)=>{const n=R("VPImage",!0);return e.image?(a(),i(T,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),i("img",Z({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(ce)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,xs)):(a(),i(T,{key:1},[h(n,Z({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),h(n,Z({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):f("",!0)}}});const ee=m(Hs,[["__scopeId","data-v-8426fc1a"]]),zs=s=>(H("data-v-da5d1713"),s=s(),z(),s),Ds={class:"container"},Es={class:"main"},Fs={key:0,class:"name"},Os=["innerHTML"],Gs=["innerHTML"],Us=["innerHTML"],js={key:0,class:"actions"},Ks={key:0,class:"image"},qs={class:"image-container"},Rs=zs(()=>c("div",{class:"image-bg"},null,-1)),Ws=g({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(s){const e=se("hero-image-slot-exists");return(t,n)=>(a(),i("div",{class:C(["VPHero",{"has-image":t.image||r(e)}])},[c("div",Ds,[c("div",Es,[u(t.$slots,"home-hero-info",{},()=>[t.name?(a(),i("h1",Fs,[c("span",{innerHTML:t.name,class:"clip"},null,8,Os)])):f("",!0),t.text?(a(),i("p",{key:1,innerHTML:t.text,class:"text"},null,8,Gs)):f("",!0),t.tagline?(a(),i("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Us)):f("",!0)],!0),t.actions?(a(),i("div",js,[(a(!0),i(T,null,A(t.actions,o=>(a(),i("div",{key:o.link,class:"action"},[h(As,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link},null,8,["theme","text","href"])]))),128))])):f("",!0)]),t.image||r(e)?(a(),i("div",Ks,[c("div",qs,[Rs,u(t.$slots,"home-hero-image",{},()=>[t.image?(a(),$(ee,{key:0,class:"image-src",image:t.image},null,8,["image"])):f("",!0)],!0)])])):f("",!0)])],2))}});const Ys=m(Ws,[["__scopeId","data-v-da5d1713"]]),Js=g({__name:"VPHomeHero",setup(s){const{frontmatter:e}=V();return(t,n)=>r(e).hero?(a(),$(Ys,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info":_(()=>[u(t.$slots,"home-hero-info")]),"home-hero-image":_(()=>[u(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):f("",!0)}}),Xs={},Zs={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Qs=c("path",{d:"M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"},null,-1),en=[Qs];function tn(s,e){return a(),i("svg",Zs,en)}const sn=m(Xs,[["render",tn]]),nn={class:"box"},on={key:0,class:"icon"},an=["innerHTML"],ln=["innerHTML"],rn=["innerHTML"],cn={key:4,class:"link-text"},un={class:"link-text-value"},dn=g({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(s){return(e,t)=>(a(),$(G,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:_(()=>[c("article",nn,[typeof e.icon=="object"&&e.icon.wrap?(a(),i("div",on,[h(ee,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),$(ee,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),i("div",{key:2,class:"icon",innerHTML:e.icon},null,8,an)):f("",!0),c("h2",{class:"title",innerHTML:e.title},null,8,ln),e.details?(a(),i("p",{key:3,class:"details",innerHTML:e.details},null,8,rn)):f("",!0),e.linkText?(a(),i("div",cn,[c("p",un,[x(w(e.linkText)+" ",1),h(sn,{class:"link-text-icon"})])])):f("",!0)])]),_:1},8,["href","rel","target","tag"]))}});const _n=m(dn,[["__scopeId","data-v-33204567"]]),vn={key:0,class:"VPFeatures"},pn={class:"container"},hn={class:"items"},fn=g({__name:"VPFeatures",props:{features:{}},setup(s){const e=s,t=P(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,o)=>n.features?(a(),i("div",vn,[c("div",pn,[c("div",hn,[(a(!0),i(T,null,A(n.features,l=>(a(),i("div",{key:l.title,class:C(["item",[t.value]])},[h(_n,{icon:l.icon,title:l.title,details:l.details,link:l.link,"link-text":l.linkText,rel:l.rel,target:l.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):f("",!0)}});const mn=m(fn,[["__scopeId","data-v-a6181336"]]),gn=g({__name:"VPHomeFeatures",setup(s){const{frontmatter:e}=V();return(t,n)=>r(e).features?(a(),$(mn,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):f("",!0)}}),bn={class:"VPHome"},$n=g({__name:"VPHome",setup(s){return(e,t)=>{const n=R("Content");return a(),i("div",bn,[u(e.$slots,"home-hero-before",{},void 0,!0),h(Js,null,{"home-hero-info":_(()=>[u(e.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":_(()=>[u(e.$slots,"home-hero-image",{},void 0,!0)]),_:3}),u(e.$slots,"home-hero-after",{},void 0,!0),u(e.$slots,"home-features-before",{},void 0,!0),h(gn),u(e.$slots,"home-features-after",{},void 0,!0),h(n)])}}});const kn=m($n,[["__scopeId","data-v-d82743a8"]]),yn={},Pn={class:"VPPage"};function Vn(s,e){const t=R("Content");return a(),i("div",Pn,[u(s.$slots,"page-top"),h(t),u(s.$slots,"page-bottom")])}const wn=m(yn,[["render",Vn]]),Ln=g({__name:"VPContent",setup(s){const{page:e,frontmatter:t}=V(),{hasSidebar:n}=F();return(o,l)=>(a(),i("div",{class:C(["VPContent",{"has-sidebar":r(n),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?u(o.$slots,"not-found",{key:0},()=>[h(vt)],!0):r(t).layout==="page"?(a(),$(wn,{key:1},{"page-top":_(()=>[u(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":_(()=>[u(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),$(kn,{key:2},{"home-hero-before":_(()=>[u(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":_(()=>[u(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":_(()=>[u(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":_(()=>[u(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":_(()=>[u(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":_(()=>[u(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),$(U(r(t).layout),{key:3})):(a(),$(Cs,{key:4},{"doc-top":_(()=>[u(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":_(()=>[u(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":_(()=>[u(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":_(()=>[u(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":_(()=>[u(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":_(()=>[u(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":_(()=>[u(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":_(()=>[u(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":_(()=>[u(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":_(()=>[u(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":_(()=>[u(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}});const Sn=m(Ln,[["__scopeId","data-v-669faec9"]]),Mn={class:"container"},In=["innerHTML"],Nn=["innerHTML"],Tn=g({__name:"VPFooter",setup(s){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=F();return(o,l)=>r(e).footer&&r(t).footer!==!1?(a(),i("footer",{key:0,class:C(["VPFooter",{"has-sidebar":r(n)}])},[c("div",Mn,[r(e).footer.message?(a(),i("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,In)):f("",!0),r(e).footer.copyright?(a(),i("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,Nn)):f("",!0)])],2)):f("",!0)}});const Cn=m(Tn,[["__scopeId","data-v-e03eb2e1"]]),Bn={class:"header"},An={class:"outline"},xn=g({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(s){const e=s,{theme:t}=V(),n=N(!1),o=N(0),l=N();W(()=>{n.value=!1});function d(){n.value=!n.value,o.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function p(b){b.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),Ge(()=>{n.value=!1}))}function v(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,M)=>(a(),i("div",{class:"VPLocalNavOutlineDropdown",style:Oe({"--vp-vh":o.value+"px"})},[b.headers.length>0?(a(),i("button",{key:0,onClick:d,class:C({open:n.value})},[x(w(r(ve)(r(t)))+" ",1),h(fe,{class:"icon"})],2)):(a(),i("button",{key:1,onClick:v},w(r(t).returnToTopLabel||"Return to top"),1)),h(ie,{name:"flyout"},{default:_(()=>[n.value?(a(),i("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:p},[c("div",Bn,[c("a",{class:"top-link",href:"#",onClick:v},w(r(t).returnToTopLabel||"Return to top"),1)]),c("div",An,[h(he,{headers:b.headers},null,8,["headers"])])],512)):f("",!0)]),_:1})],4))}});const Hn=m(xn,[["__scopeId","data-v-1c15a60a"]]),zn={},Dn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},En=c("path",{d:"M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"},null,-1),Fn=c("path",{d:"M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"},null,-1),On=c("path",{d:"M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"},null,-1),Gn=c("path",{d:"M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"},null,-1),Un=[En,Fn,On,Gn];function jn(s,e){return a(),i("svg",Dn,Un)}const Kn=m(zn,[["render",jn]]),qn=["aria-expanded"],Rn={class:"menu-text"},Wn=g({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(s){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=F(),{y:o}=Se(),l=_e([]),d=N(0);K(()=>{d.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),W(()=>{l.value=pe(t.value.outline??e.value.outline)});const p=P(()=>l.value.length===0&&!n.value),v=P(()=>({VPLocalNav:!0,fixed:p.value,"reached-top":o.value>=d.value}));return(b,M)=>r(t).layout!=="home"&&(!p.value||r(o)>=d.value)?(a(),i("div",{key:0,class:C(v.value)},[r(n)?(a(),i("button",{key:0,class:"menu","aria-expanded":b.open,"aria-controls":"VPSidebarNav",onClick:M[0]||(M[0]=L=>b.$emit("open-menu"))},[h(Kn,{class:"menu-icon"}),c("span",Rn,w(r(e).sidebarMenuLabel||"Menu"),1)],8,qn)):f("",!0),h(Hn,{headers:l.value,navHeight:d.value},null,8,["headers","navHeight"])],2)):f("",!0)}});const Yn=m(Wn,[["__scopeId","data-v-79c8c1df"]]);function Jn(){const s=N(!1);function e(){s.value=!0,window.addEventListener("resize",o)}function t(){s.value=!1,window.removeEventListener("resize",o)}function n(){s.value?t():e()}function o(){window.outerWidth>=768&&t()}const l=te();return q(()=>l.path,t),{isScreenOpen:s,openScreen:e,closeScreen:t,toggleScreen:n}}const Xn={},Zn={class:"VPSwitch",type:"button",role:"switch"},Qn={class:"check"},eo={key:0,class:"icon"};function to(s,e){return a(),i("button",Zn,[c("span",Qn,[s.$slots.default?(a(),i("span",eo,[u(s.$slots,"default",{},void 0,!0)])):f("",!0)])])}const so=m(Xn,[["render",to],["__scopeId","data-v-b1685198"]]),no={},oo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ao=c("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),lo=[ao];function ro(s,e){return a(),i("svg",oo,lo)}const io=m(no,[["render",ro]]),co={},uo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},_o=Ue('',9),vo=[_o];function po(s,e){return a(),i("svg",uo,vo)}const ho=m(co,[["render",po]]),fo=g({__name:"VPSwitchAppearance",setup(s){const{isDark:e}=V(),t=se("toggle-appearance",()=>{e.value=!e.value});return(n,o)=>(a(),$(so,{title:"toggle dark mode",class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(t)},{default:_(()=>[h(ho,{class:"sun"}),h(io,{class:"moon"})]),_:1},8,["aria-checked","onClick"]))}});const me=m(fo,[["__scopeId","data-v-ce54a7d1"]]),mo={key:0,class:"VPNavBarAppearance"},go=g({__name:"VPNavBarAppearance",setup(s){const{site:e}=V();return(t,n)=>r(e).appearance?(a(),i("div",mo,[h(me)])):f("",!0)}});const bo=m(go,[["__scopeId","data-v-f6a63727"]]),ge=N();let Ce=!1,oe=0;function $o(s){const e=N(!1);if(J){!Ce&&ko(),oe++;const t=q(ge,n=>{var o,l,d;n===s.el.value||(o=s.el.value)!=null&&o.contains(n)?(e.value=!0,(l=s.onFocus)==null||l.call(s)):(e.value=!1,(d=s.onBlur)==null||d.call(s))});de(()=>{t(),oe--,oe||yo()})}return je(e)}function ko(){document.addEventListener("focusin",Be),Ce=!0,ge.value=document.activeElement}function yo(){document.removeEventListener("focusin",Be)}function Be(){ge.value=document.activeElement}const Po={},Vo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},wo=c("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),Lo=[wo];function So(s,e){return a(),i("svg",Vo,Lo)}const Ae=m(Po,[["render",So]]),Mo={},Io={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},No=c("circle",{cx:"12",cy:"12",r:"2"},null,-1),To=c("circle",{cx:"19",cy:"12",r:"2"},null,-1),Co=c("circle",{cx:"5",cy:"12",r:"2"},null,-1),Bo=[No,To,Co];function Ao(s,e){return a(),i("svg",Io,Bo)}const xo=m(Mo,[["render",Ao]]),Ho={class:"VPMenuLink"},zo=g({__name:"VPMenuLink",props:{item:{}},setup(s){const{page:e}=V();return(t,n)=>(a(),i("div",Ho,[h(G,{class:C({active:r(j)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:_(()=>[x(w(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const ne=m(zo,[["__scopeId","data-v-43f1e123"]]),Do={class:"VPMenuGroup"},Eo={key:0,class:"title"},Fo=g({__name:"VPMenuGroup",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),i("div",Do,[e.text?(a(),i("p",Eo,w(e.text),1)):f("",!0),(a(!0),i(T,null,A(e.items,n=>(a(),i(T,null,["link"in n?(a(),$(ne,{key:0,item:n},null,8,["item"])):f("",!0)],64))),256))]))}});const Oo=m(Fo,[["__scopeId","data-v-69e747b5"]]),Go={class:"VPMenu"},Uo={key:0,class:"items"},jo=g({__name:"VPMenu",props:{items:{}},setup(s){return(e,t)=>(a(),i("div",Go,[e.items?(a(),i("div",Uo,[(a(!0),i(T,null,A(e.items,n=>(a(),i(T,{key:n.text},["link"in n?(a(),$(ne,{key:0,item:n},null,8,["item"])):(a(),$(Oo,{key:1,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):f("",!0),u(e.$slots,"default",{},void 0,!0)]))}});const Ko=m(jo,[["__scopeId","data-v-e7ea1737"]]),qo=["aria-expanded","aria-label"],Ro={key:0,class:"text"},Wo=["innerHTML"],Yo={class:"menu"},Jo=g({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(s){const e=N(!1),t=N();$o({el:t,onBlur:n});function n(){e.value=!1}return(o,l)=>(a(),i("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:l[1]||(l[1]=d=>e.value=!0),onMouseleave:l[2]||(l[2]=d=>e.value=!1)},[c("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":o.label,onClick:l[0]||(l[0]=d=>e.value=!e.value)},[o.button||o.icon?(a(),i("span",Ro,[o.icon?(a(),$(U(o.icon),{key:0,class:"option-icon"})):f("",!0),o.button?(a(),i("span",{key:1,innerHTML:o.button},null,8,Wo)):f("",!0),h(Ae,{class:"text-icon"})])):(a(),$(xo,{key:1,class:"icon"}))],8,qo),c("div",Yo,[h(Ko,{items:o.items},{default:_(()=>[u(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const be=m(Jo,[["__scopeId","data-v-9c007e85"]]),Xo={discord:'Discord',facebook:'Facebook',github:'GitHub',instagram:'Instagram',linkedin:'LinkedIn',mastodon:'Mastodon',slack:'Slack',twitter:'Twitter',x:'X',youtube:'YouTube'},Zo=["href","aria-label","innerHTML"],Qo=g({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(s){const e=s,t=P(()=>typeof e.icon=="object"?e.icon.svg:Xo[e.icon]);return(n,o)=>(a(),i("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,Zo))}});const ea=m(Qo,[["__scopeId","data-v-f80f8133"]]),ta={class:"VPSocialLinks"},sa=g({__name:"VPSocialLinks",props:{links:{}},setup(s){return(e,t)=>(a(),i("div",ta,[(a(!0),i(T,null,A(e.links,({link:n,icon:o,ariaLabel:l})=>(a(),$(ea,{key:n,icon:o,link:n,ariaLabel:l},null,8,["icon","link","ariaLabel"]))),128))]))}});const $e=m(sa,[["__scopeId","data-v-7bc22406"]]),na={key:0,class:"group translations"},oa={class:"trans-title"},aa={key:1,class:"group"},la={class:"item appearance"},ra={class:"label"},ia={class:"appearance-action"},ca={key:2,class:"group"},ua={class:"item social-links"},da=g({__name:"VPNavBarExtra",setup(s){const{site:e,theme:t}=V(),{localeLinks:n,currentLang:o}=X({correspondingLink:!0}),l=P(()=>n.value.length&&o.value.label||e.value.appearance||t.value.socialLinks);return(d,p)=>l.value?(a(),$(be,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:_(()=>[r(n).length&&r(o).label?(a(),i("div",na,[c("p",oa,w(r(o).label),1),(a(!0),i(T,null,A(r(n),v=>(a(),$(ne,{key:v.link,item:v},null,8,["item"]))),128))])):f("",!0),r(e).appearance?(a(),i("div",aa,[c("div",la,[c("p",ra,w(r(t).darkModeSwitchLabel||"Appearance"),1),c("div",ia,[h(me)])])])):f("",!0),r(t).socialLinks?(a(),i("div",ca,[c("div",ua,[h($e,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):f("",!0)]),_:1})):f("",!0)}});const _a=m(da,[["__scopeId","data-v-40855f84"]]),va=s=>(H("data-v-e5dd9c1c"),s=s(),z(),s),pa=["aria-expanded"],ha=va(()=>c("span",{class:"container"},[c("span",{class:"top"}),c("span",{class:"middle"}),c("span",{class:"bottom"})],-1)),fa=[ha],ma=g({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(s){return(e,t)=>(a(),i("button",{type:"button",class:C(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},fa,10,pa))}});const ga=m(ma,[["__scopeId","data-v-e5dd9c1c"]]),ba=["innerHTML"],$a=g({__name:"VPNavBarMenuLink",props:{item:{}},setup(s){const{page:e}=V();return(t,n)=>(a(),$(G,{class:C({VPNavBarMenuLink:!0,active:r(j)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:_(()=>[c("span",{innerHTML:t.item.text},null,8,ba)]),_:1},8,["class","href","target","rel"]))}});const ka=m($a,[["__scopeId","data-v-42ef59de"]]),ya=g({__name:"VPNavBarMenuGroup",props:{item:{}},setup(s){const e=s,{page:t}=V(),n=l=>"link"in l?j(t.value.relativePath,l.link,!!e.item.activeMatch):l.items.some(n),o=P(()=>n(e.item));return(l,d)=>(a(),$(be,{class:C({VPNavBarMenuGroup:!0,active:r(j)(r(t).relativePath,l.item.activeMatch,!!l.item.activeMatch)||o.value}),button:l.item.text,items:l.item.items},null,8,["class","button","items"]))}}),Pa=s=>(H("data-v-7f418b0f"),s=s(),z(),s),Va={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},wa=Pa(()=>c("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),La=g({__name:"VPNavBarMenu",setup(s){const{theme:e}=V();return(t,n)=>r(e).nav?(a(),i("nav",Va,[wa,(a(!0),i(T,null,A(r(e).nav,o=>(a(),i(T,{key:o.text},["link"in o?(a(),$(ka,{key:0,item:o},null,8,["item"])):(a(),$(ya,{key:1,item:o},null,8,["item"]))],64))),128))])):f("",!0)}});const Sa=m(La,[["__scopeId","data-v-7f418b0f"]]);const Ma={type:"button",class:"DocSearch DocSearch-Button","aria-label":"Search"},Ia={class:"DocSearch-Button-Container"},Na=c("svg",{class:"DocSearch-Search-Icon",width:"20",height:"20",viewBox:"0 0 20 20","aria-label":"search icon"},[c("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","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})],-1),Ta={class:"DocSearch-Button-Placeholder"},Ca=c("span",{class:"DocSearch-Button-Keys"},[c("kbd",{class:"DocSearch-Button-Key"}),c("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Ve=g({__name:"VPNavBarSearchButton",props:{placeholder:{}},setup(s){return(e,t)=>(a(),i("button",Ma,[c("span",Ia,[Na,c("span",Ta,w(e.placeholder),1)]),Ca]))}});const Ba={class:"VPNavBarSearch"},Aa={id:"local-search"},xa={key:1,id:"docsearch"},Ha=g({__name:"VPNavBarSearch",setup(s){const e=Ke(()=>qe(()=>import("./VPLocalSearchBox.b889f6b1.js"),["assets/chunks/VPLocalSearchBox.b889f6b1.js","assets/chunks/framework.385ac4c3.js"])),t=()=>null,{theme:n,localeIndex:o}=V(),l=N(!1),d=N(!1),p=P(()=>{var S,I,y,D,O,E,ke;const k=((S=n.value.search)==null?void 0:S.options)??n.value.algolia;return((O=(D=(y=(I=k==null?void 0:k.locales)==null?void 0:I[o.value])==null?void 0:y.translations)==null?void 0:D.button)==null?void 0:O.buttonText)||((ke=(E=k==null?void 0:k.translations)==null?void 0:E.button)==null?void 0:ke.buttonText)||"Search"});K(()=>{});function v(){l.value||(l.value=!0,setTimeout(b,16))}function b(){const k=new Event("keydown");k.key="k",k.metaKey=!0,window.dispatchEvent(k),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||b()},16)}function M(k){const S=k.target,I=S.tagName;return S.isContentEditable||I==="INPUT"||I==="SELECT"||I==="TEXTAREA"}const L=N(!1);ye("k",k=>{(k.ctrlKey||k.metaKey)&&(k.preventDefault(),L.value=!0)}),ye("/",k=>{M(k)||(k.preventDefault(),L.value=!0)});const B="local";return(k,S)=>{var I;return a(),i("div",Ba,[r(B)==="local"?(a(),i(T,{key:0},[L.value?(a(),$(r(e),{key:0,placeholder:p.value,onClose:S[0]||(S[0]=y=>L.value=!1)},null,8,["placeholder"])):f("",!0),c("div",Aa,[h(Ve,{placeholder:p.value,onClick:S[1]||(S[1]=y=>L.value=!0)},null,8,["placeholder"])])],64)):r(B)==="algolia"?(a(),i(T,{key:1},[l.value?(a(),$(r(t),{key:0,algolia:((I=r(n).search)==null?void 0:I.options)??r(n).algolia,onVnodeBeforeMount:S[2]||(S[2]=y=>d.value=!0)},null,8,["algolia"])):f("",!0),d.value?f("",!0):(a(),i("div",xa,[h(Ve,{placeholder:p.value,onClick:v},null,8,["placeholder"])]))],64)):f("",!0)])}}});const za=g({__name:"VPNavBarSocialLinks",setup(s){const{theme:e}=V();return(t,n)=>r(e).socialLinks?(a(),$($e,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}});const Da=m(za,[["__scopeId","data-v-0394ad82"]]),Ea=["href"],Fa=g({__name:"VPNavBarTitle",setup(s){const{site:e,theme:t}=V(),{hasSidebar:n}=F(),{currentLang:o}=X();return(l,d)=>(a(),i("div",{class:C(["VPNavBarTitle",{"has-sidebar":r(n)}])},[c("a",{class:"title",href:r(t).logoLink??r(Y)(r(o).link)},[u(l.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),$(ee,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):f("",!0),r(t).siteTitle?(a(),i(T,{key:1},[x(w(r(t).siteTitle),1)],64)):r(t).siteTitle===void 0?(a(),i(T,{key:2},[x(w(r(e).title),1)],64)):f("",!0),u(l.$slots,"nav-bar-title-after",{},void 0,!0)],8,Ea)],2))}});const Oa=m(Fa,[["__scopeId","data-v-86d1bed8"]]),Ga={},Ua={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ja=c("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),Ka=c("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),qa=[ja,Ka];function Ra(s,e){return a(),i("svg",Ua,qa)}const xe=m(Ga,[["render",Ra]]),Wa={class:"items"},Ya={class:"title"},Ja=g({__name:"VPNavBarTranslations",setup(s){const{theme:e}=V(),{localeLinks:t,currentLang:n}=X({correspondingLink:!0});return(o,l)=>r(t).length&&r(n).label?(a(),$(be,{key:0,class:"VPNavBarTranslations",icon:xe,label:r(e).langMenuLabel||"Change language"},{default:_(()=>[c("div",Wa,[c("p",Ya,w(r(n).label),1),(a(!0),i(T,null,A(r(t),d=>(a(),$(ne,{key:d.link,item:d},null,8,["item"]))),128))])]),_:1},8,["label"])):f("",!0)}});const Xa=m(Ja,[["__scopeId","data-v-74abcbb9"]]),Za=s=>(H("data-v-a0fd61f4"),s=s(),z(),s),Qa={class:"container"},el={class:"title"},tl={class:"content"},sl=Za(()=>c("div",{class:"curtain"},null,-1)),nl={class:"content-body"},ol=g({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(s){const{y:e}=Se(),{hasSidebar:t}=F(),{frontmatter:n}=V(),o=N({});return we(()=>{o.value={"has-sidebar":t.value,top:n.value.layout==="home"&&e.value===0}}),(l,d)=>(a(),i("div",{class:C(["VPNavBar",o.value])},[c("div",Qa,[c("div",el,[h(Oa,null,{"nav-bar-title-before":_(()=>[u(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":_(()=>[u(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),c("div",tl,[sl,c("div",nl,[u(l.$slots,"nav-bar-content-before",{},void 0,!0),h(Ha,{class:"search"}),h(Sa,{class:"menu"}),h(Xa,{class:"translations"}),h(bo,{class:"appearance"}),h(Da,{class:"social-links"}),h(_a,{class:"extra"}),u(l.$slots,"nav-bar-content-after",{},void 0,!0),h(ga,{class:"hamburger",active:l.isScreenOpen,onClick:d[0]||(d[0]=p=>l.$emit("toggle-screen"))},null,8,["active"])])])])],2))}});const al=m(ol,[["__scopeId","data-v-a0fd61f4"]]),ll={key:0,class:"VPNavScreenAppearance"},rl={class:"text"},il=g({__name:"VPNavScreenAppearance",setup(s){const{site:e,theme:t}=V();return(n,o)=>r(e).appearance?(a(),i("div",ll,[c("p",rl,w(r(t).darkModeSwitchLabel||"Appearance"),1),h(me)])):f("",!0)}});const cl=m(il,[["__scopeId","data-v-add8f686"]]),ul=g({__name:"VPNavScreenMenuLink",props:{item:{}},setup(s){const e=se("close-screen");return(t,n)=>(a(),$(G,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:_(()=>[x(w(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const dl=m(ul,[["__scopeId","data-v-05f27b2a"]]),_l={},vl={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},pl=c("path",{d:"M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z"},null,-1),hl=[pl];function fl(s,e){return a(),i("svg",vl,hl)}const ml=m(_l,[["render",fl]]),gl=g({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(s){const e=se("close-screen");return(t,n)=>(a(),$(G,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:_(()=>[x(w(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const He=m(gl,[["__scopeId","data-v-19976ae1"]]),bl={class:"VPNavScreenMenuGroupSection"},$l={key:0,class:"title"},kl=g({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),i("div",bl,[e.text?(a(),i("p",$l,w(e.text),1)):f("",!0),(a(!0),i(T,null,A(e.items,n=>(a(),$(He,{key:n.text,item:n},null,8,["item"]))),128))]))}});const yl=m(kl,[["__scopeId","data-v-8133b170"]]),Pl=["aria-controls","aria-expanded"],Vl={class:"button-text"},wl=["id"],Ll={key:1,class:"group"},Sl=g({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(s){const e=s,t=N(!1),n=P(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function o(){t.value=!t.value}return(l,d)=>(a(),i("div",{class:C(["VPNavScreenMenuGroup",{open:t.value}])},[c("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:o},[c("span",Vl,w(l.text),1),h(ml,{class:"button-icon"})],8,Pl),c("div",{id:n.value,class:"items"},[(a(!0),i(T,null,A(l.items,p=>(a(),i(T,{key:p.text},["link"in p?(a(),i("div",{key:p.text,class:"item"},[h(He,{item:p},null,8,["item"])])):(a(),i("div",Ll,[h(yl,{text:p.text,items:p.items},null,8,["text","items"])]))],64))),128))],8,wl)],2))}});const Ml=m(Sl,[["__scopeId","data-v-1ecb84e7"]]),Il={key:0,class:"VPNavScreenMenu"},Nl=g({__name:"VPNavScreenMenu",setup(s){const{theme:e}=V();return(t,n)=>r(e).nav?(a(),i("nav",Il,[(a(!0),i(T,null,A(r(e).nav,o=>(a(),i(T,{key:o.text},["link"in o?(a(),$(dl,{key:0,item:o},null,8,["item"])):(a(),$(Ml,{key:1,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):f("",!0)}}),Tl=g({__name:"VPNavScreenSocialLinks",setup(s){const{theme:e}=V();return(t,n)=>r(e).socialLinks?(a(),$($e,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):f("",!0)}}),Cl={class:"list"},Bl=g({__name:"VPNavScreenTranslations",setup(s){const{localeLinks:e,currentLang:t}=X({correspondingLink:!0}),n=N(!1);function o(){n.value=!n.value}return(l,d)=>r(e).length&&r(t).label?(a(),i("div",{key:0,class:C(["VPNavScreenTranslations",{open:n.value}])},[c("button",{class:"title",onClick:o},[h(xe,{class:"icon lang"}),x(" "+w(r(t).label)+" ",1),h(Ae,{class:"icon chevron"})]),c("ul",Cl,[(a(!0),i(T,null,A(r(e),p=>(a(),i("li",{key:p.link,class:"item"},[h(G,{class:"link",href:p.link},{default:_(()=>[x(w(p.text),1)]),_:2},1032,["href"])]))),128))])],2)):f("",!0)}});const Al=m(Bl,[["__scopeId","data-v-d72aa483"]]),xl={class:"container"},Hl=g({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(s){const e=N(null),t=Me(J?document.body:null);return(n,o)=>(a(),$(ie,{name:"fade",onEnter:o[0]||(o[0]=l=>t.value=!0),onAfterLeave:o[1]||(o[1]=l=>t.value=!1)},{default:_(()=>[n.open?(a(),i("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[c("div",xl,[u(n.$slots,"nav-screen-content-before",{},void 0,!0),h(Nl,{class:"menu"}),h(Al,{class:"translations"}),h(cl,{class:"appearance"}),h(Tl,{class:"social-links"}),u(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):f("",!0)]),_:3}))}});const zl=m(Hl,[["__scopeId","data-v-cc5739dd"]]),Dl={class:"VPNav"},El=g({__name:"VPNav",setup(s){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=Jn();return Ie("close-screen",t),(o,l)=>(a(),i("header",Dl,[h(al,{"is-screen-open":r(e),onToggleScreen:r(n)},{"nav-bar-title-before":_(()=>[u(o.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":_(()=>[u(o.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":_(()=>[u(o.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":_(()=>[u(o.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),h(zl,{open:r(e)},{"nav-screen-content-before":_(()=>[u(o.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":_(()=>[u(o.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])]))}});const Fl=m(El,[["__scopeId","data-v-7e5bc4a5"]]),Ol=s=>(H("data-v-e31bd47b"),s=s(),z(),s),Gl=["role","tabindex"],Ul=Ol(()=>c("div",{class:"indicator"},null,-1)),jl=["onKeydown"],Kl={key:1,class:"items"},ql=g({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(s){const e=s,{collapsed:t,collapsible:n,isLink:o,isActiveLink:l,hasActiveLink:d,hasChildren:p,toggle:v}=mt(P(()=>e.item)),b=P(()=>p.value?"section":"div"),M=P(()=>o.value?"a":"div"),L=P(()=>p.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),B=P(()=>o.value?void 0:"button"),k=P(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":o.value},{"is-active":l.value},{"has-active":d.value}]);function S(y){"key"in y&&y.key!=="Enter"||!e.item.link&&v()}function I(){e.item.link&&v()}return(y,D)=>{const O=R("VPSidebarItem",!0);return a(),$(U(b.value),{class:C(["VPSidebarItem",k.value])},{default:_(()=>[y.item.text?(a(),i("div",Z({key:0,class:"item",role:B.value},We(y.item.items?{click:S,keydown:S}:{},!0),{tabindex:y.item.items&&0}),[Ul,y.item.link?(a(),$(G,{key:0,tag:M.value,class:"link",href:y.item.link,rel:y.item.rel,target:y.item.target},{default:_(()=>[(a(),$(U(L.value),{class:"text",innerHTML:y.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),$(U(L.value),{key:1,class:"text",innerHTML:y.item.text},null,8,["innerHTML"])),y.item.collapsed!=null?(a(),i("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:I,onKeydown:Re(I,["enter"]),tabindex:"0"},[h(fe,{class:"caret-icon"})],40,jl)):f("",!0)],16,Gl)):f("",!0),y.item.items&&y.item.items.length?(a(),i("div",Kl,[y.depth<5?(a(!0),i(T,{key:0},A(y.item.items,E=>(a(),$(O,{key:E.text,item:E,depth:y.depth+1},null,8,["item","depth"]))),128)):f("",!0)])):f("",!0)]),_:1},8,["class"])}}});const Rl=m(ql,[["__scopeId","data-v-e31bd47b"]]),ze=s=>(H("data-v-b00e2fdd"),s=s(),z(),s),Wl=ze(()=>c("div",{class:"curtain"},null,-1)),Yl={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Jl=ze(()=>c("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),Xl=g({__name:"VPSidebar",props:{open:{type:Boolean}},setup(s){const e=s,{sidebarGroups:t,hasSidebar:n}=F(),o=N(null),l=Me(J?document.body:null);return q([e,o],()=>{var d;e.open?(l.value=!0,(d=o.value)==null||d.focus()):l.value=!1},{immediate:!0,flush:"post"}),(d,p)=>r(n)?(a(),i("aside",{key:0,class:C(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:o,onClick:p[0]||(p[0]=Ye(()=>{},["stop"]))},[Wl,c("nav",Yl,[Jl,u(d.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),i(T,null,A(r(t),v=>(a(),i("div",{key:v.text,class:"group"},[h(Rl,{item:v,depth:0},null,8,["item"])]))),128)),u(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):f("",!0)}});const Zl=m(Xl,[["__scopeId","data-v-b00e2fdd"]]),Ql=g({__name:"VPSkipLink",setup(s){const e=te(),t=N();q(()=>e.path,()=>t.value.focus());function n({target:o}){const l=document.getElementById(decodeURIComponent(o.hash).slice(1));if(l){const d=()=>{l.removeAttribute("tabindex"),l.removeEventListener("blur",d)};l.setAttribute("tabindex","-1"),l.addEventListener("blur",d),l.focus(),window.scrollTo(0,0)}}return(o,l)=>(a(),i(T,null,[c("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),c("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}});const er=m(Ql,[["__scopeId","data-v-0f60ec36"]]),tr=g({__name:"Layout",setup(s){const{isOpen:e,open:t,close:n}=F(),o=te();q(()=>o.path,n),ft(e,n);const{frontmatter:l}=V(),d=Je(),p=P(()=>!!d["home-hero-image"]);return Ie("hero-image-slot-exists",p),(v,b)=>{const M=R("Content");return r(l).layout!==!1?(a(),i("div",{key:0,class:C(["Layout",r(l).pageClass])},[u(v.$slots,"layout-top",{},void 0,!0),h(er),h(tt,{class:"backdrop",show:r(e),onClick:r(n)},null,8,["show","onClick"]),r(l).navbar!==!1?(a(),$(Fl,{key:0},{"nav-bar-title-before":_(()=>[u(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":_(()=>[u(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":_(()=>[u(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":_(()=>[u(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":_(()=>[u(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":_(()=>[u(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3})):f("",!0),h(Yn,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),h(Zl,{open:r(e)},{"sidebar-nav-before":_(()=>[u(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":_(()=>[u(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),h(Sn,null,{"page-top":_(()=>[u(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":_(()=>[u(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":_(()=>[u(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":_(()=>[u(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":_(()=>[u(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":_(()=>[u(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":_(()=>[u(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":_(()=>[u(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":_(()=>[u(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":_(()=>[u(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":_(()=>[u(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":_(()=>[u(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":_(()=>[u(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":_(()=>[u(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":_(()=>[u(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":_(()=>[u(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":_(()=>[u(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":_(()=>[u(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":_(()=>[u(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":_(()=>[u(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),h(Cn),u(v.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),$(M,{key:1}))}}});const sr=m(tr,[["__scopeId","data-v-1919c326"]]);const or={Layout:sr,enhanceApp:({app:s})=>{s.component("Badge",Ze)}};function ar(s,e){const{localeIndex:t}=V();function n(o){var k,S;const l=o.split("."),d=s&&typeof s=="object",p=d&&((S=(k=s.locales)==null?void 0:k[t.value])==null?void 0:S.translations)||null,v=d&&s.translations||null;let b=p,M=v,L=e;const B=l.pop();for(const I of l){let y=null;const D=L==null?void 0:L[I];D&&(y=L=D);const O=M==null?void 0:M[I];O&&(y=M=O);const E=b==null?void 0:b[I];E&&(y=b=E),D||(L=y),O||(M=y),E||(b=y)}return(b==null?void 0:b[B])??(M==null?void 0:M[B])??(L==null?void 0:L[B])??""}return n}export{ar as c,or as t,V as u}; diff --git a/assets/chunks/theme.c4ee4772.js b/assets/chunks/theme.c4ee4772.js deleted file mode 100644 index 167b59d2f..000000000 --- a/assets/chunks/theme.c4ee4772.js +++ /dev/null @@ -1,7 +0,0 @@ -import{d as y,o as r,c as l,r as v,n as A,a as H,t as N,_ as g,b as P,w as p,T as Ie,e as m,u as Ct,i as At,P as Bt,f as Ne,g as V,h as L,j as F,k as _,l as i,p as j,m as G,q as xt,s as Ot,v as Ht,x as Ce,y as Et,z as U,A as ie,B as Dt,C as zt,D as le,E as it,F as ee,G as ke,H as Ae,I as Be,J as Ft,K as Q,L as C,M as O,N as oe,O as h,Q as X,R as lt,S as Pe,U as pe,V as xe,W as ct,X as jt,Y as qe,Z as Gt,$ as Rt,a0 as fe,a1 as Ut,a2 as Wt,a3 as Kt,a4 as qt}from"./framework.6909765d.js";const Yt=y({__name:"VPBadge",props:{text:{},type:{}},setup(t){return(e,n)=>(r(),l("span",{class:A(["VPBadge",e.type??"tip"])},[v(e.$slots,"default",{},()=>[H(N(e.text),1)],!0)],2))}});const Jt=g(Yt,[["__scopeId","data-v-02919808"]]),Xt={key:0,class:"VPBackdrop"},Qt=y({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(t){return(e,n)=>(r(),P(Ie,{name:"fade"},{default:p(()=>[e.show?(r(),l("div",Xt)):m("",!0)]),_:1}))}});const Zt=g(Qt,[["__scopeId","data-v-c79a1216"]]),T=Ct;function en(t,e){let n,o=!1;return()=>{n&&clearTimeout(n),o?n=setTimeout(t,e):(t(),o=!0,setTimeout(()=>{o=!1},e))}}function Le(t){return/^\//.test(t)?t:`/${t}`}function se(t){if(At(t))return t.replace(Bt,"");const{site:e}=T(),{pathname:n,search:o,hash:s}=new URL(t,"http://a.com"),a=n.endsWith("/")||n.endsWith(".html")?t:t.replace(/(?:(^\.+)\/)?.*$/,`$1${n.replace(/(\.md)?$/,e.value.cleanUrls?"":".html")}${o}${s}`);return Ne(a)}function ce({removeCurrent:t=!0,correspondingLink:e=!1}={}){const{site:n,localeIndex:o,page:s,theme:a}=T(),u=V(()=>{var c,f;return{label:(c=n.value.locales[o.value])==null?void 0:c.label,link:((f=n.value.locales[o.value])==null?void 0:f.link)||(o.value==="root"?"/":`/${o.value}/`)}});return{localeLinks:V(()=>Object.entries(n.value.locales).flatMap(([c,f])=>t&&u.value.label===f.label?[]:{text:f.label,link:tn(f.link||(c==="root"?"/":`/${c}/`),a.value.i18nRouting!==!1&&e,s.value.relativePath.slice(u.value.link.length-1),!n.value.cleanUrls)})),currentLang:u}}function tn(t,e,n,o){return e?t.replace(/\/$/,"")+Le(n.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,o?".html":"")):t}const nn=t=>(j("data-v-a172abb3"),t=t(),G(),t),on={class:"NotFound"},sn={class:"code"},an={class:"title"},rn=nn(()=>_("div",{class:"divider"},null,-1)),ln={class:"quote"},cn={class:"action"},un=["href","aria-label"],dn=y({__name:"NotFound",setup(t){const{site:e,theme:n}=T(),{localeLinks:o}=ce({removeCurrent:!1}),s=L("/");return F(()=>{var u;const a=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");o.value.length&&(s.value=((u=o.value.find(({link:d})=>d.startsWith(a)))==null?void 0:u.link)||o.value[0].link)}),(a,u)=>{var d,c,f,b,$;return r(),l("div",on,[_("p",sn,N(((d=i(n).notFound)==null?void 0:d.code)??"404"),1),_("h1",an,N(((c=i(n).notFound)==null?void 0:c.title)??"PAGE NOT FOUND"),1),rn,_("blockquote",ln,N(((f=i(n).notFound)==null?void 0:f.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),_("div",cn,[_("a",{class:"link",href:i(Ne)(s.value),"aria-label":((b=i(n).notFound)==null?void 0:b.linkLabel)??"go to home"},N((($=i(n).notFound)==null?void 0:$.linkText)??"Take me home"),9,un)])])}}});const _n=g(dn,[["__scopeId","data-v-a172abb3"]]);function Oe(t){return xt()?(Ot(t),!0):!1}function R(t){return typeof t=="function"?t():i(t)}const ut=typeof window<"u",ae=()=>{},Ye=vn();function vn(){var t;return ut&&((t=window==null?void 0:window.navigator)==null?void 0:t.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent)}function pn(t,e){function n(...o){return new Promise((s,a)=>{Promise.resolve(t(()=>e.apply(this,o),{fn:e,thisArg:this,args:o})).then(s).catch(a)})}return n}const dt=t=>t();function fn(t,e={}){let n,o,s=ae;const a=d=>{clearTimeout(d),s(),s=ae};return d=>{const c=R(t),f=R(e.maxWait);return n&&a(n),c<=0||f!==void 0&&f<=0?(o&&(a(o),o=null),Promise.resolve(d())):new Promise((b,$)=>{s=e.rejectOnCancel?$:b,f&&!o&&(o=setTimeout(()=>{n&&a(n),o=null,b(d())},f)),n=setTimeout(()=>{o&&a(o),o=null,b(d())},c)})}}function hn(t=dt){const e=L(!0);function n(){e.value=!1}function o(){e.value=!0}const s=(...a)=>{e.value&&t(...a)};return{isActive:Ce(e),pause:n,resume:o,eventFilter:s}}function mn(...t){if(t.length!==1)return Ht(...t);const e=t[0];return typeof e=="function"?Ce(Et(()=>({get:e,set:ae}))):L(e)}var Je=Object.getOwnPropertySymbols,gn=Object.prototype.hasOwnProperty,yn=Object.prototype.propertyIsEnumerable,bn=(t,e)=>{var n={};for(var o in t)gn.call(t,o)&&e.indexOf(o)<0&&(n[o]=t[o]);if(t!=null&&Je)for(var o of Je(t))e.indexOf(o)<0&&yn.call(t,o)&&(n[o]=t[o]);return n};function _t(t,e,n={}){const o=n,{eventFilter:s=dt}=o,a=bn(o,["eventFilter"]);return U(t,pn(s,e),a)}var $n=Object.defineProperty,kn=Object.defineProperties,Pn=Object.getOwnPropertyDescriptors,me=Object.getOwnPropertySymbols,vt=Object.prototype.hasOwnProperty,pt=Object.prototype.propertyIsEnumerable,Xe=(t,e,n)=>e in t?$n(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,wn=(t,e)=>{for(var n in e||(e={}))vt.call(e,n)&&Xe(t,n,e[n]);if(me)for(var n of me(e))pt.call(e,n)&&Xe(t,n,e[n]);return t},Vn=(t,e)=>kn(t,Pn(e)),Sn=(t,e)=>{var n={};for(var o in t)vt.call(t,o)&&e.indexOf(o)<0&&(n[o]=t[o]);if(t!=null&&me)for(var o of me(t))e.indexOf(o)<0&&pt.call(t,o)&&(n[o]=t[o]);return n};function Fl(t,e,n={}){const o=n,{debounce:s=0,maxWait:a=void 0}=o,u=Sn(o,["debounce","maxWait"]);return _t(t,e,Vn(wn({},u),{eventFilter:fn(s,{maxWait:a})}))}var Ln=Object.defineProperty,Mn=Object.defineProperties,Tn=Object.getOwnPropertyDescriptors,ge=Object.getOwnPropertySymbols,ft=Object.prototype.hasOwnProperty,ht=Object.prototype.propertyIsEnumerable,Qe=(t,e,n)=>e in t?Ln(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,In=(t,e)=>{for(var n in e||(e={}))ft.call(e,n)&&Qe(t,n,e[n]);if(ge)for(var n of ge(e))ht.call(e,n)&&Qe(t,n,e[n]);return t},Nn=(t,e)=>Mn(t,Tn(e)),Cn=(t,e)=>{var n={};for(var o in t)ft.call(t,o)&&e.indexOf(o)<0&&(n[o]=t[o]);if(t!=null&&ge)for(var o of ge(t))e.indexOf(o)<0&&ht.call(t,o)&&(n[o]=t[o]);return n};function An(t,e,n={}){const o=n,{eventFilter:s}=o,a=Cn(o,["eventFilter"]),{eventFilter:u,pause:d,resume:c,isActive:f}=hn(s);return{stop:_t(t,e,Nn(In({},a),{eventFilter:u})),pause:d,resume:c,isActive:f}}function jl(t,e,n){let o;zt(n)?o={evaluating:n}:o=n||{};const{lazy:s=!1,evaluating:a=void 0,shallow:u=!0,onError:d=ae}=o,c=L(!s),f=u?le(e):L(e);let b=0;return ie(async $=>{if(!c.value)return;b++;const I=b;let S=!1;a&&Promise.resolve().then(()=>{a.value=!0});try{const k=await t(M=>{$(()=>{a&&(a.value=!1),S||M()})});I===b&&(f.value=k)}catch(k){d(k)}finally{a&&I===b&&(a.value=!1),S=!0}}),s?V(()=>(c.value=!0,f.value)):f}function Bn(t){var e;const n=R(t);return(e=n==null?void 0:n.$el)!=null?e:n}const K=ut?window:void 0;function re(...t){let e,n,o,s;if(typeof t[0]=="string"||Array.isArray(t[0])?([n,o,s]=t,e=K):[e,n,o,s]=t,!e)return ae;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const a=[],u=()=>{a.forEach(b=>b()),a.length=0},d=(b,$,I,S)=>(b.addEventListener($,I,S),()=>b.removeEventListener($,I,S)),c=U(()=>[Bn(e),R(s)],([b,$])=>{u(),b&&a.push(...n.flatMap(I=>o.map(S=>d(b,I,S,$))))},{immediate:!0,flush:"post"}),f=()=>{c(),u()};return Oe(f),f}function xn(t){return typeof t=="function"?t:typeof t=="string"?e=>e.key===t:Array.isArray(t)?e=>t.includes(e.key):()=>!0}function Ze(...t){let e,n,o={};t.length===3?(e=t[0],n=t[1],o=t[2]):t.length===2?typeof t[1]=="object"?(e=!0,n=t[0],o=t[1]):(e=t[0],n=t[1]):(e=!0,n=t[0]);const{target:s=K,eventName:a="keydown",passive:u=!1,dedupe:d=!1}=o,c=xn(e);return re(s,a,b=>{b.repeat&&R(d)||c(b)&&n(b)},u)}function On(){const t=L(!1);return Dt()&&F(()=>{t.value=!0}),t}function Hn(t){const e=On();return V(()=>(e.value,!!t()))}function Me(t,e={}){const{window:n=K}=e,o=Hn(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const a=L(!1),u=f=>{a.value=f.matches},d=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",u):s.removeListener(u))},c=ie(()=>{o.value&&(d(),s=n.matchMedia(R(t)),"addEventListener"in s?s.addEventListener("change",u):s.addListener(u),a.value=s.matches)});return Oe(()=>{c(),d(),s=void 0}),a}const _e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ve="__vueuse_ssr_handlers__",En=Dn();function Dn(){return ve in _e||(_e[ve]=_e[ve]||{}),_e[ve]}function zn(t,e){return En[t]||e}function Fn(t){return t==null?"any":t instanceof Set?"set":t instanceof Map?"map":t instanceof Date?"date":typeof t=="boolean"?"boolean":typeof t=="string"?"string":typeof t=="object"?"object":Number.isNaN(t)?"any":"number"}var jn=Object.defineProperty,et=Object.getOwnPropertySymbols,Gn=Object.prototype.hasOwnProperty,Rn=Object.prototype.propertyIsEnumerable,tt=(t,e,n)=>e in t?jn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,nt=(t,e)=>{for(var n in e||(e={}))Gn.call(e,n)&&tt(t,n,e[n]);if(et)for(var n of et(e))Rn.call(e,n)&&tt(t,n,e[n]);return t};const Un={boolean:{read:t=>t==="true",write:t=>String(t)},object:{read:t=>JSON.parse(t),write:t=>JSON.stringify(t)},number:{read:t=>Number.parseFloat(t),write:t=>String(t)},any:{read:t=>t,write:t=>String(t)},string:{read:t=>t,write:t=>String(t)},map:{read:t=>new Map(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t.entries()))},set:{read:t=>new Set(JSON.parse(t)),write:t=>JSON.stringify(Array.from(t))},date:{read:t=>new Date(t),write:t=>t.toISOString()}},ot="vueuse-storage";function mt(t,e,n,o={}){var s;const{flush:a="pre",deep:u=!0,listenToStorageChanges:d=!0,writeDefaults:c=!0,mergeDefaults:f=!1,shallow:b,window:$=K,eventFilter:I,onError:S=B=>{console.error(B)}}=o,k=(b?le:L)(e);if(!n)try{n=zn("getDefaultStorage",()=>{var B;return(B=K)==null?void 0:B.localStorage})()}catch(B){S(B)}if(!n)return k;const M=R(e),w=Fn(M),x=(s=o.serializer)!=null?s:Un[w],{pause:z,resume:D}=An(k,()=>ue(k.value),{flush:a,deep:u,eventFilter:I});return $&&d&&(re($,"storage",Ve),re($,ot,Nt)),Ve(),k;function ue(B){try{if(B==null)n.removeItem(t);else{const E=x.write(B),Y=n.getItem(t);Y!==E&&(n.setItem(t,E),$&&$.dispatchEvent(new CustomEvent(ot,{detail:{key:t,oldValue:Y,newValue:E,storageArea:n}})))}}catch(E){S(E)}}function de(B){const E=B?B.newValue:n.getItem(t);if(E==null)return c&&M!==null&&n.setItem(t,x.write(M)),M;if(!B&&f){const Y=x.read(E);return typeof f=="function"?f(Y,M):w==="object"&&!Array.isArray(Y)?nt(nt({},M),Y):Y}else return typeof E!="string"?E:x.read(E)}function Nt(B){Ve(B.detail)}function Ve(B){if(!(B&&B.storageArea!==n)){if(B&&B.key==null){k.value=M;return}if(!(B&&B.key!==t)){z();try{k.value=de(B)}catch(E){S(E)}finally{B?it(D):D()}}}}}function Gl(t,e,n={}){const{window:o=K}=n;return mt(t,e,o==null?void 0:o.localStorage,n)}function gt(t){const e=window.getComputedStyle(t);if(e.overflowX==="scroll"||e.overflowY==="scroll"||e.overflowX==="auto"&&t.clientWidth1?!0:(e.preventDefault&&e.preventDefault(),!1)}function Rl(t,e=!1){const n=L(e);let o=null,s;U(mn(t),d=>{if(d){const c=d;s=c.style.overflow,n.value&&(c.style.overflow="hidden")}},{immediate:!0});const a=()=>{const d=R(t);!d||n.value||(Ye&&(o=re(d,"touchmove",c=>{Wn(c)},{passive:!1})),d.style.overflow="hidden",n.value=!0)},u=()=>{const d=R(t);!d||!n.value||(Ye&&(o==null||o()),d.style.overflow=s,n.value=!1)};return Oe(u),V({get(){return n.value},set(d){d?a():u()}})}function Ul(t,e,n={}){const{window:o=K}=n;return mt(t,e,o==null?void 0:o.sessionStorage,n)}function yt({window:t=K}={}){if(!t)return{x:L(0),y:L(0)};const e=L(t.scrollX),n=L(t.scrollY);return re(t,"scroll",()=>{e.value=t.scrollX,n.value=t.scrollY},{capture:!1,passive:!0}),{x:e,y:n}}function bt(t,e){if(Array.isArray(t))return he(t);if(t==null)return[];e=Le(e);const n=Object.keys(t).sort((s,a)=>a.split("/").length-s.split("/").length).find(s=>e.startsWith(Le(s))),o=n?t[n]:[];return Array.isArray(o)?he(o):he(o.items,o.base)}function Kn(t){const e=[];let n=0;for(const o in t){const s=t[o];if(s.items){n=e.push(s);continue}e[n]||e.push({items:[]}),e[n].items.push(s)}return e}function qn(t){const e=[];function n(o){for(const s of o)s.text&&s.link&&e.push({text:s.text,link:s.link,docFooterText:s.docFooterText}),s.items&&n(s.items)}return n(t),e}function Te(t,e){return Array.isArray(e)?e.some(n=>Te(t,n)):ee(t,e.link)?!0:e.items?Te(t,e.items):!1}function he(t,e){return[...t].map(n=>{const o={...n},s=o.base||e;return s&&o.link&&(o.link=s+o.link),o.items&&(o.items=he(o.items,s)),o})}function W(){const{frontmatter:t,page:e,theme:n}=T(),o=Me("(min-width: 960px)"),s=L(!1),a=V(()=>{const k=n.value.sidebar,M=e.value.relativePath;return k?bt(k,M):[]}),u=V(()=>t.value.sidebar!==!1&&a.value.length>0&&t.value.layout!=="home"),d=V(()=>c?t.value.aside==null?n.value.aside==="left":t.value.aside==="left":!1),c=V(()=>t.value.layout==="home"?!1:t.value.aside!=null?!!t.value.aside:n.value.aside!==!1),f=V(()=>u.value&&o.value),b=V(()=>u.value?Kn(a.value):[]);function $(){s.value=!0}function I(){s.value=!1}function S(){s.value?I():$()}return{isOpen:s,sidebar:a,sidebarGroups:b,hasSidebar:u,hasAside:c,leftAside:d,isSidebarEnabled:f,open:$,close:I,toggle:S}}function Yn(t,e){let n;ie(()=>{n=t.value?document.activeElement:void 0}),F(()=>{window.addEventListener("keyup",o)}),Ae(()=>{window.removeEventListener("keyup",o)});function o(s){s.key==="Escape"&&t.value&&(e(),n==null||n.focus())}}const $t=L(ke?location.hash:"");ke&&window.addEventListener("hashchange",()=>{$t.value=location.hash});function Jn(t){const{page:e}=T(),n=L(!1),o=V(()=>t.value.collapsed!=null),s=V(()=>!!t.value.link),a=L(!1),u=()=>{a.value=ee(e.value.relativePath,t.value.link)};U([e,t,$t],u),F(u);const d=V(()=>a.value?!0:t.value.items?Te(e.value.relativePath,t.value.items):!1),c=V(()=>!!(t.value.items&&t.value.items.length));ie(()=>{n.value=!!(o.value&&t.value.collapsed)}),Be(()=>{(a.value||d.value)&&(n.value=!1)});function f(){o.value&&(n.value=!n.value)}return{collapsed:n,collapsible:o,isLink:s,isActiveLink:a,hasActiveLink:d,hasChildren:c,toggle:f}}function Xn(){const{hasSidebar:t}=W(),e=Me("(min-width: 960px)"),n=Me("(min-width: 1280px)");return{isAsideEnabled:V(()=>!n.value&&!e.value?!1:t.value?n.value:e.value)}}const Qn=71;function He(t){return typeof t.outline=="object"&&!Array.isArray(t.outline)&&t.outline.label||t.outlineTitle||"On this page"}function Ee(t){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(n=>n.id&&n.hasChildNodes()).map(n=>{const o=Number(n.tagName[1]);return{title:Zn(n),link:"#"+n.id,level:o}});return eo(e,t)}function Zn(t){let e="";for(const n of t.childNodes)if(n.nodeType===1){if(n.classList.contains("VPBadge")||n.classList.contains("header-anchor"))continue;e+=n.textContent}else n.nodeType===3&&(e+=n.textContent);return e.trim()}function eo(t,e){if(e===!1)return[];const n=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[o,s]=typeof n=="number"?[n,n]:n==="deep"?[2,6]:n;t=t.filter(u=>u.level>=o&&u.level<=s);const a=[];e:for(let u=0;u=0;c--){const f=t[c];if(f.level{requestAnimationFrame(a),window.addEventListener("scroll",o)}),Ft(()=>{u(location.hash)}),Ae(()=>{window.removeEventListener("scroll",o)});function a(){if(!n.value)return;const d=[].slice.call(t.value.querySelectorAll(".outline-link")),c=[].slice.call(document.querySelectorAll(".content .header-anchor")).filter(S=>d.some(k=>k.hash===S.hash&&S.offsetParent!==null)),f=window.scrollY,b=window.innerHeight,$=document.body.offsetHeight,I=Math.abs(f+b-$)<1;if(c.length&&I){u(c[c.length-1].hash);return}for(let S=0;S{const s=Q("VPDocOutlineItem",!0);return r(),l("ul",{class:A(n.root?"root":"nested")},[(r(!0),l(C,null,O(n.headers,({children:a,link:u,title:d})=>(r(),l("li",null,[_("a",{class:"outline-link",href:u,onClick:e,title:d},N(d),9,oo),a!=null&&a.length?(r(),P(s,{key:0,headers:a},null,8,["headers"])):m("",!0)]))),256))],2)}}});const De=g(so,[["__scopeId","data-v-d0ee3533"]]),ao=t=>(j("data-v-ff0f39c8"),t=t(),G(),t),ro={class:"content"},io={class:"outline-title"},lo={"aria-labelledby":"doc-outline-aria-label"},co=ao(()=>_("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),uo=y({__name:"VPDocAsideOutline",setup(t){const{frontmatter:e,theme:n}=T(),o=le([]);oe(()=>{o.value=Ee(e.value.outline??n.value.outline)});const s=L(),a=L();return to(s,a),(u,d)=>(r(),l("div",{class:A(["VPDocAsideOutline",{"has-outline":o.value.length>0}]),ref_key:"container",ref:s},[_("div",ro,[_("div",{class:"outline-marker",ref_key:"marker",ref:a},null,512),_("div",io,N(i(He)(i(n))),1),_("nav",lo,[co,h(De,{headers:o.value,root:!0},null,8,["headers"])])])],2))}});const _o=g(uo,[["__scopeId","data-v-ff0f39c8"]]),vo={class:"VPDocAsideCarbonAds"},po=y({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(t){const e=()=>null;return(n,o)=>(r(),l("div",vo,[h(i(e),{"carbon-ads":n.carbonAds},null,8,["carbon-ads"])]))}}),fo=t=>(j("data-v-3f215769"),t=t(),G(),t),ho={class:"VPDocAside"},mo=fo(()=>_("div",{class:"spacer"},null,-1)),go=y({__name:"VPDocAside",setup(t){const{theme:e}=T();return(n,o)=>(r(),l("div",ho,[v(n.$slots,"aside-top",{},void 0,!0),v(n.$slots,"aside-outline-before",{},void 0,!0),h(_o),v(n.$slots,"aside-outline-after",{},void 0,!0),mo,v(n.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(r(),P(po,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):m("",!0),v(n.$slots,"aside-ads-after",{},void 0,!0),v(n.$slots,"aside-bottom",{},void 0,!0)]))}});const yo=g(go,[["__scopeId","data-v-3f215769"]]);function bo(){const{theme:t,page:e}=T();return V(()=>{const{text:n="Edit this page",pattern:o=""}=t.value.editLink||{};let s;return typeof o=="function"?s=o(e.value):s=o.replace(/:path/g,e.value.filePath),{url:s,text:n}})}function $o(){const{page:t,theme:e,frontmatter:n}=T();return V(()=>{var c,f,b,$,I,S,k,M;const o=bt(e.value.sidebar,t.value.relativePath),s=qn(o),a=s.findIndex(w=>ee(t.value.relativePath,w.link)),u=((c=e.value.docFooter)==null?void 0:c.prev)===!1&&!n.value.prev||n.value.prev===!1,d=((f=e.value.docFooter)==null?void 0:f.next)===!1&&!n.value.next||n.value.next===!1;return{prev:u?void 0:{text:(typeof n.value.prev=="string"?n.value.prev:typeof n.value.prev=="object"?n.value.prev.text:void 0)??((b=s[a-1])==null?void 0:b.docFooterText)??(($=s[a-1])==null?void 0:$.text),link:(typeof n.value.prev=="object"?n.value.prev.link:void 0)??((I=s[a-1])==null?void 0:I.link)},next:d?void 0:{text:(typeof n.value.next=="string"?n.value.next:typeof n.value.next=="object"?n.value.next.text:void 0)??((S=s[a+1])==null?void 0:S.docFooterText)??((k=s[a+1])==null?void 0:k.text),link:(typeof n.value.next=="object"?n.value.next.link:void 0)??((M=s[a+1])==null?void 0:M.link)}}})}const ko={},Po={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},wo=_("path",{d:"M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"},null,-1),Vo=_("path",{d:"M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"},null,-1),So=[wo,Vo];function Lo(t,e){return r(),l("svg",Po,So)}const Mo=g(ko,[["render",Lo]]),q=y({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(t){const e=t,n=V(()=>e.tag??(e.href?"a":"span")),o=V(()=>e.href&<.test(e.href));return(s,a)=>(r(),P(X(n.value),{class:A(["VPLink",{link:s.href,"vp-external-link-icon":o.value,"no-icon":s.noIcon}]),href:s.href?i(se)(s.href):void 0,target:s.target??(o.value?"_blank":void 0),rel:s.rel??(o.value?"noreferrer":void 0)},{default:p(()=>[v(s.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),To={class:"VPLastUpdated"},Io=["datetime"],No=y({__name:"VPDocFooterLastUpdated",setup(t){const{theme:e,page:n}=T(),o=V(()=>new Date(n.value.lastUpdated)),s=V(()=>o.value.toISOString()),a=L("");return F(()=>{ie(()=>{var u;a.value=new Intl.DateTimeFormat(void 0,((u=e.value.lastUpdated)==null?void 0:u.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(o.value)})}),(u,d)=>{var c;return r(),l("p",To,[H(N(((c=i(e).lastUpdated)==null?void 0:c.text)||i(e).lastUpdatedText||"Last updated")+": ",1),_("time",{datetime:s.value},N(a.value),9,Io)])}}});const Co=g(No,[["__scopeId","data-v-149a99df"]]),Ao={key:0,class:"VPDocFooter"},Bo={key:0,class:"edit-info"},xo={key:0,class:"edit-link"},Oo={key:1,class:"last-updated"},Ho={key:1,class:"prev-next"},Eo={class:"pager"},Do=["href"],zo=["innerHTML"],Fo=["innerHTML"],jo={class:"pager"},Go=["href"],Ro=["innerHTML"],Uo=["innerHTML"],Wo=y({__name:"VPDocFooter",setup(t){const{theme:e,page:n,frontmatter:o}=T(),s=bo(),a=$o(),u=V(()=>e.value.editLink&&o.value.editLink!==!1),d=V(()=>n.value.lastUpdated&&o.value.lastUpdated!==!1),c=V(()=>u.value||d.value||a.value.prev||a.value.next);return(f,b)=>{var $,I,S,k,M,w;return c.value?(r(),l("footer",Ao,[v(f.$slots,"doc-footer-before",{},void 0,!0),u.value||d.value?(r(),l("div",Bo,[u.value?(r(),l("div",xo,[h(q,{class:"edit-link-button",href:i(s).url,"no-icon":!0},{default:p(()=>[h(Mo,{class:"edit-link-icon","aria-label":"edit icon"}),H(" "+N(i(s).text),1)]),_:1},8,["href"])])):m("",!0),d.value?(r(),l("div",Oo,[h(Co)])):m("",!0)])):m("",!0),($=i(a).prev)!=null&&$.link||(I=i(a).next)!=null&&I.link?(r(),l("nav",Ho,[_("div",Eo,[(S=i(a).prev)!=null&&S.link?(r(),l("a",{key:0,class:"pager-link prev",href:i(se)(i(a).prev.link)},[_("span",{class:"desc",innerHTML:((k=i(e).docFooter)==null?void 0:k.prev)||"Previous page"},null,8,zo),_("span",{class:"title",innerHTML:i(a).prev.text},null,8,Fo)],8,Do)):m("",!0)]),_("div",jo,[(M=i(a).next)!=null&&M.link?(r(),l("a",{key:0,class:"pager-link next",href:i(se)(i(a).next.link)},[_("span",{class:"desc",innerHTML:((w=i(e).docFooter)==null?void 0:w.next)||"Next page"},null,8,Ro),_("span",{class:"title",innerHTML:i(a).next.text},null,8,Uo)],8,Go)):m("",!0)])])):m("",!0)])):m("",!0)}}});const Ko=g(Wo,[["__scopeId","data-v-37656e44"]]),qo={},Yo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Jo=_("path",{d:"M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"},null,-1),Xo=[Jo];function Qo(t,e){return r(),l("svg",Yo,Xo)}const ze=g(qo,[["render",Qo]]),Zo={key:0,class:"VPDocOutlineDropdown"},es={key:0,class:"items"},ts=y({__name:"VPDocOutlineDropdown",setup(t){const{frontmatter:e,theme:n}=T(),o=L(!1);oe(()=>{o.value=!1});const s=le([]);return oe(()=>{s.value=Ee(e.value.outline??n.value.outline)}),(a,u)=>s.value.length>0?(r(),l("div",Zo,[_("button",{onClick:u[0]||(u[0]=d=>o.value=!o.value),class:A({open:o.value})},[H(N(i(He)(i(n)))+" ",1),h(ze,{class:"icon"})],2),o.value?(r(),l("div",es,[h(De,{headers:s.value},null,8,["headers"])])):m("",!0)])):m("",!0)}});const ns=g(ts,[["__scopeId","data-v-0c1fc463"]]),os=t=>(j("data-v-6b87e69f"),t=t(),G(),t),ss={class:"container"},as=os(()=>_("div",{class:"aside-curtain"},null,-1)),rs={class:"aside-container"},is={class:"aside-content"},ls={class:"content"},cs={class:"content-container"},us={class:"main"},ds=y({__name:"VPDoc",setup(t){const{theme:e}=T(),n=Pe(),{hasSidebar:o,hasAside:s,leftAside:a}=W(),u=V(()=>n.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,c)=>{const f=Q("Content");return r(),l("div",{class:A(["VPDoc",{"has-sidebar":i(o),"has-aside":i(s)}])},[v(d.$slots,"doc-top",{},void 0,!0),_("div",ss,[i(s)?(r(),l("div",{key:0,class:A(["aside",{"left-aside":i(a)}])},[as,_("div",rs,[_("div",is,[h(yo,null,{"aside-top":p(()=>[v(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[v(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[v(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[v(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[v(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[v(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):m("",!0),_("div",ls,[_("div",cs,[v(d.$slots,"doc-before",{},void 0,!0),h(ns),_("main",us,[h(f,{class:A(["vp-doc",[u.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),h(Ko,null,{"doc-footer-before":p(()=>[v(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),v(d.$slots,"doc-after",{},void 0,!0)])])]),v(d.$slots,"doc-bottom",{},void 0,!0)],2)}}});const _s=g(ds,[["__scopeId","data-v-6b87e69f"]]),vs=y({__name:"VPButton",props:{tag:{},size:{},theme:{},text:{},href:{}},setup(t){const e=t,n=V(()=>[e.size??"medium",e.theme??"brand"]),o=V(()=>e.href&<.test(e.href)),s=V(()=>e.tag?e.tag:e.href?"a":"button");return(a,u)=>(r(),P(X(s.value),{class:A(["VPButton",n.value]),href:a.href?i(se)(a.href):void 0,target:o.value?"_blank":void 0,rel:o.value?"noreferrer":void 0},{default:p(()=>[H(N(a.text),1)]),_:1},8,["class","href","target","rel"]))}});const ps=g(vs,[["__scopeId","data-v-567ba664"]]),fs=["src","alt"],hs=y({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(t){return(e,n)=>{const o=Q("VPImage",!0);return e.image?(r(),l(C,{key:0},[typeof e.image=="string"||"src"in e.image?(r(),l("img",pe({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(Ne)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,fs)):(r(),l(C,{key:1},[h(o,pe({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),h(o,pe({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):m("",!0)}}});const Fe=g(hs,[["__scopeId","data-v-8426fc1a"]]),ms=t=>(j("data-v-da5d1713"),t=t(),G(),t),gs={class:"container"},ys={class:"main"},bs={key:0,class:"name"},$s=["innerHTML"],ks=["innerHTML"],Ps=["innerHTML"],ws={key:0,class:"actions"},Vs={key:0,class:"image"},Ss={class:"image-container"},Ls=ms(()=>_("div",{class:"image-bg"},null,-1)),Ms=y({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(t){const e=xe("hero-image-slot-exists");return(n,o)=>(r(),l("div",{class:A(["VPHero",{"has-image":n.image||i(e)}])},[_("div",gs,[_("div",ys,[v(n.$slots,"home-hero-info",{},()=>[n.name?(r(),l("h1",bs,[_("span",{innerHTML:n.name,class:"clip"},null,8,$s)])):m("",!0),n.text?(r(),l("p",{key:1,innerHTML:n.text,class:"text"},null,8,ks)):m("",!0),n.tagline?(r(),l("p",{key:2,innerHTML:n.tagline,class:"tagline"},null,8,Ps)):m("",!0)],!0),n.actions?(r(),l("div",ws,[(r(!0),l(C,null,O(n.actions,s=>(r(),l("div",{key:s.link,class:"action"},[h(ps,{tag:"a",size:"medium",theme:s.theme,text:s.text,href:s.link},null,8,["theme","text","href"])]))),128))])):m("",!0)]),n.image||i(e)?(r(),l("div",Vs,[_("div",Ss,[Ls,v(n.$slots,"home-hero-image",{},()=>[n.image?(r(),P(Fe,{key:0,class:"image-src",image:n.image},null,8,["image"])):m("",!0)],!0)])])):m("",!0)])],2))}});const Ts=g(Ms,[["__scopeId","data-v-da5d1713"]]),Is=y({__name:"VPHomeHero",setup(t){const{frontmatter:e}=T();return(n,o)=>i(e).hero?(r(),P(Ts,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info":p(()=>[v(n.$slots,"home-hero-info")]),"home-hero-image":p(()=>[v(n.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):m("",!0)}}),Ns={},Cs={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},As=_("path",{d:"M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"},null,-1),Bs=[As];function xs(t,e){return r(),l("svg",Cs,Bs)}const Os=g(Ns,[["render",xs]]),Hs={class:"box"},Es=["innerHTML"],Ds=["innerHTML"],zs=["innerHTML"],Fs={key:3,class:"link-text"},js={class:"link-text-value"},Gs=y({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{}},setup(t){return(e,n)=>(r(),P(q,{class:"VPFeature",href:e.link,rel:e.rel,"no-icon":!0,tag:e.link?"a":"div"},{default:p(()=>[_("article",Hs,[typeof e.icon=="object"?(r(),P(Fe,{key:0,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(r(),l("div",{key:1,class:"icon",innerHTML:e.icon},null,8,Es)):m("",!0),_("h2",{class:"title",innerHTML:e.title},null,8,Ds),e.details?(r(),l("p",{key:2,class:"details",innerHTML:e.details},null,8,zs)):m("",!0),e.linkText?(r(),l("div",Fs,[_("p",js,[H(N(e.linkText)+" ",1),h(Os,{class:"link-text-icon"})])])):m("",!0)])]),_:1},8,["href","rel","tag"]))}});const Rs=g(Gs,[["__scopeId","data-v-33086751"]]),Us={key:0,class:"VPFeatures"},Ws={class:"container"},Ks={class:"items"},qs=y({__name:"VPFeatures",props:{features:{}},setup(t){const e=t,n=V(()=>{const o=e.features.length;if(o){if(o===2)return"grid-2";if(o===3)return"grid-3";if(o%3===0)return"grid-6";if(o>3)return"grid-4"}else return});return(o,s)=>o.features?(r(),l("div",Us,[_("div",Ws,[_("div",Ks,[(r(!0),l(C,null,O(o.features,a=>(r(),l("div",{key:a.title,class:A(["item",[n.value]])},[h(Rs,{icon:a.icon,title:a.title,details:a.details,link:a.link,"link-text":a.linkText,rel:a.rel},null,8,["icon","title","details","link","link-text","rel"])],2))),128))])])])):m("",!0)}});const Ys=g(qs,[["__scopeId","data-v-39646fad"]]),Js=y({__name:"VPHomeFeatures",setup(t){const{frontmatter:e}=T();return(n,o)=>i(e).features?(r(),P(Ys,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):m("",!0)}}),Xs={class:"VPHome"},Qs=y({__name:"VPHome",setup(t){return(e,n)=>{const o=Q("Content");return r(),l("div",Xs,[v(e.$slots,"home-hero-before",{},void 0,!0),h(Is,null,{"home-hero-info":p(()=>[v(e.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":p(()=>[v(e.$slots,"home-hero-image",{},void 0,!0)]),_:3}),v(e.$slots,"home-hero-after",{},void 0,!0),v(e.$slots,"home-features-before",{},void 0,!0),h(Js),v(e.$slots,"home-features-after",{},void 0,!0),h(o)])}}});const Zs=g(Qs,[["__scopeId","data-v-d82743a8"]]),ea={},ta={class:"VPPage"};function na(t,e){const n=Q("Content");return r(),l("div",ta,[v(t.$slots,"page-top"),h(n),v(t.$slots,"page-bottom")])}const oa=g(ea,[["render",na]]),sa=y({__name:"VPContent",setup(t){const{page:e,frontmatter:n}=T(),{hasSidebar:o}=W();return(s,a)=>(r(),l("div",{class:A(["VPContent",{"has-sidebar":i(o),"is-home":i(n).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?v(s.$slots,"not-found",{key:0},()=>[h(_n)],!0):i(n).layout==="page"?(r(),P(oa,{key:1},{"page-top":p(()=>[v(s.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[v(s.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(n).layout==="home"?(r(),P(Zs,{key:2},{"home-hero-before":p(()=>[v(s.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":p(()=>[v(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":p(()=>[v(s.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[v(s.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[v(s.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[v(s.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(n).layout&&i(n).layout!=="doc"?(r(),P(X(i(n).layout),{key:3})):(r(),P(_s,{key:4},{"doc-top":p(()=>[v(s.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[v(s.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":p(()=>[v(s.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[v(s.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[v(s.$slots,"doc-after",{},void 0,!0)]),"aside-top":p(()=>[v(s.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":p(()=>[v(s.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[v(s.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[v(s.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[v(s.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":p(()=>[v(s.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}});const aa=g(sa,[["__scopeId","data-v-669faec9"]]),ra={class:"container"},ia=["innerHTML"],la=["innerHTML"],ca=y({__name:"VPFooter",setup(t){const{theme:e,frontmatter:n}=T(),{hasSidebar:o}=W();return(s,a)=>i(e).footer&&i(n).footer!==!1?(r(),l("footer",{key:0,class:A(["VPFooter",{"has-sidebar":i(o)}])},[_("div",ra,[i(e).footer.message?(r(),l("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,ia)):m("",!0),i(e).footer.copyright?(r(),l("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,la)):m("",!0)])],2)):m("",!0)}});const ua=g(ca,[["__scopeId","data-v-e03eb2e1"]]),da={class:"header"},_a={class:"outline"},va=y({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(t){const e=t,{theme:n}=T(),o=L(!1),s=L(0),a=L();oe(()=>{o.value=!1});function u(){o.value=!o.value,s.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function d(f){f.target.classList.contains("outline-link")&&(a.value&&(a.value.style.transition="none"),it(()=>{o.value=!1}))}function c(){o.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(f,b)=>(r(),l("div",{class:"VPLocalNavOutlineDropdown",style:ct({"--vp-vh":s.value+"px"})},[f.headers.length>0?(r(),l("button",{key:0,onClick:u,class:A({open:o.value})},[H(N(i(He)(i(n)))+" ",1),h(ze,{class:"icon"})],2)):(r(),l("button",{key:1,onClick:c},N(i(n).returnToTopLabel||"Return to top"),1)),h(Ie,{name:"flyout"},{default:p(()=>[o.value?(r(),l("div",{key:0,ref_key:"items",ref:a,class:"items",onClick:d},[_("div",da,[_("a",{class:"top-link",href:"#",onClick:c},N(i(n).returnToTopLabel||"Return to top"),1)]),_("div",_a,[h(De,{headers:f.headers},null,8,["headers"])])],512)):m("",!0)]),_:1})],4))}});const pa=g(va,[["__scopeId","data-v-18201f51"]]),fa={},ha={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ma=_("path",{d:"M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"},null,-1),ga=_("path",{d:"M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"},null,-1),ya=_("path",{d:"M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"},null,-1),ba=_("path",{d:"M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"},null,-1),$a=[ma,ga,ya,ba];function ka(t,e){return r(),l("svg",ha,$a)}const Pa=g(fa,[["render",ka]]),wa=["aria-expanded"],Va={class:"menu-text"},Sa=y({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(t){const{theme:e,frontmatter:n}=T(),{hasSidebar:o}=W(),{y:s}=yt(),a=le([]),u=L(0);F(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),oe(()=>{a.value=Ee(n.value.outline??e.value.outline)});const d=V(()=>a.value.length===0&&!o.value),c=V(()=>({VPLocalNav:!0,fixed:d.value,"reached-top":s.value>=u.value}));return(f,b)=>i(n).layout!=="home"&&(!d.value||i(s)>=u.value)?(r(),l("div",{key:0,class:A(c.value)},[i(o)?(r(),l("button",{key:0,class:"menu","aria-expanded":f.open,"aria-controls":"VPSidebarNav",onClick:b[0]||(b[0]=$=>f.$emit("open-menu"))},[h(Pa,{class:"menu-icon"}),_("span",Va,N(i(e).sidebarMenuLabel||"Menu"),1)],8,wa)):m("",!0),h(pa,{headers:a.value,navHeight:u.value},null,8,["headers","navHeight"])],2)):m("",!0)}});const La=g(Sa,[["__scopeId","data-v-5cfd5582"]]);function Ma(){const t=L(!1);function e(){t.value=!0,window.addEventListener("resize",s)}function n(){t.value=!1,window.removeEventListener("resize",s)}function o(){t.value?n():e()}function s(){window.outerWidth>=768&&n()}const a=Pe();return U(()=>a.path,n),{isScreenOpen:t,openScreen:e,closeScreen:n,toggleScreen:o}}const Ta={},Ia={class:"VPSwitch",type:"button",role:"switch"},Na={class:"check"},Ca={key:0,class:"icon"};function Aa(t,e){return r(),l("button",Ia,[_("span",Na,[t.$slots.default?(r(),l("span",Ca,[v(t.$slots,"default",{},void 0,!0)])):m("",!0)])])}const Ba=g(Ta,[["render",Aa],["__scopeId","data-v-f3c41672"]]),xa={},Oa={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ha=jt('',9),Ea=[Ha];function Da(t,e){return r(),l("svg",Oa,Ea)}const za=g(xa,[["render",Da]]),Fa={},ja={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ga=_("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),Ra=[Ga];function Ua(t,e){return r(),l("svg",ja,Ra)}const Wa=g(Fa,[["render",Ua]]),Ka=y({__name:"VPSwitchAppearance",setup(t){const{site:e,isDark:n}=T(),o=L(!1),s=ke?a():()=>{};F(()=>{o.value=document.documentElement.classList.contains("dark")});function a(){const u=window.matchMedia("(prefers-color-scheme: dark)"),d=document.documentElement.classList;let c=localStorage.getItem(qe),f=e.value.appearance==="dark"&&c==null||(c==="auto"||c==null?u.matches:c==="dark");u.onchange=I=>{c==="auto"&&$(f=I.matches)};function b(){$(f=!f),c=f?u.matches?"auto":"dark":u.matches?"light":"auto",localStorage.setItem(qe,c)}function $(I){const S=document.createElement("style");S.type="text/css",S.appendChild(document.createTextNode(`:not(.VPSwitchAppearance):not(.VPSwitchAppearance *) { - -webkit-transition: none !important; - -moz-transition: none !important; - -o-transition: none !important; - -ms-transition: none !important; - transition: none !important; -}`)),document.head.appendChild(S),o.value=I,d[I?"add":"remove"]("dark"),window.getComputedStyle(S).opacity,document.head.removeChild(S)}return b}return U(o,u=>{n.value=u}),(u,d)=>(r(),P(Ba,{title:"toggle dark mode",class:"VPSwitchAppearance","aria-checked":o.value,onClick:i(s)},{default:p(()=>[h(za,{class:"sun"}),h(Wa,{class:"moon"})]),_:1},8,["aria-checked","onClick"]))}});const je=g(Ka,[["__scopeId","data-v-82b282f1"]]),qa={key:0,class:"VPNavBarAppearance"},Ya=y({__name:"VPNavBarAppearance",setup(t){const{site:e}=T();return(n,o)=>i(e).appearance?(r(),l("div",qa,[h(je)])):m("",!0)}});const Ja=g(Ya,[["__scopeId","data-v-f6a63727"]]),Ge=L();let kt=!1,Se=0;function Xa(t){const e=L(!1);if(ke){!kt&&Qa(),Se++;const n=U(Ge,o=>{var s,a,u;o===t.el.value||(s=t.el.value)!=null&&s.contains(o)?(e.value=!0,(a=t.onFocus)==null||a.call(t)):(e.value=!1,(u=t.onBlur)==null||u.call(t))});Ae(()=>{n(),Se--,Se||Za()})}return Ce(e)}function Qa(){document.addEventListener("focusin",Pt),kt=!0,Ge.value=document.activeElement}function Za(){document.removeEventListener("focusin",Pt)}function Pt(){Ge.value=document.activeElement}const er={},tr={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},nr=_("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),or=[nr];function sr(t,e){return r(),l("svg",tr,or)}const wt=g(er,[["render",sr]]),ar={},rr={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},ir=_("circle",{cx:"12",cy:"12",r:"2"},null,-1),lr=_("circle",{cx:"19",cy:"12",r:"2"},null,-1),cr=_("circle",{cx:"5",cy:"12",r:"2"},null,-1),ur=[ir,lr,cr];function dr(t,e){return r(),l("svg",rr,ur)}const _r=g(ar,[["render",dr]]),vr={class:"VPMenuLink"},pr=y({__name:"VPMenuLink",props:{item:{}},setup(t){const{page:e}=T();return(n,o)=>(r(),l("div",vr,[h(q,{class:A({active:i(ee)(i(e).relativePath,n.item.activeMatch||n.item.link,!!n.item.activeMatch)}),href:n.item.link,target:n.item.target,rel:n.item.rel},{default:p(()=>[H(N(n.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const we=g(pr,[["__scopeId","data-v-2f2cfafc"]]),fr={class:"VPMenuGroup"},hr={key:0,class:"title"},mr=y({__name:"VPMenuGroup",props:{text:{},items:{}},setup(t){return(e,n)=>(r(),l("div",fr,[e.text?(r(),l("p",hr,N(e.text),1)):m("",!0),(r(!0),l(C,null,O(e.items,o=>(r(),l(C,null,["link"in o?(r(),P(we,{key:0,item:o},null,8,["item"])):m("",!0)],64))),256))]))}});const gr=g(mr,[["__scopeId","data-v-69e747b5"]]),yr={class:"VPMenu"},br={key:0,class:"items"},$r=y({__name:"VPMenu",props:{items:{}},setup(t){return(e,n)=>(r(),l("div",yr,[e.items?(r(),l("div",br,[(r(!0),l(C,null,O(e.items,o=>(r(),l(C,{key:o.text},["link"in o?(r(),P(we,{key:0,item:o},null,8,["item"])):(r(),P(gr,{key:1,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):m("",!0),v(e.$slots,"default",{},void 0,!0)]))}});const kr=g($r,[["__scopeId","data-v-e7ea1737"]]),Pr=["aria-expanded","aria-label"],wr={key:0,class:"text"},Vr=["innerHTML"],Sr={class:"menu"},Lr=y({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(t){const e=L(!1),n=L();Xa({el:n,onBlur:o});function o(){e.value=!1}return(s,a)=>(r(),l("div",{class:"VPFlyout",ref_key:"el",ref:n,onMouseenter:a[1]||(a[1]=u=>e.value=!0),onMouseleave:a[2]||(a[2]=u=>e.value=!1)},[_("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:a[0]||(a[0]=u=>e.value=!e.value)},[s.button||s.icon?(r(),l("span",wr,[s.icon?(r(),P(X(s.icon),{key:0,class:"option-icon"})):m("",!0),s.button?(r(),l("span",{key:1,innerHTML:s.button},null,8,Vr)):m("",!0),h(wt,{class:"text-icon"})])):(r(),P(_r,{key:1,class:"icon"}))],8,Pr),_("div",Sr,[h(kr,{items:s.items},{default:p(()=>[v(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const Re=g(Lr,[["__scopeId","data-v-a7b5672a"]]),Mr={discord:'Discord',facebook:'Facebook',github:'GitHub',instagram:'Instagram',linkedin:'LinkedIn',mastodon:'Mastodon',slack:'Slack',twitter:'Twitter',youtube:'YouTube'},Tr=["href","aria-label","innerHTML"],Ir=y({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(t){const e=t,n=V(()=>typeof e.icon=="object"?e.icon.svg:Mr[e.icon]);return(o,s)=>(r(),l("a",{class:"VPSocialLink no-icon",href:o.link,"aria-label":o.ariaLabel??(typeof o.icon=="string"?o.icon:""),target:"_blank",rel:"noopener",innerHTML:n.value},null,8,Tr))}});const Nr=g(Ir,[["__scopeId","data-v-f80f8133"]]),Cr={class:"VPSocialLinks"},Ar=y({__name:"VPSocialLinks",props:{links:{}},setup(t){return(e,n)=>(r(),l("div",Cr,[(r(!0),l(C,null,O(e.links,({link:o,icon:s,ariaLabel:a})=>(r(),P(Nr,{key:o,icon:s,link:o,ariaLabel:a},null,8,["icon","link","ariaLabel"]))),128))]))}});const Ue=g(Ar,[["__scopeId","data-v-7bc22406"]]),Br={key:0,class:"group translations"},xr={class:"trans-title"},Or={key:1,class:"group"},Hr={class:"item appearance"},Er={class:"label"},Dr={class:"appearance-action"},zr={key:2,class:"group"},Fr={class:"item social-links"},jr=y({__name:"VPNavBarExtra",setup(t){const{site:e,theme:n}=T(),{localeLinks:o,currentLang:s}=ce({correspondingLink:!0}),a=V(()=>o.value.length&&s.value.label||e.value.appearance||n.value.socialLinks);return(u,d)=>a.value?(r(),P(Re,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:p(()=>[i(o).length&&i(s).label?(r(),l("div",Br,[_("p",xr,N(i(s).label),1),(r(!0),l(C,null,O(i(o),c=>(r(),P(we,{key:c.link,item:c},null,8,["item"]))),128))])):m("",!0),i(e).appearance?(r(),l("div",Or,[_("div",Hr,[_("p",Er,N(i(n).darkModeSwitchLabel||"Appearance"),1),_("div",Dr,[h(je)])])])):m("",!0),i(n).socialLinks?(r(),l("div",zr,[_("div",Fr,[h(Ue,{class:"social-links-list",links:i(n).socialLinks},null,8,["links"])])])):m("",!0)]),_:1})):m("",!0)}});const Gr=g(jr,[["__scopeId","data-v-40855f84"]]),Rr=t=>(j("data-v-e5dd9c1c"),t=t(),G(),t),Ur=["aria-expanded"],Wr=Rr(()=>_("span",{class:"container"},[_("span",{class:"top"}),_("span",{class:"middle"}),_("span",{class:"bottom"})],-1)),Kr=[Wr],qr=y({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(t){return(e,n)=>(r(),l("button",{type:"button",class:A(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:n[0]||(n[0]=o=>e.$emit("click"))},Kr,10,Ur))}});const Yr=g(qr,[["__scopeId","data-v-e5dd9c1c"]]),Jr=["innerHTML"],Xr=y({__name:"VPNavBarMenuLink",props:{item:{}},setup(t){const{page:e}=T();return(n,o)=>(r(),P(q,{class:A({VPNavBarMenuLink:!0,active:i(ee)(i(e).relativePath,n.item.activeMatch||n.item.link,!!n.item.activeMatch)}),href:n.item.link,target:n.item.target,rel:n.item.rel,tabindex:"0"},{default:p(()=>[_("span",{innerHTML:n.item.text},null,8,Jr)]),_:1},8,["class","href","target","rel"]))}});const Qr=g(Xr,[["__scopeId","data-v-0b525393"]]),Zr=y({__name:"VPNavBarMenuGroup",props:{item:{}},setup(t){const{page:e}=T();return(n,o)=>(r(),P(Re,{class:A({VPNavBarMenuGroup:!0,active:i(ee)(i(e).relativePath,n.item.activeMatch,!!n.item.activeMatch)}),button:n.item.text,items:n.item.items},null,8,["class","button","items"]))}}),ei=t=>(j("data-v-7f418b0f"),t=t(),G(),t),ti={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},ni=ei(()=>_("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),oi=y({__name:"VPNavBarMenu",setup(t){const{theme:e}=T();return(n,o)=>i(e).nav?(r(),l("nav",ti,[ni,(r(!0),l(C,null,O(i(e).nav,s=>(r(),l(C,{key:s.text},["link"in s?(r(),P(Qr,{key:0,item:s},null,8,["item"])):(r(),P(Zr,{key:1,item:s},null,8,["item"]))],64))),128))])):m("",!0)}});const si=g(oi,[["__scopeId","data-v-7f418b0f"]]);const ai={type:"button",class:"DocSearch DocSearch-Button","aria-label":"Search"},ri={class:"DocSearch-Button-Container"},ii=_("svg",{class:"DocSearch-Search-Icon",width:"20",height:"20",viewBox:"0 0 20 20","aria-label":"search icon"},[_("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","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})],-1),li={class:"DocSearch-Button-Placeholder"},ci=_("span",{class:"DocSearch-Button-Keys"},[_("kbd",{class:"DocSearch-Button-Key"}),_("kbd",{class:"DocSearch-Button-Key"},"K")],-1),at=y({__name:"VPNavBarSearchButton",props:{placeholder:{}},setup(t){return(e,n)=>(r(),l("button",ai,[_("span",ri,[ii,_("span",li,N(e.placeholder),1)]),ci]))}});const ui={id:"local-search"},di={key:1,id:"docsearch"},_i=y({__name:"VPNavBarSearch",setup(t){const e=Gt(()=>Rt(()=>import("./VPLocalSearchBox.236648bd.js"),["assets/chunks/VPLocalSearchBox.236648bd.js","assets/chunks/framework.6909765d.js"])),n=()=>null,{theme:o,localeIndex:s}=T(),a=L(!1),u=L(!1),d=V(()=>{var M,w,x,z,D,ue,de;const k=((M=o.value.search)==null?void 0:M.options)??o.value.algolia;return((D=(z=(x=(w=k==null?void 0:k.locales)==null?void 0:w[s.value])==null?void 0:x.translations)==null?void 0:z.button)==null?void 0:D.buttonText)||((de=(ue=k==null?void 0:k.translations)==null?void 0:ue.button)==null?void 0:de.buttonText)||"Search"});F(()=>{});function c(){a.value||(a.value=!0,setTimeout(f,16))}function f(){const k=new Event("keydown");k.key="k",k.metaKey=!0,window.dispatchEvent(k),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||f()},16)}function b(k){const M=k.target,w=M.tagName;return M.isContentEditable||w==="INPUT"||w==="SELECT"||w==="TEXTAREA"}const $=L(!1);Ze("k",k=>{(k.ctrlKey||k.metaKey)&&(k.preventDefault(),$.value=!0)}),Ze("/",k=>{b(k)||(k.preventDefault(),$.value=!0)});const I=L("'Meta'");F(()=>{I.value=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"'⌘'":"'Ctrl'"});const S="local";return(k,M)=>{var w;return r(),l("div",{class:"VPNavBarSearch",style:ct({"--vp-meta-key":I.value})},[i(S)==="local"?(r(),l(C,{key:0},[$.value?(r(),P(i(e),{key:0,placeholder:d.value,onClose:M[0]||(M[0]=x=>$.value=!1)},null,8,["placeholder"])):m("",!0),_("div",ui,[h(at,{placeholder:d.value,onClick:M[1]||(M[1]=x=>$.value=!0)},null,8,["placeholder"])])],64)):i(S)==="algolia"?(r(),l(C,{key:1},[a.value?(r(),P(i(n),{key:0,algolia:((w=i(o).search)==null?void 0:w.options)??i(o).algolia,onVnodeBeforeMount:M[2]||(M[2]=x=>u.value=!0)},null,8,["algolia"])):m("",!0),u.value?m("",!0):(r(),l("div",di,[h(at,{placeholder:d.value,onClick:c},null,8,["placeholder"])]))],64)):m("",!0)],4)}}});const vi=y({__name:"VPNavBarSocialLinks",setup(t){const{theme:e}=T();return(n,o)=>i(e).socialLinks?(r(),P(Ue,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}});const pi=g(vi,[["__scopeId","data-v-0394ad82"]]),fi=["href"],hi=y({__name:"VPNavBarTitle",setup(t){const{site:e,theme:n}=T(),{hasSidebar:o}=W(),{currentLang:s}=ce();return(a,u)=>(r(),l("div",{class:A(["VPNavBarTitle",{"has-sidebar":i(o)}])},[_("a",{class:"title",href:i(n).logoLink??i(se)(i(s).link)},[v(a.$slots,"nav-bar-title-before",{},void 0,!0),i(n).logo?(r(),P(Fe,{key:0,class:"logo",image:i(n).logo},null,8,["image"])):m("",!0),i(n).siteTitle?(r(),l(C,{key:1},[H(N(i(n).siteTitle),1)],64)):i(n).siteTitle===void 0?(r(),l(C,{key:2},[H(N(i(e).title),1)],64)):m("",!0),v(a.$slots,"nav-bar-title-after",{},void 0,!0)],8,fi)],2))}});const mi=g(hi,[["__scopeId","data-v-86d1bed8"]]),gi={},yi={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},bi=_("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),$i=_("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),ki=[bi,$i];function Pi(t,e){return r(),l("svg",yi,ki)}const Vt=g(gi,[["render",Pi]]),wi={class:"items"},Vi={class:"title"},Si=y({__name:"VPNavBarTranslations",setup(t){const{theme:e}=T(),{localeLinks:n,currentLang:o}=ce({correspondingLink:!0});return(s,a)=>i(n).length&&i(o).label?(r(),P(Re,{key:0,class:"VPNavBarTranslations",icon:Vt,label:i(e).langMenuLabel||"Change language"},{default:p(()=>[_("div",wi,[_("p",Vi,N(i(o).label),1),(r(!0),l(C,null,O(i(n),u=>(r(),P(we,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):m("",!0)}});const Li=g(Si,[["__scopeId","data-v-74abcbb9"]]),Mi=t=>(j("data-v-0937f67c"),t=t(),G(),t),Ti={class:"container"},Ii={class:"title"},Ni={class:"content"},Ci=Mi(()=>_("div",{class:"curtain"},null,-1)),Ai={class:"content-body"},Bi=y({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(t){const{y:e}=yt(),{hasSidebar:n}=W(),{frontmatter:o}=T(),s=L({});return Be(()=>{var a;s.value={"has-sidebar":n.value,top:((a=o.value)==null?void 0:a.layout)==="home"&&e.value===0}}),(a,u)=>(r(),l("div",{class:A(["VPNavBar",s.value])},[_("div",Ti,[_("div",Ii,[h(mi,null,{"nav-bar-title-before":p(()=>[v(a.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[v(a.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),_("div",Ni,[Ci,_("div",Ai,[v(a.$slots,"nav-bar-content-before",{},void 0,!0),h(_i,{class:"search"}),h(si,{class:"menu"}),h(Li,{class:"translations"}),h(Ja,{class:"appearance"}),h(pi,{class:"social-links"}),h(Gr,{class:"extra"}),v(a.$slots,"nav-bar-content-after",{},void 0,!0),h(Yr,{class:"hamburger",active:a.isScreenOpen,onClick:u[0]||(u[0]=d=>a.$emit("toggle-screen"))},null,8,["active"])])])])],2))}});const xi=g(Bi,[["__scopeId","data-v-0937f67c"]]);function Oi(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e1),Z=[],be=!1,Ke=-1,te=void 0,J=void 0,ne=void 0,St=function(e){return Z.some(function(n){return!!(n.options.allowTouchMove&&n.options.allowTouchMove(e))})},$e=function(e){var n=e||window.event;return St(n.target)||n.touches.length>1?!0:(n.preventDefault&&n.preventDefault(),!1)},Hi=function(e){if(ne===void 0){var n=!!e&&e.reserveScrollBarGap===!0,o=window.innerWidth-document.documentElement.clientWidth;if(n&&o>0){var s=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right"),10);ne=document.body.style.paddingRight,document.body.style.paddingRight=s+o+"px"}}te===void 0&&(te=document.body.style.overflow,document.body.style.overflow="hidden")},Ei=function(){ne!==void 0&&(document.body.style.paddingRight=ne,ne=void 0),te!==void 0&&(document.body.style.overflow=te,te=void 0)},Di=function(){return window.requestAnimationFrame(function(){if(J===void 0){J={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left};var e=window,n=e.scrollY,o=e.scrollX,s=e.innerHeight;document.body.style.position="fixed",document.body.style.top=-n,document.body.style.left=-o,setTimeout(function(){return window.requestAnimationFrame(function(){var a=s-window.innerHeight;a&&n>=s&&(document.body.style.top=-(n+a))})},300)}})},zi=function(){if(J!==void 0){var e=-parseInt(document.body.style.top,10),n=-parseInt(document.body.style.left,10);document.body.style.position=J.position,document.body.style.top=J.top,document.body.style.left=J.left,window.scrollTo(n,e),J=void 0}},Fi=function(e){return e?e.scrollHeight-e.scrollTop<=e.clientHeight:!1},ji=function(e,n){var o=e.targetTouches[0].clientY-Ke;return St(e.target)?!1:n&&n.scrollTop===0&&o>0||Fi(n)&&o<0?$e(e):(e.stopPropagation(),!0)},Lt=function(e,n){if(!e){console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");return}if(!Z.some(function(s){return s.targetElement===e})){var o={targetElement:e,options:n||{}};Z=[].concat(Oi(Z),[o]),ye?Di():Hi(n),ye&&(e.ontouchstart=function(s){s.targetTouches.length===1&&(Ke=s.targetTouches[0].clientY)},e.ontouchmove=function(s){s.targetTouches.length===1&&ji(s,e)},be||(document.addEventListener("touchmove",$e,We?{passive:!1}:void 0),be=!0))}},Mt=function(){ye&&(Z.forEach(function(e){e.targetElement.ontouchstart=null,e.targetElement.ontouchmove=null}),be&&(document.removeEventListener("touchmove",$e,We?{passive:!1}:void 0),be=!1),Ke=-1),ye?zi():Ei(),Z=[]};const Gi=y({__name:"VPNavScreenMenuLink",props:{item:{}},setup(t){const e=xe("close-screen");return(n,o)=>(r(),P(q,{class:"VPNavScreenMenuLink",href:n.item.link,target:n.item.target,rel:n.item.rel,onClick:i(e)},{default:p(()=>[H(N(n.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const Ri=g(Gi,[["__scopeId","data-v-30be0acb"]]),Ui={},Wi={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ki=_("path",{d:"M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z"},null,-1),qi=[Ki];function Yi(t,e){return r(),l("svg",Wi,qi)}const Ji=g(Ui,[["render",Yi]]),Xi=y({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(t){const e=xe("close-screen");return(n,o)=>(r(),P(q,{class:"VPNavScreenMenuGroupLink",href:n.item.link,target:n.item.target,rel:n.item.rel,onClick:i(e)},{default:p(()=>[H(N(n.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}});const Tt=g(Xi,[["__scopeId","data-v-6656c42a"]]),Qi={class:"VPNavScreenMenuGroupSection"},Zi={key:0,class:"title"},el=y({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(t){return(e,n)=>(r(),l("div",Qi,[e.text?(r(),l("p",Zi,N(e.text),1)):m("",!0),(r(!0),l(C,null,O(e.items,o=>(r(),P(Tt,{key:o.text,item:o},null,8,["item"]))),128))]))}});const tl=g(el,[["__scopeId","data-v-8133b170"]]),nl=["aria-controls","aria-expanded"],ol={class:"button-text"},sl=["id"],al={key:1,class:"group"},rl=y({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(t){const e=t,n=L(!1),o=V(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function s(){n.value=!n.value}return(a,u)=>(r(),l("div",{class:A(["VPNavScreenMenuGroup",{open:n.value}])},[_("button",{class:"button","aria-controls":o.value,"aria-expanded":n.value,onClick:s},[_("span",ol,N(a.text),1),h(Ji,{class:"button-icon"})],8,nl),_("div",{id:o.value,class:"items"},[(r(!0),l(C,null,O(a.items,d=>(r(),l(C,{key:d.text},["link"in d?(r(),l("div",{key:d.text,class:"item"},[h(Tt,{item:d},null,8,["item"])])):(r(),l("div",al,[h(tl,{text:d.text,items:d.items},null,8,["text","items"])]))],64))),128))],8,sl)],2))}});const il=g(rl,[["__scopeId","data-v-338a1689"]]),ll={key:0,class:"VPNavScreenMenu"},cl=y({__name:"VPNavScreenMenu",setup(t){const{theme:e}=T();return(n,o)=>i(e).nav?(r(),l("nav",ll,[(r(!0),l(C,null,O(i(e).nav,s=>(r(),l(C,{key:s.text},["link"in s?(r(),P(Ri,{key:0,item:s},null,8,["item"])):(r(),P(il,{key:1,text:s.text||"",items:s.items},null,8,["text","items"]))],64))),128))])):m("",!0)}}),ul={key:0,class:"VPNavScreenAppearance"},dl={class:"text"},_l=y({__name:"VPNavScreenAppearance",setup(t){const{site:e,theme:n}=T();return(o,s)=>i(e).appearance?(r(),l("div",ul,[_("p",dl,N(i(n).darkModeSwitchLabel||"Appearance"),1),h(je)])):m("",!0)}});const vl=g(_l,[["__scopeId","data-v-add8f686"]]),pl={class:"list"},fl=y({__name:"VPNavScreenTranslations",setup(t){const{localeLinks:e,currentLang:n}=ce({correspondingLink:!0}),o=L(!1);function s(){o.value=!o.value}return(a,u)=>i(e).length&&i(n).label?(r(),l("div",{key:0,class:A(["VPNavScreenTranslations",{open:o.value}])},[_("button",{class:"title",onClick:s},[h(Vt,{class:"icon lang"}),H(" "+N(i(n).label)+" ",1),h(wt,{class:"icon chevron"})]),_("ul",pl,[(r(!0),l(C,null,O(i(e),d=>(r(),l("li",{key:d.link,class:"item"},[h(q,{class:"link",href:d.link},{default:p(()=>[H(N(d.text),1)]),_:2},1032,["href"])]))),128))])],2)):m("",!0)}});const hl=g(fl,[["__scopeId","data-v-d72aa483"]]),ml=y({__name:"VPNavScreenSocialLinks",setup(t){const{theme:e}=T();return(n,o)=>i(e).socialLinks?(r(),P(Ue,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),gl={class:"container"},yl=y({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(t){const e=L(null);function n(){Lt(e.value,{reserveScrollBarGap:!0})}function o(){Mt()}return(s,a)=>(r(),P(Ie,{name:"fade",onEnter:n,onAfterLeave:o},{default:p(()=>[s.open?(r(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[_("div",gl,[v(s.$slots,"nav-screen-content-before",{},void 0,!0),h(cl,{class:"menu"}),h(hl,{class:"translations"}),h(vl,{class:"appearance"}),h(ml,{class:"social-links"}),v(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):m("",!0)]),_:3}))}});const bl=g(yl,[["__scopeId","data-v-69fcc70f"]]),$l={class:"VPNav"},kl=y({__name:"VPNav",setup(t){const{isScreenOpen:e,closeScreen:n,toggleScreen:o}=Ma();return fe("close-screen",n),(s,a)=>(r(),l("header",$l,[h(xi,{"is-screen-open":i(e),onToggleScreen:i(o)},{"nav-bar-title-before":p(()=>[v(s.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[v(s.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[v(s.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[v(s.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),h(bl,{open:i(e)},{"nav-screen-content-before":p(()=>[v(s.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[v(s.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])]))}});const Pl=g(kl,[["__scopeId","data-v-7e5bc4a5"]]),wl=t=>(j("data-v-9b797284"),t=t(),G(),t),Vl=["role","tabindex"],Sl=wl(()=>_("div",{class:"indicator"},null,-1)),Ll=["onKeydown"],Ml={key:1,class:"items"},Tl=y({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(t){const e=t,{collapsed:n,collapsible:o,isLink:s,isActiveLink:a,hasActiveLink:u,hasChildren:d,toggle:c}=Jn(V(()=>e.item)),f=V(()=>d.value?"section":"div"),b=V(()=>s.value?"a":"div"),$=V(()=>d.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),I=V(()=>s.value?void 0:"button"),S=V(()=>[[`level-${e.depth}`],{collapsible:o.value},{collapsed:n.value},{"is-link":s.value},{"is-active":a.value},{"has-active":u.value}]);function k(w){"key"in w&&w.key!=="Enter"||!e.item.link&&c()}function M(){e.item.link&&c()}return(w,x)=>{const z=Q("VPSidebarItem",!0);return r(),P(X(f.value),{class:A(["VPSidebarItem",S.value])},{default:p(()=>[w.item.text?(r(),l("div",pe({key:0,class:"item",role:I.value},Wt(w.item.items?{click:k,keydown:k}:{},!0),{tabindex:w.item.items&&0}),[Sl,w.item.link?(r(),P(q,{key:0,tag:b.value,class:"link",href:w.item.link},{default:p(()=>[(r(),P(X($.value),{class:"text",innerHTML:w.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href"])):(r(),P(X($.value),{key:1,class:"text",innerHTML:w.item.text},null,8,["innerHTML"])),w.item.collapsed!=null?(r(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:M,onKeydown:Ut(M,["enter"]),tabindex:"0"},[h(ze,{class:"caret-icon"})],40,Ll)):m("",!0)],16,Vl)):m("",!0),w.item.items&&w.item.items.length?(r(),l("div",Ml,[w.depth<5?(r(!0),l(C,{key:0},O(w.item.items,D=>(r(),P(z,{key:D.text,item:D,depth:w.depth+1},null,8,["item","depth"]))),128)):m("",!0)])):m("",!0)]),_:1},8,["class"])}}});const Il=g(Tl,[["__scopeId","data-v-9b797284"]]),It=t=>(j("data-v-845b8fc6"),t=t(),G(),t),Nl=It(()=>_("div",{class:"curtain"},null,-1)),Cl={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Al=It(()=>_("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),Bl=y({__name:"VPSidebar",props:{open:{type:Boolean}},setup(t){const e=t,{sidebarGroups:n,hasSidebar:o}=W();let s=L(null);function a(){Lt(s.value,{reserveScrollBarGap:!0})}function u(){Mt()}return Be(async()=>{var d;e.open?(a(),(d=s.value)==null||d.focus()):u()}),(d,c)=>i(o)?(r(),l("aside",{key:0,class:A(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:s,onClick:c[0]||(c[0]=Kt(()=>{},["stop"]))},[Nl,_("nav",Cl,[Al,v(d.$slots,"sidebar-nav-before",{},void 0,!0),(r(!0),l(C,null,O(i(n),f=>(r(),l("div",{key:f.text,class:"group"},[h(Il,{item:f,depth:0},null,8,["item"])]))),128)),v(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):m("",!0)}});const xl=g(Bl,[["__scopeId","data-v-845b8fc6"]]),Ol=y({__name:"VPSkipLink",setup(t){const e=Pe(),n=L();U(()=>e.path,()=>n.value.focus());function o({target:s}){const a=document.getElementById(decodeURIComponent(s.hash).slice(1));if(a){const u=()=>{a.removeAttribute("tabindex"),a.removeEventListener("blur",u)};a.setAttribute("tabindex","-1"),a.addEventListener("blur",u),a.focus(),window.scrollTo(0,0)}}return(s,a)=>(r(),l(C,null,[_("span",{ref_key:"backToTop",ref:n,tabindex:"-1"},null,512),_("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o}," Skip to content ")],64))}});const Hl=g(Ol,[["__scopeId","data-v-ae3e3f51"]]),El=y({__name:"Layout",setup(t){const{isOpen:e,open:n,close:o}=W(),s=Pe();U(()=>s.path,o),Yn(e,o),fe("close-sidebar",o),fe("is-sidebar-open",e);const{frontmatter:a}=T(),u=qt(),d=V(()=>!!u["home-hero-image"]);return fe("hero-image-slot-exists",d),(c,f)=>{const b=Q("Content");return i(a).layout!==!1?(r(),l("div",{key:0,class:A(["Layout",i(a).pageClass])},[v(c.$slots,"layout-top",{},void 0,!0),h(Hl),h(Zt,{class:"backdrop",show:i(e),onClick:i(o)},null,8,["show","onClick"]),i(a).navbar!==!1?(r(),P(Pl,{key:0},{"nav-bar-title-before":p(()=>[v(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[v(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[v(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[v(c.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":p(()=>[v(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[v(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3})):m("",!0),h(La,{open:i(e),onOpenMenu:i(n)},null,8,["open","onOpenMenu"]),h(xl,{open:i(e)},{"sidebar-nav-before":p(()=>[v(c.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":p(()=>[v(c.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),h(aa,null,{"page-top":p(()=>[v(c.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[v(c.$slots,"page-bottom",{},void 0,!0)]),"not-found":p(()=>[v(c.$slots,"not-found",{},void 0,!0)]),"home-hero-before":p(()=>[v(c.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":p(()=>[v(c.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":p(()=>[v(c.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[v(c.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[v(c.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[v(c.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":p(()=>[v(c.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[v(c.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[v(c.$slots,"doc-after",{},void 0,!0)]),"doc-top":p(()=>[v(c.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[v(c.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":p(()=>[v(c.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[v(c.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[v(c.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[v(c.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[v(c.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[v(c.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),h(ua),v(c.$slots,"layout-bottom",{},void 0,!0)],2)):(r(),P(b,{key:1}))}}});const Dl=g(El,[["__scopeId","data-v-255ec12d"]]);const Wl={Layout:Dl,enhanceApp:({app:t})=>{t.component("Badge",Jt)}};function Kl(t,e){const{localeIndex:n}=T();function o(s){var S,k;const a=s.split("."),u=t&&typeof t=="object",d=u&&((k=(S=t.locales)==null?void 0:S[n.value])==null?void 0:k.translations)||null,c=u&&t.translations||null;let f=d,b=c,$=e;const I=a.pop();for(const M of a){let w=null;const x=$==null?void 0:$[M];x&&(w=$=x);const z=b==null?void 0:b[M];z&&(w=b=z);const D=f==null?void 0:f[M];D&&(w=f=D),x||($=w),z||(b=w),D||(f=w)}return(f==null?void 0:f[I])??(b==null?void 0:b[I])??($==null?void 0:$[I])??""}return o}export{Oe as a,T as b,jl as c,Ul as d,Gl as e,Kl as f,re as g,Rl as h,Ze as o,Wl as t,Bn as u,Fl as w}; diff --git a/assets/en-US_guide_changelog.md.9b314bb3.js b/assets/en-US_guide_changelog.md.521321fb.js similarity index 99% rename from assets/en-US_guide_changelog.md.9b314bb3.js rename to assets/en-US_guide_changelog.md.521321fb.js index f252ac69a..24108a70e 100644 --- a/assets/en-US_guide_changelog.md.9b314bb3.js +++ b/assets/en-US_guide_changelog.md.521321fb.js @@ -1 +1 @@ -import{_ as e,o,c as i,X as t}from"./chunks/framework.6909765d.js";const m=JSON.parse('{"title":"📠 Change Log","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/changelog.md","filePath":"en-US/guide/changelog.md","lastUpdated":1692476949000}'),a={name:"en-US/guide/changelog.md"},c=t('

📠 Change Log

9.5.1

2023-08-14

  • 🆕 Add chart api getOverlayClass.
  • 🆕 Style configuration candle.tooltip.custom add built-in support change.
  • 💄 Optimize figure rect event trigger.
  • ↩️ Separator event trigger optimization rollback.

9.5.0

2023-06-15

  • 🆕 Overlay add event onDoubleClick, add property modeSensitivity.
  • 🆕 Style configuration candle.tooltip.custom supports string templates.
  • 🐞 Optimize the scrolling frame drop issue on the mobile side.
  • 🐞 Fix pane id naming typo.
  • 💄 Optimize the response sensitivity of dividing line events.
  • 💄 Optimize the attrs type declaration in OverlayFigure under typescript.

9.4.0

2023-05-25

  • 🆕 Instance API 'createOverlay' supports arrays.
  • 🆕 overlay add attributes paneId, defaultZLevel and zLevel.
  • 🆕 xAxis add methods convertTimestampFromPixel and convertTimestampToPixel.
  • 💄 Optimize the display of candle.

9.3.0

2023-05-13

  • 🆕 Add chart API utils.calcTextWidth.
  • 🆕 The instance APIs createIndicator(value, isStack, options) and setPaneOptions(options) have added options. axisOptions.
  • 🆕 The indicator graphic configuration supports customization.
  • 💄 Optimize the bar width ratio.
  • 💄 Optimize internal acquisition of screen pixel ratio.
  • 💄 Optimize internal ID generation.

9.2.2

2023-05-04

  • 🐞 Fix figure line check event error.
  • 💄 Optimize type check.

9.2.1

2023-04-27

  • 💄 Optimize the default style by changing #EF5350 to #F92855 and #26A69A to #2DC08E.
  • 💄 Optimize typescript declarations.

9.2.0

2023-04-24

  • 🆕 Add instance API getOffsetRightDistance and executeAction.
  • 🆕 Add success callback for instance API applyNewData, applyMoreData and updateData.
  • 🆕 Support the display of thousands.
  • 🆕 Add style configuration candle.bar.upBorderColor, candle.bar.downBorderColor, candle.bar.noChangeBorderColor, candle.bar.upWickColor, candle.bar.downWickColor, candle.bar.noChangeWickColor, candle.tooltip.rect.position and candle.tooltip.rect.offsetBottom.
  • 🆕 Add realFrom and realTo to all visibleRange.
  • 💄 Optimize API, klinecharts.utils.isValid and klinecharts.utils.formatBigNumber.
  • 💄 Optimize the log output in the development environment.

9.1.3

2023-04-15

  • 🐞 Fix the issue of not refreshing when the input parameter of the chart API applyNewData is an empty array.
  • 🐞 Fix the issue of cross cursor text not displaying on the y-axis when there is no data.
  • 💄 Optimize the display of area chart.
  • 💄 Optimize coverage event callback parameters and add figureKey and figureIndex.
  • 💄 Optimize typescript overlay style types, as well as base types DeepPartial and DeepRequired.

9.1.2

2023-04-10

  • 🐞 Fix the issue of inaccurate triggering events for the built-in figure line.
  • 🐞 Fix the issue of triggering events for the first time after the simpleAnnotation and simpleTag built-in overlays are drawn.
  • 💄 Optimize overlay figure to ignore events and support event selection.

9.1.1

2023-03-14

  • 🐞 Fix the invalidity of the built-in figure arc.
  • 💄 Optimize rendering updates.

9.1.0

2023-02-23

  • 🆕 The chart instance method subscribeAction and unsubscribeAction types add onCandleBarClick.
  • 🆕 The overlay supports double-clicking to force the end of drawing.
  • 💄 Optimize event handling.

9.0.1

2023-02-17 🐞 Fix the introduction of typescript.

9.0.0

2023-02-16

  • 🛠 Typescript refactoring.
  • 🆕 New features
    • Add Y axis direction zoom and scroll.
    • API
      • New chart methods registerFigure, getSupportFigures, getFigureClass, rigiderOverlay, getSupportOverlays, registerLocale, getSupportLocales, registerStyles are added.
      • New instance methods, getSize, setLocale, getLocal, setCustomApi, getVisibleRange, createOverlay, getOverlayById, overrideOverlay, removeOverlay.
    • Style Configuration
      • Add candle.priceMark.last.text.borderStyle, candle.tooltip.icons, indicator.lastValueMark.text.borderStyle, indicator.tooltip.icons, crosshair.horizontal. text.borderStyle, crosshair.vertical.text.borderStyle.
  • 👉 Change
    • API
      • Chart method extension.addTechnicalIndicatorTemplate is changed to registerIndicator.
      • Chart method extension.addShapeTemplate is changed to registerOverlay.
      • Instance method setStyleOptions is changed to setStyles.
      • Instance method getStyleOptions is changed to getStyles.
      • Instance method setPaneOptions(options), options add new attribute gap.
      • Instance method setOffsetRightSpace is changed to setOffsetRightDistance.
      • Instance method createTechnicalIndicator is changed to createIndicator
      • Instance method overlayTechnicalIndicator is changed to overrideIndicator.
      • Instance method getTechnicalIndicatorByPaneId is changed to getIndicatorByPaneId.
      • Instance method removeTechnicalIndicator is changed to removeIndicator.
    • Style Configuration
      • All line.style options are changed to solid and dashed.
      • All dashValue is changed to dashedValue.
      • xAxis.height is changed to xAxis.size, xAxis.tickeText.paddingTop is changed to xAxis.tickeText.marinStart, and xAxis.tickeText.paddingBottom is changed to xAxis.tickeText.marinEnd.
      • yAxis.height is changed to yAxis.size, yAxis.tickeText.paddingTop is changed to yAxis.tickeText.marinStart, and yAxis.tickeText.paddingBottom is changed to yAxis.tickeText.marinEnd.
      • technicalIndicator.bar is changed to indicator.bars, technicalIndicator.line is changed to indicator.linestechnicalIndicator.circle is changed to indicator.circles
    • Custom Extension
      • The technical indicator attribute calcParams has been changed to support any type.
      • The technical indicator attribute plots is changed to figures.
      • The technical indicator attribute regeneratePlots is changed to' regeneratefigures'.
      • The technical indicator attribute calcTechnicalIndicator is changed to calc.
      • The technical indicator attribute render is changed to 'draw'.
  • 🗑 Abandonment
    • API
      • Delete instance methods getWidth, getHeight, and use getSize instead.
      • Delete instance methods createShape, createAnnotation, createTag, and use createOverlay instead.
      • Delete instance methods removeShape, removeAnnotation, removeTag. Use removeOverlay instead.
      • Delete the instance method setShapeOptions and use overrideOverlay instead.
      • Delete instance methods createHtml, removeHtml, addTechnicalIndicatorTemplate, getTechnicalIndicatorTemplate, addShapeTemplate.
    • Style Configuration
      • Delete shape, annotation, tag and use overlay instead.
      • Delete candle.margintechnicalIndicator.margin
    • Custom Extension
      • The related attributes are no longer saved in the technical indicator template.
      • Delete Shape and use Overlay instead.

8.x

Go to Github to check the change log for 8.x.

7.x

Go to Github to check the change log for 7.x.

6.x

Go to Github to check the change log for 6.x.

5.x

Go to Github to view the 5.x release notes.

4.x

Go to Github to view the 4.x release notes.

',49),d=[c];function l(n,r,s,h,u,p){return o(),i("div",null,d)}const b=e(a,[["render",l]]);export{m as __pageData,b as default}; +import{_ as e,o,c as i,Q as t}from"./chunks/framework.385ac4c3.js";const m=JSON.parse('{"title":"📠 Change Log","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/changelog.md","filePath":"en-US/guide/changelog.md","lastUpdated":1691952590000}'),a={name:"en-US/guide/changelog.md"},c=t('

📠 Change Log

9.5.1

2023-08-14

  • 🆕 Add chart api getOverlayClass.
  • 🆕 Style configuration candle.tooltip.custom add built-in support change.
  • 💄 Optimize figure rect event trigger.
  • ↩️ Separator event trigger optimization rollback.

9.5.0

2023-06-15

  • 🆕 Overlay add event onDoubleClick, add property modeSensitivity.
  • 🆕 Style configuration candle.tooltip.custom supports string templates.
  • 🐞 Optimize the scrolling frame drop issue on the mobile side.
  • 🐞 Fix pane id naming typo.
  • 💄 Optimize the response sensitivity of dividing line events.
  • 💄 Optimize the attrs type declaration in OverlayFigure under typescript.

9.4.0

2023-05-25

  • 🆕 Instance API 'createOverlay' supports arrays.
  • 🆕 overlay add attributes paneId, defaultZLevel and zLevel.
  • 🆕 xAxis add methods convertTimestampFromPixel and convertTimestampToPixel.
  • 💄 Optimize the display of candle.

9.3.0

2023-05-13

  • 🆕 Add chart API utils.calcTextWidth.
  • 🆕 The instance APIs createIndicator(value, isStack, options) and setPaneOptions(options) have added options. axisOptions.
  • 🆕 The indicator graphic configuration supports customization.
  • 💄 Optimize the bar width ratio.
  • 💄 Optimize internal acquisition of screen pixel ratio.
  • 💄 Optimize internal ID generation.

9.2.2

2023-05-04

  • 🐞 Fix figure line check event error.
  • 💄 Optimize type check.

9.2.1

2023-04-27

  • 💄 Optimize the default style by changing #EF5350 to #F92855 and #26A69A to #2DC08E.
  • 💄 Optimize typescript declarations.

9.2.0

2023-04-24

  • 🆕 Add instance API getOffsetRightDistance and executeAction.
  • 🆕 Add success callback for instance API applyNewData, applyMoreData and updateData.
  • 🆕 Support the display of thousands.
  • 🆕 Add style configuration candle.bar.upBorderColor, candle.bar.downBorderColor, candle.bar.noChangeBorderColor, candle.bar.upWickColor, candle.bar.downWickColor, candle.bar.noChangeWickColor, candle.tooltip.rect.position and candle.tooltip.rect.offsetBottom.
  • 🆕 Add realFrom and realTo to all visibleRange.
  • 💄 Optimize API, klinecharts.utils.isValid and klinecharts.utils.formatBigNumber.
  • 💄 Optimize the log output in the development environment.

9.1.3

2023-04-15

  • 🐞 Fix the issue of not refreshing when the input parameter of the chart API applyNewData is an empty array.
  • 🐞 Fix the issue of cross cursor text not displaying on the y-axis when there is no data.
  • 💄 Optimize the display of area chart.
  • 💄 Optimize coverage event callback parameters and add figureKey and figureIndex.
  • 💄 Optimize typescript overlay style types, as well as base types DeepPartial and DeepRequired.

9.1.2

2023-04-10

  • 🐞 Fix the issue of inaccurate triggering events for the built-in figure line.
  • 🐞 Fix the issue of triggering events for the first time after the simpleAnnotation and simpleTag built-in overlays are drawn.
  • 💄 Optimize overlay figure to ignore events and support event selection.

9.1.1

2023-03-14

  • 🐞 Fix the invalidity of the built-in figure arc.
  • 💄 Optimize rendering updates.

9.1.0

2023-02-23

  • 🆕 The chart instance method subscribeAction and unsubscribeAction types add onCandleBarClick.
  • 🆕 The overlay supports double-clicking to force the end of drawing.
  • 💄 Optimize event handling.

9.0.1

2023-02-17 🐞 Fix the introduction of typescript.

9.0.0

2023-02-16

  • 🛠 Typescript refactoring.
  • 🆕 New features
    • Add Y axis direction zoom and scroll.
    • API
      • New chart methods registerFigure, getSupportFigures, getFigureClass, rigiderOverlay, getSupportOverlays, registerLocale, getSupportLocales, registerStyles are added.
      • New instance methods, getSize, setLocale, getLocal, setCustomApi, getVisibleRange, createOverlay, getOverlayById, overrideOverlay, removeOverlay.
    • Style Configuration
      • Add candle.priceMark.last.text.borderStyle, candle.tooltip.icons, indicator.lastValueMark.text.borderStyle, indicator.tooltip.icons, crosshair.horizontal. text.borderStyle, crosshair.vertical.text.borderStyle.
  • 👉 Change
    • API
      • Chart method extension.addTechnicalIndicatorTemplate is changed to registerIndicator.
      • Chart method extension.addShapeTemplate is changed to registerOverlay.
      • Instance method setStyleOptions is changed to setStyles.
      • Instance method getStyleOptions is changed to getStyles.
      • Instance method setPaneOptions(options), options add new attribute gap.
      • Instance method setOffsetRightSpace is changed to setOffsetRightDistance.
      • Instance method createTechnicalIndicator is changed to createIndicator
      • Instance method overlayTechnicalIndicator is changed to overrideIndicator.
      • Instance method getTechnicalIndicatorByPaneId is changed to getIndicatorByPaneId.
      • Instance method removeTechnicalIndicator is changed to removeIndicator.
    • Style Configuration
      • All line.style options are changed to solid and dashed.
      • All dashValue is changed to dashedValue.
      • xAxis.height is changed to xAxis.size, xAxis.tickeText.paddingTop is changed to xAxis.tickeText.marinStart, and xAxis.tickeText.paddingBottom is changed to xAxis.tickeText.marinEnd.
      • yAxis.height is changed to yAxis.size, yAxis.tickeText.paddingTop is changed to yAxis.tickeText.marinStart, and yAxis.tickeText.paddingBottom is changed to yAxis.tickeText.marinEnd.
      • technicalIndicator.bar is changed to indicator.bars, technicalIndicator.line is changed to indicator.linestechnicalIndicator.circle is changed to indicator.circles
    • Custom Extension
      • The technical indicator attribute calcParams has been changed to support any type.
      • The technical indicator attribute plots is changed to figures.
      • The technical indicator attribute regeneratePlots is changed to' regeneratefigures'.
      • The technical indicator attribute calcTechnicalIndicator is changed to calc.
      • The technical indicator attribute render is changed to 'draw'.
  • 🗑 Abandonment
    • API
      • Delete instance methods getWidth, getHeight, and use getSize instead.
      • Delete instance methods createShape, createAnnotation, createTag, and use createOverlay instead.
      • Delete instance methods removeShape, removeAnnotation, removeTag. Use removeOverlay instead.
      • Delete the instance method setShapeOptions and use overrideOverlay instead.
      • Delete instance methods createHtml, removeHtml, addTechnicalIndicatorTemplate, getTechnicalIndicatorTemplate, addShapeTemplate.
    • Style Configuration
      • Delete shape, annotation, tag and use overlay instead.
      • Delete candle.margintechnicalIndicator.margin
    • Custom Extension
      • The related attributes are no longer saved in the technical indicator template.
      • Delete Shape and use Overlay instead.

8.x

Go to Github to check the change log for 8.x.

7.x

Go to Github to check the change log for 7.x.

6.x

Go to Github to check the change log for 6.x.

5.x

Go to Github to view the 5.x release notes.

4.x

Go to Github to view the 4.x release notes.

',49),d=[c];function l(n,r,s,h,u,p){return o(),i("div",null,d)}const b=e(a,[["render",l]]);export{m as __pageData,b as default}; diff --git a/assets/en-US_guide_changelog.md.9b314bb3.lean.js b/assets/en-US_guide_changelog.md.521321fb.lean.js similarity index 71% rename from assets/en-US_guide_changelog.md.9b314bb3.lean.js rename to assets/en-US_guide_changelog.md.521321fb.lean.js index 2478a9b02..d175a61df 100644 --- a/assets/en-US_guide_changelog.md.9b314bb3.lean.js +++ b/assets/en-US_guide_changelog.md.521321fb.lean.js @@ -1 +1 @@ -import{_ as e,o,c as i,X as t}from"./chunks/framework.6909765d.js";const m=JSON.parse('{"title":"📠 Change Log","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/changelog.md","filePath":"en-US/guide/changelog.md","lastUpdated":1692476949000}'),a={name:"en-US/guide/changelog.md"},c=t("",49),d=[c];function l(n,r,s,h,u,p){return o(),i("div",null,d)}const b=e(a,[["render",l]]);export{m as __pageData,b as default}; +import{_ as e,o,c as i,Q as t}from"./chunks/framework.385ac4c3.js";const m=JSON.parse('{"title":"📠 Change Log","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/changelog.md","filePath":"en-US/guide/changelog.md","lastUpdated":1691952590000}'),a={name:"en-US/guide/changelog.md"},c=t("",49),d=[c];function l(n,r,s,h,u,p){return o(),i("div",null,d)}const b=e(a,[["render",l]]);export{m as __pageData,b as default}; diff --git a/assets/en-US_guide_chart-api.md.baa06226.js b/assets/en-US_guide_chart-api.md.4f93847d.js similarity index 69% rename from assets/en-US_guide_chart-api.md.baa06226.js rename to assets/en-US_guide_chart-api.md.4f93847d.js index 3d9e2c795..9e25fccab 100644 --- a/assets/en-US_guide_chart-api.md.baa06226.js +++ b/assets/en-US_guide_chart-api.md.4f93847d.js @@ -1,16 +1,16 @@ -import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=JSON.parse('{"title":"Chart API","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/chart-api.md","filePath":"en-US/guide/chart-api.md","lastUpdated":1692476949000}'),p={name:"en-US/guide/chart-api.md"},o=l(`

Chart API

init(ds, options)

typescript
(
-   ds: string | HTMLElement,
-   options?: {
-      locale?: string
-      timezone?: string
-      styles?: string | object
-      customApi?: {
-         formatDate?: (dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string, type: number) => string
-         formatBigNumber?: (value: string | number) => string
-      },
-      thousandsSeparator?: string
-   }
-) => Chart
(
+import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const F=JSON.parse('{"title":"Chart API","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/chart-api.md","filePath":"en-US/guide/chart-api.md","lastUpdated":1692476796000}'),p={name:"en-US/guide/chart-api.md"},o=l(`

Chart API

init(ds, options)

typescript
(
+   ds: string | HTMLElement,
+   options?: {
+      locale?: string
+      timezone?: string
+      styles?: string | object
+      customApi?: {
+         formatDate?: (dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string, type: number) => string
+         formatBigNumber?: (value: string | number) => string
+      },
+      thousandsSeparator?: string
+   }
+) => Chart
(
    ds: string | HTMLElement,
    options?: {
       locale?: string
@@ -22,17 +22,17 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       },
       thousandsSeparator?: string
    }
-) => Chart

Initialize a chart and return the chart instance.

  • ds container, can be dom element or element id.
  • options optional configuration items.
    • locale language, built-in support for zh-CN and en-US.
    • timezone time zone name, such as 'Asia/Shanghai', if not set, it will automatically get the local time zone, please refer to timezone list.
    • styles It can be the style name registered through klinecharts.registerStyles, or it can be an object, a list of styles, see styles for details, and supports increments.
    • customApi customize some APIs.
      • formatDate formats a date.
      • formatBigNumber format big numbers, such as 1000 into 1k, 1000000 into 1M, etc.\\
    • thousandsSeparator thousands separator

dispose(dcs)

typescript
(dcs: HTMLElement | Chart | string) => void
(dcs: HTMLElement | Chart | string) => void

Destroys a chart, once destroyed the chart will no longer be available.

  • dcs can be a dom element, element id or chart instance.

registerLocale(locale, locales)

typescript
(
-   locale: string,
-   locales: {
-     time: string
-     open: string
-     high: string
-     low: string
-     close: string
-     volume: string
-   }
-) => void
(
+) => Chart

Initialize a chart and return the chart instance.

  • ds container, can be dom element or element id.
  • options optional configuration items.
    • locale language, built-in support for zh-CN and en-US.
    • timezone time zone name, such as 'Asia/Shanghai', if not set, it will automatically get the local time zone, please refer to timezone list.
    • styles It can be the style name registered through klinecharts.registerStyles, or it can be an object, a list of styles, see styles for details, and supports increments.
    • customApi customize some APIs.
      • formatDate formats a date.
      • formatBigNumber format big numbers, such as 1000 into 1k, 1000000 into 1M, etc.\\
    • thousandsSeparator thousands separator

dispose(dcs)

typescript
(dcs: HTMLElement | Chart | string) => void
(dcs: HTMLElement | Chart | string) => void

Destroys a chart, once destroyed the chart will no longer be available.

  • dcs can be a dom element, element id or chart instance.

registerLocale(locale, locales)

typescript
(
+   locale: string,
+   locales: {
+     time: string
+     open: string
+     high: string
+     low: string
+     close: string
+     volume: string
+   }
+) => void
(
    locale: string,
    locales: {
      time: string
@@ -42,79 +42,79 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
      close: string
      volume: string
    }
-) => void

Add a localization language. Charts have built-in zh-CN and en-US.

  • locale language name
  • locales language configuration

getOverlayClass()

typescript
(name: string) => Nullable<OverlayConstructor>
(name: string) => Nullable<OverlayConstructor>

Get chart's overlay attributes by overlay name.

getSupportedLocales()

typescript
() => string[]
() => string[]

Get the localized language types supported by the chart.

registerStyles(name, styles)

typescript
(
-   name: string,
-   styles: object
-) => void
(
+) => void

Add a localization language. Charts have built-in zh-CN and en-US.

  • locale language name
  • locales language configuration

getOverlayClass()

typescript
(name: string) => Nullable<OverlayConstructor>
(name: string) => Nullable<OverlayConstructor>

Get chart's overlay attributes by overlay name.

getSupportedLocales()

typescript
() => string[]
() => string[]

Get the localized language types supported by the chart.

registerStyles(name, styles)

typescript
(
+   name: string,
+   styles: object
+) => void
(
    name: string,
    styles: object
-) => void

Add a style configuration.

  • name style name
  • styles style configuration, refer to style for the type, support increment.

registerFigure(figure)

typescript
(
-   figure: {
-      name: string
-      draw: (ctx: CanvasRenderingContext2D, attrs: any, styles: object) => void
-      checkEventOn: (coordinate: Coordinate, attrs: any, styles: object) => boolean
-   }
-) => void
(
+) => void

Add a style configuration.

  • name style name
  • styles style configuration, refer to style for the type, support increment.

registerFigure(figure)

typescript
(
+   figure: {
+      name: string
+      draw: (ctx: CanvasRenderingContext2D, attrs: any, styles: object) => void
+      checkEventOn: (coordinate: Coordinate, attrs: any, styles: object) => boolean
+   }
+) => void
(
    figure: {
       name: string
       draw: (ctx: CanvasRenderingContext2D, attrs: any, styles: object) => void
       checkEventOn: (coordinate: Coordinate, attrs: any, styles: object) => boolean
    }
-) => void

Add a figure.

  • figure Basic figure information, see figure for details
    • name name, unique identifier
    • draw drawing method
    • checkEventOn checks if the event is on the graph

getSupportedFigures()

typescript
() => string[]
() => string[]

Get the basic graph type supported by the graph.

getFigureClass(name)

typescript
(name: string) => Figure
(name: string) => Figure

Get graph class.

  • name name

registerIndicator(indicator)

typescript
(
-   indicator: {
-      name: string
-      shortName?: string
-      precision?: number
-      calcParams?: any[]
-      shouldOhlc?: boolean
-      shouldFormatBigNumber?: boolean
-      visible?: boolean
-      extendData?: any
-      series?: 'normal' | 'price' | 'volume'
-      figures?: Array<{
-         key: string
-         title?: string
-         type?: string
-         baseValue?: number
-         styles?: (
-            data: object,
-            indicator: object,
-            defaultStyles: object
-         ) => object
-         attrs: (
-            coordinate: object
-            bounding: Bounding
-            barSpace: BarSpace
-            xAxis: XAxis
-            yAxis: YAxis
-         ) => object
-      }>
-      minValue?: number
-      maxValue?: number
-      styles?: object
-      calc: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
-      regenerateFigures?: (calcParms: any[]) => Array<{
-         key: string
-         title?: string
-         type?: string
-         baseValue?: number
-         styles?: (
-            data: object
-            indicator: object
-            defaultStyles: object
-         ) => object
-         attrs: (
-            coordinate: object
-            bounding: Bounding
-            barSpace: BarSpace
-            xAxis: XAxis
-            yAxis: YAxis
-         ) => object
-      }>
-      createTooltipDataSource?: (params: object) => {
-         name?: string
-         calcParamsText?: string
-         values?: Array<{
+) => void

Add a figure.

  • figure Basic figure information, see figure for details
    • name name, unique identifier
    • draw drawing method
    • checkEventOn checks if the event is on the graph

getSupportedFigures()

typescript
() => string[]
() => string[]

Get the basic graph type supported by the graph.

getFigureClass(name)

typescript
(name: string) => Figure
(name: string) => Figure

Get graph class.

  • name name

registerIndicator(indicator)

typescript
(
+   indicator: {
+      name: string
+      shortName?: string
+      precision?: number
+      calcParams?: any[]
+      shouldOhlc?: boolean
+      shouldFormatBigNumber?: boolean
+      visible?: boolean
+      extendData?: any
+      series?: 'normal' | 'price' | 'volume'
+      figures?: Array<{
+         key: string
+         title?: string
+         type?: string
+         baseValue?: number
+         styles?: (
+            data: object,
+            indicator: object,
+            defaultStyles: object
+         ) => object
+         attrs: (
+            coordinate: object
+            bounding: Bounding
+            barSpace: BarSpace
+            xAxis: XAxis
+            yAxis: YAxis
+         ) => object
+      }>
+      minValue?: number
+      maxValue?: number
+      styles?: object
+      calc: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
+      regenerateFigures?: (calcParms: any[]) => Array<{
+         key: string
+         title?: string
+         type?: string
+         baseValue?: number
+         styles?: (
+            data: object
+            indicator: object
+            defaultStyles: object
+         ) => object
+         attrs: (
+            coordinate: object
+            bounding: Bounding
+            barSpace: BarSpace
+            xAxis: XAxis
+            yAxis: YAxis
+         ) => object
+      }>
+      createTooltipDataSource?: (params: object) => {
+         name?: string
+         calcParamsText?: string
+         values?: Array<{
             title: string | {
                text: string
                color: string
@@ -125,9 +125,9 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
             }
          }>
       }
-      draw?: (params: object) => boolean
-   }
-) => void
(
+      draw?: (params: object) => boolean
+   }
+) => void
(
    indicator: {
       name: string
       shortName?: string
@@ -194,78 +194,78 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       }
       draw?: (params: object) => boolean
    }
-) => void

Add a technical indicator.

  • indicator technical indicator information
    • name indicator name, unique identifier for creation and operation
    • shortName short name for display
    • precision precision
    • calcParams calculation parameters
    • shouldOhlc needs ohlc auxiliary graphics
    • shouldFormatBigNumber should format large numbers. For example, 1000 is converted to 1k, 1000000 is converted to 1M, etc.
    • visible visible or not
    • extendData extended data
    • series indicator series, options are 'normal', 'price' and 'volume'
    • figures graphics configuration
    • minValue specifies the minimum value
    • maxValue specifies the maximum value
    • styles styles
    • calc calculation method
    • regenerateFigures method to regenerate figure information
    • createTooltipDataSource method to create custom tip information
    • draw custom drawing method

getSupportedIndicators()

typescript
() => string[]
() => string[]

Get technical indicators for chart support.

registerOverlay(overlay)

typescript
(
-   overlay: {
-      name: string
-      totalStep?: number
-      lock?: boolean
-      visible?: boolean
-      zLevel?: number
-      needDefaultPointFigure?: boolean
-      needDefaultXAxisFigure?: boolean
-      needDefaultYAxisFigure?: boolean
-      mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
-      modeSensitivity?: number
-      points?: Array<{ timestamp: number, dataIndex?: number, value?: number }>
-      extendData?: any
-      styles?: object
-      createPointFigures?: (params: object) => {
-         key?: string
-         type: string
-         attrs: any | any[]
-         styles?: any
-         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-      } | Array<{
-         key?: string
-         type: string
-         attrs: any | any[]
-         styles?: any
-         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-      }>
-      createXAxisFigures?: (params: object) => {
-         key?: string
-         type: string
-         attrs: any | any[]
-         styles?: any
-         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-      } | Array<{
-         key?: string,
-         type: string,
-         attrs: any | any[]
-         styles?: any
-         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-      }>
-      createYAxisFigures?: (params: object) => {
-         key?: string
-         type: string
-         attrs: any | any[]
-         styles?: any
-         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-      } | Array<{
-         key?: string
-         type: string
-         attrs: any | any[]
-         styles?: any
-         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-      }>
-      performEventPressedMove?: (params: object) => void
-      performEventMoveForDrawing?: (params: object) => void
-      onDrawStart?: (event: object) => boolean
-      onDrawing?: (event: object) => boolean
-      onDrawEnd?: (event: object) => boolean
-      onClick?: (event: object) => boolean
-      onDoubleClick?: (event: object) => boolean
-      onRightClick?: (event: object) => boolean
-      onPressedMoveStart?: (event: object) => boolean
-      onPressedMoving?: (event: object) => boolean
-      onPressedMoveEnd?: (event: object) => boolean,
-      onMouseEnter?: (event: object) => boolean
-      onMouseLeave?: (event: object) => boolean
-      onRemoved?: (event: object) => boolean
-      onSelected?: (event: object) => boolean
-      onDeselected?: (event: object) => boolean
-   }
-) => void
(
+) => void

Add a technical indicator.

  • indicator technical indicator information
    • name indicator name, unique identifier for creation and operation
    • shortName short name for display
    • precision precision
    • calcParams calculation parameters
    • shouldOhlc needs ohlc auxiliary graphics
    • shouldFormatBigNumber should format large numbers. For example, 1000 is converted to 1k, 1000000 is converted to 1M, etc.
    • visible visible or not
    • extendData extended data
    • series indicator series, options are 'normal', 'price' and 'volume'
    • figures graphics configuration
    • minValue specifies the minimum value
    • maxValue specifies the maximum value
    • styles styles
    • calc calculation method
    • regenerateFigures method to regenerate figure information
    • createTooltipDataSource method to create custom tip information
    • draw custom drawing method

getSupportedIndicators()

typescript
() => string[]
() => string[]

Get technical indicators for chart support.

registerOverlay(overlay)

typescript
(
+   overlay: {
+      name: string
+      totalStep?: number
+      lock?: boolean
+      visible?: boolean
+      zLevel?: number
+      needDefaultPointFigure?: boolean
+      needDefaultXAxisFigure?: boolean
+      needDefaultYAxisFigure?: boolean
+      mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+      modeSensitivity?: number
+      points?: Array<{ timestamp: number, dataIndex?: number, value?: number }>
+      extendData?: any
+      styles?: object
+      createPointFigures?: (params: object) => {
+         key?: string
+         type: string
+         attrs: any | any[]
+         styles?: any
+         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+      } | Array<{
+         key?: string
+         type: string
+         attrs: any | any[]
+         styles?: any
+         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+      }>
+      createXAxisFigures?: (params: object) => {
+         key?: string
+         type: string
+         attrs: any | any[]
+         styles?: any
+         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+      } | Array<{
+         key?: string,
+         type: string,
+         attrs: any | any[]
+         styles?: any
+         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+      }>
+      createYAxisFigures?: (params: object) => {
+         key?: string
+         type: string
+         attrs: any | any[]
+         styles?: any
+         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+      } | Array<{
+         key?: string
+         type: string
+         attrs: any | any[]
+         styles?: any
+         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+      }>
+      performEventPressedMove?: (params: object) => void
+      performEventMoveForDrawing?: (params: object) => void
+      onDrawStart?: (event: object) => boolean
+      onDrawing?: (event: object) => boolean
+      onDrawEnd?: (event: object) => boolean
+      onClick?: (event: object) => boolean
+      onDoubleClick?: (event: object) => boolean
+      onRightClick?: (event: object) => boolean
+      onPressedMoveStart?: (event: object) => boolean
+      onPressedMoving?: (event: object) => boolean
+      onPressedMoveEnd?: (event: object) => boolean,
+      onMouseEnter?: (event: object) => boolean
+      onMouseLeave?: (event: object) => boolean
+      onRemoved?: (event: object) => boolean
+      onSelected?: (event: object) => boolean
+      onDeselected?: (event: object) => boolean
+   }
+) => void
(
    overlay: {
       name: string
       totalStep?: number
@@ -336,16 +336,16 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       onSelected?: (event: object) => boolean
       onDeselected?: (event: object) => boolean
    }
-) => void

Add a overlay.

  • overlay overlay information, see overlay for details
    • name overlay name, unique identifier for creation
    • totalStep total implementation steps
    • lock is locked to prevent dragging
    • visible visible or not
    • zLevel draw level
    • needDefaultPointFigure needs the default point figure
    • needDefaultXAxisFigure needs the default x-axis figure
    • needDefaultYAxisFigure needs the default y-axis figure
    • mode mode, options are 'normal', 'weak_magnet' and 'strong_magnet'
    • modeSensitivity mode sensitivity, only valid when mode is weak_magnet
    • points point information
    • extendData extended data
    • styles styles
    • createPointFigures creates figures corresponding to points
    • createXAxisFigures creates figures on the x-axis
    • createYAxisFigures creates figures on the y-axis
    • performEventPressedMove special handling method for press and move event
    • performEventMoveForDrawing special processing method during moving event
    • onDrawStart start drawing event
    • onDrawing drawing event
    • onDrawEnd draw end event
    • onClick click event
    • onDoubleClick double click event
    • onRightClick right click event
    • onPressedMoveStart press start move event
    • onPressedMoving Press and move event
    • onPressedMoveEnd Press and move end event
    • onMouseEnter mouse enter event
    • onMouseLeave mouse out event
    • onRemoved delete event
    • onSelected selected event
    • onDeselected deselected event

getSupportedOverlays()

typescript
() => string[]
() => string[]

Get overlays for chart support.

version()

typescript
() => string
() => string

Get the current version number of the chart.

utils

A collection of helper methods.

utils.clone(target)

typescript
(target: any) => any
(target: any) => any

deep copy.

utils.merge(target, source)

typescript
(target: object, source: object) => void
(target: object, source: object) => void

Merge one object into another.

utils.isString(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is a string.

utils.isNumber(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is a number.

utils.isValid(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is valid.

utils.isObject(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is an object.

utils.isFunction(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is a method.

utils.isBoolean(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is a bool value.

utils.formatValue(value, key, defaultValue)

typescript
(data: any, key: string, defaultValue?: any) => any
(data: any, key: string, defaultValue?: any) => any

Get the corresponding value from a certain value, support nesting, such as const o = { a: { b: { c: 1 } } }, formatValue(o, 'a.b.c') takes the value of c .

utils.formatPrecision(value)

typescript
(value: string | number, precision?: number) => string
(value: string | number, precision?: number) => string

Formatting precision.

utils.formatBigNumber(value)

typescript
(value: string | number) => string
(value: string | number) => string

Format large numbers, such as 1000 into 1k, 1000000 into 1M, etc.

utils.formatDate(dateTimeFormat, timestamp, format)

typescript
(dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string) => string
(dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string) => string

Format date. format, such as 'YYYY-MM-DD HH:mm:ss'.

utils.formatThousands(value, sign)

typescript
(value: string | number, sign: string) => string
(value: string | number, sign: string) => string

Format thousands separator.

utils.calcTextWidth(text, size, weight, family)

typescript
(text: string, size?: number, weight?: string | number, family?: string) => number
(text: string, size?: number, weight?: string | number, family?: string) => number

Calculate text width.

utils.getLinearSlopeIntercept(coordinate1, coordinate2)

typescript
(
-   coordinate1: {
-      x: number
-      y: number
-   },
-   coordinate2: {
-      x: number
-      y: number
-   }
-) => []
(
+) => void

Add a overlay.

  • overlay overlay information, see overlay for details
    • name overlay name, unique identifier for creation
    • totalStep total implementation steps
    • lock is locked to prevent dragging
    • visible visible or not
    • zLevel draw level
    • needDefaultPointFigure needs the default point figure
    • needDefaultXAxisFigure needs the default x-axis figure
    • needDefaultYAxisFigure needs the default y-axis figure
    • mode mode, options are 'normal', 'weak_magnet' and 'strong_magnet'
    • modeSensitivity mode sensitivity, only valid when mode is weak_magnet
    • points point information
    • extendData extended data
    • styles styles
    • createPointFigures creates figures corresponding to points
    • createXAxisFigures creates figures on the x-axis
    • createYAxisFigures creates figures on the y-axis
    • performEventPressedMove special handling method for press and move event
    • performEventMoveForDrawing special processing method during moving event
    • onDrawStart start drawing event
    • onDrawing drawing event
    • onDrawEnd draw end event
    • onClick click event
    • onDoubleClick double click event
    • onRightClick right click event
    • onPressedMoveStart press start move event
    • onPressedMoving Press and move event
    • onPressedMoveEnd Press and move end event
    • onMouseEnter mouse enter event
    • onMouseLeave mouse out event
    • onRemoved delete event
    • onSelected selected event
    • onDeselected deselected event

getSupportedOverlays()

typescript
() => string[]
() => string[]

Get overlays for chart support.

version()

typescript
() => string
() => string

Get the current version number of the chart.

utils

A collection of helper methods.

utils.clone(target)

typescript
(target: any) => any
(target: any) => any

deep copy.

utils.merge(target, source)

typescript
(target: object, source: object) => void
(target: object, source: object) => void

Merge one object into another.

utils.isString(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is a string.

utils.isNumber(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is a number.

utils.isValid(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is valid.

utils.isObject(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is an object.

utils.isFunction(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is a method.

utils.isBoolean(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is a bool value.

utils.formatValue(value, key, defaultValue)

typescript
(data: any, key: string, defaultValue?: any) => any
(data: any, key: string, defaultValue?: any) => any

Get the corresponding value from a certain value, support nesting, such as const o = { a: { b: { c: 1 } } }, formatValue(o, 'a.b.c') takes the value of c .

utils.formatPrecision(value)

typescript
(value: string | number, precision?: number) => string
(value: string | number, precision?: number) => string

Formatting precision.

utils.formatBigNumber(value)

typescript
(value: string | number) => string
(value: string | number) => string

Format large numbers, such as 1000 into 1k, 1000000 into 1M, etc.

utils.formatDate(dateTimeFormat, timestamp, format)

typescript
(dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string) => string
(dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string) => string

Format date. format, such as 'YYYY-MM-DD HH:mm:ss'.

utils.formatThousands(value, sign)

typescript
(value: string | number, sign: string) => string
(value: string | number, sign: string) => string

Format thousands separator.

utils.calcTextWidth(text, size, weight, family)

typescript
(text: string, size?: number, weight?: string | number, family?: string) => number
(text: string, size?: number, weight?: string | number, family?: string) => number

Calculate text width.

utils.getLinearSlopeIntercept(coordinate1, coordinate2)

typescript
(
+   coordinate1: {
+      x: number
+      y: number
+   },
+   coordinate2: {
+      x: number
+      y: number
+   }
+) => []
(
    coordinate1: {
       x: number
       y: number
@@ -354,20 +354,20 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       x: number
       y: number
    }
-) => []

According to two coordinate points, get the slope and constant term of the line composed of points, namely k and b in y = kx + b.

utils.getLinearYFromCoordinates(coordinate1, coordinate2, targetCoordinate)

typescript
(
-  coordinate1: {
-      x: number
-      y: number
-   },
-   coordinate2: {
-      x: number
-      y: number
-   },
-   targetCoordinate: {
-      x: number
-      y: number
-   }
-) => number
(
+) => []

According to two coordinate points, get the slope and constant term of the line composed of points, namely k and b in y = kx + b.

utils.getLinearYFromCoordinates(coordinate1, coordinate2, targetCoordinate)

typescript
(
+  coordinate1: {
+      x: number
+      y: number
+   },
+   coordinate2: {
+      x: number
+      y: number
+   },
+   targetCoordinate: {
+      x: number
+      y: number
+   }
+) => number
(
   coordinate1: {
       x: number
       y: number
@@ -380,31 +380,31 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       x: number
       y: number
    }
-) => number

Get the y-axis coordinate value of a point on the line formed by two other coordinate points.

utils.getLinearYFromSlopeIntercept(kb, targetCoordinate)

typescript
(
-   kb: Array<number>,
-   targetCoordinate: {
-      x: number
-      y: number
-   }
-) => number
(
+) => number

Get the y-axis coordinate value of a point on the line formed by two other coordinate points.

utils.getLinearYFromSlopeIntercept(kb, targetCoordinate)

typescript
(
+   kb: Array<number>,
+   targetCoordinate: {
+      x: number
+      y: number
+   }
+) => number
(
    kb: Array<number>,
    targetCoordinate: {
       x: number
       y: number
    }
-) => number

Get the y-coordinate value of a point on the line formed by the slope and the constant term.

utils.checkCoordinateOnArc(coordinate, arc)

typescript
(
-   coordinate: {
-      x: number
-      y: number
-   },
-   arc: {
-      x: number
-      y: number
-      r: number
-      startAngle: number
-      endAngle: number
-   }
-) => boolean
(
+) => number

Get the y-coordinate value of a point on the line formed by the slope and the constant term.

utils.checkCoordinateOnArc(coordinate, arc)

typescript
(
+   coordinate: {
+      x: number
+      y: number
+   },
+   arc: {
+      x: number
+      y: number
+      r: number
+      startAngle: number
+      endAngle: number
+   }
+) => boolean
(
    coordinate: {
       x: number
       y: number
@@ -416,17 +416,17 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       startAngle: number
       endAngle: number
    }
-) => boolean

Check whether a certain coordinate point is on the arc.

  • coordinate coordinate point information
  • arc arc parameter
    • x the x-axis value of the center of the circle
    • y the y-axis value of the center of the circle
    • r radius
    • startAngle start angle
    • endAngle end angle

utils.checkCoordinateOnCircle(coordinate, circle)

typescript
(
-   coordinate: {
-      x: number
-      y: number
-   },
-   circle: {
-      x: number
-      y: number
-      r: number
-   }
-) => boolean
(
+) => boolean

Check whether a certain coordinate point is on the arc.

  • coordinate coordinate point information
  • arc arc parameter
    • x the x-axis value of the center of the circle
    • y the y-axis value of the center of the circle
    • r radius
    • startAngle start angle
    • endAngle end angle

utils.checkCoordinateOnCircle(coordinate, circle)

typescript
(
+   coordinate: {
+      x: number
+      y: number
+   },
+   circle: {
+      x: number
+      y: number
+      r: number
+   }
+) => boolean
(
    coordinate: {
       x: number
       y: number
@@ -436,18 +436,18 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       y: number
       r: number
    }
-) => boolean

Checks whether a certain coordinate point is on a circle.

  • coordinate coordinate point information
  • circle circle parameter
    • x the x-axis value of the center of the circle
    • y the y-axis value of the center of the circle
    • r radius

utils.checkCoordinateOnLine(coordinate, line)

typescript
(
-   coordinate: {
-      x: number
-      y: number
-   },
-   line: {
-      coordinates: Array<{
-         x: number
-         y: number
-      }>
-   }
-) => boolean
(
+) => boolean

Checks whether a certain coordinate point is on a circle.

  • coordinate coordinate point information
  • circle circle parameter
    • x the x-axis value of the center of the circle
    • y the y-axis value of the center of the circle
    • r radius

utils.checkCoordinateOnLine(coordinate, line)

typescript
(
+   coordinate: {
+      x: number
+      y: number
+   },
+   line: {
+      coordinates: Array<{
+         x: number
+         y: number
+      }>
+   }
+) => boolean
(
    coordinate: {
       x: number
       y: number
@@ -458,18 +458,18 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
          y: number
       }>
    }
-) => boolean

Check if a certain coordinate point is on the line.

utils.checkCoordinateOnPolygon(coordinate, polygon)

typescript
(
-   coordinate: {
-      x: number
-      y: number
-   },
-   polygon: {
-      coordinates: Array<{
-         x: number
-         y: number
-      }>
-   }
-) => boolean
(
+) => boolean

Check if a certain coordinate point is on the line.

utils.checkCoordinateOnPolygon(coordinate, polygon)

typescript
(
+   coordinate: {
+      x: number
+      y: number
+   },
+   polygon: {
+      coordinates: Array<{
+         x: number
+         y: number
+      }>
+   }
+) => boolean
(
    coordinate: {
       x: number
       y: number
@@ -480,18 +480,18 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
          y: number
       }>
    }
-) => boolean

Checks whether a certain coordinate point is on a polygon.

utils.checkCoordinateOnRect(coordinate, rect)

typescript
(
-   coordinate: {
-      x: number
-      y: number
-   },
-   rect: {
-      x: number
-      y: number
-      width: number
-      height: number
-   }
-) => boolean
(
+) => boolean

Checks whether a certain coordinate point is on a polygon.

utils.checkCoordinateOnRect(coordinate, rect)

typescript
(
+   coordinate: {
+      x: number
+      y: number
+   },
+   rect: {
+      x: number
+      y: number
+      width: number
+      height: number
+   }
+) => boolean
(
    coordinate: {
       x: number
       y: number
@@ -502,25 +502,25 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       width: number
       height: number
    }
-) => boolean

Checks whether a certain coordinate point is on a rectangle.

  • coordinate coordinate point information
  • rect rectangle parameter
    • x starting point x-axis value
    • y starting point y-axis value
    • width width
    • height height

utils.checkCoordinateOnText(coordinate, text, styles)

typescript
(
-   coordinate: {
-      x: number
-      y: number
-   },
-   text: {
-      x: number
-      y: number
-      text: any
-      align?: 'center' | 'end' | 'left' | 'right' | 'start'
-      baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
-   },
-   styles: {
-      color?: string
-      size?: number
-      family?: string
-      weight?: number | string
-   }
-) => boolean
(
+) => boolean

Checks whether a certain coordinate point is on a rectangle.

  • coordinate coordinate point information
  • rect rectangle parameter
    • x starting point x-axis value
    • y starting point y-axis value
    • width width
    • height height

utils.checkCoordinateOnText(coordinate, text, styles)

typescript
(
+   coordinate: {
+      x: number
+      y: number
+   },
+   text: {
+      x: number
+      y: number
+      text: any
+      align?: 'center' | 'end' | 'left' | 'right' | 'start'
+      baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
+   },
+   styles: {
+      color?: string
+      size?: number
+      family?: string
+      weight?: number | string
+   }
+) => boolean
(
    coordinate: {
       x: number
       y: number
@@ -538,22 +538,22 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       family?: string
       weight?: number | string
    }
-) => boolean

Check if a certain coordinate point is on the text.

  • coordinate coordinate point information
  • text text parameter
    • x starting point x-axis value
    • y starting point y-axis value
    • text text content
    • align horizontal alignment
    • baseline vertical alignment
  • styles styles
    • color color
    • size size
    • family font
    • weight weight

utils.drawArc(ctx, arc, styles)

typescript
(
-   ctx: CanvasRenderingContext2D,
-   arc: {
-      x: number
-      y: number
-      r: number
-      startAngle: number
-      endAngle: number
-   },
-   styles: {
-      style?: 'solid' | 'dashed'
-      size?: number
-      color?: string
-      dashedValue?: number[]
-   }
-) => void
(
+) => boolean

Check if a certain coordinate point is on the text.

  • coordinate coordinate point information
  • text text parameter
    • x starting point x-axis value
    • y starting point y-axis value
    • text text content
    • align horizontal alignment
    • baseline vertical alignment
  • styles styles
    • color color
    • size size
    • family font
    • weight weight

utils.drawArc(ctx, arc, styles)

typescript
(
+   ctx: CanvasRenderingContext2D,
+   arc: {
+      x: number
+      y: number
+      r: number
+      startAngle: number
+      endAngle: number
+   },
+   styles: {
+      style?: 'solid' | 'dashed'
+      size?: number
+      color?: string
+      dashedValue?: number[]
+   }
+) => void
(
    ctx: CanvasRenderingContext2D,
    arc: {
       x: number
@@ -568,22 +568,22 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       color?: string
       dashedValue?: number[]
    }
-) => void

Draw an arc.

  • ctx canvas context
  • arc arc parameter
    • x the x-axis value of the center of the circle
    • y the y-axis value of the center of the circle
    • r radius
    • startAngle starting angle
    • endAngle end angle
  • styles styles
    • style arc style
    • size thickness
    • color color
    • dashedValue Dashed parameter value

utils.drawCircle(ctx, circle, styles)

typescript
(
-   ctx: CanvasRenderingContext2D,
-   circle: {
-      x: number
-      y: number
-      r: number
-   },
-   styles: {
-      style?: 'stroke' | 'fill' | 'stroke_fill'
-      color?: string | CanvasGradient
-      borderColor?: string
-      borderSize?: number
-      borderStyle?: 'solid' | 'dashed'
-      borderDashedValue?: Array<number>
-   }
-) => void
(
+) => void

Draw an arc.

  • ctx canvas context
  • arc arc parameter
    • x the x-axis value of the center of the circle
    • y the y-axis value of the center of the circle
    • r radius
    • startAngle starting angle
    • endAngle end angle
  • styles styles
    • style arc style
    • size thickness
    • color color
    • dashedValue Dashed parameter value

utils.drawCircle(ctx, circle, styles)

typescript
(
+   ctx: CanvasRenderingContext2D,
+   circle: {
+      x: number
+      y: number
+      r: number
+   },
+   styles: {
+      style?: 'stroke' | 'fill' | 'stroke_fill'
+      color?: string | CanvasGradient
+      borderColor?: string
+      borderSize?: number
+      borderStyle?: 'solid' | 'dashed'
+      borderDashedValue?: Array<number>
+   }
+) => void
(
    ctx: CanvasRenderingContext2D,
    circle: {
       x: number
@@ -598,21 +598,21 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       borderStyle?: 'solid' | 'dashed'
       borderDashedValue?: Array<number>
    }
-) => void

Draw the circle.

  • ctx canvas context
  • circle circle parameter
    • x the x-axis value of the center of the circle
    • y the y-axis value of the center of the circle
    • r radius
  • styles styles
    • style style
    • color color
    • borderColor border color
    • borderSize border thickness
    • borderStyle border style
    • borderDashedValue border dashed line parameter value

utils.drawLine(ctx, line, styles)

typescript
(
-   ctx: CanvasRenderingContext2D,
-   line: {
-      coordinates: Array<{
-         x: number
-         y: number
-      }>
-   },
-   styles: {
-      style?: 'solid' | 'dashed'
-      size?: number
-      color?: string
-      dashedValue?: number[]
-   }
-) => void
(
+) => void

Draw the circle.

  • ctx canvas context
  • circle circle parameter
    • x the x-axis value of the center of the circle
    • y the y-axis value of the center of the circle
    • r radius
  • styles styles
    • style style
    • color color
    • borderColor border color
    • borderSize border thickness
    • borderStyle border style
    • borderDashedValue border dashed line parameter value

utils.drawLine(ctx, line, styles)

typescript
(
+   ctx: CanvasRenderingContext2D,
+   line: {
+      coordinates: Array<{
+         x: number
+         y: number
+      }>
+   },
+   styles: {
+      style?: 'solid' | 'dashed'
+      size?: number
+      color?: string
+      dashedValue?: number[]
+   }
+) => void
(
    ctx: CanvasRenderingContext2D,
    line: {
       coordinates: Array<{
@@ -626,23 +626,23 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       color?: string
       dashedValue?: number[]
    }
-) => void

Draw the line.

  • ctx canvas context
  • line line parameter
  • styles styles
    • style line style
    • size thickness
    • color color
    • dashedValue Dashed parameter value

utils.drawPolygon(ctx, polygon, styles)

typescript
(
-   ctx: CanvasRenderingContext2D,
-   polygon: {
-      coordinates: Array<{
-         x: number
-         y: number
-      }>
-   },
-   styles: {
-      style?: 'stroke' | 'fill' | 'stroke_fill'
-      color?: string | CanvasGradient
-      borderColor?: string
-      borderSize?: number
-      borderStyle?: 'solid' | 'dashed'
-      borderDashedValue?: Array<number>
-   }
-) => void
(
+) => void

Draw the line.

  • ctx canvas context
  • line line parameter
  • styles styles
    • style line style
    • size thickness
    • color color
    • dashedValue Dashed parameter value

utils.drawPolygon(ctx, polygon, styles)

typescript
(
+   ctx: CanvasRenderingContext2D,
+   polygon: {
+      coordinates: Array<{
+         x: number
+         y: number
+      }>
+   },
+   styles: {
+      style?: 'stroke' | 'fill' | 'stroke_fill'
+      color?: string | CanvasGradient
+      borderColor?: string
+      borderSize?: number
+      borderStyle?: 'solid' | 'dashed'
+      borderDashedValue?: Array<number>
+   }
+) => void
(
    ctx: CanvasRenderingContext2D,
    polygon: {
       coordinates: Array<{
@@ -658,24 +658,24 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       borderStyle?: 'solid' | 'dashed'
       borderDashedValue?: Array<number>
    }
-) => void

Draw the polygon.

  • ctx canvas context
  • polygon polygon parameter
  • styles styles
    • style style
    • color color
    • borderColor border color
    • borderSize border thickness
    • borderStyle border style
    • borderDashedValue border dashed line parameter value

utils.drawRect(ctx, rect, styles)

typescript
(
-   ctx: CanvasRenderingContext2D,
-   rect: {
-      x: number
-      y: number
-      width: number
-      height: number
-   },
-   styles: {
-      style?: 'stroke' | 'fill' | 'stroke_fill'
-      color?: string | CanvasGradient
-      borderColor?: string
-      borderSize?: number
-      borderStyle?: 'solid' | 'dashed'
-      borderDashedValue?: Array<number>
-      borderRadius?: number
-   }
-) => void
(
+) => void

Draw the polygon.

  • ctx canvas context
  • polygon polygon parameter
  • styles styles
    • style style
    • color color
    • borderColor border color
    • borderSize border thickness
    • borderStyle border style
    • borderDashedValue border dashed line parameter value

utils.drawRect(ctx, rect, styles)

typescript
(
+   ctx: CanvasRenderingContext2D,
+   rect: {
+      x: number
+      y: number
+      width: number
+      height: number
+   },
+   styles: {
+      style?: 'stroke' | 'fill' | 'stroke_fill'
+      color?: string | CanvasGradient
+      borderColor?: string
+      borderSize?: number
+      borderStyle?: 'solid' | 'dashed'
+      borderDashedValue?: Array<number>
+      borderRadius?: number
+   }
+) => void
(
    ctx: CanvasRenderingContext2D,
    rect: {
       x: number
@@ -692,35 +692,35 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       borderDashedValue?: Array<number>
       borderRadius?: number
    }
-) => void

Draw a rectangle.

  • ctx canvas context
  • rect rectangle parameter
    • x starting point x-axis value
    • y starting point y-axis value
    • width width
    • height height
  • styles styles
    • style style
    • color color
    • borderColor border color
    • borderSize border thickness
    • borderStyle border style
    • borderDashedValue border dashed line parameter value
    • borderRadius border radius

utils.drawRectText(ctx, rectText, styles)

typescript
(
-   ctx: CanvasRenderingContext2D,
-   rectText: {
-      x: number
-      y: number
-      text: any
-      width?: number
-      height?: number
-      align?: 'center' | 'end' | 'left' | 'right' | 'start'
-      baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
-   },
-   styles: {
-      style?: 'stroke' | 'fill' | 'stroke_fill'
-      color?: string
-      size?: number
-      family?: string
-      weight?: number | string
-      paddingLeft?: number
-      paddingTop?: number
-      paddingRight?: number
-      paddingBottom?: number
-      borderStyle?: 'solid' | 'dashed'
-      borderDashedValue?: number[]
-      borderSize?: number
-      borderColor?: string
-      borderRadius?: number
-      backgroundColor?: string
-   }
-) => void
(
+) => void

Draw a rectangle.

  • ctx canvas context
  • rect rectangle parameter
    • x starting point x-axis value
    • y starting point y-axis value
    • width width
    • height height
  • styles styles
    • style style
    • color color
    • borderColor border color
    • borderSize border thickness
    • borderStyle border style
    • borderDashedValue border dashed line parameter value
    • borderRadius border radius

utils.drawRectText(ctx, rectText, styles)

typescript
(
+   ctx: CanvasRenderingContext2D,
+   rectText: {
+      x: number
+      y: number
+      text: any
+      width?: number
+      height?: number
+      align?: 'center' | 'end' | 'left' | 'right' | 'start'
+      baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
+   },
+   styles: {
+      style?: 'stroke' | 'fill' | 'stroke_fill'
+      color?: string
+      size?: number
+      family?: string
+      weight?: number | string
+      paddingLeft?: number
+      paddingTop?: number
+      paddingRight?: number
+      paddingBottom?: number
+      borderStyle?: 'solid' | 'dashed'
+      borderDashedValue?: number[]
+      borderSize?: number
+      borderColor?: string
+      borderRadius?: number
+      backgroundColor?: string
+   }
+) => void
(
    ctx: CanvasRenderingContext2D,
    rectText: {
       x: number
@@ -748,4 +748,4 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       borderRadius?: number
       backgroundColor?: string
    }
-) => void

Draw text.

  • ctx canvas context
  • rectText text parameter
    • x starting point x-axis value
    • y starting point y-axis value
    • text text content
    • width width
    • height height
    • align horizontal alignment
    • baseline vertical alignment
  • styles styles
    • style style
    • color color
    • size size
    • family font
    • weight weight
    • paddingLeft left padding,
    • paddingTop top padding,
    • paddingRight right padding,
    • paddingBottom bottom padding,
    • borderColor border color
    • borderSize border thickness
    • borderStyle border style
    • borderRadius border radius size
    • borderDashedValue border dashed line parameter value
    • backgroundColor background color

utils.drawRectText(ctx, rectText, styles)

Same as utils.drawRectText(ctx, text, styles), it is deprecated and will be deleted after v10. Please use utils.drawRectText(ctx, text, styles) instead.

`,152),e=[o];function t(c,r,y,i,D,C){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{F as __pageData,d as default}; +) => void

Draw text.

  • ctx canvas context
  • rectText text parameter
    • x starting point x-axis value
    • y starting point y-axis value
    • text text content
    • width width
    • height height
    • align horizontal alignment
    • baseline vertical alignment
  • styles styles
    • style style
    • color color
    • size size
    • family font
    • weight weight
    • paddingLeft left padding,
    • paddingTop top padding,
    • paddingRight right padding,
    • paddingBottom bottom padding,
    • borderColor border color
    • borderSize border thickness
    • borderStyle border style
    • borderRadius border radius size
    • borderDashedValue border dashed line parameter value
    • backgroundColor background color

utils.drawRectText(ctx, rectText, styles)

Same as utils.drawRectText(ctx, text, styles), it is deprecated and will be deleted after v10. Please use utils.drawRectText(ctx, text, styles) instead.

`,152),e=[o];function t(c,r,y,i,D,B){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{F as __pageData,d as default}; diff --git a/assets/en-US_guide_chart-api.md.4f93847d.lean.js b/assets/en-US_guide_chart-api.md.4f93847d.lean.js new file mode 100644 index 000000000..36e299b95 --- /dev/null +++ b/assets/en-US_guide_chart-api.md.4f93847d.lean.js @@ -0,0 +1 @@ +import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const F=JSON.parse('{"title":"Chart API","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/chart-api.md","filePath":"en-US/guide/chart-api.md","lastUpdated":1692476796000}'),p={name:"en-US/guide/chart-api.md"},o=l("",152),e=[o];function t(c,r,y,i,D,B){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{F as __pageData,d as default}; diff --git a/assets/en-US_guide_chart-api.md.baa06226.lean.js b/assets/en-US_guide_chart-api.md.baa06226.lean.js deleted file mode 100644 index 01b011ae3..000000000 --- a/assets/en-US_guide_chart-api.md.baa06226.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=JSON.parse('{"title":"Chart API","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/chart-api.md","filePath":"en-US/guide/chart-api.md","lastUpdated":1692476949000}'),p={name:"en-US/guide/chart-api.md"},o=l("",152),e=[o];function t(c,r,y,i,D,C){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{F as __pageData,d as default}; diff --git a/assets/en-US_guide_datasource.md.0056d771.js b/assets/en-US_guide_datasource.md.f7ec9b53.js similarity index 90% rename from assets/en-US_guide_datasource.md.0056d771.js rename to assets/en-US_guide_datasource.md.f7ec9b53.js index 6f402166e..afddacded 100644 --- a/assets/en-US_guide_datasource.md.0056d771.js +++ b/assets/en-US_guide_datasource.md.f7ec9b53.js @@ -1,18 +1,18 @@ -import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const D=JSON.parse('{"title":"📚 Data","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/datasource.md","filePath":"en-US/guide/datasource.md","lastUpdated":1692476949000}'),e={name:"en-US/guide/datasource.md"},p=l(`

📚 Data

The data required for the chart must be in a fixed format. Through the chart API applyNewData(dataList, more), applyMoreData(dataList, more) and updateData(data) to interact data with the chart.

typescript
{
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.385ac4c3.js";const D=JSON.parse('{"title":"📚 Data","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/datasource.md","filePath":"en-US/guide/datasource.md","lastUpdated":1692476796000}'),e={name:"en-US/guide/datasource.md"},p=l(`

📚 Data

The data required for the chart must be in a fixed format. Through the chart API applyNewData(dataList, more), applyMoreData(dataList, more) and updateData(data) to interact data with the chart.

typescript
{
   // Timestamp, millisecond, required fields
-  timestamp: number
+  timestamp: number
   // Open price, required fields
-  open: number
+  open: number
   // Close price, required field
-  close: number
+  close: number
   // Highest price, required field
-  high: number
+  high: number
   // Lowest price, required field
-  low: number
+  low: number
   // volume, optional field
-  volume: number
+  volume: number
   // Turnover, a non-required field, if you need to display the technical indicators 'EMV' and 'AVP', you need to fill this field with data.
-  turnover: number
+  turnover: number
 }
{
   // Timestamp, millisecond, required fields
   timestamp: number
diff --git a/assets/en-US_guide_datasource.md.0056d771.lean.js b/assets/en-US_guide_datasource.md.f7ec9b53.lean.js
similarity index 56%
rename from assets/en-US_guide_datasource.md.0056d771.lean.js
rename to assets/en-US_guide_datasource.md.f7ec9b53.lean.js
index 6600cdeb8..48a291932 100644
--- a/assets/en-US_guide_datasource.md.0056d771.lean.js
+++ b/assets/en-US_guide_datasource.md.f7ec9b53.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const D=JSON.parse('{"title":"📚 Data","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/datasource.md","filePath":"en-US/guide/datasource.md","lastUpdated":1692476949000}'),e={name:"en-US/guide/datasource.md"},p=l("",3),o=[p];function t(r,c,i,y,d,F){return a(),n("div",null,o)}const m=s(e,[["render",t]]);export{D as __pageData,m as default};
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.385ac4c3.js";const D=JSON.parse('{"title":"📚 Data","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/datasource.md","filePath":"en-US/guide/datasource.md","lastUpdated":1692476796000}'),e={name:"en-US/guide/datasource.md"},p=l("",3),o=[p];function t(r,c,i,y,d,F){return a(),n("div",null,o)}const m=s(e,[["render",t]]);export{D as __pageData,m as default};
diff --git a/assets/en-US_guide_environment.md.d392da34.js b/assets/en-US_guide_environment.md.c403487c.js
similarity index 84%
rename from assets/en-US_guide_environment.md.d392da34.js
rename to assets/en-US_guide_environment.md.c403487c.js
index f5a04a3a8..0f7824bef 100644
--- a/assets/en-US_guide_environment.md.d392da34.js
+++ b/assets/en-US_guide_environment.md.c403487c.js
@@ -1,7 +1,7 @@
-import{_ as s,o as a,c as n,X as o}from"./chunks/framework.6909765d.js";const F=JSON.parse('{"title":"🏝️ Environment","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/environment.md","filePath":"en-US/guide/environment.md","lastUpdated":1692476949000}'),l={name:"en-US/guide/environment.md"},e=o(`

🏝️ Environment

Browser support

The chart is built based on html5 canvas and needs to run on a browser that supports canvas. If it needs to run on the mobile terminal, please use webview to load it.

Polyfill

core.js

The internal collection of the chart uses Map for compatibility with unsupported older browsers.

javascript
import 'core.js';
-import { init } from 'klincharts';
import 'core.js';
-import { init } from 'klincharts';

Intl.js

Charts rely on Intl, some browsers do not have this API.

javascript
import 'intl';
-import 'intl/local-data/jsonp/en';
-import { init } from 'klincharts';
import 'intl';
+import{_ as s,o as a,c as n,Q as o}from"./chunks/framework.385ac4c3.js";const F=JSON.parse('{"title":"🏝️ Environment","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/environment.md","filePath":"en-US/guide/environment.md","lastUpdated":1679066795000}'),l={name:"en-US/guide/environment.md"},e=o(`

🏝️ Environment

Browser support

The chart is built based on html5 canvas and needs to run on a browser that supports canvas. If it needs to run on the mobile terminal, please use webview to load it.

Polyfill

core.js

The internal collection of the chart uses Map for compatibility with unsupported older browsers.

javascript
import 'core.js';
+import { init } from 'klincharts';
import 'core.js';
+import { init } from 'klincharts';

Intl.js

Charts rely on Intl, some browsers do not have this API.

javascript
import 'intl';
+import 'intl/local-data/jsonp/en';
+import { init } from 'klincharts';
import 'intl';
 import 'intl/local-data/jsonp/en';
 import { init } from 'klincharts';
`,10),t=[e];function p(r,c,i,y,D,h){return a(),n("div",null,t)}const m=s(l,[["render",p]]);export{F as __pageData,m as default}; diff --git a/assets/en-US_guide_environment.md.d392da34.lean.js b/assets/en-US_guide_environment.md.c403487c.lean.js similarity index 57% rename from assets/en-US_guide_environment.md.d392da34.lean.js rename to assets/en-US_guide_environment.md.c403487c.lean.js index 896e69a78..91e7f85af 100644 --- a/assets/en-US_guide_environment.md.d392da34.lean.js +++ b/assets/en-US_guide_environment.md.c403487c.lean.js @@ -1 +1 @@ -import{_ as s,o as a,c as n,X as o}from"./chunks/framework.6909765d.js";const F=JSON.parse('{"title":"🏝️ Environment","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/environment.md","filePath":"en-US/guide/environment.md","lastUpdated":1692476949000}'),l={name:"en-US/guide/environment.md"},e=o("",10),t=[e];function p(r,c,i,y,D,h){return a(),n("div",null,t)}const m=s(l,[["render",p]]);export{F as __pageData,m as default}; +import{_ as s,o as a,c as n,Q as o}from"./chunks/framework.385ac4c3.js";const F=JSON.parse('{"title":"🏝️ Environment","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/environment.md","filePath":"en-US/guide/environment.md","lastUpdated":1679066795000}'),l={name:"en-US/guide/environment.md"},e=o("",10),t=[e];function p(r,c,i,y,D,h){return a(),n("div",null,t)}const m=s(l,[["render",p]]);export{F as __pageData,m as default}; diff --git a/assets/en-US_guide_faq.md.4989ad59.js b/assets/en-US_guide_faq.md.cbf5bfe9.js similarity index 86% rename from assets/en-US_guide_faq.md.4989ad59.js rename to assets/en-US_guide_faq.md.cbf5bfe9.js index b4b265d06..06eb9ad71 100644 --- a/assets/en-US_guide_faq.md.4989ad59.js +++ b/assets/en-US_guide_faq.md.cbf5bfe9.js @@ -1,8 +1,8 @@ -import{_ as a,o as e,c as t,X as n}from"./chunks/framework.6909765d.js";const f=JSON.parse('{"title":"🙋 FAQ","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/faq.md","filePath":"en-US/guide/faq.md","lastUpdated":1692476949000}'),o={name:"en-US/guide/faq.md"},s=n(`

🙋 FAQ

After the chart is initialized, only one line can be seen?

The chart always fills the container, checking to see if the container has height.

The candle shows a line, no fluctuation, what to do?

Chart default price precision is two decimal, call setPriceVolumePrecision(pricePrecision, volumePrecision) to set the precision.

How to create a real-time chart?

Through style settings.

javascript
chart.setStyles({
-  candle: {
-    type: 'area',
-  },
-});
chart.setStyles({
+import{_ as a,o as e,c as t,Q as n}from"./chunks/framework.385ac4c3.js";const f=JSON.parse('{"title":"🙋 FAQ","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/faq.md","filePath":"en-US/guide/faq.md","lastUpdated":1681557501000}'),o={name:"en-US/guide/faq.md"},s=n(`

🙋 FAQ

After the chart is initialized, only one line can be seen?

The chart always fills the container, checking to see if the container has height.

The candle shows a line, no fluctuation, what to do?

Chart default price precision is two decimal, call setPriceVolumePrecision(pricePrecision, volumePrecision) to set the precision.

How to create a real-time chart?

Through style settings.

javascript
chart.setStyles({
+  candle: {
+    type: 'area',
+  },
+});
chart.setStyles({
   candle: {
     type: 'area',
   },
diff --git a/assets/en-US_guide_faq.md.4989ad59.lean.js b/assets/en-US_guide_faq.md.cbf5bfe9.lean.js
similarity index 54%
rename from assets/en-US_guide_faq.md.4989ad59.lean.js
rename to assets/en-US_guide_faq.md.cbf5bfe9.lean.js
index db702f6d0..09d2dd56e 100644
--- a/assets/en-US_guide_faq.md.4989ad59.lean.js
+++ b/assets/en-US_guide_faq.md.cbf5bfe9.lean.js
@@ -1 +1 @@
-import{_ as a,o as e,c as t,X as n}from"./chunks/framework.6909765d.js";const f=JSON.parse('{"title":"🙋 FAQ","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/faq.md","filePath":"en-US/guide/faq.md","lastUpdated":1692476949000}'),o={name:"en-US/guide/faq.md"},s=n("",14),l=[s];function i(c,r,h,p,d,u){return e(),t("div",null,l)}const w=a(o,[["render",i]]);export{f as __pageData,w as default};
+import{_ as a,o as e,c as t,Q as n}from"./chunks/framework.385ac4c3.js";const f=JSON.parse('{"title":"🙋 FAQ","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/faq.md","filePath":"en-US/guide/faq.md","lastUpdated":1681557501000}'),o={name:"en-US/guide/faq.md"},s=n("",14),l=[s];function i(c,r,h,p,d,u){return e(),t("div",null,l)}const w=a(o,[["render",i]]);export{f as __pageData,w as default};
diff --git a/assets/en-US_guide_feedback.md.4016f8e9.js b/assets/en-US_guide_feedback.md.00b7599e.js
similarity index 91%
rename from assets/en-US_guide_feedback.md.4016f8e9.js
rename to assets/en-US_guide_feedback.md.00b7599e.js
index d5bf1b77d..11dded9e3 100644
--- a/assets/en-US_guide_feedback.md.4016f8e9.js
+++ b/assets/en-US_guide_feedback.md.00b7599e.js
@@ -1 +1 @@
-import{_ as e,a}from"./chunks/qq_group_qr_code.5c7ad67d.js";import{_ as t,o as r,c as i,X as s}from"./chunks/framework.6909765d.js";const f=JSON.parse('{"title":"💬 Feedback","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/feedback.md","filePath":"en-US/guide/feedback.md","lastUpdated":1692476949000}'),o={name:"en-US/guide/feedback.md"},h=s('

💬 Feedback

Github

Telegram

https://t.me/+098syuQtzI0yNzll

Discord

https://discord.gg/7YjHYgvvvZ

Wechat discussion group

Scan to add developers, note KLineChart, and join the group chat.

QQ discussion group

',11),d=[h];function c(n,l,u,p,g,_){return r(),i("div",null,d)}const k=t(o,[["render",c]]);export{f as __pageData,k as default}; +import{_ as e,a}from"./chunks/qq_group_qr_code.5c7ad67d.js";import{_ as t,o as r,c as i,Q as s}from"./chunks/framework.385ac4c3.js";const f=JSON.parse('{"title":"💬 Feedback","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/feedback.md","filePath":"en-US/guide/feedback.md","lastUpdated":1684958808000}'),o={name:"en-US/guide/feedback.md"},h=s('

💬 Feedback

Github

Telegram

https://t.me/+098syuQtzI0yNzll

Discord

https://discord.gg/7YjHYgvvvZ

Wechat discussion group

Scan to add developers, note KLineChart, and join the group chat.

QQ discussion group

',11),d=[h];function c(n,l,u,p,g,_){return r(),i("div",null,d)}const k=t(o,[["render",c]]);export{f as __pageData,k as default}; diff --git a/assets/en-US_guide_feedback.md.4016f8e9.lean.js b/assets/en-US_guide_feedback.md.00b7599e.lean.js similarity index 61% rename from assets/en-US_guide_feedback.md.4016f8e9.lean.js rename to assets/en-US_guide_feedback.md.00b7599e.lean.js index 78c1931cf..c2db818db 100644 --- a/assets/en-US_guide_feedback.md.4016f8e9.lean.js +++ b/assets/en-US_guide_feedback.md.00b7599e.lean.js @@ -1 +1 @@ -import{_ as e,a}from"./chunks/qq_group_qr_code.5c7ad67d.js";import{_ as t,o as r,c as i,X as s}from"./chunks/framework.6909765d.js";const f=JSON.parse('{"title":"💬 Feedback","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/feedback.md","filePath":"en-US/guide/feedback.md","lastUpdated":1692476949000}'),o={name:"en-US/guide/feedback.md"},h=s("",11),d=[h];function c(n,l,u,p,g,_){return r(),i("div",null,d)}const k=t(o,[["render",c]]);export{f as __pageData,k as default}; +import{_ as e,a}from"./chunks/qq_group_qr_code.5c7ad67d.js";import{_ as t,o as r,c as i,Q as s}from"./chunks/framework.385ac4c3.js";const f=JSON.parse('{"title":"💬 Feedback","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/feedback.md","filePath":"en-US/guide/feedback.md","lastUpdated":1684958808000}'),o={name:"en-US/guide/feedback.md"},h=s("",11),d=[h];function c(n,l,u,p,g,_){return r(),i("div",null,d)}const k=t(o,[["render",c]]);export{f as __pageData,k as default}; diff --git a/assets/en-US_guide_figure.md.95649728.lean.js b/assets/en-US_guide_figure.md.95649728.lean.js deleted file mode 100644 index 7e05f257c..000000000 --- a/assets/en-US_guide_figure.md.95649728.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=JSON.parse('{"title":"Figure","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/figure.md","filePath":"en-US/guide/figure.md","lastUpdated":1692476949000}'),p={name:"en-US/guide/figure.md"},o=l("",33),e=[o];function t(c,r,y,i,D,F){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{C as __pageData,d as default}; diff --git a/assets/en-US_guide_figure.md.95649728.js b/assets/en-US_guide_figure.md.e43e3059.js similarity index 80% rename from assets/en-US_guide_figure.md.95649728.js rename to assets/en-US_guide_figure.md.e43e3059.js index b627eead6..fc459d69a 100644 --- a/assets/en-US_guide_figure.md.95649728.js +++ b/assets/en-US_guide_figure.md.e43e3059.js @@ -1,41 +1,41 @@ -import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=JSON.parse('{"title":"Figure","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/figure.md","filePath":"en-US/guide/figure.md","lastUpdated":1692476949000}'),p={name:"en-US/guide/figure.md"},o=l(`

Figure

Figure are an important part of the chart. All elements on the chart are composed of figures. If you need to make complex custom technical indicators and overlays, it is recommended to read carefully. This document describes the built-in figures and how to customize a figure. The basic figure can be obtained through the chart method klinecharts.getFigureClass(name).

Example of use

Note

It needs to be used when there is a canvas context.

javascript
// Get the figure class
+import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const B=JSON.parse('{"title":"Figure","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/figure.md","filePath":"en-US/guide/figure.md","lastUpdated":1692476796000}'),p={name:"en-US/guide/figure.md"},o=l(`

Figure

Figure are an important part of the chart. All elements on the chart are composed of figures. If you need to make complex custom technical indicators and overlays, it is recommended to read carefully. This document describes the built-in figures and how to customize a figure. The basic figure can be obtained through the chart method klinecharts.getFigureClass(name).

Example of use

Note

It needs to be used when there is a canvas context.

javascript
// Get the figure class
 // name is the name of the figure, such as 'arc', 'circle', etc.
-const Figure = klinecharts.getFigureClass(name)
+const Figure = klinecharts.getFigureClass(name)
 // instantiate and draw
 // attrs attribute
 // styles styles
 // ctx canvas context
-new Figure(attrs, styles).draw(ctx)
// Get the figure class
+new Figure(attrs, styles).draw(ctx)
// Get the figure class
 // name is the name of the figure, such as 'arc', 'circle', etc.
 const Figure = klinecharts.getFigureClass(name)
 // instantiate and draw
 // attrs attribute
 // styles styles
 // ctx canvas context
-new Figure(attrs, styles).draw(ctx)

Built-in figures

These figures are built into the chart, arc, circle, line, polygon, rect, text, rectText.

arc

typescript
new ({
-   attrs: {
+new Figure(attrs, styles).draw(ctx)

Built-in figures

These figures are built into the chart, arc, circle, line, polygon, rect, text, rectText.

arc

typescript
new ({
+   attrs: {
      // The x-axis coordinate value of the center of the circle
-     x: number
+     x: number
      // The y-axis coordinate value of the center of the circle
-     y: number
+     y: number
      // radius
-     r: number
+     r: number
      // start angle
-     startAngle: number
+     startAngle: number
      // end angle
-     endAngle: number
-   },
-   styles: {
+     endAngle: number
+   },
+   styles: {
      // style, optional \`solid\`, \`dashed\`
-     style?: 'solid' | 'dashed'
+     style?: 'solid' | 'dashed'
      // size
-     size?: number
+     size?: number
      // color
-     color?: string
+     color?: string
      // dotted line parameter
-     dashedValue?: number[]
-   }
-}) => Figure
new ({
+     dashedValue?: number[]
+   }
+}) => Figure
new ({
    attrs: {
      // The x-axis coordinate value of the center of the circle
      x: number
@@ -58,30 +58,30 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=
      // dotted line parameter
      dashedValue?: number[]
    }
-}) => Figure

circle

typescript
new ({
-   attrs: {
+}) => Figure

circle

typescript
new ({
+   attrs: {
      // The x-axis coordinate value of the center of the circle
-     x: number
+     x: number
      // The y-axis coordinate value of the center of the circle
-     y: number
+     y: number
      // radius
-     r: number
-   },
-   styles: {
+     r: number
+   },
+   styles: {
      // style, optional \`fill\`, \`stroke\`, \`stroke_fill\`
-     style?: 'fill' | 'stroke' | 'stroke_fill'
+     style?: 'fill' | 'stroke' | 'stroke_fill'
      // color
-     color?: string
+     color?: string
      // border style
-     borderStyle?: 'solid' | 'dashed'
+     borderStyle?: 'solid' | 'dashed'
      // border color
-     borderColor?: string
+     borderColor?: string
      // frame size
-     borderSize?: number
+     borderSize?: number
      // border dotted line parameters
-     borderDashedValue?: number[]
-   }
-}) => Figure
new ({
+     borderDashedValue?: number[]
+   }
+}) => Figure
new ({
    attrs: {
      // The x-axis coordinate value of the center of the circle
      x: number
@@ -104,25 +104,25 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=
      // border dotted line parameters
      borderDashedValue?: number[]
    }
-}) => Figure

line

typescript
new ({
-  attrs: {
+}) => Figure

line

typescript
new ({
+  attrs: {
     // set of coordinates
-    coordinates: Array<{
-      x: number
-      y: number
-    }>
-  },
-  styles: {
+    coordinates: Array<{
+      x: number
+      y: number
+    }>
+  },
+  styles: {
     // style, optional \`solid\`, \`dashed\`
-    style?: 'solid' | 'dashed'
+    style?: 'solid' | 'dashed'
     // size
-    size?: number
+    size?: number
     // color
-    color?: string
+    color?: string
     // dotted line parameter
-    dashedValue?: number[]
-  }
-}) => Figure
new ({
+    dashedValue?: number[]
+  }
+}) => Figure
new ({
   attrs: {
     // set of coordinates
     coordinates: Array<{
@@ -140,29 +140,29 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=
     // dotted line parameter
     dashedValue?: number[]
   }
-}) => Figure

###polygon

typescript
new ({
-  attrs: {
+}) => Figure

###polygon

typescript
new ({
+  attrs: {
     // set of coordinates
-    coordinates: Array<{
-      x: number
-      y: number
-    }>
-  },
-  styles: {
+    coordinates: Array<{
+      x: number
+      y: number
+    }>
+  },
+  styles: {
     // style, optional \`fill\`, \`stroke\`, \`stroke_fill\`
-    style?: 'fill' | 'stroke' | 'stroke_fill'
+    style?: 'fill' | 'stroke' | 'stroke_fill'
     // color
-    color?: string
+    color?: string
     // border style
-    borderStyle?: 'solid' | 'dashed'
+    borderStyle?: 'solid' | 'dashed'
     // border color
-    borderColor?: string
+    borderColor?: string
     // frame size
-    borderSize?: number
+    borderSize?: number
     // border dotted line parameter
-    borderDashedValue?: number[]
-  }
-}) => Figure
new ({
+    borderDashedValue?: number[]
+  }
+}) => Figure
new ({
   attrs: {
     // set of coordinates
     coordinates: Array<{
@@ -184,34 +184,34 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=
     // border dotted line parameter
     borderDashedValue?: number[]
   }
-}) => Figure

rect

typescript
new ({
-  attrs: {
+}) => Figure

rect

typescript
new ({
+  attrs: {
     // The x-axis coordinate value of the starting point
-    x: number
+    x: number
     // The y-axis coordinate value of the starting point
-    y: number
+    y: number
     // width
-    width: number
+    width: number
     // high
-    height: number
-  },
-  styles: {
+    height: number
+  },
+  styles: {
     // style, optional \`fill\`, \`stroke\`, \`stroke_fill\`
-    style?: 'fill' | 'stroke' | 'stroke_fill'
+    style?: 'fill' | 'stroke' | 'stroke_fill'
     // color
-    color?: string
+    color?: string
     // border style
-    borderStyle?: 'solid' | 'dashed'
+    borderStyle?: 'solid' | 'dashed'
     // border color
-    borderColor?: string
+    borderColor?: string
     // frame size
-    borderSize?: number
+    borderSize?: number
     // border dotted line parameters
-    borderDashedValue?: number[]
+    borderDashedValue?: number[]
     // Border fillet value
-    borderRadius?: number
-  }
-}) => Figure
new ({
+    borderRadius?: number
+  }
+}) => Figure
new ({
   attrs: {
     // The x-axis coordinate value of the starting point
     x: number
@@ -238,56 +238,56 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=
     // Border fillet value
     borderRadius?: number
   }
-}) => Figure

text

typescript
new ({
-  attrs: {
+}) => Figure

text

typescript
new ({
+  attrs: {
     // The x-axis coordinate value of the starting point
-    x: number
+    x: number
     // The y-axis coordinate value of the starting point
-    y: number
+    y: number
     // Fixed width
-    width: number
+    width: number
     // Fixed height
-    height: number
+    height: number
     // text content
-    text: any
+    text: any
     // alignment
-    align: CanvasTextAlign
+    align: CanvasTextAlign
      // benchmark
-    baseline: CanvasTextBaseline
-  },
-  styles: {
+    baseline: CanvasTextBaseline
+  },
+  styles: {
     // style, optional \`fill\`, \`stroke\`, \`stroke_fill\`
-    style?: 'fill' | 'stroke' | 'stroke_fill'
+    style?: 'fill' | 'stroke' | 'stroke_fill'
     // color
-    color?: string
+    color?: string
     // size
-    size?: number
+    size?: number
     // font
-    family?: string
+    family?: string
     // thickness
-    weight?: string | number
+    weight?: string | number
     // left padding
-    paddingLeft?: number
+    paddingLeft?: number
     // right padding
-    paddingRight?: number
+    paddingRight?: number
     // top padding
-    paddingTop?: number
+    paddingTop?: number
     // Bottom padding
-    paddingBottom?: number
+    paddingBottom?: number
     // border style
-    borderStyle?: 'solid' | 'dashed'
+    borderStyle?: 'solid' | 'dashed'
     // border color
-    borderColor?: string
+    borderColor?: string
     // frame size
-    borderSize?: number
+    borderSize?: number
     // border dotted line parameter
-    borderDashedValue?: number[]
+    borderDashedValue?: number[]
     // Border fillet value
-    borderRadius?: number
+    borderRadius?: number
     // background color
-    backgroundColor?: string | CanvasGradient
-  }
-}) => Figure
new ({
+    backgroundColor?: string | CanvasGradient
+  }
+}) => Figure
new ({
   attrs: {
     // The x-axis coordinate value of the starting point
     x: number
@@ -338,29 +338,29 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=
   }
 }) => Figure

rectText

Same as text, it is deprecated and will be deleted after v10. Please use text instead.

Customize figure

To create a custom figure, you only need to generate the figure information, and then add it globally through klinecharts.registerFigure, and add it to the chart to use it like the built-in figures.

Attribute description

typescript
{
   // Figure name, a required field, is the unique identifier for creation
-  name: string
+  name: string
 
   // Check whether the event is on the graph, return a boolean value
   checkEventOn: (
     // coordinates of the event
-    coordinate: {
-      x: number
-      y: number
+    coordinate: {
+      x: number
+      y: number
     },
     // graphics properties
-    attrs: any,
+    attrs: any,
      // style of the graph
-    styles: any
-  ) => boolean
+    styles: any
+  ) => boolean
 
   // draw
   draw: (
     // canvas context
-    ctx: CanvasRenderingContext2D,
+    ctx: CanvasRenderingContext2D,
     // figure properties
-    attrs: any,
+    attrs: any,
     // style of the figure
-    styles: any
+    styles: any
   ) => void
 }
{
   // Figure name, a required field, is the unique identifier for creation
@@ -390,50 +390,50 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=
   ) => void
 }

Example

The customization is specified with a diamond that can have a border and a background.

Step.1

First determine the attributes and styles. Attribute { x, y, width, height }, x is the x-axis coordinate value of the center point, y is the y-axis coordinate value of the center point, width is the width, and height is the height. Style { style, color, borderStyle, borderSize, borderColor, dashedValue }, style is the style type, we can define three options stroke, fill, stroke_fill, stroke has only a border, fill Only the background, stroke_fill has a border and a background, color is the color, borderStyle is the border style, you can define two options solid and dashed, solid is a solid line, dashed is a dashed line, borderSize is the border size, borderColor is the border color, and dashedValue is the dashed line value.

Step.2

Implement checkEventOn and draw two methods.

javascript
{
    name: 'diamond',
-   checkEventOn: (coordinate, attrs) => {
-     const { x, y, width, height } = attrs
-     const xDis = Math.abs(coordinate.x - x)
-     const yDis = Math.abs(coordinate.y - y)
-     return xDis * height + yDis * width < width * height / 2
+   checkEventOn: (coordinate, attrs) => {
+     const { x, y, width, height } = attrs
+     const xDis = Math.abs(coordinate.x - x)
+     const yDis = Math.abs(coordinate.y - y)
+     return xDis * height + yDis * width < width * height / 2
    },
-   draw: (ctx, attrs, styles) => {
-     const { x, y, width, height } = attrs
+   draw: (ctx, attrs, styles) => {
+     const { x, y, width, height } = attrs
      const {
-       style = 'fill',
-       color = 'currentColor',
-       borderSize = 1,
-       borderColor = 'currentColor',
-       borderStyle = 'solid,
-       borderDashedValue = [2, 2]
-     } = styles
+       style = 'fill',
+       color = 'currentColor',
+       borderSize = 1,
+       borderColor = 'currentColor',
+       borderStyle = 'solid,
+       borderDashedValue = [2, 2]
+     } = styles
      // Draw a filled diamond
-     if (style === 'fill' || styles.style === 'stroke_fill') {
-       ctx.fillStyle = color
-       ctx.beginPath()
-       ctx.moveTo(x - width / 2, y)
-       ctx.lineTo(x, y - height / 2)
-       ctx.lineTo(x + width / 2, y)
-       ctx.lineTo(x, y + height / 2)
-       ctx. closePath()
-       ctx.fill()
+     if (style === 'fill' || styles.style === 'stroke_fill') {
+       ctx.fillStyle = color
+       ctx.beginPath()
+       ctx.moveTo(x - width / 2, y)
+       ctx.lineTo(x, y - height / 2)
+       ctx.lineTo(x + width / 2, y)
+       ctx.lineTo(x, y + height / 2)
+       ctx. closePath()
+       ctx.fill()
      }
      // Draw a border diamond
-     if (style === 'stroke' || styles.style === 'stroke_fill') {
-       ctx.strokeStyle = borderColor
-       ctx.lineWidth = borderSize
-       if (borderStyle === 'dashed') {
-         ctx.setLineDash(borderDashedValue)
+     if (style === 'stroke' || styles.style === 'stroke_fill') {
+       ctx.strokeStyle = borderColor
+       ctx.lineWidth = borderSize
+       if (borderStyle === 'dashed') {
+         ctx.setLineDash(borderDashedValue)
        } else {
-         ctx. setLineDash([])
+         ctx. setLineDash([])
        }
-       ctx.beginPath()
-       ctx.beginPath()
-       ctx.moveTo(x - width / 2, y)
-       ctx.lineTo(x, y - height / 2)
-       ctx.lineTo(x + width / 2, y)
-       ctx.lineTo(x, y + height / 2)
-       ctx. closePath()
-       ctx.stroke()
+       ctx.beginPath()
+       ctx.beginPath()
+       ctx.moveTo(x - width / 2, y)
+       ctx.lineTo(x, y - height / 2)
+       ctx.lineTo(x + width / 2, y)
+       ctx.lineTo(x, y + height / 2)
+       ctx. closePath()
+       ctx.stroke()
      }
    }
 }
{
@@ -484,4 +484,4 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=
        ctx.stroke()
      }
    }
-}

So a custom figure is completed.

`,33),e=[o];function t(c,r,y,i,D,F){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{C as __pageData,d as default}; +}

So a custom figure is completed.

`,33),e=[o];function t(c,r,y,i,D,F){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{B as __pageData,d as default}; diff --git a/assets/en-US_guide_figure.md.e43e3059.lean.js b/assets/en-US_guide_figure.md.e43e3059.lean.js new file mode 100644 index 000000000..76fa4e0ff --- /dev/null +++ b/assets/en-US_guide_figure.md.e43e3059.lean.js @@ -0,0 +1 @@ +import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const B=JSON.parse('{"title":"Figure","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/figure.md","filePath":"en-US/guide/figure.md","lastUpdated":1692476796000}'),p={name:"en-US/guide/figure.md"},o=l("",33),e=[o];function t(c,r,y,i,D,F){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{B as __pageData,d as default}; diff --git a/assets/en-US_guide_getting-started.md.e521916e.lean.js b/assets/en-US_guide_getting-started.md.e521916e.lean.js deleted file mode 100644 index 650c7f55a..000000000 --- a/assets/en-US_guide_getting-started.md.e521916e.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const A=JSON.parse('{"title":"🚀 Getting started","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/getting-started.md","filePath":"en-US/guide/getting-started.md","lastUpdated":1692476949000}'),p={name:"en-US/guide/getting-started.md"},o=l("",16),e=[o];function t(c,r,y,F,D,C){return a(),n("div",null,e)}const h=s(p,[["render",t]]);export{A as __pageData,h as default}; diff --git a/assets/en-US_guide_getting-started.md.e521916e.js b/assets/en-US_guide_getting-started.md.ee2bf999.js similarity index 81% rename from assets/en-US_guide_getting-started.md.e521916e.js rename to assets/en-US_guide_getting-started.md.ee2bf999.js index 1899fe291..7170e187e 100644 --- a/assets/en-US_guide_getting-started.md.e521916e.js +++ b/assets/en-US_guide_getting-started.md.ee2bf999.js @@ -1,21 +1,21 @@ -import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const A=JSON.parse('{"title":"🚀 Getting started","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/getting-started.md","filePath":"en-US/guide/getting-started.md","lastUpdated":1692476949000}'),p={name:"en-US/guide/getting-started.md"},o=l(`

🚀 Getting started

Get KLineChart

KLineChart supports multiple download methods, you can get it through package management tools such as npm or yarn, or through CDN.

Using npm

bash
npm install klinecharts --save
npm install klinecharts --save

use yarn

bash
yarn add klinecharts
yarn add klinecharts

Using a CDN

You can use jsDelivr, unpkg or others, it is recommended to quote from jsDelivr.

bash
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script>

Create the first chart

Created in the project of package management tools such as npm or yarn

javascript
import { init } from 'klinecharts'
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.385ac4c3.js";const E=JSON.parse('{"title":"🚀 Getting started","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/getting-started.md","filePath":"en-US/guide/getting-started.md","lastUpdated":1679507254000}'),p={name:"en-US/guide/getting-started.md"},o=l(`

🚀 Getting started

Get KLineChart

KLineChart supports multiple download methods, you can get it through package management tools such as npm or yarn, or through CDN.

Using npm

bash
npm install klinecharts --save
npm install klinecharts --save

use yarn

bash
yarn add klinecharts
yarn add klinecharts

Using a CDN

You can use jsDelivr, unpkg or others, it is recommended to quote from jsDelivr.

bash
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script>

Create the first chart

Created in the project of package management tools such as npm or yarn

javascript
import { init } from 'klinecharts'
 
 // initialize the chart
-const chart = init(\`\${domId}\`)
+const chart = init(\`\${domId}\`)
 
 // add data to the chart
-chart.applyNewData([
-   { close: 4976.16, high: 4977.99, low: 4970.12, open: 4972.89, timestamp: 1587660000000, volume: 204 },
-   { close: 4977.33, high: 4979.94, low: 4971.34, open: 4973.20, timestamp: 1587660060000, volume: 194 },
-   { close: 4977.93, high: 4977.93, low: 4974.20, open: 4976.53, timestamp: 1587660120000, volume: 197 },
-   { close: 4966.77, high: 4968.53, low: 4962.20, open: 4963.88, timestamp: 1587660180000, volume: 28 },
-   { close: 4961.56, high: 4972.61, low: 4961.28, open: 4961.28, timestamp: 1587660240000, volume: 184 },
-   { close: 4964.19, high: 4964.74, low: 4961.42, open: 4961.64, timestamp: 1587660300000, volume: 191 },
-   { close: 4968.93, high: 4972.70, low: 4964.55, open: 4966.96, timestamp: 1587660360000, volume: 105 },
-   { close: 4979.31, high: 4979.61, low: 4973.99, open: 4977.06, timestamp: 1587660420000, volume: 35 },
-   { close: 4977.02, high: 4981.66, low: 4975.14, open: 4981.66, timestamp: 1587660480000, volume: 135 },
-   { close: 4985.09, high: 4988.62, low: 4980.30, open: 4986.72, timestamp: 1587660540000, volume: 76 }
-])
import { init } from 'klinecharts'
+chart.applyNewData([
+   { close: 4976.16, high: 4977.99, low: 4970.12, open: 4972.89, timestamp: 1587660000000, volume: 204 },
+   { close: 4977.33, high: 4979.94, low: 4971.34, open: 4973.20, timestamp: 1587660060000, volume: 194 },
+   { close: 4977.93, high: 4977.93, low: 4974.20, open: 4976.53, timestamp: 1587660120000, volume: 197 },
+   { close: 4966.77, high: 4968.53, low: 4962.20, open: 4963.88, timestamp: 1587660180000, volume: 28 },
+   { close: 4961.56, high: 4972.61, low: 4961.28, open: 4961.28, timestamp: 1587660240000, volume: 184 },
+   { close: 4964.19, high: 4964.74, low: 4961.42, open: 4961.64, timestamp: 1587660300000, volume: 191 },
+   { close: 4968.93, high: 4972.70, low: 4964.55, open: 4966.96, timestamp: 1587660360000, volume: 105 },
+   { close: 4979.31, high: 4979.61, low: 4973.99, open: 4977.06, timestamp: 1587660420000, volume: 35 },
+   { close: 4977.02, high: 4981.66, low: 4975.14, open: 4981.66, timestamp: 1587660480000, volume: 135 },
+   { close: 4985.09, high: 4988.62, low: 4980.30, open: 4986.72, timestamp: 1587660540000, volume: 76 }
+])
import { init } from 'klinecharts'
 
 // initialize the chart
 const chart = init(\`\${domId}\`)
@@ -34,23 +34,23 @@ import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const A=
    { close: 4985.09, high: 4988.62, low: 4980.30, open: 4986.72, timestamp: 1587660540000, volume: 76 }
 ])

Create in a project that is imported directly through a script tag

html
<!DOCTYPE html>
 <html lang="en">
-   <head>
-     <meta charset="utf-8" />
-     <meta name="viewport" content="width=device-width, initial-scale=1" />
-     <meta name="theme-color" content="#000000" />
-     <meta name="keywords" content="Quick Start"/>
-     <meta name="description" content="Quick Start"/>
-     <title>Quick Start</title>
-   </head>
-   <body>
-     <div id="chart" style="width:600px;height:600px"></div>
+   <head>
+     <meta charset="utf-8" />
+     <meta name="viewport" content="width=device-width, initial-scale=1" />
+     <meta name="theme-color" content="#000000" />
+     <meta name="keywords" content="Quick Start"/>
+     <meta name="description" content="Quick Start"/>
+     <title>Quick Start</title>
+   </head>
+   <body>
+     <div id="chart" style="width:600px;height:600px"></div>
      <script>
-       window.onload = function () {
+       window.onload = function () {
          // initialize the chart
-         var chart = klinecharts.init('chart')
+         var chart = klinecharts.init('chart')
 
          // add data to the chart
-         chart.applyNewData([
+         chart.applyNewData([
            { close: 4976.16, high: 4977.99, low: 4970.12, open: 4972.89, timestamp: 1587660000000, volume: 204 },
            { close: 4977.33, high: 4979.94, low: 4971.34, open: 4973.20, timestamp: 1587660060000, volume: 194 },
            { close: 4977.93, high: 4977.93, low: 4974.20, open: 4976.53, timestamp: 1587660120000, volume: 197 },
@@ -63,8 +63,8 @@ import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const A=
            { close: 4985.09, high: 4988.62, low: 4980.30, open: 4986.72, timestamp: 1587660540000, volume: 76 }
          ])
        }
-     </script>
-   </body>
+     </script>
+   </body>
 </html>
<!DOCTYPE html>
 <html lang="en">
    <head>
@@ -98,4 +98,4 @@ import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const A=
        }
      </script>
    </body>
-</html>

This completes your first chart creation.

`,16),e=[o];function t(c,r,y,F,D,C){return a(),n("div",null,e)}const h=s(p,[["render",t]]);export{A as __pageData,h as default}; +</html>

This completes your first chart creation.

`,16),e=[o];function t(c,r,y,F,D,C){return a(),n("div",null,e)}const B=s(p,[["render",t]]);export{E as __pageData,B as default}; diff --git a/assets/en-US_guide_getting-started.md.ee2bf999.lean.js b/assets/en-US_guide_getting-started.md.ee2bf999.lean.js new file mode 100644 index 000000000..932369f59 --- /dev/null +++ b/assets/en-US_guide_getting-started.md.ee2bf999.lean.js @@ -0,0 +1 @@ +import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.385ac4c3.js";const E=JSON.parse('{"title":"🚀 Getting started","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/getting-started.md","filePath":"en-US/guide/getting-started.md","lastUpdated":1679507254000}'),p={name:"en-US/guide/getting-started.md"},o=l("",16),e=[o];function t(c,r,y,F,D,C){return a(),n("div",null,e)}const B=s(p,[["render",t]]);export{E as __pageData,B as default}; diff --git a/assets/en-US_guide_hot-key.md.96b2e99c.js b/assets/en-US_guide_hot-key.md.80c73542.js similarity index 78% rename from assets/en-US_guide_hot-key.md.96b2e99c.js rename to assets/en-US_guide_hot-key.md.80c73542.js index 05dc8f1eb..c231db4dd 100644 --- a/assets/en-US_guide_hot-key.md.96b2e99c.js +++ b/assets/en-US_guide_hot-key.md.80c73542.js @@ -1 +1 @@ -import{_ as e,o,c as t,X as d}from"./chunks/framework.6909765d.js";const u=JSON.parse('{"title":"⌨️ Hot Key","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/hot-key.md","filePath":"en-US/guide/hot-key.md","lastUpdated":1692476949000}'),c={name:"en-US/guide/hot-key.md"},a=d('

⌨️ Hot Key

Currently only supports moving and zooming.

  • shift + move right
  • shift + move left
  • shift + + zoom in
  • shift + - zoom out
',3),i=[a];function n(s,r,l,_,h,m){return o(),t("div",null,i)}const f=e(c,[["render",n]]);export{u as __pageData,f as default}; +import{_ as e,o,c as t,Q as d}from"./chunks/framework.385ac4c3.js";const u=JSON.parse('{"title":"⌨️ Hot Key","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/hot-key.md","filePath":"en-US/guide/hot-key.md","lastUpdated":1679066795000}'),c={name:"en-US/guide/hot-key.md"},a=d('

⌨️ Hot Key

Currently only supports moving and zooming.

  • shift + move right
  • shift + move left
  • shift + + zoom in
  • shift + - zoom out
',3),i=[a];function n(s,r,l,_,h,m){return o(),t("div",null,i)}const f=e(c,[["render",n]]);export{u as __pageData,f as default}; diff --git a/assets/en-US_guide_hot-key.md.96b2e99c.lean.js b/assets/en-US_guide_hot-key.md.80c73542.lean.js similarity index 55% rename from assets/en-US_guide_hot-key.md.96b2e99c.lean.js rename to assets/en-US_guide_hot-key.md.80c73542.lean.js index 8688e0bf5..a7cee9e72 100644 --- a/assets/en-US_guide_hot-key.md.96b2e99c.lean.js +++ b/assets/en-US_guide_hot-key.md.80c73542.lean.js @@ -1 +1 @@ -import{_ as e,o,c as t,X as d}from"./chunks/framework.6909765d.js";const u=JSON.parse('{"title":"⌨️ Hot Key","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/hot-key.md","filePath":"en-US/guide/hot-key.md","lastUpdated":1692476949000}'),c={name:"en-US/guide/hot-key.md"},a=d("",3),i=[a];function n(s,r,l,_,h,m){return o(),t("div",null,i)}const f=e(c,[["render",n]]);export{u as __pageData,f as default}; +import{_ as e,o,c as t,Q as d}from"./chunks/framework.385ac4c3.js";const u=JSON.parse('{"title":"⌨️ Hot Key","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/hot-key.md","filePath":"en-US/guide/hot-key.md","lastUpdated":1679066795000}'),c={name:"en-US/guide/hot-key.md"},a=d("",3),i=[a];function n(s,r,l,_,h,m){return o(),t("div",null,i)}const f=e(c,[["render",n]]);export{u as __pageData,f as default}; diff --git a/assets/en-US_guide_i18n.md.814f9348.js b/assets/en-US_guide_i18n.md.67fab868.js similarity index 77% rename from assets/en-US_guide_i18n.md.814f9348.js rename to assets/en-US_guide_i18n.md.67fab868.js index 96b00ed6f..81691b2fd 100644 --- a/assets/en-US_guide_i18n.md.814f9348.js +++ b/assets/en-US_guide_i18n.md.67fab868.js @@ -1,11 +1,11 @@ -import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const h=JSON.parse('{"title":"🌏 Internationalization","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/i18n.md","filePath":"en-US/guide/i18n.md","lastUpdated":1692476949000}'),e={name:"en-US/guide/i18n.md"},o=l(`

🌏 Internationalization

Currently, the chart has two built-in en-US and zh-CN. The default language is en-US. If you need to use other languages, you can refer to the following scheme.

Adding new language

Adding new language is accomplished through klinecharts.registerLocale(key, locales).

For example, to add traditional Chinese language, you can do this,

typescript
klinecharts.registerLocale('zh-HK', {
-  time: '時間:',
-  open: '開:',
-  high: '高:',
-  low: '低:',
-  close: '收:',
-  volume: '成交量:'
-})
klinecharts.registerLocale('zh-HK', {
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.385ac4c3.js";const h=JSON.parse('{"title":"🌏 Internationalization","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/i18n.md","filePath":"en-US/guide/i18n.md","lastUpdated":1684958808000}'),e={name:"en-US/guide/i18n.md"},o=l(`

🌏 Internationalization

Currently, the chart has two built-in en-US and zh-CN. The default language is en-US. If you need to use other languages, you can refer to the following scheme.

Adding new language

Adding new language is accomplished through klinecharts.registerLocale(key, locales).

For example, to add traditional Chinese language, you can do this,

typescript
klinecharts.registerLocale('zh-HK', {
+  time: '時間:',
+  open: '開:',
+  high: '高:',
+  low: '低:',
+  close: '收:',
+  volume: '成交量:'
+})
klinecharts.registerLocale('zh-HK', {
   time: '時間:',
   open: '開:',
   high: '高:',
diff --git a/assets/en-US_guide_i18n.md.814f9348.lean.js b/assets/en-US_guide_i18n.md.67fab868.lean.js
similarity index 56%
rename from assets/en-US_guide_i18n.md.814f9348.lean.js
rename to assets/en-US_guide_i18n.md.67fab868.lean.js
index da717c1fb..7261d0cf7 100644
--- a/assets/en-US_guide_i18n.md.814f9348.lean.js
+++ b/assets/en-US_guide_i18n.md.67fab868.lean.js
@@ -1 +1 @@
-import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const h=JSON.parse('{"title":"🌏 Internationalization","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/i18n.md","filePath":"en-US/guide/i18n.md","lastUpdated":1692476949000}'),e={name:"en-US/guide/i18n.md"},o=l("",8),p=[o];function t(c,r,i,y,D,F){return a(),n("div",null,p)}const g=s(e,[["render",t]]);export{h as __pageData,g as default};
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.385ac4c3.js";const h=JSON.parse('{"title":"🌏 Internationalization","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/i18n.md","filePath":"en-US/guide/i18n.md","lastUpdated":1684958808000}'),e={name:"en-US/guide/i18n.md"},o=l("",8),p=[o];function t(c,r,i,y,D,F){return a(),n("div",null,p)}const g=s(e,[["render",t]]);export{h as __pageData,g as default};
diff --git a/assets/en-US_guide_indicator.md.f7abbc7a.js b/assets/en-US_guide_indicator.md.e611bbfa.js
similarity index 94%
rename from assets/en-US_guide_indicator.md.f7abbc7a.js
rename to assets/en-US_guide_indicator.md.e611bbfa.js
index 3df4ade38..9da0207eb 100644
--- a/assets/en-US_guide_indicator.md.f7abbc7a.js
+++ b/assets/en-US_guide_indicator.md.e611bbfa.js
@@ -1,24 +1,24 @@
-import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const d=JSON.parse('{"title":"Technical indicator","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/indicator.md","filePath":"en-US/guide/indicator.md","lastUpdated":1692476949000}'),p={name:"en-US/guide/indicator.md"},o=l(`

Technical indicator

This document introduces the built-in technical indicators in the chart and how to customize a technical indicator.

Built-in technical indicators

NameDefault calc paramsNameDefault calc paramsNameDefault calc params
MA[5, 10, 30, 60]BIAS[6, 12, 24]VR[24, 30]
EMA[6, 12, 20]BRAR[26]WR[6, 10, 14]
SMA[12, 2]CCI[13]MTM[6, 10]
BBI[3, 6, 12, 24]DMI[14, 6]EMV[14, 9]
VOL[5, 10, 20]CR[26, 10, 20, 40, 60]SAR[2, 2, 20]
MACD[12, 26, 9]PSY[12, 6]AO[5, 34]
BOLL[20]DMA[10, 50, 10]ROC[12, 6]
KDJ[9, 3, 3]TRIX[12, 20]PVTNone
RSI[6, 12, 24]OBV[30]AVPNone

Custom Technical Indicators

To create a custom technical indicator, you only need to generate a technical indicator information, and then add it globally through klinecharts.registerIndicator, add it to the chart and use it like the built-in technical indicator.

Attribute description

typescript
{
+import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const d=JSON.parse('{"title":"Technical indicator","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/indicator.md","filePath":"en-US/guide/indicator.md","lastUpdated":1684960080000}'),p={name:"en-US/guide/indicator.md"},o=l(`

Technical indicator

This document introduces the built-in technical indicators in the chart and how to customize a technical indicator.

Built-in technical indicators

NameDefault calc paramsNameDefault calc paramsNameDefault calc params
MA[5, 10, 30, 60]BIAS[6, 12, 24]VR[24, 30]
EMA[6, 12, 20]BRAR[26]WR[6, 10, 14]
SMA[12, 2]CCI[13]MTM[6, 10]
BBI[3, 6, 12, 24]DMI[14, 6]EMV[14, 9]
VOL[5, 10, 20]CR[26, 10, 20, 40, 60]SAR[2, 2, 20]
MACD[12, 26, 9]PSY[12, 6]AO[5, 34]
BOLL[20]DMA[10, 50, 10]ROC[12, 6]
KDJ[9, 3, 3]TRIX[12, 20]PVTNone
RSI[6, 12, 24]OBV[30]AVPNone

Custom Technical Indicators

To create a custom technical indicator, you only need to generate a technical indicator information, and then add it globally through klinecharts.registerIndicator, add it to the chart and use it like the built-in technical indicator.

Attribute description

typescript
{
   // indicator name
-  name: string
+  name: string
   // The short name of the indicator, used for display, the name will be displayed by default
-  shortName?: string
+  shortName?: string
   // precision, default is 4
-  precision?: number
+  precision?: number
   // calculation parameter
-  calcParams?: any[]
+  calcParams?: any[]
   // Do you need ohlc
-  shouldOhlc?: boolean
+  shouldOhlc?: boolean
   // Do you need to format large data values, starting from 1000, for example, do you need to format 100K for 100000
-  shouldFormatBigNumber?: boolean
+  shouldFormatBigNumber?: boolean
   // Do you need visible
-  visible?: boolean
+  visible?: boolean
   // extended data
-  extendData?: any
+  extendData?: any
   // series, default is 'normal'
-  series?: 'normal' | 'price' | 'volume'
+  series?: 'normal' | 'price' | 'volume'
   // Data information
-  figures?: Array<{
+  figures?: Array<{
     // Used to get the median value of the calculation result
     key: string
     // for tooltip display
@@ -37,7 +37,7 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const d=
     }) => IndicatorFigureAttrs
     // is a method
     styles?: (
-      data: {
+      data: {
         // The data of the previous graph
         prev: {
           // k-line data, type refer to [data source]
@@ -57,31 +57,31 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const d=
         }
       },
       // technical chart example
-      indicator: Indicator
+      indicator: Indicator
       // The default technical indicator style, that is, the technical indicator style set globally, refer to the indicator in [Style]
-      defaultStyles: IndicatorStyle
+      defaultStyles: IndicatorStyle
     ) => IndicatorFigureStyle
   }>,
   // The specified minimum value, default null
-  minValue?: number
+  minValue?: number
   // The specified maximum value, default null
-  maxValue?: number
+  maxValue?: number
   // style, support increment, default is null, type refer to indicator in [style]
-  styles?: IndicatorStyle
+  styles?: IndicatorStyle
   // calculation method, can be a promise
   calc: (
     // data source, see [data source] for type
-    dataList: KLineData[],
+    dataList: KLineData[],
     // technical indicator example
-    indicator: indicator
-  ) => Promise<Array<any>> | Array<any>
+    indicator: indicator
+  ) => Promise<Array<any>> | Array<any>
   // Regenerate figure graphic configuration method, which will be triggered after the calculation parameters change, refer to figures for the return type, the default is null
-  regenerateFigures?: (
+  regenerateFigures?: (
     // calculation parameter
-    calcParms: any[]
-  ) => Array<IndicatorFigure<D>>
+    calcParms: any[]
+  ) => Array<IndicatorFigure<D>>
   // Create a custom hint text
-  createTooltipDataSource?: (params: {
+  createTooltipDataSource?: (params: {
     // data source, see [data source] for type
     kLineDataList: KLineData[]
     // technical indicator example
@@ -133,11 +133,11 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const d=
     yAxis: YAxis
   }) => ({
     // name
-    name?: string
+    name?: string
     // Calculate the parameter text, if name has no value, it will not be displayed
-    calcParamsText?: string
+    calcParamsText?: string
     // value information
-    values?: Array<{
+    values?: Array<{
       title: string | {
         text: string
         color: string
@@ -149,7 +149,7 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const d=
     }>
   }),
   // Custom drawing, if true is returned, the graphics configured by figures will not be drawn
-  draw?: (params: {
+  draw?: (params: {
     // canvas context
     ctx: CanvasRenderingContext2D
     // data source, see [data source] for type
@@ -193,7 +193,7 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const d=
     xAxis: XAxis
     // y-axis component, with some built-in conversion methods
     yAxis: YAxis
-  }) => boolean
+  }) => boolean
 }
{
   // indicator name
   name: string
@@ -417,29 +417,29 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const d=
      { key: 'ma2', title: 'MA10: ', type: 'line' }
    ],
    // When the calculation parameters are changed, it is hoped that the prompt is the same as the parameters, that is, the value of title needs to be changed
-   regenerateFigures: (params) => {
-     return params. map((p, i) => {
-       return { key: \`ma\${i + 1}\`, title: \`MA\${p}: \`, type: 'line' }
+   regenerateFigures: (params) => {
+     return params. map((p, i) => {
+       return { key: \`ma\${i + 1}\`, title: \`MA\${p}: \`, type: 'line' }
      })
    },
    // Calculation results
-   calc: (kLineDataList, { calcParams, figures }) => {
+   calc: (kLineDataList, { calcParams, figures }) => {
      // Note: The number of returned data needs to be consistent with the number of data in kLineDataList. If there is no value, replace it with {}.
      // It is best to take the callback parameter calcParams as the calculation parameter. If not, when the subsequent calculation parameters change, the calculation here cannot respond in time
-     const closeSums = []
-     return kLineDataList. map((kLineData, i) => {
-       const ma = {}
-       const close = kLineData. close
-       calcParams.forEach((param, j) => {
-         closeSums[j] = (closeSums[j] || 0) + close
-         if (i >= param - 1) {
-           ma[figures[j].key] = closeSums[j] / param
-           closeSums[j] -= kLineDataList[i - (param - 1)].close
+     const closeSums = []
+     return kLineDataList. map((kLineData, i) => {
+       const ma = {}
+       const close = kLineData. close
+       calcParams.forEach((param, j) => {
+         closeSums[j] = (closeSums[j] || 0) + close
+         if (i >= param - 1) {
+           ma[figures[j].key] = closeSums[j] / param
+           closeSums[j] -= kLineDataList[i - (param - 1)].close
          }
        })
        // If there is a value, the data format of each item here should be { ma1: xxx, ma2: xxx }
        // Each key needs to be consistent with the value corresponding to the subkey in figures
-       return ma
+       return ma
      })
    }
 }
{
diff --git a/assets/en-US_guide_indicator.md.f7abbc7a.lean.js b/assets/en-US_guide_indicator.md.e611bbfa.lean.js
similarity index 57%
rename from assets/en-US_guide_indicator.md.f7abbc7a.lean.js
rename to assets/en-US_guide_indicator.md.e611bbfa.lean.js
index f5b947db7..337ad15f2 100644
--- a/assets/en-US_guide_indicator.md.f7abbc7a.lean.js
+++ b/assets/en-US_guide_indicator.md.e611bbfa.lean.js
@@ -1 +1 @@
-import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const d=JSON.parse('{"title":"Technical indicator","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/indicator.md","filePath":"en-US/guide/indicator.md","lastUpdated":1692476949000}'),p={name:"en-US/guide/indicator.md"},o=l("",15),e=[o];function t(c,r,y,i,F,D){return n(),a("div",null,e)}const A=s(p,[["render",t]]);export{d as __pageData,A as default};
+import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const d=JSON.parse('{"title":"Technical indicator","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/indicator.md","filePath":"en-US/guide/indicator.md","lastUpdated":1684960080000}'),p={name:"en-US/guide/indicator.md"},o=l("",15),e=[o];function t(c,r,y,i,F,D){return n(),a("div",null,e)}const A=s(p,[["render",t]]);export{d as __pageData,A as default};
diff --git a/assets/en-US_guide_instance-api.md.95079f70.js b/assets/en-US_guide_instance-api.md.80510bf9.js
similarity index 67%
rename from assets/en-US_guide_instance-api.md.95079f70.js
rename to assets/en-US_guide_instance-api.md.80510bf9.js
index d64aef4d1..15c559ae3 100644
--- a/assets/en-US_guide_instance-api.md.95079f70.js
+++ b/assets/en-US_guide_instance-api.md.80510bf9.js
@@ -1,10 +1,10 @@
-import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=JSON.parse('{"title":"Instance API","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/instance-api.md","filePath":"en-US/guide/instance-api.md","lastUpdated":1692476949000}'),p={name:"en-US/guide/instance-api.md"},o=l(`

Instance API

getDom(paneId, position)

typescript
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => HTMLElement
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => HTMLElement

Get the dom container.

  • paneId window id, the default is the entire chart container
  • position options are 'root', 'main' and 'yAxis', default is 'root'

getSize(paneId, position)

typescript
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => {
-   width: number
-   height: number
-   left: number
-   top: number
-   right: number
-   bottom: number
+import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const E=JSON.parse('{"title":"Instance API","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/instance-api.md","filePath":"en-US/guide/instance-api.md","lastUpdated":1694626510000}'),p={name:"en-US/guide/instance-api.md"},o=l(`

Instance API

getDom(paneId, position)

typescript
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => HTMLElement
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => HTMLElement

Get the dom container.

  • paneId window id, the default is the entire chart container
  • position supports root, main, yAxis, the default is root

getSize(paneId, position)

typescript
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => {
+   width: number
+   height: number
+   left: number
+   top: number
+   right: number
+   bottom: number
 }
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => {
    width: number
    height: number
@@ -12,29 +12,29 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
    top: number
    right: number
    bottom: number
-}

Get the dimensions.

  • paneId window id, the default is the entire chart container
  • position position, supports root, main, yAxis, the default is root

setStyles(styles)

typescript
(styles: string | object) => HTMLElement
(styles: string | object) => HTMLElement

Set style configuration.

  • styles style configuration, which can be the style name registered through registerStyles. When it is an object, please refer to styles for details, and it supports merging.

getStyles()

typescript
() => object
() => object

Get the style configuration, return the complete type refer to styles.

setPriceVolumePrecision(pricePrecision, volumePrecision)

typescript
(pricePrecision: number, volumePrecision: number) => void
(pricePrecision: number, volumePrecision: number) => void

Setting the price and volume precision, while the technical indicator series is 'price' or 'volume' will also be affected.

  • pricePrecision price precision
  • volumePrecision volume precision

setTimezone(timezone)

typescript
(timezone: string) => void
(timezone: string) => void

Set the time zone.

  • timezone time zone name, such as 'Asia/Shanghai', if not set, it will automatically get the local time zone, please refer to Time Zone List.

getTimezone()

typescript
() => string
() => string

Get the chart time zone name.

setZoomEnabled(enabled)

typescript
(enabled: boolean) => void
(enabled: boolean) => void

Set whether to scale.

isZoomEnabled()

typescript
() => boolean
() => boolean

Whether it can be scaled.

setScrollEnabled(enabled)

typescript
(enabled: boolean) => void
(enabled: boolean) => void

Set whether dragging and scrolling is possible.

isScrollEnabled()

typescript
() => boolean
() => boolean

Whether dragging and scrolling is possible.

setOffsetRightDistance(distance)

typescript
(distance: number) => void
(distance: number) => void

Sets the gap that can be left to the right of the chart.

getOffsetRightDistance()

typescript
() => number
() => number

Get the gap that can be left to the right of the chart.

setLeftMinVisibleBarCount(barCount)

typescript
(barCount: number) => void
(barCount: number) => void

Sets the minimum number of visible candles to the left.

setRightMinVisibleBarCount(barCount)

typescript
(barCount: number) => void
(barCount: number) => void

Sets the minimum number of visible candles to the right.

setBarSpace(space)

typescript
(space: number) => void
(space: number) => void

Sets the width of a single candlestick of the chart.

getBarSpace()

typescript
() => number
() => number

Gets the width of a single candlestick on the chart.

getVisibleRange()

typescript
() => {
-  from: number
-  to: number
-  realFrom: number
-  realTo: number
+}

Get the dimensions.

  • paneId window id, the default is the entire chart container
  • position position, supports root, main, yAxis, the default is root

setStyles(styles)

typescript
(styles: string | object) => HTMLElement
(styles: string | object) => HTMLElement

Set style configuration.

  • styles style configuration, which can be the style name registered through registerStyles. When it is an object, please refer to styles for details, and it supports merging.

getStyles()

typescript
() => object
() => object

Get the style configuration, return the complete type refer to styles.

setPriceVolumePrecision(pricePrecision, volumePrecision)

typescript
(pricePrecision: number, volumePrecision: number) => void
(pricePrecision: number, volumePrecision: number) => void

Setting the price and volume precision, while the technical indicator series is 'price' or 'volume' will also be affected.

  • pricePrecision price precision
  • volumePrecision volume precision

setTimezone(timezone)

typescript
(timezone: string) => void
(timezone: string) => void

Set the time zone.

  • timezone time zone name, such as 'Asia/Shanghai', if not set, it will automatically get the local time zone, please refer to Time Zone List.

getTimezone()

typescript
() => string
() => string

Get the chart time zone name.

setZoomEnabled(enabled)

typescript
(enabled: boolean) => void
(enabled: boolean) => void

Set whether to scale.

isZoomEnabled()

typescript
() => boolean
() => boolean

Whether it can be scaled.

setScrollEnabled(enabled)

typescript
(enabled: boolean) => void
(enabled: boolean) => void

Set whether dragging and scrolling is possible.

isScrollEnabled()

typescript
() => boolean
() => boolean

Whether dragging and scrolling is possible.

setOffsetRightDistance(distance)

typescript
(distance: number) => void
(distance: number) => void

Sets the gap that can be left to the right of the chart.

getOffsetRightDistance()

typescript
() => number
() => number

Get the gap that can be left to the right of the chart.

setLeftMinVisibleBarCount(barCount)

typescript
(barCount: number) => void
(barCount: number) => void

Sets the minimum number of visible candles to the left.

setRightMinVisibleBarCount(barCount)

typescript
(barCount: number) => void
(barCount: number) => void

Sets the minimum number of visible candles to the right.

setBarSpace(space)

typescript
(space: number) => void
(space: number) => void

Sets the width of a single candlestick of the chart.

getBarSpace()

typescript
() => number
() => number

Gets the width of a single candlestick on the chart.

getVisibleRange()

typescript
() => {
+  from: number
+  to: number
+  realFrom: number
+  realTo: number
 }
() => {
   from: number
   to: number
   realFrom: number
   realTo: number
-}

Get visible range.

applyNewData(dataList, more, callback)

typescript
(
-  dataList: Array<{
-    timestamp: number
-    open: number
-    close: number
-    high: number
-    low: number
-    volume?: number
-    turnover?: number
-  }>,
-  more?: boolean,
-  callback?: () => void
-) => void
(
+}

Get visible range.

applyNewData(dataList, more, callback)

typescript
(
+  dataList: Array<{
+    timestamp: number
+    open: number
+    close: number
+    high: number
+    low: number
+    volume?: number
+    turnover?: number
+  }>,
+  more?: boolean,
+  callback?: () => void
+) => void
(
   dataList: Array<{
     timestamp: number
     open: number
@@ -46,19 +46,19 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
   }>,
   more?: boolean,
   callback?: () => void
-) => void

Add new data, this method will clear the chart data, no need to call the clearData method additionally.

  • dataList is an array of K-line data. For details of the data type, please refer to data
  • more tells the chart whether there is more historical data, can be defaulted, the default is true
  • callback success callback

applyMoreData(dataList, more, callback)

typescript
(
-  dataList: Array<{
-    timestamp: number
-    open: number
-    close: number
-    high: number
-    low: number
-    volume?: number
-    turnover?: number
-  }>,
-  more?: boolean,
-  callback?: () => void
-) => void
(
+) => void

Add new data, this method will clear the chart data, no need to call the clearData method additionally.

  • dataList is an array of K-line data. For details of the data type, please refer to data
  • more tells the chart whether there is more historical data, can be defaulted, the default is true
  • callback success callback

applyMoreData(dataList, more, callback)

typescript
(
+  dataList: Array<{
+    timestamp: number
+    open: number
+    close: number
+    high: number
+    low: number
+    volume?: number
+    turnover?: number
+  }>,
+  more?: boolean,
+  callback?: () => void
+) => void
(
   dataList: Array<{
     timestamp: number
     open: number
@@ -70,18 +70,18 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
   }>,
   more?: boolean,
   callback?: () => void
-) => void

Add more historical data.

  • dataList is an array of K-line data. For details of the data type, please refer to data
  • more tells the chart whether there is more historical data, can be defaulted, the default is true
  • callback success callback

updateData(data, callback)

typescript
(
-  data: {
-    timestamp: number
-    open: number
-    close: number
-    high: number
-    low: number
-    volume?: number
-    turnover?: number
-  },
-  callback?: () => void
-) => void
(
+) => void

Add more historical data.

  • dataList is an array of K-line data. For details of the data type, please refer to data
  • more tells the chart whether there is more historical data, can be defaulted, the default is true
  • callback success callback

updateData(data, callback)

typescript
(
+  data: {
+    timestamp: number
+    open: number
+    close: number
+    high: number
+    low: number
+    volume?: number
+    turnover?: number
+  },
+  callback?: () => void
+) => void
(
   data: {
     timestamp: number
     open: number
@@ -92,14 +92,14 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     turnover?: number
   },
   callback?: () => void
-) => void

Update data. Currently, only the timestamp of the last piece of data will be matched. If it is the same, it will be overwritten, and if it is different, it will be appended.

  • data single k-line data, please refer to data for details of data type
  • callback success callback

getDataList()

typescript
() => Array<{
-  timestamp: number
-  open: number
-  close: number
-  high: number
-  low: number
-  volume?: number
-  turnover?: number
+) => void

Update data. Currently, only the timestamp of the last piece of data will be matched. If it is the same, it will be overwritten, and if it is different, it will be appended.

  • data single k-line data, please refer to data for details of data type
  • callback success callback

getDataList()

typescript
() => Array<{
+  timestamp: number
+  open: number
+  close: number
+  high: number
+  low: number
+  volume?: number
+  turnover?: number
 }>
() => Array<{
   timestamp: number
   open: number
@@ -108,81 +108,81 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
   low: number
   volume?: number
   turnover?: number
-}>

Get the current data source of the chart. For the returned data type, please refer to data.

clearData()

typescript
() => void
() => void

Clear the data of the chart. Generally, it is not necessary to call it manually. In order to avoid repeated drawing, the data is only cleared here, and the chart will not be redrawn.

loadMore(cb)

typescript
(cb: (timestamp: number | null) => void) => void
(cb: (timestamp: number | null) => void) => void

Set load more callback function.

  • cb is a callback method, timestamp is the timestamp of the first piece of data.

createIndicator(value, isStack, paneOptions, callback)

typescript
(
-  value: string | {
-    name: string
-    shortName?: string
-    precision?: number
-    calcParams?: any[]
-    shouldOhlc?: boolean
-    shouldFormatBigNumber?: boolean
-    visible?: boolean
-    extendData?: any
-    series?: 'normal' | 'price' | 'volume'
-    figures?: Array<{
-       key: string
-       title?: string
-       type?: string
-       baseValue?: number
-       styles?: (
-         data: object,
-         indicator: object,
-         defaultStyles: object
-       ) => ({
-        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
-        color?: string
-      })
-    }>
-    minValue?: number
-    maxValue?: number
-    styles?: object
-    calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
-    regenerateFigures?: (calcParms: any[]) => Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => ({
-        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
-        color?: string
-      })
-    }>
-    createTooltipDataSource?: (params: object) => ({
-      name?: string
-      calcParamsText?: string
-      values?: Array<{
-        title: string | {
-          text: string
-          color: string
-        }
-        value: string | {
-          text: string
-          color: string
-        }
-      }>
-    })
-    draw?: (params: object) => boolean
-  },
-  isStack?: boolean,
-  paneOptions?: {
-    id?: string
-    height?: number
-    minHeight?: number
-    dragEnabled?: boolean
-    gap?: {
-      top?: number
-      bottom?: number
-    }
-    axisOptions?: {
-      scrollZoomEnabled?: boolean
-    }
-  } | null,
-  callback?: () => void
-) => string | null
(
+}>

Get the current data source of the chart. For the returned data type, please refer to data.

clearData()

typescript
() => void
() => void

Clear the data of the chart. Generally, it is not necessary to call it manually. In order to avoid repeated drawing, the data is only cleared here, and the chart will not be redrawn.

loadMore(cb)

typescript
(cb: (timestamp: number | null) => void) => void
(cb: (timestamp: number | null) => void) => void

Set load more callback function.

  • cb is a callback method, timestamp is the timestamp of the first piece of data.

createIndicator(value, isStack, paneOptions, callback)

typescript
(
+  value: string | {
+    name: string
+    shortName?: string
+    precision?: number
+    calcParams?: any[]
+    shouldOhlc?: boolean
+    shouldFormatBigNumber?: boolean
+    visible?: boolean
+    extendData?: any
+    series?: 'normal' | 'price' | 'volume'
+    figures?: Array<{
+       key: string
+       title?: string
+       type?: string
+       baseValue?: number
+       styles?: (
+         data: object,
+         indicator: object,
+         defaultStyles: object
+       ) => ({
+        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
+        color?: string
+      })
+    }>
+    minValue?: number
+    maxValue?: number
+    styles?: object
+    calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
+    regenerateFigures?: (calcParms: any[]) => Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => ({
+        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
+        color?: string
+      })
+    }>
+    createTooltipDataSource?: (params: object) => ({
+      name?: string
+      calcParamsText?: string
+      values?: Array<{
+        title: string | {
+          text: string
+          color: string
+        }
+        value: string | {
+          text: string
+          color: string
+        }
+      }>
+    })
+    draw?: (params: object) => boolean
+  },
+  isStack?: boolean,
+  paneOptions?: {
+    id?: string
+    height?: number
+    minHeight?: number
+    dragEnabled?: boolean
+    gap?: {
+      top?: number
+      bottom?: number
+    }
+    axisOptions?: {
+      scrollZoomEnabled?: boolean
+    }
+  } | null,
+  callback?: () => void
+) => string | null
(
   value: string | {
     name: string
     shortName?: string
@@ -256,76 +256,76 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     }
   } | null,
   callback?: () => void
-) => string | null

Create a technical indicator, the return value is a string that identifies the window, which is very important, and this identification is required for some subsequent operations on the window.

  • value technical indicator name or technical indicator object, when it is an object, the type is consistent with the input parameter of the chart method overrideIndicator
  • isStack is overrides
  • paneOptions window configuration information, can be default
    • id window id, can be default
    • height window height, can be default
    • minHeight minimum height of the window, can be defaulted
    • dragEnbaled Whether the window can be dragged to adjust the height, it can be defaulted
    • gap margins
      • top top margin, value less than 1 is a percentage
      • bottom bottom margin, value less than 1 is a percentage
    • axisOptions
      • scrollZoomEnabled Scroll zoom flag
  • callback success callback

Special id

'candle_pane', the window id of the main picture.

Example:

javascript
chart.createIndicator('MA', false, {
-  id: 'pane_1',
-  height: 100,
-  minHeight: 30,
-  dragEnabled: true,
-  gap: { top: 0.2, bottom: 0.1 },
-  axisOptions: { scrollZoomEnabled: true }
-}, () => {})
chart.createIndicator('MA', false, {
+) => string | null

Create a technical indicator, the return value is a string that identifies the window, which is very important, and this identification is required for some subsequent operations on the window.

  • value technical indicator name or technical indicator object, when it is an object, the type is consistent with the input parameter of the chart method overrideIndicator
  • isStack is overrides
  • paneOptions window configuration information, can be default
    • id window id, can be default
    • height window height, can be default
    • minHeight minimum height of the window, can be defaulted
    • dragEnbaled Whether the window can be dragged to adjust the height, it can be defaulted
    • gap margins
      • top top margin, value less than 1 is a percentage
      • bottom bottom margin, value less than 1 is a percentage
    • axisOptions
      • scrollZoomEnabled Scroll zoom flag
  • callback success callback

Special id

'candle_pane', the window id of the main picture.

Example:

javascript
chart.createIndicator('MA', false, {
+  id: 'pane_1',
+  height: 100,
+  minHeight: 30,
+  dragEnabled: true,
+  gap: { top: 0.2, bottom: 0.1 },
+  axisOptions: { scrollZoomEnabled: true }
+}, () => {})
chart.createIndicator('MA', false, {
   id: 'pane_1',
   height: 100,
   minHeight: 30,
   dragEnabled: true,
   gap: { top: 0.2, bottom: 0.1 },
   axisOptions: { scrollZoomEnabled: true }
-}, () => {})

overrideIndicator(override, paneId, callback)

typescript
(
-  override: {
-    name: string
-    shortName?: string
-    precision?: number
-    calcParams?: any[]
-    shouldOhlc?: boolean
-    shouldFormatBigNumber?: boolean
-    visible?: boolean
-    extendData?: any
-    series?: 'normal' | 'price' | 'volume'
-    figures?: Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => ({
-        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
-        color?: string
-      })
-    }>
-    minValue?: number
-    maxValue?: number
-    styles?: object
-    calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
-    regenerateFigures?: (calcParms: any[]) => Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => ({
-        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
-        color?: string
-      })
-    }>
-    createTooltipDataSource?: (params: object) => {
-      name?: string
-      calcParamsText?: string
-      values?: Array<{
+}, () => {})

overrideIndicator(override, paneId, callback)

typescript
(
+  override: {
+    name: string
+    shortName?: string
+    precision?: number
+    calcParams?: any[]
+    shouldOhlc?: boolean
+    shouldFormatBigNumber?: boolean
+    visible?: boolean
+    extendData?: any
+    series?: 'normal' | 'price' | 'volume'
+    figures?: Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => ({
+        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
+        color?: string
+      })
+    }>
+    minValue?: number
+    maxValue?: number
+    styles?: object
+    calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
+    regenerateFigures?: (calcParms: any[]) => Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => ({
+        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
+        color?: string
+      })
+    }>
+    createTooltipDataSource?: (params: object) => {
+      name?: string
+      calcParamsText?: string
+      values?: Array<{
         title: string | { text: string, color: string }
         value: string | { text: string, color: string }
       }>
     }
-    draw?: (params: object) => boolean
-  },
-  paneId?: string | null,
-  callback?: () => void
-) => void
(
+    draw?: (params: object) => boolean
+  },
+  paneId?: string | null,
+  callback?: () => void
+) => void
(
   override: {
     name: string
     shortName?: string
@@ -380,49 +380,49 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
   },
   paneId?: string | null,
   callback?: () => void
-) => void

Overlay technical indicator information.

  • override some parameters that need to be overridden
    • name metric name, unique identifier for creation and operation
    • shortName short name for display
    • precision precision
    • calcParams calculation parameters
    • shouldOhlc needs ohlc auxiliary graphics
    • shouldFormatBigNumber should format large numbers. For example, 1000 is converted to 1k, 1000000 is converted to 1M, etc.
    • visible visible or not
    • extendData extended data
    • series indicator series, optional options are 'normal', 'price' and 'volume'
    • figures graphics configuration
    • minValue specifies the minimum value
    • maxValue specifies the maximum value
    • styles styles
    • calc calculation method
    • regenerateFigures method to regenerate figure information
    • createTooltipDataSource method to create custom tip information
    • draw custom drawing method
  • paneId window id, default is set to all
  • callback success callback

Special id

'candle_pane', the window id of the main picture.

Example:

javascript
chart.overrideIndicator({
-   name: 'BOLL',
-   showName: 'BOLL'
-   calcParams: [20, 5.5],
-   precision: 4,
-   shouldOhlc: true,
-   shouldFormatBigNumber: false,
-   visible: true,
-   extendData: 2432435,
-   series: 'price',
-   figures: [],
-   minValue: null,
-   maxValue: null,
-   calc: () => [],
-   regenerateFigures: () => [],
-   draw: () => {},
-   styles: {
-   bars: [{
-       style: 'fill,
-       borderStyle: 'solid,
-       borderSize: 1,
-       borderDashedValue: [2, 2],
-       upColor: '#26A69A',
-       downColor: '#EF5350',
-       noChangeColor: '#888888'
-     }],
-     lines: [{
-       size: 1,
-       style: 'solid',
-       dashedValue: [2, 2],
-       color: '#FF9600'
-     }],
-     circles: [{
-       style: 'fill,
-       borderStyle: 'solid,
-       borderSize: 1,
-       borderDashedValue: [2, 2],
-       upColor: '#26A69A',
-       downColor: '#EF5350',
-       noChangeColor: '#888888'
-     }]
-   }
-}, 'candle_pane', () => {})
chart.overrideIndicator({
+) => void

Overlay technical indicator information.

  • override some parameters that need to be overridden
    • name metric name, unique identifier for creation and operation
    • shortName short name for display
    • precision precision
    • calcParams calculation parameters
    • shouldOhlc needs ohlc auxiliary graphics
    • shouldFormatBigNumber should format large numbers. For example, 1000 is converted to 1k, 1000000 is converted to 1M, etc.
    • visible visible or not
    • extendData extended data
    • series indicator series, optional options are 'normal', 'price' and 'volume'
    • figures graphics configuration
    • minValue specifies the minimum value
    • maxValue specifies the maximum value
    • styles styles
    • calc calculation method
    • regenerateFigures method to regenerate figure information
    • createTooltipDataSource method to create custom tip information
    • draw custom drawing method
  • paneId window id, default is set to all
  • callback success callback

Special id

'candle_pane', the window id of the main picture.

Example:

javascript
chart.overrideIndicator({
+   name: 'BOLL',
+   showName: 'BOLL'
+   calcParams: [20, 5.5],
+   precision: 4,
+   shouldOhlc: true,
+   shouldFormatBigNumber: false,
+   visible: true,
+   extendData: 2432435,
+   series: 'price',
+   figures: [],
+   minValue: null,
+   maxValue: null,
+   calc: () => [],
+   regenerateFigures: () => [],
+   draw: () => {},
+   styles: {
+   bars: [{
+       style: 'fill,
+       borderStyle: 'solid,
+       borderSize: 1,
+       borderDashedValue: [2, 2],
+       upColor: '#26A69A',
+       downColor: '#EF5350',
+       noChangeColor: '#888888'
+     }],
+     lines: [{
+       size: 1,
+       style: 'solid',
+       dashedValue: [2, 2],
+       color: '#FF9600'
+     }],
+     circles: [{
+       style: 'fill,
+       borderStyle: 'solid,
+       borderSize: 1,
+       borderDashedValue: [2, 2],
+       upColor: '#26A69A',
+       downColor: '#EF5350',
+       noChangeColor: '#888888'
+     }]
+   }
+}, 'candle_pane', () => {})
chart.overrideIndicator({
    name: 'BOLL',
    showName: 'BOLL'
    calcParams: [20, 5.5],
@@ -464,76 +464,76 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
        noChangeColor: '#888888'
      }]
    }
-}, 'candle_pane', () => {})

getIndicatorByPaneId(paneId, name)

typescript
(paneId?: string, name?: string) => object
(paneId?: string, name?: string) => object

Obtain technical indicator information according to the window id.

  • paneId window id, that is, the window ID returned when calling the createIndicator method, can be defaulted, and all will be returned by default.
  • name technical indicator name

Special id

'candle_pane', the window id of the main picture.

removeIndicator(paneId, name)

typescript
(paneId: string, name?: string) => object
(paneId: string, name?: string) => object

Remove technical indicators.

  • paneId window id, that is, the window ID returned when calling the createIndicator method
  • name technical indicator name, if default, will remove all

Special id

'candle_pane', the window id of the main picture.

createOverlay(value, paneId)

typescript
(
-  value: string | {
-    name: string
-    id?: string
-    groupId?: string
-    lock?: boolean
-    visible?: boolean
-    zLevel?: number
-    needDefaultPointFigure?: boolean
-    needDefaultXAxisFigure?: boolean
-    needDefaultYAxisFigure?: boolean
-    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
-    modeSensitivity?: number
-    points?: Array<{
-      timestamp?: number
-      dataIndex?: number
-      value?: number
-    }>
-    extendData?: any
-    styles?: object
-    onDrawStart?: (event: object) => boolean
-    onDrawing?: (event: object) => boolean
-    onDrawEnd?: (event: object) => boolean
-    onClick?: (event: object) => boolean
-    onDoubleClick?: (event: object) => boolean
-    onRightClick?: (event: object) => boolean
-    onPressedMoveStart?: (event: object) => boolean
-    onPressedMoving?: (event: object) => boolean
-    onPressedMoveEnd?: (event: object) => boolean
-    onMouseEnter?: (event: object) => boolean
-    onMouseLeave?: (event: object) => boolean
-    onRemoved?: (event: object) => boolean
-    onSelected?: (event: object) => boolean
-    onDeselected?: (event: object) => boolean
-  } | Array<string | {
-    name: string
-    id?: string
-    groupId?: string
-    lock?: boolean
-    visible?: boolean
-    zLevel?: number
-    needDefaultPointFigure?: boolean
-    needDefaultXAxisFigure?: boolean
-    needDefaultYAxisFigure?: boolean
-    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
-    modeSensitivity?: number
-    points?: Array<{
-      timestamp?: number
-      dataIndex?: number
-      value?: number
-    }>
-    extendData?: any
-    styles?: object
-    onDrawStart?: (event: object) => boolean
-    onDrawing?: (event: object) => boolean
-    onDrawEnd?: (event: object) => boolean
-    onClick?: (event: object) => boolean
-    onDoubleClick?: (event: object) => boolean
-    onRightClick?: (event: object) => boolean
-    onPressedMoveStart?: (event: object) => boolean
-    onPressedMoving?: (event: object) => boolean
-    onPressedMoveEnd?: (event: object) => boolean
-    onMouseEnter?: (event: object) => boolean
-    onMouseLeave?: (event: object) => boolean
-    onRemoved?: (event: object) => boolean
-    onSelected?: (event: object) => boolean
-    onDeselected?: (event: object) => boolean
-  }>,
-  paneId?: string
-) => string | null
(
+}, 'candle_pane', () => {})

getIndicatorByPaneId(paneId, name)

typescript
(paneId?: string, name?: string) => object
(paneId?: string, name?: string) => object

Obtain technical indicator information according to the window id.

  • paneId window id, that is, the window ID returned when calling the createIndicator method, can be defaulted, and all will be returned by default.
  • name technical indicator name

Special id

'candle_pane', the window id of the main picture.

removeIndicator(paneId, name)

typescript
(paneId: string, name?: string) => object
(paneId: string, name?: string) => object

Remove technical indicators.

  • paneId window id, that is, the window ID returned when calling the createIndicator method
  • name technical indicator name, if default, will remove all

Special id

'candle_pane', the window id of the main picture.

createOverlay(value, paneId)

typescript
(
+  value: string | {
+    name: string
+    id?: string
+    groupId?: string
+    lock?: boolean
+    visible?: boolean
+    zLevel?: number
+    needDefaultPointFigure?: boolean
+    needDefaultXAxisFigure?: boolean
+    needDefaultYAxisFigure?: boolean
+    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+    modeSensitivity?: number
+    points?: Array<{
+      timestamp?: number
+      dataIndex?: number
+      value?: number
+    }>
+    extendData?: any
+    styles?: object
+    onDrawStart?: (event: object) => boolean
+    onDrawing?: (event: object) => boolean
+    onDrawEnd?: (event: object) => boolean
+    onClick?: (event: object) => boolean
+    onDoubleClick?: (event: object) => boolean
+    onRightClick?: (event: object) => boolean
+    onPressedMoveStart?: (event: object) => boolean
+    onPressedMoving?: (event: object) => boolean
+    onPressedMoveEnd?: (event: object) => boolean
+    onMouseEnter?: (event: object) => boolean
+    onMouseLeave?: (event: object) => boolean
+    onRemoved?: (event: object) => boolean
+    onSelected?: (event: object) => boolean
+    onDeselected?: (event: object) => boolean
+  } | Array<string | {
+    name: string
+    id?: string
+    groupId?: string
+    lock?: boolean
+    visible?: boolean
+    zLevel?: number
+    needDefaultPointFigure?: boolean
+    needDefaultXAxisFigure?: boolean
+    needDefaultYAxisFigure?: boolean
+    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+    modeSensitivity?: number
+    points?: Array<{
+      timestamp?: number
+      dataIndex?: number
+      value?: number
+    }>
+    extendData?: any
+    styles?: object
+    onDrawStart?: (event: object) => boolean
+    onDrawing?: (event: object) => boolean
+    onDrawEnd?: (event: object) => boolean
+    onClick?: (event: object) => boolean
+    onDoubleClick?: (event: object) => boolean
+    onRightClick?: (event: object) => boolean
+    onPressedMoveStart?: (event: object) => boolean
+    onPressedMoving?: (event: object) => boolean
+    onPressedMoveEnd?: (event: object) => boolean
+    onMouseEnter?: (event: object) => boolean
+    onMouseLeave?: (event: object) => boolean
+    onRemoved?: (event: object) => boolean
+    onSelected?: (event: object) => boolean
+    onDeselected?: (event: object) => boolean
+  }>,
+  paneId?: string
+) => string | null
(
   value: string | {
     name: string
     id?: string
@@ -602,49 +602,49 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     onDeselected?: (event: object) => boolean
   }>,
   paneId?: string
-) => string | null

Creates an overlay, returning an identifier of type String.

  • value Overlay name or object, when it is an object, the parameters are consistent with overrideOverlay
  • paneId window id, can be default

Special id

'candle_pane', the window id of the main picture.

Example:

javascript
chart.createOverlay({
-   name: 'segment',
-   id: 'segment_1',
-   groupId: 'segment',
-   points: [
-     { timestamp: 1614171282000, value: 18987 },
-     { timestamp: 1614171202000, value: 16098 },
-   ],
-   styles: {
-     line: {
-       style: 'solid',
-       dashedValue: [2, 2]
-       color: '#f00',
-       size: 2
-     }
-   },
-   lock: false,
-   visible: true,
-   zLevel: 0,
-   mode: 'weak_magnet',
-   modeSensitivity: 8,
-   extendData: 'xxxxxxxx',
-   needDefaultPointFigure: false,
-   needDefaultXAxisFigure: false,
-   needDefaultYAxisFigure: false,
-   onDrawStart: function (event) { console. log(event) },
-   onDrawing: function (event) { console. log(event) },
-   onDrawEnd: function (event) { console. log(event) },
-   onClick: function (event) { console. log(event) },
-   onDoubleClick: function (event) { console. log(event) },
-   onRightClick: function (event) {
-     console. log(event)
+) => string | null

Creates an overlay, returning an identifier of type String.

  • value Overlay name or object, when it is an object, the parameters are consistent with overrideOverlay
  • paneId window id, can be default

Special id

'candle_pane', the window id of the main picture.

Example:

javascript
chart.createOverlay({
+   name: 'segment',
+   id: 'segment_1',
+   groupId: 'segment',
+   points: [
+     { timestamp: 1614171282000, value: 18987 },
+     { timestamp: 1614171202000, value: 16098 },
+   ],
+   styles: {
+     line: {
+       style: 'solid',
+       dashedValue: [2, 2]
+       color: '#f00',
+       size: 2
+     }
+   },
+   lock: false,
+   visible: true,
+   zLevel: 0,
+   mode: 'weak_magnet',
+   modeSensitivity: 8,
+   extendData: 'xxxxxxxx',
+   needDefaultPointFigure: false,
+   needDefaultXAxisFigure: false,
+   needDefaultYAxisFigure: false,
+   onDrawStart: function (event) { console. log(event) },
+   onDrawing: function (event) { console. log(event) },
+   onDrawEnd: function (event) { console. log(event) },
+   onClick: function (event) { console. log(event) },
+   onDoubleClick: function (event) { console. log(event) },
+   onRightClick: function (event) {
+     console. log(event)
      return false
    },
-   onMouseEnter: function (event) { console. log(event) },
-   onMouseLeave: function (event) { console. log(event) },
-   onPressedMoveStart: function (event) { console. log(event) },
-   onPressedMoving: function (event) { console. log(event) },
-   onPressedMoveEnd: function (event) { console. log(event) },
-   onRemoved: function (event) { console. log(event) },
-   onSelected: function (event) { console. log(event) },
-   onDeselected: function (event) { console. log(event) }
-})
chart.createOverlay({
+   onMouseEnter: function (event) { console. log(event) },
+   onMouseLeave: function (event) { console. log(event) },
+   onPressedMoveStart: function (event) { console. log(event) },
+   onPressedMoving: function (event) { console. log(event) },
+   onPressedMoveEnd: function (event) { console. log(event) },
+   onRemoved: function (event) { console. log(event) },
+   onSelected: function (event) { console. log(event) },
+   onDeselected: function (event) { console. log(event) }
+})
chart.createOverlay({
    name: 'segment',
    id: 'segment_1',
    groupId: 'segment',
@@ -686,42 +686,42 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
    onRemoved: function (event) { console. log(event) },
    onSelected: function (event) { console. log(event) },
    onDeselected: function (event) { console. log(event) }
-})

getOverlayById(id)

typescript
(id: string) => object
(id: string) => object

Get overlay information by id.

  • id calls the createOverlay method to return the ID

overrideOverlay(override)

typescript
(
-  override: {
-    name: string
-    id?: string
-    groupId?: string
-    lock?: boolean
-    visible?: boolean
-    zLevel?: number
-    needDefaultPointFigure?: boolean
-    needDefaultXAxisFigure?: boolean
-    needDefaultYAxisFigure?: boolean
-    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
-    modeSensitivity?: number
-    points?: Array<{
-      timestamp?: number
-      dataIndex?: number
-      value?: number
-    }>
-    extendData?: any
-    styles?: object
-    onDrawStart?: (event: object) => boolean
-    onDrawing?: (event: object) => boolean
-    onDrawEnd?: (event: object) => boolean
-    onClick?: (event: object) => boolean
-    onDoubleClick?: (event: object) => boolean
-    onRightClick?: (event: object) => boolean
-    onPressedMoveStart?: (event: object) => boolean
-    onPressedMoving?: (event: object) => boolean
-    onPressedMoveEnd?: (event: object) => boolean
-    onMouseEnter?: (event: object) => boolean
-    onMouseLeave?: (event: object) => boolean
-    onRemoved?: (event: object) => boolean
-    onSelected?: (event: object) => boolean
-    onDeselected?: (event: object) => boolean
-  }
-) => string | null
(
+})

getOverlayById(id)

typescript
(id: string) => object
(id: string) => object

Get overlay information by id.

  • id calls the createOverlay method to return the ID

overrideOverlay(override)

typescript
(
+  override: {
+    name: string
+    id?: string
+    groupId?: string
+    lock?: boolean
+    visible?: boolean
+    zLevel?: number
+    needDefaultPointFigure?: boolean
+    needDefaultXAxisFigure?: boolean
+    needDefaultYAxisFigure?: boolean
+    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+    modeSensitivity?: number
+    points?: Array<{
+      timestamp?: number
+      dataIndex?: number
+      value?: number
+    }>
+    extendData?: any
+    styles?: object
+    onDrawStart?: (event: object) => boolean
+    onDrawing?: (event: object) => boolean
+    onDrawEnd?: (event: object) => boolean
+    onClick?: (event: object) => boolean
+    onDoubleClick?: (event: object) => boolean
+    onRightClick?: (event: object) => boolean
+    onPressedMoveStart?: (event: object) => boolean
+    onPressedMoving?: (event: object) => boolean
+    onPressedMoveEnd?: (event: object) => boolean
+    onMouseEnter?: (event: object) => boolean
+    onMouseLeave?: (event: object) => boolean
+    onRemoved?: (event: object) => boolean
+    onSelected?: (event: object) => boolean
+    onDeselected?: (event: object) => boolean
+  }
+) => string | null
(
   override: {
     name: string
     id?: string
@@ -756,49 +756,49 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     onSelected?: (event: object) => boolean
     onDeselected?: (event: object) => boolean
   }
-) => string | null

Overlays that have been drawn.

  • override parameters that need to be overridden
    • name overlay name, unique identifier for creation
    • id Overlay identification, if the id exists, it will be based on the id to overwrite
    • groupId Group id
    • lock is locked to prevent dragging
    • visible visible or not
    • zLevel Draw level
    • needDefaultPointFigure needs a default point figure
    • needDefaultXAxisFigure needs the default x-axis figure
    • needDefaultYAxisFigure needs the default y-axis figure
    • mode mode, options are 'normal', 'weak_magnet' and 'strong_magnet'
    • modeSensitivity mode sensitivity, only valid when mode is weak_magnet
    • points point information
    • extendData extended data
    • styles styles
    • onDrawStart start drawing event
    • onDrawing drawing event
    • onDrawEnd draw end event
    • onClick click event
    • onDoubleClick double click event
    • onRightClick right click event
    • onPressedMoveStart press start move event
    • onPressedMoving Press and move event
    • onPressedMoveEnd Press and move end event
    • onMouseEnter mouse enter event
    • onMouseLeave mouse out event
    • onRemoved delete event
    • onSelected selected event
    • onDeselected deselected event

Example:

javascript
chart.overrideOverlay({
-   name: 'segment',
-   id: 'segment_1',
-   groupId: 'segment',
-   points: [
-     { timestamp: 1614171282000, value: 18987 },
-     { timestamp: 1614171202000, value: 16098 },
-   ],
-   styles: {
-     line: {
-       style: 'solid',
-       dashedValue: [2, 2]
-       color: '#f00',
-       size: 2
-     }
-   },
-   lock: false,
-   visible: true,
-   zLevel: 0,
-   mode: 'weak_magnet',
-   modeSensitivity: 8
-   extendData: 'xxxxxxxx',
-   needDefaultPointFigure: false,
-   needDefaultXAxisFigure: false,
-   needDefaultYAxisFigure: false,
-   onDrawStart: function (event) { console. log(event) },
-   onDrawing: function (event) { console. log(event) },
-   onDrawEnd: function (event) { console. log(event) },
-   onClick: function (event) { console. log(event) },
-   onDoubleClick: function (event) { console. log(event) },
-   onRightClick: function (event) {
-     console. log(event)
+) => string | null

Overlays that have been drawn.

  • override parameters that need to be overridden
    • name overlay name, unique identifier for creation
    • id Overlay identification, if the id exists, it will be based on the id to overwrite
    • groupId Group id
    • lock is locked to prevent dragging
    • visible visible or not
    • zLevel Draw level
    • needDefaultPointFigure needs a default point figure
    • needDefaultXAxisFigure needs the default x-axis figure
    • needDefaultYAxisFigure needs the default y-axis figure
    • mode mode, options are 'normal', 'weak_magnet' and 'strong_magnet'
    • modeSensitivity mode sensitivity, only valid when mode is weak_magnet
    • points point information
    • extendData extended data
    • styles styles
    • onDrawStart start drawing event
    • onDrawing drawing event
    • onDrawEnd draw end event
    • onClick click event
    • onDoubleClick double click event
    • onRightClick right click event
    • onPressedMoveStart press start move event
    • onPressedMoving Press and move event
    • onPressedMoveEnd Press and move end event
    • onMouseEnter mouse enter event
    • onMouseLeave mouse out event
    • onRemoved delete event
    • onSelected selected event
    • onDeselected deselected event

Example:

javascript
chart.overrideOverlay({
+   name: 'segment',
+   id: 'segment_1',
+   groupId: 'segment',
+   points: [
+     { timestamp: 1614171282000, value: 18987 },
+     { timestamp: 1614171202000, value: 16098 },
+   ],
+   styles: {
+     line: {
+       style: 'solid',
+       dashedValue: [2, 2]
+       color: '#f00',
+       size: 2
+     }
+   },
+   lock: false,
+   visible: true,
+   zLevel: 0,
+   mode: 'weak_magnet',
+   modeSensitivity: 8
+   extendData: 'xxxxxxxx',
+   needDefaultPointFigure: false,
+   needDefaultXAxisFigure: false,
+   needDefaultYAxisFigure: false,
+   onDrawStart: function (event) { console. log(event) },
+   onDrawing: function (event) { console. log(event) },
+   onDrawEnd: function (event) { console. log(event) },
+   onClick: function (event) { console. log(event) },
+   onDoubleClick: function (event) { console. log(event) },
+   onRightClick: function (event) {
+     console. log(event)
      return false
    },
-   onMouseEnter: function (event) { console. log(event) },
-   onMouseLeave: function (event) { console. log(event) },
-   onPressedMoveStart: function (event) { console. log(event) },
-   onPressedMoving: function (event) { console. log(event) },
-   onPressedMoveEnd: function (event) { console. log(event) },
-   onRemoved: function (event) { console. log(event) },
-   onSelected: function (event) { console. log(event) },
-   onDeselected: function (event) { console. log(event) }
-})
chart.overrideOverlay({
+   onMouseEnter: function (event) { console. log(event) },
+   onMouseLeave: function (event) { console. log(event) },
+   onPressedMoveStart: function (event) { console. log(event) },
+   onPressedMoving: function (event) { console. log(event) },
+   onPressedMoveEnd: function (event) { console. log(event) },
+   onRemoved: function (event) { console. log(event) },
+   onSelected: function (event) { console. log(event) },
+   onDeselected: function (event) { console. log(event) }
+})
chart.overrideOverlay({
    name: 'segment',
    id: 'segment_1',
    groupId: 'segment',
@@ -840,47 +840,47 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
    onRemoved: function (event) { console. log(event) },
    onSelected: function (event) { console. log(event) },
    onDeselected: function (event) { console. log(event) }
-})

removeOverlay(remove)

typescript
(
-  remove: string | {
-    id?: string
-    groupId?: string
-    name?: string
-  }
-) => void
(
+})

removeOverlay(remove)

typescript
(
+  remove: string | {
+    id?: string
+    groupId?: string
+    name?: string
+  }
+) => void
(
   remove: string | {
     id?: string
     groupId?: string
     name?: string
   }
-) => void

Remove graphics.

  • id The ID returned by calling the createOverlay method.
  • groupId Group id
  • name Overlay name

scrollByDistance(distance, animationDuration)

typescript
(distance: number, animationDuration?: number) => void
(distance: number, animationDuration?: number) => void

Scroll a certain distance.

  • distance distance
  • animationDuration animation time, can be default, default is no animation

scrollToRealTime(animationDuration)

typescript
(distance: number, animationDuration?: number) => void
(distance: number, animationDuration?: number) => void

Scroll to original position.

  • animationDuration animation time, can be default, default is no animation

scrollToDataIndex(dataIndex, animationDuration)

typescript
(dataIndex: number, animationDuration?: number) => void
(dataIndex: number, animationDuration?: number) => void

Scroll to the specified location.

  • dataIndex the index of the data
  • animationDuration animation time, can be default, default is no animation

scrollToTimestamp(timestamp, animationDuration)

typescript
(timestamp: number, animationDuration?: number) => void
(timestamp: number, animationDuration?: number) => void

Scroll to the specified timestamp.

  • timestamp timestamp
  • animationDuration animation time, can be default, default is no animation

zoomAtCoordinate(scale, coordinate, animationDuration)

typescript
(
-  scale: number,
-  coordinate?: {
-    x: number
-    y: number
-  },
-  animationDuration?: number
-) => void
(
+) => void

Remove graphics.

  • id The ID returned by calling the createOverlay method.
  • groupId Group id
  • name Overlay name

scrollByDistance(distance, animationDuration)

typescript
(distance: number, animationDuration?: number) => void
(distance: number, animationDuration?: number) => void

Scroll a certain distance.

  • distance distance
  • animationDuration animation time, can be default, default is no animation

scrollToRealTime(animationDuration)

typescript
(distance: number, animationDuration?: number) => void
(distance: number, animationDuration?: number) => void

Scroll to original position.

  • animationDuration animation time, can be default, default is no animation

scrollToDataIndex(dataIndex, animationDuration)

typescript
(dataIndex: number, animationDuration?: number) => void
(dataIndex: number, animationDuration?: number) => void

Scroll to the specified location.

  • dataIndex the index of the data
  • animationDuration animation time, can be default, default is no animation

scrollToTimestamp(timestamp, animationDuration)

typescript
(timestamp: number, animationDuration?: number) => void
(timestamp: number, animationDuration?: number) => void

Scroll to the specified timestamp.

  • timestamp timestamp
  • animationDuration animation time, can be default, default is no animation

zoomAtCoordinate(scale, coordinate, animationDuration)

typescript
(
+  scale: number,
+  coordinate?: {
+    x: number
+    y: number
+  },
+  animationDuration?: number
+) => void
(
   scale: number,
   coordinate?: {
     x: number
     y: number
   },
   animationDuration?: number
-) => void

Scale at a certain coordinate point.

  • scale scaling factor
  • coordinate coordinate point, can be defaulted, the default is to zoom in the middle of the chart
  • animationDuration animation time, can be default, default is no animation

zoomAtDataIndex(scale, dataIndex, animationDuration)

typescript
(scale: number, dataIndex: number, animationDuration?: number) => void
(scale: number, dataIndex: number, animationDuration?: number) => void

Scale at a certain position.

  • scale scaling factor
  • dataIndex the index of the data
  • animationDuration animation time, can be default, default is no animation

zoomAtTimestamp(scale, timestamp, animationDuration)

typescript
(scale: number, timestamp: number, animationDuration?: number) => void
(scale: number, timestamp: number, animationDuration?: number) => void

Scale on the specified timestamp.

  • scale scaling factor
  • timestamp timestamp
  • animationDuration animation time, can be default, default is no animation

setPaneOptions(options)

typescript
(
-  options: {
-    id: string
-    height?: number
-    minHeight?: number
-    dragEnabled?: boolean
-    gap?: {
-      top?: number
-      bottom?: number
-    }
-    axisOptions?: {
-      scrollZoomEnabled?: boolean
-    }
-  }
-) => void
(
+) => void

Scale at a certain coordinate point.

  • scale scaling factor
  • coordinate coordinate point, can be defaulted, the default is to zoom in the middle of the chart
  • animationDuration animation time, can be default, default is no animation

zoomAtDataIndex(scale, dataIndex, animationDuration)

typescript
(scale: number, dataIndex: number, animationDuration?: number) => void
(scale: number, dataIndex: number, animationDuration?: number) => void

Scale at a certain position.

  • scale scaling factor
  • dataIndex the index of the data
  • animationDuration animation time, can be default, default is no animation

zoomAtTimestamp(scale, timestamp, animationDuration)

typescript
(scale: number, timestamp: number, animationDuration?: number) => void
(scale: number, timestamp: number, animationDuration?: number) => void

Scale on the specified timestamp.

  • scale scaling factor
  • timestamp timestamp
  • animationDuration animation time, can be default, default is no animation

setPaneOptions(options)

typescript
(
+  options: {
+    id: string
+    height?: number
+    minHeight?: number
+    dragEnabled?: boolean
+    gap?: {
+      top?: number
+      bottom?: number
+    }
+    axisOptions?: {
+      scrollZoomEnabled?: boolean
+    }
+  }
+) => void
(
   options: {
     id: string
     height?: number
@@ -894,53 +894,53 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       scrollZoomEnabled?: boolean
     }
   }
-) => void

Set window configuration.

  • paneOptions window configuration information, can be default
    • id window id
    • height window height, can be default
    • minHeight minimum height of the window, can be defaulted
    • dragEnbaled Whether the window can be dragged to adjust the height, it can be defaulted
    • gap margins
      • top top margin, value less than 1 is a percentage
      • bottom bottom margin, value less than 1 is a percentage
    • axisOptions
      • scrollZoomEnabled Scroll zoom flag

Special id

'candle_pane', the window id of the main picture.

Example:

javascript
chart.setPaneOptions({
-  id: 'pane_1',
-  height: 100,
-  minHeight: 3,
-  dragEnabled: true,
-  gap: { top: 0.2, bottom: 0.1 },
-  axisOptions: { scrollZoomEnabled: true }
-})
chart.setPaneOptions({
+) => void

Set window configuration.

  • paneOptions window configuration information, can be default
    • id window id
    • height window height, can be default
    • minHeight minimum height of the window, can be defaulted
    • dragEnbaled Whether the window can be dragged to adjust the height, it can be defaulted
    • gap margins
      • top top margin, value less than 1 is a percentage
      • bottom bottom margin, value less than 1 is a percentage
    • axisOptions
      • scrollZoomEnabled Scroll zoom flag

Special id

'candle_pane', the window id of the main picture.

Example:

javascript
chart.setPaneOptions({
+  id: 'pane_1',
+  height: 100,
+  minHeight: 3,
+  dragEnabled: true,
+  gap: { top: 0.2, bottom: 0.1 },
+  axisOptions: { scrollZoomEnabled: true }
+})
chart.setPaneOptions({
   id: 'pane_1',
   height: 100,
   minHeight: 3,
   dragEnabled: true,
   gap: { top: 0.2, bottom: 0.1 },
   axisOptions: { scrollZoomEnabled: true }
-})

executeAction(type, data)

typescript
(
-   type: 'onCrosshairChange',
-   data: any => void
-) => void
(
+})

executeAction(type, data)

typescript
(
+   type: 'onCrosshairChange',
+   data: any => void
+) => void
(
    type: 'onCrosshairChange',
    data: any => void
-) => void

Execute chart action.

  • type only supported 'onCrosshairChange'
  • data data required for execution

subscribeAction(type, callback)

typescript
(
-   type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
-   callback: (data?: any) => void
-) => void
(
+) => void

Execute chart action.

  • type only supported 'onCrosshairChange'
  • data data required for execution

subscribeAction(type, callback)

typescript
(
+   type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
+   callback: (data?: any) => void
+) => void
(
    type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
    callback: (data?: any) => void
-) => void

Subscribe to chart actions.

  • type options are 'onZoom', 'onScroll', 'onVisibleRangeChange', 'onCandleBarClick', 'onTooltipIconClick', 'onCrosshairChange' and 'onPaneDrag'
  • callback is a callback method

unsubscribeAction(type, callback)

typescript
(
-   type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
-   callback?: (data?: any) => void
-) => void
(
+) => void

Subscribe to chart actions.

  • type options are 'onZoom', 'onScroll', 'onVisibleRangeChange', 'onCandleBarClick', 'onTooltipIconClick', 'onCrosshairChange' and 'onPaneDrag'
  • callback is a callback method

unsubscribeAction(type, callback)

typescript
(
+   type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
+   callback?: (data?: any) => void
+) => void
(
    type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
    callback?: (data?: any) => void
-) => void

Unsubscribe from chart actions.

  • type options are 'onZoom', 'onScroll', 'onVisibleRangeChange', 'onCandleBarClick', 'onTooltipIconClick', 'onCrosshairChange' and 'onPaneDrag'
  • callback is the callback method when subscribing, the default is to cancel all the current types

convertToPixel(value, finder)

typescript
(
-   value: {
-     dataIndex?: number
-     timestamp?: number
-     value?: number
-   } | Array<{
-     dataIndex?: number
-     timestamp?: number
-     value?: number
-   }>,
-   finder: {
-     paneId?: string,
-     absolute?: boolean
-   }
-) => { x: number?, y?: number } | Array<{ x?: number, y?: number }>
(
+) => void

Unsubscribe from chart actions.

  • type options are 'onZoom', 'onScroll', 'onVisibleRangeChange', 'onCandleBarClick', 'onTooltipIconClick', 'onCrosshairChange' and 'onPaneDrag'
  • callback is the callback method when subscribing, the default is to cancel all the current types

convertToPixel(value, finder)

typescript
(
+   value: {
+     dataIndex?: number
+     timestamp?: number
+     value?: number
+   } | Array<{
+     dataIndex?: number
+     timestamp?: number
+     value?: number
+   }>,
+   finder: {
+     paneId?: string,
+     absolute?: boolean
+   }
+) => { x: number?, y?: number } | Array<{ x?: number, y?: number }>
(
    value: {
      dataIndex?: number
      timestamp?: number
@@ -954,27 +954,27 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
      paneId?: string,
      absolute?: boolean
    }
-) => { x: number?, y?: number } | Array<{ x?: number, y?: number }>

Convert values to coordinates.

  • value The value to be converted, it can be an object or an array
    • dataIndex data index, if dataIndex and timestamp exist at the same time, it will be converted according to the index
    • timestamp timestamp
    • value corresponds to the value of the y-axis
  • finder filter
    • paneId window id
    • absolute is an absolute coordinate, only works on the y axis

convertFromPixel(coordinate, finder)

typescript
(
-  coordinate: {
-    x?: number
-    y?: number
-  } | Array<{
-    x?: number
-    y?: number
-  },
-  finder: {
-    paneId?: string
-    absolute?: boolean
-  }
-) => {
-    dataIndex?: number
-    timestamp?: number
-    value?: number
-  } | Array<{
-    dataIndex?: number
-    timestamp?: number
-    value?: number
-  }>
(
+) => { x: number?, y?: number } | Array<{ x?: number, y?: number }>

Convert values to coordinates.

  • value The value to be converted, it can be an object or an array
    • dataIndex data index, if dataIndex and timestamp exist at the same time, it will be converted according to the index
    • timestamp timestamp
    • value corresponds to the value of the y-axis
  • finder filter
    • paneId window id
    • absolute is an absolute coordinate, only works on the y axis

convertFromPixel(coordinate, finder)

typescript
(
+  coordinate: {
+    x?: number
+    y?: number
+  } | Array<{
+    x?: number
+    y?: number
+  },
+  finder: {
+    paneId?: string
+    absolute?: boolean
+  }
+) => {
+    dataIndex?: number
+    timestamp?: number
+    value?: number
+  } | Array<{
+    dataIndex?: number
+    timestamp?: number
+    value?: number
+  }>
(
   coordinate: {
     x?: number
     y?: number
@@ -994,4 +994,4 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     dataIndex?: number
     timestamp?: number
     value?: number
-  }>

Convert coordinates to values.

  • coordinate needs to be converted, it can be an object or an array
  • finder filter
    • paneId window id
    • absolute is an absolute coordinate, only works on the y axis

getConvertPictureUrl(includeOverlay, type, backgroundColor)

typescript
(includeOverlay?: boolean, type?: string, backgroundColor?: string) => string
(includeOverlay?: boolean, type?: string, backgroundColor?: string) => string

Get the image url after the chart is converted into an image.

  • includeOverlay needs to include the overlay layer, it can be defaulted
  • type The converted image type, one of the three types of 'png', 'jpeg', 'bmp', can be defaulted, the default is 'jpeg'
  • backgroundColor background color, can be defaulted, the default is '#FFFFFF'

resize()

typescript
() => void
() => void

Resizing the chart will always fill the container size.

Note

This method will recalculate the size of each module in the entire chart, frequent calls may affect performance, please call with caution.

`,190),e=[o];function t(c,r,y,D,C,i){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{F as __pageData,d as default}; + }>

Convert coordinates to values.

  • coordinate needs to be converted, it can be an object or an array
  • finder filter
    • paneId window id
    • absolute is an absolute coordinate, only works on the y axis

getConvertPictureUrl(includeOverlay, type, backgroundColor)

typescript
(includeOverlay?: boolean, type?: string, backgroundColor?: string) => string
(includeOverlay?: boolean, type?: string, backgroundColor?: string) => string

Get the image url after the chart is converted into an image.

  • includeOverlay needs to include the overlay layer, it can be defaulted
  • type The converted image type, one of the three types of 'png', 'jpeg', 'bmp', can be defaulted, the default is 'jpeg'
  • backgroundColor background color, can be defaulted, the default is '#FFFFFF'

resize()

typescript
() => void
() => void

Resizing the chart will always fill the container size.

Note

This method will recalculate the size of each module in the entire chart, frequent calls may affect performance, please call with caution.

`,190),e=[o];function t(c,r,y,D,i,F){return n(),a("div",null,e)}const A=s(p,[["render",t]]);export{E as __pageData,A as default}; diff --git a/assets/en-US_guide_instance-api.md.80510bf9.lean.js b/assets/en-US_guide_instance-api.md.80510bf9.lean.js new file mode 100644 index 000000000..d1666c584 --- /dev/null +++ b/assets/en-US_guide_instance-api.md.80510bf9.lean.js @@ -0,0 +1 @@ +import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const E=JSON.parse('{"title":"Instance API","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/instance-api.md","filePath":"en-US/guide/instance-api.md","lastUpdated":1694626510000}'),p={name:"en-US/guide/instance-api.md"},o=l("",190),e=[o];function t(c,r,y,D,i,F){return n(),a("div",null,e)}const A=s(p,[["render",t]]);export{E as __pageData,A as default}; diff --git a/assets/en-US_guide_instance-api.md.95079f70.lean.js b/assets/en-US_guide_instance-api.md.95079f70.lean.js deleted file mode 100644 index ceb8ece1a..000000000 --- a/assets/en-US_guide_instance-api.md.95079f70.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=JSON.parse('{"title":"Instance API","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/instance-api.md","filePath":"en-US/guide/instance-api.md","lastUpdated":1692476949000}'),p={name:"en-US/guide/instance-api.md"},o=l("",190),e=[o];function t(c,r,y,D,C,i){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{F as __pageData,d as default}; diff --git a/assets/en-US_guide_overlay.md.e334f87e.js b/assets/en-US_guide_overlay.md.12c30866.js similarity index 88% rename from assets/en-US_guide_overlay.md.e334f87e.js rename to assets/en-US_guide_overlay.md.12c30866.js index 434f7acc5..a79646816 100644 --- a/assets/en-US_guide_overlay.md.e334f87e.js +++ b/assets/en-US_guide_overlay.md.12c30866.js @@ -1,36 +1,36 @@ -import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const A=JSON.parse('{"title":"Overlay","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/overlay.md","filePath":"en-US/guide/overlay.md","lastUpdated":1692476949000}'),p={name:"en-US/guide/overlay.md"},o=l(`

Overlay

This document introduces the built-in overlays in the chart and how to customize a overlay.

Built-in overlay types

horizontalRayLine, horizontalSegment, horizontalStraightLine, verticalRayLine, verticalSegment, verticalStraightLine, rayLine, segment, straightLine, priceLine, priceChannelLine, parallelLfilineLine, ci , simpleAnnotation, simpleTag

Custom overlays

Customize an overlay, then add it globally through klinecharts.registerOverlay, add it to the chart and use it like the built-in overlay.

Attribute description

typescript
{
+import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const d=JSON.parse('{"title":"Overlay","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/overlay.md","filePath":"en-US/guide/overlay.md","lastUpdated":1686770071000}'),p={name:"en-US/guide/overlay.md"},o=l(`

Overlay

This document introduces the built-in overlays in the chart and how to customize a overlay.

Built-in overlay types

horizontalRayLine, horizontalSegment, horizontalStraightLine, verticalRayLine, verticalSegment, verticalStraightLine, rayLine, segment, straightLine, priceLine, priceChannelLine, parallelLfilineLine, ci , simpleAnnotation, simpleTag

Custom overlays

Customize an overlay, then add it globally through klinecharts.registerOverlay, add it to the chart and use it like the built-in overlay.

Attribute description

typescript
{
   // Name, a required field, used as the unique identifier for overlay creation
-  name: string
+  name: string
 
   // How many steps are needed in total to complete the drawing, not necessary
-  totalStep?: number
+  totalStep?: number
 
   // Whether to lock, do not trigger events, not necessary
-  lock?: boolean
+  lock?: boolean
 
   // Do you need visible
-  visible?: boolean
+  visible?: boolean
 
   // Draw level
-  zLevel?: number
+  zLevel?: number
 
   // Do you need the graphics corresponding to the default points, not necessary
-  needDefaultPointFigure?: boolean
+  needDefaultPointFigure?: boolean
 
   // Do you need the graphics on the default X-axis, not necessary
-  needDefaultXAxisFigure?: boolean
+  needDefaultXAxisFigure?: boolean
 
   // Do you need the graphics on the default Y axis, not necessary
-  needDefaultYAxisFigure?: boolean
+  needDefaultYAxisFigure?: boolean
 
   // mode, options are \`normal\`, \`weak_magnet\`, \`strong_magnet\`, not required
-  mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+  mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
 
   // mode sensitivity, only valid when mode is weak_magnet
-  modeSensitivity?: number
+  modeSensitivity?: number
 
   // point information, not required
-  points?: Array<{
+  points?: Array<{
     // timestamp
     timestamp: number
     // data index
@@ -40,72 +40,72 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const A=
   }>,
 
   // Extended data, not required
-  extendData?: any
+  extendData?: any
 
   // style, not required, the type participates in the overlay in [style]
-  styles?: OverlayStyle
+  styles?: OverlayStyle
 
   // Create graphics corresponding to points, not required
   createPointFigures: ({
     // overlay instance
-    overlay: Overlay
+    overlay: Overlay
     // coordinate information corresponding to points
-    coordinates: Array<{
+    coordinates: Array<{
       x: number
       y: number
     }>
     // window size information
-    bounding: {
+    bounding: {
       // width
-      width: number
+      width: number
       // high
-      height: number
+      height: number
       // distance to the left
-      left: number
+      left: number
       // distance to the right
-      right: number
+      right: number
       // distance from top
-      top: number
+      top: number
       // distance from bottom
-      bottom: number
+      bottom: number
     },
     // information about the size of the candlestick
     barSpace: {
       // candlestick size
-      bar: number
-      halfBar: number
+      bar: number
+      halfBar: number
       // candlesticks do not include dimensions of gaps between candlesticks
-      gapBar: number
-      halfGapBar: number
+      gapBar: number
+      halfGapBar: number
     },
     // precision
     precision: {
       // price precision
-      price: number
+      price: number
       // Quantity precision
-      volume: number
+      volume: number
     },
     // thousands separator
-    thousandsSeparator: string,
+    thousandsSeparator: string,
     // Constructor for objects that format date and time, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat for details
-    dateTimeFormat: Intl. DateTimeFormat
+    dateTimeFormat: Intl. DateTimeFormat
     // The default style, that is, the overlay in the global style configuration, the type participates in the overlay in [style]
-    defaultStyles: OverlayStyle
+    defaultStyles: OverlayStyle
     // x-axis component, some built-in conversion methods
-    xAxis: XAxis,
+    xAxis: XAxis,
     // y-axis component, with some built-in conversion methods
-    yAxis: YAxis
+    yAxis: YAxis
   }) => ({
     // No special meaning, can be used for extension fields
-    key?: string
+    key?: string
     // Graphic type, one of the return values of klinecharts.getSupportFigures
-    type: string
+    type: string
     // The properties of the graphic corresponding to the type
-    attrs: any | any[]
+    attrs: any | any[]
     // The style of the graphic corresponding to type
-    styles?: any
+    styles?: any
     // Whether to ignore the event
-    ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+    ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
   }) | Array<{
     key?: string
     type: string
@@ -115,19 +115,19 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const A=
   }>
 
   // Create graphics on the X axis, not required, parameters and return values are consistent with \`createPointFigures\`
-  createXAxisFigures?: OverlayCreateFiguresCallback
+  createXAxisFigures?: OverlayCreateFiguresCallback
 
   // Create graphics on the Y axis, not required, parameters and return values are consistent with \`createPointFigures\`
-  createYAxisFigures?: OverlayCreateFiguresCallback
+  createYAxisFigures?: OverlayCreateFiguresCallback
 
   // Handle the movement operation during the drawing process, which can be defaulted and triggered during the movement drawing process
-  performEventMoveForDrawing?: ({
+  performEventMoveForDrawing?: ({
     // current step
-    currentStep: number
+    currentStep: number
     // model
-    mode: 'normal' | 'weak_magnet' | 'strong_magnet'
+    mode: 'normal' | 'weak_magnet' | 'strong_magnet'
     // point information
-    points: Array<{
+    points: Array<{
       // timestamp
       timestamp: number
       // data index
@@ -136,56 +136,56 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const A=
       value?: number
     }>,
     // index of the event point
-    performPointIndex
+    performPointIndex
     // Information about the point where the event is located
-    performPoint
+    performPoint
   }) => void,
 
   // Handle the press and move operation, which can be defaulted, and is triggered during the movement of a certain operation point
   // The callback parameters are consistent with \`performEventMoveForDrawing\`
-  performEventPressedMove?: (params: OverlayPerformEventParams) => void
+  performEventPressedMove?: (params: OverlayPerformEventParams) => void
 
   // draw start callback event, can be default
-  onDrawStart?: (event: OverlayEvent) => boolean
+  onDrawStart?: (event: OverlayEvent) => boolean
 
   // callback event during drawing, can be defaulted
-  onDrawing?: (event: OverlayEvent) => boolean
+  onDrawing?: (event: OverlayEvent) => boolean
 
   // Draw end callback event, can be default
-  onDrawEnd?: (event: OverlayEvent) => boolean
+  onDrawEnd?: (event: OverlayEvent) => boolean
 
   // click callback event, default
-  onClick?: (event: OverlayEvent) => boolean
+  onClick?: (event: OverlayEvent) => boolean
 
   // double click callback event, default
-  onDoubleClick?: (event: OverlayEvent) => boolean
+  onDoubleClick?: (event: OverlayEvent) => boolean
 
   // The right-click callback event, which can be defaulted, needs to return a value of type boolean. If it returns true, the built-in right-click delete will be invalid
-  onRightClick?: (event: OverlayEvent) => boolean
+  onRightClick?: (event: OverlayEvent) => boolean
 
   // Hold down and drag to start the callback event, which can be defaulted
-  onPressedMoveStart?: (event: OverlayEvent) => boolean
+  onPressedMoveStart?: (event: OverlayEvent) => boolean
 
   // Press and hold the drag callback event, which can be defaulted
-  onPressedMoving?: (event: OverlayEvent) => boolean
+  onPressedMoving?: (event: OverlayEvent) => boolean
 
   // Hold down and drag to end the callback event, which can be defaulted
-  onPressedMoveEnd: (event: OverlayEvent) => boolean
+  onPressedMoveEnd: (event: OverlayEvent) => boolean
 
   // Mouse move event, can be default
-  onMouseEnter?: (event: OverlayEvent) => boolean
+  onMouseEnter?: (event: OverlayEvent) => boolean
 
   // Mouse out event, default
-  onMouseLeave?: (event: OverlayEvent) => boolean
+  onMouseLeave?: (event: OverlayEvent) => boolean
 
   // delete callback event, default
-  onRemoved?: (event: OverlayEvent) => boolean
+  onRemoved?: (event: OverlayEvent) => boolean
 
   // Select the callback event, which can be defaulted
-  onSelected?: (event: OverlayEvent) => boolean
+  onSelected?: (event: OverlayEvent) => boolean
 
   // cancel callback event, default
-  onDeselected?: (event: OverlayEvent) => boolean
+  onDeselected?: (event: OverlayEvent) => boolean
 }
{
   // Name, a required field, used as the unique identifier for overlay creation
   name: string
@@ -382,19 +382,19 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const A=
    totalStep: 3,
 
    // Create the graphic information corresponding to the point
-   createPointFigures: ({ scoordinates }) => {
-     if (coordinates. length === 2) {
-       const xDis = Math.abs(coordinates[0].x - coordinates[1].x)
-       const yDis = Math.abs(coordinates[0].y - coordinates[1].y)
+   createPointFigures: ({ scoordinates }) => {
+     if (coordinates. length === 2) {
+       const xDis = Math.abs(coordinates[0].x - coordinates[1].x)
+       const yDis = Math.abs(coordinates[0].y - coordinates[1].y)
        // Determine the coordinates of the circle generated by the corresponding point
-       const radius = Math. sqrt(xDis * xDis + yDis * yDis)
+       const radius = Math. sqrt(xDis * xDis + yDis * yDis)
        // The chart has built-in basic graphics 'circle', which can be used directly
        return {
          key: 'sampleCircle',
          type: 'circle',
          attrs: {
-           ...coordinates[0],
-           r: radius
+           ...coordinates[0],
+           r: radius
          },
          styles: {
            // Select the border and fill it, other selections use the default style
@@ -434,4 +434,4 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const A=
      }
      return []
    }
-}

So a custom overlay is complete.

`,12),e=[o];function t(c,r,y,i,F,D){return n(),a("div",null,e)}const C=s(p,[["render",t]]);export{A as __pageData,C as default}; +}

So a custom overlay is complete.

`,12),e=[o];function t(c,r,y,i,F,D){return n(),a("div",null,e)}const A=s(p,[["render",t]]);export{d as __pageData,A as default}; diff --git a/assets/en-US_guide_overlay.md.12c30866.lean.js b/assets/en-US_guide_overlay.md.12c30866.lean.js new file mode 100644 index 000000000..a58c5332c --- /dev/null +++ b/assets/en-US_guide_overlay.md.12c30866.lean.js @@ -0,0 +1 @@ +import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const d=JSON.parse('{"title":"Overlay","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/overlay.md","filePath":"en-US/guide/overlay.md","lastUpdated":1686770071000}'),p={name:"en-US/guide/overlay.md"},o=l("",12),e=[o];function t(c,r,y,i,F,D){return n(),a("div",null,e)}const A=s(p,[["render",t]]);export{d as __pageData,A as default}; diff --git a/assets/en-US_guide_overlay.md.e334f87e.lean.js b/assets/en-US_guide_overlay.md.e334f87e.lean.js deleted file mode 100644 index 900bf2818..000000000 --- a/assets/en-US_guide_overlay.md.e334f87e.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const A=JSON.parse('{"title":"Overlay","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/overlay.md","filePath":"en-US/guide/overlay.md","lastUpdated":1692476949000}'),p={name:"en-US/guide/overlay.md"},o=l("",12),e=[o];function t(c,r,y,i,F,D){return n(),a("div",null,e)}const C=s(p,[["render",t]]);export{A as __pageData,C as default}; diff --git a/assets/en-US_guide_styles.md.b78be64c.js b/assets/en-US_guide_styles.md.04ec5105.js similarity index 99% rename from assets/en-US_guide_styles.md.b78be64c.js rename to assets/en-US_guide_styles.md.04ec5105.js index bab26d4af..9149a9a23 100644 --- a/assets/en-US_guide_styles.md.b78be64c.js +++ b/assets/en-US_guide_styles.md.04ec5105.js @@ -1,4 +1,4 @@ -import{S as a}from"./chunks/StyleExplain.febf53f8.js";import{o as l,c as p,O as o,k as s,a as n,X as e}from"./chunks/framework.6909765d.js";const c=s("h1",{id:"🎨-style",tabindex:"-1"},[n("🎨 Style "),s("a",{class:"header-anchor",href:"#🎨-style","aria-label":'Permalink to "🎨 Style"'},"​")],-1),t=s("p",null,[n("Whether you see a point or a line on the chart, you can basically customize the style. Changes can be made via the chart method "),s("code",null,"init(ds, options)"),n(" or the chart instance method "),s("code",null,"setStyles(styles)"),n(".")],-1),r=s("h2",{id:"picture-explanation",tabindex:"-1"},[n("Picture explanation "),s("a",{class:"header-anchor",href:"#picture-explanation","aria-label":'Permalink to "Picture explanation"'},"​")],-1),y=e(`

Default full configuration

javascript
{
+import{S as a}from"./chunks/StyleExplain.cbaaf100.js";import{o as l,c as p,H as o,k as s,a as n,Q as e}from"./chunks/framework.385ac4c3.js";const c=s("h1",{id:"🎨-style",tabindex:"-1"},[n("🎨 Style "),s("a",{class:"header-anchor",href:"#🎨-style","aria-label":'Permalink to "🎨 Style"'},"​")],-1),t=s("p",null,[n("Whether you see a point or a line on the chart, you can basically customize the style. Changes can be made via the chart method "),s("code",null,"init(ds, options)"),n(" or the chart instance method "),s("code",null,"setStyles(styles)"),n(".")],-1),r=s("h2",{id:"picture-explanation",tabindex:"-1"},[n("Picture explanation "),s("a",{class:"header-anchor",href:"#picture-explanation","aria-label":'Permalink to "Picture explanation"'},"​")],-1),y=e(`

Default full configuration

javascript
{
   grid: {
     show: true,
     horizontal: {
@@ -970,4 +970,4 @@ import{S as a}from"./chunks/StyleExplain.febf53f8.js";import{o as l,c as p,O as
       backgroundColor: '#1677FF'
     }
   }
-}
`,2),d=JSON.parse('{"title":"🎨 Style","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/styles.md","filePath":"en-US/guide/styles.md","lastUpdated":1692476949000}'),F={name:"en-US/guide/styles.md"},h=Object.assign(F,{setup(D){return(i,C)=>(l(),p("div",null,[c,t,r,o(a),y]))}});export{d as __pageData,h as default}; +}
`,2),d=JSON.parse('{"title":"🎨 Style","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/styles.md","filePath":"en-US/guide/styles.md","lastUpdated":1686770596000}'),F={name:"en-US/guide/styles.md"},h=Object.assign(F,{setup(D){return(i,C)=>(l(),p("div",null,[c,t,r,o(a),y]))}});export{d as __pageData,h as default}; diff --git a/assets/en-US_guide_styles.md.b78be64c.lean.js b/assets/en-US_guide_styles.md.04ec5105.lean.js similarity index 71% rename from assets/en-US_guide_styles.md.b78be64c.lean.js rename to assets/en-US_guide_styles.md.04ec5105.lean.js index 67eb73014..1df321675 100644 --- a/assets/en-US_guide_styles.md.b78be64c.lean.js +++ b/assets/en-US_guide_styles.md.04ec5105.lean.js @@ -1 +1 @@ -import{S as a}from"./chunks/StyleExplain.febf53f8.js";import{o as l,c as p,O as o,k as s,a as n,X as e}from"./chunks/framework.6909765d.js";const c=s("h1",{id:"🎨-style",tabindex:"-1"},[n("🎨 Style "),s("a",{class:"header-anchor",href:"#🎨-style","aria-label":'Permalink to "🎨 Style"'},"​")],-1),t=s("p",null,[n("Whether you see a point or a line on the chart, you can basically customize the style. Changes can be made via the chart method "),s("code",null,"init(ds, options)"),n(" or the chart instance method "),s("code",null,"setStyles(styles)"),n(".")],-1),r=s("h2",{id:"picture-explanation",tabindex:"-1"},[n("Picture explanation "),s("a",{class:"header-anchor",href:"#picture-explanation","aria-label":'Permalink to "Picture explanation"'},"​")],-1),y=e("",2),d=JSON.parse('{"title":"🎨 Style","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/styles.md","filePath":"en-US/guide/styles.md","lastUpdated":1692476949000}'),F={name:"en-US/guide/styles.md"},h=Object.assign(F,{setup(D){return(i,C)=>(l(),p("div",null,[c,t,r,o(a),y]))}});export{d as __pageData,h as default}; +import{S as a}from"./chunks/StyleExplain.cbaaf100.js";import{o as l,c as p,H as o,k as s,a as n,Q as e}from"./chunks/framework.385ac4c3.js";const c=s("h1",{id:"🎨-style",tabindex:"-1"},[n("🎨 Style "),s("a",{class:"header-anchor",href:"#🎨-style","aria-label":'Permalink to "🎨 Style"'},"​")],-1),t=s("p",null,[n("Whether you see a point or a line on the chart, you can basically customize the style. Changes can be made via the chart method "),s("code",null,"init(ds, options)"),n(" or the chart instance method "),s("code",null,"setStyles(styles)"),n(".")],-1),r=s("h2",{id:"picture-explanation",tabindex:"-1"},[n("Picture explanation "),s("a",{class:"header-anchor",href:"#picture-explanation","aria-label":'Permalink to "Picture explanation"'},"​")],-1),y=e("",2),d=JSON.parse('{"title":"🎨 Style","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/styles.md","filePath":"en-US/guide/styles.md","lastUpdated":1686770596000}'),F={name:"en-US/guide/styles.md"},h=Object.assign(F,{setup(D){return(i,C)=>(l(),p("div",null,[c,t,r,o(a),y]))}});export{d as __pageData,h as default}; diff --git a/assets/en-US_guide_v8-to-v9.md.ffb86506.js b/assets/en-US_guide_v8-to-v9.md.9b145c5e.js similarity index 98% rename from assets/en-US_guide_v8-to-v9.md.ffb86506.js rename to assets/en-US_guide_v8-to-v9.md.9b145c5e.js index 467f4f616..705e564f7 100644 --- a/assets/en-US_guide_v8-to-v9.md.ffb86506.js +++ b/assets/en-US_guide_v8-to-v9.md.9b145c5e.js @@ -1 +1 @@ -import{_ as e,o,c as d,X as a}from"./chunks/framework.6909765d.js";const g=JSON.parse('{"title":"🛠️ From V8 to V9","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/v8-to-v9.md","filePath":"en-US/guide/v8-to-v9.md","lastUpdated":1692476949000}'),t={name:"en-US/guide/v8-to-v9.md"},c=a('

🛠️ From V8 to V9

This document will help you upgrade from kinecharts 8.x to klinecharts 9.x. If you are 7.x or older, please refer to the previous upgrade document to upgrade to 8.x.

Import adjustment

klinecharts/index.blank' and klinecharts/index.simple are no longer distinguished. Please use import {...} from klinecharts uniformly.

Design adjustment

shape, annotation, tag are merged into overlay. Please refer to overlay for details.

Style configuration adjustment

  • The style options of all lines are changed to dashed and dashValue to dashedValue.
  • candle.tooltip.labels and candle.tooltip.values are merged into candle.tooltip.custom.
  • xAxis.height is changed to xAxis.size, xAxis.tickeText.paddingTop is changed to xAxis.tickeText.marinStart, and xAxis.tickeText.paddingBottom is changed to xAxis.tickeText.marginEnd.
  • yAxis.height is changed to yAxis.size, yAxis.tickeText.paddingTop is changed to yAxis.tickeText.marinStart, and yAxis.tickeText.paddingBottom is changed to yAxis.tickeText.marginEnd.
  • technicalIndicator.bar is changed to indicator.bars, technicalIndicator.line is changed to indicator.linestechnicalIndicator.circle is changed to indicator.circles.
  • Delete shape, annotation, tag, please use overlay instead.

API adjustment

Chart API

  • extension.addTechnicalIndicatorTemplate(template) is changed to registerIndicator(template).
  • Delete extension.addShapeTemplate(template), please use registerOverlay(template) instead.

Instance API

  • getDom({paneId, position}) is changed to getDom(paneId, position), and the parameter position option is changed to root, main and yAxis.
  • getWidth() and getHeight() are combined into a method 'getSize(paneId, position).
  • setStyleOptions(styles) is changed to setStyles(styles).
  • getStyleOptions() is changed to getStyles().
  • setOffsetRightSpace(space) is changed to setOffsetRightDistance(distance).
  • createTechnicalIndicator(value, isStack, paneOptions) is changed to createIndicator(value, isStack, paneOptions).
  • overrideTechnicalIndicator(override, paneId) is changed to overrideIndicator(override, paneId).
  • getTechnicalIndicatorByPaneId(paneId, name) is changed to getIndicatorByPaneId(paneId, name).
  • removeTechnicalIndicator(paneId, name) is changed to removeIndicator(paneId, name).
  • subscribeAction(type, callback) and unsubscribeAction(type, callback). The parameter type option is changed to onZoom, onScroll, onCrosshairChange, onVisibleRangeChange and onPaneDrag.
  • convertToPixel(value, finder) and convertFromPixel(coordinate, finder), the parameter finder.absoluteYAxis is changed to finder.absolute.
  • To delete createShape(value, paneId), createAnnotation(annotation, paneId), createTag(tag, paneId), please use createOverlay(value, paneId) instead.
  • To delete removeShape(id), removeAnnotation(paneId, points), removeTag(paneId, tagId), please use removeOverlay(id) instead.
  • To delete setShapeOptions(options), use overrideOverlay(override) instead.
  • To delete reateHtml(html, paneId), removeHtml(paneId, htmlId), please obtain the corresponding dom through getDom(paneId, position).
  • To delete getTechnicalIndicatorByPaneId(paneId, name).

Shape help API

  • All APIs are migrated to 'klinecharts.utils'.

Customized technical indicator adjustment

  • Attribute plots is changed to figures, sub item methods color, isStroke, isDashed are merged into styles.
  • Change the method 'regeneratePlots(params) to regeneratefigures(params).
  • The method calcTechnicalIndicator(kLineDataList, options) is changed to calc(kLineDataList, indicator).
  • The method createTooltipDataSource({ dataSource, viewport, crosshair, technicalIndicator, xAxis, yAxis, defaultStyles }) is changed to createTooltipDataSource({ kLineDataList, indicator, visibleRange, bounding, crosshair, defaultStyles, xAxis, yAxis }). The return value is determined by [{ title: 'xxx', value: 'xxx', color: 'xxx' } ] Change to { name: 'xxx', calcParamsText: 'xxx', values: [{ title: 'xxx', value: 'xxx', color: 'xxx' }, ...] }.
  • The method render({ctx, dataSource, viewport, styles, xAxis, yAxis}) is changed to draw({ ctx, kLineDataList, indicator, visibleRange, bounding, barSpace, defaultStyles, xAxis, yAxis }).
  • Delete the attribute shouldCheckParamCount.
',17),i=[c];function n(l,r,s,h,p,u){return o(),d("div",null,i)}const x=e(t,[["render",n]]);export{g as __pageData,x as default}; +import{_ as e,o,c as d,Q as a}from"./chunks/framework.385ac4c3.js";const g=JSON.parse('{"title":"🛠️ From V8 to V9","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/v8-to-v9.md","filePath":"en-US/guide/v8-to-v9.md","lastUpdated":1679166638000}'),t={name:"en-US/guide/v8-to-v9.md"},c=a('

🛠️ From V8 to V9

This document will help you upgrade from kinecharts 8.x to klinecharts 9.x. If you are 7.x or older, please refer to the previous upgrade document to upgrade to 8.x.

Import adjustment

klinecharts/index.blank' and klinecharts/index.simple are no longer distinguished. Please use import {...} from klinecharts uniformly.

Design adjustment

shape, annotation, tag are merged into overlay. Please refer to overlay for details.

Style configuration adjustment

  • The style options of all lines are changed to dashed and dashValue to dashedValue.
  • candle.tooltip.labels and candle.tooltip.values are merged into candle.tooltip.custom.
  • xAxis.height is changed to xAxis.size, xAxis.tickeText.paddingTop is changed to xAxis.tickeText.marinStart, and xAxis.tickeText.paddingBottom is changed to xAxis.tickeText.marginEnd.
  • yAxis.height is changed to yAxis.size, yAxis.tickeText.paddingTop is changed to yAxis.tickeText.marinStart, and yAxis.tickeText.paddingBottom is changed to yAxis.tickeText.marginEnd.
  • technicalIndicator.bar is changed to indicator.bars, technicalIndicator.line is changed to indicator.linestechnicalIndicator.circle is changed to indicator.circles.
  • Delete shape, annotation, tag, please use overlay instead.

API adjustment

Chart API

  • extension.addTechnicalIndicatorTemplate(template) is changed to registerIndicator(template).
  • Delete extension.addShapeTemplate(template), please use registerOverlay(template) instead.

Instance API

  • getDom({paneId, position}) is changed to getDom(paneId, position), and the parameter position option is changed to root, main and yAxis.
  • getWidth() and getHeight() are combined into a method 'getSize(paneId, position).
  • setStyleOptions(styles) is changed to setStyles(styles).
  • getStyleOptions() is changed to getStyles().
  • setOffsetRightSpace(space) is changed to setOffsetRightDistance(distance).
  • createTechnicalIndicator(value, isStack, paneOptions) is changed to createIndicator(value, isStack, paneOptions).
  • overrideTechnicalIndicator(override, paneId) is changed to overrideIndicator(override, paneId).
  • getTechnicalIndicatorByPaneId(paneId, name) is changed to getIndicatorByPaneId(paneId, name).
  • removeTechnicalIndicator(paneId, name) is changed to removeIndicator(paneId, name).
  • subscribeAction(type, callback) and unsubscribeAction(type, callback). The parameter type option is changed to onZoom, onScroll, onCrosshairChange, onVisibleRangeChange and onPaneDrag.
  • convertToPixel(value, finder) and convertFromPixel(coordinate, finder), the parameter finder.absoluteYAxis is changed to finder.absolute.
  • To delete createShape(value, paneId), createAnnotation(annotation, paneId), createTag(tag, paneId), please use createOverlay(value, paneId) instead.
  • To delete removeShape(id), removeAnnotation(paneId, points), removeTag(paneId, tagId), please use removeOverlay(id) instead.
  • To delete setShapeOptions(options), use overrideOverlay(override) instead.
  • To delete reateHtml(html, paneId), removeHtml(paneId, htmlId), please obtain the corresponding dom through getDom(paneId, position).
  • To delete getTechnicalIndicatorByPaneId(paneId, name).

Shape help API

  • All APIs are migrated to 'klinecharts.utils'.

Customized technical indicator adjustment

  • Attribute plots is changed to figures, sub item methods color, isStroke, isDashed are merged into styles.
  • Change the method 'regeneratePlots(params) to regeneratefigures(params).
  • The method calcTechnicalIndicator(kLineDataList, options) is changed to calc(kLineDataList, indicator).
  • The method createTooltipDataSource({ dataSource, viewport, crosshair, technicalIndicator, xAxis, yAxis, defaultStyles }) is changed to createTooltipDataSource({ kLineDataList, indicator, visibleRange, bounding, crosshair, defaultStyles, xAxis, yAxis }). The return value is determined by [{ title: 'xxx', value: 'xxx', color: 'xxx' } ] Change to { name: 'xxx', calcParamsText: 'xxx', values: [{ title: 'xxx', value: 'xxx', color: 'xxx' }, ...] }.
  • The method render({ctx, dataSource, viewport, styles, xAxis, yAxis}) is changed to draw({ ctx, kLineDataList, indicator, visibleRange, bounding, barSpace, defaultStyles, xAxis, yAxis }).
  • Delete the attribute shouldCheckParamCount.
',17),i=[c];function n(l,r,s,h,p,u){return o(),d("div",null,i)}const x=e(t,[["render",n]]);export{g as __pageData,x as default}; diff --git a/assets/en-US_guide_v8-to-v9.md.ffb86506.lean.js b/assets/en-US_guide_v8-to-v9.md.9b145c5e.lean.js similarity index 71% rename from assets/en-US_guide_v8-to-v9.md.ffb86506.lean.js rename to assets/en-US_guide_v8-to-v9.md.9b145c5e.lean.js index a03843ff0..8bf5a783c 100644 --- a/assets/en-US_guide_v8-to-v9.md.ffb86506.lean.js +++ b/assets/en-US_guide_v8-to-v9.md.9b145c5e.lean.js @@ -1 +1 @@ -import{_ as e,o,c as d,X as a}from"./chunks/framework.6909765d.js";const g=JSON.parse('{"title":"🛠️ From V8 to V9","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/v8-to-v9.md","filePath":"en-US/guide/v8-to-v9.md","lastUpdated":1692476949000}'),t={name:"en-US/guide/v8-to-v9.md"},c=a("",17),i=[c];function n(l,r,s,h,p,u){return o(),d("div",null,i)}const x=e(t,[["render",n]]);export{g as __pageData,x as default}; +import{_ as e,o,c as d,Q as a}from"./chunks/framework.385ac4c3.js";const g=JSON.parse('{"title":"🛠️ From V8 to V9","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/v8-to-v9.md","filePath":"en-US/guide/v8-to-v9.md","lastUpdated":1679166638000}'),t={name:"en-US/guide/v8-to-v9.md"},c=a("",17),i=[c];function n(l,r,s,h,p,u){return o(),d("div",null,i)}const x=e(t,[["render",n]]);export{g as __pageData,x as default}; diff --git a/assets/en-US_guide_what-is-klinechart.md.eaf1a224.js b/assets/en-US_guide_what-is-klinechart.md.8fa4756d.js similarity index 88% rename from assets/en-US_guide_what-is-klinechart.md.eaf1a224.js rename to assets/en-US_guide_what-is-klinechart.md.8fa4756d.js index a75db0444..e806ae940 100644 --- a/assets/en-US_guide_what-is-klinechart.md.eaf1a224.js +++ b/assets/en-US_guide_what-is-klinechart.md.8fa4756d.js @@ -1 +1 @@ -import{_ as t,o as e,c as a,X as i}from"./chunks/framework.6909765d.js";const _=JSON.parse('{"title":"📃 Introducation","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/what-is-klinechart.md","filePath":"en-US/guide/what-is-klinechart.md","lastUpdated":1692476949000}'),n={name:"en-US/guide/what-is-klinechart.md"},o=i('

📃 Introducation

What's KLineChart?

KLineChart,it is a highly customizable professional lightweight financial chart.

Features

  • 📦 Out of the box: Simple and fast integration, basically zero cost to get started.
  • 🚀 Lightweight and smooth: Zero dependencies, only 40k under gzip compression.
  • 💪 Powerful functions: Built-in multiple indicators and line drawing models.
  • 🎨 Highly scalable: With rich style configuration and API, the function can be extended as you like.
  • 📱 Mobile: Support mobile, one chart, handle multiple terminals.
  • 🛡 Typescript development: Provide complete type definition files.
',5),r=[o];function s(l,c,h,d,u,p){return e(),a("div",null,r)}const f=t(n,[["render",s]]);export{_ as __pageData,f as default}; +import{_ as t,o as e,c as a,Q as i}from"./chunks/framework.385ac4c3.js";const _=JSON.parse('{"title":"📃 Introducation","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/what-is-klinechart.md","filePath":"en-US/guide/what-is-klinechart.md","lastUpdated":1679166638000}'),n={name:"en-US/guide/what-is-klinechart.md"},o=i('

📃 Introducation

What's KLineChart?

KLineChart,it is a highly customizable professional lightweight financial chart.

Features

  • 📦 Out of the box: Simple and fast integration, basically zero cost to get started.
  • 🚀 Lightweight and smooth: Zero dependencies, only 40k under gzip compression.
  • 💪 Powerful functions: Built-in multiple indicators and line drawing models.
  • 🎨 Highly scalable: With rich style configuration and API, the function can be extended as you like.
  • 📱 Mobile: Support mobile, one chart, handle multiple terminals.
  • 🛡 Typescript development: Provide complete type definition files.
',5),r=[o];function s(l,c,h,d,u,p){return e(),a("div",null,r)}const f=t(n,[["render",s]]);export{_ as __pageData,f as default}; diff --git a/assets/en-US_guide_what-is-klinechart.md.eaf1a224.lean.js b/assets/en-US_guide_what-is-klinechart.md.8fa4756d.lean.js similarity index 59% rename from assets/en-US_guide_what-is-klinechart.md.eaf1a224.lean.js rename to assets/en-US_guide_what-is-klinechart.md.8fa4756d.lean.js index 952d45244..3db5f827f 100644 --- a/assets/en-US_guide_what-is-klinechart.md.eaf1a224.lean.js +++ b/assets/en-US_guide_what-is-klinechart.md.8fa4756d.lean.js @@ -1 +1 @@ -import{_ as t,o as e,c as a,X as i}from"./chunks/framework.6909765d.js";const _=JSON.parse('{"title":"📃 Introducation","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/what-is-klinechart.md","filePath":"en-US/guide/what-is-klinechart.md","lastUpdated":1692476949000}'),n={name:"en-US/guide/what-is-klinechart.md"},o=i("",5),r=[o];function s(l,c,h,d,u,p){return e(),a("div",null,r)}const f=t(n,[["render",s]]);export{_ as __pageData,f as default}; +import{_ as t,o as e,c as a,Q as i}from"./chunks/framework.385ac4c3.js";const _=JSON.parse('{"title":"📃 Introducation","description":"","frontmatter":{},"headers":[],"relativePath":"en-US/guide/what-is-klinechart.md","filePath":"en-US/guide/what-is-klinechart.md","lastUpdated":1679166638000}'),n={name:"en-US/guide/what-is-klinechart.md"},o=i("",5),r=[o];function s(l,c,h,d,u,p){return e(),a("div",null,r)}const f=t(n,[["render",s]]);export{_ as __pageData,f as default}; diff --git a/assets/en-US_index.md.99aef212.js b/assets/en-US_index.md.4824d65b.js similarity index 92% rename from assets/en-US_index.md.99aef212.js rename to assets/en-US_index.md.4824d65b.js index 4e6968fe4..ad7937fa0 100644 --- a/assets/en-US_index.md.99aef212.js +++ b/assets/en-US_index.md.4824d65b.js @@ -1 +1 @@ -import{_ as t,o as e,c as i}from"./chunks/framework.6909765d.js";const g=JSON.parse('{"title":"Highly customizable professional lightweight financial chart","description":"","frontmatter":{"title":"Highly customizable professional lightweight financial chart","layout":"home","hero":{"name":"KLineChart","text":"Highly customizable professional lightweight financial chart","tagline":"Easy to use, lightweight and smooth, suitable for web front-end financial chart with rich scenarios.","image":{"src":"/images/logo_hero.svg","alt":"KLineChart"},"actions":[{"theme":"brand","text":"Getting Started","link":"/en-US/guide/getting-started"},{"theme":"alt","text":"View on Github","link":"https://github.com/liihuu/KLineChart"}]},"features":[{"icon":{"src":"/images/box.png"},"title":"Out of the box","details":"Simple and fast integration, zero cost to get started, only 3 lines of code to display a chart, so that all attention can be focused on data docking."},{"icon":{"src":"/images/rocket.png"},"title":"Lightweight and smooth","details":"Zero dependency, only about 40k under Gzip compression, and less than 1 millisecond to load under 4G network. Charts remain fluid even with thousands of candles."},{"icon":{"src":"/images/expand.png"},"title":"Highly expand","details":"Provide rich configuration and Api, style modification, function collocation as you like. Provide technical indicators and line drawing model extensions, so that the chart has more possibilities."}]},"headers":[],"relativePath":"en-US/index.md","filePath":"en-US/index.md","lastUpdated":1692476949000}'),a={name:"en-US/index.md"};function n(o,s,l,r,c,d){return e(),i("div")}const m=t(a,[["render",n]]);export{g as __pageData,m as default}; +import{_ as t,o as e,c as i}from"./chunks/framework.385ac4c3.js";const g=JSON.parse('{"title":"Highly customizable professional lightweight financial chart","description":"","frontmatter":{"title":"Highly customizable professional lightweight financial chart","layout":"home","hero":{"name":"KLineChart","text":"Highly customizable professional lightweight financial chart","tagline":"Easy to use, lightweight and smooth, suitable for web front-end financial chart with rich scenarios.","image":{"src":"/images/logo_hero.svg","alt":"KLineChart"},"actions":[{"theme":"brand","text":"Getting Started","link":"/en-US/guide/getting-started"},{"theme":"alt","text":"View on Github","link":"https://github.com/liihuu/KLineChart"}]},"features":[{"icon":{"src":"/images/box.png"},"title":"Out of the box","details":"Simple and fast integration, zero cost to get started, only 3 lines of code to display a chart, so that all attention can be focused on data docking."},{"icon":{"src":"/images/rocket.png"},"title":"Lightweight and smooth","details":"Zero dependency, only about 40k under Gzip compression, and less than 1 millisecond to load under 4G network. Charts remain fluid even with thousands of candles."},{"icon":{"src":"/images/expand.png"},"title":"Highly expand","details":"Provide rich configuration and Api, style modification, function collocation as you like. Provide technical indicators and line drawing model extensions, so that the chart has more possibilities."}]},"headers":[],"relativePath":"en-US/index.md","filePath":"en-US/index.md","lastUpdated":1682273674000}'),a={name:"en-US/index.md"};function n(o,s,l,r,c,d){return e(),i("div")}const m=t(a,[["render",n]]);export{g as __pageData,m as default}; diff --git a/assets/en-US_index.md.99aef212.lean.js b/assets/en-US_index.md.4824d65b.lean.js similarity index 92% rename from assets/en-US_index.md.99aef212.lean.js rename to assets/en-US_index.md.4824d65b.lean.js index 4e6968fe4..ad7937fa0 100644 --- a/assets/en-US_index.md.99aef212.lean.js +++ b/assets/en-US_index.md.4824d65b.lean.js @@ -1 +1 @@ -import{_ as t,o as e,c as i}from"./chunks/framework.6909765d.js";const g=JSON.parse('{"title":"Highly customizable professional lightweight financial chart","description":"","frontmatter":{"title":"Highly customizable professional lightweight financial chart","layout":"home","hero":{"name":"KLineChart","text":"Highly customizable professional lightweight financial chart","tagline":"Easy to use, lightweight and smooth, suitable for web front-end financial chart with rich scenarios.","image":{"src":"/images/logo_hero.svg","alt":"KLineChart"},"actions":[{"theme":"brand","text":"Getting Started","link":"/en-US/guide/getting-started"},{"theme":"alt","text":"View on Github","link":"https://github.com/liihuu/KLineChart"}]},"features":[{"icon":{"src":"/images/box.png"},"title":"Out of the box","details":"Simple and fast integration, zero cost to get started, only 3 lines of code to display a chart, so that all attention can be focused on data docking."},{"icon":{"src":"/images/rocket.png"},"title":"Lightweight and smooth","details":"Zero dependency, only about 40k under Gzip compression, and less than 1 millisecond to load under 4G network. Charts remain fluid even with thousands of candles."},{"icon":{"src":"/images/expand.png"},"title":"Highly expand","details":"Provide rich configuration and Api, style modification, function collocation as you like. Provide technical indicators and line drawing model extensions, so that the chart has more possibilities."}]},"headers":[],"relativePath":"en-US/index.md","filePath":"en-US/index.md","lastUpdated":1692476949000}'),a={name:"en-US/index.md"};function n(o,s,l,r,c,d){return e(),i("div")}const m=t(a,[["render",n]]);export{g as __pageData,m as default}; +import{_ as t,o as e,c as i}from"./chunks/framework.385ac4c3.js";const g=JSON.parse('{"title":"Highly customizable professional lightweight financial chart","description":"","frontmatter":{"title":"Highly customizable professional lightweight financial chart","layout":"home","hero":{"name":"KLineChart","text":"Highly customizable professional lightweight financial chart","tagline":"Easy to use, lightweight and smooth, suitable for web front-end financial chart with rich scenarios.","image":{"src":"/images/logo_hero.svg","alt":"KLineChart"},"actions":[{"theme":"brand","text":"Getting Started","link":"/en-US/guide/getting-started"},{"theme":"alt","text":"View on Github","link":"https://github.com/liihuu/KLineChart"}]},"features":[{"icon":{"src":"/images/box.png"},"title":"Out of the box","details":"Simple and fast integration, zero cost to get started, only 3 lines of code to display a chart, so that all attention can be focused on data docking."},{"icon":{"src":"/images/rocket.png"},"title":"Lightweight and smooth","details":"Zero dependency, only about 40k under Gzip compression, and less than 1 millisecond to load under 4G network. Charts remain fluid even with thousands of candles."},{"icon":{"src":"/images/expand.png"},"title":"Highly expand","details":"Provide rich configuration and Api, style modification, function collocation as you like. Provide technical indicators and line drawing model extensions, so that the chart has more possibilities."}]},"headers":[],"relativePath":"en-US/index.md","filePath":"en-US/index.md","lastUpdated":1682273674000}'),a={name:"en-US/index.md"};function n(o,s,l,r,c,d){return e(),i("div")}const m=t(a,[["render",n]]);export{g as __pageData,m as default}; diff --git a/assets/en-US_sponsor.md.ac667b2d.js b/assets/en-US_sponsor.md.ceae9547.js similarity index 90% rename from assets/en-US_sponsor.md.ac667b2d.js rename to assets/en-US_sponsor.md.ceae9547.js index 51ba5b017..0f334f988 100644 --- a/assets/en-US_sponsor.md.ac667b2d.js +++ b/assets/en-US_sponsor.md.ceae9547.js @@ -1 +1 @@ -import{_ as a,a as e}from"./chunks/wechat_pay_qr_code.ab7c3922.js";import{_ as r,o as t,c as o,X as i}from"./chunks/framework.6909765d.js";const b=JSON.parse('{"title":"❤️ Sponsor","description":"","frontmatter":{"sidebar":false},"headers":[],"relativePath":"en-US/sponsor.md","filePath":"en-US/sponsor.md","lastUpdated":1692476949000}'),l={name:"en-US/sponsor.md"},n=i('

❤️ Sponsor

If you think the plugin is good, I hope you can click 🌟 on GitHub. If you can reward a cup of ☕️, that would be very much appreciated.

Alipay

Wechat Pay

PayPal

Cryptocurrency

',10),s=[n];function p(c,h,d,u,m,_){return t(),o("div",null,s)}const P=r(l,[["render",p]]);export{b as __pageData,P as default}; +import{_ as a,a as e}from"./chunks/wechat_pay_qr_code.ab7c3922.js";import{_ as r,o as t,c as o,Q as i}from"./chunks/framework.385ac4c3.js";const b=JSON.parse('{"title":"❤️ Sponsor","description":"","frontmatter":{"sidebar":false},"headers":[],"relativePath":"en-US/sponsor.md","filePath":"en-US/sponsor.md","lastUpdated":1681655545000}'),l={name:"en-US/sponsor.md"},n=i('

❤️ Sponsor

If you think the plugin is good, I hope you can click 🌟 on GitHub. If you can reward a cup of ☕️, that would be very much appreciated.

Alipay

Wechat Pay

PayPal

Cryptocurrency

',10),s=[n];function p(c,h,d,u,m,_){return t(),o("div",null,s)}const P=r(l,[["render",p]]);export{b as __pageData,P as default}; diff --git a/assets/en-US_sponsor.md.ac667b2d.lean.js b/assets/en-US_sponsor.md.ceae9547.lean.js similarity index 61% rename from assets/en-US_sponsor.md.ac667b2d.lean.js rename to assets/en-US_sponsor.md.ceae9547.lean.js index f46ccd587..bd728f45c 100644 --- a/assets/en-US_sponsor.md.ac667b2d.lean.js +++ b/assets/en-US_sponsor.md.ceae9547.lean.js @@ -1 +1 @@ -import{_ as a,a as e}from"./chunks/wechat_pay_qr_code.ab7c3922.js";import{_ as r,o as t,c as o,X as i}from"./chunks/framework.6909765d.js";const b=JSON.parse('{"title":"❤️ Sponsor","description":"","frontmatter":{"sidebar":false},"headers":[],"relativePath":"en-US/sponsor.md","filePath":"en-US/sponsor.md","lastUpdated":1692476949000}'),l={name:"en-US/sponsor.md"},n=i("",10),s=[n];function p(c,h,d,u,m,_){return t(),o("div",null,s)}const P=r(l,[["render",p]]);export{b as __pageData,P as default}; +import{_ as a,a as e}from"./chunks/wechat_pay_qr_code.ab7c3922.js";import{_ as r,o as t,c as o,Q as i}from"./chunks/framework.385ac4c3.js";const b=JSON.parse('{"title":"❤️ Sponsor","description":"","frontmatter":{"sidebar":false},"headers":[],"relativePath":"en-US/sponsor.md","filePath":"en-US/sponsor.md","lastUpdated":1681655545000}'),l={name:"en-US/sponsor.md"},n=i("",10),s=[n];function p(c,h,d,u,m,_){return t(),o("div",null,s)}const P=r(l,[["render",p]]);export{b as __pageData,P as default}; diff --git a/assets/guide_changelog.md.88d4c906.js b/assets/guide_changelog.md.e6871db3.js similarity index 98% rename from assets/guide_changelog.md.88d4c906.js rename to assets/guide_changelog.md.e6871db3.js index 41a40cc69..de68247f4 100644 --- a/assets/guide_changelog.md.88d4c906.js +++ b/assets/guide_changelog.md.e6871db3.js @@ -1 +1 @@ -import{_ as e,o,c,X as d}from"./chunks/framework.6909765d.js";const x=JSON.parse('{"title":"📠 更新日志","description":"","frontmatter":{},"headers":[],"relativePath":"guide/changelog.md","filePath":"guide/changelog.md","lastUpdated":1692476949000}'),i={name:"guide/changelog.md"},l=d('

📠 更新日志

9.5.1

2023-08-14

  • 🆕 图表方法新增getOverlayClass
  • 🆕 样式配置candle.tooltip.custom新增内置涨跌幅支持。
  • 💄 优化基础图形rect事件响应。
  • ↩️ 分割线事件响应回退

9.5.0

2023-06-15

  • 🆕 Overlay新增事件onDoubleClick,新增属性modeSensitivity
  • 🆕 样式配置candle.tooltip.custom支持字符串模版。
  • 🐞 优化移动端阻尼滚动掉帧问题。
  • 🐞 修复窗口id命名拼写错误。
  • 💄 优化分割线事件响应灵敏度。
  • 💄 优化typescript下,OverlayFigure中的attrs类型声明。

9.4.0

2023-05-25

  • 🆕 实例api createOverlay 支持数组。
  • 🆕 overlay新增属性paneIddefaultZLevelzLevel
  • 🆕 xAxis新增方法convertTimestampFromPixelconvertTimestampToPixel
  • 💄 优化蜡烛柱显示。

9.3.0

2023-05-13

  • 🆕 新增图表API utils.calcTextWidth
  • 🆕 图表API createIndicator(value, isStack, options)setPaneOptions(options)新增options.axisOptions
  • 🆕 指标图形配置支持自定义。
  • 💄 优化bar宽度比例。
  • 💄 优化内部获取屏幕像素比。
  • 💄 优化内部id生成。

9.2.2

2023-05-04

  • 🐞 修复基础图形line事件检查可能导致错误问题。
  • 💄 优化类型检查。

9.2.1

2023-04-27

  • 💄 优化默认样式,#EF5350变更为#F92855#26A69A变更为#2DC08E
  • 💄 优化typescript声明。

9.2.0

2023-04-24

  • 🆕 实例API新增getOffsetRightDistanceexecuteAction
  • 🆕 实例APIapplyNewDataapplyMoreDataupdateData新增成功回调入参callback
  • 🆕 支持千分符显示。
  • 🆕 样式配置新增candle.bar.upBorderColorcandle.bar.downBorderColorcandle.bar.noChangeBorderColorcandle.bar.upWickColorcandle.bar.downWickColorcandle.bar.noChangeWickColorcandle.tooltip.rect.positioncandle.tooltip.rect.offsetBottom
  • 🆕 所有visibleRange新增realFromrealTo
  • 💄 优化API,klinecharts.utils.isValidklinecharts.utils.formatBigNumber
  • 💄 优化开发环境下,日志输出。

9.1.3

2023-04-15

  • 🐞 修复图表api applyNewData 入参是空数组时不刷新问题。
  • 🐞 修复无数据时y轴上十字光标文字不显示问题。
  • 💄 优化面积图显示。
  • 💄 优化覆盖物事件回调参数,新增figureKeyfigureIndex
  • 💄 优化typescript覆盖物样式类型,和基础类型DeepPartial, DeepRequired

9.1.2

2023-04-10

  • 🐞 修复内置基础图形line触发事件不准确问题。
  • 🐞 修复内置覆盖物simpleAnnotationsimpleTag绘制完成后第一次触发事件问题。
  • 💄 优化覆盖物图形事件忽略,支持事件选择。

9.1.1

2023-03-14

  • 🐞 修复内置基础图形arc不生效问题。
  • 💄 优化渲染更新。

9.1.0

2023-02-23

  • 🆕 图表实例方法subscribeActionunsubscribeAction类型新增onCandleBarClick
  • 🆕 覆盖物支持双击强制结束绘制。
  • 💄 优化事件处理。

9.0.1

2023-02-17

  • 🐞 修复typescript引入问题。

9.0.0

2023-02-16

  • 🛠 Typescript重构。
  • 🆕 新特性
    • 新增Y轴方向缩放,滚动。
    • API
      • 新增基图表方法registerFiguregetSupportFiguresgetFigureClassrigisterOverlaygetSupportOverlaysregisterLocalegetSupportLocalesregisterStyles
      • 新增实例方法,getSizesetLocalegetLocalsetCustomApigetVisibleRangecreateOverlaygetOverlayByIdoverrideOverlayremoveOverlay
    • 样式配置
      • 新增candle.priceMark.last.text.borderStylecandle.tooltip.iconsindicator.lastValueMark.text.borderStyleindicator.tooltip.iconscrosshair.horizontal.text.borderStylecrosshair.vertical.text.borderStyle
  • 👉 变更
    • API
      • 图表方法extension.addTechnicalIndicatorTemplate变更为registerIndicator
      • 图表方法extension.addShapeTemplate变更为registerOverlay
      • 实例方法setStyleOptions变更为setStyles
      • 实例方法getStyleOptions变更为getStyles
      • 实例方法setPaneOptions(options)options新增属性gap
      • 实例方法setOffsetRightSpace变更为setOffsetRightDistance
      • 实例方法createTechnicalIndicator变更为createIndicator
      • 实例方法overlayTechnicalIndicator变更为overlayIndicator
      • 实例方法getTechnicalIndicatorByPaneId变更为getIndicatorByPaneId
      • 实例方法removeTechnicalIndicator变更为removeIndicator
    • 样式配置
      • 所有line.style选项变更为soliddashed
      • 所有dashValue变更为dashedValue
      • xAxis.height变更为xAxis.sizexAxis.tickText.paddingTop变更为xAxis.tickText.marginStartxAxis.tickText.paddingBottom变更为xAxis.tickText.marginEnd
      • yAxis.height变更为yAxis.sizeyAxis.tickText.paddingTop变更为yAxis.tickText.marginStartyAxis.tickText.paddingBottom变更为yAxis.tickText.marginEnd
      • technicalIndicator.bar变更为indicator.barstechnicalIndicator.line变更为indicator.linestechnicalIndicator.circle变更为indicator.circles
    • 自定义扩展
      • 技术指标属性calcParams,变更为支持任意类型。
      • 技术指标属性plots变更为figures
      • 技术指标属性regeneratePlots变更为regeneratefigures
      • 技术指标属性calcTechnicalIndicator变更为calc
      • 技术指标属性render变更为draw
  • 🗑 废弃
    • API
      • 删除实例方法getWidthgetHeight,改用getSize
      • 删除实例方法createShapecreateAnnotationcreateTag,改用createOverlay
      • 删除实例方法removeShaperemoveAnnotationremoveTag,改用removeOverlay
      • 删除实例方法setShapeOptions,改用overrideOverlay
      • 删除实例方法createHtmlremoveHtmladdTechnicalIndicatorTemplategetTechnicalIndicatorTemplateaddShapeTemplate
    • 样式配置
      • 删除shapeannotationtag,改用overlay
      • 删除candle.margintechnicalIndicator.margin
    • 自定义扩展
      • 技术指标模版不再保存相关属性。
      • 技术指标删除属性shouldCheckParamCount
      • 删除Shape,改用Overlay

8.x

Github上查看 8.x 的 Change Log。

7.x

Github上查看 7.x 的 Change Log。

6.x

Github上查看 6.x 的 Change Log。

5.x

Github上查看 5.x 的版本记录。

4.x

Github上查看 4.x 的版本记录。

',50),a=[l];function t(r,n,h,s,u,p){return o(),c("div",null,a)}const b=e(i,[["render",t]]);export{x as __pageData,b as default}; +import{_ as e,o,c,Q as d}from"./chunks/framework.385ac4c3.js";const x=JSON.parse('{"title":"📠 更新日志","description":"","frontmatter":{},"headers":[],"relativePath":"guide/changelog.md","filePath":"guide/changelog.md","lastUpdated":1691952590000}'),i={name:"guide/changelog.md"},l=d('

📠 更新日志

9.5.1

2023-08-14

  • 🆕 图表方法新增getOverlayClass
  • 🆕 样式配置candle.tooltip.custom新增内置涨跌幅支持。
  • 💄 优化基础图形rect事件响应。
  • ↩️ 分割线事件响应回退

9.5.0

2023-06-15

  • 🆕 Overlay新增事件onDoubleClick,新增属性modeSensitivity
  • 🆕 样式配置candle.tooltip.custom支持字符串模版。
  • 🐞 优化移动端阻尼滚动掉帧问题。
  • 🐞 修复窗口id命名拼写错误。
  • 💄 优化分割线事件响应灵敏度。
  • 💄 优化typescript下,OverlayFigure中的attrs类型声明。

9.4.0

2023-05-25

  • 🆕 实例api createOverlay 支持数组。
  • 🆕 overlay新增属性paneIddefaultZLevelzLevel
  • 🆕 xAxis新增方法convertTimestampFromPixelconvertTimestampToPixel
  • 💄 优化蜡烛柱显示。

9.3.0

2023-05-13

  • 🆕 新增图表API utils.calcTextWidth
  • 🆕 图表API createIndicator(value, isStack, options)setPaneOptions(options)新增options.axisOptions
  • 🆕 指标图形配置支持自定义。
  • 💄 优化bar宽度比例。
  • 💄 优化内部获取屏幕像素比。
  • 💄 优化内部id生成。

9.2.2

2023-05-04

  • 🐞 修复基础图形line事件检查可能导致错误问题。
  • 💄 优化类型检查。

9.2.1

2023-04-27

  • 💄 优化默认样式,#EF5350变更为#F92855#26A69A变更为#2DC08E
  • 💄 优化typescript声明。

9.2.0

2023-04-24

  • 🆕 实例API新增getOffsetRightDistanceexecuteAction
  • 🆕 实例APIapplyNewDataapplyMoreDataupdateData新增成功回调入参callback
  • 🆕 支持千分符显示。
  • 🆕 样式配置新增candle.bar.upBorderColorcandle.bar.downBorderColorcandle.bar.noChangeBorderColorcandle.bar.upWickColorcandle.bar.downWickColorcandle.bar.noChangeWickColorcandle.tooltip.rect.positioncandle.tooltip.rect.offsetBottom
  • 🆕 所有visibleRange新增realFromrealTo
  • 💄 优化API,klinecharts.utils.isValidklinecharts.utils.formatBigNumber
  • 💄 优化开发环境下,日志输出。

9.1.3

2023-04-15

  • 🐞 修复图表api applyNewData 入参是空数组时不刷新问题。
  • 🐞 修复无数据时y轴上十字光标文字不显示问题。
  • 💄 优化面积图显示。
  • 💄 优化覆盖物事件回调参数,新增figureKeyfigureIndex
  • 💄 优化typescript覆盖物样式类型,和基础类型DeepPartial, DeepRequired

9.1.2

2023-04-10

  • 🐞 修复内置基础图形line触发事件不准确问题。
  • 🐞 修复内置覆盖物simpleAnnotationsimpleTag绘制完成后第一次触发事件问题。
  • 💄 优化覆盖物图形事件忽略,支持事件选择。

9.1.1

2023-03-14

  • 🐞 修复内置基础图形arc不生效问题。
  • 💄 优化渲染更新。

9.1.0

2023-02-23

  • 🆕 图表实例方法subscribeActionunsubscribeAction类型新增onCandleBarClick
  • 🆕 覆盖物支持双击强制结束绘制。
  • 💄 优化事件处理。

9.0.1

2023-02-17

  • 🐞 修复typescript引入问题。

9.0.0

2023-02-16

  • 🛠 Typescript重构。
  • 🆕 新特性
    • 新增Y轴方向缩放,滚动。
    • API
      • 新增基图表方法registerFiguregetSupportFiguresgetFigureClassrigisterOverlaygetSupportOverlaysregisterLocalegetSupportLocalesregisterStyles
      • 新增实例方法,getSizesetLocalegetLocalsetCustomApigetVisibleRangecreateOverlaygetOverlayByIdoverrideOverlayremoveOverlay
    • 样式配置
      • 新增candle.priceMark.last.text.borderStylecandle.tooltip.iconsindicator.lastValueMark.text.borderStyleindicator.tooltip.iconscrosshair.horizontal.text.borderStylecrosshair.vertical.text.borderStyle
  • 👉 变更
    • API
      • 图表方法extension.addTechnicalIndicatorTemplate变更为registerIndicator
      • 图表方法extension.addShapeTemplate变更为registerOverlay
      • 实例方法setStyleOptions变更为setStyles
      • 实例方法getStyleOptions变更为getStyles
      • 实例方法setPaneOptions(options)options新增属性gap
      • 实例方法setOffsetRightSpace变更为setOffsetRightDistance
      • 实例方法createTechnicalIndicator变更为createIndicator
      • 实例方法overlayTechnicalIndicator变更为overlayIndicator
      • 实例方法getTechnicalIndicatorByPaneId变更为getIndicatorByPaneId
      • 实例方法removeTechnicalIndicator变更为removeIndicator
    • 样式配置
      • 所有line.style选项变更为soliddashed
      • 所有dashValue变更为dashedValue
      • xAxis.height变更为xAxis.sizexAxis.tickText.paddingTop变更为xAxis.tickText.marginStartxAxis.tickText.paddingBottom变更为xAxis.tickText.marginEnd
      • yAxis.height变更为yAxis.sizeyAxis.tickText.paddingTop变更为yAxis.tickText.marginStartyAxis.tickText.paddingBottom变更为yAxis.tickText.marginEnd
      • technicalIndicator.bar变更为indicator.barstechnicalIndicator.line变更为indicator.linestechnicalIndicator.circle变更为indicator.circles
    • 自定义扩展
      • 技术指标属性calcParams,变更为支持任意类型。
      • 技术指标属性plots变更为figures
      • 技术指标属性regeneratePlots变更为regeneratefigures
      • 技术指标属性calcTechnicalIndicator变更为calc
      • 技术指标属性render变更为draw
  • 🗑 废弃
    • API
      • 删除实例方法getWidthgetHeight,改用getSize
      • 删除实例方法createShapecreateAnnotationcreateTag,改用createOverlay
      • 删除实例方法removeShaperemoveAnnotationremoveTag,改用removeOverlay
      • 删除实例方法setShapeOptions,改用overrideOverlay
      • 删除实例方法createHtmlremoveHtmladdTechnicalIndicatorTemplategetTechnicalIndicatorTemplateaddShapeTemplate
    • 样式配置
      • 删除shapeannotationtag,改用overlay
      • 删除candle.margintechnicalIndicator.margin
    • 自定义扩展
      • 技术指标模版不再保存相关属性。
      • 技术指标删除属性shouldCheckParamCount
      • 删除Shape,改用Overlay

8.x

Github上查看 8.x 的 Change Log。

7.x

Github上查看 7.x 的 Change Log。

6.x

Github上查看 6.x 的 Change Log。

5.x

Github上查看 5.x 的版本记录。

4.x

Github上查看 4.x 的版本记录。

',50),a=[l];function t(r,n,h,s,u,p){return o(),c("div",null,a)}const b=e(i,[["render",t]]);export{x as __pageData,b as default}; diff --git a/assets/guide_changelog.md.88d4c906.lean.js b/assets/guide_changelog.md.e6871db3.lean.js similarity index 69% rename from assets/guide_changelog.md.88d4c906.lean.js rename to assets/guide_changelog.md.e6871db3.lean.js index 94349a238..3233c66b6 100644 --- a/assets/guide_changelog.md.88d4c906.lean.js +++ b/assets/guide_changelog.md.e6871db3.lean.js @@ -1 +1 @@ -import{_ as e,o,c,X as d}from"./chunks/framework.6909765d.js";const x=JSON.parse('{"title":"📠 更新日志","description":"","frontmatter":{},"headers":[],"relativePath":"guide/changelog.md","filePath":"guide/changelog.md","lastUpdated":1692476949000}'),i={name:"guide/changelog.md"},l=d("",50),a=[l];function t(r,n,h,s,u,p){return o(),c("div",null,a)}const b=e(i,[["render",t]]);export{x as __pageData,b as default}; +import{_ as e,o,c,Q as d}from"./chunks/framework.385ac4c3.js";const x=JSON.parse('{"title":"📠 更新日志","description":"","frontmatter":{},"headers":[],"relativePath":"guide/changelog.md","filePath":"guide/changelog.md","lastUpdated":1691952590000}'),i={name:"guide/changelog.md"},l=d("",50),a=[l];function t(r,n,h,s,u,p){return o(),c("div",null,a)}const b=e(i,[["render",t]]);export{x as __pageData,b as default}; diff --git a/assets/guide_chart-api.md.96158c5f.lean.js b/assets/guide_chart-api.md.96158c5f.lean.js deleted file mode 100644 index 9a3a8b223..000000000 --- a/assets/guide_chart-api.md.96158c5f.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=JSON.parse('{"title":"图表API","description":"","frontmatter":{},"headers":[],"relativePath":"guide/chart-api.md","filePath":"guide/chart-api.md","lastUpdated":1692476949000}'),p={name:"guide/chart-api.md"},o=l("",152),e=[o];function t(c,r,y,i,D,C){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{F as __pageData,d as default}; diff --git a/assets/guide_chart-api.md.96158c5f.js b/assets/guide_chart-api.md.fc242e9b.js similarity index 69% rename from assets/guide_chart-api.md.96158c5f.js rename to assets/guide_chart-api.md.fc242e9b.js index 7690f48b5..2fdae4cfe 100644 --- a/assets/guide_chart-api.md.96158c5f.js +++ b/assets/guide_chart-api.md.fc242e9b.js @@ -1,16 +1,16 @@ -import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=JSON.parse('{"title":"图表API","description":"","frontmatter":{},"headers":[],"relativePath":"guide/chart-api.md","filePath":"guide/chart-api.md","lastUpdated":1692476949000}'),p={name:"guide/chart-api.md"},o=l(`

图表API

init(ds, options)

typescript
(
-  ds: string | HTMLElement,
-  options?: {
-    locale?: string
-    styles?: string | object
-    timezone?: string
-    customApi?: {
-      formatDate?: (dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string, type: number) => string
-      formatBigNumber?: (value: string | number) => string
-    }
-    thousandsSeparator?: string
-  }
-) => Chart
(
+import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const F=JSON.parse('{"title":"图表API","description":"","frontmatter":{},"headers":[],"relativePath":"guide/chart-api.md","filePath":"guide/chart-api.md","lastUpdated":1692476796000}'),p={name:"guide/chart-api.md"},o=l(`

图表API

init(ds, options)

typescript
(
+  ds: string | HTMLElement,
+  options?: {
+    locale?: string
+    styles?: string | object
+    timezone?: string
+    customApi?: {
+      formatDate?: (dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string, type: number) => string
+      formatBigNumber?: (value: string | number) => string
+    }
+    thousandsSeparator?: string
+  }
+) => Chart
(
   ds: string | HTMLElement,
   options?: {
     locale?: string
@@ -22,17 +22,17 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     }
     thousandsSeparator?: string
   }
-) => Chart

初始化一个图表,返回图表实例。

  • ds 容器,可以是dom元素或者元素id。
  • options 可选配置项。
    • locale 语言,内置支持zh-CNen-US
    • timezone 时区名,如'Asia/Shanghai',如果不设置会自动获取本机时区,时区对应名字列表请参阅时区列表
    • styles 可以是通过klinecharts.registerStyles注册的样式名,也可以是object,样式列表,详情参阅样式,支持增量。
    • customApi 自定义一些api。
      • formatDate 格式化日期。
      • formatBigNumber 格式化大的数字,如1000转换成1k,1000000转换为1M等。
    • thousandsSeparator 千分符

dispose(dcs)

typescript
(dcs: HTMLElement | Chart | string) => void
(dcs: HTMLElement | Chart | string) => void

销毁一个图表,一旦销毁,图表将不再可用。

  • dcs 可以是dom元素、元素id或者图表实例。

registerLocale(locale, locales)

typescript
(
-  locale: string,
-  locales: {
-    time: string
-    open: string
-    high: string
-    low: string
-    close: string
-    volume: string
-  }
-) => void
(
+) => Chart

初始化一个图表,返回图表实例。

  • ds 容器,可以是dom元素或者元素id。
  • options 可选配置项。
    • locale 语言,内置支持zh-CNen-US
    • timezone 时区名,如'Asia/Shanghai',如果不设置会自动获取本机时区,时区对应名字列表请参阅时区列表
    • styles 可以是通过klinecharts.registerStyles注册的样式名,也可以是object,样式列表,详情参阅样式,支持增量。
    • customApi 自定义一些api。
      • formatDate 格式化日期。
      • formatBigNumber 格式化大的数字,如1000转换成1k,1000000转换为1M等。
    • thousandsSeparator 千分符

dispose(dcs)

typescript
(dcs: HTMLElement | Chart | string) => void
(dcs: HTMLElement | Chart | string) => void

销毁一个图表,一旦销毁,图表将不再可用。

  • dcs 可以是dom元素、元素id或者图表实例。

registerLocale(locale, locales)

typescript
(
+  locale: string,
+  locales: {
+    time: string
+    open: string
+    high: string
+    low: string
+    close: string
+    volume: string
+  }
+) => void
(
   locale: string,
   locales: {
     time: string
@@ -42,79 +42,79 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     close: string
     volume: string
   }
-) => void

添加一个本地化语言。图表内置了zh-CNen-US

  • locale 语言名
  • locales 语言配置

getOverlayClass()

typescript
(name: string) => Nullable<OverlayConstructor>
(name: string) => Nullable<OverlayConstructor>

根据覆盖物名称获取图表内覆盖物的属性。

getSupportedLocales()

typescript
() => string[]
() => string[]

获取图表支持的本地化语言类型。

registerStyles(name, styles)

typescript
(
-  name: string,
-  styles: object
-) => void
(
+) => void

添加一个本地化语言。图表内置了zh-CNen-US

  • locale 语言名
  • locales 语言配置

getOverlayClass()

typescript
(name: string) => Nullable<OverlayConstructor>
(name: string) => Nullable<OverlayConstructor>

根据覆盖物名称获取图表内覆盖物的属性。

getSupportedLocales()

typescript
() => string[]
() => string[]

获取图表支持的本地化语言类型。

registerStyles(name, styles)

typescript
(
+  name: string,
+  styles: object
+) => void
(
   name: string,
   styles: object
-) => void

添加一个样式配置。

  • name 样式名
  • styles 样式配置,类型参阅样式,支持增量。

registerFigure(figure)

typescript
(
-  figure: {
-    name: string
-    draw: (ctx: CanvasRenderingContext2D, attrs: any, styles: object) => void
-    checkEventOn: (coordinate: Coordinate, attrs: any, styles: object) => boolean
-  }
-) => void
(
+) => void

添加一个样式配置。

  • name 样式名
  • styles 样式配置,类型参阅样式,支持增量。

registerFigure(figure)

typescript
(
+  figure: {
+    name: string
+    draw: (ctx: CanvasRenderingContext2D, attrs: any, styles: object) => void
+    checkEventOn: (coordinate: Coordinate, attrs: any, styles: object) => boolean
+  }
+) => void
(
   figure: {
     name: string
     draw: (ctx: CanvasRenderingContext2D, attrs: any, styles: object) => void
     checkEventOn: (coordinate: Coordinate, attrs: any, styles: object) => boolean
   }
-) => void

添加一个基础图形。

  • figure 基础图形信息,详情参阅基础图形
    • name 名字,唯一标识
    • draw 绘制方法
    • checkEventOn 检查事件是否在图形上

getSupportedFigures()

typescript
() => string[]
() => string[]

获取图表支持的基础图形类型。

getFigureClass(name)

typescript
(name: string) => Figure
(name: string) => Figure

获取图形类

  • name 图形名

registerIndicator(indicator)

typescript
(
-  indicator: {
-    name: string
-    shortName?: string
-    precision?: number
-    calcParams?: any[]
-    shouldOhlc?: boolean
-    shouldFormatBigNumber?: boolean
-    visible?: boolean
-    extendData?: any
-    series?: 'normal' | 'price' | 'volume'
-    figures?: Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => object
-      attrs: (
-        coordinate: object
-        bounding: Bounding
-        barSpace: BarSpace
-        xAxis: XAxis
-        yAxis: YAxis
-      ) => object
-    }>
-    minValue?: number
-    maxValue?: number
-    styles?: object
-    calc: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
-    regenerateFigures?: (calcParms: any[]) => Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => object
-      attrs: (
-        coordinate: object
-        bounding: Bounding
-        barSpace: BarSpace
-        xAxis: XAxis
-        yAxis: YAxis
-      ) => object
-    }>
-    createTooltipDataSource?: (params: object) => {
-      name?: string
-      calcParamsText?: string
-      values?: Array<{
+) => void

添加一个基础图形。

  • figure 基础图形信息,详情参阅基础图形
    • name 名字,唯一标识
    • draw 绘制方法
    • checkEventOn 检查事件是否在图形上

getSupportedFigures()

typescript
() => string[]
() => string[]

获取图表支持的基础图形类型。

getFigureClass(name)

typescript
(name: string) => Figure
(name: string) => Figure

获取图形类

  • name 图形名

registerIndicator(indicator)

typescript
(
+  indicator: {
+    name: string
+    shortName?: string
+    precision?: number
+    calcParams?: any[]
+    shouldOhlc?: boolean
+    shouldFormatBigNumber?: boolean
+    visible?: boolean
+    extendData?: any
+    series?: 'normal' | 'price' | 'volume'
+    figures?: Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => object
+      attrs: (
+        coordinate: object
+        bounding: Bounding
+        barSpace: BarSpace
+        xAxis: XAxis
+        yAxis: YAxis
+      ) => object
+    }>
+    minValue?: number
+    maxValue?: number
+    styles?: object
+    calc: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
+    regenerateFigures?: (calcParms: any[]) => Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => object
+      attrs: (
+        coordinate: object
+        bounding: Bounding
+        barSpace: BarSpace
+        xAxis: XAxis
+        yAxis: YAxis
+      ) => object
+    }>
+    createTooltipDataSource?: (params: object) => {
+      name?: string
+      calcParamsText?: string
+      values?: Array<{
         title: string | {
           text: string
           color: string
@@ -125,9 +125,9 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
         }
       }>
     }
-    draw?: (params: object) => boolean
-  }
-) => void
(
+    draw?: (params: object) => boolean
+  }
+) => void
(
   indicator: {
     name: string
     shortName?: string
@@ -194,78 +194,78 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     }
     draw?: (params: object) => boolean
   }
-) => void

添加一个技术指标。

  • indicator 技术指标信息
    • name 指标名,用于创建和操作的唯一标识
    • shortName 简短名字,用于显示
    • precision 精度
    • calcParams 计算参数
    • shouldOhlc 是否需要ohlc辅助图形
    • shouldFormatBigNumber 是否需要格式化大的数字。如1000转换成1k,1000000转换为1M等
    • visible 是否可见
    • extendData 扩展数据
    • series 指标系列,可选项有'normal','price'和'volume'
    • figures 图形配置
    • minValue 指定最小值
    • maxValue 指定最大值
    • styles 样式
    • calc 计算方法
    • regenerateFigures 重新生成图形信息方法
    • createTooltipDataSource 创建自定义提示信息方法
    • draw 自定义绘制方法

getSupportedIndicators()

typescript
() => string[]
() => string[]

获取图表支持的技术指标

registerOverlay(overlay)

typescript
(
-  overlay: {
-    name: string
-    totalStep?: number
-    lock?: boolean
-    visible?: boolean
-    zLevel?: number
-    needDefaultPointFigure?: boolean
-    needDefaultXAxisFigure?: boolean
-    needDefaultYAxisFigure?: boolean
-    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
-    modeSensitivity?: number
-    points?: Array<{ timestamp: number, dataIndex?: number, value?: number }>
-    extendData?: any
-    styles?: object
-    createPointFigures?: (params: object) => {
-      key?: string
-      type: string
-      attrs: any | any[]
-      styles?: any
-      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-    } | Array<{
-      key?: string
-      type: string
-      attrs: any | any[]
-      styles?: any
-      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-    }>
-    createXAxisFigures?: (params: object) => {
-      key?: string
-      type: string
-      attrs: any | any[]
-      styles?: any
-      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-    } | Array<{
-      key?: string
-      type: string
-      attrs: any | any[]
-      styles?: any
-      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-    }>
-    createYAxisFigures?: (params: object) => {
-      key?: string
-      type: string
-      attrs: any | any[]
-      styles?: any
-      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-    } | Array<{
-      key?: string
-      type: string
-      attrs: any | any[]
-      styles?: any
-      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-    }>
-    performEventPressedMove?: (params: object) => void
-    performEventMoveForDrawing?: (params: object) => void
-    onDrawStart?: (event: object) => boolean
-    onDrawing?: (event: object) => boolean
-    onDrawEnd?: (event: object) => boolean
-    onClick?: (event: object) => boolean
-    onDoubleClick?: (event: object) => boolean
-    onRightClick?: (event: object) => boolean
-    onPressedMoveStart?: (event: object) => boolean
-    onPressedMoving?: (event: object) => boolean
-    onPressedMoveEnd?: (event: object) => boolean
-    onMouseEnter?: (event: object) => boolean
-    onMouseLeave?: (event: object) => boolean
-    onRemoved?: (event: object) => boolean
-    onSelected?: (event: object) => boolean
-    onDeselected?: (event: object) => boolean
-  }
-) => void
(
+) => void

添加一个技术指标。

  • indicator 技术指标信息
    • name 指标名,用于创建和操作的唯一标识
    • shortName 简短名字,用于显示
    • precision 精度
    • calcParams 计算参数
    • shouldOhlc 是否需要ohlc辅助图形
    • shouldFormatBigNumber 是否需要格式化大的数字。如1000转换成1k,1000000转换为1M等
    • visible 是否可见
    • extendData 扩展数据
    • series 指标系列,可选项有'normal','price'和'volume'
    • figures 图形配置
    • minValue 指定最小值
    • maxValue 指定最大值
    • styles 样式
    • calc 计算方法
    • regenerateFigures 重新生成图形信息方法
    • createTooltipDataSource 创建自定义提示信息方法
    • draw 自定义绘制方法

getSupportedIndicators()

typescript
() => string[]
() => string[]

获取图表支持的技术指标

registerOverlay(overlay)

typescript
(
+  overlay: {
+    name: string
+    totalStep?: number
+    lock?: boolean
+    visible?: boolean
+    zLevel?: number
+    needDefaultPointFigure?: boolean
+    needDefaultXAxisFigure?: boolean
+    needDefaultYAxisFigure?: boolean
+    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+    modeSensitivity?: number
+    points?: Array<{ timestamp: number, dataIndex?: number, value?: number }>
+    extendData?: any
+    styles?: object
+    createPointFigures?: (params: object) => {
+      key?: string
+      type: string
+      attrs: any | any[]
+      styles?: any
+      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+    } | Array<{
+      key?: string
+      type: string
+      attrs: any | any[]
+      styles?: any
+      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+    }>
+    createXAxisFigures?: (params: object) => {
+      key?: string
+      type: string
+      attrs: any | any[]
+      styles?: any
+      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+    } | Array<{
+      key?: string
+      type: string
+      attrs: any | any[]
+      styles?: any
+      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+    }>
+    createYAxisFigures?: (params: object) => {
+      key?: string
+      type: string
+      attrs: any | any[]
+      styles?: any
+      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+    } | Array<{
+      key?: string
+      type: string
+      attrs: any | any[]
+      styles?: any
+      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+    }>
+    performEventPressedMove?: (params: object) => void
+    performEventMoveForDrawing?: (params: object) => void
+    onDrawStart?: (event: object) => boolean
+    onDrawing?: (event: object) => boolean
+    onDrawEnd?: (event: object) => boolean
+    onClick?: (event: object) => boolean
+    onDoubleClick?: (event: object) => boolean
+    onRightClick?: (event: object) => boolean
+    onPressedMoveStart?: (event: object) => boolean
+    onPressedMoving?: (event: object) => boolean
+    onPressedMoveEnd?: (event: object) => boolean
+    onMouseEnter?: (event: object) => boolean
+    onMouseLeave?: (event: object) => boolean
+    onRemoved?: (event: object) => boolean
+    onSelected?: (event: object) => boolean
+    onDeselected?: (event: object) => boolean
+  }
+) => void
(
   overlay: {
     name: string
     totalStep?: number
@@ -336,16 +336,16 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     onSelected?: (event: object) => boolean
     onDeselected?: (event: object) => boolean
   }
-) => void

添加一个覆盖物。

  • overlay 覆盖物信息,详情参阅覆盖物
    • name 覆盖物名,用于创建的唯一标识
    • totalStep 总的实现步骤
    • lock 是否锁定不让拖动
    • visible 是否可见
    • zLevel 绘制层级,值越大,越靠前显示
    • needDefaultPointFigure 是否需要默认的点对应的图形
    • needDefaultXAxisFigure 是否需要默认的x轴上的图形
    • needDefaultYAxisFigure 是否需要默认的y轴上的图形
    • mode 模式,可选项有'normal','weak_magnet'和'strong_magnet'
    • modeSensitivity 模式灵敏度,仅 mode 是 weak_magnet 时有效
    • points 点信息
    • extendData 扩展数据
    • styles 样式
    • createPointFigures 创建点对应的图形
    • createXAxisFigures 创建x轴上的图形
    • createYAxisFigures 创建y轴上的图形
    • performEventPressedMove 按住移动事件特殊处理方法
    • performEventMoveForDrawing 移动事件过程中特殊处理方法
    • onDrawStart 开始绘制事件
    • onDrawing 绘制中事件
    • onDrawEnd 绘制结束事件
    • onClick 点击事件
    • onDoubleClick 双击事件
    • onRightClick 右击事件
    • onPressedMoveStart 按住开始移动事件
    • onPressedMoving 按住移动中事件
    • onPressedMoveEnd 按住移动结束事件
    • onMouseEnter 鼠标移入事件
    • onMouseLeave 鼠标移出事件
    • onRemoved 删除事件
    • onSelected 选中事件
    • onDeselected 取消选中事件

getSupportedOverlays()

typescript
() => string[]
() => string[]

获取图表支持的覆盖物

version()

typescript
() => string
() => string

获取图表当前版本号。

utils

辅助方法集合。

utils.clone(target)

typescript
(target: any) => any
(target: any) => any

深度复制。

utils.merge(target, source)

typescript
(target: object, source: object) => void
(target: object, source: object) => void

将一个对象合并到另一个对象。

utils.isString(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是字符串。

utils.isNumber(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是数字。

utils.isValid(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否有效。

utils.isObject(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是对象。

utils.isFunction(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是方法。

utils.isBoolean(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是bool值。

utils.formatValue(value, key, defaultValue)

typescript
(data: any, key: string, defaultValue?: any) => any
(data: any, key: string, defaultValue?: any) => any

从某个值取对应的值,支持嵌套,如const o = { a: { b: { c: 1 } } }formatValue(o, 'a.b.c')c的值。

utils.formatPrecision(value)

typescript
(value: string | number, precision?: number) => string
(value: string | number, precision?: number) => string

格式化精度。

utils.formatBigNumber(value)

typescript
(value: string | number) => string
(value: string | number) => string

格式化大的数字,如1000转换成1k,1000000转换为1M等。

utils.formatDate(dateTimeFormat, timestamp, format)

typescript
(dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string) => string
(dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string) => string

格式化日期。format格式,如'YYYY-MM-DD HH:mm:ss'。

utils.formatThousands(value, sign)

typescript
(value: string | number, sign: string) => string
(value: string | number, sign: string) => string

格式化日期千分符。

utils.calcTextWidth(text, size, weight, family)

typescript
(text: string, size?: number, weight?: string | number, family?: string) => number
(text: string, size?: number, weight?: string | number, family?: string) => number

计算文字宽度

utils.getLinearSlopeIntercept(coordinate1, coordinate2)

typescript
(
-  coordinate1: {
-    x: number
-    y: number
-  },
-  coordinate2: {
-    x: number
-    y: number
-  }
-) => []
(
+) => void

添加一个覆盖物。

  • overlay 覆盖物信息,详情参阅覆盖物
    • name 覆盖物名,用于创建的唯一标识
    • totalStep 总的实现步骤
    • lock 是否锁定不让拖动
    • visible 是否可见
    • zLevel 绘制层级,值越大,越靠前显示
    • needDefaultPointFigure 是否需要默认的点对应的图形
    • needDefaultXAxisFigure 是否需要默认的x轴上的图形
    • needDefaultYAxisFigure 是否需要默认的y轴上的图形
    • mode 模式,可选项有'normal','weak_magnet'和'strong_magnet'
    • modeSensitivity 模式灵敏度,仅 mode 是 weak_magnet 时有效
    • points 点信息
    • extendData 扩展数据
    • styles 样式
    • createPointFigures 创建点对应的图形
    • createXAxisFigures 创建x轴上的图形
    • createYAxisFigures 创建y轴上的图形
    • performEventPressedMove 按住移动事件特殊处理方法
    • performEventMoveForDrawing 移动事件过程中特殊处理方法
    • onDrawStart 开始绘制事件
    • onDrawing 绘制中事件
    • onDrawEnd 绘制结束事件
    • onClick 点击事件
    • onDoubleClick 双击事件
    • onRightClick 右击事件
    • onPressedMoveStart 按住开始移动事件
    • onPressedMoving 按住移动中事件
    • onPressedMoveEnd 按住移动结束事件
    • onMouseEnter 鼠标移入事件
    • onMouseLeave 鼠标移出事件
    • onRemoved 删除事件
    • onSelected 选中事件
    • onDeselected 取消选中事件

getSupportedOverlays()

typescript
() => string[]
() => string[]

获取图表支持的覆盖物

version()

typescript
() => string
() => string

获取图表当前版本号。

utils

辅助方法集合。

utils.clone(target)

typescript
(target: any) => any
(target: any) => any

深度复制。

utils.merge(target, source)

typescript
(target: object, source: object) => void
(target: object, source: object) => void

将一个对象合并到另一个对象。

utils.isString(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是字符串。

utils.isNumber(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是数字。

utils.isValid(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否有效。

utils.isObject(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是对象。

utils.isFunction(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是方法。

utils.isBoolean(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是bool值。

utils.formatValue(value, key, defaultValue)

typescript
(data: any, key: string, defaultValue?: any) => any
(data: any, key: string, defaultValue?: any) => any

从某个值取对应的值,支持嵌套,如const o = { a: { b: { c: 1 } } }formatValue(o, 'a.b.c')c的值。

utils.formatPrecision(value)

typescript
(value: string | number, precision?: number) => string
(value: string | number, precision?: number) => string

格式化精度。

utils.formatBigNumber(value)

typescript
(value: string | number) => string
(value: string | number) => string

格式化大的数字,如1000转换成1k,1000000转换为1M等。

utils.formatDate(dateTimeFormat, timestamp, format)

typescript
(dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string) => string
(dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string) => string

格式化日期。format格式,如'YYYY-MM-DD HH:mm:ss'。

utils.formatThousands(value, sign)

typescript
(value: string | number, sign: string) => string
(value: string | number, sign: string) => string

格式化日期千分符。

utils.calcTextWidth(text, size, weight, family)

typescript
(text: string, size?: number, weight?: string | number, family?: string) => number
(text: string, size?: number, weight?: string | number, family?: string) => number

计算文字宽度

utils.getLinearSlopeIntercept(coordinate1, coordinate2)

typescript
(
+  coordinate1: {
+    x: number
+    y: number
+  },
+  coordinate2: {
+    x: number
+    y: number
+  }
+) => []
(
   coordinate1: {
     x: number
     y: number
@@ -354,20 +354,20 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     x: number
     y: number
   }
-) => []

根据两个坐标点,获取点组成的线的斜率和常数项,即y = kx + b中的kb

utils.getLinearYFromCoordinates(coordinate1, coordinate2, targetCoordinate)

typescript
(
-  coordinate1: {
-    x: number
-    y: number
-  },
-  coordinate2: {
-    x: number
-    y: number
-  }
-  targetCoordinate: {
-    x: number
-    y: number
-  }
-) => number
(
+) => []

根据两个坐标点,获取点组成的线的斜率和常数项,即y = kx + b中的kb

utils.getLinearYFromCoordinates(coordinate1, coordinate2, targetCoordinate)

typescript
(
+  coordinate1: {
+    x: number
+    y: number
+  },
+  coordinate2: {
+    x: number
+    y: number
+  }
+  targetCoordinate: {
+    x: number
+    y: number
+  }
+) => number
(
   coordinate1: {
     x: number
     y: number
@@ -380,31 +380,31 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     x: number
     y: number
   }
-) => number

获取一个点在另外两个坐标点形成的线上的y轴坐标值。

utils.getLinearYFromSlopeIntercept(kb, targetCoordinate)

typescript
(
-  kb: Array<number>,
-  targetCoordinate: {
-    x: number
-    y: number
-  }
-) => number
(
+) => number

获取一个点在另外两个坐标点形成的线上的y轴坐标值。

utils.getLinearYFromSlopeIntercept(kb, targetCoordinate)

typescript
(
+  kb: Array<number>,
+  targetCoordinate: {
+    x: number
+    y: number
+  }
+) => number
(
   kb: Array<number>,
   targetCoordinate: {
     x: number
     y: number
   }
-) => number

获取一个点在斜率和常数项形成的线上的y轴坐标值。

utils.checkCoordinateOnArc(coordinate, arc)

typescript
(
-  coordinate: {
-    x: number
-    y: number
-  },
-  arc: {
-    x: number
-    y: number
-    r: number
-    startAngle: number
-    endAngle: number
-  }
-) => boolean
(
+) => number

获取一个点在斜率和常数项形成的线上的y轴坐标值。

utils.checkCoordinateOnArc(coordinate, arc)

typescript
(
+  coordinate: {
+    x: number
+    y: number
+  },
+  arc: {
+    x: number
+    y: number
+    r: number
+    startAngle: number
+    endAngle: number
+  }
+) => boolean
(
   coordinate: {
     x: number
     y: number
@@ -416,17 +416,17 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     startAngle: number
     endAngle: number
   }
-) => boolean

检查某个坐标点是否在圆弧上。

  • coordinate 坐标点信息
  • arc 圆弧参数
    • x 圆心的x轴值
    • y 圆心的y轴值
    • r 半径
    • startAngle 起始角度
    • endAngle 结束角度

utils.checkCoordinateOnCircle(coordinate, circle)

typescript
(
-  coordinate: {
-    x: number
-    y: number
-  },
-  circle: {
-    x: number
-    y: number
-    r: number
-  }
-) => boolean
(
+) => boolean

检查某个坐标点是否在圆弧上。

  • coordinate 坐标点信息
  • arc 圆弧参数
    • x 圆心的x轴值
    • y 圆心的y轴值
    • r 半径
    • startAngle 起始角度
    • endAngle 结束角度

utils.checkCoordinateOnCircle(coordinate, circle)

typescript
(
+  coordinate: {
+    x: number
+    y: number
+  },
+  circle: {
+    x: number
+    y: number
+    r: number
+  }
+) => boolean
(
   coordinate: {
     x: number
     y: number
@@ -436,18 +436,18 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     y: number
     r: number
   }
-) => boolean

检查某个坐标点是否在圆上。

  • coordinate 坐标点信息
  • circle 圆参数
    • x 圆心的x轴值
    • y 圆心的y轴值
    • r 半径

utils.checkCoordinateOnLine(coordinate, line)

typescript
(
-  coordinate: {
-    x: number
-    y: number
-  },
-  line: {
-    coordinates: Array<{
-      x: number
-      y: number
-    }>
-  }
-) => boolean
(
+) => boolean

检查某个坐标点是否在圆上。

  • coordinate 坐标点信息
  • circle 圆参数
    • x 圆心的x轴值
    • y 圆心的y轴值
    • r 半径

utils.checkCoordinateOnLine(coordinate, line)

typescript
(
+  coordinate: {
+    x: number
+    y: number
+  },
+  line: {
+    coordinates: Array<{
+      x: number
+      y: number
+    }>
+  }
+) => boolean
(
   coordinate: {
     x: number
     y: number
@@ -458,18 +458,18 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       y: number
     }>
   }
-) => boolean

检查某个坐标点是否在线上。

utils.checkCoordinateOnPolygon(coordinate, polygon)

typescript
(
-  coordinate: {
-    x: number
-    y: number
-  },
-  polygon: {
-    coordinates: Array<{
-      x: number
-      y: number
-    }>
-  }
-) => boolean
(
+) => boolean

检查某个坐标点是否在线上。

utils.checkCoordinateOnPolygon(coordinate, polygon)

typescript
(
+  coordinate: {
+    x: number
+    y: number
+  },
+  polygon: {
+    coordinates: Array<{
+      x: number
+      y: number
+    }>
+  }
+) => boolean
(
   coordinate: {
     x: number
     y: number
@@ -480,18 +480,18 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       y: number
     }>
   }
-) => boolean

检查某个坐标点是否在多边形上。

utils.checkCoordinateOnRect(coordinate, rect)

typescript
(
-  coordinate: {
-    x: number
-    y: number
-  },
-  rect: {
-    x: number
-    y: number
-    width: number
-    height: number
-  }
-) => boolean
(
+) => boolean

检查某个坐标点是否在多边形上。

utils.checkCoordinateOnRect(coordinate, rect)

typescript
(
+  coordinate: {
+    x: number
+    y: number
+  },
+  rect: {
+    x: number
+    y: number
+    width: number
+    height: number
+  }
+) => boolean
(
   coordinate: {
     x: number
     y: number
@@ -502,25 +502,25 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     width: number
     height: number
   }
-) => boolean

检查某个坐标点是否在矩形上。

  • coordinate 坐标点信息
  • rect 矩形参数
    • x 起始点x轴值
    • y 起始点y轴值
    • width 宽度
    • height 高度

utils.checkCoordinateOnText(coordinate, text, styles)

typescript
(
-  coordinate: {
-    x: number
-    y: number
-  },
-  text: {
-    x: number
-    y: number
-    text: any
-    align?: 'center' | 'end' | 'left' | 'right' | 'start'
-    baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
-  },
-  styles: {
-    color?: string
-    size?: number
-    family?: string
-    weight?: number | string
-  }
-) => boolean
(
+) => boolean

检查某个坐标点是否在矩形上。

  • coordinate 坐标点信息
  • rect 矩形参数
    • x 起始点x轴值
    • y 起始点y轴值
    • width 宽度
    • height 高度

utils.checkCoordinateOnText(coordinate, text, styles)

typescript
(
+  coordinate: {
+    x: number
+    y: number
+  },
+  text: {
+    x: number
+    y: number
+    text: any
+    align?: 'center' | 'end' | 'left' | 'right' | 'start'
+    baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
+  },
+  styles: {
+    color?: string
+    size?: number
+    family?: string
+    weight?: number | string
+  }
+) => boolean
(
   coordinate: {
     x: number
     y: number
@@ -538,22 +538,22 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     family?: string
     weight?: number | string
   }
-) => boolean

检查某个坐标点是否在文字上。

  • coordinate 坐标点信息
  • text 文字参数
    • x 起始点x轴值
    • y 起始点y轴值
    • text 文字内容
    • align 水平对齐方式
    • baseline 垂直对齐方式
  • styles 样式
    • color 颜色
    • size 尺寸
    • family 字体
    • weight 权重

utils.drawArc(ctx, arc, styles)

typescript
(
-  ctx: CanvasRenderingContext2D,
-  arc: {
-    x: number
-    y: number
-    r: number
-    startAngle: number
-    endAngle: number
-  },
-  styles: {
-    style?: 'solid' | 'dashed'
-    size?: number
-    color?: string
-    dashedValue?: number[]
-  }
-) => void
(
+) => boolean

检查某个坐标点是否在文字上。

  • coordinate 坐标点信息
  • text 文字参数
    • x 起始点x轴值
    • y 起始点y轴值
    • text 文字内容
    • align 水平对齐方式
    • baseline 垂直对齐方式
  • styles 样式
    • color 颜色
    • size 尺寸
    • family 字体
    • weight 权重

utils.drawArc(ctx, arc, styles)

typescript
(
+  ctx: CanvasRenderingContext2D,
+  arc: {
+    x: number
+    y: number
+    r: number
+    startAngle: number
+    endAngle: number
+  },
+  styles: {
+    style?: 'solid' | 'dashed'
+    size?: number
+    color?: string
+    dashedValue?: number[]
+  }
+) => void
(
   ctx: CanvasRenderingContext2D,
   arc: {
     x: number
@@ -568,22 +568,22 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     color?: string
     dashedValue?: number[]
   }
-) => void

绘制圆弧。

  • ctx 画布上下文
  • arc 圆弧参数
    • x 圆心的x轴值
    • y 圆心的y轴值
    • r 半径
    • startAngle 起始角度
    • endAngle 结束角度
  • styles 样式
    • style 弧样式
    • size 粗细
    • color 颜色
    • dashedValue 虚线参数值

utils.drawCircle(ctx, circle, styles)

typescript
(
-  ctx: CanvasRenderingContext2D,
-  circle: {
-    x: number
-    y: number
-    r: number
-  },
-  styles: {
-    style?: 'stroke' | 'fill' | 'stroke_fill'
-    color?: string | CanvasGradient
-    borderColor?: string
-    borderSize?: number
-    borderStyle?: 'solid' | 'dashed'
-    borderDashedValue?: Array<number>
-  }
-) => void
(
+) => void

绘制圆弧。

  • ctx 画布上下文
  • arc 圆弧参数
    • x 圆心的x轴值
    • y 圆心的y轴值
    • r 半径
    • startAngle 起始角度
    • endAngle 结束角度
  • styles 样式
    • style 弧样式
    • size 粗细
    • color 颜色
    • dashedValue 虚线参数值

utils.drawCircle(ctx, circle, styles)

typescript
(
+  ctx: CanvasRenderingContext2D,
+  circle: {
+    x: number
+    y: number
+    r: number
+  },
+  styles: {
+    style?: 'stroke' | 'fill' | 'stroke_fill'
+    color?: string | CanvasGradient
+    borderColor?: string
+    borderSize?: number
+    borderStyle?: 'solid' | 'dashed'
+    borderDashedValue?: Array<number>
+  }
+) => void
(
   ctx: CanvasRenderingContext2D,
   circle: {
     x: number
@@ -598,21 +598,21 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     borderStyle?: 'solid' | 'dashed'
     borderDashedValue?: Array<number>
   }
-) => void

绘制圆。

  • ctx 画布上下文
  • circle 圆参数
    • x 圆心的x轴值
    • y 圆心的y轴值
    • r 半径
  • styles 样式
    • style 样式
    • color 颜色
    • borderColor 边框颜色
    • borderSize 边框粗细
    • borderStyle 边框样式
    • borderDashedValue 边框虚线参数值

utils.drawLine(ctx, line, styles)

typescript
(
-  ctx: CanvasRenderingContext2D,
-  line: {
-    coordinates: Array<{
-      x: number
-      y: number
-    }>
-  },
-  styles: {
-    style?: 'solid' | 'dashed'
-    size?: number
-    color?: string
-    dashedValue?: number[]
-  }
-) => void
(
+) => void

绘制圆。

  • ctx 画布上下文
  • circle 圆参数
    • x 圆心的x轴值
    • y 圆心的y轴值
    • r 半径
  • styles 样式
    • style 样式
    • color 颜色
    • borderColor 边框颜色
    • borderSize 边框粗细
    • borderStyle 边框样式
    • borderDashedValue 边框虚线参数值

utils.drawLine(ctx, line, styles)

typescript
(
+  ctx: CanvasRenderingContext2D,
+  line: {
+    coordinates: Array<{
+      x: number
+      y: number
+    }>
+  },
+  styles: {
+    style?: 'solid' | 'dashed'
+    size?: number
+    color?: string
+    dashedValue?: number[]
+  }
+) => void
(
   ctx: CanvasRenderingContext2D,
   line: {
     coordinates: Array<{
@@ -626,23 +626,23 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     color?: string
     dashedValue?: number[]
   }
-) => void

绘制线。

  • ctx 画布上下文
  • line 线参数
  • styles 样式
    • style 线样式
    • size 粗细
    • color 颜色
    • dashedValue 虚线参数值

utils.drawPolygon(ctx, polygon, styles)

typescript
(
-  ctx: CanvasRenderingContext2D,
-  polygon: {
-    coordinates: Array<{
-      x: number
-      y: number
-    }>
-  },
-  styles: {
-    style?: 'stroke' | 'fill' | 'stroke_fill'
-    color?: string | CanvasGradient
-    borderColor?: string
-    borderSize?: number
-    borderStyle?: 'solid' | 'dashed'
-    borderDashedValue?: Array<number>
-  }
-) => void
(
+) => void

绘制线。

  • ctx 画布上下文
  • line 线参数
  • styles 样式
    • style 线样式
    • size 粗细
    • color 颜色
    • dashedValue 虚线参数值

utils.drawPolygon(ctx, polygon, styles)

typescript
(
+  ctx: CanvasRenderingContext2D,
+  polygon: {
+    coordinates: Array<{
+      x: number
+      y: number
+    }>
+  },
+  styles: {
+    style?: 'stroke' | 'fill' | 'stroke_fill'
+    color?: string | CanvasGradient
+    borderColor?: string
+    borderSize?: number
+    borderStyle?: 'solid' | 'dashed'
+    borderDashedValue?: Array<number>
+  }
+) => void
(
   ctx: CanvasRenderingContext2D,
   polygon: {
     coordinates: Array<{
@@ -658,24 +658,24 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     borderStyle?: 'solid' | 'dashed'
     borderDashedValue?: Array<number>
   }
-) => void

绘制多边形。

  • ctx 画布上下文
  • polygon 多边形参数
  • styles 样式
    • style 样式
    • color 颜色
    • borderColor 边框颜色
    • borderSize 边框粗细
    • borderStyle 边框样式
    • borderDashedValue 边框虚线参数值

utils.drawRect(ctx, rect, styles)

typescript
(
-  ctx: CanvasRenderingContext2D,
-  rect: {
-    x: number
-    y: number
-    width: number
-    height: number
-  },
-  styles: {
-    style?: 'stroke' | 'fill' | 'stroke_fill'
-    color?: string | CanvasGradient
-    borderColor?: string
-    borderSize?: number
-    borderStyle?: 'solid' | 'dashed'
-    borderDashedValue?: Array<number>
-    borderRadius?: number
-  }
-) => void
(
+) => void

绘制多边形。

  • ctx 画布上下文
  • polygon 多边形参数
  • styles 样式
    • style 样式
    • color 颜色
    • borderColor 边框颜色
    • borderSize 边框粗细
    • borderStyle 边框样式
    • borderDashedValue 边框虚线参数值

utils.drawRect(ctx, rect, styles)

typescript
(
+  ctx: CanvasRenderingContext2D,
+  rect: {
+    x: number
+    y: number
+    width: number
+    height: number
+  },
+  styles: {
+    style?: 'stroke' | 'fill' | 'stroke_fill'
+    color?: string | CanvasGradient
+    borderColor?: string
+    borderSize?: number
+    borderStyle?: 'solid' | 'dashed'
+    borderDashedValue?: Array<number>
+    borderRadius?: number
+  }
+) => void
(
   ctx: CanvasRenderingContext2D,
   rect: {
     x: number
@@ -692,35 +692,35 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     borderDashedValue?: Array<number>
     borderRadius?: number
   }
-) => void

绘制矩形。

  • ctx 画布上下文
  • rect 矩形参数
    • x 起始点x轴值
    • y 起始点y轴值
    • width 宽度
    • height 高度
  • styles 样式
    • style 样式
    • color 颜色
    • borderColor 边框颜色
    • borderSize 边框粗细
    • borderStyle 边框样式
    • borderDashedValue 边框虚线参数值
    • borderRadius 边框圆角值

utils.drawText(ctx, text, styles)

typescript
(
-  ctx: CanvasRenderingContext2D,
-  text: {
-    x: number
-    y: number
-    text: any
-    width?: number
-    height?: number
-    align?: 'center' | 'end' | 'left' | 'right' | 'start'
-    baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
-  },
-  styles: {
-    style?: 'stroke' | 'fill' | 'stroke_fill'
-    color?: string
-    size?: number
-    family?: string
-    weight?: number | string
-    paddingLeft?: number
-    paddingTop?: number
-    paddingRight?: number
-    paddingBottom?: number
-    borderStyle?: 'solid' | 'dashed'
-    borderDashedValue?: number[]
-    borderSize?: number
-    borderColor?: string
-    borderRadius?: number
-    backgroundColor?: string
-  }
-) => void
(
+) => void

绘制矩形。

  • ctx 画布上下文
  • rect 矩形参数
    • x 起始点x轴值
    • y 起始点y轴值
    • width 宽度
    • height 高度
  • styles 样式
    • style 样式
    • color 颜色
    • borderColor 边框颜色
    • borderSize 边框粗细
    • borderStyle 边框样式
    • borderDashedValue 边框虚线参数值
    • borderRadius 边框圆角值

utils.drawText(ctx, text, styles)

typescript
(
+  ctx: CanvasRenderingContext2D,
+  text: {
+    x: number
+    y: number
+    text: any
+    width?: number
+    height?: number
+    align?: 'center' | 'end' | 'left' | 'right' | 'start'
+    baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
+  },
+  styles: {
+    style?: 'stroke' | 'fill' | 'stroke_fill'
+    color?: string
+    size?: number
+    family?: string
+    weight?: number | string
+    paddingLeft?: number
+    paddingTop?: number
+    paddingRight?: number
+    paddingBottom?: number
+    borderStyle?: 'solid' | 'dashed'
+    borderDashedValue?: number[]
+    borderSize?: number
+    borderColor?: string
+    borderRadius?: number
+    backgroundColor?: string
+  }
+) => void
(
   ctx: CanvasRenderingContext2D,
   text: {
     x: number
@@ -748,4 +748,4 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     borderRadius?: number
     backgroundColor?: string
   }
-) => void

绘制带背景的文字。

  • ctx 画布上下文
  • attrs 文字参数
    • x 起始点x轴值
    • y 起始点y轴值
    • text 文字内容
    • width 宽度
    • height 高度
    • align 水平对齐方式
    • baseline 垂直对齐方式
  • styles 样式
    • style 样式
    • color 颜色
    • size 尺寸
    • family 字体
    • weight 权重
    • paddingLeft 左内边距,
    • paddingTop 上内边距,
    • paddingRight 右内边距,
    • paddingBottom 下内边距,
    • borderColor 边框颜色
    • borderSize 边框粗细
    • borderStyle 边框样式
    • borderRadius 边框圆角尺寸
    • borderDashedValue 边框虚线参数值
    • backgroundColor 背景色

utils.drawRectText(ctx, rectText, styles)

utils.drawText(ctx, text, styles),已废弃,v10之后会删除,请用utils.drawText(ctx, text, styles)代替。

`,152),e=[o];function t(c,r,y,i,D,C){return n(),a("div",null,e)}const d=s(p,[["render",t]]);export{F as __pageData,d as default}; +) => void

绘制带背景的文字。

  • ctx 画布上下文
  • attrs 文字参数
    • x 起始点x轴值
    • y 起始点y轴值
    • text 文字内容
    • width 宽度
    • height 高度
    • align 水平对齐方式
    • baseline 垂直对齐方式
  • styles 样式
    • style 样式
    • color 颜色
    • size 尺寸
    • family 字体
    • weight 权重
    • paddingLeft 左内边距,
    • paddingTop 上内边距,
    • paddingRight 右内边距,
    • paddingBottom 下内边距,
    • borderColor 边框颜色
    • borderSize 边框粗细
    • borderStyle 边框样式
    • borderRadius 边框圆角尺寸
    • borderDashedValue 边框虚线参数值
    • backgroundColor 背景色

utils.drawRectText(ctx, rectText, styles)

utils.drawText(ctx, text, styles),已废弃,v10之后会删除,请用utils.drawText(ctx, text, styles)代替。

`,152),e=[o];function t(c,r,y,i,D,B){return n(),a("div",null,e)}const A=s(p,[["render",t]]);export{F as __pageData,A as default}; diff --git a/assets/guide_chart-api.md.fc242e9b.lean.js b/assets/guide_chart-api.md.fc242e9b.lean.js new file mode 100644 index 000000000..06bc58651 --- /dev/null +++ b/assets/guide_chart-api.md.fc242e9b.lean.js @@ -0,0 +1 @@ +import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const F=JSON.parse('{"title":"图表API","description":"","frontmatter":{},"headers":[],"relativePath":"guide/chart-api.md","filePath":"guide/chart-api.md","lastUpdated":1692476796000}'),p={name:"guide/chart-api.md"},o=l("",152),e=[o];function t(c,r,y,i,D,B){return n(),a("div",null,e)}const A=s(p,[["render",t]]);export{F as __pageData,A as default}; diff --git a/assets/guide_datasource.md.be16e914.js b/assets/guide_datasource.md.22f0d15c.js similarity index 89% rename from assets/guide_datasource.md.be16e914.js rename to assets/guide_datasource.md.22f0d15c.js index fa473d73e..c45f078b8 100644 --- a/assets/guide_datasource.md.be16e914.js +++ b/assets/guide_datasource.md.22f0d15c.js @@ -1,18 +1,18 @@ -import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const m=JSON.parse('{"title":"📚 数据","description":"","frontmatter":{},"headers":[],"relativePath":"guide/datasource.md","filePath":"guide/datasource.md","lastUpdated":1692476949000}'),p={name:"guide/datasource.md"},o=l(`

📚 数据

图表所需要的数据必须是固定格式。通过图表实例 API applyNewData(dataList, more)applyMoreData(dataList, more)updateData(data)来和图表进行数据交互。

typescript
{
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.385ac4c3.js";const m=JSON.parse('{"title":"📚 数据","description":"","frontmatter":{},"headers":[],"relativePath":"guide/datasource.md","filePath":"guide/datasource.md","lastUpdated":1692476796000}'),p={name:"guide/datasource.md"},o=l(`

📚 数据

图表所需要的数据必须是固定格式。通过图表实例 API applyNewData(dataList, more)applyMoreData(dataList, more)updateData(data)来和图表进行数据交互。

typescript
{
   // 时间戳,毫秒级别,必要字段
-  timestamp: number
+  timestamp: number
   // 开盘价,必要字段
-  open: number
+  open: number
   // 收盘价,必要字段
-  close: number
+  close: number
   // 最高价,必要字段
-  high: number
+  high: number
   // 最低价,必要字段
-  low: number
+  low: number
   // 成交量,非必须字段
-  volume: number
+  volume: number
   // 成交额,非必须字段,如果需要展示技术指标'EMV'和'AVP',则需要为该字段填充数据。
-  turnover: number
+  turnover: number
 }
{
   // 时间戳,毫秒级别,必要字段
   timestamp: number
@@ -28,4 +28,4 @@ import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const m=
   volume: number
   // 成交额,非必须字段,如果需要展示技术指标'EMV'和'AVP',则需要为该字段填充数据。
   turnover: number
-}
`,3),e=[o];function t(c,r,y,i,F,D){return a(),n("div",null,e)}const u=s(p,[["render",t]]);export{m as __pageData,u as default}; +}
`,3),e=[o];function t(c,r,y,i,F,D){return a(),n("div",null,e)}const E=s(p,[["render",t]]);export{m as __pageData,E as default}; diff --git a/assets/guide_datasource.md.22f0d15c.lean.js b/assets/guide_datasource.md.22f0d15c.lean.js new file mode 100644 index 000000000..4586750f3 --- /dev/null +++ b/assets/guide_datasource.md.22f0d15c.lean.js @@ -0,0 +1 @@ +import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.385ac4c3.js";const m=JSON.parse('{"title":"📚 数据","description":"","frontmatter":{},"headers":[],"relativePath":"guide/datasource.md","filePath":"guide/datasource.md","lastUpdated":1692476796000}'),p={name:"guide/datasource.md"},o=l("",3),e=[o];function t(c,r,y,i,F,D){return a(),n("div",null,e)}const E=s(p,[["render",t]]);export{m as __pageData,E as default}; diff --git a/assets/guide_datasource.md.be16e914.lean.js b/assets/guide_datasource.md.be16e914.lean.js deleted file mode 100644 index 3de5592c4..000000000 --- a/assets/guide_datasource.md.be16e914.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const m=JSON.parse('{"title":"📚 数据","description":"","frontmatter":{},"headers":[],"relativePath":"guide/datasource.md","filePath":"guide/datasource.md","lastUpdated":1692476949000}'),p={name:"guide/datasource.md"},o=l("",3),e=[o];function t(c,r,y,i,F,D){return a(),n("div",null,e)}const u=s(p,[["render",t]]);export{m as __pageData,u as default}; diff --git a/assets/guide_environment.md.9a326483.js b/assets/guide_environment.md.4a1b1a7c.js similarity index 84% rename from assets/guide_environment.md.9a326483.js rename to assets/guide_environment.md.4a1b1a7c.js index 18273ea6f..5056a27fa 100644 --- a/assets/guide_environment.md.9a326483.js +++ b/assets/guide_environment.md.4a1b1a7c.js @@ -1,7 +1,7 @@ -import{_ as s,o as a,c as n,X as o}from"./chunks/framework.6909765d.js";const F=JSON.parse('{"title":"🏝️ 环境要求","description":"","frontmatter":{},"headers":[],"relativePath":"guide/environment.md","filePath":"guide/environment.md","lastUpdated":1692476949000}'),l={name:"guide/environment.md"},e=o(`

🏝️ 环境要求

浏览器支持

图表基于 html5 canvas 构建,需要运行在支持 canvas 的浏览器上,如果需要运行在移动端,请用 webview 加载。

兼容处理

core.js

图表内部集合使用Map,用于兼容不支持的老版浏览器。

javascript
import 'core.js';
-import { init } from 'klincharts';
import 'core.js';
-import { init } from 'klincharts';

Intl.js

图表依赖Intl,某些浏览器无此 API。

javascript
import 'intl';
-import 'intl/local-data/jsonp/en';
-import { init } from 'klincharts';
import 'intl';
+import{_ as s,o as a,c as n,Q as o}from"./chunks/framework.385ac4c3.js";const F=JSON.parse('{"title":"🏝️ 环境要求","description":"","frontmatter":{},"headers":[],"relativePath":"guide/environment.md","filePath":"guide/environment.md","lastUpdated":1679066795000}'),l={name:"guide/environment.md"},e=o(`

🏝️ 环境要求

浏览器支持

图表基于 html5 canvas 构建,需要运行在支持 canvas 的浏览器上,如果需要运行在移动端,请用 webview 加载。

兼容处理

core.js

图表内部集合使用Map,用于兼容不支持的老版浏览器。

javascript
import 'core.js';
+import { init } from 'klincharts';
import 'core.js';
+import { init } from 'klincharts';

Intl.js

图表依赖Intl,某些浏览器无此 API。

javascript
import 'intl';
+import 'intl/local-data/jsonp/en';
+import { init } from 'klincharts';
import 'intl';
 import 'intl/local-data/jsonp/en';
 import { init } from 'klincharts';
`,10),t=[e];function p(r,c,i,y,D,h){return a(),n("div",null,t)}const m=s(l,[["render",p]]);export{F as __pageData,m as default}; diff --git a/assets/guide_environment.md.9a326483.lean.js b/assets/guide_environment.md.4a1b1a7c.lean.js similarity index 56% rename from assets/guide_environment.md.9a326483.lean.js rename to assets/guide_environment.md.4a1b1a7c.lean.js index 82ad205b9..03e710798 100644 --- a/assets/guide_environment.md.9a326483.lean.js +++ b/assets/guide_environment.md.4a1b1a7c.lean.js @@ -1 +1 @@ -import{_ as s,o as a,c as n,X as o}from"./chunks/framework.6909765d.js";const F=JSON.parse('{"title":"🏝️ 环境要求","description":"","frontmatter":{},"headers":[],"relativePath":"guide/environment.md","filePath":"guide/environment.md","lastUpdated":1692476949000}'),l={name:"guide/environment.md"},e=o("",10),t=[e];function p(r,c,i,y,D,h){return a(),n("div",null,t)}const m=s(l,[["render",p]]);export{F as __pageData,m as default}; +import{_ as s,o as a,c as n,Q as o}from"./chunks/framework.385ac4c3.js";const F=JSON.parse('{"title":"🏝️ 环境要求","description":"","frontmatter":{},"headers":[],"relativePath":"guide/environment.md","filePath":"guide/environment.md","lastUpdated":1679066795000}'),l={name:"guide/environment.md"},e=o("",10),t=[e];function p(r,c,i,y,D,h){return a(),n("div",null,t)}const m=s(l,[["render",p]]);export{F as __pageData,m as default}; diff --git a/assets/guide_faq.md.29925f19.js b/assets/guide_faq.md.e491e83b.js similarity index 85% rename from assets/guide_faq.md.29925f19.js rename to assets/guide_faq.md.e491e83b.js index 149a502a5..3467cde27 100644 --- a/assets/guide_faq.md.29925f19.js +++ b/assets/guide_faq.md.e491e83b.js @@ -1,8 +1,8 @@ -import{_ as a,o as s,c as e,X as n}from"./chunks/framework.6909765d.js";const u=JSON.parse('{"title":"🙋 常见问题","description":"","frontmatter":{},"headers":[],"relativePath":"guide/faq.md","filePath":"guide/faq.md","lastUpdated":1692476949000}'),o={name:"guide/faq.md"},l=n(`

🙋 常见问题

初始化图表后,只能看到一条线,是怎么回事?

图表总是会填充容器,检查一下容器是否有高度。

蜡烛柱显示趋近于一条线,看不到波动,怎么办?

图表默认价格精度为两位小数,调用setPriceVolumePrecision(pricePrecision, volumePrecision)设置下精度。

分时图怎么创建?

通过样式设置。

javascript
chart.setStyles({
-  candle: {
-    type: 'area',
-  },
-});
chart.setStyles({
+import{_ as a,o as s,c as e,Q as n}from"./chunks/framework.385ac4c3.js";const u=JSON.parse('{"title":"🙋 常见问题","description":"","frontmatter":{},"headers":[],"relativePath":"guide/faq.md","filePath":"guide/faq.md","lastUpdated":1681557501000}'),o={name:"guide/faq.md"},l=n(`

🙋 常见问题

初始化图表后,只能看到一条线,是怎么回事?

图表总是会填充容器,检查一下容器是否有高度。

蜡烛柱显示趋近于一条线,看不到波动,怎么办?

图表默认价格精度为两位小数,调用setPriceVolumePrecision(pricePrecision, volumePrecision)设置下精度。

分时图怎么创建?

通过样式设置。

javascript
chart.setStyles({
+  candle: {
+    type: 'area',
+  },
+});
chart.setStyles({
   candle: {
     type: 'area',
   },
diff --git a/assets/guide_faq.md.29925f19.lean.js b/assets/guide_faq.md.e491e83b.lean.js
similarity index 53%
rename from assets/guide_faq.md.29925f19.lean.js
rename to assets/guide_faq.md.e491e83b.lean.js
index ac38dffd4..6f2cf5826 100644
--- a/assets/guide_faq.md.29925f19.lean.js
+++ b/assets/guide_faq.md.e491e83b.lean.js
@@ -1 +1 @@
-import{_ as a,o as s,c as e,X as n}from"./chunks/framework.6909765d.js";const u=JSON.parse('{"title":"🙋 常见问题","description":"","frontmatter":{},"headers":[],"relativePath":"guide/faq.md","filePath":"guide/faq.md","lastUpdated":1692476949000}'),o={name:"guide/faq.md"},l=n("",14),p=[l];function t(c,r,i,d,h,y){return s(),e("div",null,p)}const F=a(o,[["render",t]]);export{u as __pageData,F as default};
+import{_ as a,o as s,c as e,Q as n}from"./chunks/framework.385ac4c3.js";const u=JSON.parse('{"title":"🙋 常见问题","description":"","frontmatter":{},"headers":[],"relativePath":"guide/faq.md","filePath":"guide/faq.md","lastUpdated":1681557501000}'),o={name:"guide/faq.md"},l=n("",14),p=[l];function t(c,r,i,d,h,y){return s(),e("div",null,p)}const F=a(o,[["render",t]]);export{u as __pageData,F as default};
diff --git a/assets/guide_feedback.md.7e65642d.js b/assets/guide_feedback.md.71640072.js
similarity index 91%
rename from assets/guide_feedback.md.7e65642d.js
rename to assets/guide_feedback.md.71640072.js
index f5e0bbe34..d67154b22 100644
--- a/assets/guide_feedback.md.7e65642d.js
+++ b/assets/guide_feedback.md.71640072.js
@@ -1 +1 @@
-import{_ as e,a}from"./chunks/qq_group_qr_code.5c7ad67d.js";import{_ as t,o as r,c as i,X as s}from"./chunks/framework.6909765d.js";const f=JSON.parse('{"title":"💬 反馈和共建","description":"","frontmatter":{},"headers":[],"relativePath":"guide/feedback.md","filePath":"guide/feedback.md","lastUpdated":1692476949000}'),o={name:"guide/feedback.md"},h=s('

💬 反馈和共建

Github

Telegram

https://t.me/+098syuQtzI0yNzll

Discord

https://discord.gg/7YjHYgvvvZ

微信讨论群

扫一扫,添加开发者,备注『 KLineChart 』,加入群聊。

QQ讨论群

',11),l=[h];function d(n,c,u,_,p,m){return r(),i("div",null,l)}const k=t(o,[["render",d]]);export{f as __pageData,k as default}; +import{_ as e,a}from"./chunks/qq_group_qr_code.5c7ad67d.js";import{_ as t,o as r,c as i,Q as s}from"./chunks/framework.385ac4c3.js";const f=JSON.parse('{"title":"💬 反馈和共建","description":"","frontmatter":{},"headers":[],"relativePath":"guide/feedback.md","filePath":"guide/feedback.md","lastUpdated":1684958808000}'),o={name:"guide/feedback.md"},h=s('

💬 反馈和共建

Github

Telegram

https://t.me/+098syuQtzI0yNzll

Discord

https://discord.gg/7YjHYgvvvZ

微信讨论群

扫一扫,添加开发者,备注『 KLineChart 』,加入群聊。

QQ讨论群

',11),l=[h];function d(n,c,u,_,p,m){return r(),i("div",null,l)}const k=t(o,[["render",d]]);export{f as __pageData,k as default}; diff --git a/assets/guide_feedback.md.7e65642d.lean.js b/assets/guide_feedback.md.71640072.lean.js similarity index 60% rename from assets/guide_feedback.md.7e65642d.lean.js rename to assets/guide_feedback.md.71640072.lean.js index 5fd2db2dd..045984a8e 100644 --- a/assets/guide_feedback.md.7e65642d.lean.js +++ b/assets/guide_feedback.md.71640072.lean.js @@ -1 +1 @@ -import{_ as e,a}from"./chunks/qq_group_qr_code.5c7ad67d.js";import{_ as t,o as r,c as i,X as s}from"./chunks/framework.6909765d.js";const f=JSON.parse('{"title":"💬 反馈和共建","description":"","frontmatter":{},"headers":[],"relativePath":"guide/feedback.md","filePath":"guide/feedback.md","lastUpdated":1692476949000}'),o={name:"guide/feedback.md"},h=s("",11),l=[h];function d(n,c,u,_,p,m){return r(),i("div",null,l)}const k=t(o,[["render",d]]);export{f as __pageData,k as default}; +import{_ as e,a}from"./chunks/qq_group_qr_code.5c7ad67d.js";import{_ as t,o as r,c as i,Q as s}from"./chunks/framework.385ac4c3.js";const f=JSON.parse('{"title":"💬 反馈和共建","description":"","frontmatter":{},"headers":[],"relativePath":"guide/feedback.md","filePath":"guide/feedback.md","lastUpdated":1684958808000}'),o={name:"guide/feedback.md"},h=s("",11),l=[h];function d(n,c,u,_,p,m){return r(),i("div",null,l)}const k=t(o,[["render",d]]);export{f as __pageData,k as default}; diff --git a/assets/guide_figure.md.61613297.lean.js b/assets/guide_figure.md.61613297.lean.js deleted file mode 100644 index de8bd2011..000000000 --- a/assets/guide_figure.md.61613297.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=JSON.parse('{"title":"基础图形","description":"","frontmatter":{},"headers":[],"relativePath":"guide/figure.md","filePath":"guide/figure.md","lastUpdated":1692476949000}'),p={name:"guide/figure.md"},o=l("",33),e=[o];function c(t,r,y,D,F,i){return n(),a("div",null,e)}const E=s(p,[["render",c]]);export{C as __pageData,E as default}; diff --git a/assets/guide_figure.md.61613297.js b/assets/guide_figure.md.94958226.js similarity index 79% rename from assets/guide_figure.md.61613297.js rename to assets/guide_figure.md.94958226.js index 0ac414239..154449f8c 100644 --- a/assets/guide_figure.md.61613297.js +++ b/assets/guide_figure.md.94958226.js @@ -1,41 +1,41 @@ -import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=JSON.parse('{"title":"基础图形","description":"","frontmatter":{},"headers":[],"relativePath":"guide/figure.md","filePath":"guide/figure.md","lastUpdated":1692476949000}'),p={name:"guide/figure.md"},o=l(`

基础图形

基础图形是图表重要的组成部分,图表上所有的元素都是由基础图形组成,如果需要制作复杂的自定义技术指标和覆盖物,建议仔细阅读。这篇文档介绍了内置的基本图形和如何自定义一个基础图形。基础图形可以通过图表方法klinecharts.getFigureClass(name)获取。

使用示例

注意

需要在有画布上下文的情况下使用。

javascript
// 获取基础图形实例
+import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const B=JSON.parse('{"title":"基础图形","description":"","frontmatter":{},"headers":[],"relativePath":"guide/figure.md","filePath":"guide/figure.md","lastUpdated":1693193431000}'),p={name:"guide/figure.md"},o=l(`

基础图形

基础图形是图表重要的组成部分,图表上所有的元素都是由基础图形组成,如果需要制作复杂的自定义技术指标和覆盖物,建议仔细阅读。这篇文档介绍了内置的基本图形和如何自定义一个基础图形。基础图形可以通过图表方法klinecharts.getFigureClass(name)获取。

使用示例

注意

需要在有画布上下文的情况下使用。

javascript
// 获取基础图形实例
 // name为基础图形名字,如,'arc', 'circle'等。
-const Figure = klinecharts.getFigureClass(name)
+const Figure = klinecharts.getFigureClass(name)
 // 实例化并绘制
 // attrs 属性
 // styles 样式
 // ctx 画布上下文
-new Figure({ attrs, styles }).draw(ctx)
// 获取基础图形实例
+new Figure({ attrs, styles }).draw(ctx)
// 获取基础图形实例
 // name为基础图形名字,如,'arc', 'circle'等。
 const Figure = klinecharts.getFigureClass(name)
 // 实例化并绘制
 // attrs 属性
 // styles 样式
 // ctx 画布上下文
-new Figure({ attrs, styles }).draw(ctx)

内置基础图形

图表内置了这些基础图形,arccirclelinepolygonrecttextrectText

arc

typescript
new ({
-  attrs: {
+new Figure({ attrs, styles }).draw(ctx)

内置基础图形

图表内置了这些基础图形,arccirclelinepolygonrecttextrectText

arc

typescript
new ({
+  attrs: {
     // 圆心x轴坐标值
-    x: number
+    x: number
     // 圆心y轴坐标值
-    y: number
+    y: number
     // 半径
-    r: number
+    r: number
     // 开始角度
-    startAngle: number
+    startAngle: number
     // 结束角度
-    endAngle: number
-  },
-  styles: {
+    endAngle: number
+  },
+  styles: {
     // 样式,可选项\`solid\`,\`dashed\`
-    style?: 'solid' | 'dashed'
+    style?: 'solid' | 'dashed'
     // 尺寸
-    size?: number
+    size?: number
     // 颜色
-    color?: string
+    color?: string
     // 虚线参数
-    dashedValue?: number[]
-  }
-}) => Figure
new ({
+    dashedValue?: number[]
+  }
+}) => Figure
new ({
   attrs: {
     // 圆心x轴坐标值
     x: number
@@ -58,30 +58,30 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=
     // 虚线参数
     dashedValue?: number[]
   }
-}) => Figure

circle

typescript
new ({
-  attrs: {
+}) => Figure

circle

typescript
new ({
+  attrs: {
     // 圆心x轴坐标值
-    x: number
+    x: number
     // 圆心y轴坐标值
-    y: number
+    y: number
     // 半径
-    r: number
-  },
-  styles: {
+    r: number
+  },
+  styles: {
     // 样式,可选项\`fill\`,\`stroke\`,\`stroke_fill\`
-    style?: 'fill' | 'stroke' | 'stroke_fill'
+    style?: 'fill' | 'stroke' | 'stroke_fill'
     // 颜色
-    color?: string
+    color?: string
     // 边框样式
-    borderStyle?: 'solid' | 'dashed'
+    borderStyle?: 'solid' | 'dashed'
     // 边框颜色
-    borderColor?: string
+    borderColor?: string
     // 边框尺寸
-    borderSize?: number
+    borderSize?: number
     // 边框虚线参数
-    borderDashedValue?: number[]
-  }
-}) => Figure
new ({
+    borderDashedValue?: number[]
+  }
+}) => Figure
new ({
   attrs: {
     // 圆心x轴坐标值
     x: number
@@ -104,25 +104,25 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=
     // 边框虚线参数
     borderDashedValue?: number[]
   }
-}) => Figure

line

typescript
new ({
-  attrs: {
+}) => Figure

line

typescript
new ({
+  attrs: {
     // 坐标集合
-    coordinates: Array<{
-      x: number
-      y: number
-    }>
-  },
-  styles: {
+    coordinates: Array<{
+      x: number
+      y: number
+    }>
+  },
+  styles: {
     // 样式,可选项\`solid\`,\`dashed\`
-    style?: 'solid' | 'dashed'
+    style?: 'solid' | 'dashed'
     // 尺寸
-    size?: number
+    size?: number
     // 颜色
-    color?: string
+    color?: string
     // 虚线参数
-    dashedValue?: number[]
-  }
-}) => Figure
new ({
+    dashedValue?: number[]
+  }
+}) => Figure
new ({
   attrs: {
     // 坐标集合
     coordinates: Array<{
@@ -140,29 +140,29 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=
     // 虚线参数
     dashedValue?: number[]
   }
-}) => Figure

polygon

typescript
new ({
-  attrs: {
+}) => Figure

polygon

typescript
new ({
+  attrs: {
     // 坐标集合
-    coordinates: Array<{
-      x: number
-      y: number
-    }>
-  },
-  styles: {
+    coordinates: Array<{
+      x: number
+      y: number
+    }>
+  },
+  styles: {
     // 样式,可选项\`fill\`,\`stroke\`,\`stroke_fill\`
-    style?: 'fill' | 'stroke' | 'stroke_fill'
+    style?: 'fill' | 'stroke' | 'stroke_fill'
     // 颜色
-    color?: string
+    color?: string
     // 边框样式
-    borderStyle?: 'solid' | 'dashed'
+    borderStyle?: 'solid' | 'dashed'
     // 边框颜色
-    borderColor?: string
+    borderColor?: string
     // 边框尺寸
-    borderSize?: number
+    borderSize?: number
     // 边框虚线参数
-    borderDashedValue?: number[]
-  }
-}) => Figure
new ({
+    borderDashedValue?: number[]
+  }
+}) => Figure
new ({
   attrs: {
     // 坐标集合
     coordinates: Array<{
@@ -184,34 +184,34 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=
     // 边框虚线参数
     borderDashedValue?: number[]
   }
-}) => Figure

rect

typescript
new ({
-  attrs: {
+}) => Figure

rect

typescript
new ({
+  attrs: {
     // 起始点x轴坐标值
-    x: number
+    x: number
     // 起始点y轴坐标值
-    y: number
+    y: number
     // 宽度
-    width: number
+    width: number
     // 高度
-    height: number
-  },
-  styles: {
+    height: number
+  },
+  styles: {
     // 样式,可选项\`fill\`,\`stroke\`,\`stroke_fill\`
-    style?: 'fill' | 'stroke' | 'stroke_fill'
+    style?: 'fill' | 'stroke' | 'stroke_fill'
     // 颜色
-    color?: string
+    color?: string
     // 边框样式
-    borderStyle?: 'solid' | 'dashed',
+    borderStyle?: 'solid' | 'dashed',
     // 边框颜色
-    borderColor?: string
+    borderColor?: string
     // 边框尺寸
-    borderSize?: number
+    borderSize?: number
     // 边框虚线参数
-    borderDashedValue?: number[]
+    borderDashedValue?: number[]
     // 边框圆角值
-    borderRadius?: number
-  }
-}) => Figure
new ({
+    borderRadius?: number
+  }
+}) => Figure
new ({
   attrs: {
     // 起始点x轴坐标值
     x: number
@@ -238,56 +238,56 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=
     // 边框圆角值
     borderRadius?: number
   }
-}) => Figure

text

typescript
new ({
-  attrs: {
+}) => Figure

text

typescript
new ({
+  attrs: {
     // 起始点x轴坐标值
-    x: number
+    x: number
     // 起始点y轴坐标值
-    y: number
+    y: number
     // 文字内容
-    text: any
+    text: any
     // 指定宽
-    width?: number
+    width?: number
     // 指定高
-    height?: number
+    height?: number
     // 对齐方式
-    align?: CanvasTextAlign
+    align?: CanvasTextAlign
     // 基准
-    baseline?: CanvasTextBaseline
-  },
-  styles: {
+    baseline?: CanvasTextBaseline
+  },
+  styles: {
     // 样式,可选项\`fill\`,\`stroke\`,\`stroke_fill\`
-    style?: 'fill' | 'stroke' | 'stroke_fill'
+    style?: 'fill' | 'stroke' | 'stroke_fill'
     // 颜色
-    color?: string
+    color?: string
     // 尺寸
-    size?: number
+    size?: number
     // 字体
-    family?: string
+    family?: string
     // 粗细
-    weight?: string | number
+    weight?: string | number
     // 左内边距
-    paddingLeft?: number
+    paddingLeft?: number
     // 右内边距
-    paddingRight?: number
+    paddingRight?: number
     // 上内边距
-    paddingTop?: number
+    paddingTop?: number
     // 下内边距
-    paddingBottom?: number
+    paddingBottom?: number
     // 边框样式
-    borderStyle?: 'solid' | 'dashed'
+    borderStyle?: 'solid' | 'dashed'
     // 边框颜色
-    borderColor?: string
+    borderColor?: string
     // 边框尺寸
-    borderSize?: number
+    borderSize?: number
     // 边框虚线参数
-    borderDashedValue?: number[]
+    borderDashedValue?: number[]
     // 边框圆角值
-    borderRadius?: number
+    borderRadius?: number
     // 背景色
-    backgroundColor?: string | CanvasGradient
-  }
-}) => Figure
new ({
+    backgroundColor?: string | CanvasGradient
+  }
+}) => Figure
new ({
   attrs: {
     // 起始点x轴坐标值
     x: number
@@ -338,27 +338,27 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=
   }
 }) => Figure

rectText

text,已废弃,v10之后会删除,请用text代替。

自定义基础图形

创建一个自定义基础图形,只需要生成基础图形信息,然后通过klinecharts.registerFigure全局添加,添加到图表即可和内置基础图形一样去使用。

属性说明

typescript
{
   // 图形名字,必要字段,是创建的唯一标识
-  name: string
+  name: string
 
   // 校验事件是否在图形上,返回一个boolean值
   checkEventOn: (
     // 事件的坐标
-    coordinate: {
-      x: number
-      y: number
+    coordinate: {
+      x: number
+      y: number
     }
     // 图形的属性
-    attrs: any
+    attrs: any
     // 图形的样式
-    styles: any
-  ) => boolean
+    styles: any
+  ) => boolean
 
   // 绘制
   draw: (
     // 画布上下文
-    ctx: CanvasRenderingContext2D,
+    ctx: CanvasRenderingContext2D,
     // 图形的属性
-    attrs: any,
+    attrs: any,
     // 图形的样式
   ) => void
 }
{
@@ -388,50 +388,50 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=
   ) => void
 }

示例

以一个可以有边框和背景菱形来具体说明自定义。

步骤一

先确定属性和样式 属性{ x, y, width, height }x是中心点x轴坐标值,y是中心点y轴坐标值,width是宽度,height是高度。 样式{ style, color, borderStyle, borderSize, borderColor, dashedValue }style是样式类型,我们可以定义三个选项strokefillstroke_fillstroke只有边框,fill只有背景,stroke_fill又有边框又有背景,color是颜色,borderStyle是边框样式,可以定义两个选项soliddashedsolid是实线,dashed是虚线,borderSize是边框尺寸,borderColor是边框颜色,dashedValue是虚线值。

步骤二

实现checkEventOndraw两个方法。

javascript
{
   name: 'diamond',
-  checkEventOn: (coordinate, attrs) => {
-    const { x, y, width, height } = attrs
-    const xDis = Math.abs(coordinate.x - x)
-    const yDis = Math.abs(coordinate.y - y)
-    return xDis * height + yDis * width < width * height / 2
+  checkEventOn: (coordinate, attrs) => {
+    const { x, y, width, height } = attrs
+    const xDis = Math.abs(coordinate.x - x)
+    const yDis = Math.abs(coordinate.y - y)
+    return xDis * height + yDis * width < width * height / 2
   },
-  draw: (ctx, attrs, styles) => {
-    const { x, y, width, height } = attrs
+  draw: (ctx, attrs, styles) => {
+    const { x, y, width, height } = attrs
     const {
-      style = 'fill',
-      color = 'currentColor',
-      borderSize = 1,
-      borderColor = 'currentColor',
-      borderStyle = 'solid,
-      borderDashedValue = [2, 2]
-    } = styles
+      style = 'fill',
+      color = 'currentColor',
+      borderSize = 1,
+      borderColor = 'currentColor',
+      borderStyle = 'solid',
+      borderDashedValue = [2, 2]
+    } = styles
     // 绘制填充的菱形
-    if (style === 'fill' || styles.style === 'stroke_fill') {
-      ctx.fillStyle = color
-      ctx.beginPath()
-      ctx.moveTo(x - width / 2, y)
-      ctx.lineTo(x, y - height / 2)
-      ctx.lineTo(x + width / 2, y)
-      ctx.lineTo(x, y + height / 2)
-      ctx.closePath()
-      ctx.fill()
+    if (style === 'fill' || styles.style === 'stroke_fill') {
+      ctx.fillStyle = color
+      ctx.beginPath()
+      ctx.moveTo(x - width / 2, y)
+      ctx.lineTo(x, y - height / 2)
+      ctx.lineTo(x + width / 2, y)
+      ctx.lineTo(x, y + height / 2)
+      ctx.closePath()
+      ctx.fill()
     }
     // 绘制边框的菱形
-    if (style === 'stroke' || styles.style === 'stroke_fill') {
-      ctx.strokeStyle = borderColor
-      ctx.lineWidth = borderSize
-      if (borderStyle === 'dashed') {
-        ctx.setLineDash(borderDashedValue)
+    if (style === 'stroke' || styles.style === 'stroke_fill') {
+      ctx.strokeStyle = borderColor
+      ctx.lineWidth = borderSize
+      if (borderStyle === 'dashed') {
+        ctx.setLineDash(borderDashedValue)
       } else {
-        ctx.setLineDash([])
+        ctx.setLineDash([])
       }
-      ctx.beginPath()
-      ctx.beginPath()
-      ctx.moveTo(x - width / 2, y)
-      ctx.lineTo(x, y - height / 2)
-      ctx.lineTo(x + width / 2, y)
-      ctx.lineTo(x, y + height / 2)
-      ctx.closePath()
-      ctx.stroke()
+      ctx.beginPath()
+      ctx.beginPath()
+      ctx.moveTo(x - width / 2, y)
+      ctx.lineTo(x, y - height / 2)
+      ctx.lineTo(x + width / 2, y)
+      ctx.lineTo(x, y + height / 2)
+      ctx.closePath()
+      ctx.stroke()
     }
   }
 }
{
@@ -449,7 +449,7 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=
       color = 'currentColor',
       borderSize = 1,
       borderColor = 'currentColor',
-      borderStyle = 'solid,
+      borderStyle = 'solid',
       borderDashedValue = [2, 2]
     } = styles
     // 绘制填充的菱形
@@ -482,4 +482,4 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const C=
       ctx.stroke()
     }
   }
-}

这样一个自定义的基础图形就完成了。

`,33),e=[o];function c(t,r,y,D,F,i){return n(),a("div",null,e)}const E=s(p,[["render",c]]);export{C as __pageData,E as default}; +}

这样一个自定义的基础图形就完成了。

`,33),e=[o];function c(t,r,y,D,F,i){return n(),a("div",null,e)}const A=s(p,[["render",c]]);export{B as __pageData,A as default}; diff --git a/assets/guide_figure.md.94958226.lean.js b/assets/guide_figure.md.94958226.lean.js new file mode 100644 index 000000000..aa9846f7b --- /dev/null +++ b/assets/guide_figure.md.94958226.lean.js @@ -0,0 +1 @@ +import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const B=JSON.parse('{"title":"基础图形","description":"","frontmatter":{},"headers":[],"relativePath":"guide/figure.md","filePath":"guide/figure.md","lastUpdated":1693193431000}'),p={name:"guide/figure.md"},o=l("",33),e=[o];function c(t,r,y,D,F,i){return n(),a("div",null,e)}const A=s(p,[["render",c]]);export{B as __pageData,A as default}; diff --git a/assets/guide_getting-started.md.81c4827e.lean.js b/assets/guide_getting-started.md.81c4827e.lean.js deleted file mode 100644 index b29f325f2..000000000 --- a/assets/guide_getting-started.md.81c4827e.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const i=JSON.parse('{"title":"🚀 快速开始","description":"","frontmatter":{},"headers":[],"relativePath":"guide/getting-started.md","filePath":"guide/getting-started.md","lastUpdated":1692476949000}'),p={name:"guide/getting-started.md"},o=l("",16),e=[o];function t(c,r,y,F,D,C){return a(),n("div",null,e)}const E=s(p,[["render",t]]);export{i as __pageData,E as default}; diff --git a/assets/guide_getting-started.md.81c4827e.js b/assets/guide_getting-started.md.ba1c2e79.js similarity index 80% rename from assets/guide_getting-started.md.81c4827e.js rename to assets/guide_getting-started.md.ba1c2e79.js index 54043961e..11d2e3d92 100644 --- a/assets/guide_getting-started.md.81c4827e.js +++ b/assets/guide_getting-started.md.ba1c2e79.js @@ -1,21 +1,21 @@ -import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const i=JSON.parse('{"title":"🚀 快速开始","description":"","frontmatter":{},"headers":[],"relativePath":"guide/getting-started.md","filePath":"guide/getting-started.md","lastUpdated":1692476949000}'),p={name:"guide/getting-started.md"},o=l(`

🚀 快速开始

获取KLineChart

KLineChart 支持多种下载方式,你可以通过npmyarn等包管理工具,也可以通过CDN获取。

使用npm

bash
npm install klinecharts --save
npm install klinecharts --save

使用yarn

bash
yarn add klinecharts
yarn add klinecharts

使用CDN

可以使用jsDelivrunpkg或者其它的,推荐从jsDelivr引用。

bash
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script>

创建第一个图表

npmyarn等包管理工具的项目中创建

javascript
import { init } from 'klinecharts'
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.385ac4c3.js";const i=JSON.parse('{"title":"🚀 快速开始","description":"","frontmatter":{},"headers":[],"relativePath":"guide/getting-started.md","filePath":"guide/getting-started.md","lastUpdated":1679507254000}'),p={name:"guide/getting-started.md"},o=l(`

🚀 快速开始

获取KLineChart

KLineChart 支持多种下载方式,你可以通过npmyarn等包管理工具,也可以通过CDN获取。

使用npm

bash
npm install klinecharts --save
npm install klinecharts --save

使用yarn

bash
yarn add klinecharts
yarn add klinecharts

使用CDN

可以使用jsDelivrunpkg或者其它的,推荐从jsDelivr引用。

bash
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script>

创建第一个图表

npmyarn等包管理工具的项目中创建

javascript
import { init } from 'klinecharts'
 
 // 初始化图表
-const chart = init(\`\${domId}\`)
+const chart = init(\`\${domId}\`)
 
 // 为图表添加数据
-chart.applyNewData([
-  { close: 4976.16, high: 4977.99, low: 4970.12, open: 4972.89, timestamp: 1587660000000, volume: 204 },
-  { close: 4977.33, high: 4979.94, low: 4971.34, open: 4973.20, timestamp: 1587660060000, volume: 194 },
-  { close: 4977.93, high: 4977.93, low: 4974.20, open: 4976.53, timestamp: 1587660120000, volume: 197 },
-  { close: 4966.77, high: 4968.53, low: 4962.20, open: 4963.88, timestamp: 1587660180000, volume: 28 },
-  { close: 4961.56, high: 4972.61, low: 4961.28, open: 4961.28, timestamp: 1587660240000, volume: 184 },
-  { close: 4964.19, high: 4964.74, low: 4961.42, open: 4961.64, timestamp: 1587660300000, volume: 191 },
-  { close: 4968.93, high: 4972.70, low: 4964.55, open: 4966.96, timestamp: 1587660360000, volume: 105 },
-  { close: 4979.31, high: 4979.61, low: 4973.99, open: 4977.06, timestamp: 1587660420000, volume: 35 },
-  { close: 4977.02, high: 4981.66, low: 4975.14, open: 4981.66, timestamp: 1587660480000, volume: 135 },
-  { close: 4985.09, high: 4988.62, low: 4980.30, open: 4986.72, timestamp: 1587660540000, volume: 76 }
-])
import { init } from 'klinecharts'
+chart.applyNewData([
+  { close: 4976.16, high: 4977.99, low: 4970.12, open: 4972.89, timestamp: 1587660000000, volume: 204 },
+  { close: 4977.33, high: 4979.94, low: 4971.34, open: 4973.20, timestamp: 1587660060000, volume: 194 },
+  { close: 4977.93, high: 4977.93, low: 4974.20, open: 4976.53, timestamp: 1587660120000, volume: 197 },
+  { close: 4966.77, high: 4968.53, low: 4962.20, open: 4963.88, timestamp: 1587660180000, volume: 28 },
+  { close: 4961.56, high: 4972.61, low: 4961.28, open: 4961.28, timestamp: 1587660240000, volume: 184 },
+  { close: 4964.19, high: 4964.74, low: 4961.42, open: 4961.64, timestamp: 1587660300000, volume: 191 },
+  { close: 4968.93, high: 4972.70, low: 4964.55, open: 4966.96, timestamp: 1587660360000, volume: 105 },
+  { close: 4979.31, high: 4979.61, low: 4973.99, open: 4977.06, timestamp: 1587660420000, volume: 35 },
+  { close: 4977.02, high: 4981.66, low: 4975.14, open: 4981.66, timestamp: 1587660480000, volume: 135 },
+  { close: 4985.09, high: 4988.62, low: 4980.30, open: 4986.72, timestamp: 1587660540000, volume: 76 }
+])
import { init } from 'klinecharts'
 
 // 初始化图表
 const chart = init(\`\${domId}\`)
@@ -34,23 +34,23 @@ import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const i=
   { close: 4985.09, high: 4988.62, low: 4980.30, open: 4986.72, timestamp: 1587660540000, volume: 76 }
 ])

在直接通过 script 标签引入的项目中创建

html
<!DOCTYPE html>
 <html lang="en" >
-  <head>
-    <meta charset="utf-8" />
-    <meta name="viewport" content="width=device-width, initial-scale=1" />
-    <meta name="theme-color" content="#000000" />
-    <meta name="keywords" content="快速开始"/>
-    <meta name="description" content="快速开始"/>
-    <title>快速开始</title>
-  </head>
-  <body>
-    <div id="chart" style="width:600px;height:600px"></div>
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="theme-color" content="#000000" />
+    <meta name="keywords" content="快速开始"/>
+    <meta name="description" content="快速开始"/>
+    <title>快速开始</title>
+  </head>
+  <body>
+    <div id="chart" style="width:600px;height:600px"></div>
     <script>
-      window.onload = function () {
+      window.onload = function () {
         // 初始化图表
-        var chart = klinecharts.init('chart')
+        var chart = klinecharts.init('chart')
 
         // 为图表添加数据
-        chart.applyNewData([
+        chart.applyNewData([
           { close: 4976.16, high: 4977.99, low: 4970.12, open: 4972.89, timestamp: 1587660000000, volume: 204 },
           { close: 4977.33, high: 4979.94, low: 4971.34, open: 4973.20, timestamp: 1587660060000, volume: 194 },
           { close: 4977.93, high: 4977.93, low: 4974.20, open: 4976.53, timestamp: 1587660120000, volume: 197 },
@@ -63,8 +63,8 @@ import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const i=
           { close: 4985.09, high: 4988.62, low: 4980.30, open: 4986.72, timestamp: 1587660540000, volume: 76 }
         ])
       }
-    </script>
-  </body>
+    </script>
+  </body>
 </html>
<!DOCTYPE html>
 <html lang="en" >
   <head>
@@ -98,4 +98,4 @@ import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const i=
       }
     </script>
   </body>
-</html>

这样你的第一个图表就创建完成了。

`,16),e=[o];function t(c,r,y,F,D,C){return a(),n("div",null,e)}const E=s(p,[["render",t]]);export{i as __pageData,E as default}; +</html>

这样你的第一个图表就创建完成了。

`,16),e=[o];function t(c,r,y,F,D,C){return a(),n("div",null,e)}const B=s(p,[["render",t]]);export{i as __pageData,B as default}; diff --git a/assets/guide_getting-started.md.ba1c2e79.lean.js b/assets/guide_getting-started.md.ba1c2e79.lean.js new file mode 100644 index 000000000..c5baa1aab --- /dev/null +++ b/assets/guide_getting-started.md.ba1c2e79.lean.js @@ -0,0 +1 @@ +import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.385ac4c3.js";const i=JSON.parse('{"title":"🚀 快速开始","description":"","frontmatter":{},"headers":[],"relativePath":"guide/getting-started.md","filePath":"guide/getting-started.md","lastUpdated":1679507254000}'),p={name:"guide/getting-started.md"},o=l("",16),e=[o];function t(c,r,y,F,D,C){return a(),n("div",null,e)}const B=s(p,[["render",t]]);export{i as __pageData,B as default}; diff --git a/assets/guide_hot-key.md.c7ed5c19.js b/assets/guide_hot-key.md.254d156b.js similarity index 85% rename from assets/guide_hot-key.md.c7ed5c19.js rename to assets/guide_hot-key.md.254d156b.js index 1f5c23790..7fc10674c 100644 --- a/assets/guide_hot-key.md.c7ed5c19.js +++ b/assets/guide_hot-key.md.254d156b.js @@ -1 +1 @@ -import{_ as e,o,c as t,X as c}from"./chunks/framework.6909765d.js";const u=JSON.parse('{"title":"⌨️ 快捷键","description":"","frontmatter":{},"headers":[],"relativePath":"guide/hot-key.md","filePath":"guide/hot-key.md","lastUpdated":1692476949000}'),d={name:"guide/hot-key.md"},a=c('

⌨️ 快捷键

目前快捷键仅支持移动和缩放。

  • shift + 右移
  • shift + 左移
  • shift + + 放大
  • shift + - 缩小
',3),i=[a];function s(_,l,r,n,h,p){return o(),t("div",null,i)}const m=e(d,[["render",s]]);export{u as __pageData,m as default}; +import{_ as e,o,c as t,Q as c}from"./chunks/framework.385ac4c3.js";const u=JSON.parse('{"title":"⌨️ 快捷键","description":"","frontmatter":{},"headers":[],"relativePath":"guide/hot-key.md","filePath":"guide/hot-key.md","lastUpdated":1679066795000}'),d={name:"guide/hot-key.md"},a=c('

⌨️ 快捷键

目前快捷键仅支持移动和缩放。

  • shift + 右移
  • shift + 左移
  • shift + + 放大
  • shift + - 缩小
',3),i=[a];function s(_,l,r,n,h,p){return o(),t("div",null,i)}const m=e(d,[["render",s]]);export{u as __pageData,m as default}; diff --git a/assets/guide_hot-key.md.c7ed5c19.lean.js b/assets/guide_hot-key.md.254d156b.lean.js similarity index 69% rename from assets/guide_hot-key.md.c7ed5c19.lean.js rename to assets/guide_hot-key.md.254d156b.lean.js index a3b7d2f7c..04578f6fd 100644 --- a/assets/guide_hot-key.md.c7ed5c19.lean.js +++ b/assets/guide_hot-key.md.254d156b.lean.js @@ -1 +1 @@ -import{_ as e,o,c as t,X as c}from"./chunks/framework.6909765d.js";const u=JSON.parse('{"title":"⌨️ 快捷键","description":"","frontmatter":{},"headers":[],"relativePath":"guide/hot-key.md","filePath":"guide/hot-key.md","lastUpdated":1692476949000}'),d={name:"guide/hot-key.md"},a=c("",3),i=[a];function s(_,l,r,n,h,p){return o(),t("div",null,i)}const m=e(d,[["render",s]]);export{u as __pageData,m as default}; +import{_ as e,o,c as t,Q as c}from"./chunks/framework.385ac4c3.js";const u=JSON.parse('{"title":"⌨️ 快捷键","description":"","frontmatter":{},"headers":[],"relativePath":"guide/hot-key.md","filePath":"guide/hot-key.md","lastUpdated":1679066795000}'),d={name:"guide/hot-key.md"},a=c("",3),i=[a];function s(_,l,r,n,h,p){return o(),t("div",null,i)}const m=e(d,[["render",s]]);export{u as __pageData,m as default}; diff --git a/assets/guide_i18n.md.8d969e9e.js b/assets/guide_i18n.md.52b20843.js similarity index 76% rename from assets/guide_i18n.md.8d969e9e.js rename to assets/guide_i18n.md.52b20843.js index de51bd569..002be9084 100644 --- a/assets/guide_i18n.md.8d969e9e.js +++ b/assets/guide_i18n.md.52b20843.js @@ -1,15 +1,15 @@ -import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const C=JSON.parse('{"title":"🌏 国际化","description":"","frontmatter":{},"headers":[],"relativePath":"guide/i18n.md","filePath":"guide/i18n.md","lastUpdated":1692476949000}'),o={name:"guide/i18n.md"},p=l(`

🌏 国际化

目前图表内置了en-USzh-CN两种语言,默认语言是en-US,如果需要使用其他语言,可以参考下面的方案。

增加语言包

增加语言包通过klinecharts.registerLocale(key, locales)去完成。 例如,添加一个中文繁体的语言包,可以这样做:

typescript
klinecharts.registerLocale('zh-HK', {
-  time: '時間:',
-  open: '開:',
-  high: '高:',
-  low: '低:',
-  close: '收:',
-  volume: '成交量:'
-})
klinecharts.registerLocale('zh-HK', {
+import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.385ac4c3.js";const E=JSON.parse('{"title":"🌏 国际化","description":"","frontmatter":{},"headers":[],"relativePath":"guide/i18n.md","filePath":"guide/i18n.md","lastUpdated":1684958808000}'),o={name:"guide/i18n.md"},p=l(`

🌏 国际化

目前图表内置了en-USzh-CN两种语言,默认语言是en-US,如果需要使用其他语言,可以参考下面的方案。

增加语言包

增加语言包通过klinecharts.registerLocale(key, locales)去完成。 例如,添加一个中文繁体的语言包,可以这样做:

typescript
klinecharts.registerLocale('zh-HK', {
+  time: '時間:',
+  open: '開:',
+  high: '高:',
+  low: '低:',
+  close: '收:',
+  volume: '成交量:'
+})
klinecharts.registerLocale('zh-HK', {
   time: '時間:',
   open: '開:',
   high: '高:',
   low: '低:',
   close: '收:',
   volume: '成交量:'
-})

使用语言包

当添加完语言包后,可以通过图表API init(options)或者setLocale(key),完成语言切换。

`,7),e=[p];function c(t,r,y,D,i,F){return a(),n("div",null,e)}const h=s(o,[["render",c]]);export{C as __pageData,h as default}; +})

使用语言包

当添加完语言包后,可以通过图表API init(options)或者setLocale(key),完成语言切换。

`,7),e=[p];function c(t,r,y,D,i,F){return a(),n("div",null,e)}const h=s(o,[["render",c]]);export{E as __pageData,h as default}; diff --git a/assets/guide_i18n.md.52b20843.lean.js b/assets/guide_i18n.md.52b20843.lean.js new file mode 100644 index 000000000..0b4e50f1c --- /dev/null +++ b/assets/guide_i18n.md.52b20843.lean.js @@ -0,0 +1 @@ +import{_ as s,o as a,c as n,Q as l}from"./chunks/framework.385ac4c3.js";const E=JSON.parse('{"title":"🌏 国际化","description":"","frontmatter":{},"headers":[],"relativePath":"guide/i18n.md","filePath":"guide/i18n.md","lastUpdated":1684958808000}'),o={name:"guide/i18n.md"},p=l("",7),e=[p];function c(t,r,y,D,i,F){return a(),n("div",null,e)}const h=s(o,[["render",c]]);export{E as __pageData,h as default}; diff --git a/assets/guide_i18n.md.8d969e9e.lean.js b/assets/guide_i18n.md.8d969e9e.lean.js deleted file mode 100644 index 16bcc9193..000000000 --- a/assets/guide_i18n.md.8d969e9e.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as a,c as n,X as l}from"./chunks/framework.6909765d.js";const C=JSON.parse('{"title":"🌏 国际化","description":"","frontmatter":{},"headers":[],"relativePath":"guide/i18n.md","filePath":"guide/i18n.md","lastUpdated":1692476949000}'),o={name:"guide/i18n.md"},p=l("",7),e=[p];function c(t,r,y,D,i,F){return a(),n("div",null,e)}const h=s(o,[["render",c]]);export{C as __pageData,h as default}; diff --git a/assets/guide_indicator.md.f0cedf56.js b/assets/guide_indicator.md.918697af.js similarity index 94% rename from assets/guide_indicator.md.f0cedf56.js rename to assets/guide_indicator.md.918697af.js index 0ae3b08e3..0bdd94c99 100644 --- a/assets/guide_indicator.md.f0cedf56.js +++ b/assets/guide_indicator.md.918697af.js @@ -1,24 +1,24 @@ -import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const A=JSON.parse('{"title":"技术指标","description":"","frontmatter":{},"headers":[],"relativePath":"guide/indicator.md","filePath":"guide/indicator.md","lastUpdated":1692476949000}'),p={name:"guide/indicator.md"},o=l(`

技术指标

本文档介绍了图表内置的技术指标和如何自定义一个技术指标。

内置技术指标

指标名默认计算参数指标名默认计算参数指标名默认计算参数
MA[5, 10, 30, 60]BIAS[6, 12, 24]VR[24, 30]
EMA[6, 12, 20]BRAR[26]WR[6, 10, 14]
SMA[12, 2]CCI[13]MTM[6, 10]
BBI[3, 6, 12, 24]DMI[14, 6]EMV[14, 9]
VOL[5, 10, 20]CR[26, 10, 20, 40, 60]SAR[2, 2,  20]
MACD[12, 26, 9]PSY[12, 6]AO[5, 34]
BOLL[20]DMA[10, 50, 10]ROC[12, 6]
KDJ[9, 3, 3]TRIX[12, 20]PVT
RSI[6, 12, 24]OBV[30]AVP

自定义技术指标

创建一个自定义技术指标,只需要生成一个技术指标信息,然后通过klinecharts.registerIndicator全局添加,添加到图表即可和内置技术指标一样去使用。

属性说明

typescript
{
+import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const A=JSON.parse('{"title":"技术指标","description":"","frontmatter":{},"headers":[],"relativePath":"guide/indicator.md","filePath":"guide/indicator.md","lastUpdated":1684958808000}'),p={name:"guide/indicator.md"},o=l(`

技术指标

本文档介绍了图表内置的技术指标和如何自定义一个技术指标。

内置技术指标

指标名默认计算参数指标名默认计算参数指标名默认计算参数
MA[5, 10, 30, 60]BIAS[6, 12, 24]VR[24, 30]
EMA[6, 12, 20]BRAR[26]WR[6, 10, 14]
SMA[12, 2]CCI[13]MTM[6, 10]
BBI[3, 6, 12, 24]DMI[14, 6]EMV[14, 9]
VOL[5, 10, 20]CR[26, 10, 20, 40, 60]SAR[2, 2,  20]
MACD[12, 26, 9]PSY[12, 6]AO[5, 34]
BOLL[20]DMA[10, 50, 10]ROC[12, 6]
KDJ[9, 3, 3]TRIX[12, 20]PVT
RSI[6, 12, 24]OBV[30]AVP

自定义技术指标

创建一个自定义技术指标,只需要生成一个技术指标信息,然后通过klinecharts.registerIndicator全局添加,添加到图表即可和内置技术指标一样去使用。

属性说明

typescript
{
   // 指标名
-  name: string
+  name: string
   // 指标简短名称,用于显示,缺省将显示name
-  shortName?: string
+  shortName?: string
   // 精度,默认为4
-  precision?: number
+  precision?: number
   // 计算参数
-  calcParams?: any[]
+  calcParams?: any[]
   // 是否需要ohlc
-  shouldOhlc?: boolean
+  shouldOhlc?: boolean
   // 是否需要格式化大数据值,从1000开始格式化,比如100000是否需要格式化100K
-  shouldFormatBigNumber?: boolean
+  shouldFormatBigNumber?: boolean
   // 是否可见
-  visible?: boolean 
+  visible?: boolean 
   // 扩展数据
-  extendData?: any
+  extendData?: any
   // 系列,默认为'normal'
-  series?: 'normal' | 'price' | 'volume'
+  series?: 'normal' | 'price' | 'volume'
   // 数据信息
-  figures?: Array<{
+  figures?: Array<{
     // 用于取计算结果中值
     key: string
     // 用于tooltip显示
@@ -37,7 +37,7 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const A=
     }) => IndicatorFigureAttrs
     // 是一个方法,用于生成样式
     styles?: (
-      data: {
+      data: {
         // 上一个图形的数据
         prev: {
           // k线数据,类型参阅[数据源]
@@ -57,31 +57,31 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const A=
         }
       },
       // 技术图表实例
-      indicator: Indicator
+      indicator: Indicator
       // 默认的技术指标样式,即全局设置的技术指标样式,参阅[样式]中的indicator
-      defaultStyles: IndicatorStyle
+      defaultStyles: IndicatorStyle
     ) => IndicatorFigureStyle
   }>
   // 指定的最小值,默认null
-  minValue?: number
+  minValue?: number
   // 指定的最大值,默认null
-  maxValue?: number
+  maxValue?: number
   // 样式,支持增量,默认为null,类型参阅[样式]中的indicator
-  styles?: IndicatorStyle
+  styles?: IndicatorStyle
   // 计算方法,可以是一个promise
   calc: (
     // 数据源,类型参阅[数据源]
-    dataList: KLineData[],
+    dataList: KLineData[],
     // 技术指标实例
-    indicator: Indicator
-  ) => Promise<Array<any>> | Array<any>
+    indicator: Indicator
+  ) => Promise<Array<any>> | Array<any>
   // 重新生成数图形配置方法,会在计算参数发生变化后触发,返回类型参阅figures,默认为null
-  regenerateFigures?: (
+  regenerateFigures?: (
     // 计算参数
-    calcParms: any[]
-  ) => Array<IndicatorFigure<D>>
+    calcParms: any[]
+  ) => Array<IndicatorFigure<D>>
   // 创建自定义提示文字
-  createTooltipDataSource?: (params: {
+  createTooltipDataSource?: (params: {
     // 数据源,类型参阅[数据源]
     kLineDataList: KLineData[]
     // 技术指标实例
@@ -133,11 +133,11 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const A=
     yAxis: YAxis
   }) => ({
     // 名字
-    name?: string
+    name?: string
     // 计算参数文字,如果name无值,则不会显示
-    calcParamsText?: string
+    calcParamsText?: string
     // 值信息
-    values?: Array<{
+    values?: Array<{
       title: string | {
         text: string
         color: string
@@ -149,7 +149,7 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const A=
     }>
   }),
   // 自定义绘制,如果返回true,则figures配置的图形不会绘制
-  draw?: (params: {
+  draw?: (params: {
     // 画布上下文
     ctx: CanvasRenderingContext2D
     // 数据源,类型参阅[数据源]
@@ -197,7 +197,7 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const A=
     xAxis: XAxis
     // y轴组件,内置一些转换方法
     yAxis: YAxis
-  }) => boolean
+  }) => boolean
 }
{
   // 指标名
   name: string
@@ -425,29 +425,29 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const A=
     { key: 'ma2', title: 'MA10: ', type: 'line' }
   ],
   // 当计算参数改变时,希望提示的和参数一样,即title的值需要改变
-  regenerateFigures: (params) => {
-    return params.map((p, i) => {
-      return { key: \`ma\${i + 1}\`, title: \`MA\${p}: \`, type: 'line' }
+  regenerateFigures: (params) => {
+    return params.map((p, i) => {
+      return { key: \`ma\${i + 1}\`, title: \`MA\${p}: \`, type: 'line' }
     })
   },
   // 计算结果
-  calc: (kLineDataList, { calcParams, figures }) => {
+  calc: (kLineDataList, { calcParams, figures }) => {
     // 注意:返回数据个数需要和kLineDataList的数据个数一致,如果无值,用{}代替即可。
     // 计算参数最好取回调参数calcParams,如果不是,后续计算参数发生变化的时候,这里计算不能及时响应
-    const closeSums = []
-    return kLineDataList.map((kLineData, i) => {
-      const ma = {}
-      const close = kLineData. close
-      calcParams.forEach((param, j) => {
-        closeSums[j] = (closeSums[j] || 0) + close
-        if (i >= param - 1) {
-          ma[figures[j].key] = closeSums[j] / param
-          closeSums[j] -= kLineDataList[i - (param - 1)].close
+    const closeSums = []
+    return kLineDataList.map((kLineData, i) => {
+      const ma = {}
+      const close = kLineData. close
+      calcParams.forEach((param, j) => {
+        closeSums[j] = (closeSums[j] || 0) + close
+        if (i >= param - 1) {
+          ma[figures[j].key] = closeSums[j] / param
+          closeSums[j] -= kLineDataList[i - (param - 1)].close
         }
       })
       // 如果有值的情况下,这里每一项的数据格式应该是 { ma1: xxx, ma2: xxx }
       // 每个key需要和figures中的子项key对应的值一致
-      return ma
+      return ma
     })
   }
 }
{
@@ -484,4 +484,4 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const A=
       return ma
     })
   }
-}

这样一个自定义指标就完成了。

`,17),e=[o];function t(c,r,y,F,D,i){return n(),a("div",null,e)}const C=s(p,[["render",t]]);export{A as __pageData,C as default}; +}

这样一个自定义指标就完成了。

`,17),e=[o];function t(c,r,y,F,D,i){return n(),a("div",null,e)}const B=s(p,[["render",t]]);export{A as __pageData,B as default}; diff --git a/assets/guide_indicator.md.918697af.lean.js b/assets/guide_indicator.md.918697af.lean.js new file mode 100644 index 000000000..2408b44ce --- /dev/null +++ b/assets/guide_indicator.md.918697af.lean.js @@ -0,0 +1 @@ +import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const A=JSON.parse('{"title":"技术指标","description":"","frontmatter":{},"headers":[],"relativePath":"guide/indicator.md","filePath":"guide/indicator.md","lastUpdated":1684958808000}'),p={name:"guide/indicator.md"},o=l("",17),e=[o];function t(c,r,y,F,D,i){return n(),a("div",null,e)}const B=s(p,[["render",t]]);export{A as __pageData,B as default}; diff --git a/assets/guide_indicator.md.f0cedf56.lean.js b/assets/guide_indicator.md.f0cedf56.lean.js deleted file mode 100644 index e421ce4b7..000000000 --- a/assets/guide_indicator.md.f0cedf56.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const A=JSON.parse('{"title":"技术指标","description":"","frontmatter":{},"headers":[],"relativePath":"guide/indicator.md","filePath":"guide/indicator.md","lastUpdated":1692476949000}'),p={name:"guide/indicator.md"},o=l("",17),e=[o];function t(c,r,y,F,D,i){return n(),a("div",null,e)}const C=s(p,[["render",t]]);export{A as __pageData,C as default}; diff --git a/assets/guide_instance-api.md.da542511.js b/assets/guide_instance-api.md.717c14e7.js similarity index 67% rename from assets/guide_instance-api.md.da542511.js rename to assets/guide_instance-api.md.717c14e7.js index 9890d7a7d..21708575c 100644 --- a/assets/guide_instance-api.md.da542511.js +++ b/assets/guide_instance-api.md.717c14e7.js @@ -1,10 +1,10 @@ -import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=JSON.parse('{"title":"实例API","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instance-api.md","filePath":"guide/instance-api.md","lastUpdated":1692476949000}'),p={name:"guide/instance-api.md"},o=l(`

实例API

getDom(paneId, position)

typescript
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => HTMLElement
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => HTMLElement

获取dom容器。

  • paneId 窗口id,缺省则是整个图表容器
  • position 可选项为'root','main'和'yAxis',缺省则是'root'

getSize(paneId, position)

typescript
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => {
-  width: number
-  height: number
-  left: number
-  top: number
-  right: number
-  bottom: number
+import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const E=JSON.parse('{"title":"实例API","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instance-api.md","filePath":"guide/instance-api.md","lastUpdated":1694626510000}'),p={name:"guide/instance-api.md"},o=l(`

实例API

getDom(paneId, position)

typescript
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => HTMLElement
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => HTMLElement

获取dom容器。

  • paneId 窗口id,缺省则是整个图表容器
  • position 支持rootmainyAxis,缺省则是root

getSize(paneId, position)

typescript
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => {
+  width: number
+  height: number
+  left: number
+  top: number
+  right: number
+  bottom: number
 }
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => {
   width: number
   height: number
@@ -12,29 +12,29 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
   top: number
   right: number
   bottom: number
-}

获取尺寸。

  • paneId 窗口id,缺省则是整个图表容器
  • position 位置,支持rootmainyAxis,缺省则是root

setStyles(styles)

typescript
(styles: string | object) => HTMLElement
(styles: string | object) => HTMLElement

设置样式配置。

  • styles 样式配置,可以是通过registerStyles注册进去的样式名。当是对象时,详情可参阅样式,支持合并。

getStyles()

typescript
() => object
() => object

获取样式配置,返回完整类型参阅样式

setPriceVolumePrecision(pricePrecision, volumePrecision)

typescript
(pricePrecision: number, volumePrecision: number) => void
(pricePrecision: number, volumePrecision: number) => void

设置价格和数量精度,同时技术指标系列是'price'或者'volume'也会受影响。

  • pricePrecision 价格精度
  • volumePrecision 数量精度

setTimezone(timezone)

typescript
(timezone: string) => void
(timezone: string) => void

设置时区。

  • timezone 时区名,如'Asia/Shanghai',如果不设置会自动获取本机时区,时区对应名字列表请参阅时区列表

getTimezone()

typescript
() => string
() => string

获取图表时区名。

setZoomEnabled(enabled)

typescript
(enabled: boolean) => void
(enabled: boolean) => void

设置是否缩放。

isZoomEnabled()

typescript
() => boolean
() => boolean

是否可以缩放。

setScrollEnabled(enabled)

typescript
(enabled: boolean) => void
(enabled: boolean) => void

设置是否可以拖拽滚动。

isScrollEnabled()

typescript
() => boolean
() => boolean

是否可以拖拽滚动。

setOffsetRightDistance(distance)

typescript
(distance: number) => void
(distance: number) => void

设置图表右边可以空出来的间隙。

getOffsetRightDistance()

typescript
() => number
() => number

获取图表右边可以空出来的间隙。

setLeftMinVisibleBarCount(barCount)

typescript
(barCount: number) => void
(barCount: number) => void

设置左边最小可见的蜡烛数量。

setRightMinVisibleBarCount(barCount)

typescript
(barCount: number) => void
(barCount: number) => void

设置右边最小可见的蜡烛数量。

setBarSpace(space)

typescript
(space: number) => void
(space: number) => void

设置图表单根蜡烛柱的宽度。

getBarSpace()

typescript
() => number
() => number

获取图表单根蜡烛柱的宽度。

getVisibleRange()

typescript
() => {
-  from: number
-  to: number
-  realFrom: number
-  realTo: number
+}

获取尺寸。

  • paneId 窗口id,缺省则是整个图表容器
  • position 位置,支持rootmainyAxis,缺省则是root

setStyles(styles)

typescript
(styles: string | object) => HTMLElement
(styles: string | object) => HTMLElement

设置样式配置。

  • styles 样式配置,可以是通过registerStyles注册进去的样式名。当是对象时,详情可参阅样式,支持合并。

getStyles()

typescript
() => object
() => object

获取样式配置,返回完整类型参阅样式

setPriceVolumePrecision(pricePrecision, volumePrecision)

typescript
(pricePrecision: number, volumePrecision: number) => void
(pricePrecision: number, volumePrecision: number) => void

设置价格和数量精度,同时技术指标系列是'price'或者'volume'也会受影响。

  • pricePrecision 价格精度
  • volumePrecision 数量精度

setTimezone(timezone)

typescript
(timezone: string) => void
(timezone: string) => void

设置时区。

  • timezone 时区名,如'Asia/Shanghai',如果不设置会自动获取本机时区,时区对应名字列表请参阅时区列表

getTimezone()

typescript
() => string
() => string

获取图表时区名。

setZoomEnabled(enabled)

typescript
(enabled: boolean) => void
(enabled: boolean) => void

设置是否缩放。

isZoomEnabled()

typescript
() => boolean
() => boolean

是否可以缩放。

setScrollEnabled(enabled)

typescript
(enabled: boolean) => void
(enabled: boolean) => void

设置是否可以拖拽滚动。

isScrollEnabled()

typescript
() => boolean
() => boolean

是否可以拖拽滚动。

setOffsetRightDistance(distance)

typescript
(distance: number) => void
(distance: number) => void

设置图表右边可以空出来的间隙。

getOffsetRightDistance()

typescript
() => number
() => number

获取图表右边可以空出来的间隙。

setLeftMinVisibleBarCount(barCount)

typescript
(barCount: number) => void
(barCount: number) => void

设置左边最小可见的蜡烛数量。

setRightMinVisibleBarCount(barCount)

typescript
(barCount: number) => void
(barCount: number) => void

设置右边最小可见的蜡烛数量。

setBarSpace(space)

typescript
(space: number) => void
(space: number) => void

设置图表单根蜡烛柱的宽度。

getBarSpace()

typescript
() => number
() => number

获取图表单根蜡烛柱的宽度。

getVisibleRange()

typescript
() => {
+  from: number
+  to: number
+  realFrom: number
+  realTo: number
 }
() => {
   from: number
   to: number
   realFrom: number
   realTo: number
-}

获取可见区间范围。

applyNewData(dataList, more, callback)

typescript
(
-  dataList:Array<{
-    timestamp: number
-    open: number
-    close: number
-    high: number
-    low: number
-    volume?: number,
-    turnover?: number
-  }>,
-  more?: boolean,
-  callback?: () => void
-) => void
(
+}

获取可见区间范围。

applyNewData(dataList, more, callback)

typescript
(
+  dataList:Array<{
+    timestamp: number
+    open: number
+    close: number
+    high: number
+    low: number
+    volume?: number,
+    turnover?: number
+  }>,
+  more?: boolean,
+  callback?: () => void
+) => void
(
   dataList:Array<{
     timestamp: number
     open: number
@@ -46,19 +46,19 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
   }>,
   more?: boolean,
   callback?: () => void
-) => void

添加新数据,此方法会清空图表数据,不需要额外调用clearData方法。

  • dataList 是一个K线数据数组,数据类型详情可参阅数据源
  • more 告诉图表还有没有更多历史数据,可缺省,默认为true
  • callback 成功回调

applyMoreData(dataList, more, callback)

typescript
(
-  dataList:Array<{
-    timestamp: number
-    open: number
-    close: number
-    high: number
-    low: number
-    volume?: number
-    turnover?: number
-  }>,
-  more?: boolean,
-  callback?: () => void
-) => void
(
+) => void

添加新数据,此方法会清空图表数据,不需要额外调用clearData方法。

  • dataList 是一个K线数据数组,数据类型详情可参阅数据源
  • more 告诉图表还有没有更多历史数据,可缺省,默认为true
  • callback 成功回调

applyMoreData(dataList, more, callback)

typescript
(
+  dataList:Array<{
+    timestamp: number
+    open: number
+    close: number
+    high: number
+    low: number
+    volume?: number
+    turnover?: number
+  }>,
+  more?: boolean,
+  callback?: () => void
+) => void
(
   dataList:Array<{
     timestamp: number
     open: number
@@ -70,18 +70,18 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
   }>,
   more?: boolean,
   callback?: () => void
-) => void

添加历史更多数据。

  • dataList 是一个K线数据数组,数据类型详情可参阅数据源
  • more 告诉图表还有没有更多历史数据,可缺省,默认为true
  • callback 成功回调

updateData(data, callback)

typescript
(
-  data: {
-    timestamp: number
-    open: number
-    close: number
-    high: number
-    low: number
-    volume?: number
-    turnover?: number
-  },
-  callback?: () => void
-) => void
(
+) => void

添加历史更多数据。

  • dataList 是一个K线数据数组,数据类型详情可参阅数据源
  • more 告诉图表还有没有更多历史数据,可缺省,默认为true
  • callback 成功回调

updateData(data, callback)

typescript
(
+  data: {
+    timestamp: number
+    open: number
+    close: number
+    high: number
+    low: number
+    volume?: number
+    turnover?: number
+  },
+  callback?: () => void
+) => void
(
   data: {
     timestamp: number
     open: number
@@ -92,14 +92,14 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     turnover?: number
   },
   callback?: () => void
-) => void

更新数据,目前只会匹配当前最后一条数据的时间戳,相同则覆盖,不同则追加。

  • data 单条k线数据,数据类型详情可参阅数据源
  • callback 成功回调

getDataList()

typescript
() => Array<{
-  timestamp: number
-  open: number
-  close: number
-  high: number
-  low: number
-  volume?: number
-  turnover?: number
+) => void

更新数据,目前只会匹配当前最后一条数据的时间戳,相同则覆盖,不同则追加。

  • data 单条k线数据,数据类型详情可参阅数据源
  • callback 成功回调

getDataList()

typescript
() => Array<{
+  timestamp: number
+  open: number
+  close: number
+  high: number
+  low: number
+  volume?: number
+  turnover?: number
 }>
() => Array<{
   timestamp: number
   open: number
@@ -108,53 +108,53 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
   low: number
   volume?: number
   turnover?: number
-}>

获取图表目前的数据源,返回数据类型可参阅数据源

clearData()

typescript
() => void
() => void

清空图表数据,一般情况下不用手动调用,为了避免重复绘制,这里只是清除数据,图表不会重绘。

loadMore(cb)

typescript
(cb: (timestamp: number | null) => void) => void
(cb: (timestamp: number | null) => void) => void

设置加载更多回调函数。

  • cb 是一个回调方法,timestamp为第一条数据的时间戳

createIndicator(value, isStack, paneOptions, callback)

typescript
(
-  value: string | {
-    name: string
-    shortName?: string
-    precision?: number
-    calcParams?: any[]
-    shouldOhlc?: boolean
-    shouldFormatBigNumber?: boolean
-    visible?: boolean
-    extendData?: any
-    series?: 'normal' | 'price' | 'volume'
-    figures?: Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => {
-        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
-        color?: string
-      }
-    }>
-    minValue?: number
-    maxValue?: number
-    styles?: object
-    calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
-    regenerateFigures?: (calcParms: any[]) => Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => {
-        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
-        color?: string
-      }
-    }>,
-    createTooltipDataSource?: (params: object) => {
-      name?: string
-      calcParamsText?: string
-      values?: Array<{
+}>

获取图表目前的数据源,返回数据类型可参阅数据源

clearData()

typescript
() => void
() => void

清空图表数据,一般情况下不用手动调用,为了避免重复绘制,这里只是清除数据,图表不会重绘。

loadMore(cb)

typescript
(cb: (timestamp: number | null) => void) => void
(cb: (timestamp: number | null) => void) => void

设置加载更多回调函数。

  • cb 是一个回调方法,timestamp为第一条数据的时间戳

createIndicator(value, isStack, paneOptions, callback)

typescript
(
+  value: string | {
+    name: string
+    shortName?: string
+    precision?: number
+    calcParams?: any[]
+    shouldOhlc?: boolean
+    shouldFormatBigNumber?: boolean
+    visible?: boolean
+    extendData?: any
+    series?: 'normal' | 'price' | 'volume'
+    figures?: Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => {
+        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
+        color?: string
+      }
+    }>
+    minValue?: number
+    maxValue?: number
+    styles?: object
+    calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
+    regenerateFigures?: (calcParms: any[]) => Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => {
+        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
+        color?: string
+      }
+    }>,
+    createTooltipDataSource?: (params: object) => {
+      name?: string
+      calcParamsText?: string
+      values?: Array<{
         title: string | {
           text: string
           color: string
@@ -165,24 +165,24 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
         }
       }>
     }
-    draw?: (params: object) => boolean
-  },
-  isStack?: boolean,
-  paneOptions?: {
-    id?: string
-    height?: number
-    minHeight?: number
-    dragEnabled?: boolean
-    gap?: {
-      top?: number
-      bottom?: number
-    }
-    axisOptions?: {
-      scrollZoomEnabled?: boolean
-    }
-  } | null,
-  callback?: () => void
-) => string | null
(
+    draw?: (params: object) => boolean
+  },
+  isStack?: boolean,
+  paneOptions?: {
+    id?: string
+    height?: number
+    minHeight?: number
+    dragEnabled?: boolean
+    gap?: {
+      top?: number
+      bottom?: number
+    }
+    axisOptions?: {
+      scrollZoomEnabled?: boolean
+    }
+  } | null,
+  callback?: () => void
+) => string | null
(
   value: string | {
     name: string
     shortName?: string
@@ -256,67 +256,67 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     }
   } | null,
   callback?: () => void
-) => string | null

创建一个技术指标,返回值是一个标识窗口的字符串,这非常重要,后续对该窗口的一些操作,都需要此标识。

  • value 技术指标名或者技术指标对象,当是对象时,类型和图表方法overrideIndicator的入参一致

  • isStack 是否覆盖

  • paneOptions 窗口配置信息,可缺省

    • id 窗口id,可缺省
    • height 窗口高度,可缺省
    • minHeight 窗口最小高度,可缺省
    • dragEnbaled 窗口是否可以拖拽调整高度,可缺省
    • gap 边距
      • top 上边距,值小余1则是百分比
      • bottom 下边距,值小余1则是百分比
    • axisOptions
      • scrollZoomEnabled 轴上是否可以滚动缩放
  • callback 指标创建完成回调方法

特殊的id

'candle_pane',主图的窗口id。

示例:

javascript
chart.createIndicator('MA', false, {
-  id: 'pane_1',
-  height: 100,
-  minHeight: 30,
-  dragEnabled: true,
-  gap: { top: 0.2, bottom: 0.1 },
-  axisOptions: { scrollZoomEnabled: true }
-}, () => {})
chart.createIndicator('MA', false, {
+) => string | null

创建一个技术指标,返回值是一个标识窗口的字符串,这非常重要,后续对该窗口的一些操作,都需要此标识。

  • value 技术指标名或者技术指标对象,当是对象时,类型和图表方法overrideIndicator的入参一致

  • isStack 是否覆盖

  • paneOptions 窗口配置信息,可缺省

    • id 窗口id,可缺省
    • height 窗口高度,可缺省
    • minHeight 窗口最小高度,可缺省
    • dragEnbaled 窗口是否可以拖拽调整高度,可缺省
    • gap 边距
      • top 上边距,值小余1则是百分比
      • bottom 下边距,值小余1则是百分比
    • axisOptions
      • scrollZoomEnabled 轴上是否可以滚动缩放
  • callback 指标创建完成回调方法

特殊的id

'candle_pane',主图的窗口id。

示例:

javascript
chart.createIndicator('MA', false, {
+  id: 'pane_1',
+  height: 100,
+  minHeight: 30,
+  dragEnabled: true,
+  gap: { top: 0.2, bottom: 0.1 },
+  axisOptions: { scrollZoomEnabled: true }
+}, () => {})
chart.createIndicator('MA', false, {
   id: 'pane_1',
   height: 100,
   minHeight: 30,
   dragEnabled: true,
   gap: { top: 0.2, bottom: 0.1 },
   axisOptions: { scrollZoomEnabled: true }
-}, () => {})

overrideIndicator(override, paneId, callback)

typescript
(
-  override: {
-    name: string
-    shortName?: string
-    precision?: number
-    calcParams?: any[]
-    shouldOhlc?: boolean
-    shouldFormatBigNumber?: boolean
-    visible?: boolean
-    extendData?: any
-    series?: 'normal' | 'price' | 'volume'
-    figures?: Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => {
-        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
-        color?: string
-      }
-    }>
-    minValue?: number
-    maxValue?: number
-    styles?: object
-    calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
-    regenerateFigures?: (calcParms: any[]) => Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => {
-        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
-        color?: string
-      }
-    }>,
-    createTooltipDataSource?: (params: object) => {
-      name?: string
-      calcParamsText?: string
-      values?: Array<{
+}, () => {})

overrideIndicator(override, paneId, callback)

typescript
(
+  override: {
+    name: string
+    shortName?: string
+    precision?: number
+    calcParams?: any[]
+    shouldOhlc?: boolean
+    shouldFormatBigNumber?: boolean
+    visible?: boolean
+    extendData?: any
+    series?: 'normal' | 'price' | 'volume'
+    figures?: Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => {
+        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
+        color?: string
+      }
+    }>
+    minValue?: number
+    maxValue?: number
+    styles?: object
+    calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
+    regenerateFigures?: (calcParms: any[]) => Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => {
+        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
+        color?: string
+      }
+    }>,
+    createTooltipDataSource?: (params: object) => {
+      name?: string
+      calcParamsText?: string
+      values?: Array<{
         title: string | {
           text: string
           color: string 
@@ -327,11 +327,11 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
         }
       }>
     }
-    draw?: (params: object) => boolean
-  },
-  paneId?: string | null,
-  callback?: () => void
-) => void
(
+    draw?: (params: object) => boolean
+  },
+  paneId?: string | null,
+  callback?: () => void
+) => void
(
   override: {
     name: string
     shortName?: string
@@ -392,49 +392,49 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
   },
   paneId?: string | null,
   callback?: () => void
-) => void

覆盖技术指标信息。

  • override 需要覆盖的一些参数
    • name 指标名,用于创建和操作的唯一标识
    • shortName 简短名字,用于显示
    • precision 精度
    • calcParams 计算参数
    • shouldOhlc 是否需要ohlc辅助图形
    • shouldFormatBigNumber 是否需要格式化大的数字。如1000转换成1k,1000000转换为1M等
    • visible 是否可见
    • extendData 扩展数据
    • series 指标系列,可选项有'normal','price'和'volume'
    • figures 图形配置
    • minValue 指定最小值
    • maxValue 指定最大值
    • styles 样式
    • calc 计算方法
    • regenerateFigures 重新生成图形信息方法
    • createTooltipDataSource 创建自定义提示信息方法
    • draw 自定义绘制方法
  • paneId 窗口id,缺省则设置所有
  • callback 成功回调

特殊的id

'candle_pane',主图的窗口id。

示例:

javascript
chart.overrideIndicator({
-  name: 'BOLL',
-  showName: 'BOLL'
-  calcParams: [20, 5.5],
-  precision: 4,
-  shouldOhlc: true,
-  shouldFormatBigNumber: false,
-  visible: true,
-  extendData: 2432435,
-  series: 'price',
-  figures: [],
-  minValue: null,
-  maxValue: null,
-  calc: () => [],
-  regenerateFigures: () => [],
-  draw: () => {},
-  styles: {
-  	bars:[{
-      style: 'fill,
-      borderStyle: 'solid,
-      borderSize: 1,
-      borderDashedValue: [2, 2],
-      upColor: '#26A69A',
-      downColor: '#EF5350',
-      noChangeColor: '#888888'
-    }],
-    lines: [{
-      size: 1,
-      style: 'solid',
-      dashedValue: [2, 2],
-      color: '#FF9600'
-    }],
-    circles: [{
-      style: 'fill,
-      borderStyle: 'solid,
-      borderSize: 1,
-      borderDashedValue: [2, 2],
-      upColor: '#26A69A',
-      downColor: '#EF5350',
-      noChangeColor: '#888888'
-    }]
-  }
-}, 'candle_pane', () => {})
chart.overrideIndicator({
+) => void

覆盖技术指标信息。

  • override 需要覆盖的一些参数
    • name 指标名,用于创建和操作的唯一标识
    • shortName 简短名字,用于显示
    • precision 精度
    • calcParams 计算参数
    • shouldOhlc 是否需要ohlc辅助图形
    • shouldFormatBigNumber 是否需要格式化大的数字。如1000转换成1k,1000000转换为1M等
    • visible 是否可见
    • extendData 扩展数据
    • series 指标系列,可选项有'normal','price'和'volume'
    • figures 图形配置
    • minValue 指定最小值
    • maxValue 指定最大值
    • styles 样式
    • calc 计算方法
    • regenerateFigures 重新生成图形信息方法
    • createTooltipDataSource 创建自定义提示信息方法
    • draw 自定义绘制方法
  • paneId 窗口id,缺省则设置所有
  • callback 成功回调

特殊的id

'candle_pane',主图的窗口id。

示例:

javascript
chart.overrideIndicator({
+  name: 'BOLL',
+  showName: 'BOLL'
+  calcParams: [20, 5.5],
+  precision: 4,
+  shouldOhlc: true,
+  shouldFormatBigNumber: false,
+  visible: true,
+  extendData: 2432435,
+  series: 'price',
+  figures: [],
+  minValue: null,
+  maxValue: null,
+  calc: () => [],
+  regenerateFigures: () => [],
+  draw: () => {},
+  styles: {
+  	bars:[{
+      style: 'fill,
+      borderStyle: 'solid,
+      borderSize: 1,
+      borderDashedValue: [2, 2],
+      upColor: '#26A69A',
+      downColor: '#EF5350',
+      noChangeColor: '#888888'
+    }],
+    lines: [{
+      size: 1,
+      style: 'solid',
+      dashedValue: [2, 2],
+      color: '#FF9600'
+    }],
+    circles: [{
+      style: 'fill,
+      borderStyle: 'solid,
+      borderSize: 1,
+      borderDashedValue: [2, 2],
+      upColor: '#26A69A',
+      downColor: '#EF5350',
+      noChangeColor: '#888888'
+    }]
+  }
+}, 'candle_pane', () => {})
chart.overrideIndicator({
   name: 'BOLL',
   showName: 'BOLL'
   calcParams: [20, 5.5],
@@ -476,76 +476,76 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       noChangeColor: '#888888'
     }]
   }
-}, 'candle_pane', () => {})

getIndicatorByPaneId(paneId, name)

typescript
(paneId?: string, name?: string) => object
(paneId?: string, name?: string) => object

根据窗口id获取技术指标信息。

  • paneId 窗口id,即调用createIndicator方法时返回的窗口标识,可缺省,缺省则返回所有。
  • name 技术指标名

特殊的id

'candle_pane',主图的窗口id。

removeIndicator(paneId, name)

typescript
(paneId: string, name?: string) => object
(paneId: string, name?: string) => object

移除技术指标。

  • paneId 窗口id,即调用createIndicator方法时返回的窗口标识
  • name 技术指标名,如果缺省,则会移除所有

特殊的id

'candle_pane',主图的窗口id。

createOverlay(value, paneId)

typescript
(
-  value: string | {
-    name: string
-    id?: string
-    groupId?: string
-    lock?: boolean
-    visible?: boolean
-    zLevel?: number
-    needDefaultPointFigure?: boolean
-    needDefaultXAxisFigure?: boolean
-    needDefaultYAxisFigure?: boolean
-    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
-    modeSensitivity?: number
-    points?: Array<{
-      timestamp?: number
-      dataIndex?: number
-      value?: number
-    }>
-    extendData?: any
-    styles?: object
-    onDrawStart?: (event: object) => boolean
-    onDrawing?: (event: object) => boolean
-    onDrawEnd?: (event: object) => boolean
-    onClick?: (event: object) => boolean
-    onDoubleClick?: (event: object) => boolean
-    onRightClick?: (event: object) => boolean
-    onPressedMoveStart?: (event: object) => boolean
-    onPressedMoving?: (event: object) => boolean
-    onPressedMoveEnd?: (event: object) => boolean
-    onMouseEnter?: (event: object) => boolean
-    onMouseLeave?: (event: object) => boolean
-    onRemoved?: (event: object) => boolean
-    onSelected?: (event: object) => boolean
-    onDeselected?: (event: object) => boolean
-  } | Array<string | {
-    name: string
-    id?: string
-    groupId?: string
-    lock?: boolean
-    visible?: boolean
-    zLevel?: number
-    needDefaultPointFigure?: boolean
-    needDefaultXAxisFigure?: boolean
-    needDefaultYAxisFigure?: boolean
-    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
-    modeSensitivity?: number
-    points?: Array<{
-      timestamp?: number
-      dataIndex?: number
-      value?: number
-    }>
-    extendData?: any
-    styles?: object
-    onDrawStart?: (event: object) => boolean
-    onDrawing?: (event: object) => boolean
-    onDrawEnd?: (event: object) => boolean
-    onClick?: (event: object) => boolean
-    onDoubleClick?: (event: object) => boolean
-    onRightClick?: (event: object) => boolean
-    onPressedMoveStart?: (event: object) => boolean
-    onPressedMoving?: (event: object) => boolean
-    onPressedMoveEnd?: (event: object) => boolean
-    onMouseEnter?: (event: object) => boolean
-    onMouseLeave?: (event: object) => boolean
-    onRemoved?: (event: object) => boolean
-    onSelected?: (event: object) => boolean
-    onDeselected?: (event: object) => boolean
-  }>,
-  paneId?: string
-) => string | null
(
+}, 'candle_pane', () => {})

getIndicatorByPaneId(paneId, name)

typescript
(paneId?: string, name?: string) => object
(paneId?: string, name?: string) => object

根据窗口id获取技术指标信息。

  • paneId 窗口id,即调用createIndicator方法时返回的窗口标识,可缺省,缺省则返回所有。
  • name 技术指标名

特殊的id

'candle_pane',主图的窗口id。

removeIndicator(paneId, name)

typescript
(paneId: string, name?: string) => object
(paneId: string, name?: string) => object

移除技术指标。

  • paneId 窗口id,即调用createIndicator方法时返回的窗口标识
  • name 技术指标名,如果缺省,则会移除所有

特殊的id

'candle_pane',主图的窗口id。

createOverlay(value, paneId)

typescript
(
+  value: string | {
+    name: string
+    id?: string
+    groupId?: string
+    lock?: boolean
+    visible?: boolean
+    zLevel?: number
+    needDefaultPointFigure?: boolean
+    needDefaultXAxisFigure?: boolean
+    needDefaultYAxisFigure?: boolean
+    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+    modeSensitivity?: number
+    points?: Array<{
+      timestamp?: number
+      dataIndex?: number
+      value?: number
+    }>
+    extendData?: any
+    styles?: object
+    onDrawStart?: (event: object) => boolean
+    onDrawing?: (event: object) => boolean
+    onDrawEnd?: (event: object) => boolean
+    onClick?: (event: object) => boolean
+    onDoubleClick?: (event: object) => boolean
+    onRightClick?: (event: object) => boolean
+    onPressedMoveStart?: (event: object) => boolean
+    onPressedMoving?: (event: object) => boolean
+    onPressedMoveEnd?: (event: object) => boolean
+    onMouseEnter?: (event: object) => boolean
+    onMouseLeave?: (event: object) => boolean
+    onRemoved?: (event: object) => boolean
+    onSelected?: (event: object) => boolean
+    onDeselected?: (event: object) => boolean
+  } | Array<string | {
+    name: string
+    id?: string
+    groupId?: string
+    lock?: boolean
+    visible?: boolean
+    zLevel?: number
+    needDefaultPointFigure?: boolean
+    needDefaultXAxisFigure?: boolean
+    needDefaultYAxisFigure?: boolean
+    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+    modeSensitivity?: number
+    points?: Array<{
+      timestamp?: number
+      dataIndex?: number
+      value?: number
+    }>
+    extendData?: any
+    styles?: object
+    onDrawStart?: (event: object) => boolean
+    onDrawing?: (event: object) => boolean
+    onDrawEnd?: (event: object) => boolean
+    onClick?: (event: object) => boolean
+    onDoubleClick?: (event: object) => boolean
+    onRightClick?: (event: object) => boolean
+    onPressedMoveStart?: (event: object) => boolean
+    onPressedMoving?: (event: object) => boolean
+    onPressedMoveEnd?: (event: object) => boolean
+    onMouseEnter?: (event: object) => boolean
+    onMouseLeave?: (event: object) => boolean
+    onRemoved?: (event: object) => boolean
+    onSelected?: (event: object) => boolean
+    onDeselected?: (event: object) => boolean
+  }>,
+  paneId?: string
+) => string | null
(
   value: string | {
     name: string
     id?: string
@@ -614,49 +614,49 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     onDeselected?: (event: object) => boolean
   }>,
   paneId?: string
-) => string | null

创建覆盖物,返回一个字符串类型的标识。

  • value 覆盖物名或者对象,当是对象时,参数和overrideOverlay一致
  • paneId 窗口id,可缺省

特殊的id

'candle_pane',主图的窗口id。

示例:

javascript
chart.createOverlay({
-  name: 'segment',
-  id: 'segment_1'
-  groupId: 'segment',
-  points: [
-    { timestamp: 1614171282000, value: 18987 },
-    { timestamp: 1614171202000, value: 16098 },
-  ],
-  styles: {
-    line: {
-      style: 'solid',
-      dashedValue: [2, 2]
-      color: '#f00',
-      size: 2
-    }
-  },
-  lock: false,
-  visible: true,
-  zLevel: 0,
-  mode: 'weak_magnet',
-  modeSensitivity: 8,
-  extendData: 'xxxxxxxx',
-  needDefaultPointFigure: false,
-  needDefaultXAxisFigure: false,
-  needDefaultYAxisFigure: false,
-  onDrawStart: function (event) { console.log(event) },
-  onDrawing: function (event) { console.log(event) },
-  onDrawEnd: function (event) { console.log(event) },
-  onClick: function (event) { console.log(event) },
-  onDoubleClick: function (event) { console.log(event) },
-  onRightClick: function (event) {
-    console.log(event)
+) => string | null

创建覆盖物,返回一个字符串类型的标识。

  • value 覆盖物名或者对象,当是对象时,参数和overrideOverlay一致
  • paneId 窗口id,可缺省

特殊的id

'candle_pane',主图的窗口id。

示例:

javascript
chart.createOverlay({
+  name: 'segment',
+  id: 'segment_1'
+  groupId: 'segment',
+  points: [
+    { timestamp: 1614171282000, value: 18987 },
+    { timestamp: 1614171202000, value: 16098 },
+  ],
+  styles: {
+    line: {
+      style: 'solid',
+      dashedValue: [2, 2]
+      color: '#f00',
+      size: 2
+    }
+  },
+  lock: false,
+  visible: true,
+  zLevel: 0,
+  mode: 'weak_magnet',
+  modeSensitivity: 8,
+  extendData: 'xxxxxxxx',
+  needDefaultPointFigure: false,
+  needDefaultXAxisFigure: false,
+  needDefaultYAxisFigure: false,
+  onDrawStart: function (event) { console.log(event) },
+  onDrawing: function (event) { console.log(event) },
+  onDrawEnd: function (event) { console.log(event) },
+  onClick: function (event) { console.log(event) },
+  onDoubleClick: function (event) { console.log(event) },
+  onRightClick: function (event) {
+    console.log(event)
     return false
   },
-  onMouseEnter: function (event) { console.log(event) },
-  onMouseLeave: function (event) { console.log(event) },
-  onPressedMoveStart: function (event) { console.log(event) },
-  onPressedMoving: function (event) { console.log(event) },
-  onPressedMoveEnd: function (event) { console.log(event) },
-  onRemoved: function (event) { console.log(event) },
-  onSelected: function (event) { console.log(event) },
-  onDeselected: function (event) { console.log(event) }
-})
chart.createOverlay({
+  onMouseEnter: function (event) { console.log(event) },
+  onMouseLeave: function (event) { console.log(event) },
+  onPressedMoveStart: function (event) { console.log(event) },
+  onPressedMoving: function (event) { console.log(event) },
+  onPressedMoveEnd: function (event) { console.log(event) },
+  onRemoved: function (event) { console.log(event) },
+  onSelected: function (event) { console.log(event) },
+  onDeselected: function (event) { console.log(event) }
+})
chart.createOverlay({
   name: 'segment',
   id: 'segment_1'
   groupId: 'segment',
@@ -698,42 +698,42 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
   onRemoved: function (event) { console.log(event) },
   onSelected: function (event) { console.log(event) },
   onDeselected: function (event) { console.log(event) }
-})

getOverlayById(id)

typescript
(id: string) => object
(id: string) => object

根据id获取覆盖物信息。

  • id 调用createOverlay方法是返回的标识

overrideOverlay(override)

typescript
(
-  override: {
-    name: string
-    id?: string
-    groupId?: string
-    lock?: boolean
-    visible?: boolean
-    zLevel?: number
-    needDefaultPointFigure?: boolean
-    needDefaultXAxisFigure?: boolean
-    needDefaultYAxisFigure?: boolean
-    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
-    modeSensitivity?: number
-    points?: Array<{
-      timestamp?: number
-      dataIndex?: number
-      value?: number
-    }>
-    extendData?: any
-    styles?: object
-    onDrawStart?: (event: object) => boolean
-    onDrawing?: (event: object) => boolean
-    onDrawEnd?: (event: object) => boolean
-    onClick?: (event: object) => boolean
-    onDoubleClick?: (event: object) => boolean
-    onRightClick?: (event: object) => boolean
-    onPressedMoveStart?: (event: object) => boolean
-    onPressedMoving?: (event: object) => boolean
-    onPressedMoveEnd?: (event: object) => boolean
-    onMouseEnter?: (event: object) => boolean
-    onMouseLeave?: (event: object) => boolean
-    onRemoved?: (event: object) => boolean
-    onSelected?: (event: object) => boolean
-    onDeselected?: (event: object) => boolean
-  }
-) => string | null
(
+})

getOverlayById(id)

typescript
(id: string) => object
(id: string) => object

根据id获取覆盖物信息。

  • id 调用createOverlay方法是返回的标识

overrideOverlay(override)

typescript
(
+  override: {
+    name: string
+    id?: string
+    groupId?: string
+    lock?: boolean
+    visible?: boolean
+    zLevel?: number
+    needDefaultPointFigure?: boolean
+    needDefaultXAxisFigure?: boolean
+    needDefaultYAxisFigure?: boolean
+    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+    modeSensitivity?: number
+    points?: Array<{
+      timestamp?: number
+      dataIndex?: number
+      value?: number
+    }>
+    extendData?: any
+    styles?: object
+    onDrawStart?: (event: object) => boolean
+    onDrawing?: (event: object) => boolean
+    onDrawEnd?: (event: object) => boolean
+    onClick?: (event: object) => boolean
+    onDoubleClick?: (event: object) => boolean
+    onRightClick?: (event: object) => boolean
+    onPressedMoveStart?: (event: object) => boolean
+    onPressedMoving?: (event: object) => boolean
+    onPressedMoveEnd?: (event: object) => boolean
+    onMouseEnter?: (event: object) => boolean
+    onMouseLeave?: (event: object) => boolean
+    onRemoved?: (event: object) => boolean
+    onSelected?: (event: object) => boolean
+    onDeselected?: (event: object) => boolean
+  }
+) => string | null
(
   override: {
     name: string
     id?: string
@@ -768,49 +768,49 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     onSelected?: (event: object) => boolean
     onDeselected?: (event: object) => boolean
   }
-) => string | null

覆盖已绘制的覆盖物。

  • override 需要覆盖的参数
    • name 覆盖物名,用于创建的唯一标识
    • id 覆盖物标识,如果id存在,则会以id为依据去覆盖
    • groupId 编组id
    • lock 是否锁定不让拖动
    • visible 是否可见
    • zLevel 绘制层级,值越大越靠前显示
    • needDefaultPointFigure 是否需要默认的点对应的图形
    • needDefaultXAxisFigure 是否需要默认的x轴上的图形
    • needDefaultYAxisFigure 是否需要默认的y轴上的图形
    • mode 模式,可选项有'normal','weak_magnet'和'strong_magnet'
    • modeSensitivity 模式灵敏度,仅 mode 是 weak_magnet 时有效
    • points 点信息
    • extendData 扩展数据
    • styles 样式
    • onDrawStart 开始绘制事件
    • onDrawing 绘制中事件
    • onDrawEnd 绘制结束事件
    • onClick 点击事件
    • onDoubleClick 双击事件
    • onRightClick 右击事件
    • onPressedMoveStart 按住开始移动事件
    • onPressedMoving 按住移动中事件
    • onPressedMoveEnd 按住移动结束事件
    • onMouseEnter 鼠标移入事件
    • onMouseLeave 鼠标移出事件
    • onRemoved 删除事件
    • onSelected 选中事件
    • onDeselected 取消选中事件

示例:

javascript
chart.overrideOverlay({
-  name: 'segment',
-  id: 'segment_1',
-  groupId: 'segment',
-  points: [
-    { timestamp: 1614171282000, value: 18987 },
-    { timestamp: 1614171202000, value: 16098 },
-  ],
-  styles: {
-    line: {
-      style: 'solid',
-      dashedValue: [2, 2]
-      color: '#f00',
-      size: 2
-    }
-  },
-  lock: false,
-  visible: true,
-  zLevel: 0,
-  mode: 'weak_magnet',
-  modeSensitivity: 8,
-  extendData: 'xxxxxxxx',
-  needDefaultPointFigure: false,
-  needDefaultXAxisFigure: false,
-  needDefaultYAxisFigure: false,
-  onDrawStart: function (event) { console.log(event) },
-  onDrawing: function (event) { console.log(event) },
-  onDrawEnd: function (event) { console.log(event) },
-  onClick: function (event) { console.log(event) },
-  onDoubleClick: function (event) { console.log(event) },
-  onRightClick: function (event) {
-    console.log(event)
+) => string | null

覆盖已绘制的覆盖物。

  • override 需要覆盖的参数
    • name 覆盖物名,用于创建的唯一标识
    • id 覆盖物标识,如果id存在,则会以id为依据去覆盖
    • groupId 编组id
    • lock 是否锁定不让拖动
    • visible 是否可见
    • zLevel 绘制层级,值越大越靠前显示
    • needDefaultPointFigure 是否需要默认的点对应的图形
    • needDefaultXAxisFigure 是否需要默认的x轴上的图形
    • needDefaultYAxisFigure 是否需要默认的y轴上的图形
    • mode 模式,可选项有'normal','weak_magnet'和'strong_magnet'
    • modeSensitivity 模式灵敏度,仅 mode 是 weak_magnet 时有效
    • points 点信息
    • extendData 扩展数据
    • styles 样式
    • onDrawStart 开始绘制事件
    • onDrawing 绘制中事件
    • onDrawEnd 绘制结束事件
    • onClick 点击事件
    • onDoubleClick 双击事件
    • onRightClick 右击事件
    • onPressedMoveStart 按住开始移动事件
    • onPressedMoving 按住移动中事件
    • onPressedMoveEnd 按住移动结束事件
    • onMouseEnter 鼠标移入事件
    • onMouseLeave 鼠标移出事件
    • onRemoved 删除事件
    • onSelected 选中事件
    • onDeselected 取消选中事件

示例:

javascript
chart.overrideOverlay({
+  name: 'segment',
+  id: 'segment_1',
+  groupId: 'segment',
+  points: [
+    { timestamp: 1614171282000, value: 18987 },
+    { timestamp: 1614171202000, value: 16098 },
+  ],
+  styles: {
+    line: {
+      style: 'solid',
+      dashedValue: [2, 2]
+      color: '#f00',
+      size: 2
+    }
+  },
+  lock: false,
+  visible: true,
+  zLevel: 0,
+  mode: 'weak_magnet',
+  modeSensitivity: 8,
+  extendData: 'xxxxxxxx',
+  needDefaultPointFigure: false,
+  needDefaultXAxisFigure: false,
+  needDefaultYAxisFigure: false,
+  onDrawStart: function (event) { console.log(event) },
+  onDrawing: function (event) { console.log(event) },
+  onDrawEnd: function (event) { console.log(event) },
+  onClick: function (event) { console.log(event) },
+  onDoubleClick: function (event) { console.log(event) },
+  onRightClick: function (event) {
+    console.log(event)
     return false
   },
-  onMouseEnter: function (event) { console.log(event) },
-  onMouseLeave: function (event) { console.log(event) },
-  onPressedMoveStart: function (event) { console.log(event) },
-  onPressedMoving: function (event) { console.log(event) },
-  onPressedMoveEnd: function (event) { console.log(event) },
-  onRemoved: function (event) { console.log(event) },
-  onSelected: function (event) { console.log(event) },
-  onDeselected: function (event) { console.log(event) }
-})
chart.overrideOverlay({
+  onMouseEnter: function (event) { console.log(event) },
+  onMouseLeave: function (event) { console.log(event) },
+  onPressedMoveStart: function (event) { console.log(event) },
+  onPressedMoving: function (event) { console.log(event) },
+  onPressedMoveEnd: function (event) { console.log(event) },
+  onRemoved: function (event) { console.log(event) },
+  onSelected: function (event) { console.log(event) },
+  onDeselected: function (event) { console.log(event) }
+})
chart.overrideOverlay({
   name: 'segment',
   id: 'segment_1',
   groupId: 'segment',
@@ -852,47 +852,47 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
   onRemoved: function (event) { console.log(event) },
   onSelected: function (event) { console.log(event) },
   onDeselected: function (event) { console.log(event) }
-})

removeOverlay(remove)

typescript
(
-  remove: string | {
-    id?: string
-    groupId?: string
-    name?: string
-  }
-) => void
(
+})

removeOverlay(remove)

typescript
(
+  remove: string | {
+    id?: string
+    groupId?: string
+    name?: string
+  }
+) => void
(
   remove: string | {
     id?: string
     groupId?: string
     name?: string
   }
-) => void

移除图形。

  • id 调用createOverlay方法是返回的标识
  • groupId 编组id
  • name 覆盖物名称

删除一个html元素

  • paneId 窗口id,缺省则删除所有
  • htmlId 创建时候的id,可以是单个id,也可以是id组成的数组,缺省则删除对应窗口上所有的

scrollByDistance(distance, animationDuration)

typescript
(distance: number, animationDuration?: number) => void
(distance: number, animationDuration?: number) => void

滚动一定的距离。

  • distance 距离
  • animationDuration 动画时间,可以缺省,缺省则无动画

scrollToRealTime(animationDuration)

typescript
(distance: number, animationDuration?: number) => void
(distance: number, animationDuration?: number) => void

滚动到最初的位置。

  • animationDuration 动画时间,可以缺省,缺省则无动画

scrollToDataIndex(dataIndex, animationDuration)

typescript
(dataIndex: number, animationDuration?: number) => void
(dataIndex: number, animationDuration?: number) => void

滚动到指定的位置。

  • dataIndex 数据的索引
  • animationDuration 动画时间,可以缺省,缺省则无动画

scrollToTimestamp(timestamp, animationDuration)

typescript
(timestamp: number, animationDuration?: number) => void
(timestamp: number, animationDuration?: number) => void

滚动到指定时间戳。

  • timestamp 时间戳
  • animationDuration 动画时间,可以缺省,缺省则无动画

zoomAtCoordinate(scale, coordinate, animationDuration)

typescript
(
-  scale: number,
-  coordinate?: {
-    x: number
-    y: number
-  },
-  animationDuration?: number
-) => void
(
+) => void

移除图形。

  • id 调用createOverlay方法是返回的标识
  • groupId 编组id
  • name 覆盖物名称

删除一个html元素

  • paneId 窗口id,缺省则删除所有
  • htmlId 创建时候的id,可以是单个id,也可以是id组成的数组,缺省则删除对应窗口上所有的

scrollByDistance(distance, animationDuration)

typescript
(distance: number, animationDuration?: number) => void
(distance: number, animationDuration?: number) => void

滚动一定的距离。

  • distance 距离
  • animationDuration 动画时间,可以缺省,缺省则无动画

scrollToRealTime(animationDuration)

typescript
(distance: number, animationDuration?: number) => void
(distance: number, animationDuration?: number) => void

滚动到最初的位置。

  • animationDuration 动画时间,可以缺省,缺省则无动画

scrollToDataIndex(dataIndex, animationDuration)

typescript
(dataIndex: number, animationDuration?: number) => void
(dataIndex: number, animationDuration?: number) => void

滚动到指定的位置。

  • dataIndex 数据的索引
  • animationDuration 动画时间,可以缺省,缺省则无动画

scrollToTimestamp(timestamp, animationDuration)

typescript
(timestamp: number, animationDuration?: number) => void
(timestamp: number, animationDuration?: number) => void

滚动到指定时间戳。

  • timestamp 时间戳
  • animationDuration 动画时间,可以缺省,缺省则无动画

zoomAtCoordinate(scale, coordinate, animationDuration)

typescript
(
+  scale: number,
+  coordinate?: {
+    x: number
+    y: number
+  },
+  animationDuration?: number
+) => void
(
   scale: number,
   coordinate?: {
     x: number
     y: number
   },
   animationDuration?: number
-) => void

在某个坐标点缩放。

  • scale 缩放比例
  • coordinate 坐标点,可缺省,缺省则在图表中间位置缩放
  • animationDuration 动画时间,可以缺省,缺省则无动画

zoomAtDataIndex(scale, dataIndex, animationDuration)

typescript
(scale: number, dataIndex: number, animationDuration?: number) => void
(scale: number, dataIndex: number, animationDuration?: number) => void

在某个位置缩放。

  • scale 缩放比例
  • dataIndex 数据的索引
  • animationDuration 动画时间,可以缺省,缺省则无动画

zoomAtTimestamp(scale, timestamp, animationDuration)

typescript
(scale: number, timestamp: number, animationDuration?: number) => void
(scale: number, timestamp: number, animationDuration?: number) => void

在指定时间戳上缩放。

  • scale 缩放比例
  • timestamp 时间戳
  • animationDuration 动画时间,可以缺省,缺省则无动画

setPaneOptions(options)

typescript
(
-  options: {
-    id: string
-    height?: number
-    minHeight?: number
-    dragEnabled?: boolean
-    gap?: {
-      top?: number
-      bottom?: number
-    }
-    axisOptions?: {
-      scrollZoomEnabled?: boolean
-    }
-  }
-) => void
(
+) => void

在某个坐标点缩放。

  • scale 缩放比例
  • coordinate 坐标点,可缺省,缺省则在图表中间位置缩放
  • animationDuration 动画时间,可以缺省,缺省则无动画

zoomAtDataIndex(scale, dataIndex, animationDuration)

typescript
(scale: number, dataIndex: number, animationDuration?: number) => void
(scale: number, dataIndex: number, animationDuration?: number) => void

在某个位置缩放。

  • scale 缩放比例
  • dataIndex 数据的索引
  • animationDuration 动画时间,可以缺省,缺省则无动画

zoomAtTimestamp(scale, timestamp, animationDuration)

typescript
(scale: number, timestamp: number, animationDuration?: number) => void
(scale: number, timestamp: number, animationDuration?: number) => void

在指定时间戳上缩放。

  • scale 缩放比例
  • timestamp 时间戳
  • animationDuration 动画时间,可以缺省,缺省则无动画

setPaneOptions(options)

typescript
(
+  options: {
+    id: string
+    height?: number
+    minHeight?: number
+    dragEnabled?: boolean
+    gap?: {
+      top?: number
+      bottom?: number
+    }
+    axisOptions?: {
+      scrollZoomEnabled?: boolean
+    }
+  }
+) => void
(
   options: {
     id: string
     height?: number
@@ -906,53 +906,53 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
       scrollZoomEnabled?: boolean
     }
   }
-) => void

设置窗口配置。

  • paneOptions 窗口配置信息,可缺省
    • id 窗口id
    • height 窗口高度,可缺省
    • minHeight 窗口最小高度,可缺省
    • dragEnbaled 窗口是否可以拖拽调整高度,可缺省
    • gap 边距
      • top 上边距,值小余1则是百分比
      • bottom 下边距,值小余1则是百分比
    • axisOptions
      • scrollZoomEnabled 轴上是否可以滚动缩放

特殊的id

'candle_pane',主图的窗口id。

示例:

javascript
chart.setPaneOptions({
-  id: 'pane_1',
-  height: 100,
-  minHeight: 3,
-  dragEnabled: true,
-  gap: { top: 0.2, bottom: 0.1 },
-  axisOptions: { scrollZoomEnabled: true }
-})
chart.setPaneOptions({
+) => void

设置窗口配置。

  • paneOptions 窗口配置信息,可缺省
    • id 窗口id
    • height 窗口高度,可缺省
    • minHeight 窗口最小高度,可缺省
    • dragEnbaled 窗口是否可以拖拽调整高度,可缺省
    • gap 边距
      • top 上边距,值小余1则是百分比
      • bottom 下边距,值小余1则是百分比
    • axisOptions
      • scrollZoomEnabled 轴上是否可以滚动缩放

特殊的id

'candle_pane',主图的窗口id。

示例:

javascript
chart.setPaneOptions({
+  id: 'pane_1',
+  height: 100,
+  minHeight: 3,
+  dragEnabled: true,
+  gap: { top: 0.2, bottom: 0.1 },
+  axisOptions: { scrollZoomEnabled: true }
+})
chart.setPaneOptions({
   id: 'pane_1',
   height: 100,
   minHeight: 3,
   dragEnabled: true,
   gap: { top: 0.2, bottom: 0.1 },
   axisOptions: { scrollZoomEnabled: true }
-})

executeAction(type, data)

typescript
(
-   type: 'onCrosshairChange',
-   data: any => void
-) => void
(
+})

executeAction(type, data)

typescript
(
+   type: 'onCrosshairChange',
+   data: any => void
+) => void
(
    type: 'onCrosshairChange',
    data: any => void
-) => void

执行图表动作

  • type 仅支持 'onCrosshairChange'
  • data 执行动作需要的数据

subscribeAction(type, callback)

typescript
(
-  type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
-  callback: (data?: any) => void
-) => void
(
+) => void

执行图表动作

  • type 仅支持 'onCrosshairChange'
  • data 执行动作需要的数据

subscribeAction(type, callback)

typescript
(
+  type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
+  callback: (data?: any) => void
+) => void
(
   type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
   callback: (data?: any) => void
-) => void

订阅图表动作。

  • type 可选项为'onZoom','onScroll','onVisibleRangeChange','onCandleBarClick', 'onTooltipIconClick','onCrosshairChange'和'onPaneDrag'
  • callback 是一个回调方法

unsubscribeAction(type, callback)

typescript
(
-  type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
-  callback?: (data?: any) => void
-) => void
(
+) => void

订阅图表动作。

  • type 可选项为'onZoom','onScroll','onVisibleRangeChange','onCandleBarClick', 'onTooltipIconClick','onCrosshairChange'和'onPaneDrag'
  • callback 是一个回调方法

unsubscribeAction(type, callback)

typescript
(
+  type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
+  callback?: (data?: any) => void
+) => void
(
   type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
   callback?: (data?: any) => void
-) => void

取消订阅图表动作。

  • type 可选项为'onZoom','onScroll','onVisibleRangeChange','onCandleBarClick', 'onTooltipIconClick','onCrosshairChange'和'onPaneDrag'
  • callback 订阅时的回调方法,缺省则取消当前类型所有

convertToPixel(value, finder)

typescript
(
-  value: {
-    dataIndex?: number
-    timestamp?: number
-    value?: number
-  } | Array<{
-    dataIndex?: number
-    timestamp?: number
-    value?: number
-  }>,
-  finder: {
-    paneId?: string
-    absolute?: boolean
-  }
-) => { x: number?, y?: number } | Array<{ x?: number, y?: number }>
(
+) => void

取消订阅图表动作。

  • type 可选项为'onZoom','onScroll','onVisibleRangeChange','onCandleBarClick', 'onTooltipIconClick','onCrosshairChange'和'onPaneDrag'
  • callback 订阅时的回调方法,缺省则取消当前类型所有

convertToPixel(value, finder)

typescript
(
+  value: {
+    dataIndex?: number
+    timestamp?: number
+    value?: number
+  } | Array<{
+    dataIndex?: number
+    timestamp?: number
+    value?: number
+  }>,
+  finder: {
+    paneId?: string
+    absolute?: boolean
+  }
+) => { x: number?, y?: number } | Array<{ x?: number, y?: number }>
(
   value: {
     dataIndex?: number
     timestamp?: number
@@ -966,27 +966,27 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     paneId?: string
     absolute?: boolean
   }
-) => { x: number?, y?: number } | Array<{ x?: number, y?: number }>

将值转换成坐标。

  • value 需要转换的值,可以是当个对象,也可以是数组
    • dataIndex 数据索引,如果dataIndextimestamp同时存在,则依据索引转换
    • timestamp 时间戳
    • value 对应y轴的值
  • finder 过滤条件
    • paneId 窗口id
    • absolute 是否是绝对坐标,只作用于y轴

convertFromPixel(coordinate, finder)

typescript
(
-  coordinate: {
-    x?: number
-    y?: number
-  } | Array<{
-    x?: number
-    y?: number
-  },
-  finder: {
-    paneId?: string
-    absolute?: boolean
-  }
-) => {
-    dataIndex?: number
-    timestamp?: number
-    value?: number
-  } | Array<{
-    dataIndex?: number
-    timestamp?: number
-    value?: number
-  }>
(
+) => { x: number?, y?: number } | Array<{ x?: number, y?: number }>

将值转换成坐标。

  • value 需要转换的值,可以是当个对象,也可以是数组
    • dataIndex 数据索引,如果dataIndextimestamp同时存在,则依据索引转换
    • timestamp 时间戳
    • value 对应y轴的值
  • finder 过滤条件
    • paneId 窗口id
    • absolute 是否是绝对坐标,只作用于y轴

convertFromPixel(coordinate, finder)

typescript
(
+  coordinate: {
+    x?: number
+    y?: number
+  } | Array<{
+    x?: number
+    y?: number
+  },
+  finder: {
+    paneId?: string
+    absolute?: boolean
+  }
+) => {
+    dataIndex?: number
+    timestamp?: number
+    value?: number
+  } | Array<{
+    dataIndex?: number
+    timestamp?: number
+    value?: number
+  }>
(
   coordinate: {
     x?: number
     y?: number
@@ -1006,4 +1006,4 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=
     dataIndex?: number
     timestamp?: number
     value?: number
-  }>

将坐标转换成值。

  • coordinate 需要转换的值,可以是当个对象,也可以是数组
  • finder 过滤条件
    • paneId 窗口id
    • absolute 是否是绝对坐标,只作用于y轴

getConvertPictureUrl(includeOverlay, type, backgroundColor)

typescript
(includeOverlay?: boolean, type?: string, backgroundColor?: string) => string
(includeOverlay?: boolean, type?: string, backgroundColor?: string) => string

获取图表转换成图片后的图片url。

  • includeOverlay 是否需要包含浮层,可缺省
  • type 转换后的图片类型,类型是'png'、'jpeg'、'bmp'三种中的一种,可缺省,默认为'jpeg'
  • backgroundColor 背景色,可缺省,默认为'#FFFFFF'

resize()

typescript
() => void
() => void

调整图表大小,总是会填充容器大小。

注意

此方法会重新计算整个图表各个模块的大小,频繁调用可能会影响到性能,调用请谨慎。

`,192),e=[o];function t(c,r,y,D,C,A){return n(),a("div",null,e)}const E=s(p,[["render",t]]);export{F as __pageData,E as default}; + }>

将坐标转换成值。

  • coordinate 需要转换的值,可以是当个对象,也可以是数组
  • finder 过滤条件
    • paneId 窗口id
    • absolute 是否是绝对坐标,只作用于y轴

getConvertPictureUrl(includeOverlay, type, backgroundColor)

typescript
(includeOverlay?: boolean, type?: string, backgroundColor?: string) => string
(includeOverlay?: boolean, type?: string, backgroundColor?: string) => string

获取图表转换成图片后的图片url。

  • includeOverlay 是否需要包含浮层,可缺省
  • type 转换后的图片类型,类型是'png'、'jpeg'、'bmp'三种中的一种,可缺省,默认为'jpeg'
  • backgroundColor 背景色,可缺省,默认为'#FFFFFF'

resize()

typescript
() => void
() => void

调整图表大小,总是会填充容器大小。

注意

此方法会重新计算整个图表各个模块的大小,频繁调用可能会影响到性能,调用请谨慎。

`,192),e=[o];function t(c,r,y,D,i,F){return n(),a("div",null,e)}const A=s(p,[["render",t]]);export{E as __pageData,A as default}; diff --git a/assets/guide_instance-api.md.717c14e7.lean.js b/assets/guide_instance-api.md.717c14e7.lean.js new file mode 100644 index 000000000..9b5680b44 --- /dev/null +++ b/assets/guide_instance-api.md.717c14e7.lean.js @@ -0,0 +1 @@ +import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const E=JSON.parse('{"title":"实例API","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instance-api.md","filePath":"guide/instance-api.md","lastUpdated":1694626510000}'),p={name:"guide/instance-api.md"},o=l("",192),e=[o];function t(c,r,y,D,i,F){return n(),a("div",null,e)}const A=s(p,[["render",t]]);export{E as __pageData,A as default}; diff --git a/assets/guide_instance-api.md.da542511.lean.js b/assets/guide_instance-api.md.da542511.lean.js deleted file mode 100644 index 6a1aa3cac..000000000 --- a/assets/guide_instance-api.md.da542511.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const F=JSON.parse('{"title":"实例API","description":"","frontmatter":{},"headers":[],"relativePath":"guide/instance-api.md","filePath":"guide/instance-api.md","lastUpdated":1692476949000}'),p={name:"guide/instance-api.md"},o=l("",192),e=[o];function t(c,r,y,D,C,A){return n(),a("div",null,e)}const E=s(p,[["render",t]]);export{F as __pageData,E as default}; diff --git a/assets/guide_overlay.md.47a04cff.js b/assets/guide_overlay.md.24f819b4.js similarity index 88% rename from assets/guide_overlay.md.47a04cff.js rename to assets/guide_overlay.md.24f819b4.js index 1bc18a0a5..034cb5427 100644 --- a/assets/guide_overlay.md.47a04cff.js +++ b/assets/guide_overlay.md.24f819b4.js @@ -1,36 +1,36 @@ -import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const E=JSON.parse('{"title":"覆盖物","description":"","frontmatter":{},"headers":[],"relativePath":"guide/overlay.md","filePath":"guide/overlay.md","lastUpdated":1692476949000}'),p={name:"guide/overlay.md"},o=l(`

覆盖物

本文档介绍了图表内置的覆盖物和如何自定义一个覆盖物。

内置覆盖物类型

horizontalRayLine, horizontalSegment, horizontalStraightLine, verticalRayLine, verticalSegment, verticalStraightLine, rayLine, segment, straightLine, priceLine, priceChannelLine, parallelStraightLine, fibonacciLine, simpleAnnotation, simpleTag

自定义覆盖物

自定义一个覆盖物,然后通过klinecharts.registerOverlay 全局添加,添加到图表即可和内置覆盖物一样去使用。

属性说明

typescript
{
+import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const A=JSON.parse('{"title":"覆盖物","description":"","frontmatter":{},"headers":[],"relativePath":"guide/overlay.md","filePath":"guide/overlay.md","lastUpdated":1686770071000}'),p={name:"guide/overlay.md"},o=l(`

覆盖物

本文档介绍了图表内置的覆盖物和如何自定义一个覆盖物。

内置覆盖物类型

horizontalRayLine, horizontalSegment, horizontalStraightLine, verticalRayLine, verticalSegment, verticalStraightLine, rayLine, segment, straightLine, priceLine, priceChannelLine, parallelStraightLine, fibonacciLine, simpleAnnotation, simpleTag

自定义覆盖物

自定义一个覆盖物,然后通过klinecharts.registerOverlay 全局添加,添加到图表即可和内置覆盖物一样去使用。

属性说明

typescript
{
   // 名称,必须字段,作为覆盖物创建的唯一标识
-  name: string
+  name: string
 
   // 总共需要多少步操作才行绘制完成,非必须
-  totalStep?: number
+  totalStep?: number
 
   // 是否锁定,不触发事件,非必须
-  lock?: boolean
+  lock?: boolean
 
   // 是否可见
-  visible?: boolean
+  visible?: boolean
 
   // 绘制层级,值越大越靠前显示
-  zLevel?: number
+  zLevel?: number
 
   // 是否需要默认的点对应的图形,非必须
-  needDefaultPointFigure?: boolean
+  needDefaultPointFigure?: boolean
 
   // 是否需要默认的X轴上的图形,非必须
-  needDefaultXAxisFigure?: boolean
+  needDefaultXAxisFigure?: boolean
 
   // 是否需要默认的Y轴上的图形,非必须
-  needDefaultYAxisFigure?: boolean
+  needDefaultYAxisFigure?: boolean
 
   // 模式,可选项为\`normal\`,\`weak_magnet\`,\`strong_magnet\`,非必须
-  mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+  mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
 
   // 模式灵敏度,仅 mode 是 weak_magnet 时有效
-  modeSensitivity?: number
+  modeSensitivity?: number
 
   // 点信息,非必须
-  points?: Array<{
+  points?: Array<{
     // 时间戳
     timestamp: number
     // 数据索引
@@ -40,72 +40,72 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const E=
   }>,
 
   // 扩展数据,非必须
-  extendData?: any
+  extendData?: any
 
   // 样式,非必须,类型参与[样式]中的overlay
-  styles?: OverlayStyle
+  styles?: OverlayStyle
 
   // 创建点对应的图形,非必须
   createPointFigures: ({
     // 覆盖物实例
-    overlay: Overlay
+    overlay: Overlay
     // points对应的坐标信息
-    coordinates: Array<{
+    coordinates: Array<{
       x: number
       y: number
     }>
     // 窗口尺寸信息
-    bounding: {
+    bounding: {
       // 宽
-      width: number
+      width: number
       // 高
-      height: number
+      height: number
       // 距离左边距离
-      left: number
+      left: number
       // 距离右边距离
-      right: number
+      right: number
       // 距离顶部距离
-      top: number
+      top: number
       // 距离底部距离
-      bottom: number
+      bottom: number
     }
     // 蜡烛柱的尺寸信息
-    barSpace: {
+    barSpace: {
       // 蜡烛柱尺寸
-      bar: number
-      halfBar: number
+      bar: number
+      halfBar: number
       // 蜡烛柱不包含蜡烛柱之间间隙的尺寸
-      gapBar: number
-      halfGapBar: number
+      gapBar: number
+      halfGapBar: number
     },
     // 精度
     precision: {
       // 价格精度
-      price: number
+      price: number
       // 数量精度
-      volume: number
+      volume: number
     }
     // 千分符
-    thousandsSeparator: string
+    thousandsSeparator: string
     // 格式化日期和时间的对象的构造器,详情参阅 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat
-    dateTimeFormat: Intl.DateTimeFormat
+    dateTimeFormat: Intl.DateTimeFormat
     // 默认样式,即全局样式配置中的overlay,类型参与[样式]中的overlay
-    defaultStyles: OverlayStyle
+    defaultStyles: OverlayStyle
      // x轴组件,内置一些转换方法
-    xAxis: XAxis
+    xAxis: XAxis
     // y轴组件,内置一些转换方法
-    yAxis: YAxis
+    yAxis: YAxis
   }) => ({
     // 无特殊含义,可用于扩展字段
-    key?: string
+    key?: string
     // 图形类型,类型为klinecharts.getSupportFigures返回值中的一种
-    type: string
+    type: string
     // type对应的图形的属性
-    attrs: any | any[]
+    attrs: any | any[]
     // type对应的图形的样式
-    styles?: any
+    styles?: any
     // 是否忽略事件
-    ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+    ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
   }) | Array<{
     key?: string
     type: string
@@ -115,19 +115,19 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const E=
   }>
 
   // 创建X轴上的图形,非必须,参数和返回值和\`createPointFigures\`一致
-  createXAxisFigures?: OverlayCreateFiguresCallback
+  createXAxisFigures?: OverlayCreateFiguresCallback
 
   // 创建Y轴上的图形,非必须,参数和返回值和\`createPointFigures\`一致
-  createYAxisFigures?: OverlayCreateFiguresCallback
+  createYAxisFigures?: OverlayCreateFiguresCallback
 
   // 处理在绘制过程中移动操作,可缺省,移动绘制过程中触发
-  performEventMoveForDrawing?: ({
+  performEventMoveForDrawing?: ({
     // 当前步骤
-    currentStep: number
+    currentStep: number
     // 模式
-    mode: 'normal' | 'weak_magnet' | 'strong_magnet'
+    mode: 'normal' | 'weak_magnet' | 'strong_magnet'
     // 点信息
-    points: Array<{
+    points: Array<{
       // 时间戳
       timestamp: number
       // 数据索引
@@ -136,56 +136,56 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const E=
       value?: number
     }>
     // 事件所在点的索引
-    performPointIndex
+    performPointIndex
     // 事件所在点的信息
-    performPoint
+    performPoint
   }) => void
 
   // 处理按住移动操作,可缺省,按住某个操作点移动过程中触发
   // 回调参数和\`performEventMoveForDrawing\`一致
-  performEventPressedMove?: (params: OverlayPerformEventParams) => void
+  performEventPressedMove?: (params: OverlayPerformEventParams) => void
 
   // 绘制开始回调事件,可缺省
-  onDrawStart?: (event: OverlayEvent) => boolean
+  onDrawStart?: (event: OverlayEvent) => boolean
 
   // 绘制过程中回调事件,可缺省
-  onDrawing?: (event: OverlayEvent) => boolean
+  onDrawing?: (event: OverlayEvent) => boolean
 
   // 绘制结束回调事件,可缺省
-  onDrawEnd?: (event: OverlayEvent) => boolean
+  onDrawEnd?: (event: OverlayEvent) => boolean
 
   // 点击回调事件,可缺省
-  onClick?: (event: OverlayEvent) => boolean
+  onClick?: (event: OverlayEvent) => boolean
 
   // 双击回调事件,可缺省
-  onDoubleClick?: (event: OverlayEvent) => boolean
+  onDoubleClick?: (event: OverlayEvent) => boolean
 
   // 右击回调事件,可缺省,需要返回一个boolean类型的值,如果返回true,内置的右击删除将无效
-  onRightClick?: (event: OverlayEvent) => boolean
+  onRightClick?: (event: OverlayEvent) => boolean
 
   // 按住拖动开始回调事件,可缺省
-  onPressedMoveStart?: (event: OverlayEvent) => boolean
+  onPressedMoveStart?: (event: OverlayEvent) => boolean
 
   // 按住拖动回调事件,可缺省  
-  onPressedMoving?: (event: OverlayEvent) => boolean
+  onPressedMoving?: (event: OverlayEvent) => boolean
 
   // 按住拖动结束回调事件,可缺省
-  onPressedMoveEnd: (event: OverlayEvent) => boolean
+  onPressedMoveEnd: (event: OverlayEvent) => boolean
 
   // 鼠标移入事件,可缺省
-  onMouseEnter?: (event: OverlayEvent) => boolean
+  onMouseEnter?: (event: OverlayEvent) => boolean
 
   // 鼠标移出事件,可缺省
-  onMouseLeave?: (event: OverlayEvent) => boolean
+  onMouseLeave?: (event: OverlayEvent) => boolean
 
   // 删除回调事件,可缺省
-  onRemoved?: (event: OverlayEvent) => boolean
+  onRemoved?: (event: OverlayEvent) => boolean
 
   // 选中回调事件,可缺省
-  onSelected?: (event: OverlayEvent) => boolean
+  onSelected?: (event: OverlayEvent) => boolean
 
   // 取消回调事件,可缺省
-  onDeselected?: (event: OverlayEvent) => boolean
+  onDeselected?: (event: OverlayEvent) => boolean
 }
{
   // 名称,必须字段,作为覆盖物创建的唯一标识
   name: string
@@ -382,19 +382,19 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const E=
   totalStep: 3,
 
   // 创建点对应的图形信息
-  createPointFigures: ({ coordinates }) => {
-    if (coordinates.length === 2) {
-      const xDis = Math.abs(coordinates[0].x - coordinates[1].x)
-      const yDis = Math.abs(coordinates[0].y - coordinates[1].y)
+  createPointFigures: ({ coordinates }) => {
+    if (coordinates.length === 2) {
+      const xDis = Math.abs(coordinates[0].x - coordinates[1].x)
+      const yDis = Math.abs(coordinates[0].y - coordinates[1].y)
       // 确定对应点生成的圆的坐标
-      const radius = Math.sqrt(xDis * xDis + yDis * yDis)
+      const radius = Math.sqrt(xDis * xDis + yDis * yDis)
       // 图表内置了基础图形'circle',可以直接使用
       return {
         key: 'sampleCircle',
         type: 'circle',
         attrs: {
-          ...coordinates[0],
-          r: radius
+          ...coordinates[0],
+          r: radius
         },
         styles: {
           // 选择边框且填充,其它选择使用默认样式
@@ -434,4 +434,4 @@ import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const E=
     }
     return []
   }
-}

这样一个自定义覆盖物就完成了。

`,12),e=[o];function t(c,r,y,F,D,i){return n(),a("div",null,e)}const C=s(p,[["render",t]]);export{E as __pageData,C as default}; +}

这样一个自定义覆盖物就完成了。

`,12),e=[o];function t(c,r,y,F,D,i){return n(),a("div",null,e)}const B=s(p,[["render",t]]);export{A as __pageData,B as default}; diff --git a/assets/guide_overlay.md.24f819b4.lean.js b/assets/guide_overlay.md.24f819b4.lean.js new file mode 100644 index 000000000..0520df39f --- /dev/null +++ b/assets/guide_overlay.md.24f819b4.lean.js @@ -0,0 +1 @@ +import{_ as s,o as n,c as a,Q as l}from"./chunks/framework.385ac4c3.js";const A=JSON.parse('{"title":"覆盖物","description":"","frontmatter":{},"headers":[],"relativePath":"guide/overlay.md","filePath":"guide/overlay.md","lastUpdated":1686770071000}'),p={name:"guide/overlay.md"},o=l("",12),e=[o];function t(c,r,y,F,D,i){return n(),a("div",null,e)}const B=s(p,[["render",t]]);export{A as __pageData,B as default}; diff --git a/assets/guide_overlay.md.47a04cff.lean.js b/assets/guide_overlay.md.47a04cff.lean.js deleted file mode 100644 index c0c73fe9d..000000000 --- a/assets/guide_overlay.md.47a04cff.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,o as n,c as a,X as l}from"./chunks/framework.6909765d.js";const E=JSON.parse('{"title":"覆盖物","description":"","frontmatter":{},"headers":[],"relativePath":"guide/overlay.md","filePath":"guide/overlay.md","lastUpdated":1692476949000}'),p={name:"guide/overlay.md"},o=l("",12),e=[o];function t(c,r,y,F,D,i){return n(),a("div",null,e)}const C=s(p,[["render",t]]);export{E as __pageData,C as default}; diff --git a/assets/guide_styles.md.3c2df31b.js b/assets/guide_styles.md.666131a3.js similarity index 99% rename from assets/guide_styles.md.3c2df31b.js rename to assets/guide_styles.md.666131a3.js index cb3a6b7b2..9fbccd7e5 100644 --- a/assets/guide_styles.md.3c2df31b.js +++ b/assets/guide_styles.md.666131a3.js @@ -1,4 +1,4 @@ -import{S as a}from"./chunks/StyleExplain.febf53f8.js";import{o as l,c as p,O as o,k as s,a as n,X as e}from"./chunks/framework.6909765d.js";const c=s("h1",{id:"🎨-样式配置",tabindex:"-1"},[n("🎨 样式配置 "),s("a",{class:"header-anchor",href:"#🎨-样式配置","aria-label":'Permalink to "🎨 样式配置"'},"​")],-1),t=s("p",null,[n("图表上看到的不管是点还是线,基本都可以自定义样式。可以通过图表方法"),s("code",null,"init(ds, options)"),n("或者图表实例方法"),s("code",null,"setStyles(styles)"),n("进行更改。")],-1),r=s("h2",{id:"图解说明",tabindex:"-1"},[n("图解说明 "),s("a",{class:"header-anchor",href:"#图解说明","aria-label":'Permalink to "图解说明"'},"​")],-1),y=e(`

默认完整配置

javascript
{
+import{S as a}from"./chunks/StyleExplain.cbaaf100.js";import{o as l,c as p,H as o,k as s,a as n,Q as e}from"./chunks/framework.385ac4c3.js";const c=s("h1",{id:"🎨-样式配置",tabindex:"-1"},[n("🎨 样式配置 "),s("a",{class:"header-anchor",href:"#🎨-样式配置","aria-label":'Permalink to "🎨 样式配置"'},"​")],-1),t=s("p",null,[n("图表上看到的不管是点还是线,基本都可以自定义样式。可以通过图表方法"),s("code",null,"init(ds, options)"),n("或者图表实例方法"),s("code",null,"setStyles(styles)"),n("进行更改。")],-1),r=s("h2",{id:"图解说明",tabindex:"-1"},[n("图解说明 "),s("a",{class:"header-anchor",href:"#图解说明","aria-label":'Permalink to "图解说明"'},"​")],-1),y=e(`

默认完整配置

javascript
{
   // 网格线
   grid: {
     show: true,
@@ -1018,4 +1018,4 @@ import{S as a}from"./chunks/StyleExplain.febf53f8.js";import{o as l,c as p,O as
       backgroundColor: '#1677FF'
     }
   }
-}
`,2),d=JSON.parse('{"title":"🎨 样式配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/styles.md","filePath":"guide/styles.md","lastUpdated":1692476949000}'),F={name:"guide/styles.md"},f=Object.assign(F,{setup(D){return(i,C)=>(l(),p("div",null,[c,t,r,o(a),y]))}});export{d as __pageData,f as default}; +}
`,2),d=JSON.parse('{"title":"🎨 样式配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/styles.md","filePath":"guide/styles.md","lastUpdated":1686770596000}'),F={name:"guide/styles.md"},f=Object.assign(F,{setup(D){return(i,C)=>(l(),p("div",null,[c,t,r,o(a),y]))}});export{d as __pageData,f as default}; diff --git a/assets/guide_styles.md.3c2df31b.lean.js b/assets/guide_styles.md.666131a3.lean.js similarity index 76% rename from assets/guide_styles.md.3c2df31b.lean.js rename to assets/guide_styles.md.666131a3.lean.js index 44e3dae2a..ca7119e67 100644 --- a/assets/guide_styles.md.3c2df31b.lean.js +++ b/assets/guide_styles.md.666131a3.lean.js @@ -1 +1 @@ -import{S as a}from"./chunks/StyleExplain.febf53f8.js";import{o as l,c as p,O as o,k as s,a as n,X as e}from"./chunks/framework.6909765d.js";const c=s("h1",{id:"🎨-样式配置",tabindex:"-1"},[n("🎨 样式配置 "),s("a",{class:"header-anchor",href:"#🎨-样式配置","aria-label":'Permalink to "🎨 样式配置"'},"​")],-1),t=s("p",null,[n("图表上看到的不管是点还是线,基本都可以自定义样式。可以通过图表方法"),s("code",null,"init(ds, options)"),n("或者图表实例方法"),s("code",null,"setStyles(styles)"),n("进行更改。")],-1),r=s("h2",{id:"图解说明",tabindex:"-1"},[n("图解说明 "),s("a",{class:"header-anchor",href:"#图解说明","aria-label":'Permalink to "图解说明"'},"​")],-1),y=e("",2),d=JSON.parse('{"title":"🎨 样式配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/styles.md","filePath":"guide/styles.md","lastUpdated":1692476949000}'),F={name:"guide/styles.md"},f=Object.assign(F,{setup(D){return(i,C)=>(l(),p("div",null,[c,t,r,o(a),y]))}});export{d as __pageData,f as default}; +import{S as a}from"./chunks/StyleExplain.cbaaf100.js";import{o as l,c as p,H as o,k as s,a as n,Q as e}from"./chunks/framework.385ac4c3.js";const c=s("h1",{id:"🎨-样式配置",tabindex:"-1"},[n("🎨 样式配置 "),s("a",{class:"header-anchor",href:"#🎨-样式配置","aria-label":'Permalink to "🎨 样式配置"'},"​")],-1),t=s("p",null,[n("图表上看到的不管是点还是线,基本都可以自定义样式。可以通过图表方法"),s("code",null,"init(ds, options)"),n("或者图表实例方法"),s("code",null,"setStyles(styles)"),n("进行更改。")],-1),r=s("h2",{id:"图解说明",tabindex:"-1"},[n("图解说明 "),s("a",{class:"header-anchor",href:"#图解说明","aria-label":'Permalink to "图解说明"'},"​")],-1),y=e("",2),d=JSON.parse('{"title":"🎨 样式配置","description":"","frontmatter":{},"headers":[],"relativePath":"guide/styles.md","filePath":"guide/styles.md","lastUpdated":1686770596000}'),F={name:"guide/styles.md"},f=Object.assign(F,{setup(D){return(i,C)=>(l(),p("div",null,[c,t,r,o(a),y]))}});export{d as __pageData,f as default}; diff --git a/assets/guide_v8-to-v9.md.5534cf2e.js b/assets/guide_v8-to-v9.md.95f9a2c6.js similarity index 98% rename from assets/guide_v8-to-v9.md.5534cf2e.js rename to assets/guide_v8-to-v9.md.95f9a2c6.js index 4a6c3b6e0..2a8811e44 100644 --- a/assets/guide_v8-to-v9.md.5534cf2e.js +++ b/assets/guide_v8-to-v9.md.95f9a2c6.js @@ -1 +1 @@ -import{_ as e,o,c,X as d}from"./chunks/framework.6909765d.js";const m=JSON.parse('{"title":"🛠️ 从 V8 到 V9","description":"","frontmatter":{},"headers":[],"relativePath":"guide/v8-to-v9.md","filePath":"guide/v8-to-v9.md","lastUpdated":1692476949000}'),a={name:"guide/v8-to-v9.md"},i=d('

🛠️ 从 V8 到 V9

本文档将帮助你从 klinecharts 8.x 版本升级到 klinecharts 9.x 版本,如果你是 7.x 或者更老的版本,请先参考之前的升级文档升级到 8.x。

引入调整

不再区分klinecharts/index.blankklinecharts/index.simple,请统一使用import { ... } from 'klinecharts'

设计调整

shapeannotationtag合并成overlay,详情请查阅覆盖物

样式配置调整

  • 所有线的样式选项dash,更改为dasheddashValue更改为dashedValue
  • candle.tooltip.labelscandle.tooltip.values,合并为candle.tooltip.custom
  • xAxis.height变更为xAxis.sizexAxis.tickText.paddingTop变更为xAxis.tickText.marginStartxAxis.tickText.paddingBottom变更为xAxis.tickText.marginEnd
  • yAxis.height变更为yAxis.sizeyAxis.tickText.paddingTop变更为yAxis.tickText.marginStartyAxis.tickText.paddingBottom变更为yAxis.tickText.marginEnd
  • technicalIndicator.bar变更为indicator.barstechnicalIndicator.line变更为indicator.linestechnicalIndicator.circle变更为indicator.circles
  • 删除shapeannotationtag,请用overlay代替。

API调整

图表API

  • extension.addTechnicalIndicatorTemplate(template)变更为registerIndicator(template)
  • 删除extension.addShapeTemplate(template),请用registerOverlay(template)代替。

实例API

  • getDom({ paneId, position })变更为getDom(paneId, position),参数position选项变更为rootmainyAxis
  • getWidth()getHeight()合并成一个方法getSize(paneId, position)
  • setStyleOptions(styles)变更为setStyles(styles)
  • getStyleOptions()变更为getStyles()
  • setOffsetRightSpace(space)变更为setOffsetRightDistance(distance)
  • createTechnicalIndicator(value, isStack, paneOptions)变更为createIndicator(value, isStack, paneOptions)
  • overrideTechnicalIndicator(override, paneId)变更为overrideIndicator(override, paneId)
  • getTechnicalIndicatorByPaneId(paneId, name)变更为getIndicatorByPaneId(paneId, name)
  • removeTechnicalIndicator(paneId, name)变更为removeIndicator(paneId, name)
  • subscribeAction(type, callback)unsubscribeAction(type, callback),参数type选项变更为onZoomonScrollonCrosshairChangeonVisibleRangeChangeonPaneDrag
  • convertToPixel(value, finder)convertFromPixel(coordinate, finder),参数finder.absoluteYAxis变更为finder.absolute
  • 删除createShape(value, paneId)createAnnotation(annotation, paneId)createTag(tag, paneId),请用createOverlay(value, paneId)代替。
  • 删除removeShape(id)removeAnnotation(paneId, points)removeTag(paneId, tagId),请用removeOverlay(id)代替。
  • 删除setShapeOptions(options),请用overrideOverlay(override)代替。
  • 删除createHtml(html, paneId)removeHtml(paneId, htmlId),请通过getDom(paneId, position)获取到对应的dom后操作。
  • 删除getTechnicalIndicatorByPaneId(paneId, name)

图形辅助API

  • 所有的API都迁移至klinecharts.utils

自定义技术指标调整

  • 属性plots变更为figures,子项方法colorisStrokeisDashed合并成styles
  • 方法regeneratePlots(params)变更为regeneratefigures(params)
  • 方法calcTechnicalIndicator(kLineDataList, options)变更为calc(kLineDataList, indicator)
  • 方法createTooltipDataSource({ dataSource, viewport, crosshair, technicalIndicator, xAxis,yAxis, defaultStyles })变更为createTooltipDataSource({ kLineDataList, indicator, visibleRange, bounding, crosshair, defaultStyles, xAxis, yAxis }),返回值由[{ title: 'xxx', value: 'xxx', color: 'xxx' }, ...]变更为{ name: 'xxx', calcParamsText: 'xxx', values: [{ title: 'xxx', value: 'xxx', color: 'xxx' }, ...] }
  • 方法render({ ctx, dataSource, viewport, styles,xAxis, yAxis })变更为draw({ ctx, kLineDataList, indicator, visibleRange, bounding, barSpace, defaultStyles, xAxis, yAxis })
  • 删除属性shouldCheckParamCount
',17),t=[i];function l(n,r,s,h,p,x){return o(),c("div",null,t)}const I=e(a,[["render",l]]);export{m as __pageData,I as default}; +import{_ as e,o,c,Q as d}from"./chunks/framework.385ac4c3.js";const m=JSON.parse('{"title":"🛠️ 从 V8 到 V9","description":"","frontmatter":{},"headers":[],"relativePath":"guide/v8-to-v9.md","filePath":"guide/v8-to-v9.md","lastUpdated":1679166638000}'),a={name:"guide/v8-to-v9.md"},i=d('

🛠️ 从 V8 到 V9

本文档将帮助你从 klinecharts 8.x 版本升级到 klinecharts 9.x 版本,如果你是 7.x 或者更老的版本,请先参考之前的升级文档升级到 8.x。

引入调整

不再区分klinecharts/index.blankklinecharts/index.simple,请统一使用import { ... } from 'klinecharts'

设计调整

shapeannotationtag合并成overlay,详情请查阅覆盖物

样式配置调整

  • 所有线的样式选项dash,更改为dasheddashValue更改为dashedValue
  • candle.tooltip.labelscandle.tooltip.values,合并为candle.tooltip.custom
  • xAxis.height变更为xAxis.sizexAxis.tickText.paddingTop变更为xAxis.tickText.marginStartxAxis.tickText.paddingBottom变更为xAxis.tickText.marginEnd
  • yAxis.height变更为yAxis.sizeyAxis.tickText.paddingTop变更为yAxis.tickText.marginStartyAxis.tickText.paddingBottom变更为yAxis.tickText.marginEnd
  • technicalIndicator.bar变更为indicator.barstechnicalIndicator.line变更为indicator.linestechnicalIndicator.circle变更为indicator.circles
  • 删除shapeannotationtag,请用overlay代替。

API调整

图表API

  • extension.addTechnicalIndicatorTemplate(template)变更为registerIndicator(template)
  • 删除extension.addShapeTemplate(template),请用registerOverlay(template)代替。

实例API

  • getDom({ paneId, position })变更为getDom(paneId, position),参数position选项变更为rootmainyAxis
  • getWidth()getHeight()合并成一个方法getSize(paneId, position)
  • setStyleOptions(styles)变更为setStyles(styles)
  • getStyleOptions()变更为getStyles()
  • setOffsetRightSpace(space)变更为setOffsetRightDistance(distance)
  • createTechnicalIndicator(value, isStack, paneOptions)变更为createIndicator(value, isStack, paneOptions)
  • overrideTechnicalIndicator(override, paneId)变更为overrideIndicator(override, paneId)
  • getTechnicalIndicatorByPaneId(paneId, name)变更为getIndicatorByPaneId(paneId, name)
  • removeTechnicalIndicator(paneId, name)变更为removeIndicator(paneId, name)
  • subscribeAction(type, callback)unsubscribeAction(type, callback),参数type选项变更为onZoomonScrollonCrosshairChangeonVisibleRangeChangeonPaneDrag
  • convertToPixel(value, finder)convertFromPixel(coordinate, finder),参数finder.absoluteYAxis变更为finder.absolute
  • 删除createShape(value, paneId)createAnnotation(annotation, paneId)createTag(tag, paneId),请用createOverlay(value, paneId)代替。
  • 删除removeShape(id)removeAnnotation(paneId, points)removeTag(paneId, tagId),请用removeOverlay(id)代替。
  • 删除setShapeOptions(options),请用overrideOverlay(override)代替。
  • 删除createHtml(html, paneId)removeHtml(paneId, htmlId),请通过getDom(paneId, position)获取到对应的dom后操作。
  • 删除getTechnicalIndicatorByPaneId(paneId, name)

图形辅助API

  • 所有的API都迁移至klinecharts.utils

自定义技术指标调整

  • 属性plots变更为figures,子项方法colorisStrokeisDashed合并成styles
  • 方法regeneratePlots(params)变更为regeneratefigures(params)
  • 方法calcTechnicalIndicator(kLineDataList, options)变更为calc(kLineDataList, indicator)
  • 方法createTooltipDataSource({ dataSource, viewport, crosshair, technicalIndicator, xAxis,yAxis, defaultStyles })变更为createTooltipDataSource({ kLineDataList, indicator, visibleRange, bounding, crosshair, defaultStyles, xAxis, yAxis }),返回值由[{ title: 'xxx', value: 'xxx', color: 'xxx' }, ...]变更为{ name: 'xxx', calcParamsText: 'xxx', values: [{ title: 'xxx', value: 'xxx', color: 'xxx' }, ...] }
  • 方法render({ ctx, dataSource, viewport, styles,xAxis, yAxis })变更为draw({ ctx, kLineDataList, indicator, visibleRange, bounding, barSpace, defaultStyles, xAxis, yAxis })
  • 删除属性shouldCheckParamCount
',17),t=[i];function l(n,r,s,h,p,x){return o(),c("div",null,t)}const I=e(a,[["render",l]]);export{m as __pageData,I as default}; diff --git a/assets/guide_v8-to-v9.md.5534cf2e.lean.js b/assets/guide_v8-to-v9.md.95f9a2c6.lean.js similarity index 69% rename from assets/guide_v8-to-v9.md.5534cf2e.lean.js rename to assets/guide_v8-to-v9.md.95f9a2c6.lean.js index 26b154389..9a8a04d02 100644 --- a/assets/guide_v8-to-v9.md.5534cf2e.lean.js +++ b/assets/guide_v8-to-v9.md.95f9a2c6.lean.js @@ -1 +1 @@ -import{_ as e,o,c,X as d}from"./chunks/framework.6909765d.js";const m=JSON.parse('{"title":"🛠️ 从 V8 到 V9","description":"","frontmatter":{},"headers":[],"relativePath":"guide/v8-to-v9.md","filePath":"guide/v8-to-v9.md","lastUpdated":1692476949000}'),a={name:"guide/v8-to-v9.md"},i=d("",17),t=[i];function l(n,r,s,h,p,x){return o(),c("div",null,t)}const I=e(a,[["render",l]]);export{m as __pageData,I as default}; +import{_ as e,o,c,Q as d}from"./chunks/framework.385ac4c3.js";const m=JSON.parse('{"title":"🛠️ 从 V8 到 V9","description":"","frontmatter":{},"headers":[],"relativePath":"guide/v8-to-v9.md","filePath":"guide/v8-to-v9.md","lastUpdated":1679166638000}'),a={name:"guide/v8-to-v9.md"},i=d("",17),t=[i];function l(n,r,s,h,p,x){return o(),c("div",null,t)}const I=e(a,[["render",l]]);export{m as __pageData,I as default}; diff --git a/assets/guide_what-is-klinechart.md.19278a28.js b/assets/guide_what-is-klinechart.md.2aa308a4.js similarity index 87% rename from assets/guide_what-is-klinechart.md.19278a28.js rename to assets/guide_what-is-klinechart.md.2aa308a4.js index 7766ec00a..67e6c68b6 100644 --- a/assets/guide_what-is-klinechart.md.19278a28.js +++ b/assets/guide_what-is-klinechart.md.2aa308a4.js @@ -1 +1 @@ -import{_ as t,o as a,c as e,X as r}from"./chunks/framework.6909765d.js";const u=JSON.parse('{"title":"📃 介绍","description":"","frontmatter":{},"headers":[],"relativePath":"guide/what-is-klinechart.md","filePath":"guide/what-is-klinechart.md","lastUpdated":1692476949000}'),i={name:"guide/what-is-klinechart.md"},n=r('

📃 介绍

什么是 KLineChart?

KLineChart,是一款可高度自定义的专业级轻量金融图表。

特性

  • 📦 开箱即用:简单快速集成,基本零成本上手。
  • 🚀 轻量流畅:零依赖,Gzip压缩下仅40k。
  • 💪 功能强大:内置多种指标和画线模型。
  • 🎨 高可扩展:丰富的样式配置和API,功能扩展随心所欲。
  • 📱 移动端:支持移动端,一个图表,搞定多端。
  • 🛡 Typescript开发:提供完整的类型定义文件。
',5),o=[n];function s(l,h,c,d,_,p){return a(),e("div",null,o)}const m=t(i,[["render",s]]);export{u as __pageData,m as default}; +import{_ as t,o as a,c as e,Q as r}from"./chunks/framework.385ac4c3.js";const u=JSON.parse('{"title":"📃 介绍","description":"","frontmatter":{},"headers":[],"relativePath":"guide/what-is-klinechart.md","filePath":"guide/what-is-klinechart.md","lastUpdated":1679066795000}'),i={name:"guide/what-is-klinechart.md"},n=r('

📃 介绍

什么是 KLineChart?

KLineChart,是一款可高度自定义的专业级轻量金融图表。

特性

  • 📦 开箱即用:简单快速集成,基本零成本上手。
  • 🚀 轻量流畅:零依赖,Gzip压缩下仅40k。
  • 💪 功能强大:内置多种指标和画线模型。
  • 🎨 高可扩展:丰富的样式配置和API,功能扩展随心所欲。
  • 📱 移动端:支持移动端,一个图表,搞定多端。
  • 🛡 Typescript开发:提供完整的类型定义文件。
',5),o=[n];function s(l,h,c,d,_,p){return a(),e("div",null,o)}const m=t(i,[["render",s]]);export{u as __pageData,m as default}; diff --git a/assets/guide_what-is-klinechart.md.19278a28.lean.js b/assets/guide_what-is-klinechart.md.2aa308a4.lean.js similarity index 57% rename from assets/guide_what-is-klinechart.md.19278a28.lean.js rename to assets/guide_what-is-klinechart.md.2aa308a4.lean.js index 8f7f804d1..09a6b227e 100644 --- a/assets/guide_what-is-klinechart.md.19278a28.lean.js +++ b/assets/guide_what-is-klinechart.md.2aa308a4.lean.js @@ -1 +1 @@ -import{_ as t,o as a,c as e,X as r}from"./chunks/framework.6909765d.js";const u=JSON.parse('{"title":"📃 介绍","description":"","frontmatter":{},"headers":[],"relativePath":"guide/what-is-klinechart.md","filePath":"guide/what-is-klinechart.md","lastUpdated":1692476949000}'),i={name:"guide/what-is-klinechart.md"},n=r("",5),o=[n];function s(l,h,c,d,_,p){return a(),e("div",null,o)}const m=t(i,[["render",s]]);export{u as __pageData,m as default}; +import{_ as t,o as a,c as e,Q as r}from"./chunks/framework.385ac4c3.js";const u=JSON.parse('{"title":"📃 介绍","description":"","frontmatter":{},"headers":[],"relativePath":"guide/what-is-klinechart.md","filePath":"guide/what-is-klinechart.md","lastUpdated":1679066795000}'),i={name:"guide/what-is-klinechart.md"},n=r("",5),o=[n];function s(l,h,c,d,_,p){return a(),e("div",null,o)}const m=t(i,[["render",s]]);export{u as __pageData,m as default}; diff --git a/assets/index.md.9172ee84.js b/assets/index.md.7104b694.js similarity index 91% rename from assets/index.md.9172ee84.js rename to assets/index.md.7104b694.js index 5264eee79..416218cd9 100644 --- a/assets/index.md.9172ee84.js +++ b/assets/index.md.7104b694.js @@ -1 +1 @@ -import{_ as e,o as t,c as i}from"./chunks/framework.6909765d.js";const p=JSON.parse('{"title":"可高度自定义的专业级轻量金融图表","description":"","frontmatter":{"title":"可高度自定义的专业级轻量金融图表","layout":"home","hero":{"name":"KLineChart","text":"可高度自定义的专业级轻量金融图表","tagline":"简单易用,轻量流畅,适用场景丰富的 Web 前端金融图表。","image":{"src":"/images/logo_hero.svg","alt":"KLineChart"},"actions":[{"theme":"brand","text":"快速开始","link":"/guide/getting-started"},{"theme":"alt","text":"在 Github 上查看","link":"https://github.com/liihuu/KLineChart"}]},"features":[{"icon":{"src":"/images/box.png"},"title":"开箱即用","details":"简单快速集成,零成本上手,显示出一个图表仅需3行代码,让所有注意力都能放在数据对接上。"},{"icon":{"src":"/images/rocket.png"},"title":"轻量流畅","details":"零依赖,Gzip压缩下仅40k左右,4G网络下加载耗时不足1毫秒。图表即使在成千上万蜡烛图的情况下也能保持流畅。"},{"icon":{"src":"/images/expand.png"},"title":"高可扩展","details":"提供丰富的配置和Api,样式修改、功能搭配随心所欲。提供技术指标和画线模型扩展,让图表拥有更多可能。"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1692476949000}'),a={name:"index.md"};function n(s,r,o,c,d,l){return t(),i("div")}const g=e(a,[["render",n]]);export{p as __pageData,g as default}; +import{_ as e,o as t,c as i}from"./chunks/framework.385ac4c3.js";const p=JSON.parse('{"title":"可高度自定义的专业级轻量金融图表","description":"","frontmatter":{"title":"可高度自定义的专业级轻量金融图表","layout":"home","hero":{"name":"KLineChart","text":"可高度自定义的专业级轻量金融图表","tagline":"简单易用,轻量流畅,适用场景丰富的 Web 前端金融图表。","image":{"src":"/images/logo_hero.svg","alt":"KLineChart"},"actions":[{"theme":"brand","text":"快速开始","link":"/guide/getting-started"},{"theme":"alt","text":"在 Github 上查看","link":"https://github.com/liihuu/KLineChart"}]},"features":[{"icon":{"src":"/images/box.png"},"title":"开箱即用","details":"简单快速集成,零成本上手,显示出一个图表仅需3行代码,让所有注意力都能放在数据对接上。"},{"icon":{"src":"/images/rocket.png"},"title":"轻量流畅","details":"零依赖,Gzip压缩下仅40k左右,4G网络下加载耗时不足1毫秒。图表即使在成千上万蜡烛图的情况下也能保持流畅。"},{"icon":{"src":"/images/expand.png"},"title":"高可扩展","details":"提供丰富的配置和Api,样式修改、功能搭配随心所欲。提供技术指标和画线模型扩展,让图表拥有更多可能。"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1682273674000}'),a={name:"index.md"};function n(s,r,o,c,d,l){return t(),i("div")}const g=e(a,[["render",n]]);export{p as __pageData,g as default}; diff --git a/assets/index.md.9172ee84.lean.js b/assets/index.md.7104b694.lean.js similarity index 91% rename from assets/index.md.9172ee84.lean.js rename to assets/index.md.7104b694.lean.js index 5264eee79..416218cd9 100644 --- a/assets/index.md.9172ee84.lean.js +++ b/assets/index.md.7104b694.lean.js @@ -1 +1 @@ -import{_ as e,o as t,c as i}from"./chunks/framework.6909765d.js";const p=JSON.parse('{"title":"可高度自定义的专业级轻量金融图表","description":"","frontmatter":{"title":"可高度自定义的专业级轻量金融图表","layout":"home","hero":{"name":"KLineChart","text":"可高度自定义的专业级轻量金融图表","tagline":"简单易用,轻量流畅,适用场景丰富的 Web 前端金融图表。","image":{"src":"/images/logo_hero.svg","alt":"KLineChart"},"actions":[{"theme":"brand","text":"快速开始","link":"/guide/getting-started"},{"theme":"alt","text":"在 Github 上查看","link":"https://github.com/liihuu/KLineChart"}]},"features":[{"icon":{"src":"/images/box.png"},"title":"开箱即用","details":"简单快速集成,零成本上手,显示出一个图表仅需3行代码,让所有注意力都能放在数据对接上。"},{"icon":{"src":"/images/rocket.png"},"title":"轻量流畅","details":"零依赖,Gzip压缩下仅40k左右,4G网络下加载耗时不足1毫秒。图表即使在成千上万蜡烛图的情况下也能保持流畅。"},{"icon":{"src":"/images/expand.png"},"title":"高可扩展","details":"提供丰富的配置和Api,样式修改、功能搭配随心所欲。提供技术指标和画线模型扩展,让图表拥有更多可能。"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1692476949000}'),a={name:"index.md"};function n(s,r,o,c,d,l){return t(),i("div")}const g=e(a,[["render",n]]);export{p as __pageData,g as default}; +import{_ as e,o as t,c as i}from"./chunks/framework.385ac4c3.js";const p=JSON.parse('{"title":"可高度自定义的专业级轻量金融图表","description":"","frontmatter":{"title":"可高度自定义的专业级轻量金融图表","layout":"home","hero":{"name":"KLineChart","text":"可高度自定义的专业级轻量金融图表","tagline":"简单易用,轻量流畅,适用场景丰富的 Web 前端金融图表。","image":{"src":"/images/logo_hero.svg","alt":"KLineChart"},"actions":[{"theme":"brand","text":"快速开始","link":"/guide/getting-started"},{"theme":"alt","text":"在 Github 上查看","link":"https://github.com/liihuu/KLineChart"}]},"features":[{"icon":{"src":"/images/box.png"},"title":"开箱即用","details":"简单快速集成,零成本上手,显示出一个图表仅需3行代码,让所有注意力都能放在数据对接上。"},{"icon":{"src":"/images/rocket.png"},"title":"轻量流畅","details":"零依赖,Gzip压缩下仅40k左右,4G网络下加载耗时不足1毫秒。图表即使在成千上万蜡烛图的情况下也能保持流畅。"},{"icon":{"src":"/images/expand.png"},"title":"高可扩展","details":"提供丰富的配置和Api,样式修改、功能搭配随心所欲。提供技术指标和画线模型扩展,让图表拥有更多可能。"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1682273674000}'),a={name:"index.md"};function n(s,r,o,c,d,l){return t(),i("div")}const g=e(a,[["render",n]]);export{p as __pageData,g as default}; diff --git a/assets/sponsor.md.03404be7.js b/assets/sponsor.md.03404be7.js deleted file mode 100644 index 601ee7036..000000000 --- a/assets/sponsor.md.03404be7.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,a as e}from"./chunks/wechat_pay_qr_code.ab7c3922.js";import{_ as t,o as r,c as l,X as i}from"./chunks/framework.6909765d.js";const x=JSON.parse('{"title":"❤️ 赞助","description":"","frontmatter":{"sidebar":false},"headers":[],"relativePath":"sponsor.md","filePath":"sponsor.md","lastUpdated":1692476949000}'),o={name:"sponsor.md"},s=i('

❤️ 赞助

如果你觉得插件还不错,希望你能在GitHub点一个 🌟。如果能够打赏一杯 ☕️,那就真的太感谢了。

支付宝

微信支付

PayPal

加密货币

',10),h=[s];function n(p,c,d,m,_,f){return r(),l("div",null,h)}const P=t(o,[["render",n]]);export{x as __pageData,P as default}; diff --git a/assets/sponsor.md.03404be7.lean.js b/assets/sponsor.md.03404be7.lean.js deleted file mode 100644 index 75748b62f..000000000 --- a/assets/sponsor.md.03404be7.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,a as e}from"./chunks/wechat_pay_qr_code.ab7c3922.js";import{_ as t,o as r,c as l,X as i}from"./chunks/framework.6909765d.js";const x=JSON.parse('{"title":"❤️ 赞助","description":"","frontmatter":{"sidebar":false},"headers":[],"relativePath":"sponsor.md","filePath":"sponsor.md","lastUpdated":1692476949000}'),o={name:"sponsor.md"},s=i("",10),h=[s];function n(p,c,d,m,_,f){return r(),l("div",null,h)}const P=t(o,[["render",n]]);export{x as __pageData,P as default}; diff --git a/assets/sponsor.md.d97f4f44.js b/assets/sponsor.md.d97f4f44.js new file mode 100644 index 000000000..1accaaea8 --- /dev/null +++ b/assets/sponsor.md.d97f4f44.js @@ -0,0 +1 @@ +import{_ as a,a as e}from"./chunks/wechat_pay_qr_code.ab7c3922.js";import{_ as t,o as r,c as l,Q as i}from"./chunks/framework.385ac4c3.js";const x=JSON.parse('{"title":"❤️ 赞助","description":"","frontmatter":{"sidebar":false},"headers":[],"relativePath":"sponsor.md","filePath":"sponsor.md","lastUpdated":1694626510000}'),o={name:"sponsor.md"},s=i('

❤️ 赞助

如果你觉得插件还不错,希望你能在 GitHub 点一个 🌟。如果能够打赏一杯 ☕️,那就真的太感谢了。

支付宝

微信支付

PayPal

加密货币

',10),h=[s];function n(p,c,d,m,_,f){return r(),l("div",null,h)}const P=t(o,[["render",n]]);export{x as __pageData,P as default}; diff --git a/assets/sponsor.md.d97f4f44.lean.js b/assets/sponsor.md.d97f4f44.lean.js new file mode 100644 index 000000000..2cedfc1e4 --- /dev/null +++ b/assets/sponsor.md.d97f4f44.lean.js @@ -0,0 +1 @@ +import{_ as a,a as e}from"./chunks/wechat_pay_qr_code.ab7c3922.js";import{_ as t,o as r,c as l,Q as i}from"./chunks/framework.385ac4c3.js";const x=JSON.parse('{"title":"❤️ 赞助","description":"","frontmatter":{"sidebar":false},"headers":[],"relativePath":"sponsor.md","filePath":"sponsor.md","lastUpdated":1694626510000}'),o={name:"sponsor.md"},s=i("",10),h=[s];function n(p,c,d,m,_,f){return r(),l("div",null,h)}const P=t(o,[["render",n]]);export{x as __pageData,P as default}; diff --git a/assets/style.1f38e7d7.css b/assets/style.1f38e7d7.css new file mode 100644 index 000000000..1b9c792be --- /dev/null +++ b/assets/style.1f38e7d7.css @@ -0,0 +1 @@ +@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-cyrillic.5f2c6c8c.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-cyrillic-ext.e75737ce.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-greek.d5a6d92a.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-greek-ext.ab0619bc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-latin.2ed14f66.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-latin-ext.0030eebd.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-vietnamese.14ce25a6.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-cyrillic.ea42a392.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-greek.8f4463c4.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-greek-ext.4fbe9427.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-latin.bd3b6f56.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-latin-ext.bd8920cc.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-vietnamese.6ce511fb.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chinese Quotes;src:local("PingFang SC Regular"),local("PingFang SC"),local("SimHei"),local("Source Han Sans SC");unicode-range:U+2018,U+2019,U+201C,U+201D}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: rgba(60, 60, 67);--vp-c-text-2: rgba(60, 60, 67, .78);--vp-c-text-3: rgba(60, 60, 67, .56)}.dark{--vp-c-text-1: rgba(255, 255, 245, .86);--vp-c-text-2: rgba(235, 235, 245, .6);--vp-c-text-3: rgba(235, 235, 245, .38)}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Chinese Quotes", "Inter var", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E")}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-green-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-green-1);--vp-code-line-diff-remove-color: var(--vp-c-red-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-red-1);--vp-code-line-warning-color: var(--vp-c-yellow-soft);--vp-code-line-error-color: var(--vp-c-red-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-brand-soft);--vp-custom-block-tip-code-bg: var(--vp-c-brand-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-gray-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-brand-1);--vp-badge-tip-bg: var(--vp-c-brand-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);direction:ltr;font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-brand-1)}.custom-block.tip a:hover{color:var(--vp-c-brand-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code-light{display:none}html:not(.dark) .vp-code-dark{display:none}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin-bottom:4px;text-align:center;letter-spacing:1px;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge[data-v-9613cc9f]{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.vp-doc h1>.VPBadge[data-v-9613cc9f]{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge[data-v-9613cc9f]{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge[data-v-9613cc9f]{vertical-align:middle}.vp-doc h4>.VPBadge[data-v-9613cc9f],.vp-doc h5>.VPBadge[data-v-9613cc9f],.vp-doc h6>.VPBadge[data-v-9613cc9f]{vertical-align:middle;line-height:18px}.VPBadge.info[data-v-9613cc9f]{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip[data-v-9613cc9f]{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning[data-v-9613cc9f]{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger[data-v-9613cc9f]{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-c79a1216]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-c79a1216],.VPBackdrop.fade-leave-to[data-v-c79a1216]{opacity:0}.VPBackdrop.fade-leave-active[data-v-c79a1216]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-c79a1216]{display:none}}.NotFound[data-v-dfcf8e56]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-dfcf8e56]{padding:96px 32px 168px}}.code[data-v-dfcf8e56]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-dfcf8e56]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-dfcf8e56]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-dfcf8e56]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-dfcf8e56]{padding-top:20px}.link[data-v-dfcf8e56]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-dfcf8e56]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-d0ee3533]{position:relative;z-index:1}.nested[data-v-d0ee3533]{padding-left:16px}.outline-link[data-v-d0ee3533]{display:block;line-height:28px;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s;font-weight:400}.outline-link[data-v-d0ee3533]:hover,.outline-link.active[data-v-d0ee3533]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-d0ee3533]{padding-left:13px}.VPDocAsideOutline[data-v-d330b1bb]{display:none}.VPDocAsideOutline.has-outline[data-v-d330b1bb]{display:block}.content[data-v-d330b1bb]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-d330b1bb]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-d330b1bb]{letter-spacing:.4px;line-height:28px;font-size:13px;font-weight:600}.VPDocAside[data-v-3f215769]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-3f215769]{flex-grow:1}.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-3f215769] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-7de715c0]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-7de715c0]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-ef5dee53]{margin-top:64px}.edit-info[data-v-ef5dee53]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-ef5dee53]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-ef5dee53]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-ef5dee53]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-ef5dee53]{margin-right:8px;width:14px;height:14px;fill:currentColor}.prev-next[data-v-ef5dee53]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-ef5dee53]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-ef5dee53]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-ef5dee53]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-ef5dee53]{margin-left:auto;text-align:right}.desc[data-v-ef5dee53]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-ef5dee53]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDocOutlineDropdown[data-v-eadfb36b]{margin-bottom:48px}.VPDocOutlineDropdown button[data-v-eadfb36b]{display:block;font-size:14px;font-weight:500;line-height:24px;border:1px solid var(--vp-c-border);padding:4px 12px;color:var(--vp-c-text-2);background-color:var(--vp-c-default-soft);border-radius:8px;transition:color .5s}.VPDocOutlineDropdown button[data-v-eadfb36b]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPDocOutlineDropdown button.open[data-v-eadfb36b]{color:var(--vp-c-text-1)}.icon[data-v-eadfb36b]{display:inline-block;vertical-align:middle;width:16px;height:16px;fill:currentColor}[data-v-eadfb36b] .outline-link{font-size:14px;font-weight:400}.open>.icon[data-v-eadfb36b]{transform:rotate(90deg)}.items[data-v-eadfb36b]{margin-top:12px;border-left:1px solid var(--vp-c-divider)}.VPDoc[data-v-6b87e69f]{padding:32px 24px 96px;width:100%}.VPDoc .VPDocOutlineDropdown[data-v-6b87e69f]{display:none}@media (min-width: 960px) and (max-width: 1279px){.VPDoc .VPDocOutlineDropdown[data-v-6b87e69f]{display:block}}@media (min-width: 768px){.VPDoc[data-v-6b87e69f]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-6b87e69f]{padding:32px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-6b87e69f]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-6b87e69f]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-6b87e69f]{display:flex;justify-content:center}.VPDoc .aside[data-v-6b87e69f]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-6b87e69f]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-6b87e69f]{max-width:1104px}}.container[data-v-6b87e69f]{margin:0 auto;width:100%}.aside[data-v-6b87e69f]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-6b87e69f]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-6b87e69f]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 32px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-6b87e69f]::-webkit-scrollbar{display:none}.aside-curtain[data-v-6b87e69f]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-6b87e69f]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 32px));padding-bottom:32px}.content[data-v-6b87e69f]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-6b87e69f]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-6b87e69f]{order:1;margin:0;min-width:640px}}.content-container[data-v-6b87e69f]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-6b87e69f]{max-width:688px}.external-link-icon-enabled[data-v-6b87e69f] :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.VPButton[data-v-c1c5efc1]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-c1c5efc1]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-c1c5efc1]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-c1c5efc1]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-c1c5efc1]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-c1c5efc1]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-c1c5efc1]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-c1c5efc1]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-c1c5efc1]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-c1c5efc1]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-c1c5efc1]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-c1c5efc1]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-c1c5efc1]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-8426fc1a]{display:none}.dark .VPImage.light[data-v-8426fc1a]{display:none}.VPHero[data-v-da5d1713]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-da5d1713]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-da5d1713]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-da5d1713]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-da5d1713]{flex-direction:row}}.main[data-v-da5d1713]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-da5d1713]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-da5d1713]{text-align:left}}@media (min-width: 960px){.main[data-v-da5d1713]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-da5d1713]{max-width:592px}}.name[data-v-da5d1713],.text[data-v-da5d1713]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-da5d1713],.VPHero.has-image .text[data-v-da5d1713]{margin:0 auto}.name[data-v-da5d1713]{color:var(--vp-home-hero-name-color)}.clip[data-v-da5d1713]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-da5d1713],.text[data-v-da5d1713]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-da5d1713],.text[data-v-da5d1713]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-da5d1713],.VPHero.has-image .text[data-v-da5d1713]{margin:0}}.tagline[data-v-da5d1713]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-da5d1713]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-da5d1713]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-da5d1713]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-da5d1713]{margin:0}}.actions[data-v-da5d1713]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-da5d1713]{justify-content:center}@media (min-width: 640px){.actions[data-v-da5d1713]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-da5d1713]{justify-content:flex-start}}.action[data-v-da5d1713]{flex-shrink:0;padding:6px}.image[data-v-da5d1713]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-da5d1713]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-da5d1713]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-da5d1713]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-da5d1713]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-da5d1713]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-da5d1713]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-da5d1713]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-da5d1713]{width:320px;height:320px}}[data-v-da5d1713] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-da5d1713] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-da5d1713] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-33204567]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-33204567]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-33204567]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-33204567]>.VPImage{margin-bottom:20px}.icon[data-v-33204567]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-33204567]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-33204567]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-33204567]{padding-top:8px}.link-text-value[data-v-33204567]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-33204567]{display:inline-block;margin-left:6px;width:14px;height:14px;fill:currentColor}.VPFeatures[data-v-a6181336]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-a6181336]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-a6181336]{padding:0 64px}}.container[data-v-a6181336]{margin:0 auto;max-width:1152px}.items[data-v-a6181336]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-a6181336]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336]{width:50%}.item.grid-3[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-a6181336]{width:25%}}.VPHome[data-v-d82743a8]{padding-bottom:96px}.VPHome[data-v-d82743a8] .VPHomeSponsors{margin-top:112px;margin-bottom:-128px}@media (min-width: 768px){.VPHome[data-v-d82743a8]{padding-bottom:128px}}.VPContent[data-v-669faec9]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-669faec9]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-669faec9]{margin:0}@media (min-width: 960px){.VPContent[data-v-669faec9]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-669faec9]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-669faec9]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-e03eb2e1]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-e03eb2e1]{display:none}@media (min-width: 768px){.VPFooter[data-v-e03eb2e1]{padding:32px}}.container[data-v-e03eb2e1]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-e03eb2e1],.copyright[data-v-e03eb2e1]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-1c15a60a]{padding:12px 20px 11px}.VPLocalNavOutlineDropdown button[data-v-1c15a60a]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-1c15a60a]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-1c15a60a]{color:var(--vp-c-text-1)}.icon[data-v-1c15a60a]{display:inline-block;vertical-align:middle;margin-left:2px;width:14px;height:14px;fill:currentColor}[data-v-1c15a60a] .outline-link{font-size:14px;padding:2px 0}.open>.icon[data-v-1c15a60a]{transform:rotate(90deg)}.items[data-v-1c15a60a]{position:absolute;top:64px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}.header[data-v-1c15a60a]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-1c15a60a]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-1c15a60a]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-1c15a60a]{transition:all .2s ease-out}.flyout-leave-active[data-v-1c15a60a]{transition:all .15s ease-in}.flyout-enter-from[data-v-1c15a60a],.flyout-leave-to[data-v-1c15a60a]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-79c8c1df]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--vp-c-gutter);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-79c8c1df]{position:fixed}.VPLocalNav.reached-top[data-v-79c8c1df]{border-top-color:transparent}@media (min-width: 960px){.VPLocalNav[data-v-79c8c1df]{display:none}}.menu[data-v-79c8c1df]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-79c8c1df]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-79c8c1df]{padding:0 32px}}.menu-icon[data-v-79c8c1df]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPOutlineDropdown[data-v-79c8c1df]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-79c8c1df]{padding:12px 32px 11px}}.VPSwitch[data-v-b1685198]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-b1685198]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-b1685198]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-b1685198]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-b1685198] svg{position:absolute;top:3px;left:3px;width:12px;height:12px;fill:var(--vp-c-text-2)}.dark .icon[data-v-b1685198] svg{fill:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-ce54a7d1]{opacity:1}.moon[data-v-ce54a7d1],.dark .sun[data-v-ce54a7d1]{opacity:0}.dark .moon[data-v-ce54a7d1]{opacity:1}.dark .VPSwitchAppearance[data-v-ce54a7d1] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-f6a63727]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-f6a63727]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-43f1e123]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-43f1e123]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-43f1e123]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-43f1e123]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-69e747b5]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-69e747b5]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-69e747b5]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-69e747b5]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-e7ea1737]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-e7ea1737] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-e7ea1737] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-e7ea1737] .group:last-child{padding-bottom:0}.VPMenu[data-v-e7ea1737] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-e7ea1737] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-e7ea1737] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-e7ea1737] .action{padding-left:24px}.VPFlyout[data-v-9c007e85]{position:relative}.VPFlyout[data-v-9c007e85]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-9c007e85]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-9c007e85]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-9c007e85]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-9c007e85]{color:var(--vp-c-brand-2)}.VPFlyout:hover .menu[data-v-9c007e85],.button[aria-expanded=true]+.menu[data-v-9c007e85]{opacity:1;visibility:visible;transform:translateY(0)}.button[aria-expanded=false]+.menu[data-v-9c007e85]{opacity:0;visibility:hidden;transform:translateY(0)}.button[data-v-9c007e85]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-9c007e85]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-9c007e85]{margin-right:0;width:16px;height:16px;fill:currentColor}.text-icon[data-v-9c007e85]{margin-left:4px;width:14px;height:14px;fill:currentColor}.icon[data-v-9c007e85]{width:20px;height:20px;fill:currentColor;transition:fill .25s}.menu[data-v-9c007e85]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-f80f8133]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-f80f8133]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-f80f8133]>svg{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-7bc22406]{display:flex;justify-content:center}.VPNavBarExtra[data-v-40855f84]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-40855f84]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-40855f84]{display:none}}.trans-title[data-v-40855f84]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-40855f84],.item.social-links[data-v-40855f84]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-40855f84]{min-width:176px}.appearance-action[data-v-40855f84]{margin-right:-2px}.social-links-list[data-v-40855f84]{margin:-4px -8px}.VPNavBarHamburger[data-v-e5dd9c1c]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-e5dd9c1c]{display:none}}.container[data-v-e5dd9c1c]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-e5dd9c1c]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .middle[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .bottom[data-v-e5dd9c1c]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-e5dd9c1c],.middle[data-v-e5dd9c1c],.bottom[data-v-e5dd9c1c]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(0)}.middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-42ef59de]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-42ef59de],.VPNavBarMenuLink[data-v-42ef59de]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-7f418b0f]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-7f418b0f]{display:flex}}/*! @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;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::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;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:rgba(0,0,0,.2);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:rgba(0,0,0,.2);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;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;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-0394ad82]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-0394ad82]{display:flex;align-items:center}}.title[data-v-86d1bed8]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-86d1bed8]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-86d1bed8]{border-bottom-color:var(--vp-c-divider)}}[data-v-86d1bed8] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-74abcbb9]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-74abcbb9]{display:flex;align-items:center}}.title[data-v-74abcbb9]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-a0fd61f4]{position:relative;border-bottom:1px solid transparent;padding:0 8px 0 24px;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap}@media (min-width: 768px){.VPNavBar[data-v-a0fd61f4]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar[data-v-a0fd61f4]{padding:0}.VPNavBar[data-v-a0fd61f4]:not(.has-sidebar):not(.top){border-bottom-color:var(--vp-c-gutter);background-color:var(--vp-nav-bg-color)}}.container[data-v-a0fd61f4]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-a0fd61f4],.container>.content[data-v-a0fd61f4]{pointer-events:none}.container[data-v-a0fd61f4] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-a0fd61f4]{max-width:100%}}.title[data-v-a0fd61f4]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-a0fd61f4]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-a0fd61f4]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-a0fd61f4]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-a0fd61f4]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-a0fd61f4]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-a0fd61f4]{display:flex;justify-content:flex-end;align-items:center;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.top) .content-body[data-v-a0fd61f4]{position:relative;background-color:var(--vp-nav-bg-color)}}@media (max-width: 767px){.content-body[data-v-a0fd61f4]{column-gap:.5rem}}.menu+.translations[data-v-a0fd61f4]:before,.menu+.appearance[data-v-a0fd61f4]:before,.menu+.social-links[data-v-a0fd61f4]:before,.translations+.appearance[data-v-a0fd61f4]:before,.appearance+.social-links[data-v-a0fd61f4]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-a0fd61f4]:before,.translations+.appearance[data-v-a0fd61f4]:before{margin-right:16px}.appearance+.social-links[data-v-a0fd61f4]:before{margin-left:16px}.social-links[data-v-a0fd61f4]{margin-right:-8px}@media (min-width: 960px){.VPNavBar.has-sidebar .curtain[data-v-a0fd61f4]{position:absolute;right:0;bottom:-31px;width:calc(100% - var(--vp-sidebar-width));height:32px}.VPNavBar.has-sidebar .curtain[data-v-a0fd61f4]:before{display:block;width:100%;height:32px;background:linear-gradient(var(--vp-c-bg),transparent 70%);content:""}}@media (min-width: 1440px){.VPNavBar.has-sidebar .curtain[data-v-a0fd61f4]{width:calc(100% - ((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width)))}}.VPNavScreenAppearance[data-v-add8f686]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-add8f686]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-05f27b2a]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-05f27b2a]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-19976ae1]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-19976ae1]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-8133b170]{display:block}.title[data-v-8133b170]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-1ecb84e7]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-1ecb84e7]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-1ecb84e7]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-1ecb84e7]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-1ecb84e7]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-1ecb84e7]{transform:rotate(45deg)}.button[data-v-1ecb84e7]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-1ecb84e7]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-1ecb84e7]{width:14px;height:14px;fill:var(--vp-c-text-2);transition:fill .5s,transform .25s}.group[data-v-1ecb84e7]:first-child{padding-top:0}.group+.group[data-v-1ecb84e7],.group+.item[data-v-1ecb84e7]{padding-top:4px}.VPNavScreenTranslations[data-v-d72aa483]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-d72aa483]{height:auto}.title[data-v-d72aa483]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-d72aa483]{width:16px;height:16px;fill:currentColor}.icon.lang[data-v-d72aa483]{margin-right:8px}.icon.chevron[data-v-d72aa483]{margin-left:4px}.list[data-v-d72aa483]{padding:4px 0 0 24px}.link[data-v-d72aa483]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-cc5739dd]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 1px);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .5s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-cc5739dd],.VPNavScreen.fade-leave-active[data-v-cc5739dd]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-cc5739dd],.VPNavScreen.fade-leave-active .container[data-v-cc5739dd]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-cc5739dd],.VPNavScreen.fade-leave-to[data-v-cc5739dd]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-cc5739dd],.VPNavScreen.fade-leave-to .container[data-v-cc5739dd]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-cc5739dd]{display:none}}.container[data-v-cc5739dd]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-cc5739dd],.menu+.appearance[data-v-cc5739dd],.translations+.appearance[data-v-cc5739dd]{margin-top:24px}.menu+.social-links[data-v-cc5739dd]{margin-top:16px}.appearance+.social-links[data-v-cc5739dd]{margin-top:16px}.VPNav[data-v-7e5bc4a5]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-7e5bc4a5]{position:fixed}}.VPSidebarItem.level-0[data-v-e31bd47b]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-e31bd47b]{padding-bottom:10px}.item[data-v-e31bd47b]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-e31bd47b]{cursor:pointer}.indicator[data-v-e31bd47b]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-e31bd47b],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-e31bd47b],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-e31bd47b],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-e31bd47b]{background-color:var(--vp-c-brand-1)}.link[data-v-e31bd47b]{display:flex;align-items:center;flex-grow:1}.text[data-v-e31bd47b]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-e31bd47b]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-e31bd47b],.VPSidebarItem.level-2 .text[data-v-e31bd47b],.VPSidebarItem.level-3 .text[data-v-e31bd47b],.VPSidebarItem.level-4 .text[data-v-e31bd47b],.VPSidebarItem.level-5 .text[data-v-e31bd47b]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-e31bd47b]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-1.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-2.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-3.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-4.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-5.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-e31bd47b]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-e31bd47b]{color:var(--vp-c-brand-1)}.caret[data-v-e31bd47b]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-e31bd47b]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-e31bd47b]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-e31bd47b]{width:18px;height:18px;fill:currentColor;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-e31bd47b]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-e31bd47b],.VPSidebarItem.level-2 .items[data-v-e31bd47b],.VPSidebarItem.level-3 .items[data-v-e31bd47b],.VPSidebarItem.level-4 .items[data-v-e31bd47b],.VPSidebarItem.level-5 .items[data-v-e31bd47b]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-e31bd47b]{display:none}.VPSidebar[data-v-b00e2fdd]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-b00e2fdd]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-b00e2fdd]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-b00e2fdd]{z-index:1;padding-top:var(--vp-nav-height);padding-bottom:128px;width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-b00e2fdd]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-b00e2fdd]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-b00e2fdd]{outline:0}.group+.group[data-v-b00e2fdd]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-b00e2fdd]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSkipLink[data-v-0f60ec36]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-0f60ec36]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-0f60ec36]{top:14px;left:16px}}.Layout[data-v-1919c326]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-96bd69d5]{border-top:1px solid var(--vp-c-gutter);padding:88px 24px 96px;background-color:var(--vp-c-bg)}.container[data-v-96bd69d5]{margin:0 auto;max-width:1152px}.love[data-v-96bd69d5]{margin:0 auto;width:28px;height:28px;color:var(--vp-c-text-3)}.icon[data-v-96bd69d5]{width:28px;height:28px;fill:currentColor}.message[data-v-96bd69d5]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-96bd69d5]{padding-top:32px}.action[data-v-96bd69d5]{padding-top:40px;text-align:center}.VPTeamPage[data-v-10b00018]{padding-bottom:96px}@media (min-width: 768px){.VPTeamPage[data-v-10b00018]{padding-bottom:128px}}.VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s],.VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-10b00018-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-10b00018-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s],.VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s]{margin-top:96px}}.VPTeamMembers[data-v-10b00018-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-10b00018-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-10b00018-s]{padding:0 64px}}.VPTeamPageTitle[data-v-bf2cbdac]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:80px 64px 48px}}.title[data-v-bf2cbdac]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-bf2cbdac]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-bf2cbdac]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-bf2cbdac]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-b1a88750]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-b1a88750]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-b1a88750]{padding:0 64px}}.title[data-v-b1a88750]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-b1a88750]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-b1a88750]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-b1a88750]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-b1a88750]{padding-top:40px}.VPTeamMembersItem[data-v-28528e42]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-28528e42]{padding:32px}.VPTeamMembersItem.small .data[data-v-28528e42]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-28528e42]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-28528e42]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-28528e42]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-28528e42]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-28528e42]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-28528e42]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-28528e42]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-28528e42]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-28528e42]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-28528e42]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-28528e42]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-28528e42]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-28528e42]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-28528e42]{text-align:center}.avatar[data-v-28528e42]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-28528e42]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-28528e42]{margin:0;font-weight:600}.affiliation[data-v-28528e42]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-28528e42]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-28528e42]:hover{color:var(--vp-c-brand-1)}.desc[data-v-28528e42]{margin:0 auto}.desc[data-v-28528e42] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-28528e42]{display:flex;justify-content:center;height:56px}.sp-link[data-v-28528e42]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-28528e42]:hover,.sp .sp-link.link[data-v-28528e42]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-28528e42]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPTeamMembers.small .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-6cb0dbc4]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-6cb0dbc4]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-6cb0dbc4]{max-width:876px}.VPTeamMembers.medium .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-6cb0dbc4]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-6cb0dbc4]{max-width:760px}.container[data-v-6cb0dbc4]{display:grid;gap:24px;margin:0 auto;max-width:1152px}.style-explain[data-v-214cdbcb]{display:flex;flex-direction:row;flex-wrap:wrap;margin-top:12px}.style-explain-item[data-v-214cdbcb]{display:flex;flex-direction:row;align-items:center;margin-right:30px;margin-top:2px}.style-explain-item strong[data-v-214cdbcb]{display:flex;flex-direction:row;align-items:center;justify-content:center;background-color:red;width:18px;height:18px;margin-right:4px;font-size:12px;border-radius:9px;color:#fff}.who-are-use-section[data-v-37acb926]{margin-top:100px}.who-are-use h2[data-v-37acb926]{font-size:24px;text-align:center;font-weight:600}.who-are-use .grid[data-v-37acb926]{display:flex;flex-wrap:wrap;gap:6px;margin-top:40px}.who-are-use .grid .item[data-v-37acb926]{display:flex;justify-content:center;align-items:center;width:100%;height:120px;background-color:var(--vp-c-bg-soft);border-radius:4px;transition:background-color .2s;cursor:pointer;color:inherit}.who-are-use .grid .item .image[data-v-37acb926]{height:34px}.who-are-use .grid .item[data-v-37acb926]:hover{background-color:var(--vp-c-bg-soft-down)}.dark .who-are-use .grid .item .image[data-v-37acb926]{filter:grayscale(1) invert(1)}.dark .who-are-use .grid .item[data-v-37acb926]:hover{background-color:var(--vp-c-neutral)}.dark .who-are-use .grid .item:hover .image[data-v-37acb926]{filter:grayscale(0) invert(0)}@media (min-width: 640px){.who-are-use .grid .item[data-v-37acb926]{width:calc((100% - 12px) / 3)}}@media (min-width: 960px){.who-are-use .grid .item[data-v-37acb926]{width:calc((100% - 18px)/4)}}.who-are-use .become-next[data-v-37acb926]{display:flex;flex-direction:row;justify-content:center;padding-top:50px}.who-are-use .become-next a[data-v-37acb926]{font-size:14px;line-height:36px;border-radius:18px;padding:0 20px;color:var(--vp-c-text-3);font-weight:400;border:solid 1px var(--vp-button-alt-border);cursor:pointer;transition:border-color .2s,color .2s}.who-are-use .become-next a[data-v-37acb926]:hover{border-color:var(--vp-c-brand);color:var(--vp-c-brand)}.NotFound[data-v-18af756e]{padding:96px 24px;text-align:center}.NotFound .logo[data-v-18af756e]{display:flex;flex-direction:row;align-items:center;justify-content:center}.NotFound .logo span[data-v-18af756e]{font-size:110px;font-weight:600}.NotFound .logo img[data-v-18af756e]{width:76px;margin:0 16px}@media (min-width: 768px){.NotFound[data-v-18af756e]{padding:128px 32px 168px}}.title[data-v-18af756e]{padding-top:30px;letter-spacing:2px;font-size:30px;font-weight:700}.tip[data-v-18af756e]{font-size:14px;color:var(--vp-c-text-2)}.action[data-v-18af756e]{padding-top:20px}.link[data-v-18af756e]{display:inline-block;border:1px solid var(--vp-c-brand);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:border-color .2s,color .2s}.link[data-v-18af756e]:hover{border-color:var(--vp-c-brand-light);color:var(--vp-c-brand-light)}:root{--vp-c-indigo-1: #1677FF;--vp-c-indigo-2: #3086ff;--vp-c-indigo-3: #4995ff;--vp-c-indigo-soft: rgb(22, 119, 255, .14);--vp-code-color: #476582;--vp-button-brand-border: var(--vp-c-indigo-2);--vp-button-brand-bg: var(--vp-c-indigo-1);--vp-button-brand-hover-border: var(--vp-c-indigo-2);--vp-button-brand-hover-bg: var(--vp-c-indigo-2);--vp-button-brand-active-border: var(--vp-c-indigo-2);--vp-button-brand-active-bg: var(--vp-button-brand-bg);--vp-custom-block-font-size: 13px;--vp-custom-block-code-font-size: 12px;--vp-code-line-height: 1.6;--vp-code-font-size: 1em;--vp-home-hero-name-color: transparent;--vp-home-hero-name-background: -webkit-linear-gradient( 145deg, #2DC08E 26%, #F92855 );--vp-home-hero-image-background-image: linear-gradient( -45deg, rgba(45, 192, 142, .3), rgba(249, 40, 85, .3) );--vp-home-hero-image-filter: blur(40px)}.dark{--vp-code-color: #c9def1}body{font-size:14px}@media (min-width: 640px){:root{--vp-home-hero-image-filter: blur(60px)}}@media (min-width: 960px){:root{--vp-home-hero-image-filter: blur(80px)}}.home-section{border-top:1px solid var(--vp-c-gutter);padding:60px 24px;text-align:center}.home-section .home-section-content{margin:0 auto;max-width:1152px}@media (min-width: 640px){.home-section{padding:60px 48px}}@media (min-width: 960px){.home-section{padding:60px 64px}}.VPLocalSearchBox[data-v-d2d5d924]{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex}.backdrop[data-v-d2d5d924]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vp-backdrop-bg-color);transition:opacity .5s}.shell[data-v-d2d5d924]{position:relative;padding:12px;margin:64px auto;display:flex;flex-direction:column;gap:16px;background:var(--vp-local-search-bg);width:min(100vw - 60px,900px);height:min-content;max-height:min(100vh - 128px,900px);border-radius:6px}@media (max-width: 767px){.shell[data-v-d2d5d924]{margin:0;width:100vw;height:100vh;max-height:none;border-radius:0}}.search-bar[data-v-d2d5d924]{border:1px solid var(--vp-c-divider);border-radius:4px;display:flex;align-items:center;padding:0 12px;cursor:text}@media (max-width: 767px){.search-bar[data-v-d2d5d924]{padding:0 8px}}.search-bar[data-v-d2d5d924]:focus-within{border-color:var(--vp-c-brand-1)}.search-icon[data-v-d2d5d924]{margin:8px}@media (max-width: 767px){.search-icon[data-v-d2d5d924]{display:none}}.search-input[data-v-d2d5d924]{padding:6px 12px;font-size:inherit;width:100%}@media (max-width: 767px){.search-input[data-v-d2d5d924]{padding:6px 4px}}.search-actions[data-v-d2d5d924]{display:flex;gap:4px}@media (any-pointer: coarse){.search-actions[data-v-d2d5d924]{gap:8px}}@media (min-width: 769px){.search-actions.before[data-v-d2d5d924]{display:none}}.search-actions button[data-v-d2d5d924]{padding:8px}.search-actions button[data-v-d2d5d924]:not([disabled]):hover,.toggle-layout-button.detailed-list[data-v-d2d5d924]{color:var(--vp-c-brand-1)}.search-actions button.clear-button[data-v-d2d5d924]:disabled{opacity:.37}.search-keyboard-shortcuts[data-v-d2d5d924]{font-size:.8rem;opacity:75%;display:flex;flex-wrap:wrap;gap:16px;line-height:14px}.search-keyboard-shortcuts span[data-v-d2d5d924]{display:flex;align-items:center;gap:4px}@media (max-width: 767px){.search-keyboard-shortcuts[data-v-d2d5d924]{display:none}}.search-keyboard-shortcuts kbd[data-v-d2d5d924]{background:rgba(128,128,128,.1);border-radius:4px;padding:3px 6px;min-width:24px;display:inline-block;text-align:center;vertical-align:middle;border:1px solid rgba(128,128,128,.15);box-shadow:0 2px 2px #0000001a}.results[data-v-d2d5d924]{display:flex;flex-direction:column;gap:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.result[data-v-d2d5d924]{display:flex;align-items:center;gap:8px;border-radius:4px;transition:none;line-height:1rem;border:solid 2px var(--vp-local-search-result-border);outline:none}.result>div[data-v-d2d5d924]{margin:12px;width:100%;overflow:hidden}@media (max-width: 767px){.result>div[data-v-d2d5d924]{margin:8px}}.titles[data-v-d2d5d924]{display:flex;flex-wrap:wrap;gap:4px;position:relative;z-index:1001;padding:2px 0}.title[data-v-d2d5d924]{display:flex;align-items:center;gap:4px}.title.main[data-v-d2d5d924]{font-weight:500}.title-icon[data-v-d2d5d924]{opacity:.5;font-weight:500;color:var(--vp-c-brand-1)}.title svg[data-v-d2d5d924]{opacity:.5}.result.selected[data-v-d2d5d924]{--vp-local-search-result-bg: var(--vp-local-search-result-selected-bg);border-color:var(--vp-local-search-result-selected-border)}.excerpt-wrapper[data-v-d2d5d924]{position:relative}.excerpt[data-v-d2d5d924]{opacity:75%;pointer-events:none;max-height:140px;overflow:hidden;position:relative;opacity:.5;margin-top:4px}.result.selected .excerpt[data-v-d2d5d924]{opacity:1}.excerpt[data-v-d2d5d924] *{font-size:.8rem!important;line-height:130%!important}.titles[data-v-d2d5d924] mark,.excerpt[data-v-d2d5d924] mark{background-color:var(--vp-local-search-highlight-bg);color:var(--vp-local-search-highlight-text);border-radius:2px;padding:0 2px}.excerpt[data-v-d2d5d924] .vp-code-group .tabs{display:none}.excerpt[data-v-d2d5d924] .vp-code-group div[class*=language-]{border-radius:8px!important}.excerpt-gradient-bottom[data-v-d2d5d924]{position:absolute;bottom:-1px;left:0;width:100%;height:8px;background:linear-gradient(transparent,var(--vp-local-search-result-bg));z-index:1000}.excerpt-gradient-top[data-v-d2d5d924]{position:absolute;top:-1px;left:0;width:100%;height:8px;background:linear-gradient(var(--vp-local-search-result-bg),transparent);z-index:1000}.result.selected .titles[data-v-d2d5d924],.result.selected .title-icon[data-v-d2d5d924]{color:var(--vp-c-brand-1)!important}.no-results[data-v-d2d5d924]{font-size:.9rem;text-align:center;padding:12px}svg[data-v-d2d5d924]{flex:none} diff --git a/assets/style.70f30ae9.css b/assets/style.70f30ae9.css deleted file mode 100644 index 66afebd12..000000000 --- a/assets/style.70f30ae9.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-cyrillic.5f2c6c8c.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-cyrillic-ext.e75737ce.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-greek.d5a6d92a.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-greek-ext.ab0619bc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-latin.2ed14f66.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-latin-ext.0030eebd.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/assets/inter-roman-vietnamese.14ce25a6.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-cyrillic.ea42a392.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-greek.8f4463c4.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-greek-ext.4fbe9427.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-latin.bd3b6f56.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-latin-ext.bd8920cc.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/assets/inter-italic-vietnamese.6ce511fb.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chinese Quotes;src:local("PingFang SC Regular"),local("PingFang SC"),local("SimHei"),local("Source Han Sans SC");unicode-range:U+2018,U+2019,U+201C,U+201D}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-gray: #8e8e93;--vp-c-text-light-1: rgba(60, 60, 67);--vp-c-text-light-2: rgba(60, 60, 67, .75);--vp-c-text-light-3: rgba(60, 60, 67, .33);--vp-c-text-dark-1: rgba(255, 255, 245, .86);--vp-c-text-dark-2: rgba(235, 235, 245, .6);--vp-c-text-dark-3: rgba(235, 235, 245, .38);--vp-c-sponsor: #db2777}:root{--vp-c-bg: #ffffff;--vp-c-bg-elv: #ffffff;--vp-c-bg-elv-up: #ffffff;--vp-c-bg-elv-down: #f6f6f7;--vp-c-bg-elv-mute: #f6f6f7;--vp-c-bg-soft: #f6f6f7;--vp-c-bg-soft-up: #f9f9fa;--vp-c-bg-soft-down: #e3e3e5;--vp-c-bg-soft-mute: #e3e3e5;--vp-c-bg-alt: #f6f6f7;--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white);--vp-c-text-1: var(--vp-c-text-light-1);--vp-c-text-2: var(--vp-c-text-light-2);--vp-c-text-3: var(--vp-c-text-light-3);--vp-c-text-inverse-1: var(--vp-c-text-dark-1);--vp-c-text-inverse-2: var(--vp-c-text-dark-2);--vp-c-text-inverse-3: var(--vp-c-text-dark-3);--vp-c-text-code: #476582;--vp-c-mute: #eeeef0;--vp-c-mute-light: #f3f3f9;--vp-c-mute-lighter: #f9f9fa;--vp-c-mute-dark: #e3e3e5;--vp-c-mute-darker: #d7d7d9;--vp-c-brand: #4565d8;--vp-c-brand-light: #708fff;--vp-c-brand-lighter: #a4b2ff;--vp-c-brand-lightest: #ecefff;--vp-c-brand-dark: #4565d8;--vp-c-brand-darker: #23459f;--vp-c-brand-darkest: #132f59;--vp-c-brand-dimm-1: rgba(112, 143, 255, .05);--vp-c-brand-dimm-2: rgba(112, 143, 255, .2);--vp-c-brand-dimm-3: rgba(112, 143, 255, .5);--vp-c-green: #10b981;--vp-c-green-light: #34d399;--vp-c-green-lighter: #6ee7b7;--vp-c-green-dark: #059669;--vp-c-green-darker: #047857;--vp-c-green-dimm-1: rgba(16, 185, 129, .05);--vp-c-green-dimm-2: rgba(16, 185, 129, .2);--vp-c-green-dimm-3: rgba(16, 185, 129, .5);--vp-c-yellow: #d97706;--vp-c-yellow-light: #f59e0b;--vp-c-yellow-lighter: #fbbf24;--vp-c-yellow-lightest: #fcd34d;--vp-c-yellow-dark: #b45309;--vp-c-yellow-darker: #92400e;--vp-c-yellow-darkest: #6c3d08;--vp-c-yellow-dimm-1: rgba(234, 179, 8, .05);--vp-c-yellow-dimm-2: rgba(234, 179, 8, .2);--vp-c-yellow-dimm-3: rgba(234, 179, 8, .5);--vp-c-red: #f43f5e;--vp-c-red-light: #fb7185;--vp-c-red-lighter: #fda4af;--vp-c-red-lightest: #fdd6e0;--vp-c-red-dark: #e11d48;--vp-c-red-darker: #be123c;--vp-c-red-darkest: #9f1239;--vp-c-red-dimm-1: rgba(244, 63, 94, .05);--vp-c-red-dimm-2: rgba(244, 63, 94, .2);--vp-c-red-dimm-3: rgba(244, 63, 94, .5)}.dark{--vp-c-bg: #1e1e20;--vp-c-bg-elv: #252529;--vp-c-bg-elv-up: #323238;--vp-c-bg-elv-down: #1e1e20;--vp-c-bg-elv-mute: #323238;--vp-c-bg-soft: #252529;--vp-c-bg-soft-up: #323238;--vp-c-bg-soft-down: #1e1e20;--vp-c-bg-soft-mute: #323238;--vp-c-bg-alt: #161618;--vp-c-border: rgba(82, 82, 89, .68);--vp-c-divider: rgba(82, 82, 89, .32);--vp-c-gutter: #000000;--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black);--vp-c-text-1: var(--vp-c-text-dark-1);--vp-c-text-2: var(--vp-c-text-dark-2);--vp-c-text-3: var(--vp-c-text-dark-3);--vp-c-text-inverse-1: var(--vp-c-text-light-1);--vp-c-text-inverse-2: var(--vp-c-text-light-2);--vp-c-text-inverse-3: var(--vp-c-text-light-3);--vp-c-text-code: #c9def1;--vp-c-mute: #323238;--vp-c-mute-light: #3a3a3c;--vp-c-mute-lighter: #505053;--vp-c-mute-dark: #222226;--vp-c-mute-darker: #505053;--vp-c-brand: #708fff;--vp-c-brand-light: #a4b2ff;--vp-c-brand-lighter: #a4c8ff;--vp-c-brand-lightest: #ecefff;--vp-c-brand-dark: #4565d8;--vp-c-brand-darker: #23459f;--vp-c-brand-darkest: #132f59;--vp-c-brand-dimm-1: rgba(112, 143, 255, .05);--vp-c-brand-dimm-2: rgba(112, 143, 255, .2);--vp-c-brand-dimm-3: rgba(112, 143, 255, .5);--vp-c-green: #10b981;--vp-c-green-light: #34d399;--vp-c-green-lighter: #6ee7b7;--vp-c-green-lightest: #a7f3d0;--vp-c-green-dark: #059669;--vp-c-green-darker: #047857;--vp-c-green-darkest: #065f46;--vp-c-green-dimm-1: rgba(16, 185, 129, .05);--vp-c-green-dimm-2: rgba(16, 185, 129, .2);--vp-c-green-dimm-3: rgba(16, 185, 129, .5);--vp-c-yellow: #d1a336;--vp-c-yellow-light: #f8e3a1;--vp-c-yellow-lighter: #fff0c0;--vp-c-yellow-lightest: #fff7dc;--vp-c-yellow-dark: #b45309;--vp-c-yellow-darker: #92400e;--vp-c-yellow-darkest: #6c3d08;--vp-c-yellow-dimm-1: rgba(234, 179, 8, .05);--vp-c-yellow-dimm-2: rgba(234, 179, 8, .2);--vp-c-yellow-dimm-3: rgba(234, 179, 8, .5);--vp-c-red: #f43f5e;--vp-c-red-light: #fb7185;--vp-c-red-lighter: #fda4af;--vp-c-red-lightest: #fdd6e0;--vp-c-red-dark: #e11d48;--vp-c-red-darker: #be123c;--vp-c-red-darkest: #9f1239;--vp-c-red-dimm-1: rgba(244, 63, 94, .05);--vp-c-red-dimm-2: rgba(244, 63, 94, .2);--vp-c-red-dimm-3: rgba(244, 63, 94, .5)}:root{--vp-font-family-base: "Chinese Quotes", "Inter var", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-local-nav: 10;--vp-z-index-nav: 20;--vp-z-index-layout-top: 30;--vp-z-index-backdrop: 40;--vp-z-index-sidebar: 50;--vp-z-index-footer: 60}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E")}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-c-code-dimm: var(--vp-c-text-dark-3);--vp-code-block-color: var(--vp-c-text-dark-1);--vp-code-block-bg: #161618;--vp-code-block-bg-light: #1e1e20;--vp-code-block-divider-color: #000000;--vp-code-line-highlight-color: rgba(0, 0, 0, .5);--vp-code-line-number-color: var(--vp-c-code-dimm);--vp-code-line-diff-add-color: var(--vp-c-green-dimm-2);--vp-code-line-diff-add-symbol-color: var(--vp-c-green);--vp-code-line-diff-remove-color: var(--vp-c-red-dimm-2);--vp-code-line-diff-remove-symbol-color: var(--vp-c-red);--vp-code-line-warning-color: var(--vp-c-yellow-dimm-2);--vp-code-line-error-color: var(--vp-c-red-dimm-2);--vp-code-copy-code-border-color: transparent;--vp-code-copy-code-bg: var(--vp-code-block-bg-light);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-code-block-bg-light);--vp-code-copy-code-active-text: var(--vp-c-text-dark-2);--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-dark-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-dark-1);--vp-code-tab-active-text-color: var(--vp-c-text-dark-1);--vp-code-tab-active-bar-color: var(--vp-c-brand)}.dark{--vp-code-block-bg: #161618}:root:not(.dark) .vp-adaptive-theme{--vp-c-code-dimm: var(--vp-c-text-2);--vp-code-block-color: var(--vp-c-text-1);--vp-code-block-bg: #f8f8f8;--vp-code-block-divider-color: var(--vp-c-divider);--vp-code-line-highlight-color: #ececec;--vp-code-line-number-color: var(--vp-c-code-dimm);--vp-code-copy-code-bg: #e2e2e2;--vp-code-copy-code-hover-bg: #dcdcdc;--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-tab-divider: var(--vp-c-divider);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1)}:root{--vp-button-brand-border: var(--vp-c-brand);--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-dark);--vp-button-brand-hover-border: var(--vp-c-brand-light);--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-darker);--vp-button-brand-active-border: var(--vp-c-brand-light);--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-darkest);--vp-button-alt-border: var(--vp-c-border);--vp-button-alt-text: var(--vp-c-neutral);--vp-button-alt-bg: var(--vp-c-mute);--vp-button-alt-hover-border: var(--vp-c-border);--vp-button-alt-hover-text: var(--vp-c-neutral);--vp-button-alt-hover-bg: var(--vp-c-mute-dark);--vp-button-alt-active-border: var(--vp-c-border);--vp-button-alt-active-text: var(--vp-c-neutral);--vp-button-alt-active-bg: var(--vp-c-mute-darker);--vp-button-sponsor-border: var(--vp-c-gray-light-3);--vp-button-sponsor-text: var(--vp-c-text-light-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}.dark{--vp-button-sponsor-border: var(--vp-c-gray-dark-1);--vp-button-sponsor-text: var(--vp-c-text-dark-2)}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: var(--vp-c-border);--vp-custom-block-info-text: var(--vp-c-text-2);--vp-custom-block-info-bg: var(--vp-c-bg-soft);--vp-custom-block-info-code-bg: var(--vp-c-mute);--vp-custom-block-tip-border: var(--vp-c-brand);--vp-custom-block-tip-text: var(--vp-c-brand);--vp-custom-block-tip-bg: var(--vp-c-bg-soft);--vp-custom-block-tip-code-bg: var(--vp-c-mute);--vp-custom-block-warning-border: var(--vp-c-yellow);--vp-custom-block-warning-text: var(--vp-c-yellow);--vp-custom-block-warning-bg: var(--vp-c-bg-soft);--vp-custom-block-warning-code-bg: var(--vp-c-mute);--vp-custom-block-danger-border: var(--vp-c-red);--vp-custom-block-danger-text: var(--vp-c-red);--vp-custom-block-danger-bg: var(--vp-c-bg-soft);--vp-custom-block-danger-code-bg: var(--vp-c-mute);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-details-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-hover-border-color: var(--vp-c-gray);--vp-input-switch-bg-color: var(--vp-c-mute)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: var(--vp-c-border);--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-mute);--vp-badge-tip-border: var(--vp-c-brand);--vp-badge-tip-text: var(--vp-c-brand);--vp-badge-tip-bg: var(--vp-c-brand-dimm-1);--vp-badge-warning-border: var(--vp-c-yellow);--vp-badge-warning-text: var(--vp-c-yellow);--vp-badge-warning-bg: var(--vp-c-yellow-dimm-1);--vp-badge-danger-border: var(--vp-c-red);--vp-badge-danger-text: var(--vp-c-red);--vp-badge-danger-bg: var(--vp-c-red-dimm-1)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand);--vp-local-search-highlight-bg: var(--vp-c-green-lighter);--vp-local-search-highlight-text: var(--vp-c-black)}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);direction:ltr;font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline dotted;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.dark .vp-code-light{display:none}html:not(.dark) .vp-code-dark{display:none}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:1px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand)}.vp-doc a:hover{text-decoration:underline dotted;text-underline-offset:2px}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block a{color:inherit;font-weight:600}.vp-doc .custom-block code{font-size:var(--vp-custom-block-code-font-size);font-weight:700;color:inherit}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;color:var(--vp-c-text-code);background-color:var(--vp-c-mute);transition:color .5s,background-color .5s}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc a>code{color:var(--vp-c-brand)}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;left:-65px;display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;width:64px;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:"Copied"}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-c-code-dimm);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin-bottom:4px;text-align:center;letter-spacing:1px;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-bg-soft-down)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge[data-v-02919808]{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:600;transform:translateY(-2px)}.vp-doc h1>.VPBadge[data-v-02919808]{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge[data-v-02919808]{margin-top:3px;line-height:20px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge[data-v-02919808]{line-height:20px;vertical-align:middle}.vp-doc h4>.VPBadge[data-v-02919808],.vp-doc h5>.VPBadge[data-v-02919808],.vp-doc h6>.VPBadge[data-v-02919808]{vertical-align:middle;line-height:18px}.VPBadge.info[data-v-02919808]{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip[data-v-02919808]{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning[data-v-02919808]{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger[data-v-02919808]{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-c79a1216]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-c79a1216],.VPBackdrop.fade-leave-to[data-v-c79a1216]{opacity:0}.VPBackdrop.fade-leave-active[data-v-c79a1216]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-c79a1216]{display:none}}.NotFound[data-v-a172abb3]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-a172abb3]{padding:96px 32px 168px}}.code[data-v-a172abb3]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-a172abb3]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-a172abb3]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-a172abb3]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-a172abb3]{padding-top:20px}.link[data-v-a172abb3]{display:inline-block;border:1px solid var(--vp-c-brand);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:border-color .25s,color .25s}.link[data-v-a172abb3]:hover{border-color:var(--vp-c-brand-dark);color:var(--vp-c-brand-dark)}.root[data-v-d0ee3533]{position:relative;z-index:1}.nested[data-v-d0ee3533]{padding-left:16px}.outline-link[data-v-d0ee3533]{display:block;line-height:28px;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s;font-weight:400}.outline-link[data-v-d0ee3533]:hover,.outline-link.active[data-v-d0ee3533]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-d0ee3533]{padding-left:13px}.VPDocAsideOutline[data-v-ff0f39c8]{display:none}.VPDocAsideOutline.has-outline[data-v-ff0f39c8]{display:block}.content[data-v-ff0f39c8]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-ff0f39c8]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:1px;height:18px;background-color:var(--vp-c-brand);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-ff0f39c8]{letter-spacing:.4px;line-height:28px;font-size:13px;font-weight:600}.VPDocAside[data-v-3f215769]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-3f215769]{flex-grow:1}.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-3f215769] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-149a99df]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-149a99df]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-37656e44]{margin-top:64px}.edit-info[data-v-37656e44]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-37656e44]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-37656e44]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.edit-link-button[data-v-37656e44]:hover{color:var(--vp-c-brand-dark)}.edit-link-icon[data-v-37656e44]{margin-right:8px;width:14px;height:14px;fill:currentColor}.prev-next[data-v-37656e44]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-37656e44]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-37656e44]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-37656e44]:hover{border-color:var(--vp-c-brand)}.pager-link.next[data-v-37656e44]{margin-left:auto;text-align:right}.desc[data-v-37656e44]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-37656e44]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.VPDocOutlineDropdown[data-v-0c1fc463]{margin-bottom:48px}.VPDocOutlineDropdown button[data-v-0c1fc463]{display:block;font-size:14px;font-weight:500;line-height:24px;border:1px solid var(--vp-c-border);padding:4px 12px;color:var(--vp-c-text-2);background-color:var(--vp-c-mute);border-radius:8px;transition:color .5s}.VPDocOutlineDropdown button[data-v-0c1fc463]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPDocOutlineDropdown button.open[data-v-0c1fc463]{color:var(--vp-c-text-1)}.icon[data-v-0c1fc463]{display:inline-block;vertical-align:middle;width:16px;height:16px;fill:currentColor}[data-v-0c1fc463] .outline-link{font-size:14px;font-weight:400}.open>.icon[data-v-0c1fc463]{transform:rotate(90deg)}.items[data-v-0c1fc463]{margin-top:12px;border-left:1px solid var(--vp-c-divider)}.VPDoc[data-v-6b87e69f]{padding:32px 24px 96px;width:100%}.VPDoc .VPDocOutlineDropdown[data-v-6b87e69f]{display:none}@media (min-width: 960px) and (max-width: 1279px){.VPDoc .VPDocOutlineDropdown[data-v-6b87e69f]{display:block}}@media (min-width: 768px){.VPDoc[data-v-6b87e69f]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-6b87e69f]{padding:32px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-6b87e69f]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-6b87e69f]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-6b87e69f]{display:flex;justify-content:center}.VPDoc .aside[data-v-6b87e69f]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-6b87e69f]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-6b87e69f]{max-width:1104px}}.container[data-v-6b87e69f]{margin:0 auto;width:100%}.aside[data-v-6b87e69f]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-6b87e69f]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-6b87e69f]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 32px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-6b87e69f]::-webkit-scrollbar{display:none}.aside-curtain[data-v-6b87e69f]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-6b87e69f]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 32px));padding-bottom:32px}.content[data-v-6b87e69f]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-6b87e69f]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-6b87e69f]{order:1;margin:0;min-width:640px}}.content-container[data-v-6b87e69f]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-6b87e69f]{max-width:688px}.external-link-icon-enabled[data-v-6b87e69f] :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.VPButton[data-v-567ba664]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-567ba664]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-567ba664]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-567ba664]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-567ba664]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-567ba664]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-567ba664]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-567ba664]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-567ba664]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-567ba664]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-567ba664]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-567ba664]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-567ba664]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-8426fc1a]{display:none}.dark .VPImage.light[data-v-8426fc1a]{display:none}.VPHero[data-v-da5d1713]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-da5d1713]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-da5d1713]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-da5d1713]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-da5d1713]{flex-direction:row}}.main[data-v-da5d1713]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-da5d1713]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-da5d1713]{text-align:left}}@media (min-width: 960px){.main[data-v-da5d1713]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-da5d1713]{max-width:592px}}.name[data-v-da5d1713],.text[data-v-da5d1713]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-da5d1713],.VPHero.has-image .text[data-v-da5d1713]{margin:0 auto}.name[data-v-da5d1713]{color:var(--vp-home-hero-name-color)}.clip[data-v-da5d1713]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-da5d1713],.text[data-v-da5d1713]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-da5d1713],.text[data-v-da5d1713]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-da5d1713],.VPHero.has-image .text[data-v-da5d1713]{margin:0}}.tagline[data-v-da5d1713]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-da5d1713]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-da5d1713]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-da5d1713]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-da5d1713]{margin:0}}.actions[data-v-da5d1713]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-da5d1713]{justify-content:center}@media (min-width: 640px){.actions[data-v-da5d1713]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-da5d1713]{justify-content:flex-start}}.action[data-v-da5d1713]{flex-shrink:0;padding:6px}.image[data-v-da5d1713]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-da5d1713]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-da5d1713]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-da5d1713]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-da5d1713]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-da5d1713]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-da5d1713]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-da5d1713]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-da5d1713]{width:320px;height:320px}}[data-v-da5d1713] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-da5d1713] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-da5d1713] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-33086751]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-33086751]:hover{border-color:var(--vp-c-brand);background-color:var(--vp-c-bg-soft-up)}.box[data-v-33086751]{display:flex;flex-direction:column;padding:24px;height:100%}.VPFeature[data-v-33086751] .VPImage{margin-bottom:20px}.icon[data-v-33086751]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-bg-soft-down);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-33086751]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-33086751]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-33086751]{padding-top:8px}.link-text-value[data-v-33086751]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand)}.link-text-icon[data-v-33086751]{display:inline-block;margin-left:6px;width:14px;height:14px;fill:currentColor}.VPFeatures[data-v-39646fad]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-39646fad]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-39646fad]{padding:0 64px}}.container[data-v-39646fad]{margin:0 auto;max-width:1152px}.items[data-v-39646fad]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-39646fad]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-39646fad],.item.grid-4[data-v-39646fad],.item.grid-6[data-v-39646fad]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-39646fad],.item.grid-4[data-v-39646fad]{width:50%}.item.grid-3[data-v-39646fad],.item.grid-6[data-v-39646fad]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-39646fad]{width:25%}}.VPHome[data-v-d82743a8]{padding-bottom:96px}.VPHome[data-v-d82743a8] .VPHomeSponsors{margin-top:112px;margin-bottom:-128px}@media (min-width: 768px){.VPHome[data-v-d82743a8]{padding-bottom:128px}}.VPContent[data-v-669faec9]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-669faec9]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-669faec9]{margin:0}@media (min-width: 960px){.VPContent[data-v-669faec9]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-669faec9]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-669faec9]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-e03eb2e1]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-e03eb2e1]{display:none}@media (min-width: 768px){.VPFooter[data-v-e03eb2e1]{padding:32px}}.container[data-v-e03eb2e1]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-e03eb2e1],.copyright[data-v-e03eb2e1]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-18201f51]{padding:12px 20px 11px}.VPLocalNavOutlineDropdown button[data-v-18201f51]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-18201f51]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-18201f51]{color:var(--vp-c-text-1)}.icon[data-v-18201f51]{display:inline-block;vertical-align:middle;margin-left:2px;width:14px;height:14px;fill:currentColor}[data-v-18201f51] .outline-link{font-size:14px;padding:2px 0}.open>.icon[data-v-18201f51]{transform:rotate(90deg)}.items[data-v-18201f51]{position:absolute;top:64px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}.header[data-v-18201f51]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-18201f51]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand)}.outline[data-v-18201f51]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-18201f51]{transition:all .2s ease-out}.flyout-leave-active[data-v-18201f51]{transition:all .15s ease-in}.flyout-enter-from[data-v-18201f51],.flyout-leave-to[data-v-18201f51]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-5cfd5582]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--vp-c-gutter);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-5cfd5582]{position:fixed}.VPLocalNav.reached-top[data-v-5cfd5582]{border-top-color:transparent}@media (min-width: 960px){.VPLocalNav[data-v-5cfd5582]{display:none}}.menu[data-v-5cfd5582]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-5cfd5582]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-5cfd5582]{padding:0 32px}}.menu-icon[data-v-5cfd5582]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPOutlineDropdown[data-v-5cfd5582]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-5cfd5582]{padding:12px 32px 11px}}.VPSwitch[data-v-f3c41672]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s}.VPSwitch[data-v-f3c41672]:hover{border-color:var(--vp-input-hover-border-color)}.check[data-v-f3c41672]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s}.icon[data-v-f3c41672]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-f3c41672] svg{position:absolute;top:3px;left:3px;width:12px;height:12px;fill:var(--vp-c-text-2)}.dark .icon[data-v-f3c41672] svg{fill:var(--vp-c-text-1);transition:opacity .25s}.sun[data-v-82b282f1]{opacity:1}.moon[data-v-82b282f1],.dark .sun[data-v-82b282f1]{opacity:0}.dark .moon[data-v-82b282f1]{opacity:1}.dark .VPSwitchAppearance[data-v-82b282f1] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-f6a63727]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-f6a63727]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-2f2cfafc]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-2f2cfafc]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-2f2cfafc]:hover{color:var(--vp-c-brand);background-color:var(--vp-c-bg-elv-mute)}.link.active[data-v-2f2cfafc]{color:var(--vp-c-brand)}.VPMenuGroup[data-v-69e747b5]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-69e747b5]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-69e747b5]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-69e747b5]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-e7ea1737]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-e7ea1737] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-e7ea1737] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-e7ea1737] .group:last-child{padding-bottom:0}.VPMenu[data-v-e7ea1737] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-e7ea1737] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-e7ea1737] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-e7ea1737] .action{padding-left:24px}.VPFlyout[data-v-a7b5672a]{position:relative}.VPFlyout[data-v-a7b5672a]:hover{color:var(--vp-c-brand);transition:color .25s}.VPFlyout:hover .text[data-v-a7b5672a]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-a7b5672a]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-a7b5672a]{color:var(--vp-c-brand)}.VPFlyout.active:hover .text[data-v-a7b5672a]{color:var(--vp-c-brand-dark)}.VPFlyout:hover .menu[data-v-a7b5672a],.button[aria-expanded=true]+.menu[data-v-a7b5672a]{opacity:1;visibility:visible;transform:translateY(0)}.button[aria-expanded=false]+.menu[data-v-a7b5672a]{opacity:0;visibility:hidden;transform:translateY(0)}.button[data-v-a7b5672a]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-a7b5672a]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-a7b5672a]{margin-right:0;width:16px;height:16px;fill:currentColor}.text-icon[data-v-a7b5672a]{margin-left:4px;width:14px;height:14px;fill:currentColor}.icon[data-v-a7b5672a]{width:20px;height:20px;fill:currentColor;transition:fill .25s}.menu[data-v-a7b5672a]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-f80f8133]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-f80f8133]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-f80f8133]>svg{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-7bc22406]{display:flex;justify-content:center}.VPNavBarExtra[data-v-40855f84]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-40855f84]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-40855f84]{display:none}}.trans-title[data-v-40855f84]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-40855f84],.item.social-links[data-v-40855f84]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-40855f84]{min-width:176px}.appearance-action[data-v-40855f84]{margin-right:-2px}.social-links-list[data-v-40855f84]{margin:-4px -8px}.VPNavBarHamburger[data-v-e5dd9c1c]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-e5dd9c1c]{display:none}}.container[data-v-e5dd9c1c]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-e5dd9c1c]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .middle[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .bottom[data-v-e5dd9c1c]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-e5dd9c1c],.middle[data-v-e5dd9c1c],.bottom[data-v-e5dd9c1c]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(0)}.middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-0b525393]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-0b525393],.VPNavBarMenuLink[data-v-0b525393]:hover{color:var(--vp-c-brand)}.VPNavBarMenu[data-v-7f418b0f]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-7f418b0f]{display:flex}}/*! @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;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::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;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:rgba(0,0,0,.2);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:rgba(0,0,0,.2);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;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;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.DocSearch{--docsearch-primary-color: var(--vp-c-brand);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark .DocSearch{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-bg-soft-mute);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:1px;letter-spacing:-12px;color:transparent}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:var(--vp-meta-key);font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-bg-soft-mute)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-0394ad82]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-0394ad82]{display:flex;align-items:center}}.title[data-v-86d1bed8]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-86d1bed8]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-86d1bed8]{border-bottom-color:var(--vp-c-divider)}}[data-v-86d1bed8] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-74abcbb9]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-74abcbb9]{display:flex;align-items:center}}.title[data-v-74abcbb9]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-0937f67c]{position:relative;border-bottom:1px solid transparent;padding:0 8px 0 24px;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap}@media (min-width: 768px){.VPNavBar[data-v-0937f67c]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar[data-v-0937f67c]{padding:0}.VPNavBar[data-v-0937f67c]:not(.has-sidebar):not(.top){border-bottom-color:var(--vp-c-gutter);background-color:var(--vp-nav-bg-color)}}.container[data-v-0937f67c]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-0937f67c],.container>.content[data-v-0937f67c]{pointer-events:none}.container[data-v-0937f67c] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-0937f67c]{max-width:100%}}.title[data-v-0937f67c]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-0937f67c]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-0937f67c]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-0937f67c]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-0937f67c]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-0937f67c]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-0937f67c]{display:flex;justify-content:flex-end;align-items:center;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.top) .content-body[data-v-0937f67c]{position:relative;background-color:var(--vp-nav-bg-color)}}@media (max-width: 767px){.content-body[data-v-0937f67c]{column-gap:.5rem}}.menu+.translations[data-v-0937f67c]:before,.menu+.appearance[data-v-0937f67c]:before,.menu+.social-links[data-v-0937f67c]:before,.translations+.appearance[data-v-0937f67c]:before,.appearance+.social-links[data-v-0937f67c]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-0937f67c]:before,.translations+.appearance[data-v-0937f67c]:before{margin-right:16px}.appearance+.social-links[data-v-0937f67c]:before{margin-left:16px}.social-links[data-v-0937f67c]{margin-right:-8px}@media (min-width: 960px){.VPNavBar.has-sidebar .curtain[data-v-0937f67c]{position:absolute;right:0;bottom:-31px;width:calc(100% - var(--vp-sidebar-width));height:32px}.VPNavBar.has-sidebar .curtain[data-v-0937f67c]:before{display:block;width:100%;height:32px;background:linear-gradient(var(--vp-c-bg),transparent 70%);content:""}}@media (min-width: 1440px){.VPNavBar.has-sidebar .curtain[data-v-0937f67c]{width:calc(100% - ((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width)))}}.VPNavScreenMenuLink[data-v-30be0acb]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-30be0acb]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupLink[data-v-6656c42a]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-6656c42a]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupSection[data-v-8133b170]{display:block}.title[data-v-8133b170]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-338a1689]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-338a1689]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-338a1689]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-338a1689]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-338a1689]{padding-bottom:6px;color:var(--vp-c-brand)}.VPNavScreenMenuGroup.open .button-icon[data-v-338a1689]{transform:rotate(45deg)}.button[data-v-338a1689]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-338a1689]:hover{color:var(--vp-c-brand)}.button-icon[data-v-338a1689]{width:14px;height:14px;fill:var(--vp-c-text-2);transition:fill .5s,transform .25s}.group[data-v-338a1689]:first-child{padding-top:0}.group+.group[data-v-338a1689],.group+.item[data-v-338a1689]{padding-top:4px}.VPNavScreenAppearance[data-v-add8f686]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-add8f686]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenTranslations[data-v-d72aa483]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-d72aa483]{height:auto}.title[data-v-d72aa483]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-d72aa483]{width:16px;height:16px;fill:currentColor}.icon.lang[data-v-d72aa483]{margin-right:8px}.icon.chevron[data-v-d72aa483]{margin-left:4px}.list[data-v-d72aa483]{padding:4px 0 0 24px}.link[data-v-d72aa483]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-69fcc70f]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 1px);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .5s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-69fcc70f],.VPNavScreen.fade-leave-active[data-v-69fcc70f]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-69fcc70f],.VPNavScreen.fade-leave-active .container[data-v-69fcc70f]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-69fcc70f],.VPNavScreen.fade-leave-to[data-v-69fcc70f]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-69fcc70f],.VPNavScreen.fade-leave-to .container[data-v-69fcc70f]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-69fcc70f]{display:none}}.container[data-v-69fcc70f]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-69fcc70f],.menu+.appearance[data-v-69fcc70f],.translations+.appearance[data-v-69fcc70f]{margin-top:24px}.menu+.social-links[data-v-69fcc70f]{margin-top:16px}.appearance+.social-links[data-v-69fcc70f]{margin-top:16px}.VPNav[data-v-7e5bc4a5]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-7e5bc4a5]{position:fixed}}.VPSidebarItem.level-0[data-v-9b797284]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-9b797284]{padding-bottom:10px}.item[data-v-9b797284]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-9b797284]{cursor:pointer}.indicator[data-v-9b797284]{position:absolute;top:6px;bottom:6px;left:-17px;width:1px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-9b797284],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-9b797284],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-9b797284],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-9b797284]{background-color:var(--vp-c-brand)}.link[data-v-9b797284]{display:flex;align-items:center;flex-grow:1}.text[data-v-9b797284]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-9b797284]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-9b797284],.VPSidebarItem.level-2 .text[data-v-9b797284],.VPSidebarItem.level-3 .text[data-v-9b797284],.VPSidebarItem.level-4 .text[data-v-9b797284],.VPSidebarItem.level-5 .text[data-v-9b797284]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-9b797284],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-9b797284],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-9b797284],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-9b797284],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-9b797284],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-9b797284]{color:var(--vp-c-brand)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-9b797284],.VPSidebarItem.level-1.has-active>.item>.text[data-v-9b797284],.VPSidebarItem.level-2.has-active>.item>.text[data-v-9b797284],.VPSidebarItem.level-3.has-active>.item>.text[data-v-9b797284],.VPSidebarItem.level-4.has-active>.item>.text[data-v-9b797284],.VPSidebarItem.level-5.has-active>.item>.text[data-v-9b797284],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-9b797284],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-9b797284],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-9b797284],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-9b797284],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-9b797284],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-9b797284]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-9b797284],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-9b797284],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-9b797284],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-9b797284],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-9b797284],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-9b797284]{color:var(--vp-c-brand)}.caret[data-v-9b797284]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-9b797284]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-9b797284]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-9b797284]{width:18px;height:18px;fill:currentColor;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-9b797284]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-9b797284],.VPSidebarItem.level-2 .items[data-v-9b797284],.VPSidebarItem.level-3 .items[data-v-9b797284],.VPSidebarItem.level-4 .items[data-v-9b797284],.VPSidebarItem.level-5 .items[data-v-9b797284]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-9b797284]{display:none}.VPSidebar[data-v-845b8fc6]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-845b8fc6]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-845b8fc6]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-845b8fc6]{z-index:1;padding-top:var(--vp-nav-height);padding-bottom:128px;width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-845b8fc6]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-845b8fc6]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-845b8fc6]{outline:0}.group+.group[data-v-845b8fc6]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-845b8fc6]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSkipLink[data-v-ae3e3f51]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-ae3e3f51]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-ae3e3f51]{top:14px;left:16px}}.Layout[data-v-255ec12d]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-3c6e61c2]{border-top:1px solid var(--vp-c-gutter);padding:88px 24px 96px;background-color:var(--vp-c-bg)}.container[data-v-3c6e61c2]{margin:0 auto;max-width:1152px}.love[data-v-3c6e61c2]{margin:0 auto;width:28px;height:28px;color:var(--vp-c-text-3)}.icon[data-v-3c6e61c2]{width:28px;height:28px;fill:currentColor}.message[data-v-3c6e61c2]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-3c6e61c2]{padding-top:32px}.action[data-v-3c6e61c2]{padding-top:40px;text-align:center}.VPTeamPage[data-v-10b00018]{padding-bottom:96px}@media (min-width: 768px){.VPTeamPage[data-v-10b00018]{padding-bottom:128px}}.VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s],.VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-10b00018-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-10b00018-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s],.VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s]{margin-top:96px}}.VPTeamMembers[data-v-10b00018-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-10b00018-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-10b00018-s]{padding:0 64px}}.VPTeamPageTitle[data-v-bf2cbdac]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:80px 64px 48px}}.title[data-v-bf2cbdac]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-bf2cbdac]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-bf2cbdac]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-bf2cbdac]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-b1a88750]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-b1a88750]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-b1a88750]{padding:0 64px}}.title[data-v-b1a88750]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-b1a88750]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-b1a88750]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-b1a88750]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-b1a88750]{padding-top:40px}.VPTeamMembersItem[data-v-a3462077]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-a3462077]{padding:32px}.VPTeamMembersItem.small .data[data-v-a3462077]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-a3462077]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-a3462077]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-a3462077]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-a3462077]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-a3462077]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-a3462077]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-a3462077]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-a3462077]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-a3462077]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-a3462077]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-a3462077]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-a3462077]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-a3462077]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-a3462077]{text-align:center}.avatar[data-v-a3462077]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-a3462077]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-a3462077]{margin:0;font-weight:600}.affiliation[data-v-a3462077]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-a3462077]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-a3462077]:hover{color:var(--vp-c-brand)}.desc[data-v-a3462077]{margin:0 auto}.desc[data-v-a3462077] a{font-weight:500;color:var(--vp-c-brand);text-decoration-style:dotted;transition:color .25s}.links[data-v-a3462077]{display:flex;justify-content:center;height:56px}.sp-link[data-v-a3462077]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-a3462077]:hover,.sp .sp-link.link[data-v-a3462077]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-a3462077]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPTeamMembers.small .container[data-v-04685dce]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-04685dce]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-04685dce]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-04685dce]{max-width:876px}.VPTeamMembers.medium .container[data-v-04685dce]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-04685dce]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-04685dce]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-04685dce]{max-width:760px}.container[data-v-04685dce]{display:grid;gap:24px;margin:0 auto;max-width:1152px}.style-explain[data-v-214cdbcb]{display:flex;flex-direction:row;flex-wrap:wrap;margin-top:12px}.style-explain-item[data-v-214cdbcb]{display:flex;flex-direction:row;align-items:center;margin-right:30px;margin-top:2px}.style-explain-item strong[data-v-214cdbcb]{display:flex;flex-direction:row;align-items:center;justify-content:center;background-color:red;width:18px;height:18px;margin-right:4px;font-size:12px;border-radius:9px;color:#fff}.who-are-use-section[data-v-37acb926]{margin-top:100px}.who-are-use h2[data-v-37acb926]{font-size:24px;text-align:center;font-weight:600}.who-are-use .grid[data-v-37acb926]{display:flex;flex-wrap:wrap;gap:6px;margin-top:40px}.who-are-use .grid .item[data-v-37acb926]{display:flex;justify-content:center;align-items:center;width:100%;height:120px;background-color:var(--vp-c-bg-soft);border-radius:4px;transition:background-color .2s;cursor:pointer;color:inherit}.who-are-use .grid .item .image[data-v-37acb926]{height:34px}.who-are-use .grid .item[data-v-37acb926]:hover{background-color:var(--vp-c-bg-soft-down)}.dark .who-are-use .grid .item .image[data-v-37acb926]{filter:grayscale(1) invert(1)}.dark .who-are-use .grid .item[data-v-37acb926]:hover{background-color:var(--vp-c-neutral)}.dark .who-are-use .grid .item:hover .image[data-v-37acb926]{filter:grayscale(0) invert(0)}@media (min-width: 640px){.who-are-use .grid .item[data-v-37acb926]{width:calc((100% - 12px) / 3)}}@media (min-width: 960px){.who-are-use .grid .item[data-v-37acb926]{width:calc((100% - 18px)/4)}}.who-are-use .become-next[data-v-37acb926]{display:flex;flex-direction:row;justify-content:center;padding-top:50px}.who-are-use .become-next a[data-v-37acb926]{font-size:14px;line-height:36px;border-radius:18px;padding:0 20px;color:var(--vp-c-text-3);font-weight:400;border:solid 1px var(--vp-button-alt-border);cursor:pointer;transition:border-color .2s,color .2s}.who-are-use .become-next a[data-v-37acb926]:hover{border-color:var(--vp-c-brand);color:var(--vp-c-brand)}.NotFound[data-v-18af756e]{padding:96px 24px;text-align:center}.NotFound .logo[data-v-18af756e]{display:flex;flex-direction:row;align-items:center;justify-content:center}.NotFound .logo span[data-v-18af756e]{font-size:110px;font-weight:600}.NotFound .logo img[data-v-18af756e]{width:76px;margin:0 16px}@media (min-width: 768px){.NotFound[data-v-18af756e]{padding:128px 32px 168px}}.title[data-v-18af756e]{padding-top:30px;letter-spacing:2px;font-size:30px;font-weight:700}.tip[data-v-18af756e]{font-size:14px;color:var(--vp-c-text-2)}.action[data-v-18af756e]{padding-top:20px}.link[data-v-18af756e]{display:inline-block;border:1px solid var(--vp-c-brand);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:border-color .2s,color .2s}.link[data-v-18af756e]:hover{border-color:var(--vp-c-brand-light);color:var(--vp-c-brand-light)}:root{--vp-c-brand: #1677FF;--vp-c-brand-dark: #1677FF;--vp-c-brand-light: #3086ff;--vp-c-brand-lighter: #4995ff;--vp-c-brand-lightest: #afd0ff;--vp-c-brand-dimm: rgba(22, 119, 255, .08)}:root{--vp-button-brand-border: var(--vp-c-brand-light);--vp-button-brand-bg: var(--vp-c-brand);--vp-button-brand-hover-border: var(--vp-c-brand-light);--vp-button-brand-hover-bg: var(--vp-c-brand-light);--vp-button-brand-active-border: var(--vp-c-brand-light);--vp-button-brand-active-bg: var(--vp-button-brand-bg)}:root{--vp-home-hero-name-color: transparent;--vp-home-hero-name-background: -webkit-linear-gradient( 145deg, #2DC08E 26%, #F92855 );--vp-home-hero-image-background-image: linear-gradient( -45deg, rgba(45, 192, 142, .3), rgba(249, 40, 85, .3) );--vp-home-hero-image-filter: blur(40px)}@media (min-width: 640px){:root{--vp-home-hero-image-filter: blur(60px)}}@media (min-width: 960px){:root{--vp-home-hero-image-filter: blur(80px)}}:root{--vp-custom-block-tip-border: var(--vp-c-brand);--vp-custom-block-tip-text: var(--vp-c-brand);--vp-custom-block-tip-bg: var(--vp-c-brand-dimm)}.dark{--vp-custom-block-tip-border: var(--vp-c-brand);--vp-custom-block-tip-text: var(--vp-c-brand-lightest);--vp-custom-block-tip-bg: var(--vp-c-brand-dimm)}.home-section{border-top:1px solid var(--vp-c-gutter);padding:60px 24px;text-align:center}.home-section .home-section-content{margin:0 auto;max-width:1152px}@media (min-width: 640px){.home-section{padding:60px 48px}}@media (min-width: 960px){.home-section{padding:60px 64px}}.VPLocalSearchBox[data-v-c2b3b158]{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex}.backdrop[data-v-c2b3b158]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vp-backdrop-bg-color);transition:opacity .5s}.shell[data-v-c2b3b158]{position:relative;padding:12px;margin:64px auto;display:flex;flex-direction:column;gap:16px;background:var(--vp-local-search-bg);width:min(100vw - 60px,900px);height:min-content;max-height:min(100vh - 128px,900px);border-radius:6px}@media (max-width: 767px){.shell[data-v-c2b3b158]{margin:0;width:100vw;height:100vh;max-height:none;border-radius:0}}.search-bar[data-v-c2b3b158]{border:1px solid var(--vp-c-divider);border-radius:4px;display:flex;align-items:center;padding:0 12px;cursor:text}@media (max-width: 767px){.search-bar[data-v-c2b3b158]{padding:0 8px}}.search-bar[data-v-c2b3b158]:focus-within{border-color:var(--vp-c-brand)}.search-icon[data-v-c2b3b158]{margin:8px}@media (max-width: 767px){.search-icon[data-v-c2b3b158]{display:none}}.search-input[data-v-c2b3b158]{padding:6px 12px;font-size:inherit;width:100%}@media (max-width: 767px){.search-input[data-v-c2b3b158]{padding:6px 4px}}.search-actions[data-v-c2b3b158]{display:flex;gap:4px}@media (any-pointer: coarse){.search-actions[data-v-c2b3b158]{gap:8px}}@media (min-width: 769px){.search-actions.before[data-v-c2b3b158]{display:none}}.search-actions button[data-v-c2b3b158]{padding:8px}.search-actions button[data-v-c2b3b158]:not([disabled]):hover,.toggle-layout-button.detailed-list[data-v-c2b3b158]{color:var(--vp-c-brand)}.search-actions button.clear-button[data-v-c2b3b158]:disabled{opacity:.37}.search-keyboard-shortcuts[data-v-c2b3b158]{font-size:.8rem;opacity:75%;display:flex;flex-wrap:wrap;gap:16px;line-height:14px}.search-keyboard-shortcuts span[data-v-c2b3b158]{display:flex;align-items:center;gap:4px}@media (max-width: 767px){.search-keyboard-shortcuts[data-v-c2b3b158]{display:none}}.search-keyboard-shortcuts kbd[data-v-c2b3b158]{background:rgba(128,128,128,.1);border-radius:4px;padding:3px 6px;min-width:24px;display:inline-block;text-align:center;vertical-align:middle;border:1px solid rgba(128,128,128,.15);box-shadow:0 2px 2px #0000001a}.results[data-v-c2b3b158]{display:flex;flex-direction:column;gap:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.result[data-v-c2b3b158]{display:flex;align-items:center;gap:8px;border-radius:4px;transition:none;line-height:1rem;border:solid 2px var(--vp-local-search-result-border);outline:none}.result>div[data-v-c2b3b158]{margin:12px;width:100%;overflow:hidden}@media (max-width: 767px){.result>div[data-v-c2b3b158]{margin:8px}}.titles[data-v-c2b3b158]{display:flex;flex-wrap:wrap;gap:4px;position:relative;z-index:1001;padding:2px 0}.title[data-v-c2b3b158]{display:flex;align-items:center;gap:4px}.title.main[data-v-c2b3b158]{font-weight:500}.title-icon[data-v-c2b3b158]{opacity:.5;font-weight:500;color:var(--vp-c-brand)}.title svg[data-v-c2b3b158]{opacity:.5}.result.selected[data-v-c2b3b158]{--vp-local-search-result-bg: var(--vp-local-search-result-selected-bg);border-color:var(--vp-local-search-result-selected-border)}.excerpt-wrapper[data-v-c2b3b158]{position:relative}.excerpt[data-v-c2b3b158]{opacity:75%;pointer-events:none;max-height:140px;overflow:hidden;position:relative;opacity:.5;margin-top:4px}.result.selected .excerpt[data-v-c2b3b158]{opacity:1}.excerpt[data-v-c2b3b158] *{font-size:.8rem!important;line-height:130%!important}.titles[data-v-c2b3b158] mark,.excerpt[data-v-c2b3b158] mark{background-color:var(--vp-local-search-highlight-bg);color:var(--vp-local-search-highlight-text);border-radius:2px;padding:0 2px}.excerpt[data-v-c2b3b158] .vp-code-group .tabs{display:none}.excerpt[data-v-c2b3b158] .vp-code-group div[class*=language-]{border-radius:8px!important}.excerpt-gradient-bottom[data-v-c2b3b158]{position:absolute;bottom:-1px;left:0;width:100%;height:8px;background:linear-gradient(transparent,var(--vp-local-search-result-bg));z-index:1000}.excerpt-gradient-top[data-v-c2b3b158]{position:absolute;top:-1px;left:0;width:100%;height:8px;background:linear-gradient(var(--vp-local-search-result-bg),transparent);z-index:1000}.result.selected .titles[data-v-c2b3b158],.result.selected .title-icon[data-v-c2b3b158]{color:var(--vp-c-brand)!important}.no-results[data-v-c2b3b158]{font-size:.9rem;text-align:center;padding:12px}svg[data-v-c2b3b158]{flex:none} diff --git a/en-US/guide/changelog.html b/en-US/guide/changelog.html index 29e216574..e1629f075 100644 --- a/en-US/guide/changelog.html +++ b/en-US/guide/changelog.html @@ -5,20 +5,21 @@ 📠 Change Log | KLineChart - + - + - - - + + + - + + -
Skip to content
On this page

📠 Change Log

9.5.1

2023-08-14

  • 🆕 Add chart api getOverlayClass.
  • 🆕 Style configuration candle.tooltip.custom add built-in support change.
  • 💄 Optimize figure rect event trigger.
  • ↩️ Separator event trigger optimization rollback.

9.5.0

2023-06-15

  • 🆕 Overlay add event onDoubleClick, add property modeSensitivity.
  • 🆕 Style configuration candle.tooltip.custom supports string templates.
  • 🐞 Optimize the scrolling frame drop issue on the mobile side.
  • 🐞 Fix pane id naming typo.
  • 💄 Optimize the response sensitivity of dividing line events.
  • 💄 Optimize the attrs type declaration in OverlayFigure under typescript.

9.4.0

2023-05-25

  • 🆕 Instance API 'createOverlay' supports arrays.
  • 🆕 overlay add attributes paneId, defaultZLevel and zLevel.
  • 🆕 xAxis add methods convertTimestampFromPixel and convertTimestampToPixel.
  • 💄 Optimize the display of candle.

9.3.0

2023-05-13

  • 🆕 Add chart API utils.calcTextWidth.
  • 🆕 The instance APIs createIndicator(value, isStack, options) and setPaneOptions(options) have added options. axisOptions.
  • 🆕 The indicator graphic configuration supports customization.
  • 💄 Optimize the bar width ratio.
  • 💄 Optimize internal acquisition of screen pixel ratio.
  • 💄 Optimize internal ID generation.

9.2.2

2023-05-04

  • 🐞 Fix figure line check event error.
  • 💄 Optimize type check.

9.2.1

2023-04-27

  • 💄 Optimize the default style by changing #EF5350 to #F92855 and #26A69A to #2DC08E.
  • 💄 Optimize typescript declarations.

9.2.0

2023-04-24

  • 🆕 Add instance API getOffsetRightDistance and executeAction.
  • 🆕 Add success callback for instance API applyNewData, applyMoreData and updateData.
  • 🆕 Support the display of thousands.
  • 🆕 Add style configuration candle.bar.upBorderColor, candle.bar.downBorderColor, candle.bar.noChangeBorderColor, candle.bar.upWickColor, candle.bar.downWickColor, candle.bar.noChangeWickColor, candle.tooltip.rect.position and candle.tooltip.rect.offsetBottom.
  • 🆕 Add realFrom and realTo to all visibleRange.
  • 💄 Optimize API, klinecharts.utils.isValid and klinecharts.utils.formatBigNumber.
  • 💄 Optimize the log output in the development environment.

9.1.3

2023-04-15

  • 🐞 Fix the issue of not refreshing when the input parameter of the chart API applyNewData is an empty array.
  • 🐞 Fix the issue of cross cursor text not displaying on the y-axis when there is no data.
  • 💄 Optimize the display of area chart.
  • 💄 Optimize coverage event callback parameters and add figureKey and figureIndex.
  • 💄 Optimize typescript overlay style types, as well as base types DeepPartial and DeepRequired.

9.1.2

2023-04-10

  • 🐞 Fix the issue of inaccurate triggering events for the built-in figure line.
  • 🐞 Fix the issue of triggering events for the first time after the simpleAnnotation and simpleTag built-in overlays are drawn.
  • 💄 Optimize overlay figure to ignore events and support event selection.

9.1.1

2023-03-14

  • 🐞 Fix the invalidity of the built-in figure arc.
  • 💄 Optimize rendering updates.

9.1.0

2023-02-23

  • 🆕 The chart instance method subscribeAction and unsubscribeAction types add onCandleBarClick.
  • 🆕 The overlay supports double-clicking to force the end of drawing.
  • 💄 Optimize event handling.

9.0.1

2023-02-17 🐞 Fix the introduction of typescript.

9.0.0

2023-02-16

  • 🛠 Typescript refactoring.
  • 🆕 New features
    • Add Y axis direction zoom and scroll.
    • API
      • New chart methods registerFigure, getSupportFigures, getFigureClass, rigiderOverlay, getSupportOverlays, registerLocale, getSupportLocales, registerStyles are added.
      • New instance methods, getSize, setLocale, getLocal, setCustomApi, getVisibleRange, createOverlay, getOverlayById, overrideOverlay, removeOverlay.
    • Style Configuration
      • Add candle.priceMark.last.text.borderStyle, candle.tooltip.icons, indicator.lastValueMark.text.borderStyle, indicator.tooltip.icons, crosshair.horizontal. text.borderStyle, crosshair.vertical.text.borderStyle.
  • 👉 Change
    • API
      • Chart method extension.addTechnicalIndicatorTemplate is changed to registerIndicator.
      • Chart method extension.addShapeTemplate is changed to registerOverlay.
      • Instance method setStyleOptions is changed to setStyles.
      • Instance method getStyleOptions is changed to getStyles.
      • Instance method setPaneOptions(options), options add new attribute gap.
      • Instance method setOffsetRightSpace is changed to setOffsetRightDistance.
      • Instance method createTechnicalIndicator is changed to createIndicator
      • Instance method overlayTechnicalIndicator is changed to overrideIndicator.
      • Instance method getTechnicalIndicatorByPaneId is changed to getIndicatorByPaneId.
      • Instance method removeTechnicalIndicator is changed to removeIndicator.
    • Style Configuration
      • All line.style options are changed to solid and dashed.
      • All dashValue is changed to dashedValue.
      • xAxis.height is changed to xAxis.size, xAxis.tickeText.paddingTop is changed to xAxis.tickeText.marinStart, and xAxis.tickeText.paddingBottom is changed to xAxis.tickeText.marinEnd.
      • yAxis.height is changed to yAxis.size, yAxis.tickeText.paddingTop is changed to yAxis.tickeText.marinStart, and yAxis.tickeText.paddingBottom is changed to yAxis.tickeText.marinEnd.
      • technicalIndicator.bar is changed to indicator.bars, technicalIndicator.line is changed to indicator.linestechnicalIndicator.circle is changed to indicator.circles
    • Custom Extension
      • The technical indicator attribute calcParams has been changed to support any type.
      • The technical indicator attribute plots is changed to figures.
      • The technical indicator attribute regeneratePlots is changed to' regeneratefigures'.
      • The technical indicator attribute calcTechnicalIndicator is changed to calc.
      • The technical indicator attribute render is changed to 'draw'.
  • 🗑 Abandonment
    • API
      • Delete instance methods getWidth, getHeight, and use getSize instead.
      • Delete instance methods createShape, createAnnotation, createTag, and use createOverlay instead.
      • Delete instance methods removeShape, removeAnnotation, removeTag. Use removeOverlay instead.
      • Delete the instance method setShapeOptions and use overrideOverlay instead.
      • Delete instance methods createHtml, removeHtml, addTechnicalIndicatorTemplate, getTechnicalIndicatorTemplate, addShapeTemplate.
    • Style Configuration
      • Delete shape, annotation, tag and use overlay instead.
      • Delete candle.margintechnicalIndicator.margin
    • Custom Extension
      • The related attributes are no longer saved in the technical indicator template.
      • Delete Shape and use Overlay instead.

8.x

Go to Github to check the change log for 8.x.

7.x

Go to Github to check the change log for 7.x.

6.x

Go to Github to check the change log for 6.x.

5.x

Go to Github to view the 5.x release notes.

4.x

Go to Github to view the 4.x release notes.

Released under the Apache License V2.

- +
Skip to content

📠 Change Log

9.5.1

2023-08-14

  • 🆕 Add chart api getOverlayClass.
  • 🆕 Style configuration candle.tooltip.custom add built-in support change.
  • 💄 Optimize figure rect event trigger.
  • ↩️ Separator event trigger optimization rollback.

9.5.0

2023-06-15

  • 🆕 Overlay add event onDoubleClick, add property modeSensitivity.
  • 🆕 Style configuration candle.tooltip.custom supports string templates.
  • 🐞 Optimize the scrolling frame drop issue on the mobile side.
  • 🐞 Fix pane id naming typo.
  • 💄 Optimize the response sensitivity of dividing line events.
  • 💄 Optimize the attrs type declaration in OverlayFigure under typescript.

9.4.0

2023-05-25

  • 🆕 Instance API 'createOverlay' supports arrays.
  • 🆕 overlay add attributes paneId, defaultZLevel and zLevel.
  • 🆕 xAxis add methods convertTimestampFromPixel and convertTimestampToPixel.
  • 💄 Optimize the display of candle.

9.3.0

2023-05-13

  • 🆕 Add chart API utils.calcTextWidth.
  • 🆕 The instance APIs createIndicator(value, isStack, options) and setPaneOptions(options) have added options. axisOptions.
  • 🆕 The indicator graphic configuration supports customization.
  • 💄 Optimize the bar width ratio.
  • 💄 Optimize internal acquisition of screen pixel ratio.
  • 💄 Optimize internal ID generation.

9.2.2

2023-05-04

  • 🐞 Fix figure line check event error.
  • 💄 Optimize type check.

9.2.1

2023-04-27

  • 💄 Optimize the default style by changing #EF5350 to #F92855 and #26A69A to #2DC08E.
  • 💄 Optimize typescript declarations.

9.2.0

2023-04-24

  • 🆕 Add instance API getOffsetRightDistance and executeAction.
  • 🆕 Add success callback for instance API applyNewData, applyMoreData and updateData.
  • 🆕 Support the display of thousands.
  • 🆕 Add style configuration candle.bar.upBorderColor, candle.bar.downBorderColor, candle.bar.noChangeBorderColor, candle.bar.upWickColor, candle.bar.downWickColor, candle.bar.noChangeWickColor, candle.tooltip.rect.position and candle.tooltip.rect.offsetBottom.
  • 🆕 Add realFrom and realTo to all visibleRange.
  • 💄 Optimize API, klinecharts.utils.isValid and klinecharts.utils.formatBigNumber.
  • 💄 Optimize the log output in the development environment.

9.1.3

2023-04-15

  • 🐞 Fix the issue of not refreshing when the input parameter of the chart API applyNewData is an empty array.
  • 🐞 Fix the issue of cross cursor text not displaying on the y-axis when there is no data.
  • 💄 Optimize the display of area chart.
  • 💄 Optimize coverage event callback parameters and add figureKey and figureIndex.
  • 💄 Optimize typescript overlay style types, as well as base types DeepPartial and DeepRequired.

9.1.2

2023-04-10

  • 🐞 Fix the issue of inaccurate triggering events for the built-in figure line.
  • 🐞 Fix the issue of triggering events for the first time after the simpleAnnotation and simpleTag built-in overlays are drawn.
  • 💄 Optimize overlay figure to ignore events and support event selection.

9.1.1

2023-03-14

  • 🐞 Fix the invalidity of the built-in figure arc.
  • 💄 Optimize rendering updates.

9.1.0

2023-02-23

  • 🆕 The chart instance method subscribeAction and unsubscribeAction types add onCandleBarClick.
  • 🆕 The overlay supports double-clicking to force the end of drawing.
  • 💄 Optimize event handling.

9.0.1

2023-02-17 🐞 Fix the introduction of typescript.

9.0.0

2023-02-16

  • 🛠 Typescript refactoring.
  • 🆕 New features
    • Add Y axis direction zoom and scroll.
    • API
      • New chart methods registerFigure, getSupportFigures, getFigureClass, rigiderOverlay, getSupportOverlays, registerLocale, getSupportLocales, registerStyles are added.
      • New instance methods, getSize, setLocale, getLocal, setCustomApi, getVisibleRange, createOverlay, getOverlayById, overrideOverlay, removeOverlay.
    • Style Configuration
      • Add candle.priceMark.last.text.borderStyle, candle.tooltip.icons, indicator.lastValueMark.text.borderStyle, indicator.tooltip.icons, crosshair.horizontal. text.borderStyle, crosshair.vertical.text.borderStyle.
  • 👉 Change
    • API
      • Chart method extension.addTechnicalIndicatorTemplate is changed to registerIndicator.
      • Chart method extension.addShapeTemplate is changed to registerOverlay.
      • Instance method setStyleOptions is changed to setStyles.
      • Instance method getStyleOptions is changed to getStyles.
      • Instance method setPaneOptions(options), options add new attribute gap.
      • Instance method setOffsetRightSpace is changed to setOffsetRightDistance.
      • Instance method createTechnicalIndicator is changed to createIndicator
      • Instance method overlayTechnicalIndicator is changed to overrideIndicator.
      • Instance method getTechnicalIndicatorByPaneId is changed to getIndicatorByPaneId.
      • Instance method removeTechnicalIndicator is changed to removeIndicator.
    • Style Configuration
      • All line.style options are changed to solid and dashed.
      • All dashValue is changed to dashedValue.
      • xAxis.height is changed to xAxis.size, xAxis.tickeText.paddingTop is changed to xAxis.tickeText.marinStart, and xAxis.tickeText.paddingBottom is changed to xAxis.tickeText.marinEnd.
      • yAxis.height is changed to yAxis.size, yAxis.tickeText.paddingTop is changed to yAxis.tickeText.marinStart, and yAxis.tickeText.paddingBottom is changed to yAxis.tickeText.marinEnd.
      • technicalIndicator.bar is changed to indicator.bars, technicalIndicator.line is changed to indicator.linestechnicalIndicator.circle is changed to indicator.circles
    • Custom Extension
      • The technical indicator attribute calcParams has been changed to support any type.
      • The technical indicator attribute plots is changed to figures.
      • The technical indicator attribute regeneratePlots is changed to' regeneratefigures'.
      • The technical indicator attribute calcTechnicalIndicator is changed to calc.
      • The technical indicator attribute render is changed to 'draw'.
  • 🗑 Abandonment
    • API
      • Delete instance methods getWidth, getHeight, and use getSize instead.
      • Delete instance methods createShape, createAnnotation, createTag, and use createOverlay instead.
      • Delete instance methods removeShape, removeAnnotation, removeTag. Use removeOverlay instead.
      • Delete the instance method setShapeOptions and use overrideOverlay instead.
      • Delete instance methods createHtml, removeHtml, addTechnicalIndicatorTemplate, getTechnicalIndicatorTemplate, addShapeTemplate.
    • Style Configuration
      • Delete shape, annotation, tag and use overlay instead.
      • Delete candle.margintechnicalIndicator.margin
    • Custom Extension
      • The related attributes are no longer saved in the technical indicator template.
      • Delete Shape and use Overlay instead.

8.x

Go to Github to check the change log for 8.x.

7.x

Go to Github to check the change log for 7.x.

6.x

Go to Github to check the change log for 6.x.

5.x

Go to Github to view the 5.x release notes.

4.x

Go to Github to view the 4.x release notes.

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/en-US/guide/chart-api.html b/en-US/guide/chart-api.html index 0216b562d..f49fbdf4b 100644 --- a/en-US/guide/chart-api.html +++ b/en-US/guide/chart-api.html @@ -5,31 +5,32 @@ Chart API | KLineChart - + - + - - - + + + - + + -
Skip to content
On this page

Chart API

init(ds, options)

typescript
(
-   ds: string | HTMLElement,
-   options?: {
-      locale?: string
-      timezone?: string
-      styles?: string | object
-      customApi?: {
-         formatDate?: (dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string, type: number) => string
-         formatBigNumber?: (value: string | number) => string
-      },
-      thousandsSeparator?: string
-   }
-) => Chart
(
+    
Skip to content

Chart API

init(ds, options)

typescript
(
+   ds: string | HTMLElement,
+   options?: {
+      locale?: string
+      timezone?: string
+      styles?: string | object
+      customApi?: {
+         formatDate?: (dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string, type: number) => string
+         formatBigNumber?: (value: string | number) => string
+      },
+      thousandsSeparator?: string
+   }
+) => Chart
(
    ds: string | HTMLElement,
    options?: {
       locale?: string
@@ -41,17 +42,17 @@
       },
       thousandsSeparator?: string
    }
-) => Chart

Initialize a chart and return the chart instance.

  • ds container, can be dom element or element id.
  • options optional configuration items.
    • locale language, built-in support for zh-CN and en-US.
    • timezone time zone name, such as 'Asia/Shanghai', if not set, it will automatically get the local time zone, please refer to timezone list.
    • styles It can be the style name registered through klinecharts.registerStyles, or it can be an object, a list of styles, see styles for details, and supports increments.
    • customApi customize some APIs.
      • formatDate formats a date.
      • formatBigNumber format big numbers, such as 1000 into 1k, 1000000 into 1M, etc.\
    • thousandsSeparator thousands separator

dispose(dcs)

typescript
(dcs: HTMLElement | Chart | string) => void
(dcs: HTMLElement | Chart | string) => void

Destroys a chart, once destroyed the chart will no longer be available.

  • dcs can be a dom element, element id or chart instance.

registerLocale(locale, locales)

typescript
(
-   locale: string,
-   locales: {
-     time: string
-     open: string
-     high: string
-     low: string
-     close: string
-     volume: string
-   }
-) => void
(
+) => Chart

Initialize a chart and return the chart instance.

  • ds container, can be dom element or element id.
  • options optional configuration items.
    • locale language, built-in support for zh-CN and en-US.
    • timezone time zone name, such as 'Asia/Shanghai', if not set, it will automatically get the local time zone, please refer to timezone list.
    • styles It can be the style name registered through klinecharts.registerStyles, or it can be an object, a list of styles, see styles for details, and supports increments.
    • customApi customize some APIs.
      • formatDate formats a date.
      • formatBigNumber format big numbers, such as 1000 into 1k, 1000000 into 1M, etc.\
    • thousandsSeparator thousands separator

dispose(dcs)

typescript
(dcs: HTMLElement | Chart | string) => void
(dcs: HTMLElement | Chart | string) => void

Destroys a chart, once destroyed the chart will no longer be available.

  • dcs can be a dom element, element id or chart instance.

registerLocale(locale, locales)

typescript
(
+   locale: string,
+   locales: {
+     time: string
+     open: string
+     high: string
+     low: string
+     close: string
+     volume: string
+   }
+) => void
(
    locale: string,
    locales: {
      time: string
@@ -61,79 +62,79 @@
      close: string
      volume: string
    }
-) => void

Add a localization language. Charts have built-in zh-CN and en-US.

  • locale language name
  • locales language configuration

getOverlayClass()

typescript
(name: string) => Nullable<OverlayConstructor>
(name: string) => Nullable<OverlayConstructor>

Get chart's overlay attributes by overlay name.

getSupportedLocales()

typescript
() => string[]
() => string[]

Get the localized language types supported by the chart.

registerStyles(name, styles)

typescript
(
-   name: string,
-   styles: object
-) => void
(
+) => void

Add a localization language. Charts have built-in zh-CN and en-US.

  • locale language name
  • locales language configuration

getOverlayClass()

typescript
(name: string) => Nullable<OverlayConstructor>
(name: string) => Nullable<OverlayConstructor>

Get chart's overlay attributes by overlay name.

getSupportedLocales()

typescript
() => string[]
() => string[]

Get the localized language types supported by the chart.

registerStyles(name, styles)

typescript
(
+   name: string,
+   styles: object
+) => void
(
    name: string,
    styles: object
-) => void

Add a style configuration.

  • name style name
  • styles style configuration, refer to style for the type, support increment.

registerFigure(figure)

typescript
(
-   figure: {
-      name: string
-      draw: (ctx: CanvasRenderingContext2D, attrs: any, styles: object) => void
-      checkEventOn: (coordinate: Coordinate, attrs: any, styles: object) => boolean
-   }
-) => void
(
+) => void

Add a style configuration.

  • name style name
  • styles style configuration, refer to style for the type, support increment.

registerFigure(figure)

typescript
(
+   figure: {
+      name: string
+      draw: (ctx: CanvasRenderingContext2D, attrs: any, styles: object) => void
+      checkEventOn: (coordinate: Coordinate, attrs: any, styles: object) => boolean
+   }
+) => void
(
    figure: {
       name: string
       draw: (ctx: CanvasRenderingContext2D, attrs: any, styles: object) => void
       checkEventOn: (coordinate: Coordinate, attrs: any, styles: object) => boolean
    }
-) => void

Add a figure.

  • figure Basic figure information, see figure for details
    • name name, unique identifier
    • draw drawing method
    • checkEventOn checks if the event is on the graph

getSupportedFigures()

typescript
() => string[]
() => string[]

Get the basic graph type supported by the graph.

getFigureClass(name)

typescript
(name: string) => Figure
(name: string) => Figure

Get graph class.

  • name name

registerIndicator(indicator)

typescript
(
-   indicator: {
-      name: string
-      shortName?: string
-      precision?: number
-      calcParams?: any[]
-      shouldOhlc?: boolean
-      shouldFormatBigNumber?: boolean
-      visible?: boolean
-      extendData?: any
-      series?: 'normal' | 'price' | 'volume'
-      figures?: Array<{
-         key: string
-         title?: string
-         type?: string
-         baseValue?: number
-         styles?: (
-            data: object,
-            indicator: object,
-            defaultStyles: object
-         ) => object
-         attrs: (
-            coordinate: object
-            bounding: Bounding
-            barSpace: BarSpace
-            xAxis: XAxis
-            yAxis: YAxis
-         ) => object
-      }>
-      minValue?: number
-      maxValue?: number
-      styles?: object
-      calc: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
-      regenerateFigures?: (calcParms: any[]) => Array<{
-         key: string
-         title?: string
-         type?: string
-         baseValue?: number
-         styles?: (
-            data: object
-            indicator: object
-            defaultStyles: object
-         ) => object
-         attrs: (
-            coordinate: object
-            bounding: Bounding
-            barSpace: BarSpace
-            xAxis: XAxis
-            yAxis: YAxis
-         ) => object
-      }>
-      createTooltipDataSource?: (params: object) => {
-         name?: string
-         calcParamsText?: string
-         values?: Array<{
+) => void

Add a figure.

  • figure Basic figure information, see figure for details
    • name name, unique identifier
    • draw drawing method
    • checkEventOn checks if the event is on the graph

getSupportedFigures()

typescript
() => string[]
() => string[]

Get the basic graph type supported by the graph.

getFigureClass(name)

typescript
(name: string) => Figure
(name: string) => Figure

Get graph class.

  • name name

registerIndicator(indicator)

typescript
(
+   indicator: {
+      name: string
+      shortName?: string
+      precision?: number
+      calcParams?: any[]
+      shouldOhlc?: boolean
+      shouldFormatBigNumber?: boolean
+      visible?: boolean
+      extendData?: any
+      series?: 'normal' | 'price' | 'volume'
+      figures?: Array<{
+         key: string
+         title?: string
+         type?: string
+         baseValue?: number
+         styles?: (
+            data: object,
+            indicator: object,
+            defaultStyles: object
+         ) => object
+         attrs: (
+            coordinate: object
+            bounding: Bounding
+            barSpace: BarSpace
+            xAxis: XAxis
+            yAxis: YAxis
+         ) => object
+      }>
+      minValue?: number
+      maxValue?: number
+      styles?: object
+      calc: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
+      regenerateFigures?: (calcParms: any[]) => Array<{
+         key: string
+         title?: string
+         type?: string
+         baseValue?: number
+         styles?: (
+            data: object
+            indicator: object
+            defaultStyles: object
+         ) => object
+         attrs: (
+            coordinate: object
+            bounding: Bounding
+            barSpace: BarSpace
+            xAxis: XAxis
+            yAxis: YAxis
+         ) => object
+      }>
+      createTooltipDataSource?: (params: object) => {
+         name?: string
+         calcParamsText?: string
+         values?: Array<{
             title: string | {
                text: string
                color: string
@@ -144,9 +145,9 @@
             }
          }>
       }
-      draw?: (params: object) => boolean
-   }
-) => void
(
+      draw?: (params: object) => boolean
+   }
+) => void
(
    indicator: {
       name: string
       shortName?: string
@@ -213,78 +214,78 @@
       }
       draw?: (params: object) => boolean
    }
-) => void

Add a technical indicator.

  • indicator technical indicator information
    • name indicator name, unique identifier for creation and operation
    • shortName short name for display
    • precision precision
    • calcParams calculation parameters
    • shouldOhlc needs ohlc auxiliary graphics
    • shouldFormatBigNumber should format large numbers. For example, 1000 is converted to 1k, 1000000 is converted to 1M, etc.
    • visible visible or not
    • extendData extended data
    • series indicator series, options are 'normal', 'price' and 'volume'
    • figures graphics configuration
    • minValue specifies the minimum value
    • maxValue specifies the maximum value
    • styles styles
    • calc calculation method
    • regenerateFigures method to regenerate figure information
    • createTooltipDataSource method to create custom tip information
    • draw custom drawing method

getSupportedIndicators()

typescript
() => string[]
() => string[]

Get technical indicators for chart support.

registerOverlay(overlay)

typescript
(
-   overlay: {
-      name: string
-      totalStep?: number
-      lock?: boolean
-      visible?: boolean
-      zLevel?: number
-      needDefaultPointFigure?: boolean
-      needDefaultXAxisFigure?: boolean
-      needDefaultYAxisFigure?: boolean
-      mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
-      modeSensitivity?: number
-      points?: Array<{ timestamp: number, dataIndex?: number, value?: number }>
-      extendData?: any
-      styles?: object
-      createPointFigures?: (params: object) => {
-         key?: string
-         type: string
-         attrs: any | any[]
-         styles?: any
-         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-      } | Array<{
-         key?: string
-         type: string
-         attrs: any | any[]
-         styles?: any
-         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-      }>
-      createXAxisFigures?: (params: object) => {
-         key?: string
-         type: string
-         attrs: any | any[]
-         styles?: any
-         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-      } | Array<{
-         key?: string,
-         type: string,
-         attrs: any | any[]
-         styles?: any
-         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-      }>
-      createYAxisFigures?: (params: object) => {
-         key?: string
-         type: string
-         attrs: any | any[]
-         styles?: any
-         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-      } | Array<{
-         key?: string
-         type: string
-         attrs: any | any[]
-         styles?: any
-         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-      }>
-      performEventPressedMove?: (params: object) => void
-      performEventMoveForDrawing?: (params: object) => void
-      onDrawStart?: (event: object) => boolean
-      onDrawing?: (event: object) => boolean
-      onDrawEnd?: (event: object) => boolean
-      onClick?: (event: object) => boolean
-      onDoubleClick?: (event: object) => boolean
-      onRightClick?: (event: object) => boolean
-      onPressedMoveStart?: (event: object) => boolean
-      onPressedMoving?: (event: object) => boolean
-      onPressedMoveEnd?: (event: object) => boolean,
-      onMouseEnter?: (event: object) => boolean
-      onMouseLeave?: (event: object) => boolean
-      onRemoved?: (event: object) => boolean
-      onSelected?: (event: object) => boolean
-      onDeselected?: (event: object) => boolean
-   }
-) => void
(
+) => void

Add a technical indicator.

  • indicator technical indicator information
    • name indicator name, unique identifier for creation and operation
    • shortName short name for display
    • precision precision
    • calcParams calculation parameters
    • shouldOhlc needs ohlc auxiliary graphics
    • shouldFormatBigNumber should format large numbers. For example, 1000 is converted to 1k, 1000000 is converted to 1M, etc.
    • visible visible or not
    • extendData extended data
    • series indicator series, options are 'normal', 'price' and 'volume'
    • figures graphics configuration
    • minValue specifies the minimum value
    • maxValue specifies the maximum value
    • styles styles
    • calc calculation method
    • regenerateFigures method to regenerate figure information
    • createTooltipDataSource method to create custom tip information
    • draw custom drawing method

getSupportedIndicators()

typescript
() => string[]
() => string[]

Get technical indicators for chart support.

registerOverlay(overlay)

typescript
(
+   overlay: {
+      name: string
+      totalStep?: number
+      lock?: boolean
+      visible?: boolean
+      zLevel?: number
+      needDefaultPointFigure?: boolean
+      needDefaultXAxisFigure?: boolean
+      needDefaultYAxisFigure?: boolean
+      mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+      modeSensitivity?: number
+      points?: Array<{ timestamp: number, dataIndex?: number, value?: number }>
+      extendData?: any
+      styles?: object
+      createPointFigures?: (params: object) => {
+         key?: string
+         type: string
+         attrs: any | any[]
+         styles?: any
+         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+      } | Array<{
+         key?: string
+         type: string
+         attrs: any | any[]
+         styles?: any
+         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+      }>
+      createXAxisFigures?: (params: object) => {
+         key?: string
+         type: string
+         attrs: any | any[]
+         styles?: any
+         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+      } | Array<{
+         key?: string,
+         type: string,
+         attrs: any | any[]
+         styles?: any
+         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+      }>
+      createYAxisFigures?: (params: object) => {
+         key?: string
+         type: string
+         attrs: any | any[]
+         styles?: any
+         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+      } | Array<{
+         key?: string
+         type: string
+         attrs: any | any[]
+         styles?: any
+         ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+      }>
+      performEventPressedMove?: (params: object) => void
+      performEventMoveForDrawing?: (params: object) => void
+      onDrawStart?: (event: object) => boolean
+      onDrawing?: (event: object) => boolean
+      onDrawEnd?: (event: object) => boolean
+      onClick?: (event: object) => boolean
+      onDoubleClick?: (event: object) => boolean
+      onRightClick?: (event: object) => boolean
+      onPressedMoveStart?: (event: object) => boolean
+      onPressedMoving?: (event: object) => boolean
+      onPressedMoveEnd?: (event: object) => boolean,
+      onMouseEnter?: (event: object) => boolean
+      onMouseLeave?: (event: object) => boolean
+      onRemoved?: (event: object) => boolean
+      onSelected?: (event: object) => boolean
+      onDeselected?: (event: object) => boolean
+   }
+) => void
(
    overlay: {
       name: string
       totalStep?: number
@@ -355,16 +356,16 @@
       onSelected?: (event: object) => boolean
       onDeselected?: (event: object) => boolean
    }
-) => void

Add a overlay.

  • overlay overlay information, see overlay for details
    • name overlay name, unique identifier for creation
    • totalStep total implementation steps
    • lock is locked to prevent dragging
    • visible visible or not
    • zLevel draw level
    • needDefaultPointFigure needs the default point figure
    • needDefaultXAxisFigure needs the default x-axis figure
    • needDefaultYAxisFigure needs the default y-axis figure
    • mode mode, options are 'normal', 'weak_magnet' and 'strong_magnet'
    • modeSensitivity mode sensitivity, only valid when mode is weak_magnet
    • points point information
    • extendData extended data
    • styles styles
    • createPointFigures creates figures corresponding to points
    • createXAxisFigures creates figures on the x-axis
    • createYAxisFigures creates figures on the y-axis
    • performEventPressedMove special handling method for press and move event
    • performEventMoveForDrawing special processing method during moving event
    • onDrawStart start drawing event
    • onDrawing drawing event
    • onDrawEnd draw end event
    • onClick click event
    • onDoubleClick double click event
    • onRightClick right click event
    • onPressedMoveStart press start move event
    • onPressedMoving Press and move event
    • onPressedMoveEnd Press and move end event
    • onMouseEnter mouse enter event
    • onMouseLeave mouse out event
    • onRemoved delete event
    • onSelected selected event
    • onDeselected deselected event

getSupportedOverlays()

typescript
() => string[]
() => string[]

Get overlays for chart support.

version()

typescript
() => string
() => string

Get the current version number of the chart.

utils

A collection of helper methods.

utils.clone(target)

typescript
(target: any) => any
(target: any) => any

deep copy.

utils.merge(target, source)

typescript
(target: object, source: object) => void
(target: object, source: object) => void

Merge one object into another.

utils.isString(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is a string.

utils.isNumber(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is a number.

utils.isValid(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is valid.

utils.isObject(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is an object.

utils.isFunction(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is a method.

utils.isBoolean(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is a bool value.

utils.formatValue(value, key, defaultValue)

typescript
(data: any, key: string, defaultValue?: any) => any
(data: any, key: string, defaultValue?: any) => any

Get the corresponding value from a certain value, support nesting, such as const o = { a: { b: { c: 1 } } }, formatValue(o, 'a.b.c') takes the value of c .

utils.formatPrecision(value)

typescript
(value: string | number, precision?: number) => string
(value: string | number, precision?: number) => string

Formatting precision.

utils.formatBigNumber(value)

typescript
(value: string | number) => string
(value: string | number) => string

Format large numbers, such as 1000 into 1k, 1000000 into 1M, etc.

utils.formatDate(dateTimeFormat, timestamp, format)

typescript
(dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string) => string
(dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string) => string

Format date. format, such as 'YYYY-MM-DD HH:mm:ss'.

utils.formatThousands(value, sign)

typescript
(value: string | number, sign: string) => string
(value: string | number, sign: string) => string

Format thousands separator.

utils.calcTextWidth(text, size, weight, family)

typescript
(text: string, size?: number, weight?: string | number, family?: string) => number
(text: string, size?: number, weight?: string | number, family?: string) => number

Calculate text width.

utils.getLinearSlopeIntercept(coordinate1, coordinate2)

typescript
(
-   coordinate1: {
-      x: number
-      y: number
-   },
-   coordinate2: {
-      x: number
-      y: number
-   }
-) => []
(
+) => void

Add a overlay.

  • overlay overlay information, see overlay for details
    • name overlay name, unique identifier for creation
    • totalStep total implementation steps
    • lock is locked to prevent dragging
    • visible visible or not
    • zLevel draw level
    • needDefaultPointFigure needs the default point figure
    • needDefaultXAxisFigure needs the default x-axis figure
    • needDefaultYAxisFigure needs the default y-axis figure
    • mode mode, options are 'normal', 'weak_magnet' and 'strong_magnet'
    • modeSensitivity mode sensitivity, only valid when mode is weak_magnet
    • points point information
    • extendData extended data
    • styles styles
    • createPointFigures creates figures corresponding to points
    • createXAxisFigures creates figures on the x-axis
    • createYAxisFigures creates figures on the y-axis
    • performEventPressedMove special handling method for press and move event
    • performEventMoveForDrawing special processing method during moving event
    • onDrawStart start drawing event
    • onDrawing drawing event
    • onDrawEnd draw end event
    • onClick click event
    • onDoubleClick double click event
    • onRightClick right click event
    • onPressedMoveStart press start move event
    • onPressedMoving Press and move event
    • onPressedMoveEnd Press and move end event
    • onMouseEnter mouse enter event
    • onMouseLeave mouse out event
    • onRemoved delete event
    • onSelected selected event
    • onDeselected deselected event

getSupportedOverlays()

typescript
() => string[]
() => string[]

Get overlays for chart support.

version()

typescript
() => string
() => string

Get the current version number of the chart.

utils

A collection of helper methods.

utils.clone(target)

typescript
(target: any) => any
(target: any) => any

deep copy.

utils.merge(target, source)

typescript
(target: object, source: object) => void
(target: object, source: object) => void

Merge one object into another.

utils.isString(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is a string.

utils.isNumber(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is a number.

utils.isValid(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is valid.

utils.isObject(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is an object.

utils.isFunction(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is a method.

utils.isBoolean(value)

typescript
(value: any) => boolean
(value: any) => boolean

Checks if a value is a bool value.

utils.formatValue(value, key, defaultValue)

typescript
(data: any, key: string, defaultValue?: any) => any
(data: any, key: string, defaultValue?: any) => any

Get the corresponding value from a certain value, support nesting, such as const o = { a: { b: { c: 1 } } }, formatValue(o, 'a.b.c') takes the value of c .

utils.formatPrecision(value)

typescript
(value: string | number, precision?: number) => string
(value: string | number, precision?: number) => string

Formatting precision.

utils.formatBigNumber(value)

typescript
(value: string | number) => string
(value: string | number) => string

Format large numbers, such as 1000 into 1k, 1000000 into 1M, etc.

utils.formatDate(dateTimeFormat, timestamp, format)

typescript
(dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string) => string
(dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string) => string

Format date. format, such as 'YYYY-MM-DD HH:mm:ss'.

utils.formatThousands(value, sign)

typescript
(value: string | number, sign: string) => string
(value: string | number, sign: string) => string

Format thousands separator.

utils.calcTextWidth(text, size, weight, family)

typescript
(text: string, size?: number, weight?: string | number, family?: string) => number
(text: string, size?: number, weight?: string | number, family?: string) => number

Calculate text width.

utils.getLinearSlopeIntercept(coordinate1, coordinate2)

typescript
(
+   coordinate1: {
+      x: number
+      y: number
+   },
+   coordinate2: {
+      x: number
+      y: number
+   }
+) => []
(
    coordinate1: {
       x: number
       y: number
@@ -373,20 +374,20 @@
       x: number
       y: number
    }
-) => []

According to two coordinate points, get the slope and constant term of the line composed of points, namely k and b in y = kx + b.

utils.getLinearYFromCoordinates(coordinate1, coordinate2, targetCoordinate)

typescript
(
-  coordinate1: {
-      x: number
-      y: number
-   },
-   coordinate2: {
-      x: number
-      y: number
-   },
-   targetCoordinate: {
-      x: number
-      y: number
-   }
-) => number
(
+) => []

According to two coordinate points, get the slope and constant term of the line composed of points, namely k and b in y = kx + b.

utils.getLinearYFromCoordinates(coordinate1, coordinate2, targetCoordinate)

typescript
(
+  coordinate1: {
+      x: number
+      y: number
+   },
+   coordinate2: {
+      x: number
+      y: number
+   },
+   targetCoordinate: {
+      x: number
+      y: number
+   }
+) => number
(
   coordinate1: {
       x: number
       y: number
@@ -399,31 +400,31 @@
       x: number
       y: number
    }
-) => number

Get the y-axis coordinate value of a point on the line formed by two other coordinate points.

utils.getLinearYFromSlopeIntercept(kb, targetCoordinate)

typescript
(
-   kb: Array<number>,
-   targetCoordinate: {
-      x: number
-      y: number
-   }
-) => number
(
+) => number

Get the y-axis coordinate value of a point on the line formed by two other coordinate points.

utils.getLinearYFromSlopeIntercept(kb, targetCoordinate)

typescript
(
+   kb: Array<number>,
+   targetCoordinate: {
+      x: number
+      y: number
+   }
+) => number
(
    kb: Array<number>,
    targetCoordinate: {
       x: number
       y: number
    }
-) => number

Get the y-coordinate value of a point on the line formed by the slope and the constant term.

utils.checkCoordinateOnArc(coordinate, arc)

typescript
(
-   coordinate: {
-      x: number
-      y: number
-   },
-   arc: {
-      x: number
-      y: number
-      r: number
-      startAngle: number
-      endAngle: number
-   }
-) => boolean
(
+) => number

Get the y-coordinate value of a point on the line formed by the slope and the constant term.

utils.checkCoordinateOnArc(coordinate, arc)

typescript
(
+   coordinate: {
+      x: number
+      y: number
+   },
+   arc: {
+      x: number
+      y: number
+      r: number
+      startAngle: number
+      endAngle: number
+   }
+) => boolean
(
    coordinate: {
       x: number
       y: number
@@ -435,17 +436,17 @@
       startAngle: number
       endAngle: number
    }
-) => boolean

Check whether a certain coordinate point is on the arc.

  • coordinate coordinate point information
  • arc arc parameter
    • x the x-axis value of the center of the circle
    • y the y-axis value of the center of the circle
    • r radius
    • startAngle start angle
    • endAngle end angle

utils.checkCoordinateOnCircle(coordinate, circle)

typescript
(
-   coordinate: {
-      x: number
-      y: number
-   },
-   circle: {
-      x: number
-      y: number
-      r: number
-   }
-) => boolean
(
+) => boolean

Check whether a certain coordinate point is on the arc.

  • coordinate coordinate point information
  • arc arc parameter
    • x the x-axis value of the center of the circle
    • y the y-axis value of the center of the circle
    • r radius
    • startAngle start angle
    • endAngle end angle

utils.checkCoordinateOnCircle(coordinate, circle)

typescript
(
+   coordinate: {
+      x: number
+      y: number
+   },
+   circle: {
+      x: number
+      y: number
+      r: number
+   }
+) => boolean
(
    coordinate: {
       x: number
       y: number
@@ -455,18 +456,18 @@
       y: number
       r: number
    }
-) => boolean

Checks whether a certain coordinate point is on a circle.

  • coordinate coordinate point information
  • circle circle parameter
    • x the x-axis value of the center of the circle
    • y the y-axis value of the center of the circle
    • r radius

utils.checkCoordinateOnLine(coordinate, line)

typescript
(
-   coordinate: {
-      x: number
-      y: number
-   },
-   line: {
-      coordinates: Array<{
-         x: number
-         y: number
-      }>
-   }
-) => boolean
(
+) => boolean

Checks whether a certain coordinate point is on a circle.

  • coordinate coordinate point information
  • circle circle parameter
    • x the x-axis value of the center of the circle
    • y the y-axis value of the center of the circle
    • r radius

utils.checkCoordinateOnLine(coordinate, line)

typescript
(
+   coordinate: {
+      x: number
+      y: number
+   },
+   line: {
+      coordinates: Array<{
+         x: number
+         y: number
+      }>
+   }
+) => boolean
(
    coordinate: {
       x: number
       y: number
@@ -477,18 +478,18 @@
          y: number
       }>
    }
-) => boolean

Check if a certain coordinate point is on the line.

utils.checkCoordinateOnPolygon(coordinate, polygon)

typescript
(
-   coordinate: {
-      x: number
-      y: number
-   },
-   polygon: {
-      coordinates: Array<{
-         x: number
-         y: number
-      }>
-   }
-) => boolean
(
+) => boolean

Check if a certain coordinate point is on the line.

utils.checkCoordinateOnPolygon(coordinate, polygon)

typescript
(
+   coordinate: {
+      x: number
+      y: number
+   },
+   polygon: {
+      coordinates: Array<{
+         x: number
+         y: number
+      }>
+   }
+) => boolean
(
    coordinate: {
       x: number
       y: number
@@ -499,18 +500,18 @@
          y: number
       }>
    }
-) => boolean

Checks whether a certain coordinate point is on a polygon.

utils.checkCoordinateOnRect(coordinate, rect)

typescript
(
-   coordinate: {
-      x: number
-      y: number
-   },
-   rect: {
-      x: number
-      y: number
-      width: number
-      height: number
-   }
-) => boolean
(
+) => boolean

Checks whether a certain coordinate point is on a polygon.

utils.checkCoordinateOnRect(coordinate, rect)

typescript
(
+   coordinate: {
+      x: number
+      y: number
+   },
+   rect: {
+      x: number
+      y: number
+      width: number
+      height: number
+   }
+) => boolean
(
    coordinate: {
       x: number
       y: number
@@ -521,25 +522,25 @@
       width: number
       height: number
    }
-) => boolean

Checks whether a certain coordinate point is on a rectangle.

  • coordinate coordinate point information
  • rect rectangle parameter
    • x starting point x-axis value
    • y starting point y-axis value
    • width width
    • height height

utils.checkCoordinateOnText(coordinate, text, styles)

typescript
(
-   coordinate: {
-      x: number
-      y: number
-   },
-   text: {
-      x: number
-      y: number
-      text: any
-      align?: 'center' | 'end' | 'left' | 'right' | 'start'
-      baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
-   },
-   styles: {
-      color?: string
-      size?: number
-      family?: string
-      weight?: number | string
-   }
-) => boolean
(
+) => boolean

Checks whether a certain coordinate point is on a rectangle.

  • coordinate coordinate point information
  • rect rectangle parameter
    • x starting point x-axis value
    • y starting point y-axis value
    • width width
    • height height

utils.checkCoordinateOnText(coordinate, text, styles)

typescript
(
+   coordinate: {
+      x: number
+      y: number
+   },
+   text: {
+      x: number
+      y: number
+      text: any
+      align?: 'center' | 'end' | 'left' | 'right' | 'start'
+      baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
+   },
+   styles: {
+      color?: string
+      size?: number
+      family?: string
+      weight?: number | string
+   }
+) => boolean
(
    coordinate: {
       x: number
       y: number
@@ -557,22 +558,22 @@
       family?: string
       weight?: number | string
    }
-) => boolean

Check if a certain coordinate point is on the text.

  • coordinate coordinate point information
  • text text parameter
    • x starting point x-axis value
    • y starting point y-axis value
    • text text content
    • align horizontal alignment
    • baseline vertical alignment
  • styles styles
    • color color
    • size size
    • family font
    • weight weight

utils.drawArc(ctx, arc, styles)

typescript
(
-   ctx: CanvasRenderingContext2D,
-   arc: {
-      x: number
-      y: number
-      r: number
-      startAngle: number
-      endAngle: number
-   },
-   styles: {
-      style?: 'solid' | 'dashed'
-      size?: number
-      color?: string
-      dashedValue?: number[]
-   }
-) => void
(
+) => boolean

Check if a certain coordinate point is on the text.

  • coordinate coordinate point information
  • text text parameter
    • x starting point x-axis value
    • y starting point y-axis value
    • text text content
    • align horizontal alignment
    • baseline vertical alignment
  • styles styles
    • color color
    • size size
    • family font
    • weight weight

utils.drawArc(ctx, arc, styles)

typescript
(
+   ctx: CanvasRenderingContext2D,
+   arc: {
+      x: number
+      y: number
+      r: number
+      startAngle: number
+      endAngle: number
+   },
+   styles: {
+      style?: 'solid' | 'dashed'
+      size?: number
+      color?: string
+      dashedValue?: number[]
+   }
+) => void
(
    ctx: CanvasRenderingContext2D,
    arc: {
       x: number
@@ -587,22 +588,22 @@
       color?: string
       dashedValue?: number[]
    }
-) => void

Draw an arc.

  • ctx canvas context
  • arc arc parameter
    • x the x-axis value of the center of the circle
    • y the y-axis value of the center of the circle
    • r radius
    • startAngle starting angle
    • endAngle end angle
  • styles styles
    • style arc style
    • size thickness
    • color color
    • dashedValue Dashed parameter value

utils.drawCircle(ctx, circle, styles)

typescript
(
-   ctx: CanvasRenderingContext2D,
-   circle: {
-      x: number
-      y: number
-      r: number
-   },
-   styles: {
-      style?: 'stroke' | 'fill' | 'stroke_fill'
-      color?: string | CanvasGradient
-      borderColor?: string
-      borderSize?: number
-      borderStyle?: 'solid' | 'dashed'
-      borderDashedValue?: Array<number>
-   }
-) => void
(
+) => void

Draw an arc.

  • ctx canvas context
  • arc arc parameter
    • x the x-axis value of the center of the circle
    • y the y-axis value of the center of the circle
    • r radius
    • startAngle starting angle
    • endAngle end angle
  • styles styles
    • style arc style
    • size thickness
    • color color
    • dashedValue Dashed parameter value

utils.drawCircle(ctx, circle, styles)

typescript
(
+   ctx: CanvasRenderingContext2D,
+   circle: {
+      x: number
+      y: number
+      r: number
+   },
+   styles: {
+      style?: 'stroke' | 'fill' | 'stroke_fill'
+      color?: string | CanvasGradient
+      borderColor?: string
+      borderSize?: number
+      borderStyle?: 'solid' | 'dashed'
+      borderDashedValue?: Array<number>
+   }
+) => void
(
    ctx: CanvasRenderingContext2D,
    circle: {
       x: number
@@ -617,21 +618,21 @@
       borderStyle?: 'solid' | 'dashed'
       borderDashedValue?: Array<number>
    }
-) => void

Draw the circle.

  • ctx canvas context
  • circle circle parameter
    • x the x-axis value of the center of the circle
    • y the y-axis value of the center of the circle
    • r radius
  • styles styles
    • style style
    • color color
    • borderColor border color
    • borderSize border thickness
    • borderStyle border style
    • borderDashedValue border dashed line parameter value

utils.drawLine(ctx, line, styles)

typescript
(
-   ctx: CanvasRenderingContext2D,
-   line: {
-      coordinates: Array<{
-         x: number
-         y: number
-      }>
-   },
-   styles: {
-      style?: 'solid' | 'dashed'
-      size?: number
-      color?: string
-      dashedValue?: number[]
-   }
-) => void
(
+) => void

Draw the circle.

  • ctx canvas context
  • circle circle parameter
    • x the x-axis value of the center of the circle
    • y the y-axis value of the center of the circle
    • r radius
  • styles styles
    • style style
    • color color
    • borderColor border color
    • borderSize border thickness
    • borderStyle border style
    • borderDashedValue border dashed line parameter value

utils.drawLine(ctx, line, styles)

typescript
(
+   ctx: CanvasRenderingContext2D,
+   line: {
+      coordinates: Array<{
+         x: number
+         y: number
+      }>
+   },
+   styles: {
+      style?: 'solid' | 'dashed'
+      size?: number
+      color?: string
+      dashedValue?: number[]
+   }
+) => void
(
    ctx: CanvasRenderingContext2D,
    line: {
       coordinates: Array<{
@@ -645,23 +646,23 @@
       color?: string
       dashedValue?: number[]
    }
-) => void

Draw the line.

  • ctx canvas context
  • line line parameter
  • styles styles
    • style line style
    • size thickness
    • color color
    • dashedValue Dashed parameter value

utils.drawPolygon(ctx, polygon, styles)

typescript
(
-   ctx: CanvasRenderingContext2D,
-   polygon: {
-      coordinates: Array<{
-         x: number
-         y: number
-      }>
-   },
-   styles: {
-      style?: 'stroke' | 'fill' | 'stroke_fill'
-      color?: string | CanvasGradient
-      borderColor?: string
-      borderSize?: number
-      borderStyle?: 'solid' | 'dashed'
-      borderDashedValue?: Array<number>
-   }
-) => void
(
+) => void

Draw the line.

  • ctx canvas context
  • line line parameter
  • styles styles
    • style line style
    • size thickness
    • color color
    • dashedValue Dashed parameter value

utils.drawPolygon(ctx, polygon, styles)

typescript
(
+   ctx: CanvasRenderingContext2D,
+   polygon: {
+      coordinates: Array<{
+         x: number
+         y: number
+      }>
+   },
+   styles: {
+      style?: 'stroke' | 'fill' | 'stroke_fill'
+      color?: string | CanvasGradient
+      borderColor?: string
+      borderSize?: number
+      borderStyle?: 'solid' | 'dashed'
+      borderDashedValue?: Array<number>
+   }
+) => void
(
    ctx: CanvasRenderingContext2D,
    polygon: {
       coordinates: Array<{
@@ -677,24 +678,24 @@
       borderStyle?: 'solid' | 'dashed'
       borderDashedValue?: Array<number>
    }
-) => void

Draw the polygon.

  • ctx canvas context
  • polygon polygon parameter
  • styles styles
    • style style
    • color color
    • borderColor border color
    • borderSize border thickness
    • borderStyle border style
    • borderDashedValue border dashed line parameter value

utils.drawRect(ctx, rect, styles)

typescript
(
-   ctx: CanvasRenderingContext2D,
-   rect: {
-      x: number
-      y: number
-      width: number
-      height: number
-   },
-   styles: {
-      style?: 'stroke' | 'fill' | 'stroke_fill'
-      color?: string | CanvasGradient
-      borderColor?: string
-      borderSize?: number
-      borderStyle?: 'solid' | 'dashed'
-      borderDashedValue?: Array<number>
-      borderRadius?: number
-   }
-) => void
(
+) => void

Draw the polygon.

  • ctx canvas context
  • polygon polygon parameter
  • styles styles
    • style style
    • color color
    • borderColor border color
    • borderSize border thickness
    • borderStyle border style
    • borderDashedValue border dashed line parameter value

utils.drawRect(ctx, rect, styles)

typescript
(
+   ctx: CanvasRenderingContext2D,
+   rect: {
+      x: number
+      y: number
+      width: number
+      height: number
+   },
+   styles: {
+      style?: 'stroke' | 'fill' | 'stroke_fill'
+      color?: string | CanvasGradient
+      borderColor?: string
+      borderSize?: number
+      borderStyle?: 'solid' | 'dashed'
+      borderDashedValue?: Array<number>
+      borderRadius?: number
+   }
+) => void
(
    ctx: CanvasRenderingContext2D,
    rect: {
       x: number
@@ -711,35 +712,35 @@
       borderDashedValue?: Array<number>
       borderRadius?: number
    }
-) => void

Draw a rectangle.

  • ctx canvas context
  • rect rectangle parameter
    • x starting point x-axis value
    • y starting point y-axis value
    • width width
    • height height
  • styles styles
    • style style
    • color color
    • borderColor border color
    • borderSize border thickness
    • borderStyle border style
    • borderDashedValue border dashed line parameter value
    • borderRadius border radius

utils.drawRectText(ctx, rectText, styles)

typescript
(
-   ctx: CanvasRenderingContext2D,
-   rectText: {
-      x: number
-      y: number
-      text: any
-      width?: number
-      height?: number
-      align?: 'center' | 'end' | 'left' | 'right' | 'start'
-      baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
-   },
-   styles: {
-      style?: 'stroke' | 'fill' | 'stroke_fill'
-      color?: string
-      size?: number
-      family?: string
-      weight?: number | string
-      paddingLeft?: number
-      paddingTop?: number
-      paddingRight?: number
-      paddingBottom?: number
-      borderStyle?: 'solid' | 'dashed'
-      borderDashedValue?: number[]
-      borderSize?: number
-      borderColor?: string
-      borderRadius?: number
-      backgroundColor?: string
-   }
-) => void
(
+) => void

Draw a rectangle.

  • ctx canvas context
  • rect rectangle parameter
    • x starting point x-axis value
    • y starting point y-axis value
    • width width
    • height height
  • styles styles
    • style style
    • color color
    • borderColor border color
    • borderSize border thickness
    • borderStyle border style
    • borderDashedValue border dashed line parameter value
    • borderRadius border radius

utils.drawRectText(ctx, rectText, styles)

typescript
(
+   ctx: CanvasRenderingContext2D,
+   rectText: {
+      x: number
+      y: number
+      text: any
+      width?: number
+      height?: number
+      align?: 'center' | 'end' | 'left' | 'right' | 'start'
+      baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
+   },
+   styles: {
+      style?: 'stroke' | 'fill' | 'stroke_fill'
+      color?: string
+      size?: number
+      family?: string
+      weight?: number | string
+      paddingLeft?: number
+      paddingTop?: number
+      paddingRight?: number
+      paddingBottom?: number
+      borderStyle?: 'solid' | 'dashed'
+      borderDashedValue?: number[]
+      borderSize?: number
+      borderColor?: string
+      borderRadius?: number
+      backgroundColor?: string
+   }
+) => void
(
    ctx: CanvasRenderingContext2D,
    rectText: {
       x: number
@@ -767,8 +768,8 @@
       borderRadius?: number
       backgroundColor?: string
    }
-) => void

Draw text.

  • ctx canvas context
  • rectText text parameter
    • x starting point x-axis value
    • y starting point y-axis value
    • text text content
    • width width
    • height height
    • align horizontal alignment
    • baseline vertical alignment
  • styles styles
    • style style
    • color color
    • size size
    • family font
    • weight weight
    • paddingLeft left padding,
    • paddingTop top padding,
    • paddingRight right padding,
    • paddingBottom bottom padding,
    • borderColor border color
    • borderSize border thickness
    • borderStyle border style
    • borderRadius border radius size
    • borderDashedValue border dashed line parameter value
    • backgroundColor background color

utils.drawRectText(ctx, rectText, styles)

Same as utils.drawRectText(ctx, text, styles), it is deprecated and will be deleted after v10. Please use utils.drawRectText(ctx, text, styles) instead.

Released under the Apache License V2.

- +) => void

Draw text.

  • ctx canvas context
  • rectText text parameter
    • x starting point x-axis value
    • y starting point y-axis value
    • text text content
    • width width
    • height height
    • align horizontal alignment
    • baseline vertical alignment
  • styles styles
    • style style
    • color color
    • size size
    • family font
    • weight weight
    • paddingLeft left padding,
    • paddingTop top padding,
    • paddingRight right padding,
    • paddingBottom bottom padding,
    • borderColor border color
    • borderSize border thickness
    • borderStyle border style
    • borderRadius border radius size
    • borderDashedValue border dashed line parameter value
    • backgroundColor background color

utils.drawRectText(ctx, rectText, styles)

Same as utils.drawRectText(ctx, text, styles), it is deprecated and will be deleted after v10. Please use utils.drawRectText(ctx, text, styles) instead.

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/en-US/guide/datasource.html b/en-US/guide/datasource.html index 15ca8f120..af6afdb04 100644 --- a/en-US/guide/datasource.html +++ b/en-US/guide/datasource.html @@ -5,33 +5,34 @@ 📚 Data | KLineChart - + - + - - - + + + - + + -
Skip to content
On this page

📚 Data

The data required for the chart must be in a fixed format. Through the chart API applyNewData(dataList, more), applyMoreData(dataList, more) and updateData(data) to interact data with the chart.

typescript
{
+    
Skip to content

📚 Data

The data required for the chart must be in a fixed format. Through the chart API applyNewData(dataList, more), applyMoreData(dataList, more) and updateData(data) to interact data with the chart.

typescript
{
   // Timestamp, millisecond, required fields
-  timestamp: number
+  timestamp: number
   // Open price, required fields
-  open: number
+  open: number
   // Close price, required field
-  close: number
+  close: number
   // Highest price, required field
-  high: number
+  high: number
   // Lowest price, required field
-  low: number
+  low: number
   // volume, optional field
-  volume: number
+  volume: number
   // Turnover, a non-required field, if you need to display the technical indicators 'EMV' and 'AVP', you need to fill this field with data.
-  turnover: number
+  turnover: number
 }
{
   // Timestamp, millisecond, required fields
   timestamp: number
@@ -47,8 +48,8 @@
   volume: number
   // Turnover, a non-required field, if you need to display the technical indicators 'EMV' and 'AVP', you need to fill this field with data.
   turnover: number
-}

Released under the Apache License V2.

- +}

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/en-US/guide/environment.html b/en-US/guide/environment.html index 54670e218..c190d9fba 100644 --- a/en-US/guide/environment.html +++ b/en-US/guide/environment.html @@ -5,26 +5,27 @@ 🏝️ Environment | KLineChart - + - + - - - + + + - + + -
Skip to content
On this page

🏝️ Environment

Browser support

The chart is built based on html5 canvas and needs to run on a browser that supports canvas. If it needs to run on the mobile terminal, please use webview to load it.

Polyfill

core.js

The internal collection of the chart uses Map for compatibility with unsupported older browsers.

javascript
import 'core.js';
-import { init } from 'klincharts';
import 'core.js';
-import { init } from 'klincharts';

Intl.js

Charts rely on Intl, some browsers do not have this API.

javascript
import 'intl';
-import 'intl/local-data/jsonp/en';
-import { init } from 'klincharts';
import 'intl';
+    
Skip to content

🏝️ Environment

Browser support

The chart is built based on html5 canvas and needs to run on a browser that supports canvas. If it needs to run on the mobile terminal, please use webview to load it.

Polyfill

core.js

The internal collection of the chart uses Map for compatibility with unsupported older browsers.

javascript
import 'core.js';
+import { init } from 'klincharts';
import 'core.js';
+import { init } from 'klincharts';

Intl.js

Charts rely on Intl, some browsers do not have this API.

javascript
import 'intl';
+import 'intl/local-data/jsonp/en';
+import { init } from 'klincharts';
import 'intl';
 import 'intl/local-data/jsonp/en';
-import { init } from 'klincharts';

Released under the Apache License V2.

- +import { init } from 'klincharts';

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/en-US/guide/faq.html b/en-US/guide/faq.html index cdda612cd..491fb5ec5 100644 --- a/en-US/guide/faq.html +++ b/en-US/guide/faq.html @@ -5,28 +5,29 @@ 🙋 FAQ | KLineChart - + - + - - - + + + - + + -
Skip to content
On this page

🙋 FAQ

After the chart is initialized, only one line can be seen?

The chart always fills the container, checking to see if the container has height.

The candle shows a line, no fluctuation, what to do?

Chart default price precision is two decimal, call setPriceVolumePrecision(pricePrecision, volumePrecision) to set the precision.

How to create a real-time chart?

Through style settings.

javascript
chart.setStyles({
-  candle: {
-    type: 'area',
-  },
-});
chart.setStyles({
+    
Skip to content

🙋 FAQ

After the chart is initialized, only one line can be seen?

The chart always fills the container, checking to see if the container has height.

The candle shows a line, no fluctuation, what to do?

Chart default price precision is two decimal, call setPriceVolumePrecision(pricePrecision, volumePrecision) to set the precision.

How to create a real-time chart?

Through style settings.

javascript
chart.setStyles({
+  candle: {
+    type: 'area',
+  },
+});
chart.setStyles({
   candle: {
     type: 'area',
   },
-});

Built-in technical indicators, calculated data is not what you want, how to do?

You can override calc by the chart method createIndicator or overrideIndicator.

What if I want to create an indicator other than the built-in technical indicator?

Charts support custom technical indicators, see indicators for details.

Want to mark the point of sale, how should do?

Overlays can be used. The built-in overlay has a simpleAnnotation, which can be created with the chart api createOverlay({ name: 'simpleAnnotation', ... }, paneId).

Released under the Apache License V2.

- +});

Built-in technical indicators, calculated data is not what you want, how to do?

You can override calc by the chart method createIndicator or overrideIndicator.

What if I want to create an indicator other than the built-in technical indicator?

Charts support custom technical indicators, see indicators for details.

Want to mark the point of sale, how should do?

Overlays can be used. The built-in overlay has a simpleAnnotation, which can be created with the chart api createOverlay({ name: 'simpleAnnotation', ... }, paneId).

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/en-US/guide/feedback.html b/en-US/guide/feedback.html index a681815d8..04df722fc 100644 --- a/en-US/guide/feedback.html +++ b/en-US/guide/feedback.html @@ -5,21 +5,22 @@ 💬 Feedback | KLineChart - + - + - - + + - + - + + -
Skip to content
On this page

💬 Feedback

Github

Telegram

https://t.me/+098syuQtzI0yNzll

Discord

https://discord.gg/7YjHYgvvvZ

Wechat discussion group

Scan to add developers, note KLineChart, and join the group chat.

QQ discussion group

Released under the Apache License V2.

- +
Skip to content

💬 Feedback

Github

Telegram

https://t.me/+098syuQtzI0yNzll

Discord

https://discord.gg/7YjHYgvvvZ

Wechat discussion group

Scan to add developers, note KLineChart, and join the group chat.

QQ discussion group

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/en-US/guide/figure.html b/en-US/guide/figure.html index 2eca152f2..5c5a28ca6 100644 --- a/en-US/guide/figure.html +++ b/en-US/guide/figure.html @@ -5,56 +5,57 @@ Figure | KLineChart - + - + - - - + + + - + + -
Skip to content
On this page

Figure

Figure are an important part of the chart. All elements on the chart are composed of figures. If you need to make complex custom technical indicators and overlays, it is recommended to read carefully. This document describes the built-in figures and how to customize a figure. The basic figure can be obtained through the chart method klinecharts.getFigureClass(name).

Example of use

Note

It needs to be used when there is a canvas context.

javascript
// Get the figure class
+    
Skip to content

Figure

Figure are an important part of the chart. All elements on the chart are composed of figures. If you need to make complex custom technical indicators and overlays, it is recommended to read carefully. This document describes the built-in figures and how to customize a figure. The basic figure can be obtained through the chart method klinecharts.getFigureClass(name).

Example of use

Note

It needs to be used when there is a canvas context.

javascript
// Get the figure class
 // name is the name of the figure, such as 'arc', 'circle', etc.
-const Figure = klinecharts.getFigureClass(name)
+const Figure = klinecharts.getFigureClass(name)
 // instantiate and draw
 // attrs attribute
 // styles styles
 // ctx canvas context
-new Figure(attrs, styles).draw(ctx)
// Get the figure class
+new Figure(attrs, styles).draw(ctx)
// Get the figure class
 // name is the name of the figure, such as 'arc', 'circle', etc.
 const Figure = klinecharts.getFigureClass(name)
 // instantiate and draw
 // attrs attribute
 // styles styles
 // ctx canvas context
-new Figure(attrs, styles).draw(ctx)

Built-in figures

These figures are built into the chart, arc, circle, line, polygon, rect, text, rectText.

arc

typescript
new ({
-   attrs: {
+new Figure(attrs, styles).draw(ctx)

Built-in figures

These figures are built into the chart, arc, circle, line, polygon, rect, text, rectText.

arc

typescript
new ({
+   attrs: {
      // The x-axis coordinate value of the center of the circle
-     x: number
+     x: number
      // The y-axis coordinate value of the center of the circle
-     y: number
+     y: number
      // radius
-     r: number
+     r: number
      // start angle
-     startAngle: number
+     startAngle: number
      // end angle
-     endAngle: number
-   },
-   styles: {
+     endAngle: number
+   },
+   styles: {
      // style, optional `solid`, `dashed`
-     style?: 'solid' | 'dashed'
+     style?: 'solid' | 'dashed'
      // size
-     size?: number
+     size?: number
      // color
-     color?: string
+     color?: string
      // dotted line parameter
-     dashedValue?: number[]
-   }
-}) => Figure
new ({
+     dashedValue?: number[]
+   }
+}) => Figure
new ({
    attrs: {
      // The x-axis coordinate value of the center of the circle
      x: number
@@ -77,30 +78,30 @@
      // dotted line parameter
      dashedValue?: number[]
    }
-}) => Figure

circle

typescript
new ({
-   attrs: {
+}) => Figure

circle

typescript
new ({
+   attrs: {
      // The x-axis coordinate value of the center of the circle
-     x: number
+     x: number
      // The y-axis coordinate value of the center of the circle
-     y: number
+     y: number
      // radius
-     r: number
-   },
-   styles: {
+     r: number
+   },
+   styles: {
      // style, optional `fill`, `stroke`, `stroke_fill`
-     style?: 'fill' | 'stroke' | 'stroke_fill'
+     style?: 'fill' | 'stroke' | 'stroke_fill'
      // color
-     color?: string
+     color?: string
      // border style
-     borderStyle?: 'solid' | 'dashed'
+     borderStyle?: 'solid' | 'dashed'
      // border color
-     borderColor?: string
+     borderColor?: string
      // frame size
-     borderSize?: number
+     borderSize?: number
      // border dotted line parameters
-     borderDashedValue?: number[]
-   }
-}) => Figure
new ({
+     borderDashedValue?: number[]
+   }
+}) => Figure
new ({
    attrs: {
      // The x-axis coordinate value of the center of the circle
      x: number
@@ -123,25 +124,25 @@
      // border dotted line parameters
      borderDashedValue?: number[]
    }
-}) => Figure

line

typescript
new ({
-  attrs: {
+}) => Figure

line

typescript
new ({
+  attrs: {
     // set of coordinates
-    coordinates: Array<{
-      x: number
-      y: number
-    }>
-  },
-  styles: {
+    coordinates: Array<{
+      x: number
+      y: number
+    }>
+  },
+  styles: {
     // style, optional `solid`, `dashed`
-    style?: 'solid' | 'dashed'
+    style?: 'solid' | 'dashed'
     // size
-    size?: number
+    size?: number
     // color
-    color?: string
+    color?: string
     // dotted line parameter
-    dashedValue?: number[]
-  }
-}) => Figure
new ({
+    dashedValue?: number[]
+  }
+}) => Figure
new ({
   attrs: {
     // set of coordinates
     coordinates: Array<{
@@ -159,29 +160,29 @@
     // dotted line parameter
     dashedValue?: number[]
   }
-}) => Figure

###polygon

typescript
new ({
-  attrs: {
+}) => Figure

###polygon

typescript
new ({
+  attrs: {
     // set of coordinates
-    coordinates: Array<{
-      x: number
-      y: number
-    }>
-  },
-  styles: {
+    coordinates: Array<{
+      x: number
+      y: number
+    }>
+  },
+  styles: {
     // style, optional `fill`, `stroke`, `stroke_fill`
-    style?: 'fill' | 'stroke' | 'stroke_fill'
+    style?: 'fill' | 'stroke' | 'stroke_fill'
     // color
-    color?: string
+    color?: string
     // border style
-    borderStyle?: 'solid' | 'dashed'
+    borderStyle?: 'solid' | 'dashed'
     // border color
-    borderColor?: string
+    borderColor?: string
     // frame size
-    borderSize?: number
+    borderSize?: number
     // border dotted line parameter
-    borderDashedValue?: number[]
-  }
-}) => Figure
new ({
+    borderDashedValue?: number[]
+  }
+}) => Figure
new ({
   attrs: {
     // set of coordinates
     coordinates: Array<{
@@ -203,34 +204,34 @@
     // border dotted line parameter
     borderDashedValue?: number[]
   }
-}) => Figure

rect

typescript
new ({
-  attrs: {
+}) => Figure

rect

typescript
new ({
+  attrs: {
     // The x-axis coordinate value of the starting point
-    x: number
+    x: number
     // The y-axis coordinate value of the starting point
-    y: number
+    y: number
     // width
-    width: number
+    width: number
     // high
-    height: number
-  },
-  styles: {
+    height: number
+  },
+  styles: {
     // style, optional `fill`, `stroke`, `stroke_fill`
-    style?: 'fill' | 'stroke' | 'stroke_fill'
+    style?: 'fill' | 'stroke' | 'stroke_fill'
     // color
-    color?: string
+    color?: string
     // border style
-    borderStyle?: 'solid' | 'dashed'
+    borderStyle?: 'solid' | 'dashed'
     // border color
-    borderColor?: string
+    borderColor?: string
     // frame size
-    borderSize?: number
+    borderSize?: number
     // border dotted line parameters
-    borderDashedValue?: number[]
+    borderDashedValue?: number[]
     // Border fillet value
-    borderRadius?: number
-  }
-}) => Figure
new ({
+    borderRadius?: number
+  }
+}) => Figure
new ({
   attrs: {
     // The x-axis coordinate value of the starting point
     x: number
@@ -257,56 +258,56 @@
     // Border fillet value
     borderRadius?: number
   }
-}) => Figure

text

typescript
new ({
-  attrs: {
+}) => Figure

text

typescript
new ({
+  attrs: {
     // The x-axis coordinate value of the starting point
-    x: number
+    x: number
     // The y-axis coordinate value of the starting point
-    y: number
+    y: number
     // Fixed width
-    width: number
+    width: number
     // Fixed height
-    height: number
+    height: number
     // text content
-    text: any
+    text: any
     // alignment
-    align: CanvasTextAlign
+    align: CanvasTextAlign
      // benchmark
-    baseline: CanvasTextBaseline
-  },
-  styles: {
+    baseline: CanvasTextBaseline
+  },
+  styles: {
     // style, optional `fill`, `stroke`, `stroke_fill`
-    style?: 'fill' | 'stroke' | 'stroke_fill'
+    style?: 'fill' | 'stroke' | 'stroke_fill'
     // color
-    color?: string
+    color?: string
     // size
-    size?: number
+    size?: number
     // font
-    family?: string
+    family?: string
     // thickness
-    weight?: string | number
+    weight?: string | number
     // left padding
-    paddingLeft?: number
+    paddingLeft?: number
     // right padding
-    paddingRight?: number
+    paddingRight?: number
     // top padding
-    paddingTop?: number
+    paddingTop?: number
     // Bottom padding
-    paddingBottom?: number
+    paddingBottom?: number
     // border style
-    borderStyle?: 'solid' | 'dashed'
+    borderStyle?: 'solid' | 'dashed'
     // border color
-    borderColor?: string
+    borderColor?: string
     // frame size
-    borderSize?: number
+    borderSize?: number
     // border dotted line parameter
-    borderDashedValue?: number[]
+    borderDashedValue?: number[]
     // Border fillet value
-    borderRadius?: number
+    borderRadius?: number
     // background color
-    backgroundColor?: string | CanvasGradient
-  }
-}) => Figure
new ({
+    backgroundColor?: string | CanvasGradient
+  }
+}) => Figure
new ({
   attrs: {
     // The x-axis coordinate value of the starting point
     x: number
@@ -357,29 +358,29 @@
   }
 }) => Figure

rectText

Same as text, it is deprecated and will be deleted after v10. Please use text instead.

Customize figure

To create a custom figure, you only need to generate the figure information, and then add it globally through klinecharts.registerFigure, and add it to the chart to use it like the built-in figures.

Attribute description

typescript
{
   // Figure name, a required field, is the unique identifier for creation
-  name: string
+  name: string
 
   // Check whether the event is on the graph, return a boolean value
   checkEventOn: (
     // coordinates of the event
-    coordinate: {
-      x: number
-      y: number
+    coordinate: {
+      x: number
+      y: number
     },
     // graphics properties
-    attrs: any,
+    attrs: any,
      // style of the graph
-    styles: any
-  ) => boolean
+    styles: any
+  ) => boolean
 
   // draw
   draw: (
     // canvas context
-    ctx: CanvasRenderingContext2D,
+    ctx: CanvasRenderingContext2D,
     // figure properties
-    attrs: any,
+    attrs: any,
     // style of the figure
-    styles: any
+    styles: any
   ) => void
 }
{
   // Figure name, a required field, is the unique identifier for creation
@@ -409,50 +410,50 @@
   ) => void
 }

Example

The customization is specified with a diamond that can have a border and a background.

Step.1

First determine the attributes and styles. Attribute { x, y, width, height }, x is the x-axis coordinate value of the center point, y is the y-axis coordinate value of the center point, width is the width, and height is the height. Style { style, color, borderStyle, borderSize, borderColor, dashedValue }, style is the style type, we can define three options stroke, fill, stroke_fill, stroke has only a border, fill Only the background, stroke_fill has a border and a background, color is the color, borderStyle is the border style, you can define two options solid and dashed, solid is a solid line, dashed is a dashed line, borderSize is the border size, borderColor is the border color, and dashedValue is the dashed line value.

Step.2

Implement checkEventOn and draw two methods.

javascript
{
    name: 'diamond',
-   checkEventOn: (coordinate, attrs) => {
-     const { x, y, width, height } = attrs
-     const xDis = Math.abs(coordinate.x - x)
-     const yDis = Math.abs(coordinate.y - y)
-     return xDis * height + yDis * width < width * height / 2
+   checkEventOn: (coordinate, attrs) => {
+     const { x, y, width, height } = attrs
+     const xDis = Math.abs(coordinate.x - x)
+     const yDis = Math.abs(coordinate.y - y)
+     return xDis * height + yDis * width < width * height / 2
    },
-   draw: (ctx, attrs, styles) => {
-     const { x, y, width, height } = attrs
+   draw: (ctx, attrs, styles) => {
+     const { x, y, width, height } = attrs
      const {
-       style = 'fill',
-       color = 'currentColor',
-       borderSize = 1,
-       borderColor = 'currentColor',
-       borderStyle = 'solid,
-       borderDashedValue = [2, 2]
-     } = styles
+       style = 'fill',
+       color = 'currentColor',
+       borderSize = 1,
+       borderColor = 'currentColor',
+       borderStyle = 'solid,
+       borderDashedValue = [2, 2]
+     } = styles
      // Draw a filled diamond
-     if (style === 'fill' || styles.style === 'stroke_fill') {
-       ctx.fillStyle = color
-       ctx.beginPath()
-       ctx.moveTo(x - width / 2, y)
-       ctx.lineTo(x, y - height / 2)
-       ctx.lineTo(x + width / 2, y)
-       ctx.lineTo(x, y + height / 2)
-       ctx. closePath()
-       ctx.fill()
+     if (style === 'fill' || styles.style === 'stroke_fill') {
+       ctx.fillStyle = color
+       ctx.beginPath()
+       ctx.moveTo(x - width / 2, y)
+       ctx.lineTo(x, y - height / 2)
+       ctx.lineTo(x + width / 2, y)
+       ctx.lineTo(x, y + height / 2)
+       ctx. closePath()
+       ctx.fill()
      }
      // Draw a border diamond
-     if (style === 'stroke' || styles.style === 'stroke_fill') {
-       ctx.strokeStyle = borderColor
-       ctx.lineWidth = borderSize
-       if (borderStyle === 'dashed') {
-         ctx.setLineDash(borderDashedValue)
+     if (style === 'stroke' || styles.style === 'stroke_fill') {
+       ctx.strokeStyle = borderColor
+       ctx.lineWidth = borderSize
+       if (borderStyle === 'dashed') {
+         ctx.setLineDash(borderDashedValue)
        } else {
-         ctx. setLineDash([])
+         ctx. setLineDash([])
        }
-       ctx.beginPath()
-       ctx.beginPath()
-       ctx.moveTo(x - width / 2, y)
-       ctx.lineTo(x, y - height / 2)
-       ctx.lineTo(x + width / 2, y)
-       ctx.lineTo(x, y + height / 2)
-       ctx. closePath()
-       ctx.stroke()
+       ctx.beginPath()
+       ctx.beginPath()
+       ctx.moveTo(x - width / 2, y)
+       ctx.lineTo(x, y - height / 2)
+       ctx.lineTo(x + width / 2, y)
+       ctx.lineTo(x, y + height / 2)
+       ctx. closePath()
+       ctx.stroke()
      }
    }
 }
{
@@ -503,8 +504,8 @@
        ctx.stroke()
      }
    }
-}

So a custom figure is completed.

Released under the Apache License V2.

- +}

So a custom figure is completed.

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/en-US/guide/getting-started.html b/en-US/guide/getting-started.html index aff296c73..8ac801b1a 100644 --- a/en-US/guide/getting-started.html +++ b/en-US/guide/getting-started.html @@ -5,36 +5,37 @@ 🚀 Getting started | KLineChart - + - + - - - + + + - + + -
Skip to content
On this page

🚀 Getting started

Get KLineChart

KLineChart supports multiple download methods, you can get it through package management tools such as npm or yarn, or through CDN.

Using npm

bash
npm install klinecharts --save
npm install klinecharts --save

use yarn

bash
yarn add klinecharts
yarn add klinecharts

Using a CDN

You can use jsDelivr, unpkg or others, it is recommended to quote from jsDelivr.

bash
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script>

Create the first chart

Created in the project of package management tools such as npm or yarn

javascript
import { init } from 'klinecharts'
+    
Skip to content

🚀 Getting started

Get KLineChart

KLineChart supports multiple download methods, you can get it through package management tools such as npm or yarn, or through CDN.

Using npm

bash
npm install klinecharts --save
npm install klinecharts --save

use yarn

bash
yarn add klinecharts
yarn add klinecharts

Using a CDN

You can use jsDelivr, unpkg or others, it is recommended to quote from jsDelivr.

bash
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script>

Create the first chart

Created in the project of package management tools such as npm or yarn

javascript
import { init } from 'klinecharts'
 
 // initialize the chart
-const chart = init(`${domId}`)
+const chart = init(`${domId}`)
 
 // add data to the chart
-chart.applyNewData([
-   { close: 4976.16, high: 4977.99, low: 4970.12, open: 4972.89, timestamp: 1587660000000, volume: 204 },
-   { close: 4977.33, high: 4979.94, low: 4971.34, open: 4973.20, timestamp: 1587660060000, volume: 194 },
-   { close: 4977.93, high: 4977.93, low: 4974.20, open: 4976.53, timestamp: 1587660120000, volume: 197 },
-   { close: 4966.77, high: 4968.53, low: 4962.20, open: 4963.88, timestamp: 1587660180000, volume: 28 },
-   { close: 4961.56, high: 4972.61, low: 4961.28, open: 4961.28, timestamp: 1587660240000, volume: 184 },
-   { close: 4964.19, high: 4964.74, low: 4961.42, open: 4961.64, timestamp: 1587660300000, volume: 191 },
-   { close: 4968.93, high: 4972.70, low: 4964.55, open: 4966.96, timestamp: 1587660360000, volume: 105 },
-   { close: 4979.31, high: 4979.61, low: 4973.99, open: 4977.06, timestamp: 1587660420000, volume: 35 },
-   { close: 4977.02, high: 4981.66, low: 4975.14, open: 4981.66, timestamp: 1587660480000, volume: 135 },
-   { close: 4985.09, high: 4988.62, low: 4980.30, open: 4986.72, timestamp: 1587660540000, volume: 76 }
-])
import { init } from 'klinecharts'
+chart.applyNewData([
+   { close: 4976.16, high: 4977.99, low: 4970.12, open: 4972.89, timestamp: 1587660000000, volume: 204 },
+   { close: 4977.33, high: 4979.94, low: 4971.34, open: 4973.20, timestamp: 1587660060000, volume: 194 },
+   { close: 4977.93, high: 4977.93, low: 4974.20, open: 4976.53, timestamp: 1587660120000, volume: 197 },
+   { close: 4966.77, high: 4968.53, low: 4962.20, open: 4963.88, timestamp: 1587660180000, volume: 28 },
+   { close: 4961.56, high: 4972.61, low: 4961.28, open: 4961.28, timestamp: 1587660240000, volume: 184 },
+   { close: 4964.19, high: 4964.74, low: 4961.42, open: 4961.64, timestamp: 1587660300000, volume: 191 },
+   { close: 4968.93, high: 4972.70, low: 4964.55, open: 4966.96, timestamp: 1587660360000, volume: 105 },
+   { close: 4979.31, high: 4979.61, low: 4973.99, open: 4977.06, timestamp: 1587660420000, volume: 35 },
+   { close: 4977.02, high: 4981.66, low: 4975.14, open: 4981.66, timestamp: 1587660480000, volume: 135 },
+   { close: 4985.09, high: 4988.62, low: 4980.30, open: 4986.72, timestamp: 1587660540000, volume: 76 }
+])
import { init } from 'klinecharts'
 
 // initialize the chart
 const chart = init(`${domId}`)
@@ -53,23 +54,23 @@
    { close: 4985.09, high: 4988.62, low: 4980.30, open: 4986.72, timestamp: 1587660540000, volume: 76 }
 ])

Create in a project that is imported directly through a script tag

html
<!DOCTYPE html>
 <html lang="en">
-   <head>
-     <meta charset="utf-8" />
-     <meta name="viewport" content="width=device-width, initial-scale=1" />
-     <meta name="theme-color" content="#000000" />
-     <meta name="keywords" content="Quick Start"/>
-     <meta name="description" content="Quick Start"/>
-     <title>Quick Start</title>
-   </head>
-   <body>
-     <div id="chart" style="width:600px;height:600px"></div>
+   <head>
+     <meta charset="utf-8" />
+     <meta name="viewport" content="width=device-width, initial-scale=1" />
+     <meta name="theme-color" content="#000000" />
+     <meta name="keywords" content="Quick Start"/>
+     <meta name="description" content="Quick Start"/>
+     <title>Quick Start</title>
+   </head>
+   <body>
+     <div id="chart" style="width:600px;height:600px"></div>
      <script>
-       window.onload = function () {
+       window.onload = function () {
          // initialize the chart
-         var chart = klinecharts.init('chart')
+         var chart = klinecharts.init('chart')
 
          // add data to the chart
-         chart.applyNewData([
+         chart.applyNewData([
            { close: 4976.16, high: 4977.99, low: 4970.12, open: 4972.89, timestamp: 1587660000000, volume: 204 },
            { close: 4977.33, high: 4979.94, low: 4971.34, open: 4973.20, timestamp: 1587660060000, volume: 194 },
            { close: 4977.93, high: 4977.93, low: 4974.20, open: 4976.53, timestamp: 1587660120000, volume: 197 },
@@ -82,8 +83,8 @@
            { close: 4985.09, high: 4988.62, low: 4980.30, open: 4986.72, timestamp: 1587660540000, volume: 76 }
          ])
        }
-     </script>
-   </body>
+     </script>
+   </body>
 </html>
<!DOCTYPE html>
 <html lang="en">
    <head>
@@ -117,8 +118,8 @@
        }
      </script>
    </body>
-</html>

This completes your first chart creation.

Released under the Apache License V2.

- +</html>

This completes your first chart creation.

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/en-US/guide/hot-key.html b/en-US/guide/hot-key.html index 009ceec8f..4f1578b85 100644 --- a/en-US/guide/hot-key.html +++ b/en-US/guide/hot-key.html @@ -5,20 +5,21 @@ ⌨️ Hot Key | KLineChart - + - + - - - + + + - + + -
Skip to content
On this page

⌨️ Hot Key

Currently only supports moving and zooming.

  • shift + move right
  • shift + move left
  • shift + + zoom in
  • shift + - zoom out

Released under the Apache License V2.

- +
Skip to content

⌨️ Hot Key

Currently only supports moving and zooming.

  • shift + move right
  • shift + move left
  • shift + + zoom in
  • shift + - zoom out

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/en-US/guide/i18n.html b/en-US/guide/i18n.html index ce5ab3b95..618535c81 100644 --- a/en-US/guide/i18n.html +++ b/en-US/guide/i18n.html @@ -5,34 +5,35 @@ 🌏 Internationalization | KLineChart - + - + - - - + + + - + + -
Skip to content
On this page

🌏 Internationalization

Currently, the chart has two built-in en-US and zh-CN. The default language is en-US. If you need to use other languages, you can refer to the following scheme.

Adding new language

Adding new language is accomplished through klinecharts.registerLocale(key, locales).

For example, to add traditional Chinese language, you can do this,

typescript
klinecharts.registerLocale('zh-HK', {
-  time: '時間:',
-  open: '開:',
-  high: '高:',
-  low: '低:',
-  close: '收:',
-  volume: '成交量:'
-})
klinecharts.registerLocale('zh-HK', {
+    
Skip to content

🌏 Internationalization

Currently, the chart has two built-in en-US and zh-CN. The default language is en-US. If you need to use other languages, you can refer to the following scheme.

Adding new language

Adding new language is accomplished through klinecharts.registerLocale(key, locales).

For example, to add traditional Chinese language, you can do this,

typescript
klinecharts.registerLocale('zh-HK', {
+  time: '時間:',
+  open: '開:',
+  high: '高:',
+  low: '低:',
+  close: '收:',
+  volume: '成交量:'
+})
klinecharts.registerLocale('zh-HK', {
   time: '時間:',
   open: '開:',
   high: '高:',
   low: '低:',
   close: '收:',
   volume: '成交量:'
-})

Use new language

After adding new language, you can complete language switching through the chart API init(options) or setLocale(key).

Released under the Apache License V2.

- +})

Use new language

After adding new language, you can complete language switching through the chart API init(options) or setLocale(key).

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/en-US/guide/indicator.html b/en-US/guide/indicator.html index b8e7c5460..14e0f8538 100644 --- a/en-US/guide/indicator.html +++ b/en-US/guide/indicator.html @@ -5,39 +5,40 @@ Technical indicator | KLineChart - + - + - - - + + + - + + -
Skip to content
On this page

Technical indicator

This document introduces the built-in technical indicators in the chart and how to customize a technical indicator.

Built-in technical indicators

NameDefault calc paramsNameDefault calc paramsNameDefault calc params
MA[5, 10, 30, 60]BIAS[6, 12, 24]VR[24, 30]
EMA[6, 12, 20]BRAR[26]WR[6, 10, 14]
SMA[12, 2]CCI[13]MTM[6, 10]
BBI[3, 6, 12, 24]DMI[14, 6]EMV[14, 9]
VOL[5, 10, 20]CR[26, 10, 20, 40, 60]SAR[2, 2, 20]
MACD[12, 26, 9]PSY[12, 6]AO[5, 34]
BOLL[20]DMA[10, 50, 10]ROC[12, 6]
KDJ[9, 3, 3]TRIX[12, 20]PVTNone
RSI[6, 12, 24]OBV[30]AVPNone

Custom Technical Indicators

To create a custom technical indicator, you only need to generate a technical indicator information, and then add it globally through klinecharts.registerIndicator, add it to the chart and use it like the built-in technical indicator.

Attribute description

typescript
{
+    
Skip to content

Technical indicator

This document introduces the built-in technical indicators in the chart and how to customize a technical indicator.

Built-in technical indicators

NameDefault calc paramsNameDefault calc paramsNameDefault calc params
MA[5, 10, 30, 60]BIAS[6, 12, 24]VR[24, 30]
EMA[6, 12, 20]BRAR[26]WR[6, 10, 14]
SMA[12, 2]CCI[13]MTM[6, 10]
BBI[3, 6, 12, 24]DMI[14, 6]EMV[14, 9]
VOL[5, 10, 20]CR[26, 10, 20, 40, 60]SAR[2, 2, 20]
MACD[12, 26, 9]PSY[12, 6]AO[5, 34]
BOLL[20]DMA[10, 50, 10]ROC[12, 6]
KDJ[9, 3, 3]TRIX[12, 20]PVTNone
RSI[6, 12, 24]OBV[30]AVPNone

Custom Technical Indicators

To create a custom technical indicator, you only need to generate a technical indicator information, and then add it globally through klinecharts.registerIndicator, add it to the chart and use it like the built-in technical indicator.

Attribute description

typescript
{
   // indicator name
-  name: string
+  name: string
   // The short name of the indicator, used for display, the name will be displayed by default
-  shortName?: string
+  shortName?: string
   // precision, default is 4
-  precision?: number
+  precision?: number
   // calculation parameter
-  calcParams?: any[]
+  calcParams?: any[]
   // Do you need ohlc
-  shouldOhlc?: boolean
+  shouldOhlc?: boolean
   // Do you need to format large data values, starting from 1000, for example, do you need to format 100K for 100000
-  shouldFormatBigNumber?: boolean
+  shouldFormatBigNumber?: boolean
   // Do you need visible
-  visible?: boolean
+  visible?: boolean
   // extended data
-  extendData?: any
+  extendData?: any
   // series, default is 'normal'
-  series?: 'normal' | 'price' | 'volume'
+  series?: 'normal' | 'price' | 'volume'
   // Data information
-  figures?: Array<{
+  figures?: Array<{
     // Used to get the median value of the calculation result
     key: string
     // for tooltip display
@@ -56,7 +57,7 @@
     }) => IndicatorFigureAttrs
     // is a method
     styles?: (
-      data: {
+      data: {
         // The data of the previous graph
         prev: {
           // k-line data, type refer to [data source]
@@ -76,31 +77,31 @@
         }
       },
       // technical chart example
-      indicator: Indicator
+      indicator: Indicator
       // The default technical indicator style, that is, the technical indicator style set globally, refer to the indicator in [Style]
-      defaultStyles: IndicatorStyle
+      defaultStyles: IndicatorStyle
     ) => IndicatorFigureStyle
   }>,
   // The specified minimum value, default null
-  minValue?: number
+  minValue?: number
   // The specified maximum value, default null
-  maxValue?: number
+  maxValue?: number
   // style, support increment, default is null, type refer to indicator in [style]
-  styles?: IndicatorStyle
+  styles?: IndicatorStyle
   // calculation method, can be a promise
   calc: (
     // data source, see [data source] for type
-    dataList: KLineData[],
+    dataList: KLineData[],
     // technical indicator example
-    indicator: indicator
-  ) => Promise<Array<any>> | Array<any>
+    indicator: indicator
+  ) => Promise<Array<any>> | Array<any>
   // Regenerate figure graphic configuration method, which will be triggered after the calculation parameters change, refer to figures for the return type, the default is null
-  regenerateFigures?: (
+  regenerateFigures?: (
     // calculation parameter
-    calcParms: any[]
-  ) => Array<IndicatorFigure<D>>
+    calcParms: any[]
+  ) => Array<IndicatorFigure<D>>
   // Create a custom hint text
-  createTooltipDataSource?: (params: {
+  createTooltipDataSource?: (params: {
     // data source, see [data source] for type
     kLineDataList: KLineData[]
     // technical indicator example
@@ -152,11 +153,11 @@
     yAxis: YAxis
   }) => ({
     // name
-    name?: string
+    name?: string
     // Calculate the parameter text, if name has no value, it will not be displayed
-    calcParamsText?: string
+    calcParamsText?: string
     // value information
-    values?: Array<{
+    values?: Array<{
       title: string | {
         text: string
         color: string
@@ -168,7 +169,7 @@
     }>
   }),
   // Custom drawing, if true is returned, the graphics configured by figures will not be drawn
-  draw?: (params: {
+  draw?: (params: {
     // canvas context
     ctx: CanvasRenderingContext2D
     // data source, see [data source] for type
@@ -212,7 +213,7 @@
     xAxis: XAxis
     // y-axis component, with some built-in conversion methods
     yAxis: YAxis
-  }) => boolean
+  }) => boolean
 }
{
   // indicator name
   name: string
@@ -436,29 +437,29 @@
      { key: 'ma2', title: 'MA10: ', type: 'line' }
    ],
    // When the calculation parameters are changed, it is hoped that the prompt is the same as the parameters, that is, the value of title needs to be changed
-   regenerateFigures: (params) => {
-     return params. map((p, i) => {
-       return { key: `ma${i + 1}`, title: `MA${p}: `, type: 'line' }
+   regenerateFigures: (params) => {
+     return params. map((p, i) => {
+       return { key: `ma${i + 1}`, title: `MA${p}: `, type: 'line' }
      })
    },
    // Calculation results
-   calc: (kLineDataList, { calcParams, figures }) => {
+   calc: (kLineDataList, { calcParams, figures }) => {
      // Note: The number of returned data needs to be consistent with the number of data in kLineDataList. If there is no value, replace it with {}.
      // It is best to take the callback parameter calcParams as the calculation parameter. If not, when the subsequent calculation parameters change, the calculation here cannot respond in time
-     const closeSums = []
-     return kLineDataList. map((kLineData, i) => {
-       const ma = {}
-       const close = kLineData. close
-       calcParams.forEach((param, j) => {
-         closeSums[j] = (closeSums[j] || 0) + close
-         if (i >= param - 1) {
-           ma[figures[j].key] = closeSums[j] / param
-           closeSums[j] -= kLineDataList[i - (param - 1)].close
+     const closeSums = []
+     return kLineDataList. map((kLineData, i) => {
+       const ma = {}
+       const close = kLineData. close
+       calcParams.forEach((param, j) => {
+         closeSums[j] = (closeSums[j] || 0) + close
+         if (i >= param - 1) {
+           ma[figures[j].key] = closeSums[j] / param
+           closeSums[j] -= kLineDataList[i - (param - 1)].close
          }
        })
        // If there is a value, the data format of each item here should be { ma1: xxx, ma2: xxx }
        // Each key needs to be consistent with the value corresponding to the subkey in figures
-       return ma
+       return ma
      })
    }
 }
{
@@ -495,8 +496,8 @@
        return ma
      })
    }
-}

So a custom indicator is completed.

Released under the Apache License V2.

- +}

So a custom indicator is completed.

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/en-US/guide/instance-api.html b/en-US/guide/instance-api.html index 69cadc256..ee543ffcc 100644 --- a/en-US/guide/instance-api.html +++ b/en-US/guide/instance-api.html @@ -5,25 +5,26 @@ Instance API | KLineChart - + - + - - - + + + - + + -
Skip to content
On this page

Instance API

getDom(paneId, position)

typescript
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => HTMLElement
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => HTMLElement

Get the dom container.

  • paneId window id, the default is the entire chart container
  • position options are 'root', 'main' and 'yAxis', default is 'root'

getSize(paneId, position)

typescript
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => {
-   width: number
-   height: number
-   left: number
-   top: number
-   right: number
-   bottom: number
+    
Skip to content

Instance API

getDom(paneId, position)

typescript
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => HTMLElement
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => HTMLElement

Get the dom container.

  • paneId window id, the default is the entire chart container
  • position supports root, main, yAxis, the default is root

getSize(paneId, position)

typescript
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => {
+   width: number
+   height: number
+   left: number
+   top: number
+   right: number
+   bottom: number
 }
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => {
    width: number
    height: number
@@ -31,29 +32,29 @@
    top: number
    right: number
    bottom: number
-}

Get the dimensions.

  • paneId window id, the default is the entire chart container
  • position position, supports root, main, yAxis, the default is root

setStyles(styles)

typescript
(styles: string | object) => HTMLElement
(styles: string | object) => HTMLElement

Set style configuration.

  • styles style configuration, which can be the style name registered through registerStyles. When it is an object, please refer to styles for details, and it supports merging.

getStyles()

typescript
() => object
() => object

Get the style configuration, return the complete type refer to styles.

setPriceVolumePrecision(pricePrecision, volumePrecision)

typescript
(pricePrecision: number, volumePrecision: number) => void
(pricePrecision: number, volumePrecision: number) => void

Setting the price and volume precision, while the technical indicator series is 'price' or 'volume' will also be affected.

  • pricePrecision price precision
  • volumePrecision volume precision

setTimezone(timezone)

typescript
(timezone: string) => void
(timezone: string) => void

Set the time zone.

  • timezone time zone name, such as 'Asia/Shanghai', if not set, it will automatically get the local time zone, please refer to Time Zone List.

getTimezone()

typescript
() => string
() => string

Get the chart time zone name.

setZoomEnabled(enabled)

typescript
(enabled: boolean) => void
(enabled: boolean) => void

Set whether to scale.

isZoomEnabled()

typescript
() => boolean
() => boolean

Whether it can be scaled.

setScrollEnabled(enabled)

typescript
(enabled: boolean) => void
(enabled: boolean) => void

Set whether dragging and scrolling is possible.

isScrollEnabled()

typescript
() => boolean
() => boolean

Whether dragging and scrolling is possible.

setOffsetRightDistance(distance)

typescript
(distance: number) => void
(distance: number) => void

Sets the gap that can be left to the right of the chart.

getOffsetRightDistance()

typescript
() => number
() => number

Get the gap that can be left to the right of the chart.

setLeftMinVisibleBarCount(barCount)

typescript
(barCount: number) => void
(barCount: number) => void

Sets the minimum number of visible candles to the left.

setRightMinVisibleBarCount(barCount)

typescript
(barCount: number) => void
(barCount: number) => void

Sets the minimum number of visible candles to the right.

setBarSpace(space)

typescript
(space: number) => void
(space: number) => void

Sets the width of a single candlestick of the chart.

getBarSpace()

typescript
() => number
() => number

Gets the width of a single candlestick on the chart.

getVisibleRange()

typescript
() => {
-  from: number
-  to: number
-  realFrom: number
-  realTo: number
+}

Get the dimensions.

  • paneId window id, the default is the entire chart container
  • position position, supports root, main, yAxis, the default is root

setStyles(styles)

typescript
(styles: string | object) => HTMLElement
(styles: string | object) => HTMLElement

Set style configuration.

  • styles style configuration, which can be the style name registered through registerStyles. When it is an object, please refer to styles for details, and it supports merging.

getStyles()

typescript
() => object
() => object

Get the style configuration, return the complete type refer to styles.

setPriceVolumePrecision(pricePrecision, volumePrecision)

typescript
(pricePrecision: number, volumePrecision: number) => void
(pricePrecision: number, volumePrecision: number) => void

Setting the price and volume precision, while the technical indicator series is 'price' or 'volume' will also be affected.

  • pricePrecision price precision
  • volumePrecision volume precision

setTimezone(timezone)

typescript
(timezone: string) => void
(timezone: string) => void

Set the time zone.

  • timezone time zone name, such as 'Asia/Shanghai', if not set, it will automatically get the local time zone, please refer to Time Zone List.

getTimezone()

typescript
() => string
() => string

Get the chart time zone name.

setZoomEnabled(enabled)

typescript
(enabled: boolean) => void
(enabled: boolean) => void

Set whether to scale.

isZoomEnabled()

typescript
() => boolean
() => boolean

Whether it can be scaled.

setScrollEnabled(enabled)

typescript
(enabled: boolean) => void
(enabled: boolean) => void

Set whether dragging and scrolling is possible.

isScrollEnabled()

typescript
() => boolean
() => boolean

Whether dragging and scrolling is possible.

setOffsetRightDistance(distance)

typescript
(distance: number) => void
(distance: number) => void

Sets the gap that can be left to the right of the chart.

getOffsetRightDistance()

typescript
() => number
() => number

Get the gap that can be left to the right of the chart.

setLeftMinVisibleBarCount(barCount)

typescript
(barCount: number) => void
(barCount: number) => void

Sets the minimum number of visible candles to the left.

setRightMinVisibleBarCount(barCount)

typescript
(barCount: number) => void
(barCount: number) => void

Sets the minimum number of visible candles to the right.

setBarSpace(space)

typescript
(space: number) => void
(space: number) => void

Sets the width of a single candlestick of the chart.

getBarSpace()

typescript
() => number
() => number

Gets the width of a single candlestick on the chart.

getVisibleRange()

typescript
() => {
+  from: number
+  to: number
+  realFrom: number
+  realTo: number
 }
() => {
   from: number
   to: number
   realFrom: number
   realTo: number
-}

Get visible range.

applyNewData(dataList, more, callback)

typescript
(
-  dataList: Array<{
-    timestamp: number
-    open: number
-    close: number
-    high: number
-    low: number
-    volume?: number
-    turnover?: number
-  }>,
-  more?: boolean,
-  callback?: () => void
-) => void
(
+}

Get visible range.

applyNewData(dataList, more, callback)

typescript
(
+  dataList: Array<{
+    timestamp: number
+    open: number
+    close: number
+    high: number
+    low: number
+    volume?: number
+    turnover?: number
+  }>,
+  more?: boolean,
+  callback?: () => void
+) => void
(
   dataList: Array<{
     timestamp: number
     open: number
@@ -65,19 +66,19 @@
   }>,
   more?: boolean,
   callback?: () => void
-) => void

Add new data, this method will clear the chart data, no need to call the clearData method additionally.

  • dataList is an array of K-line data. For details of the data type, please refer to data
  • more tells the chart whether there is more historical data, can be defaulted, the default is true
  • callback success callback

applyMoreData(dataList, more, callback)

typescript
(
-  dataList: Array<{
-    timestamp: number
-    open: number
-    close: number
-    high: number
-    low: number
-    volume?: number
-    turnover?: number
-  }>,
-  more?: boolean,
-  callback?: () => void
-) => void
(
+) => void

Add new data, this method will clear the chart data, no need to call the clearData method additionally.

  • dataList is an array of K-line data. For details of the data type, please refer to data
  • more tells the chart whether there is more historical data, can be defaulted, the default is true
  • callback success callback

applyMoreData(dataList, more, callback)

typescript
(
+  dataList: Array<{
+    timestamp: number
+    open: number
+    close: number
+    high: number
+    low: number
+    volume?: number
+    turnover?: number
+  }>,
+  more?: boolean,
+  callback?: () => void
+) => void
(
   dataList: Array<{
     timestamp: number
     open: number
@@ -89,18 +90,18 @@
   }>,
   more?: boolean,
   callback?: () => void
-) => void

Add more historical data.

  • dataList is an array of K-line data. For details of the data type, please refer to data
  • more tells the chart whether there is more historical data, can be defaulted, the default is true
  • callback success callback

updateData(data, callback)

typescript
(
-  data: {
-    timestamp: number
-    open: number
-    close: number
-    high: number
-    low: number
-    volume?: number
-    turnover?: number
-  },
-  callback?: () => void
-) => void
(
+) => void

Add more historical data.

  • dataList is an array of K-line data. For details of the data type, please refer to data
  • more tells the chart whether there is more historical data, can be defaulted, the default is true
  • callback success callback

updateData(data, callback)

typescript
(
+  data: {
+    timestamp: number
+    open: number
+    close: number
+    high: number
+    low: number
+    volume?: number
+    turnover?: number
+  },
+  callback?: () => void
+) => void
(
   data: {
     timestamp: number
     open: number
@@ -111,14 +112,14 @@
     turnover?: number
   },
   callback?: () => void
-) => void

Update data. Currently, only the timestamp of the last piece of data will be matched. If it is the same, it will be overwritten, and if it is different, it will be appended.

  • data single k-line data, please refer to data for details of data type
  • callback success callback

getDataList()

typescript
() => Array<{
-  timestamp: number
-  open: number
-  close: number
-  high: number
-  low: number
-  volume?: number
-  turnover?: number
+) => void

Update data. Currently, only the timestamp of the last piece of data will be matched. If it is the same, it will be overwritten, and if it is different, it will be appended.

  • data single k-line data, please refer to data for details of data type
  • callback success callback

getDataList()

typescript
() => Array<{
+  timestamp: number
+  open: number
+  close: number
+  high: number
+  low: number
+  volume?: number
+  turnover?: number
 }>
() => Array<{
   timestamp: number
   open: number
@@ -127,81 +128,81 @@
   low: number
   volume?: number
   turnover?: number
-}>

Get the current data source of the chart. For the returned data type, please refer to data.

clearData()

typescript
() => void
() => void

Clear the data of the chart. Generally, it is not necessary to call it manually. In order to avoid repeated drawing, the data is only cleared here, and the chart will not be redrawn.

loadMore(cb)

typescript
(cb: (timestamp: number | null) => void) => void
(cb: (timestamp: number | null) => void) => void

Set load more callback function.

  • cb is a callback method, timestamp is the timestamp of the first piece of data.

createIndicator(value, isStack, paneOptions, callback)

typescript
(
-  value: string | {
-    name: string
-    shortName?: string
-    precision?: number
-    calcParams?: any[]
-    shouldOhlc?: boolean
-    shouldFormatBigNumber?: boolean
-    visible?: boolean
-    extendData?: any
-    series?: 'normal' | 'price' | 'volume'
-    figures?: Array<{
-       key: string
-       title?: string
-       type?: string
-       baseValue?: number
-       styles?: (
-         data: object,
-         indicator: object,
-         defaultStyles: object
-       ) => ({
-        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
-        color?: string
-      })
-    }>
-    minValue?: number
-    maxValue?: number
-    styles?: object
-    calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
-    regenerateFigures?: (calcParms: any[]) => Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => ({
-        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
-        color?: string
-      })
-    }>
-    createTooltipDataSource?: (params: object) => ({
-      name?: string
-      calcParamsText?: string
-      values?: Array<{
-        title: string | {
-          text: string
-          color: string
-        }
-        value: string | {
-          text: string
-          color: string
-        }
-      }>
-    })
-    draw?: (params: object) => boolean
-  },
-  isStack?: boolean,
-  paneOptions?: {
-    id?: string
-    height?: number
-    minHeight?: number
-    dragEnabled?: boolean
-    gap?: {
-      top?: number
-      bottom?: number
-    }
-    axisOptions?: {
-      scrollZoomEnabled?: boolean
-    }
-  } | null,
-  callback?: () => void
-) => string | null
(
+}>

Get the current data source of the chart. For the returned data type, please refer to data.

clearData()

typescript
() => void
() => void

Clear the data of the chart. Generally, it is not necessary to call it manually. In order to avoid repeated drawing, the data is only cleared here, and the chart will not be redrawn.

loadMore(cb)

typescript
(cb: (timestamp: number | null) => void) => void
(cb: (timestamp: number | null) => void) => void

Set load more callback function.

  • cb is a callback method, timestamp is the timestamp of the first piece of data.

createIndicator(value, isStack, paneOptions, callback)

typescript
(
+  value: string | {
+    name: string
+    shortName?: string
+    precision?: number
+    calcParams?: any[]
+    shouldOhlc?: boolean
+    shouldFormatBigNumber?: boolean
+    visible?: boolean
+    extendData?: any
+    series?: 'normal' | 'price' | 'volume'
+    figures?: Array<{
+       key: string
+       title?: string
+       type?: string
+       baseValue?: number
+       styles?: (
+         data: object,
+         indicator: object,
+         defaultStyles: object
+       ) => ({
+        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
+        color?: string
+      })
+    }>
+    minValue?: number
+    maxValue?: number
+    styles?: object
+    calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
+    regenerateFigures?: (calcParms: any[]) => Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => ({
+        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
+        color?: string
+      })
+    }>
+    createTooltipDataSource?: (params: object) => ({
+      name?: string
+      calcParamsText?: string
+      values?: Array<{
+        title: string | {
+          text: string
+          color: string
+        }
+        value: string | {
+          text: string
+          color: string
+        }
+      }>
+    })
+    draw?: (params: object) => boolean
+  },
+  isStack?: boolean,
+  paneOptions?: {
+    id?: string
+    height?: number
+    minHeight?: number
+    dragEnabled?: boolean
+    gap?: {
+      top?: number
+      bottom?: number
+    }
+    axisOptions?: {
+      scrollZoomEnabled?: boolean
+    }
+  } | null,
+  callback?: () => void
+) => string | null
(
   value: string | {
     name: string
     shortName?: string
@@ -275,76 +276,76 @@
     }
   } | null,
   callback?: () => void
-) => string | null

Create a technical indicator, the return value is a string that identifies the window, which is very important, and this identification is required for some subsequent operations on the window.

  • value technical indicator name or technical indicator object, when it is an object, the type is consistent with the input parameter of the chart method overrideIndicator
  • isStack is overrides
  • paneOptions window configuration information, can be default
    • id window id, can be default
    • height window height, can be default
    • minHeight minimum height of the window, can be defaulted
    • dragEnbaled Whether the window can be dragged to adjust the height, it can be defaulted
    • gap margins
      • top top margin, value less than 1 is a percentage
      • bottom bottom margin, value less than 1 is a percentage
    • axisOptions
      • scrollZoomEnabled Scroll zoom flag
  • callback success callback

Special id

'candle_pane', the window id of the main picture.

Example:

javascript
chart.createIndicator('MA', false, {
-  id: 'pane_1',
-  height: 100,
-  minHeight: 30,
-  dragEnabled: true,
-  gap: { top: 0.2, bottom: 0.1 },
-  axisOptions: { scrollZoomEnabled: true }
-}, () => {})
chart.createIndicator('MA', false, {
+) => string | null

Create a technical indicator, the return value is a string that identifies the window, which is very important, and this identification is required for some subsequent operations on the window.

  • value technical indicator name or technical indicator object, when it is an object, the type is consistent with the input parameter of the chart method overrideIndicator
  • isStack is overrides
  • paneOptions window configuration information, can be default
    • id window id, can be default
    • height window height, can be default
    • minHeight minimum height of the window, can be defaulted
    • dragEnbaled Whether the window can be dragged to adjust the height, it can be defaulted
    • gap margins
      • top top margin, value less than 1 is a percentage
      • bottom bottom margin, value less than 1 is a percentage
    • axisOptions
      • scrollZoomEnabled Scroll zoom flag
  • callback success callback

Special id

'candle_pane', the window id of the main picture.

Example:

javascript
chart.createIndicator('MA', false, {
+  id: 'pane_1',
+  height: 100,
+  minHeight: 30,
+  dragEnabled: true,
+  gap: { top: 0.2, bottom: 0.1 },
+  axisOptions: { scrollZoomEnabled: true }
+}, () => {})
chart.createIndicator('MA', false, {
   id: 'pane_1',
   height: 100,
   minHeight: 30,
   dragEnabled: true,
   gap: { top: 0.2, bottom: 0.1 },
   axisOptions: { scrollZoomEnabled: true }
-}, () => {})

overrideIndicator(override, paneId, callback)

typescript
(
-  override: {
-    name: string
-    shortName?: string
-    precision?: number
-    calcParams?: any[]
-    shouldOhlc?: boolean
-    shouldFormatBigNumber?: boolean
-    visible?: boolean
-    extendData?: any
-    series?: 'normal' | 'price' | 'volume'
-    figures?: Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => ({
-        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
-        color?: string
-      })
-    }>
-    minValue?: number
-    maxValue?: number
-    styles?: object
-    calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
-    regenerateFigures?: (calcParms: any[]) => Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => ({
-        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
-        color?: string
-      })
-    }>
-    createTooltipDataSource?: (params: object) => {
-      name?: string
-      calcParamsText?: string
-      values?: Array<{
+}, () => {})

overrideIndicator(override, paneId, callback)

typescript
(
+  override: {
+    name: string
+    shortName?: string
+    precision?: number
+    calcParams?: any[]
+    shouldOhlc?: boolean
+    shouldFormatBigNumber?: boolean
+    visible?: boolean
+    extendData?: any
+    series?: 'normal' | 'price' | 'volume'
+    figures?: Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => ({
+        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
+        color?: string
+      })
+    }>
+    minValue?: number
+    maxValue?: number
+    styles?: object
+    calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
+    regenerateFigures?: (calcParms: any[]) => Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => ({
+        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
+        color?: string
+      })
+    }>
+    createTooltipDataSource?: (params: object) => {
+      name?: string
+      calcParamsText?: string
+      values?: Array<{
         title: string | { text: string, color: string }
         value: string | { text: string, color: string }
       }>
     }
-    draw?: (params: object) => boolean
-  },
-  paneId?: string | null,
-  callback?: () => void
-) => void
(
+    draw?: (params: object) => boolean
+  },
+  paneId?: string | null,
+  callback?: () => void
+) => void
(
   override: {
     name: string
     shortName?: string
@@ -399,49 +400,49 @@
   },
   paneId?: string | null,
   callback?: () => void
-) => void

Overlay technical indicator information.

  • override some parameters that need to be overridden
    • name metric name, unique identifier for creation and operation
    • shortName short name for display
    • precision precision
    • calcParams calculation parameters
    • shouldOhlc needs ohlc auxiliary graphics
    • shouldFormatBigNumber should format large numbers. For example, 1000 is converted to 1k, 1000000 is converted to 1M, etc.
    • visible visible or not
    • extendData extended data
    • series indicator series, optional options are 'normal', 'price' and 'volume'
    • figures graphics configuration
    • minValue specifies the minimum value
    • maxValue specifies the maximum value
    • styles styles
    • calc calculation method
    • regenerateFigures method to regenerate figure information
    • createTooltipDataSource method to create custom tip information
    • draw custom drawing method
  • paneId window id, default is set to all
  • callback success callback

Special id

'candle_pane', the window id of the main picture.

Example:

javascript
chart.overrideIndicator({
-   name: 'BOLL',
-   showName: 'BOLL'
-   calcParams: [20, 5.5],
-   precision: 4,
-   shouldOhlc: true,
-   shouldFormatBigNumber: false,
-   visible: true,
-   extendData: 2432435,
-   series: 'price',
-   figures: [],
-   minValue: null,
-   maxValue: null,
-   calc: () => [],
-   regenerateFigures: () => [],
-   draw: () => {},
-   styles: {
-   bars: [{
-       style: 'fill,
-       borderStyle: 'solid,
-       borderSize: 1,
-       borderDashedValue: [2, 2],
-       upColor: '#26A69A',
-       downColor: '#EF5350',
-       noChangeColor: '#888888'
-     }],
-     lines: [{
-       size: 1,
-       style: 'solid',
-       dashedValue: [2, 2],
-       color: '#FF9600'
-     }],
-     circles: [{
-       style: 'fill,
-       borderStyle: 'solid,
-       borderSize: 1,
-       borderDashedValue: [2, 2],
-       upColor: '#26A69A',
-       downColor: '#EF5350',
-       noChangeColor: '#888888'
-     }]
-   }
-}, 'candle_pane', () => {})
chart.overrideIndicator({
+) => void

Overlay technical indicator information.

  • override some parameters that need to be overridden
    • name metric name, unique identifier for creation and operation
    • shortName short name for display
    • precision precision
    • calcParams calculation parameters
    • shouldOhlc needs ohlc auxiliary graphics
    • shouldFormatBigNumber should format large numbers. For example, 1000 is converted to 1k, 1000000 is converted to 1M, etc.
    • visible visible or not
    • extendData extended data
    • series indicator series, optional options are 'normal', 'price' and 'volume'
    • figures graphics configuration
    • minValue specifies the minimum value
    • maxValue specifies the maximum value
    • styles styles
    • calc calculation method
    • regenerateFigures method to regenerate figure information
    • createTooltipDataSource method to create custom tip information
    • draw custom drawing method
  • paneId window id, default is set to all
  • callback success callback

Special id

'candle_pane', the window id of the main picture.

Example:

javascript
chart.overrideIndicator({
+   name: 'BOLL',
+   showName: 'BOLL'
+   calcParams: [20, 5.5],
+   precision: 4,
+   shouldOhlc: true,
+   shouldFormatBigNumber: false,
+   visible: true,
+   extendData: 2432435,
+   series: 'price',
+   figures: [],
+   minValue: null,
+   maxValue: null,
+   calc: () => [],
+   regenerateFigures: () => [],
+   draw: () => {},
+   styles: {
+   bars: [{
+       style: 'fill,
+       borderStyle: 'solid,
+       borderSize: 1,
+       borderDashedValue: [2, 2],
+       upColor: '#26A69A',
+       downColor: '#EF5350',
+       noChangeColor: '#888888'
+     }],
+     lines: [{
+       size: 1,
+       style: 'solid',
+       dashedValue: [2, 2],
+       color: '#FF9600'
+     }],
+     circles: [{
+       style: 'fill,
+       borderStyle: 'solid,
+       borderSize: 1,
+       borderDashedValue: [2, 2],
+       upColor: '#26A69A',
+       downColor: '#EF5350',
+       noChangeColor: '#888888'
+     }]
+   }
+}, 'candle_pane', () => {})
chart.overrideIndicator({
    name: 'BOLL',
    showName: 'BOLL'
    calcParams: [20, 5.5],
@@ -483,76 +484,76 @@
        noChangeColor: '#888888'
      }]
    }
-}, 'candle_pane', () => {})

getIndicatorByPaneId(paneId, name)

typescript
(paneId?: string, name?: string) => object
(paneId?: string, name?: string) => object

Obtain technical indicator information according to the window id.

  • paneId window id, that is, the window ID returned when calling the createIndicator method, can be defaulted, and all will be returned by default.
  • name technical indicator name

Special id

'candle_pane', the window id of the main picture.

removeIndicator(paneId, name)

typescript
(paneId: string, name?: string) => object
(paneId: string, name?: string) => object

Remove technical indicators.

  • paneId window id, that is, the window ID returned when calling the createIndicator method
  • name technical indicator name, if default, will remove all

Special id

'candle_pane', the window id of the main picture.

createOverlay(value, paneId)

typescript
(
-  value: string | {
-    name: string
-    id?: string
-    groupId?: string
-    lock?: boolean
-    visible?: boolean
-    zLevel?: number
-    needDefaultPointFigure?: boolean
-    needDefaultXAxisFigure?: boolean
-    needDefaultYAxisFigure?: boolean
-    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
-    modeSensitivity?: number
-    points?: Array<{
-      timestamp?: number
-      dataIndex?: number
-      value?: number
-    }>
-    extendData?: any
-    styles?: object
-    onDrawStart?: (event: object) => boolean
-    onDrawing?: (event: object) => boolean
-    onDrawEnd?: (event: object) => boolean
-    onClick?: (event: object) => boolean
-    onDoubleClick?: (event: object) => boolean
-    onRightClick?: (event: object) => boolean
-    onPressedMoveStart?: (event: object) => boolean
-    onPressedMoving?: (event: object) => boolean
-    onPressedMoveEnd?: (event: object) => boolean
-    onMouseEnter?: (event: object) => boolean
-    onMouseLeave?: (event: object) => boolean
-    onRemoved?: (event: object) => boolean
-    onSelected?: (event: object) => boolean
-    onDeselected?: (event: object) => boolean
-  } | Array<string | {
-    name: string
-    id?: string
-    groupId?: string
-    lock?: boolean
-    visible?: boolean
-    zLevel?: number
-    needDefaultPointFigure?: boolean
-    needDefaultXAxisFigure?: boolean
-    needDefaultYAxisFigure?: boolean
-    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
-    modeSensitivity?: number
-    points?: Array<{
-      timestamp?: number
-      dataIndex?: number
-      value?: number
-    }>
-    extendData?: any
-    styles?: object
-    onDrawStart?: (event: object) => boolean
-    onDrawing?: (event: object) => boolean
-    onDrawEnd?: (event: object) => boolean
-    onClick?: (event: object) => boolean
-    onDoubleClick?: (event: object) => boolean
-    onRightClick?: (event: object) => boolean
-    onPressedMoveStart?: (event: object) => boolean
-    onPressedMoving?: (event: object) => boolean
-    onPressedMoveEnd?: (event: object) => boolean
-    onMouseEnter?: (event: object) => boolean
-    onMouseLeave?: (event: object) => boolean
-    onRemoved?: (event: object) => boolean
-    onSelected?: (event: object) => boolean
-    onDeselected?: (event: object) => boolean
-  }>,
-  paneId?: string
-) => string | null
(
+}, 'candle_pane', () => {})

getIndicatorByPaneId(paneId, name)

typescript
(paneId?: string, name?: string) => object
(paneId?: string, name?: string) => object

Obtain technical indicator information according to the window id.

  • paneId window id, that is, the window ID returned when calling the createIndicator method, can be defaulted, and all will be returned by default.
  • name technical indicator name

Special id

'candle_pane', the window id of the main picture.

removeIndicator(paneId, name)

typescript
(paneId: string, name?: string) => object
(paneId: string, name?: string) => object

Remove technical indicators.

  • paneId window id, that is, the window ID returned when calling the createIndicator method
  • name technical indicator name, if default, will remove all

Special id

'candle_pane', the window id of the main picture.

createOverlay(value, paneId)

typescript
(
+  value: string | {
+    name: string
+    id?: string
+    groupId?: string
+    lock?: boolean
+    visible?: boolean
+    zLevel?: number
+    needDefaultPointFigure?: boolean
+    needDefaultXAxisFigure?: boolean
+    needDefaultYAxisFigure?: boolean
+    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+    modeSensitivity?: number
+    points?: Array<{
+      timestamp?: number
+      dataIndex?: number
+      value?: number
+    }>
+    extendData?: any
+    styles?: object
+    onDrawStart?: (event: object) => boolean
+    onDrawing?: (event: object) => boolean
+    onDrawEnd?: (event: object) => boolean
+    onClick?: (event: object) => boolean
+    onDoubleClick?: (event: object) => boolean
+    onRightClick?: (event: object) => boolean
+    onPressedMoveStart?: (event: object) => boolean
+    onPressedMoving?: (event: object) => boolean
+    onPressedMoveEnd?: (event: object) => boolean
+    onMouseEnter?: (event: object) => boolean
+    onMouseLeave?: (event: object) => boolean
+    onRemoved?: (event: object) => boolean
+    onSelected?: (event: object) => boolean
+    onDeselected?: (event: object) => boolean
+  } | Array<string | {
+    name: string
+    id?: string
+    groupId?: string
+    lock?: boolean
+    visible?: boolean
+    zLevel?: number
+    needDefaultPointFigure?: boolean
+    needDefaultXAxisFigure?: boolean
+    needDefaultYAxisFigure?: boolean
+    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+    modeSensitivity?: number
+    points?: Array<{
+      timestamp?: number
+      dataIndex?: number
+      value?: number
+    }>
+    extendData?: any
+    styles?: object
+    onDrawStart?: (event: object) => boolean
+    onDrawing?: (event: object) => boolean
+    onDrawEnd?: (event: object) => boolean
+    onClick?: (event: object) => boolean
+    onDoubleClick?: (event: object) => boolean
+    onRightClick?: (event: object) => boolean
+    onPressedMoveStart?: (event: object) => boolean
+    onPressedMoving?: (event: object) => boolean
+    onPressedMoveEnd?: (event: object) => boolean
+    onMouseEnter?: (event: object) => boolean
+    onMouseLeave?: (event: object) => boolean
+    onRemoved?: (event: object) => boolean
+    onSelected?: (event: object) => boolean
+    onDeselected?: (event: object) => boolean
+  }>,
+  paneId?: string
+) => string | null
(
   value: string | {
     name: string
     id?: string
@@ -621,49 +622,49 @@
     onDeselected?: (event: object) => boolean
   }>,
   paneId?: string
-) => string | null

Creates an overlay, returning an identifier of type String.

  • value Overlay name or object, when it is an object, the parameters are consistent with overrideOverlay
  • paneId window id, can be default

Special id

'candle_pane', the window id of the main picture.

Example:

javascript
chart.createOverlay({
-   name: 'segment',
-   id: 'segment_1',
-   groupId: 'segment',
-   points: [
-     { timestamp: 1614171282000, value: 18987 },
-     { timestamp: 1614171202000, value: 16098 },
-   ],
-   styles: {
-     line: {
-       style: 'solid',
-       dashedValue: [2, 2]
-       color: '#f00',
-       size: 2
-     }
-   },
-   lock: false,
-   visible: true,
-   zLevel: 0,
-   mode: 'weak_magnet',
-   modeSensitivity: 8,
-   extendData: 'xxxxxxxx',
-   needDefaultPointFigure: false,
-   needDefaultXAxisFigure: false,
-   needDefaultYAxisFigure: false,
-   onDrawStart: function (event) { console. log(event) },
-   onDrawing: function (event) { console. log(event) },
-   onDrawEnd: function (event) { console. log(event) },
-   onClick: function (event) { console. log(event) },
-   onDoubleClick: function (event) { console. log(event) },
-   onRightClick: function (event) {
-     console. log(event)
+) => string | null

Creates an overlay, returning an identifier of type String.

  • value Overlay name or object, when it is an object, the parameters are consistent with overrideOverlay
  • paneId window id, can be default

Special id

'candle_pane', the window id of the main picture.

Example:

javascript
chart.createOverlay({
+   name: 'segment',
+   id: 'segment_1',
+   groupId: 'segment',
+   points: [
+     { timestamp: 1614171282000, value: 18987 },
+     { timestamp: 1614171202000, value: 16098 },
+   ],
+   styles: {
+     line: {
+       style: 'solid',
+       dashedValue: [2, 2]
+       color: '#f00',
+       size: 2
+     }
+   },
+   lock: false,
+   visible: true,
+   zLevel: 0,
+   mode: 'weak_magnet',
+   modeSensitivity: 8,
+   extendData: 'xxxxxxxx',
+   needDefaultPointFigure: false,
+   needDefaultXAxisFigure: false,
+   needDefaultYAxisFigure: false,
+   onDrawStart: function (event) { console. log(event) },
+   onDrawing: function (event) { console. log(event) },
+   onDrawEnd: function (event) { console. log(event) },
+   onClick: function (event) { console. log(event) },
+   onDoubleClick: function (event) { console. log(event) },
+   onRightClick: function (event) {
+     console. log(event)
      return false
    },
-   onMouseEnter: function (event) { console. log(event) },
-   onMouseLeave: function (event) { console. log(event) },
-   onPressedMoveStart: function (event) { console. log(event) },
-   onPressedMoving: function (event) { console. log(event) },
-   onPressedMoveEnd: function (event) { console. log(event) },
-   onRemoved: function (event) { console. log(event) },
-   onSelected: function (event) { console. log(event) },
-   onDeselected: function (event) { console. log(event) }
-})
chart.createOverlay({
+   onMouseEnter: function (event) { console. log(event) },
+   onMouseLeave: function (event) { console. log(event) },
+   onPressedMoveStart: function (event) { console. log(event) },
+   onPressedMoving: function (event) { console. log(event) },
+   onPressedMoveEnd: function (event) { console. log(event) },
+   onRemoved: function (event) { console. log(event) },
+   onSelected: function (event) { console. log(event) },
+   onDeselected: function (event) { console. log(event) }
+})
chart.createOverlay({
    name: 'segment',
    id: 'segment_1',
    groupId: 'segment',
@@ -705,42 +706,42 @@
    onRemoved: function (event) { console. log(event) },
    onSelected: function (event) { console. log(event) },
    onDeselected: function (event) { console. log(event) }
-})

getOverlayById(id)

typescript
(id: string) => object
(id: string) => object

Get overlay information by id.

  • id calls the createOverlay method to return the ID

overrideOverlay(override)

typescript
(
-  override: {
-    name: string
-    id?: string
-    groupId?: string
-    lock?: boolean
-    visible?: boolean
-    zLevel?: number
-    needDefaultPointFigure?: boolean
-    needDefaultXAxisFigure?: boolean
-    needDefaultYAxisFigure?: boolean
-    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
-    modeSensitivity?: number
-    points?: Array<{
-      timestamp?: number
-      dataIndex?: number
-      value?: number
-    }>
-    extendData?: any
-    styles?: object
-    onDrawStart?: (event: object) => boolean
-    onDrawing?: (event: object) => boolean
-    onDrawEnd?: (event: object) => boolean
-    onClick?: (event: object) => boolean
-    onDoubleClick?: (event: object) => boolean
-    onRightClick?: (event: object) => boolean
-    onPressedMoveStart?: (event: object) => boolean
-    onPressedMoving?: (event: object) => boolean
-    onPressedMoveEnd?: (event: object) => boolean
-    onMouseEnter?: (event: object) => boolean
-    onMouseLeave?: (event: object) => boolean
-    onRemoved?: (event: object) => boolean
-    onSelected?: (event: object) => boolean
-    onDeselected?: (event: object) => boolean
-  }
-) => string | null
(
+})

getOverlayById(id)

typescript
(id: string) => object
(id: string) => object

Get overlay information by id.

  • id calls the createOverlay method to return the ID

overrideOverlay(override)

typescript
(
+  override: {
+    name: string
+    id?: string
+    groupId?: string
+    lock?: boolean
+    visible?: boolean
+    zLevel?: number
+    needDefaultPointFigure?: boolean
+    needDefaultXAxisFigure?: boolean
+    needDefaultYAxisFigure?: boolean
+    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+    modeSensitivity?: number
+    points?: Array<{
+      timestamp?: number
+      dataIndex?: number
+      value?: number
+    }>
+    extendData?: any
+    styles?: object
+    onDrawStart?: (event: object) => boolean
+    onDrawing?: (event: object) => boolean
+    onDrawEnd?: (event: object) => boolean
+    onClick?: (event: object) => boolean
+    onDoubleClick?: (event: object) => boolean
+    onRightClick?: (event: object) => boolean
+    onPressedMoveStart?: (event: object) => boolean
+    onPressedMoving?: (event: object) => boolean
+    onPressedMoveEnd?: (event: object) => boolean
+    onMouseEnter?: (event: object) => boolean
+    onMouseLeave?: (event: object) => boolean
+    onRemoved?: (event: object) => boolean
+    onSelected?: (event: object) => boolean
+    onDeselected?: (event: object) => boolean
+  }
+) => string | null
(
   override: {
     name: string
     id?: string
@@ -775,49 +776,49 @@
     onSelected?: (event: object) => boolean
     onDeselected?: (event: object) => boolean
   }
-) => string | null

Overlays that have been drawn.

  • override parameters that need to be overridden
    • name overlay name, unique identifier for creation
    • id Overlay identification, if the id exists, it will be based on the id to overwrite
    • groupId Group id
    • lock is locked to prevent dragging
    • visible visible or not
    • zLevel Draw level
    • needDefaultPointFigure needs a default point figure
    • needDefaultXAxisFigure needs the default x-axis figure
    • needDefaultYAxisFigure needs the default y-axis figure
    • mode mode, options are 'normal', 'weak_magnet' and 'strong_magnet'
    • modeSensitivity mode sensitivity, only valid when mode is weak_magnet
    • points point information
    • extendData extended data
    • styles styles
    • onDrawStart start drawing event
    • onDrawing drawing event
    • onDrawEnd draw end event
    • onClick click event
    • onDoubleClick double click event
    • onRightClick right click event
    • onPressedMoveStart press start move event
    • onPressedMoving Press and move event
    • onPressedMoveEnd Press and move end event
    • onMouseEnter mouse enter event
    • onMouseLeave mouse out event
    • onRemoved delete event
    • onSelected selected event
    • onDeselected deselected event

Example:

javascript
chart.overrideOverlay({
-   name: 'segment',
-   id: 'segment_1',
-   groupId: 'segment',
-   points: [
-     { timestamp: 1614171282000, value: 18987 },
-     { timestamp: 1614171202000, value: 16098 },
-   ],
-   styles: {
-     line: {
-       style: 'solid',
-       dashedValue: [2, 2]
-       color: '#f00',
-       size: 2
-     }
-   },
-   lock: false,
-   visible: true,
-   zLevel: 0,
-   mode: 'weak_magnet',
-   modeSensitivity: 8
-   extendData: 'xxxxxxxx',
-   needDefaultPointFigure: false,
-   needDefaultXAxisFigure: false,
-   needDefaultYAxisFigure: false,
-   onDrawStart: function (event) { console. log(event) },
-   onDrawing: function (event) { console. log(event) },
-   onDrawEnd: function (event) { console. log(event) },
-   onClick: function (event) { console. log(event) },
-   onDoubleClick: function (event) { console. log(event) },
-   onRightClick: function (event) {
-     console. log(event)
+) => string | null

Overlays that have been drawn.

  • override parameters that need to be overridden
    • name overlay name, unique identifier for creation
    • id Overlay identification, if the id exists, it will be based on the id to overwrite
    • groupId Group id
    • lock is locked to prevent dragging
    • visible visible or not
    • zLevel Draw level
    • needDefaultPointFigure needs a default point figure
    • needDefaultXAxisFigure needs the default x-axis figure
    • needDefaultYAxisFigure needs the default y-axis figure
    • mode mode, options are 'normal', 'weak_magnet' and 'strong_magnet'
    • modeSensitivity mode sensitivity, only valid when mode is weak_magnet
    • points point information
    • extendData extended data
    • styles styles
    • onDrawStart start drawing event
    • onDrawing drawing event
    • onDrawEnd draw end event
    • onClick click event
    • onDoubleClick double click event
    • onRightClick right click event
    • onPressedMoveStart press start move event
    • onPressedMoving Press and move event
    • onPressedMoveEnd Press and move end event
    • onMouseEnter mouse enter event
    • onMouseLeave mouse out event
    • onRemoved delete event
    • onSelected selected event
    • onDeselected deselected event

Example:

javascript
chart.overrideOverlay({
+   name: 'segment',
+   id: 'segment_1',
+   groupId: 'segment',
+   points: [
+     { timestamp: 1614171282000, value: 18987 },
+     { timestamp: 1614171202000, value: 16098 },
+   ],
+   styles: {
+     line: {
+       style: 'solid',
+       dashedValue: [2, 2]
+       color: '#f00',
+       size: 2
+     }
+   },
+   lock: false,
+   visible: true,
+   zLevel: 0,
+   mode: 'weak_magnet',
+   modeSensitivity: 8
+   extendData: 'xxxxxxxx',
+   needDefaultPointFigure: false,
+   needDefaultXAxisFigure: false,
+   needDefaultYAxisFigure: false,
+   onDrawStart: function (event) { console. log(event) },
+   onDrawing: function (event) { console. log(event) },
+   onDrawEnd: function (event) { console. log(event) },
+   onClick: function (event) { console. log(event) },
+   onDoubleClick: function (event) { console. log(event) },
+   onRightClick: function (event) {
+     console. log(event)
      return false
    },
-   onMouseEnter: function (event) { console. log(event) },
-   onMouseLeave: function (event) { console. log(event) },
-   onPressedMoveStart: function (event) { console. log(event) },
-   onPressedMoving: function (event) { console. log(event) },
-   onPressedMoveEnd: function (event) { console. log(event) },
-   onRemoved: function (event) { console. log(event) },
-   onSelected: function (event) { console. log(event) },
-   onDeselected: function (event) { console. log(event) }
-})
chart.overrideOverlay({
+   onMouseEnter: function (event) { console. log(event) },
+   onMouseLeave: function (event) { console. log(event) },
+   onPressedMoveStart: function (event) { console. log(event) },
+   onPressedMoving: function (event) { console. log(event) },
+   onPressedMoveEnd: function (event) { console. log(event) },
+   onRemoved: function (event) { console. log(event) },
+   onSelected: function (event) { console. log(event) },
+   onDeselected: function (event) { console. log(event) }
+})
chart.overrideOverlay({
    name: 'segment',
    id: 'segment_1',
    groupId: 'segment',
@@ -859,47 +860,47 @@
    onRemoved: function (event) { console. log(event) },
    onSelected: function (event) { console. log(event) },
    onDeselected: function (event) { console. log(event) }
-})

removeOverlay(remove)

typescript
(
-  remove: string | {
-    id?: string
-    groupId?: string
-    name?: string
-  }
-) => void
(
+})

removeOverlay(remove)

typescript
(
+  remove: string | {
+    id?: string
+    groupId?: string
+    name?: string
+  }
+) => void
(
   remove: string | {
     id?: string
     groupId?: string
     name?: string
   }
-) => void

Remove graphics.

  • id The ID returned by calling the createOverlay method.
  • groupId Group id
  • name Overlay name

scrollByDistance(distance, animationDuration)

typescript
(distance: number, animationDuration?: number) => void
(distance: number, animationDuration?: number) => void

Scroll a certain distance.

  • distance distance
  • animationDuration animation time, can be default, default is no animation

scrollToRealTime(animationDuration)

typescript
(distance: number, animationDuration?: number) => void
(distance: number, animationDuration?: number) => void

Scroll to original position.

  • animationDuration animation time, can be default, default is no animation

scrollToDataIndex(dataIndex, animationDuration)

typescript
(dataIndex: number, animationDuration?: number) => void
(dataIndex: number, animationDuration?: number) => void

Scroll to the specified location.

  • dataIndex the index of the data
  • animationDuration animation time, can be default, default is no animation

scrollToTimestamp(timestamp, animationDuration)

typescript
(timestamp: number, animationDuration?: number) => void
(timestamp: number, animationDuration?: number) => void

Scroll to the specified timestamp.

  • timestamp timestamp
  • animationDuration animation time, can be default, default is no animation

zoomAtCoordinate(scale, coordinate, animationDuration)

typescript
(
-  scale: number,
-  coordinate?: {
-    x: number
-    y: number
-  },
-  animationDuration?: number
-) => void
(
+) => void

Remove graphics.

  • id The ID returned by calling the createOverlay method.
  • groupId Group id
  • name Overlay name

scrollByDistance(distance, animationDuration)

typescript
(distance: number, animationDuration?: number) => void
(distance: number, animationDuration?: number) => void

Scroll a certain distance.

  • distance distance
  • animationDuration animation time, can be default, default is no animation

scrollToRealTime(animationDuration)

typescript
(distance: number, animationDuration?: number) => void
(distance: number, animationDuration?: number) => void

Scroll to original position.

  • animationDuration animation time, can be default, default is no animation

scrollToDataIndex(dataIndex, animationDuration)

typescript
(dataIndex: number, animationDuration?: number) => void
(dataIndex: number, animationDuration?: number) => void

Scroll to the specified location.

  • dataIndex the index of the data
  • animationDuration animation time, can be default, default is no animation

scrollToTimestamp(timestamp, animationDuration)

typescript
(timestamp: number, animationDuration?: number) => void
(timestamp: number, animationDuration?: number) => void

Scroll to the specified timestamp.

  • timestamp timestamp
  • animationDuration animation time, can be default, default is no animation

zoomAtCoordinate(scale, coordinate, animationDuration)

typescript
(
+  scale: number,
+  coordinate?: {
+    x: number
+    y: number
+  },
+  animationDuration?: number
+) => void
(
   scale: number,
   coordinate?: {
     x: number
     y: number
   },
   animationDuration?: number
-) => void

Scale at a certain coordinate point.

  • scale scaling factor
  • coordinate coordinate point, can be defaulted, the default is to zoom in the middle of the chart
  • animationDuration animation time, can be default, default is no animation

zoomAtDataIndex(scale, dataIndex, animationDuration)

typescript
(scale: number, dataIndex: number, animationDuration?: number) => void
(scale: number, dataIndex: number, animationDuration?: number) => void

Scale at a certain position.

  • scale scaling factor
  • dataIndex the index of the data
  • animationDuration animation time, can be default, default is no animation

zoomAtTimestamp(scale, timestamp, animationDuration)

typescript
(scale: number, timestamp: number, animationDuration?: number) => void
(scale: number, timestamp: number, animationDuration?: number) => void

Scale on the specified timestamp.

  • scale scaling factor
  • timestamp timestamp
  • animationDuration animation time, can be default, default is no animation

setPaneOptions(options)

typescript
(
-  options: {
-    id: string
-    height?: number
-    minHeight?: number
-    dragEnabled?: boolean
-    gap?: {
-      top?: number
-      bottom?: number
-    }
-    axisOptions?: {
-      scrollZoomEnabled?: boolean
-    }
-  }
-) => void
(
+) => void

Scale at a certain coordinate point.

  • scale scaling factor
  • coordinate coordinate point, can be defaulted, the default is to zoom in the middle of the chart
  • animationDuration animation time, can be default, default is no animation

zoomAtDataIndex(scale, dataIndex, animationDuration)

typescript
(scale: number, dataIndex: number, animationDuration?: number) => void
(scale: number, dataIndex: number, animationDuration?: number) => void

Scale at a certain position.

  • scale scaling factor
  • dataIndex the index of the data
  • animationDuration animation time, can be default, default is no animation

zoomAtTimestamp(scale, timestamp, animationDuration)

typescript
(scale: number, timestamp: number, animationDuration?: number) => void
(scale: number, timestamp: number, animationDuration?: number) => void

Scale on the specified timestamp.

  • scale scaling factor
  • timestamp timestamp
  • animationDuration animation time, can be default, default is no animation

setPaneOptions(options)

typescript
(
+  options: {
+    id: string
+    height?: number
+    minHeight?: number
+    dragEnabled?: boolean
+    gap?: {
+      top?: number
+      bottom?: number
+    }
+    axisOptions?: {
+      scrollZoomEnabled?: boolean
+    }
+  }
+) => void
(
   options: {
     id: string
     height?: number
@@ -913,53 +914,53 @@
       scrollZoomEnabled?: boolean
     }
   }
-) => void

Set window configuration.

  • paneOptions window configuration information, can be default
    • id window id
    • height window height, can be default
    • minHeight minimum height of the window, can be defaulted
    • dragEnbaled Whether the window can be dragged to adjust the height, it can be defaulted
    • gap margins
      • top top margin, value less than 1 is a percentage
      • bottom bottom margin, value less than 1 is a percentage
    • axisOptions
      • scrollZoomEnabled Scroll zoom flag

Special id

'candle_pane', the window id of the main picture.

Example:

javascript
chart.setPaneOptions({
-  id: 'pane_1',
-  height: 100,
-  minHeight: 3,
-  dragEnabled: true,
-  gap: { top: 0.2, bottom: 0.1 },
-  axisOptions: { scrollZoomEnabled: true }
-})
chart.setPaneOptions({
+) => void

Set window configuration.

  • paneOptions window configuration information, can be default
    • id window id
    • height window height, can be default
    • minHeight minimum height of the window, can be defaulted
    • dragEnbaled Whether the window can be dragged to adjust the height, it can be defaulted
    • gap margins
      • top top margin, value less than 1 is a percentage
      • bottom bottom margin, value less than 1 is a percentage
    • axisOptions
      • scrollZoomEnabled Scroll zoom flag

Special id

'candle_pane', the window id of the main picture.

Example:

javascript
chart.setPaneOptions({
+  id: 'pane_1',
+  height: 100,
+  minHeight: 3,
+  dragEnabled: true,
+  gap: { top: 0.2, bottom: 0.1 },
+  axisOptions: { scrollZoomEnabled: true }
+})
chart.setPaneOptions({
   id: 'pane_1',
   height: 100,
   minHeight: 3,
   dragEnabled: true,
   gap: { top: 0.2, bottom: 0.1 },
   axisOptions: { scrollZoomEnabled: true }
-})

executeAction(type, data)

typescript
(
-   type: 'onCrosshairChange',
-   data: any => void
-) => void
(
+})

executeAction(type, data)

typescript
(
+   type: 'onCrosshairChange',
+   data: any => void
+) => void
(
    type: 'onCrosshairChange',
    data: any => void
-) => void

Execute chart action.

  • type only supported 'onCrosshairChange'
  • data data required for execution

subscribeAction(type, callback)

typescript
(
-   type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
-   callback: (data?: any) => void
-) => void
(
+) => void

Execute chart action.

  • type only supported 'onCrosshairChange'
  • data data required for execution

subscribeAction(type, callback)

typescript
(
+   type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
+   callback: (data?: any) => void
+) => void
(
    type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
    callback: (data?: any) => void
-) => void

Subscribe to chart actions.

  • type options are 'onZoom', 'onScroll', 'onVisibleRangeChange', 'onCandleBarClick', 'onTooltipIconClick', 'onCrosshairChange' and 'onPaneDrag'
  • callback is a callback method

unsubscribeAction(type, callback)

typescript
(
-   type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
-   callback?: (data?: any) => void
-) => void
(
+) => void

Subscribe to chart actions.

  • type options are 'onZoom', 'onScroll', 'onVisibleRangeChange', 'onCandleBarClick', 'onTooltipIconClick', 'onCrosshairChange' and 'onPaneDrag'
  • callback is a callback method

unsubscribeAction(type, callback)

typescript
(
+   type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
+   callback?: (data?: any) => void
+) => void
(
    type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
    callback?: (data?: any) => void
-) => void

Unsubscribe from chart actions.

  • type options are 'onZoom', 'onScroll', 'onVisibleRangeChange', 'onCandleBarClick', 'onTooltipIconClick', 'onCrosshairChange' and 'onPaneDrag'
  • callback is the callback method when subscribing, the default is to cancel all the current types

convertToPixel(value, finder)

typescript
(
-   value: {
-     dataIndex?: number
-     timestamp?: number
-     value?: number
-   } | Array<{
-     dataIndex?: number
-     timestamp?: number
-     value?: number
-   }>,
-   finder: {
-     paneId?: string,
-     absolute?: boolean
-   }
-) => { x: number?, y?: number } | Array<{ x?: number, y?: number }>
(
+) => void

Unsubscribe from chart actions.

  • type options are 'onZoom', 'onScroll', 'onVisibleRangeChange', 'onCandleBarClick', 'onTooltipIconClick', 'onCrosshairChange' and 'onPaneDrag'
  • callback is the callback method when subscribing, the default is to cancel all the current types

convertToPixel(value, finder)

typescript
(
+   value: {
+     dataIndex?: number
+     timestamp?: number
+     value?: number
+   } | Array<{
+     dataIndex?: number
+     timestamp?: number
+     value?: number
+   }>,
+   finder: {
+     paneId?: string,
+     absolute?: boolean
+   }
+) => { x: number?, y?: number } | Array<{ x?: number, y?: number }>
(
    value: {
      dataIndex?: number
      timestamp?: number
@@ -973,27 +974,27 @@
      paneId?: string,
      absolute?: boolean
    }
-) => { x: number?, y?: number } | Array<{ x?: number, y?: number }>

Convert values to coordinates.

  • value The value to be converted, it can be an object or an array
    • dataIndex data index, if dataIndex and timestamp exist at the same time, it will be converted according to the index
    • timestamp timestamp
    • value corresponds to the value of the y-axis
  • finder filter
    • paneId window id
    • absolute is an absolute coordinate, only works on the y axis

convertFromPixel(coordinate, finder)

typescript
(
-  coordinate: {
-    x?: number
-    y?: number
-  } | Array<{
-    x?: number
-    y?: number
-  },
-  finder: {
-    paneId?: string
-    absolute?: boolean
-  }
-) => {
-    dataIndex?: number
-    timestamp?: number
-    value?: number
-  } | Array<{
-    dataIndex?: number
-    timestamp?: number
-    value?: number
-  }>
(
+) => { x: number?, y?: number } | Array<{ x?: number, y?: number }>

Convert values to coordinates.

  • value The value to be converted, it can be an object or an array
    • dataIndex data index, if dataIndex and timestamp exist at the same time, it will be converted according to the index
    • timestamp timestamp
    • value corresponds to the value of the y-axis
  • finder filter
    • paneId window id
    • absolute is an absolute coordinate, only works on the y axis

convertFromPixel(coordinate, finder)

typescript
(
+  coordinate: {
+    x?: number
+    y?: number
+  } | Array<{
+    x?: number
+    y?: number
+  },
+  finder: {
+    paneId?: string
+    absolute?: boolean
+  }
+) => {
+    dataIndex?: number
+    timestamp?: number
+    value?: number
+  } | Array<{
+    dataIndex?: number
+    timestamp?: number
+    value?: number
+  }>
(
   coordinate: {
     x?: number
     y?: number
@@ -1013,8 +1014,8 @@
     dataIndex?: number
     timestamp?: number
     value?: number
-  }>

Convert coordinates to values.

  • coordinate needs to be converted, it can be an object or an array
  • finder filter
    • paneId window id
    • absolute is an absolute coordinate, only works on the y axis

getConvertPictureUrl(includeOverlay, type, backgroundColor)

typescript
(includeOverlay?: boolean, type?: string, backgroundColor?: string) => string
(includeOverlay?: boolean, type?: string, backgroundColor?: string) => string

Get the image url after the chart is converted into an image.

  • includeOverlay needs to include the overlay layer, it can be defaulted
  • type The converted image type, one of the three types of 'png', 'jpeg', 'bmp', can be defaulted, the default is 'jpeg'
  • backgroundColor background color, can be defaulted, the default is '#FFFFFF'

resize()

typescript
() => void
() => void

Resizing the chart will always fill the container size.

Note

This method will recalculate the size of each module in the entire chart, frequent calls may affect performance, please call with caution.

Released under the Apache License V2.

- + }>

Convert coordinates to values.

  • coordinate needs to be converted, it can be an object or an array
  • finder filter
    • paneId window id
    • absolute is an absolute coordinate, only works on the y axis

getConvertPictureUrl(includeOverlay, type, backgroundColor)

typescript
(includeOverlay?: boolean, type?: string, backgroundColor?: string) => string
(includeOverlay?: boolean, type?: string, backgroundColor?: string) => string

Get the image url after the chart is converted into an image.

  • includeOverlay needs to include the overlay layer, it can be defaulted
  • type The converted image type, one of the three types of 'png', 'jpeg', 'bmp', can be defaulted, the default is 'jpeg'
  • backgroundColor background color, can be defaulted, the default is '#FFFFFF'

resize()

typescript
() => void
() => void

Resizing the chart will always fill the container size.

Note

This method will recalculate the size of each module in the entire chart, frequent calls may affect performance, please call with caution.

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/en-US/guide/overlay.html b/en-US/guide/overlay.html index 0417e5d62..492d9d210 100644 --- a/en-US/guide/overlay.html +++ b/en-US/guide/overlay.html @@ -5,51 +5,52 @@ Overlay | KLineChart - + - + - - - + + + - + + -
Skip to content
On this page

Overlay

This document introduces the built-in overlays in the chart and how to customize a overlay.

Built-in overlay types

horizontalRayLine, horizontalSegment, horizontalStraightLine, verticalRayLine, verticalSegment, verticalStraightLine, rayLine, segment, straightLine, priceLine, priceChannelLine, parallelLfilineLine, ci , simpleAnnotation, simpleTag

Custom overlays

Customize an overlay, then add it globally through klinecharts.registerOverlay, add it to the chart and use it like the built-in overlay.

Attribute description

typescript
{
+    
Skip to content

Overlay

This document introduces the built-in overlays in the chart and how to customize a overlay.

Built-in overlay types

horizontalRayLine, horizontalSegment, horizontalStraightLine, verticalRayLine, verticalSegment, verticalStraightLine, rayLine, segment, straightLine, priceLine, priceChannelLine, parallelLfilineLine, ci , simpleAnnotation, simpleTag

Custom overlays

Customize an overlay, then add it globally through klinecharts.registerOverlay, add it to the chart and use it like the built-in overlay.

Attribute description

typescript
{
   // Name, a required field, used as the unique identifier for overlay creation
-  name: string
+  name: string
 
   // How many steps are needed in total to complete the drawing, not necessary
-  totalStep?: number
+  totalStep?: number
 
   // Whether to lock, do not trigger events, not necessary
-  lock?: boolean
+  lock?: boolean
 
   // Do you need visible
-  visible?: boolean
+  visible?: boolean
 
   // Draw level
-  zLevel?: number
+  zLevel?: number
 
   // Do you need the graphics corresponding to the default points, not necessary
-  needDefaultPointFigure?: boolean
+  needDefaultPointFigure?: boolean
 
   // Do you need the graphics on the default X-axis, not necessary
-  needDefaultXAxisFigure?: boolean
+  needDefaultXAxisFigure?: boolean
 
   // Do you need the graphics on the default Y axis, not necessary
-  needDefaultYAxisFigure?: boolean
+  needDefaultYAxisFigure?: boolean
 
   // mode, options are `normal`, `weak_magnet`, `strong_magnet`, not required
-  mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+  mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
 
   // mode sensitivity, only valid when mode is weak_magnet
-  modeSensitivity?: number
+  modeSensitivity?: number
 
   // point information, not required
-  points?: Array<{
+  points?: Array<{
     // timestamp
     timestamp: number
     // data index
@@ -59,72 +60,72 @@
   }>,
 
   // Extended data, not required
-  extendData?: any
+  extendData?: any
 
   // style, not required, the type participates in the overlay in [style]
-  styles?: OverlayStyle
+  styles?: OverlayStyle
 
   // Create graphics corresponding to points, not required
   createPointFigures: ({
     // overlay instance
-    overlay: Overlay
+    overlay: Overlay
     // coordinate information corresponding to points
-    coordinates: Array<{
+    coordinates: Array<{
       x: number
       y: number
     }>
     // window size information
-    bounding: {
+    bounding: {
       // width
-      width: number
+      width: number
       // high
-      height: number
+      height: number
       // distance to the left
-      left: number
+      left: number
       // distance to the right
-      right: number
+      right: number
       // distance from top
-      top: number
+      top: number
       // distance from bottom
-      bottom: number
+      bottom: number
     },
     // information about the size of the candlestick
     barSpace: {
       // candlestick size
-      bar: number
-      halfBar: number
+      bar: number
+      halfBar: number
       // candlesticks do not include dimensions of gaps between candlesticks
-      gapBar: number
-      halfGapBar: number
+      gapBar: number
+      halfGapBar: number
     },
     // precision
     precision: {
       // price precision
-      price: number
+      price: number
       // Quantity precision
-      volume: number
+      volume: number
     },
     // thousands separator
-    thousandsSeparator: string,
+    thousandsSeparator: string,
     // Constructor for objects that format date and time, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat for details
-    dateTimeFormat: Intl. DateTimeFormat
+    dateTimeFormat: Intl. DateTimeFormat
     // The default style, that is, the overlay in the global style configuration, the type participates in the overlay in [style]
-    defaultStyles: OverlayStyle
+    defaultStyles: OverlayStyle
     // x-axis component, some built-in conversion methods
-    xAxis: XAxis,
+    xAxis: XAxis,
     // y-axis component, with some built-in conversion methods
-    yAxis: YAxis
+    yAxis: YAxis
   }) => ({
     // No special meaning, can be used for extension fields
-    key?: string
+    key?: string
     // Graphic type, one of the return values of klinecharts.getSupportFigures
-    type: string
+    type: string
     // The properties of the graphic corresponding to the type
-    attrs: any | any[]
+    attrs: any | any[]
     // The style of the graphic corresponding to type
-    styles?: any
+    styles?: any
     // Whether to ignore the event
-    ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+    ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
   }) | Array<{
     key?: string
     type: string
@@ -134,19 +135,19 @@
   }>
 
   // Create graphics on the X axis, not required, parameters and return values are consistent with `createPointFigures`
-  createXAxisFigures?: OverlayCreateFiguresCallback
+  createXAxisFigures?: OverlayCreateFiguresCallback
 
   // Create graphics on the Y axis, not required, parameters and return values are consistent with `createPointFigures`
-  createYAxisFigures?: OverlayCreateFiguresCallback
+  createYAxisFigures?: OverlayCreateFiguresCallback
 
   // Handle the movement operation during the drawing process, which can be defaulted and triggered during the movement drawing process
-  performEventMoveForDrawing?: ({
+  performEventMoveForDrawing?: ({
     // current step
-    currentStep: number
+    currentStep: number
     // model
-    mode: 'normal' | 'weak_magnet' | 'strong_magnet'
+    mode: 'normal' | 'weak_magnet' | 'strong_magnet'
     // point information
-    points: Array<{
+    points: Array<{
       // timestamp
       timestamp: number
       // data index
@@ -155,56 +156,56 @@
       value?: number
     }>,
     // index of the event point
-    performPointIndex
+    performPointIndex
     // Information about the point where the event is located
-    performPoint
+    performPoint
   }) => void,
 
   // Handle the press and move operation, which can be defaulted, and is triggered during the movement of a certain operation point
   // The callback parameters are consistent with `performEventMoveForDrawing`
-  performEventPressedMove?: (params: OverlayPerformEventParams) => void
+  performEventPressedMove?: (params: OverlayPerformEventParams) => void
 
   // draw start callback event, can be default
-  onDrawStart?: (event: OverlayEvent) => boolean
+  onDrawStart?: (event: OverlayEvent) => boolean
 
   // callback event during drawing, can be defaulted
-  onDrawing?: (event: OverlayEvent) => boolean
+  onDrawing?: (event: OverlayEvent) => boolean
 
   // Draw end callback event, can be default
-  onDrawEnd?: (event: OverlayEvent) => boolean
+  onDrawEnd?: (event: OverlayEvent) => boolean
 
   // click callback event, default
-  onClick?: (event: OverlayEvent) => boolean
+  onClick?: (event: OverlayEvent) => boolean
 
   // double click callback event, default
-  onDoubleClick?: (event: OverlayEvent) => boolean
+  onDoubleClick?: (event: OverlayEvent) => boolean
 
   // The right-click callback event, which can be defaulted, needs to return a value of type boolean. If it returns true, the built-in right-click delete will be invalid
-  onRightClick?: (event: OverlayEvent) => boolean
+  onRightClick?: (event: OverlayEvent) => boolean
 
   // Hold down and drag to start the callback event, which can be defaulted
-  onPressedMoveStart?: (event: OverlayEvent) => boolean
+  onPressedMoveStart?: (event: OverlayEvent) => boolean
 
   // Press and hold the drag callback event, which can be defaulted
-  onPressedMoving?: (event: OverlayEvent) => boolean
+  onPressedMoving?: (event: OverlayEvent) => boolean
 
   // Hold down and drag to end the callback event, which can be defaulted
-  onPressedMoveEnd: (event: OverlayEvent) => boolean
+  onPressedMoveEnd: (event: OverlayEvent) => boolean
 
   // Mouse move event, can be default
-  onMouseEnter?: (event: OverlayEvent) => boolean
+  onMouseEnter?: (event: OverlayEvent) => boolean
 
   // Mouse out event, default
-  onMouseLeave?: (event: OverlayEvent) => boolean
+  onMouseLeave?: (event: OverlayEvent) => boolean
 
   // delete callback event, default
-  onRemoved?: (event: OverlayEvent) => boolean
+  onRemoved?: (event: OverlayEvent) => boolean
 
   // Select the callback event, which can be defaulted
-  onSelected?: (event: OverlayEvent) => boolean
+  onSelected?: (event: OverlayEvent) => boolean
 
   // cancel callback event, default
-  onDeselected?: (event: OverlayEvent) => boolean
+  onDeselected?: (event: OverlayEvent) => boolean
 }
{
   // Name, a required field, used as the unique identifier for overlay creation
   name: string
@@ -401,19 +402,19 @@
    totalStep: 3,
 
    // Create the graphic information corresponding to the point
-   createPointFigures: ({ scoordinates }) => {
-     if (coordinates. length === 2) {
-       const xDis = Math.abs(coordinates[0].x - coordinates[1].x)
-       const yDis = Math.abs(coordinates[0].y - coordinates[1].y)
+   createPointFigures: ({ scoordinates }) => {
+     if (coordinates. length === 2) {
+       const xDis = Math.abs(coordinates[0].x - coordinates[1].x)
+       const yDis = Math.abs(coordinates[0].y - coordinates[1].y)
        // Determine the coordinates of the circle generated by the corresponding point
-       const radius = Math. sqrt(xDis * xDis + yDis * yDis)
+       const radius = Math. sqrt(xDis * xDis + yDis * yDis)
        // The chart has built-in basic graphics 'circle', which can be used directly
        return {
          key: 'sampleCircle',
          type: 'circle',
          attrs: {
-           ...coordinates[0],
-           r: radius
+           ...coordinates[0],
+           r: radius
          },
          styles: {
            // Select the border and fill it, other selections use the default style
@@ -453,8 +454,8 @@
      }
      return []
    }
-}

So a custom overlay is complete.

Released under the Apache License V2.

- +}

So a custom overlay is complete.

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/en-US/guide/styles.html b/en-US/guide/styles.html index 59c2ac73d..6a4043ddd 100644 --- a/en-US/guide/styles.html +++ b/en-US/guide/styles.html @@ -5,20 +5,21 @@ 🎨 Style | KLineChart - + - + - - - - + + + + - + + -
Skip to content
On this page

🎨 Style

Whether you see a point or a line on the chart, you can basically customize the style. Changes can be made via the chart method init(ds, options) or the chart instance method setStyles(styles).

Picture explanation

1 grid.horizontal2 grid.vertical3 candle.bar4 candle.candle.priceMark.last.line5 candle.candle.priceMark.last.text6 candle.candle.priceMark.high7 candle.candle.priceMark.low8 candle.candle.tooltip9 indicator.ohlc10 indicator.lastValueMark11 indicator.tooltip12 xAxis.axisLine13 xAxis.tickLine14 xAxis.tickText15 yAxis.axisLine16 yAxis.tickLine17 yAxis.tickText18 separator19 crosshair.horizontal.line20 crosshair.horizontal.text21 crosshair.vertical.line22 crosshair.vertical.text23 overlay

Default full configuration

javascript
{
+    
Skip to content

🎨 Style

Whether you see a point or a line on the chart, you can basically customize the style. Changes can be made via the chart method init(ds, options) or the chart instance method setStyles(styles).

Picture explanation

1 grid.horizontal2 grid.vertical3 candle.bar4 candle.candle.priceMark.last.line5 candle.candle.priceMark.last.text6 candle.candle.priceMark.high7 candle.candle.priceMark.low8 candle.candle.tooltip9 indicator.ohlc10 indicator.lastValueMark11 indicator.tooltip12 xAxis.axisLine13 xAxis.tickLine14 xAxis.tickText15 yAxis.axisLine16 yAxis.tickLine17 yAxis.tickText18 separator19 crosshair.horizontal.line20 crosshair.horizontal.text21 crosshair.vertical.line22 crosshair.vertical.text23 overlay

Default full configuration

javascript
{
   grid: {
     show: true,
     horizontal: {
@@ -990,8 +991,8 @@
       backgroundColor: '#1677FF'
     }
   }
-}

Released under the Apache License V2.

- +}

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/en-US/guide/v8-to-v9.html b/en-US/guide/v8-to-v9.html index a10fce6d2..bd63dfd6d 100644 --- a/en-US/guide/v8-to-v9.html +++ b/en-US/guide/v8-to-v9.html @@ -5,20 +5,21 @@ 🛠️ From V8 to V9 | KLineChart - + - + - - - + + + - + + -
Skip to content
On this page

🛠️ From V8 to V9

This document will help you upgrade from kinecharts 8.x to klinecharts 9.x. If you are 7.x or older, please refer to the previous upgrade document to upgrade to 8.x.

Import adjustment

klinecharts/index.blank' and klinecharts/index.simple are no longer distinguished. Please use import {...} from klinecharts uniformly.

Design adjustment

shape, annotation, tag are merged into overlay. Please refer to overlay for details.

Style configuration adjustment

  • The style options of all lines are changed to dashed and dashValue to dashedValue.
  • candle.tooltip.labels and candle.tooltip.values are merged into candle.tooltip.custom.
  • xAxis.height is changed to xAxis.size, xAxis.tickeText.paddingTop is changed to xAxis.tickeText.marinStart, and xAxis.tickeText.paddingBottom is changed to xAxis.tickeText.marginEnd.
  • yAxis.height is changed to yAxis.size, yAxis.tickeText.paddingTop is changed to yAxis.tickeText.marinStart, and yAxis.tickeText.paddingBottom is changed to yAxis.tickeText.marginEnd.
  • technicalIndicator.bar is changed to indicator.bars, technicalIndicator.line is changed to indicator.linestechnicalIndicator.circle is changed to indicator.circles.
  • Delete shape, annotation, tag, please use overlay instead.

API adjustment

Chart API

  • extension.addTechnicalIndicatorTemplate(template) is changed to registerIndicator(template).
  • Delete extension.addShapeTemplate(template), please use registerOverlay(template) instead.

Instance API

  • getDom({paneId, position}) is changed to getDom(paneId, position), and the parameter position option is changed to root, main and yAxis.
  • getWidth() and getHeight() are combined into a method 'getSize(paneId, position).
  • setStyleOptions(styles) is changed to setStyles(styles).
  • getStyleOptions() is changed to getStyles().
  • setOffsetRightSpace(space) is changed to setOffsetRightDistance(distance).
  • createTechnicalIndicator(value, isStack, paneOptions) is changed to createIndicator(value, isStack, paneOptions).
  • overrideTechnicalIndicator(override, paneId) is changed to overrideIndicator(override, paneId).
  • getTechnicalIndicatorByPaneId(paneId, name) is changed to getIndicatorByPaneId(paneId, name).
  • removeTechnicalIndicator(paneId, name) is changed to removeIndicator(paneId, name).
  • subscribeAction(type, callback) and unsubscribeAction(type, callback). The parameter type option is changed to onZoom, onScroll, onCrosshairChange, onVisibleRangeChange and onPaneDrag.
  • convertToPixel(value, finder) and convertFromPixel(coordinate, finder), the parameter finder.absoluteYAxis is changed to finder.absolute.
  • To delete createShape(value, paneId), createAnnotation(annotation, paneId), createTag(tag, paneId), please use createOverlay(value, paneId) instead.
  • To delete removeShape(id), removeAnnotation(paneId, points), removeTag(paneId, tagId), please use removeOverlay(id) instead.
  • To delete setShapeOptions(options), use overrideOverlay(override) instead.
  • To delete reateHtml(html, paneId), removeHtml(paneId, htmlId), please obtain the corresponding dom through getDom(paneId, position).
  • To delete getTechnicalIndicatorByPaneId(paneId, name).

Shape help API

  • All APIs are migrated to 'klinecharts.utils'.

Customized technical indicator adjustment

  • Attribute plots is changed to figures, sub item methods color, isStroke, isDashed are merged into styles.
  • Change the method 'regeneratePlots(params) to regeneratefigures(params).
  • The method calcTechnicalIndicator(kLineDataList, options) is changed to calc(kLineDataList, indicator).
  • The method createTooltipDataSource({ dataSource, viewport, crosshair, technicalIndicator, xAxis, yAxis, defaultStyles }) is changed to createTooltipDataSource({ kLineDataList, indicator, visibleRange, bounding, crosshair, defaultStyles, xAxis, yAxis }). The return value is determined by [{ title: 'xxx', value: 'xxx', color: 'xxx' } ] Change to { name: 'xxx', calcParamsText: 'xxx', values: [{ title: 'xxx', value: 'xxx', color: 'xxx' }, ...] }.
  • The method render({ctx, dataSource, viewport, styles, xAxis, yAxis}) is changed to draw({ ctx, kLineDataList, indicator, visibleRange, bounding, barSpace, defaultStyles, xAxis, yAxis }).
  • Delete the attribute shouldCheckParamCount.

Released under the Apache License V2.

- +
Skip to content

🛠️ From V8 to V9

This document will help you upgrade from kinecharts 8.x to klinecharts 9.x. If you are 7.x or older, please refer to the previous upgrade document to upgrade to 8.x.

Import adjustment

klinecharts/index.blank' and klinecharts/index.simple are no longer distinguished. Please use import {...} from klinecharts uniformly.

Design adjustment

shape, annotation, tag are merged into overlay. Please refer to overlay for details.

Style configuration adjustment

  • The style options of all lines are changed to dashed and dashValue to dashedValue.
  • candle.tooltip.labels and candle.tooltip.values are merged into candle.tooltip.custom.
  • xAxis.height is changed to xAxis.size, xAxis.tickeText.paddingTop is changed to xAxis.tickeText.marinStart, and xAxis.tickeText.paddingBottom is changed to xAxis.tickeText.marginEnd.
  • yAxis.height is changed to yAxis.size, yAxis.tickeText.paddingTop is changed to yAxis.tickeText.marinStart, and yAxis.tickeText.paddingBottom is changed to yAxis.tickeText.marginEnd.
  • technicalIndicator.bar is changed to indicator.bars, technicalIndicator.line is changed to indicator.linestechnicalIndicator.circle is changed to indicator.circles.
  • Delete shape, annotation, tag, please use overlay instead.

API adjustment

Chart API

  • extension.addTechnicalIndicatorTemplate(template) is changed to registerIndicator(template).
  • Delete extension.addShapeTemplate(template), please use registerOverlay(template) instead.

Instance API

  • getDom({paneId, position}) is changed to getDom(paneId, position), and the parameter position option is changed to root, main and yAxis.
  • getWidth() and getHeight() are combined into a method 'getSize(paneId, position).
  • setStyleOptions(styles) is changed to setStyles(styles).
  • getStyleOptions() is changed to getStyles().
  • setOffsetRightSpace(space) is changed to setOffsetRightDistance(distance).
  • createTechnicalIndicator(value, isStack, paneOptions) is changed to createIndicator(value, isStack, paneOptions).
  • overrideTechnicalIndicator(override, paneId) is changed to overrideIndicator(override, paneId).
  • getTechnicalIndicatorByPaneId(paneId, name) is changed to getIndicatorByPaneId(paneId, name).
  • removeTechnicalIndicator(paneId, name) is changed to removeIndicator(paneId, name).
  • subscribeAction(type, callback) and unsubscribeAction(type, callback). The parameter type option is changed to onZoom, onScroll, onCrosshairChange, onVisibleRangeChange and onPaneDrag.
  • convertToPixel(value, finder) and convertFromPixel(coordinate, finder), the parameter finder.absoluteYAxis is changed to finder.absolute.
  • To delete createShape(value, paneId), createAnnotation(annotation, paneId), createTag(tag, paneId), please use createOverlay(value, paneId) instead.
  • To delete removeShape(id), removeAnnotation(paneId, points), removeTag(paneId, tagId), please use removeOverlay(id) instead.
  • To delete setShapeOptions(options), use overrideOverlay(override) instead.
  • To delete reateHtml(html, paneId), removeHtml(paneId, htmlId), please obtain the corresponding dom through getDom(paneId, position).
  • To delete getTechnicalIndicatorByPaneId(paneId, name).

Shape help API

  • All APIs are migrated to 'klinecharts.utils'.

Customized technical indicator adjustment

  • Attribute plots is changed to figures, sub item methods color, isStroke, isDashed are merged into styles.
  • Change the method 'regeneratePlots(params) to regeneratefigures(params).
  • The method calcTechnicalIndicator(kLineDataList, options) is changed to calc(kLineDataList, indicator).
  • The method createTooltipDataSource({ dataSource, viewport, crosshair, technicalIndicator, xAxis, yAxis, defaultStyles }) is changed to createTooltipDataSource({ kLineDataList, indicator, visibleRange, bounding, crosshair, defaultStyles, xAxis, yAxis }). The return value is determined by [{ title: 'xxx', value: 'xxx', color: 'xxx' } ] Change to { name: 'xxx', calcParamsText: 'xxx', values: [{ title: 'xxx', value: 'xxx', color: 'xxx' }, ...] }.
  • The method render({ctx, dataSource, viewport, styles, xAxis, yAxis}) is changed to draw({ ctx, kLineDataList, indicator, visibleRange, bounding, barSpace, defaultStyles, xAxis, yAxis }).
  • Delete the attribute shouldCheckParamCount.

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/en-US/guide/what-is-klinechart.html b/en-US/guide/what-is-klinechart.html index 12f565e14..d18461fd4 100644 --- a/en-US/guide/what-is-klinechart.html +++ b/en-US/guide/what-is-klinechart.html @@ -5,20 +5,21 @@ 📃 Introducation | KLineChart - + - + - - - + + + - + + -
Skip to content
On this page

📃 Introducation

What's KLineChart?

KLineChart,it is a highly customizable professional lightweight financial chart.

Features

  • 📦 Out of the box: Simple and fast integration, basically zero cost to get started.
  • 🚀 Lightweight and smooth: Zero dependencies, only 40k under gzip compression.
  • 💪 Powerful functions: Built-in multiple indicators and line drawing models.
  • 🎨 Highly scalable: With rich style configuration and API, the function can be extended as you like.
  • 📱 Mobile: Support mobile, one chart, handle multiple terminals.
  • 🛡 Typescript development: Provide complete type definition files.

Released under the Apache License V2.

- +
Skip to content

📃 Introducation

What's KLineChart?

KLineChart,it is a highly customizable professional lightweight financial chart.

Features

  • 📦 Out of the box: Simple and fast integration, basically zero cost to get started.
  • 🚀 Lightweight and smooth: Zero dependencies, only 40k under gzip compression.
  • 💪 Powerful functions: Built-in multiple indicators and line drawing models.
  • 🎨 Highly scalable: With rich style configuration and API, the function can be extended as you like.
  • 📱 Mobile: Support mobile, one chart, handle multiple terminals.
  • 🛡 Typescript development: Provide complete type definition files.

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/en-US/index.html b/en-US/index.html index e163ee257..fee7c0e80 100644 --- a/en-US/index.html +++ b/en-US/index.html @@ -5,20 +5,21 @@ Highly customizable professional lightweight financial chart | KLineChart - + - + - - - + + + - + + -
Skip to content

KLineChart

Highly customizable professional lightweight financial chart

Easy to use, lightweight and smooth, suitable for web front-end financial chart with rich scenarios.

KLineChart

Who are using

Released under the Apache License V2.

- +
Skip to content

KLineChart

Highly customizable professional lightweight financial chart

Easy to use, lightweight and smooth, suitable for web front-end financial chart with rich scenarios.

KLineChart

Who are using

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/en-US/sponsor.html b/en-US/sponsor.html index 34d657270..1dd37b5d3 100644 --- a/en-US/sponsor.html +++ b/en-US/sponsor.html @@ -5,21 +5,22 @@ ❤️ Sponsor | KLineChart - + - + - - + + - + - + + -
Skip to content
On this page

❤️ Sponsor

If you think the plugin is good, I hope you can click 🌟 on GitHub. If you can reward a cup of ☕️, that would be very much appreciated.

Alipay

Wechat Pay

PayPal

Cryptocurrency

Released under the Apache License V2.

- +
Skip to content

❤️ Sponsor

If you think the plugin is good, I hope you can click 🌟 on GitHub. If you can reward a cup of ☕️, that would be very much appreciated.

Alipay

Wechat Pay

PayPal

Cryptocurrency

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/guide/changelog.html b/guide/changelog.html index 5b380afc2..cc9a7a9e6 100644 --- a/guide/changelog.html +++ b/guide/changelog.html @@ -5,20 +5,21 @@ 📠 更新日志 | KLineChart - + - + - - - + + + - + + -
Skip to content
本页目录

📠 更新日志

9.5.1

2023-08-14

  • 🆕 图表方法新增getOverlayClass
  • 🆕 样式配置candle.tooltip.custom新增内置涨跌幅支持。
  • 💄 优化基础图形rect事件响应。
  • ↩️ 分割线事件响应回退

9.5.0

2023-06-15

  • 🆕 Overlay新增事件onDoubleClick,新增属性modeSensitivity
  • 🆕 样式配置candle.tooltip.custom支持字符串模版。
  • 🐞 优化移动端阻尼滚动掉帧问题。
  • 🐞 修复窗口id命名拼写错误。
  • 💄 优化分割线事件响应灵敏度。
  • 💄 优化typescript下,OverlayFigure中的attrs类型声明。

9.4.0

2023-05-25

  • 🆕 实例api createOverlay 支持数组。
  • 🆕 overlay新增属性paneIddefaultZLevelzLevel
  • 🆕 xAxis新增方法convertTimestampFromPixelconvertTimestampToPixel
  • 💄 优化蜡烛柱显示。

9.3.0

2023-05-13

  • 🆕 新增图表API utils.calcTextWidth
  • 🆕 图表API createIndicator(value, isStack, options)setPaneOptions(options)新增options.axisOptions
  • 🆕 指标图形配置支持自定义。
  • 💄 优化bar宽度比例。
  • 💄 优化内部获取屏幕像素比。
  • 💄 优化内部id生成。

9.2.2

2023-05-04

  • 🐞 修复基础图形line事件检查可能导致错误问题。
  • 💄 优化类型检查。

9.2.1

2023-04-27

  • 💄 优化默认样式,#EF5350变更为#F92855#26A69A变更为#2DC08E
  • 💄 优化typescript声明。

9.2.0

2023-04-24

  • 🆕 实例API新增getOffsetRightDistanceexecuteAction
  • 🆕 实例APIapplyNewDataapplyMoreDataupdateData新增成功回调入参callback
  • 🆕 支持千分符显示。
  • 🆕 样式配置新增candle.bar.upBorderColorcandle.bar.downBorderColorcandle.bar.noChangeBorderColorcandle.bar.upWickColorcandle.bar.downWickColorcandle.bar.noChangeWickColorcandle.tooltip.rect.positioncandle.tooltip.rect.offsetBottom
  • 🆕 所有visibleRange新增realFromrealTo
  • 💄 优化API,klinecharts.utils.isValidklinecharts.utils.formatBigNumber
  • 💄 优化开发环境下,日志输出。

9.1.3

2023-04-15

  • 🐞 修复图表api applyNewData 入参是空数组时不刷新问题。
  • 🐞 修复无数据时y轴上十字光标文字不显示问题。
  • 💄 优化面积图显示。
  • 💄 优化覆盖物事件回调参数,新增figureKeyfigureIndex
  • 💄 优化typescript覆盖物样式类型,和基础类型DeepPartial, DeepRequired

9.1.2

2023-04-10

  • 🐞 修复内置基础图形line触发事件不准确问题。
  • 🐞 修复内置覆盖物simpleAnnotationsimpleTag绘制完成后第一次触发事件问题。
  • 💄 优化覆盖物图形事件忽略,支持事件选择。

9.1.1

2023-03-14

  • 🐞 修复内置基础图形arc不生效问题。
  • 💄 优化渲染更新。

9.1.0

2023-02-23

  • 🆕 图表实例方法subscribeActionunsubscribeAction类型新增onCandleBarClick
  • 🆕 覆盖物支持双击强制结束绘制。
  • 💄 优化事件处理。

9.0.1

2023-02-17

  • 🐞 修复typescript引入问题。

9.0.0

2023-02-16

  • 🛠 Typescript重构。
  • 🆕 新特性
    • 新增Y轴方向缩放,滚动。
    • API
      • 新增基图表方法registerFiguregetSupportFiguresgetFigureClassrigisterOverlaygetSupportOverlaysregisterLocalegetSupportLocalesregisterStyles
      • 新增实例方法,getSizesetLocalegetLocalsetCustomApigetVisibleRangecreateOverlaygetOverlayByIdoverrideOverlayremoveOverlay
    • 样式配置
      • 新增candle.priceMark.last.text.borderStylecandle.tooltip.iconsindicator.lastValueMark.text.borderStyleindicator.tooltip.iconscrosshair.horizontal.text.borderStylecrosshair.vertical.text.borderStyle
  • 👉 变更
    • API
      • 图表方法extension.addTechnicalIndicatorTemplate变更为registerIndicator
      • 图表方法extension.addShapeTemplate变更为registerOverlay
      • 实例方法setStyleOptions变更为setStyles
      • 实例方法getStyleOptions变更为getStyles
      • 实例方法setPaneOptions(options)options新增属性gap
      • 实例方法setOffsetRightSpace变更为setOffsetRightDistance
      • 实例方法createTechnicalIndicator变更为createIndicator
      • 实例方法overlayTechnicalIndicator变更为overlayIndicator
      • 实例方法getTechnicalIndicatorByPaneId变更为getIndicatorByPaneId
      • 实例方法removeTechnicalIndicator变更为removeIndicator
    • 样式配置
      • 所有line.style选项变更为soliddashed
      • 所有dashValue变更为dashedValue
      • xAxis.height变更为xAxis.sizexAxis.tickText.paddingTop变更为xAxis.tickText.marginStartxAxis.tickText.paddingBottom变更为xAxis.tickText.marginEnd
      • yAxis.height变更为yAxis.sizeyAxis.tickText.paddingTop变更为yAxis.tickText.marginStartyAxis.tickText.paddingBottom变更为yAxis.tickText.marginEnd
      • technicalIndicator.bar变更为indicator.barstechnicalIndicator.line变更为indicator.linestechnicalIndicator.circle变更为indicator.circles
    • 自定义扩展
      • 技术指标属性calcParams,变更为支持任意类型。
      • 技术指标属性plots变更为figures
      • 技术指标属性regeneratePlots变更为regeneratefigures
      • 技术指标属性calcTechnicalIndicator变更为calc
      • 技术指标属性render变更为draw
  • 🗑 废弃
    • API
      • 删除实例方法getWidthgetHeight,改用getSize
      • 删除实例方法createShapecreateAnnotationcreateTag,改用createOverlay
      • 删除实例方法removeShaperemoveAnnotationremoveTag,改用removeOverlay
      • 删除实例方法setShapeOptions,改用overrideOverlay
      • 删除实例方法createHtmlremoveHtmladdTechnicalIndicatorTemplategetTechnicalIndicatorTemplateaddShapeTemplate
    • 样式配置
      • 删除shapeannotationtag,改用overlay
      • 删除candle.margintechnicalIndicator.margin
    • 自定义扩展
      • 技术指标模版不再保存相关属性。
      • 技术指标删除属性shouldCheckParamCount
      • 删除Shape,改用Overlay

8.x

Github上查看 8.x 的 Change Log。

7.x

Github上查看 7.x 的 Change Log。

6.x

Github上查看 6.x 的 Change Log。

5.x

Github上查看 5.x 的版本记录。

4.x

Github上查看 4.x 的版本记录。

Released under the Apache License V2.

- +
Skip to content

📠 更新日志

9.5.1

2023-08-14

  • 🆕 图表方法新增getOverlayClass
  • 🆕 样式配置candle.tooltip.custom新增内置涨跌幅支持。
  • 💄 优化基础图形rect事件响应。
  • ↩️ 分割线事件响应回退

9.5.0

2023-06-15

  • 🆕 Overlay新增事件onDoubleClick,新增属性modeSensitivity
  • 🆕 样式配置candle.tooltip.custom支持字符串模版。
  • 🐞 优化移动端阻尼滚动掉帧问题。
  • 🐞 修复窗口id命名拼写错误。
  • 💄 优化分割线事件响应灵敏度。
  • 💄 优化typescript下,OverlayFigure中的attrs类型声明。

9.4.0

2023-05-25

  • 🆕 实例api createOverlay 支持数组。
  • 🆕 overlay新增属性paneIddefaultZLevelzLevel
  • 🆕 xAxis新增方法convertTimestampFromPixelconvertTimestampToPixel
  • 💄 优化蜡烛柱显示。

9.3.0

2023-05-13

  • 🆕 新增图表API utils.calcTextWidth
  • 🆕 图表API createIndicator(value, isStack, options)setPaneOptions(options)新增options.axisOptions
  • 🆕 指标图形配置支持自定义。
  • 💄 优化bar宽度比例。
  • 💄 优化内部获取屏幕像素比。
  • 💄 优化内部id生成。

9.2.2

2023-05-04

  • 🐞 修复基础图形line事件检查可能导致错误问题。
  • 💄 优化类型检查。

9.2.1

2023-04-27

  • 💄 优化默认样式,#EF5350变更为#F92855#26A69A变更为#2DC08E
  • 💄 优化typescript声明。

9.2.0

2023-04-24

  • 🆕 实例API新增getOffsetRightDistanceexecuteAction
  • 🆕 实例APIapplyNewDataapplyMoreDataupdateData新增成功回调入参callback
  • 🆕 支持千分符显示。
  • 🆕 样式配置新增candle.bar.upBorderColorcandle.bar.downBorderColorcandle.bar.noChangeBorderColorcandle.bar.upWickColorcandle.bar.downWickColorcandle.bar.noChangeWickColorcandle.tooltip.rect.positioncandle.tooltip.rect.offsetBottom
  • 🆕 所有visibleRange新增realFromrealTo
  • 💄 优化API,klinecharts.utils.isValidklinecharts.utils.formatBigNumber
  • 💄 优化开发环境下,日志输出。

9.1.3

2023-04-15

  • 🐞 修复图表api applyNewData 入参是空数组时不刷新问题。
  • 🐞 修复无数据时y轴上十字光标文字不显示问题。
  • 💄 优化面积图显示。
  • 💄 优化覆盖物事件回调参数,新增figureKeyfigureIndex
  • 💄 优化typescript覆盖物样式类型,和基础类型DeepPartial, DeepRequired

9.1.2

2023-04-10

  • 🐞 修复内置基础图形line触发事件不准确问题。
  • 🐞 修复内置覆盖物simpleAnnotationsimpleTag绘制完成后第一次触发事件问题。
  • 💄 优化覆盖物图形事件忽略,支持事件选择。

9.1.1

2023-03-14

  • 🐞 修复内置基础图形arc不生效问题。
  • 💄 优化渲染更新。

9.1.0

2023-02-23

  • 🆕 图表实例方法subscribeActionunsubscribeAction类型新增onCandleBarClick
  • 🆕 覆盖物支持双击强制结束绘制。
  • 💄 优化事件处理。

9.0.1

2023-02-17

  • 🐞 修复typescript引入问题。

9.0.0

2023-02-16

  • 🛠 Typescript重构。
  • 🆕 新特性
    • 新增Y轴方向缩放,滚动。
    • API
      • 新增基图表方法registerFiguregetSupportFiguresgetFigureClassrigisterOverlaygetSupportOverlaysregisterLocalegetSupportLocalesregisterStyles
      • 新增实例方法,getSizesetLocalegetLocalsetCustomApigetVisibleRangecreateOverlaygetOverlayByIdoverrideOverlayremoveOverlay
    • 样式配置
      • 新增candle.priceMark.last.text.borderStylecandle.tooltip.iconsindicator.lastValueMark.text.borderStyleindicator.tooltip.iconscrosshair.horizontal.text.borderStylecrosshair.vertical.text.borderStyle
  • 👉 变更
    • API
      • 图表方法extension.addTechnicalIndicatorTemplate变更为registerIndicator
      • 图表方法extension.addShapeTemplate变更为registerOverlay
      • 实例方法setStyleOptions变更为setStyles
      • 实例方法getStyleOptions变更为getStyles
      • 实例方法setPaneOptions(options)options新增属性gap
      • 实例方法setOffsetRightSpace变更为setOffsetRightDistance
      • 实例方法createTechnicalIndicator变更为createIndicator
      • 实例方法overlayTechnicalIndicator变更为overlayIndicator
      • 实例方法getTechnicalIndicatorByPaneId变更为getIndicatorByPaneId
      • 实例方法removeTechnicalIndicator变更为removeIndicator
    • 样式配置
      • 所有line.style选项变更为soliddashed
      • 所有dashValue变更为dashedValue
      • xAxis.height变更为xAxis.sizexAxis.tickText.paddingTop变更为xAxis.tickText.marginStartxAxis.tickText.paddingBottom变更为xAxis.tickText.marginEnd
      • yAxis.height变更为yAxis.sizeyAxis.tickText.paddingTop变更为yAxis.tickText.marginStartyAxis.tickText.paddingBottom变更为yAxis.tickText.marginEnd
      • technicalIndicator.bar变更为indicator.barstechnicalIndicator.line变更为indicator.linestechnicalIndicator.circle变更为indicator.circles
    • 自定义扩展
      • 技术指标属性calcParams,变更为支持任意类型。
      • 技术指标属性plots变更为figures
      • 技术指标属性regeneratePlots变更为regeneratefigures
      • 技术指标属性calcTechnicalIndicator变更为calc
      • 技术指标属性render变更为draw
  • 🗑 废弃
    • API
      • 删除实例方法getWidthgetHeight,改用getSize
      • 删除实例方法createShapecreateAnnotationcreateTag,改用createOverlay
      • 删除实例方法removeShaperemoveAnnotationremoveTag,改用removeOverlay
      • 删除实例方法setShapeOptions,改用overrideOverlay
      • 删除实例方法createHtmlremoveHtmladdTechnicalIndicatorTemplategetTechnicalIndicatorTemplateaddShapeTemplate
    • 样式配置
      • 删除shapeannotationtag,改用overlay
      • 删除candle.margintechnicalIndicator.margin
    • 自定义扩展
      • 技术指标模版不再保存相关属性。
      • 技术指标删除属性shouldCheckParamCount
      • 删除Shape,改用Overlay

8.x

Github上查看 8.x 的 Change Log。

7.x

Github上查看 7.x 的 Change Log。

6.x

Github上查看 6.x 的 Change Log。

5.x

Github上查看 5.x 的版本记录。

4.x

Github上查看 4.x 的版本记录。

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/guide/chart-api.html b/guide/chart-api.html index e9ea42167..a02420799 100644 --- a/guide/chart-api.html +++ b/guide/chart-api.html @@ -5,31 +5,32 @@ 图表API | KLineChart - + - + - - - + + + - + + -
Skip to content
本页目录

图表API

init(ds, options)

typescript
(
-  ds: string | HTMLElement,
-  options?: {
-    locale?: string
-    styles?: string | object
-    timezone?: string
-    customApi?: {
-      formatDate?: (dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string, type: number) => string
-      formatBigNumber?: (value: string | number) => string
-    }
-    thousandsSeparator?: string
-  }
-) => Chart
(
+    
Skip to content

图表API

init(ds, options)

typescript
(
+  ds: string | HTMLElement,
+  options?: {
+    locale?: string
+    styles?: string | object
+    timezone?: string
+    customApi?: {
+      formatDate?: (dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string, type: number) => string
+      formatBigNumber?: (value: string | number) => string
+    }
+    thousandsSeparator?: string
+  }
+) => Chart
(
   ds: string | HTMLElement,
   options?: {
     locale?: string
@@ -41,17 +42,17 @@
     }
     thousandsSeparator?: string
   }
-) => Chart

初始化一个图表,返回图表实例。

  • ds 容器,可以是dom元素或者元素id。
  • options 可选配置项。
    • locale 语言,内置支持zh-CNen-US
    • timezone 时区名,如'Asia/Shanghai',如果不设置会自动获取本机时区,时区对应名字列表请参阅时区列表
    • styles 可以是通过klinecharts.registerStyles注册的样式名,也可以是object,样式列表,详情参阅样式,支持增量。
    • customApi 自定义一些api。
      • formatDate 格式化日期。
      • formatBigNumber 格式化大的数字,如1000转换成1k,1000000转换为1M等。
    • thousandsSeparator 千分符

dispose(dcs)

typescript
(dcs: HTMLElement | Chart | string) => void
(dcs: HTMLElement | Chart | string) => void

销毁一个图表,一旦销毁,图表将不再可用。

  • dcs 可以是dom元素、元素id或者图表实例。

registerLocale(locale, locales)

typescript
(
-  locale: string,
-  locales: {
-    time: string
-    open: string
-    high: string
-    low: string
-    close: string
-    volume: string
-  }
-) => void
(
+) => Chart

初始化一个图表,返回图表实例。

  • ds 容器,可以是dom元素或者元素id。
  • options 可选配置项。
    • locale 语言,内置支持zh-CNen-US
    • timezone 时区名,如'Asia/Shanghai',如果不设置会自动获取本机时区,时区对应名字列表请参阅时区列表
    • styles 可以是通过klinecharts.registerStyles注册的样式名,也可以是object,样式列表,详情参阅样式,支持增量。
    • customApi 自定义一些api。
      • formatDate 格式化日期。
      • formatBigNumber 格式化大的数字,如1000转换成1k,1000000转换为1M等。
    • thousandsSeparator 千分符

dispose(dcs)

typescript
(dcs: HTMLElement | Chart | string) => void
(dcs: HTMLElement | Chart | string) => void

销毁一个图表,一旦销毁,图表将不再可用。

  • dcs 可以是dom元素、元素id或者图表实例。

registerLocale(locale, locales)

typescript
(
+  locale: string,
+  locales: {
+    time: string
+    open: string
+    high: string
+    low: string
+    close: string
+    volume: string
+  }
+) => void
(
   locale: string,
   locales: {
     time: string
@@ -61,79 +62,79 @@
     close: string
     volume: string
   }
-) => void

添加一个本地化语言。图表内置了zh-CNen-US

  • locale 语言名
  • locales 语言配置

getOverlayClass()

typescript
(name: string) => Nullable<OverlayConstructor>
(name: string) => Nullable<OverlayConstructor>

根据覆盖物名称获取图表内覆盖物的属性。

getSupportedLocales()

typescript
() => string[]
() => string[]

获取图表支持的本地化语言类型。

registerStyles(name, styles)

typescript
(
-  name: string,
-  styles: object
-) => void
(
+) => void

添加一个本地化语言。图表内置了zh-CNen-US

  • locale 语言名
  • locales 语言配置

getOverlayClass()

typescript
(name: string) => Nullable<OverlayConstructor>
(name: string) => Nullable<OverlayConstructor>

根据覆盖物名称获取图表内覆盖物的属性。

getSupportedLocales()

typescript
() => string[]
() => string[]

获取图表支持的本地化语言类型。

registerStyles(name, styles)

typescript
(
+  name: string,
+  styles: object
+) => void
(
   name: string,
   styles: object
-) => void

添加一个样式配置。

  • name 样式名
  • styles 样式配置,类型参阅样式,支持增量。

registerFigure(figure)

typescript
(
-  figure: {
-    name: string
-    draw: (ctx: CanvasRenderingContext2D, attrs: any, styles: object) => void
-    checkEventOn: (coordinate: Coordinate, attrs: any, styles: object) => boolean
-  }
-) => void
(
+) => void

添加一个样式配置。

  • name 样式名
  • styles 样式配置,类型参阅样式,支持增量。

registerFigure(figure)

typescript
(
+  figure: {
+    name: string
+    draw: (ctx: CanvasRenderingContext2D, attrs: any, styles: object) => void
+    checkEventOn: (coordinate: Coordinate, attrs: any, styles: object) => boolean
+  }
+) => void
(
   figure: {
     name: string
     draw: (ctx: CanvasRenderingContext2D, attrs: any, styles: object) => void
     checkEventOn: (coordinate: Coordinate, attrs: any, styles: object) => boolean
   }
-) => void

添加一个基础图形。

  • figure 基础图形信息,详情参阅基础图形
    • name 名字,唯一标识
    • draw 绘制方法
    • checkEventOn 检查事件是否在图形上

getSupportedFigures()

typescript
() => string[]
() => string[]

获取图表支持的基础图形类型。

getFigureClass(name)

typescript
(name: string) => Figure
(name: string) => Figure

获取图形类

  • name 图形名

registerIndicator(indicator)

typescript
(
-  indicator: {
-    name: string
-    shortName?: string
-    precision?: number
-    calcParams?: any[]
-    shouldOhlc?: boolean
-    shouldFormatBigNumber?: boolean
-    visible?: boolean
-    extendData?: any
-    series?: 'normal' | 'price' | 'volume'
-    figures?: Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => object
-      attrs: (
-        coordinate: object
-        bounding: Bounding
-        barSpace: BarSpace
-        xAxis: XAxis
-        yAxis: YAxis
-      ) => object
-    }>
-    minValue?: number
-    maxValue?: number
-    styles?: object
-    calc: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
-    regenerateFigures?: (calcParms: any[]) => Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => object
-      attrs: (
-        coordinate: object
-        bounding: Bounding
-        barSpace: BarSpace
-        xAxis: XAxis
-        yAxis: YAxis
-      ) => object
-    }>
-    createTooltipDataSource?: (params: object) => {
-      name?: string
-      calcParamsText?: string
-      values?: Array<{
+) => void

添加一个基础图形。

  • figure 基础图形信息,详情参阅基础图形
    • name 名字,唯一标识
    • draw 绘制方法
    • checkEventOn 检查事件是否在图形上

getSupportedFigures()

typescript
() => string[]
() => string[]

获取图表支持的基础图形类型。

getFigureClass(name)

typescript
(name: string) => Figure
(name: string) => Figure

获取图形类

  • name 图形名

registerIndicator(indicator)

typescript
(
+  indicator: {
+    name: string
+    shortName?: string
+    precision?: number
+    calcParams?: any[]
+    shouldOhlc?: boolean
+    shouldFormatBigNumber?: boolean
+    visible?: boolean
+    extendData?: any
+    series?: 'normal' | 'price' | 'volume'
+    figures?: Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => object
+      attrs: (
+        coordinate: object
+        bounding: Bounding
+        barSpace: BarSpace
+        xAxis: XAxis
+        yAxis: YAxis
+      ) => object
+    }>
+    minValue?: number
+    maxValue?: number
+    styles?: object
+    calc: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
+    regenerateFigures?: (calcParms: any[]) => Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => object
+      attrs: (
+        coordinate: object
+        bounding: Bounding
+        barSpace: BarSpace
+        xAxis: XAxis
+        yAxis: YAxis
+      ) => object
+    }>
+    createTooltipDataSource?: (params: object) => {
+      name?: string
+      calcParamsText?: string
+      values?: Array<{
         title: string | {
           text: string
           color: string
@@ -144,9 +145,9 @@
         }
       }>
     }
-    draw?: (params: object) => boolean
-  }
-) => void
(
+    draw?: (params: object) => boolean
+  }
+) => void
(
   indicator: {
     name: string
     shortName?: string
@@ -213,78 +214,78 @@
     }
     draw?: (params: object) => boolean
   }
-) => void

添加一个技术指标。

  • indicator 技术指标信息
    • name 指标名,用于创建和操作的唯一标识
    • shortName 简短名字,用于显示
    • precision 精度
    • calcParams 计算参数
    • shouldOhlc 是否需要ohlc辅助图形
    • shouldFormatBigNumber 是否需要格式化大的数字。如1000转换成1k,1000000转换为1M等
    • visible 是否可见
    • extendData 扩展数据
    • series 指标系列,可选项有'normal','price'和'volume'
    • figures 图形配置
    • minValue 指定最小值
    • maxValue 指定最大值
    • styles 样式
    • calc 计算方法
    • regenerateFigures 重新生成图形信息方法
    • createTooltipDataSource 创建自定义提示信息方法
    • draw 自定义绘制方法

getSupportedIndicators()

typescript
() => string[]
() => string[]

获取图表支持的技术指标

registerOverlay(overlay)

typescript
(
-  overlay: {
-    name: string
-    totalStep?: number
-    lock?: boolean
-    visible?: boolean
-    zLevel?: number
-    needDefaultPointFigure?: boolean
-    needDefaultXAxisFigure?: boolean
-    needDefaultYAxisFigure?: boolean
-    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
-    modeSensitivity?: number
-    points?: Array<{ timestamp: number, dataIndex?: number, value?: number }>
-    extendData?: any
-    styles?: object
-    createPointFigures?: (params: object) => {
-      key?: string
-      type: string
-      attrs: any | any[]
-      styles?: any
-      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-    } | Array<{
-      key?: string
-      type: string
-      attrs: any | any[]
-      styles?: any
-      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-    }>
-    createXAxisFigures?: (params: object) => {
-      key?: string
-      type: string
-      attrs: any | any[]
-      styles?: any
-      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-    } | Array<{
-      key?: string
-      type: string
-      attrs: any | any[]
-      styles?: any
-      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-    }>
-    createYAxisFigures?: (params: object) => {
-      key?: string
-      type: string
-      attrs: any | any[]
-      styles?: any
-      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-    } | Array<{
-      key?: string
-      type: string
-      attrs: any | any[]
-      styles?: any
-      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
-    }>
-    performEventPressedMove?: (params: object) => void
-    performEventMoveForDrawing?: (params: object) => void
-    onDrawStart?: (event: object) => boolean
-    onDrawing?: (event: object) => boolean
-    onDrawEnd?: (event: object) => boolean
-    onClick?: (event: object) => boolean
-    onDoubleClick?: (event: object) => boolean
-    onRightClick?: (event: object) => boolean
-    onPressedMoveStart?: (event: object) => boolean
-    onPressedMoving?: (event: object) => boolean
-    onPressedMoveEnd?: (event: object) => boolean
-    onMouseEnter?: (event: object) => boolean
-    onMouseLeave?: (event: object) => boolean
-    onRemoved?: (event: object) => boolean
-    onSelected?: (event: object) => boolean
-    onDeselected?: (event: object) => boolean
-  }
-) => void
(
+) => void

添加一个技术指标。

  • indicator 技术指标信息
    • name 指标名,用于创建和操作的唯一标识
    • shortName 简短名字,用于显示
    • precision 精度
    • calcParams 计算参数
    • shouldOhlc 是否需要ohlc辅助图形
    • shouldFormatBigNumber 是否需要格式化大的数字。如1000转换成1k,1000000转换为1M等
    • visible 是否可见
    • extendData 扩展数据
    • series 指标系列,可选项有'normal','price'和'volume'
    • figures 图形配置
    • minValue 指定最小值
    • maxValue 指定最大值
    • styles 样式
    • calc 计算方法
    • regenerateFigures 重新生成图形信息方法
    • createTooltipDataSource 创建自定义提示信息方法
    • draw 自定义绘制方法

getSupportedIndicators()

typescript
() => string[]
() => string[]

获取图表支持的技术指标

registerOverlay(overlay)

typescript
(
+  overlay: {
+    name: string
+    totalStep?: number
+    lock?: boolean
+    visible?: boolean
+    zLevel?: number
+    needDefaultPointFigure?: boolean
+    needDefaultXAxisFigure?: boolean
+    needDefaultYAxisFigure?: boolean
+    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+    modeSensitivity?: number
+    points?: Array<{ timestamp: number, dataIndex?: number, value?: number }>
+    extendData?: any
+    styles?: object
+    createPointFigures?: (params: object) => {
+      key?: string
+      type: string
+      attrs: any | any[]
+      styles?: any
+      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+    } | Array<{
+      key?: string
+      type: string
+      attrs: any | any[]
+      styles?: any
+      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+    }>
+    createXAxisFigures?: (params: object) => {
+      key?: string
+      type: string
+      attrs: any | any[]
+      styles?: any
+      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+    } | Array<{
+      key?: string
+      type: string
+      attrs: any | any[]
+      styles?: any
+      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+    }>
+    createYAxisFigures?: (params: object) => {
+      key?: string
+      type: string
+      attrs: any | any[]
+      styles?: any
+      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+    } | Array<{
+      key?: string
+      type: string
+      attrs: any | any[]
+      styles?: any
+      ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+    }>
+    performEventPressedMove?: (params: object) => void
+    performEventMoveForDrawing?: (params: object) => void
+    onDrawStart?: (event: object) => boolean
+    onDrawing?: (event: object) => boolean
+    onDrawEnd?: (event: object) => boolean
+    onClick?: (event: object) => boolean
+    onDoubleClick?: (event: object) => boolean
+    onRightClick?: (event: object) => boolean
+    onPressedMoveStart?: (event: object) => boolean
+    onPressedMoving?: (event: object) => boolean
+    onPressedMoveEnd?: (event: object) => boolean
+    onMouseEnter?: (event: object) => boolean
+    onMouseLeave?: (event: object) => boolean
+    onRemoved?: (event: object) => boolean
+    onSelected?: (event: object) => boolean
+    onDeselected?: (event: object) => boolean
+  }
+) => void
(
   overlay: {
     name: string
     totalStep?: number
@@ -355,16 +356,16 @@
     onSelected?: (event: object) => boolean
     onDeselected?: (event: object) => boolean
   }
-) => void

添加一个覆盖物。

  • overlay 覆盖物信息,详情参阅覆盖物
    • name 覆盖物名,用于创建的唯一标识
    • totalStep 总的实现步骤
    • lock 是否锁定不让拖动
    • visible 是否可见
    • zLevel 绘制层级,值越大,越靠前显示
    • needDefaultPointFigure 是否需要默认的点对应的图形
    • needDefaultXAxisFigure 是否需要默认的x轴上的图形
    • needDefaultYAxisFigure 是否需要默认的y轴上的图形
    • mode 模式,可选项有'normal','weak_magnet'和'strong_magnet'
    • modeSensitivity 模式灵敏度,仅 mode 是 weak_magnet 时有效
    • points 点信息
    • extendData 扩展数据
    • styles 样式
    • createPointFigures 创建点对应的图形
    • createXAxisFigures 创建x轴上的图形
    • createYAxisFigures 创建y轴上的图形
    • performEventPressedMove 按住移动事件特殊处理方法
    • performEventMoveForDrawing 移动事件过程中特殊处理方法
    • onDrawStart 开始绘制事件
    • onDrawing 绘制中事件
    • onDrawEnd 绘制结束事件
    • onClick 点击事件
    • onDoubleClick 双击事件
    • onRightClick 右击事件
    • onPressedMoveStart 按住开始移动事件
    • onPressedMoving 按住移动中事件
    • onPressedMoveEnd 按住移动结束事件
    • onMouseEnter 鼠标移入事件
    • onMouseLeave 鼠标移出事件
    • onRemoved 删除事件
    • onSelected 选中事件
    • onDeselected 取消选中事件

getSupportedOverlays()

typescript
() => string[]
() => string[]

获取图表支持的覆盖物

version()

typescript
() => string
() => string

获取图表当前版本号。

utils

辅助方法集合。

utils.clone(target)

typescript
(target: any) => any
(target: any) => any

深度复制。

utils.merge(target, source)

typescript
(target: object, source: object) => void
(target: object, source: object) => void

将一个对象合并到另一个对象。

utils.isString(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是字符串。

utils.isNumber(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是数字。

utils.isValid(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否有效。

utils.isObject(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是对象。

utils.isFunction(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是方法。

utils.isBoolean(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是bool值。

utils.formatValue(value, key, defaultValue)

typescript
(data: any, key: string, defaultValue?: any) => any
(data: any, key: string, defaultValue?: any) => any

从某个值取对应的值,支持嵌套,如const o = { a: { b: { c: 1 } } }formatValue(o, 'a.b.c')c的值。

utils.formatPrecision(value)

typescript
(value: string | number, precision?: number) => string
(value: string | number, precision?: number) => string

格式化精度。

utils.formatBigNumber(value)

typescript
(value: string | number) => string
(value: string | number) => string

格式化大的数字,如1000转换成1k,1000000转换为1M等。

utils.formatDate(dateTimeFormat, timestamp, format)

typescript
(dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string) => string
(dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string) => string

格式化日期。format格式,如'YYYY-MM-DD HH:mm:ss'。

utils.formatThousands(value, sign)

typescript
(value: string | number, sign: string) => string
(value: string | number, sign: string) => string

格式化日期千分符。

utils.calcTextWidth(text, size, weight, family)

typescript
(text: string, size?: number, weight?: string | number, family?: string) => number
(text: string, size?: number, weight?: string | number, family?: string) => number

计算文字宽度

utils.getLinearSlopeIntercept(coordinate1, coordinate2)

typescript
(
-  coordinate1: {
-    x: number
-    y: number
-  },
-  coordinate2: {
-    x: number
-    y: number
-  }
-) => []
(
+) => void

添加一个覆盖物。

  • overlay 覆盖物信息,详情参阅覆盖物
    • name 覆盖物名,用于创建的唯一标识
    • totalStep 总的实现步骤
    • lock 是否锁定不让拖动
    • visible 是否可见
    • zLevel 绘制层级,值越大,越靠前显示
    • needDefaultPointFigure 是否需要默认的点对应的图形
    • needDefaultXAxisFigure 是否需要默认的x轴上的图形
    • needDefaultYAxisFigure 是否需要默认的y轴上的图形
    • mode 模式,可选项有'normal','weak_magnet'和'strong_magnet'
    • modeSensitivity 模式灵敏度,仅 mode 是 weak_magnet 时有效
    • points 点信息
    • extendData 扩展数据
    • styles 样式
    • createPointFigures 创建点对应的图形
    • createXAxisFigures 创建x轴上的图形
    • createYAxisFigures 创建y轴上的图形
    • performEventPressedMove 按住移动事件特殊处理方法
    • performEventMoveForDrawing 移动事件过程中特殊处理方法
    • onDrawStart 开始绘制事件
    • onDrawing 绘制中事件
    • onDrawEnd 绘制结束事件
    • onClick 点击事件
    • onDoubleClick 双击事件
    • onRightClick 右击事件
    • onPressedMoveStart 按住开始移动事件
    • onPressedMoving 按住移动中事件
    • onPressedMoveEnd 按住移动结束事件
    • onMouseEnter 鼠标移入事件
    • onMouseLeave 鼠标移出事件
    • onRemoved 删除事件
    • onSelected 选中事件
    • onDeselected 取消选中事件

getSupportedOverlays()

typescript
() => string[]
() => string[]

获取图表支持的覆盖物

version()

typescript
() => string
() => string

获取图表当前版本号。

utils

辅助方法集合。

utils.clone(target)

typescript
(target: any) => any
(target: any) => any

深度复制。

utils.merge(target, source)

typescript
(target: object, source: object) => void
(target: object, source: object) => void

将一个对象合并到另一个对象。

utils.isString(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是字符串。

utils.isNumber(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是数字。

utils.isValid(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否有效。

utils.isObject(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是对象。

utils.isFunction(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是方法。

utils.isBoolean(value)

typescript
(value: any) => boolean
(value: any) => boolean

检查某个值是否是bool值。

utils.formatValue(value, key, defaultValue)

typescript
(data: any, key: string, defaultValue?: any) => any
(data: any, key: string, defaultValue?: any) => any

从某个值取对应的值,支持嵌套,如const o = { a: { b: { c: 1 } } }formatValue(o, 'a.b.c')c的值。

utils.formatPrecision(value)

typescript
(value: string | number, precision?: number) => string
(value: string | number, precision?: number) => string

格式化精度。

utils.formatBigNumber(value)

typescript
(value: string | number) => string
(value: string | number) => string

格式化大的数字,如1000转换成1k,1000000转换为1M等。

utils.formatDate(dateTimeFormat, timestamp, format)

typescript
(dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string) => string
(dateTimeFormat: Intl.DateTimeFormat, timestamp: number, format: string) => string

格式化日期。format格式,如'YYYY-MM-DD HH:mm:ss'。

utils.formatThousands(value, sign)

typescript
(value: string | number, sign: string) => string
(value: string | number, sign: string) => string

格式化日期千分符。

utils.calcTextWidth(text, size, weight, family)

typescript
(text: string, size?: number, weight?: string | number, family?: string) => number
(text: string, size?: number, weight?: string | number, family?: string) => number

计算文字宽度

utils.getLinearSlopeIntercept(coordinate1, coordinate2)

typescript
(
+  coordinate1: {
+    x: number
+    y: number
+  },
+  coordinate2: {
+    x: number
+    y: number
+  }
+) => []
(
   coordinate1: {
     x: number
     y: number
@@ -373,20 +374,20 @@
     x: number
     y: number
   }
-) => []

根据两个坐标点,获取点组成的线的斜率和常数项,即y = kx + b中的kb

utils.getLinearYFromCoordinates(coordinate1, coordinate2, targetCoordinate)

typescript
(
-  coordinate1: {
-    x: number
-    y: number
-  },
-  coordinate2: {
-    x: number
-    y: number
-  }
-  targetCoordinate: {
-    x: number
-    y: number
-  }
-) => number
(
+) => []

根据两个坐标点,获取点组成的线的斜率和常数项,即y = kx + b中的kb

utils.getLinearYFromCoordinates(coordinate1, coordinate2, targetCoordinate)

typescript
(
+  coordinate1: {
+    x: number
+    y: number
+  },
+  coordinate2: {
+    x: number
+    y: number
+  }
+  targetCoordinate: {
+    x: number
+    y: number
+  }
+) => number
(
   coordinate1: {
     x: number
     y: number
@@ -399,31 +400,31 @@
     x: number
     y: number
   }
-) => number

获取一个点在另外两个坐标点形成的线上的y轴坐标值。

utils.getLinearYFromSlopeIntercept(kb, targetCoordinate)

typescript
(
-  kb: Array<number>,
-  targetCoordinate: {
-    x: number
-    y: number
-  }
-) => number
(
+) => number

获取一个点在另外两个坐标点形成的线上的y轴坐标值。

utils.getLinearYFromSlopeIntercept(kb, targetCoordinate)

typescript
(
+  kb: Array<number>,
+  targetCoordinate: {
+    x: number
+    y: number
+  }
+) => number
(
   kb: Array<number>,
   targetCoordinate: {
     x: number
     y: number
   }
-) => number

获取一个点在斜率和常数项形成的线上的y轴坐标值。

utils.checkCoordinateOnArc(coordinate, arc)

typescript
(
-  coordinate: {
-    x: number
-    y: number
-  },
-  arc: {
-    x: number
-    y: number
-    r: number
-    startAngle: number
-    endAngle: number
-  }
-) => boolean
(
+) => number

获取一个点在斜率和常数项形成的线上的y轴坐标值。

utils.checkCoordinateOnArc(coordinate, arc)

typescript
(
+  coordinate: {
+    x: number
+    y: number
+  },
+  arc: {
+    x: number
+    y: number
+    r: number
+    startAngle: number
+    endAngle: number
+  }
+) => boolean
(
   coordinate: {
     x: number
     y: number
@@ -435,17 +436,17 @@
     startAngle: number
     endAngle: number
   }
-) => boolean

检查某个坐标点是否在圆弧上。

  • coordinate 坐标点信息
  • arc 圆弧参数
    • x 圆心的x轴值
    • y 圆心的y轴值
    • r 半径
    • startAngle 起始角度
    • endAngle 结束角度

utils.checkCoordinateOnCircle(coordinate, circle)

typescript
(
-  coordinate: {
-    x: number
-    y: number
-  },
-  circle: {
-    x: number
-    y: number
-    r: number
-  }
-) => boolean
(
+) => boolean

检查某个坐标点是否在圆弧上。

  • coordinate 坐标点信息
  • arc 圆弧参数
    • x 圆心的x轴值
    • y 圆心的y轴值
    • r 半径
    • startAngle 起始角度
    • endAngle 结束角度

utils.checkCoordinateOnCircle(coordinate, circle)

typescript
(
+  coordinate: {
+    x: number
+    y: number
+  },
+  circle: {
+    x: number
+    y: number
+    r: number
+  }
+) => boolean
(
   coordinate: {
     x: number
     y: number
@@ -455,18 +456,18 @@
     y: number
     r: number
   }
-) => boolean

检查某个坐标点是否在圆上。

  • coordinate 坐标点信息
  • circle 圆参数
    • x 圆心的x轴值
    • y 圆心的y轴值
    • r 半径

utils.checkCoordinateOnLine(coordinate, line)

typescript
(
-  coordinate: {
-    x: number
-    y: number
-  },
-  line: {
-    coordinates: Array<{
-      x: number
-      y: number
-    }>
-  }
-) => boolean
(
+) => boolean

检查某个坐标点是否在圆上。

  • coordinate 坐标点信息
  • circle 圆参数
    • x 圆心的x轴值
    • y 圆心的y轴值
    • r 半径

utils.checkCoordinateOnLine(coordinate, line)

typescript
(
+  coordinate: {
+    x: number
+    y: number
+  },
+  line: {
+    coordinates: Array<{
+      x: number
+      y: number
+    }>
+  }
+) => boolean
(
   coordinate: {
     x: number
     y: number
@@ -477,18 +478,18 @@
       y: number
     }>
   }
-) => boolean

检查某个坐标点是否在线上。

utils.checkCoordinateOnPolygon(coordinate, polygon)

typescript
(
-  coordinate: {
-    x: number
-    y: number
-  },
-  polygon: {
-    coordinates: Array<{
-      x: number
-      y: number
-    }>
-  }
-) => boolean
(
+) => boolean

检查某个坐标点是否在线上。

utils.checkCoordinateOnPolygon(coordinate, polygon)

typescript
(
+  coordinate: {
+    x: number
+    y: number
+  },
+  polygon: {
+    coordinates: Array<{
+      x: number
+      y: number
+    }>
+  }
+) => boolean
(
   coordinate: {
     x: number
     y: number
@@ -499,18 +500,18 @@
       y: number
     }>
   }
-) => boolean

检查某个坐标点是否在多边形上。

utils.checkCoordinateOnRect(coordinate, rect)

typescript
(
-  coordinate: {
-    x: number
-    y: number
-  },
-  rect: {
-    x: number
-    y: number
-    width: number
-    height: number
-  }
-) => boolean
(
+) => boolean

检查某个坐标点是否在多边形上。

utils.checkCoordinateOnRect(coordinate, rect)

typescript
(
+  coordinate: {
+    x: number
+    y: number
+  },
+  rect: {
+    x: number
+    y: number
+    width: number
+    height: number
+  }
+) => boolean
(
   coordinate: {
     x: number
     y: number
@@ -521,25 +522,25 @@
     width: number
     height: number
   }
-) => boolean

检查某个坐标点是否在矩形上。

  • coordinate 坐标点信息
  • rect 矩形参数
    • x 起始点x轴值
    • y 起始点y轴值
    • width 宽度
    • height 高度

utils.checkCoordinateOnText(coordinate, text, styles)

typescript
(
-  coordinate: {
-    x: number
-    y: number
-  },
-  text: {
-    x: number
-    y: number
-    text: any
-    align?: 'center' | 'end' | 'left' | 'right' | 'start'
-    baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
-  },
-  styles: {
-    color?: string
-    size?: number
-    family?: string
-    weight?: number | string
-  }
-) => boolean
(
+) => boolean

检查某个坐标点是否在矩形上。

  • coordinate 坐标点信息
  • rect 矩形参数
    • x 起始点x轴值
    • y 起始点y轴值
    • width 宽度
    • height 高度

utils.checkCoordinateOnText(coordinate, text, styles)

typescript
(
+  coordinate: {
+    x: number
+    y: number
+  },
+  text: {
+    x: number
+    y: number
+    text: any
+    align?: 'center' | 'end' | 'left' | 'right' | 'start'
+    baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
+  },
+  styles: {
+    color?: string
+    size?: number
+    family?: string
+    weight?: number | string
+  }
+) => boolean
(
   coordinate: {
     x: number
     y: number
@@ -557,22 +558,22 @@
     family?: string
     weight?: number | string
   }
-) => boolean

检查某个坐标点是否在文字上。

  • coordinate 坐标点信息
  • text 文字参数
    • x 起始点x轴值
    • y 起始点y轴值
    • text 文字内容
    • align 水平对齐方式
    • baseline 垂直对齐方式
  • styles 样式
    • color 颜色
    • size 尺寸
    • family 字体
    • weight 权重

utils.drawArc(ctx, arc, styles)

typescript
(
-  ctx: CanvasRenderingContext2D,
-  arc: {
-    x: number
-    y: number
-    r: number
-    startAngle: number
-    endAngle: number
-  },
-  styles: {
-    style?: 'solid' | 'dashed'
-    size?: number
-    color?: string
-    dashedValue?: number[]
-  }
-) => void
(
+) => boolean

检查某个坐标点是否在文字上。

  • coordinate 坐标点信息
  • text 文字参数
    • x 起始点x轴值
    • y 起始点y轴值
    • text 文字内容
    • align 水平对齐方式
    • baseline 垂直对齐方式
  • styles 样式
    • color 颜色
    • size 尺寸
    • family 字体
    • weight 权重

utils.drawArc(ctx, arc, styles)

typescript
(
+  ctx: CanvasRenderingContext2D,
+  arc: {
+    x: number
+    y: number
+    r: number
+    startAngle: number
+    endAngle: number
+  },
+  styles: {
+    style?: 'solid' | 'dashed'
+    size?: number
+    color?: string
+    dashedValue?: number[]
+  }
+) => void
(
   ctx: CanvasRenderingContext2D,
   arc: {
     x: number
@@ -587,22 +588,22 @@
     color?: string
     dashedValue?: number[]
   }
-) => void

绘制圆弧。

  • ctx 画布上下文
  • arc 圆弧参数
    • x 圆心的x轴值
    • y 圆心的y轴值
    • r 半径
    • startAngle 起始角度
    • endAngle 结束角度
  • styles 样式
    • style 弧样式
    • size 粗细
    • color 颜色
    • dashedValue 虚线参数值

utils.drawCircle(ctx, circle, styles)

typescript
(
-  ctx: CanvasRenderingContext2D,
-  circle: {
-    x: number
-    y: number
-    r: number
-  },
-  styles: {
-    style?: 'stroke' | 'fill' | 'stroke_fill'
-    color?: string | CanvasGradient
-    borderColor?: string
-    borderSize?: number
-    borderStyle?: 'solid' | 'dashed'
-    borderDashedValue?: Array<number>
-  }
-) => void
(
+) => void

绘制圆弧。

  • ctx 画布上下文
  • arc 圆弧参数
    • x 圆心的x轴值
    • y 圆心的y轴值
    • r 半径
    • startAngle 起始角度
    • endAngle 结束角度
  • styles 样式
    • style 弧样式
    • size 粗细
    • color 颜色
    • dashedValue 虚线参数值

utils.drawCircle(ctx, circle, styles)

typescript
(
+  ctx: CanvasRenderingContext2D,
+  circle: {
+    x: number
+    y: number
+    r: number
+  },
+  styles: {
+    style?: 'stroke' | 'fill' | 'stroke_fill'
+    color?: string | CanvasGradient
+    borderColor?: string
+    borderSize?: number
+    borderStyle?: 'solid' | 'dashed'
+    borderDashedValue?: Array<number>
+  }
+) => void
(
   ctx: CanvasRenderingContext2D,
   circle: {
     x: number
@@ -617,21 +618,21 @@
     borderStyle?: 'solid' | 'dashed'
     borderDashedValue?: Array<number>
   }
-) => void

绘制圆。

  • ctx 画布上下文
  • circle 圆参数
    • x 圆心的x轴值
    • y 圆心的y轴值
    • r 半径
  • styles 样式
    • style 样式
    • color 颜色
    • borderColor 边框颜色
    • borderSize 边框粗细
    • borderStyle 边框样式
    • borderDashedValue 边框虚线参数值

utils.drawLine(ctx, line, styles)

typescript
(
-  ctx: CanvasRenderingContext2D,
-  line: {
-    coordinates: Array<{
-      x: number
-      y: number
-    }>
-  },
-  styles: {
-    style?: 'solid' | 'dashed'
-    size?: number
-    color?: string
-    dashedValue?: number[]
-  }
-) => void
(
+) => void

绘制圆。

  • ctx 画布上下文
  • circle 圆参数
    • x 圆心的x轴值
    • y 圆心的y轴值
    • r 半径
  • styles 样式
    • style 样式
    • color 颜色
    • borderColor 边框颜色
    • borderSize 边框粗细
    • borderStyle 边框样式
    • borderDashedValue 边框虚线参数值

utils.drawLine(ctx, line, styles)

typescript
(
+  ctx: CanvasRenderingContext2D,
+  line: {
+    coordinates: Array<{
+      x: number
+      y: number
+    }>
+  },
+  styles: {
+    style?: 'solid' | 'dashed'
+    size?: number
+    color?: string
+    dashedValue?: number[]
+  }
+) => void
(
   ctx: CanvasRenderingContext2D,
   line: {
     coordinates: Array<{
@@ -645,23 +646,23 @@
     color?: string
     dashedValue?: number[]
   }
-) => void

绘制线。

  • ctx 画布上下文
  • line 线参数
  • styles 样式
    • style 线样式
    • size 粗细
    • color 颜色
    • dashedValue 虚线参数值

utils.drawPolygon(ctx, polygon, styles)

typescript
(
-  ctx: CanvasRenderingContext2D,
-  polygon: {
-    coordinates: Array<{
-      x: number
-      y: number
-    }>
-  },
-  styles: {
-    style?: 'stroke' | 'fill' | 'stroke_fill'
-    color?: string | CanvasGradient
-    borderColor?: string
-    borderSize?: number
-    borderStyle?: 'solid' | 'dashed'
-    borderDashedValue?: Array<number>
-  }
-) => void
(
+) => void

绘制线。

  • ctx 画布上下文
  • line 线参数
  • styles 样式
    • style 线样式
    • size 粗细
    • color 颜色
    • dashedValue 虚线参数值

utils.drawPolygon(ctx, polygon, styles)

typescript
(
+  ctx: CanvasRenderingContext2D,
+  polygon: {
+    coordinates: Array<{
+      x: number
+      y: number
+    }>
+  },
+  styles: {
+    style?: 'stroke' | 'fill' | 'stroke_fill'
+    color?: string | CanvasGradient
+    borderColor?: string
+    borderSize?: number
+    borderStyle?: 'solid' | 'dashed'
+    borderDashedValue?: Array<number>
+  }
+) => void
(
   ctx: CanvasRenderingContext2D,
   polygon: {
     coordinates: Array<{
@@ -677,24 +678,24 @@
     borderStyle?: 'solid' | 'dashed'
     borderDashedValue?: Array<number>
   }
-) => void

绘制多边形。

  • ctx 画布上下文
  • polygon 多边形参数
  • styles 样式
    • style 样式
    • color 颜色
    • borderColor 边框颜色
    • borderSize 边框粗细
    • borderStyle 边框样式
    • borderDashedValue 边框虚线参数值

utils.drawRect(ctx, rect, styles)

typescript
(
-  ctx: CanvasRenderingContext2D,
-  rect: {
-    x: number
-    y: number
-    width: number
-    height: number
-  },
-  styles: {
-    style?: 'stroke' | 'fill' | 'stroke_fill'
-    color?: string | CanvasGradient
-    borderColor?: string
-    borderSize?: number
-    borderStyle?: 'solid' | 'dashed'
-    borderDashedValue?: Array<number>
-    borderRadius?: number
-  }
-) => void
(
+) => void

绘制多边形。

  • ctx 画布上下文
  • polygon 多边形参数
  • styles 样式
    • style 样式
    • color 颜色
    • borderColor 边框颜色
    • borderSize 边框粗细
    • borderStyle 边框样式
    • borderDashedValue 边框虚线参数值

utils.drawRect(ctx, rect, styles)

typescript
(
+  ctx: CanvasRenderingContext2D,
+  rect: {
+    x: number
+    y: number
+    width: number
+    height: number
+  },
+  styles: {
+    style?: 'stroke' | 'fill' | 'stroke_fill'
+    color?: string | CanvasGradient
+    borderColor?: string
+    borderSize?: number
+    borderStyle?: 'solid' | 'dashed'
+    borderDashedValue?: Array<number>
+    borderRadius?: number
+  }
+) => void
(
   ctx: CanvasRenderingContext2D,
   rect: {
     x: number
@@ -711,35 +712,35 @@
     borderDashedValue?: Array<number>
     borderRadius?: number
   }
-) => void

绘制矩形。

  • ctx 画布上下文
  • rect 矩形参数
    • x 起始点x轴值
    • y 起始点y轴值
    • width 宽度
    • height 高度
  • styles 样式
    • style 样式
    • color 颜色
    • borderColor 边框颜色
    • borderSize 边框粗细
    • borderStyle 边框样式
    • borderDashedValue 边框虚线参数值
    • borderRadius 边框圆角值

utils.drawText(ctx, text, styles)

typescript
(
-  ctx: CanvasRenderingContext2D,
-  text: {
-    x: number
-    y: number
-    text: any
-    width?: number
-    height?: number
-    align?: 'center' | 'end' | 'left' | 'right' | 'start'
-    baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
-  },
-  styles: {
-    style?: 'stroke' | 'fill' | 'stroke_fill'
-    color?: string
-    size?: number
-    family?: string
-    weight?: number | string
-    paddingLeft?: number
-    paddingTop?: number
-    paddingRight?: number
-    paddingBottom?: number
-    borderStyle?: 'solid' | 'dashed'
-    borderDashedValue?: number[]
-    borderSize?: number
-    borderColor?: string
-    borderRadius?: number
-    backgroundColor?: string
-  }
-) => void
(
+) => void

绘制矩形。

  • ctx 画布上下文
  • rect 矩形参数
    • x 起始点x轴值
    • y 起始点y轴值
    • width 宽度
    • height 高度
  • styles 样式
    • style 样式
    • color 颜色
    • borderColor 边框颜色
    • borderSize 边框粗细
    • borderStyle 边框样式
    • borderDashedValue 边框虚线参数值
    • borderRadius 边框圆角值

utils.drawText(ctx, text, styles)

typescript
(
+  ctx: CanvasRenderingContext2D,
+  text: {
+    x: number
+    y: number
+    text: any
+    width?: number
+    height?: number
+    align?: 'center' | 'end' | 'left' | 'right' | 'start'
+    baseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
+  },
+  styles: {
+    style?: 'stroke' | 'fill' | 'stroke_fill'
+    color?: string
+    size?: number
+    family?: string
+    weight?: number | string
+    paddingLeft?: number
+    paddingTop?: number
+    paddingRight?: number
+    paddingBottom?: number
+    borderStyle?: 'solid' | 'dashed'
+    borderDashedValue?: number[]
+    borderSize?: number
+    borderColor?: string
+    borderRadius?: number
+    backgroundColor?: string
+  }
+) => void
(
   ctx: CanvasRenderingContext2D,
   text: {
     x: number
@@ -767,8 +768,8 @@
     borderRadius?: number
     backgroundColor?: string
   }
-) => void

绘制带背景的文字。

  • ctx 画布上下文
  • attrs 文字参数
    • x 起始点x轴值
    • y 起始点y轴值
    • text 文字内容
    • width 宽度
    • height 高度
    • align 水平对齐方式
    • baseline 垂直对齐方式
  • styles 样式
    • style 样式
    • color 颜色
    • size 尺寸
    • family 字体
    • weight 权重
    • paddingLeft 左内边距,
    • paddingTop 上内边距,
    • paddingRight 右内边距,
    • paddingBottom 下内边距,
    • borderColor 边框颜色
    • borderSize 边框粗细
    • borderStyle 边框样式
    • borderRadius 边框圆角尺寸
    • borderDashedValue 边框虚线参数值
    • backgroundColor 背景色

utils.drawRectText(ctx, rectText, styles)

utils.drawText(ctx, text, styles),已废弃,v10之后会删除,请用utils.drawText(ctx, text, styles)代替。

Released under the Apache License V2.

- +) => void

绘制带背景的文字。

  • ctx 画布上下文
  • attrs 文字参数
    • x 起始点x轴值
    • y 起始点y轴值
    • text 文字内容
    • width 宽度
    • height 高度
    • align 水平对齐方式
    • baseline 垂直对齐方式
  • styles 样式
    • style 样式
    • color 颜色
    • size 尺寸
    • family 字体
    • weight 权重
    • paddingLeft 左内边距,
    • paddingTop 上内边距,
    • paddingRight 右内边距,
    • paddingBottom 下内边距,
    • borderColor 边框颜色
    • borderSize 边框粗细
    • borderStyle 边框样式
    • borderRadius 边框圆角尺寸
    • borderDashedValue 边框虚线参数值
    • backgroundColor 背景色

utils.drawRectText(ctx, rectText, styles)

utils.drawText(ctx, text, styles),已废弃,v10之后会删除,请用utils.drawText(ctx, text, styles)代替。

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/guide/datasource.html b/guide/datasource.html index 842dc35c6..8f3872976 100644 --- a/guide/datasource.html +++ b/guide/datasource.html @@ -5,33 +5,34 @@ 📚 数据 | KLineChart - + - + - - - + + + - + + -
Skip to content
本页目录

📚 数据

图表所需要的数据必须是固定格式。通过图表实例 API applyNewData(dataList, more)applyMoreData(dataList, more)updateData(data)来和图表进行数据交互。

typescript
{
+    
Skip to content

📚 数据

图表所需要的数据必须是固定格式。通过图表实例 API applyNewData(dataList, more)applyMoreData(dataList, more)updateData(data)来和图表进行数据交互。

typescript
{
   // 时间戳,毫秒级别,必要字段
-  timestamp: number
+  timestamp: number
   // 开盘价,必要字段
-  open: number
+  open: number
   // 收盘价,必要字段
-  close: number
+  close: number
   // 最高价,必要字段
-  high: number
+  high: number
   // 最低价,必要字段
-  low: number
+  low: number
   // 成交量,非必须字段
-  volume: number
+  volume: number
   // 成交额,非必须字段,如果需要展示技术指标'EMV'和'AVP',则需要为该字段填充数据。
-  turnover: number
+  turnover: number
 }
{
   // 时间戳,毫秒级别,必要字段
   timestamp: number
@@ -47,8 +48,8 @@
   volume: number
   // 成交额,非必须字段,如果需要展示技术指标'EMV'和'AVP',则需要为该字段填充数据。
   turnover: number
-}

Released under the Apache License V2.

- +}

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/guide/environment.html b/guide/environment.html index 976d9766a..b6c8856c4 100644 --- a/guide/environment.html +++ b/guide/environment.html @@ -5,26 +5,27 @@ 🏝️ 环境要求 | KLineChart - + - + - - - + + + - + + -
Skip to content
本页目录

🏝️ 环境要求

浏览器支持

图表基于 html5 canvas 构建,需要运行在支持 canvas 的浏览器上,如果需要运行在移动端,请用 webview 加载。

兼容处理

core.js

图表内部集合使用Map,用于兼容不支持的老版浏览器。

javascript
import 'core.js';
-import { init } from 'klincharts';
import 'core.js';
-import { init } from 'klincharts';

Intl.js

图表依赖Intl,某些浏览器无此 API。

javascript
import 'intl';
-import 'intl/local-data/jsonp/en';
-import { init } from 'klincharts';
import 'intl';
+    
Skip to content

🏝️ 环境要求

浏览器支持

图表基于 html5 canvas 构建,需要运行在支持 canvas 的浏览器上,如果需要运行在移动端,请用 webview 加载。

兼容处理

core.js

图表内部集合使用Map,用于兼容不支持的老版浏览器。

javascript
import 'core.js';
+import { init } from 'klincharts';
import 'core.js';
+import { init } from 'klincharts';

Intl.js

图表依赖Intl,某些浏览器无此 API。

javascript
import 'intl';
+import 'intl/local-data/jsonp/en';
+import { init } from 'klincharts';
import 'intl';
 import 'intl/local-data/jsonp/en';
-import { init } from 'klincharts';

Released under the Apache License V2.

- +import { init } from 'klincharts';

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/guide/faq.html b/guide/faq.html index f7d7136ed..636029448 100644 --- a/guide/faq.html +++ b/guide/faq.html @@ -5,28 +5,29 @@ 🙋 常见问题 | KLineChart - + - + - - - + + + - + + -
Skip to content
本页目录

🙋 常见问题

初始化图表后,只能看到一条线,是怎么回事?

图表总是会填充容器,检查一下容器是否有高度。

蜡烛柱显示趋近于一条线,看不到波动,怎么办?

图表默认价格精度为两位小数,调用setPriceVolumePrecision(pricePrecision, volumePrecision)设置下精度。

分时图怎么创建?

通过样式设置。

javascript
chart.setStyles({
-  candle: {
-    type: 'area',
-  },
-});
chart.setStyles({
+    
Skip to content

🙋 常见问题

初始化图表后,只能看到一条线,是怎么回事?

图表总是会填充容器,检查一下容器是否有高度。

蜡烛柱显示趋近于一条线,看不到波动,怎么办?

图表默认价格精度为两位小数,调用setPriceVolumePrecision(pricePrecision, volumePrecision)设置下精度。

分时图怎么创建?

通过样式设置。

javascript
chart.setStyles({
+  candle: {
+    type: 'area',
+  },
+});
chart.setStyles({
   candle: {
     type: 'area',
   },
-});

内置的技术指标,计算出来的数据不是想要的,怎么办?

可以通过图表方法createIndicator或者overrideIndicator重写calc即可。

想创建一个内置技术指标之外的指标,怎么办?

图表支持自定义技术指标,详情参阅技术指标

想标记一下买卖点,该怎么做?

可以使用覆盖物,内置的覆盖物有一个simpleAnnotation,用图表api创建即可createOverlay({ name: 'simpleAnnotation', ... }, paneId)

Released under the Apache License V2.

- +});

内置的技术指标,计算出来的数据不是想要的,怎么办?

可以通过图表方法createIndicator或者overrideIndicator重写calc即可。

想创建一个内置技术指标之外的指标,怎么办?

图表支持自定义技术指标,详情参阅技术指标

想标记一下买卖点,该怎么做?

可以使用覆盖物,内置的覆盖物有一个simpleAnnotation,用图表api创建即可createOverlay({ name: 'simpleAnnotation', ... }, paneId)

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/guide/feedback.html b/guide/feedback.html index 748d089f3..7f7956556 100644 --- a/guide/feedback.html +++ b/guide/feedback.html @@ -5,21 +5,22 @@ 💬 反馈和共建 | KLineChart - + - + - - + + - + - + + -
Skip to content
本页目录

💬 反馈和共建

Github

Telegram

https://t.me/+098syuQtzI0yNzll

Discord

https://discord.gg/7YjHYgvvvZ

微信讨论群

扫一扫,添加开发者,备注『 KLineChart 』,加入群聊。

QQ讨论群

Released under the Apache License V2.

- +
Skip to content

💬 反馈和共建

Github

Telegram

https://t.me/+098syuQtzI0yNzll

Discord

https://discord.gg/7YjHYgvvvZ

微信讨论群

扫一扫,添加开发者,备注『 KLineChart 』,加入群聊。

QQ讨论群

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/guide/figure.html b/guide/figure.html index 838cfb0da..c78ff91f0 100644 --- a/guide/figure.html +++ b/guide/figure.html @@ -5,56 +5,57 @@ 基础图形 | KLineChart - + - + - - - + + + - + + -
Skip to content
本页目录

基础图形

基础图形是图表重要的组成部分,图表上所有的元素都是由基础图形组成,如果需要制作复杂的自定义技术指标和覆盖物,建议仔细阅读。这篇文档介绍了内置的基本图形和如何自定义一个基础图形。基础图形可以通过图表方法klinecharts.getFigureClass(name)获取。

使用示例

注意

需要在有画布上下文的情况下使用。

javascript
// 获取基础图形实例
+    
Skip to content

基础图形

基础图形是图表重要的组成部分,图表上所有的元素都是由基础图形组成,如果需要制作复杂的自定义技术指标和覆盖物,建议仔细阅读。这篇文档介绍了内置的基本图形和如何自定义一个基础图形。基础图形可以通过图表方法klinecharts.getFigureClass(name)获取。

使用示例

注意

需要在有画布上下文的情况下使用。

javascript
// 获取基础图形实例
 // name为基础图形名字,如,'arc', 'circle'等。
-const Figure = klinecharts.getFigureClass(name)
+const Figure = klinecharts.getFigureClass(name)
 // 实例化并绘制
 // attrs 属性
 // styles 样式
 // ctx 画布上下文
-new Figure({ attrs, styles }).draw(ctx)
// 获取基础图形实例
+new Figure({ attrs, styles }).draw(ctx)
// 获取基础图形实例
 // name为基础图形名字,如,'arc', 'circle'等。
 const Figure = klinecharts.getFigureClass(name)
 // 实例化并绘制
 // attrs 属性
 // styles 样式
 // ctx 画布上下文
-new Figure({ attrs, styles }).draw(ctx)

内置基础图形

图表内置了这些基础图形,arccirclelinepolygonrecttextrectText

arc

typescript
new ({
-  attrs: {
+new Figure({ attrs, styles }).draw(ctx)

内置基础图形

图表内置了这些基础图形,arccirclelinepolygonrecttextrectText

arc

typescript
new ({
+  attrs: {
     // 圆心x轴坐标值
-    x: number
+    x: number
     // 圆心y轴坐标值
-    y: number
+    y: number
     // 半径
-    r: number
+    r: number
     // 开始角度
-    startAngle: number
+    startAngle: number
     // 结束角度
-    endAngle: number
-  },
-  styles: {
+    endAngle: number
+  },
+  styles: {
     // 样式,可选项`solid`,`dashed`
-    style?: 'solid' | 'dashed'
+    style?: 'solid' | 'dashed'
     // 尺寸
-    size?: number
+    size?: number
     // 颜色
-    color?: string
+    color?: string
     // 虚线参数
-    dashedValue?: number[]
-  }
-}) => Figure
new ({
+    dashedValue?: number[]
+  }
+}) => Figure
new ({
   attrs: {
     // 圆心x轴坐标值
     x: number
@@ -77,30 +78,30 @@
     // 虚线参数
     dashedValue?: number[]
   }
-}) => Figure

circle

typescript
new ({
-  attrs: {
+}) => Figure

circle

typescript
new ({
+  attrs: {
     // 圆心x轴坐标值
-    x: number
+    x: number
     // 圆心y轴坐标值
-    y: number
+    y: number
     // 半径
-    r: number
-  },
-  styles: {
+    r: number
+  },
+  styles: {
     // 样式,可选项`fill`,`stroke`,`stroke_fill`
-    style?: 'fill' | 'stroke' | 'stroke_fill'
+    style?: 'fill' | 'stroke' | 'stroke_fill'
     // 颜色
-    color?: string
+    color?: string
     // 边框样式
-    borderStyle?: 'solid' | 'dashed'
+    borderStyle?: 'solid' | 'dashed'
     // 边框颜色
-    borderColor?: string
+    borderColor?: string
     // 边框尺寸
-    borderSize?: number
+    borderSize?: number
     // 边框虚线参数
-    borderDashedValue?: number[]
-  }
-}) => Figure
new ({
+    borderDashedValue?: number[]
+  }
+}) => Figure
new ({
   attrs: {
     // 圆心x轴坐标值
     x: number
@@ -123,25 +124,25 @@
     // 边框虚线参数
     borderDashedValue?: number[]
   }
-}) => Figure

line

typescript
new ({
-  attrs: {
+}) => Figure

line

typescript
new ({
+  attrs: {
     // 坐标集合
-    coordinates: Array<{
-      x: number
-      y: number
-    }>
-  },
-  styles: {
+    coordinates: Array<{
+      x: number
+      y: number
+    }>
+  },
+  styles: {
     // 样式,可选项`solid`,`dashed`
-    style?: 'solid' | 'dashed'
+    style?: 'solid' | 'dashed'
     // 尺寸
-    size?: number
+    size?: number
     // 颜色
-    color?: string
+    color?: string
     // 虚线参数
-    dashedValue?: number[]
-  }
-}) => Figure
new ({
+    dashedValue?: number[]
+  }
+}) => Figure
new ({
   attrs: {
     // 坐标集合
     coordinates: Array<{
@@ -159,29 +160,29 @@
     // 虚线参数
     dashedValue?: number[]
   }
-}) => Figure

polygon

typescript
new ({
-  attrs: {
+}) => Figure

polygon

typescript
new ({
+  attrs: {
     // 坐标集合
-    coordinates: Array<{
-      x: number
-      y: number
-    }>
-  },
-  styles: {
+    coordinates: Array<{
+      x: number
+      y: number
+    }>
+  },
+  styles: {
     // 样式,可选项`fill`,`stroke`,`stroke_fill`
-    style?: 'fill' | 'stroke' | 'stroke_fill'
+    style?: 'fill' | 'stroke' | 'stroke_fill'
     // 颜色
-    color?: string
+    color?: string
     // 边框样式
-    borderStyle?: 'solid' | 'dashed'
+    borderStyle?: 'solid' | 'dashed'
     // 边框颜色
-    borderColor?: string
+    borderColor?: string
     // 边框尺寸
-    borderSize?: number
+    borderSize?: number
     // 边框虚线参数
-    borderDashedValue?: number[]
-  }
-}) => Figure
new ({
+    borderDashedValue?: number[]
+  }
+}) => Figure
new ({
   attrs: {
     // 坐标集合
     coordinates: Array<{
@@ -203,34 +204,34 @@
     // 边框虚线参数
     borderDashedValue?: number[]
   }
-}) => Figure

rect

typescript
new ({
-  attrs: {
+}) => Figure

rect

typescript
new ({
+  attrs: {
     // 起始点x轴坐标值
-    x: number
+    x: number
     // 起始点y轴坐标值
-    y: number
+    y: number
     // 宽度
-    width: number
+    width: number
     // 高度
-    height: number
-  },
-  styles: {
+    height: number
+  },
+  styles: {
     // 样式,可选项`fill`,`stroke`,`stroke_fill`
-    style?: 'fill' | 'stroke' | 'stroke_fill'
+    style?: 'fill' | 'stroke' | 'stroke_fill'
     // 颜色
-    color?: string
+    color?: string
     // 边框样式
-    borderStyle?: 'solid' | 'dashed',
+    borderStyle?: 'solid' | 'dashed',
     // 边框颜色
-    borderColor?: string
+    borderColor?: string
     // 边框尺寸
-    borderSize?: number
+    borderSize?: number
     // 边框虚线参数
-    borderDashedValue?: number[]
+    borderDashedValue?: number[]
     // 边框圆角值
-    borderRadius?: number
-  }
-}) => Figure
new ({
+    borderRadius?: number
+  }
+}) => Figure
new ({
   attrs: {
     // 起始点x轴坐标值
     x: number
@@ -257,56 +258,56 @@
     // 边框圆角值
     borderRadius?: number
   }
-}) => Figure

text

typescript
new ({
-  attrs: {
+}) => Figure

text

typescript
new ({
+  attrs: {
     // 起始点x轴坐标值
-    x: number
+    x: number
     // 起始点y轴坐标值
-    y: number
+    y: number
     // 文字内容
-    text: any
+    text: any
     // 指定宽
-    width?: number
+    width?: number
     // 指定高
-    height?: number
+    height?: number
     // 对齐方式
-    align?: CanvasTextAlign
+    align?: CanvasTextAlign
     // 基准
-    baseline?: CanvasTextBaseline
-  },
-  styles: {
+    baseline?: CanvasTextBaseline
+  },
+  styles: {
     // 样式,可选项`fill`,`stroke`,`stroke_fill`
-    style?: 'fill' | 'stroke' | 'stroke_fill'
+    style?: 'fill' | 'stroke' | 'stroke_fill'
     // 颜色
-    color?: string
+    color?: string
     // 尺寸
-    size?: number
+    size?: number
     // 字体
-    family?: string
+    family?: string
     // 粗细
-    weight?: string | number
+    weight?: string | number
     // 左内边距
-    paddingLeft?: number
+    paddingLeft?: number
     // 右内边距
-    paddingRight?: number
+    paddingRight?: number
     // 上内边距
-    paddingTop?: number
+    paddingTop?: number
     // 下内边距
-    paddingBottom?: number
+    paddingBottom?: number
     // 边框样式
-    borderStyle?: 'solid' | 'dashed'
+    borderStyle?: 'solid' | 'dashed'
     // 边框颜色
-    borderColor?: string
+    borderColor?: string
     // 边框尺寸
-    borderSize?: number
+    borderSize?: number
     // 边框虚线参数
-    borderDashedValue?: number[]
+    borderDashedValue?: number[]
     // 边框圆角值
-    borderRadius?: number
+    borderRadius?: number
     // 背景色
-    backgroundColor?: string | CanvasGradient
-  }
-}) => Figure
new ({
+    backgroundColor?: string | CanvasGradient
+  }
+}) => Figure
new ({
   attrs: {
     // 起始点x轴坐标值
     x: number
@@ -357,27 +358,27 @@
   }
 }) => Figure

rectText

text,已废弃,v10之后会删除,请用text代替。

自定义基础图形

创建一个自定义基础图形,只需要生成基础图形信息,然后通过klinecharts.registerFigure全局添加,添加到图表即可和内置基础图形一样去使用。

属性说明

typescript
{
   // 图形名字,必要字段,是创建的唯一标识
-  name: string
+  name: string
 
   // 校验事件是否在图形上,返回一个boolean值
   checkEventOn: (
     // 事件的坐标
-    coordinate: {
-      x: number
-      y: number
+    coordinate: {
+      x: number
+      y: number
     }
     // 图形的属性
-    attrs: any
+    attrs: any
     // 图形的样式
-    styles: any
-  ) => boolean
+    styles: any
+  ) => boolean
 
   // 绘制
   draw: (
     // 画布上下文
-    ctx: CanvasRenderingContext2D,
+    ctx: CanvasRenderingContext2D,
     // 图形的属性
-    attrs: any,
+    attrs: any,
     // 图形的样式
   ) => void
 }
{
@@ -407,50 +408,50 @@
   ) => void
 }

示例

以一个可以有边框和背景菱形来具体说明自定义。

步骤一

先确定属性和样式 属性{ x, y, width, height }x是中心点x轴坐标值,y是中心点y轴坐标值,width是宽度,height是高度。 样式{ style, color, borderStyle, borderSize, borderColor, dashedValue }style是样式类型,我们可以定义三个选项strokefillstroke_fillstroke只有边框,fill只有背景,stroke_fill又有边框又有背景,color是颜色,borderStyle是边框样式,可以定义两个选项soliddashedsolid是实线,dashed是虚线,borderSize是边框尺寸,borderColor是边框颜色,dashedValue是虚线值。

步骤二

实现checkEventOndraw两个方法。

javascript
{
   name: 'diamond',
-  checkEventOn: (coordinate, attrs) => {
-    const { x, y, width, height } = attrs
-    const xDis = Math.abs(coordinate.x - x)
-    const yDis = Math.abs(coordinate.y - y)
-    return xDis * height + yDis * width < width * height / 2
+  checkEventOn: (coordinate, attrs) => {
+    const { x, y, width, height } = attrs
+    const xDis = Math.abs(coordinate.x - x)
+    const yDis = Math.abs(coordinate.y - y)
+    return xDis * height + yDis * width < width * height / 2
   },
-  draw: (ctx, attrs, styles) => {
-    const { x, y, width, height } = attrs
+  draw: (ctx, attrs, styles) => {
+    const { x, y, width, height } = attrs
     const {
-      style = 'fill',
-      color = 'currentColor',
-      borderSize = 1,
-      borderColor = 'currentColor',
-      borderStyle = 'solid,
-      borderDashedValue = [2, 2]
-    } = styles
+      style = 'fill',
+      color = 'currentColor',
+      borderSize = 1,
+      borderColor = 'currentColor',
+      borderStyle = 'solid',
+      borderDashedValue = [2, 2]
+    } = styles
     // 绘制填充的菱形
-    if (style === 'fill' || styles.style === 'stroke_fill') {
-      ctx.fillStyle = color
-      ctx.beginPath()
-      ctx.moveTo(x - width / 2, y)
-      ctx.lineTo(x, y - height / 2)
-      ctx.lineTo(x + width / 2, y)
-      ctx.lineTo(x, y + height / 2)
-      ctx.closePath()
-      ctx.fill()
+    if (style === 'fill' || styles.style === 'stroke_fill') {
+      ctx.fillStyle = color
+      ctx.beginPath()
+      ctx.moveTo(x - width / 2, y)
+      ctx.lineTo(x, y - height / 2)
+      ctx.lineTo(x + width / 2, y)
+      ctx.lineTo(x, y + height / 2)
+      ctx.closePath()
+      ctx.fill()
     }
     // 绘制边框的菱形
-    if (style === 'stroke' || styles.style === 'stroke_fill') {
-      ctx.strokeStyle = borderColor
-      ctx.lineWidth = borderSize
-      if (borderStyle === 'dashed') {
-        ctx.setLineDash(borderDashedValue)
+    if (style === 'stroke' || styles.style === 'stroke_fill') {
+      ctx.strokeStyle = borderColor
+      ctx.lineWidth = borderSize
+      if (borderStyle === 'dashed') {
+        ctx.setLineDash(borderDashedValue)
       } else {
-        ctx.setLineDash([])
+        ctx.setLineDash([])
       }
-      ctx.beginPath()
-      ctx.beginPath()
-      ctx.moveTo(x - width / 2, y)
-      ctx.lineTo(x, y - height / 2)
-      ctx.lineTo(x + width / 2, y)
-      ctx.lineTo(x, y + height / 2)
-      ctx.closePath()
-      ctx.stroke()
+      ctx.beginPath()
+      ctx.beginPath()
+      ctx.moveTo(x - width / 2, y)
+      ctx.lineTo(x, y - height / 2)
+      ctx.lineTo(x + width / 2, y)
+      ctx.lineTo(x, y + height / 2)
+      ctx.closePath()
+      ctx.stroke()
     }
   }
 }
{
@@ -468,7 +469,7 @@
       color = 'currentColor',
       borderSize = 1,
       borderColor = 'currentColor',
-      borderStyle = 'solid,
+      borderStyle = 'solid',
       borderDashedValue = [2, 2]
     } = styles
     // 绘制填充的菱形
@@ -501,8 +502,8 @@
       ctx.stroke()
     }
   }
-}

这样一个自定义的基础图形就完成了。

Released under the Apache License V2.

- +}

这样一个自定义的基础图形就完成了。

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/guide/getting-started.html b/guide/getting-started.html index 0af2801a0..771902850 100644 --- a/guide/getting-started.html +++ b/guide/getting-started.html @@ -5,36 +5,37 @@ 🚀 快速开始 | KLineChart - + - + - - - + + + - + + -
Skip to content
本页目录

🚀 快速开始

获取KLineChart

KLineChart 支持多种下载方式,你可以通过npmyarn等包管理工具,也可以通过CDN获取。

使用npm

bash
npm install klinecharts --save
npm install klinecharts --save

使用yarn

bash
yarn add klinecharts
yarn add klinecharts

使用CDN

可以使用jsDelivrunpkg或者其它的,推荐从jsDelivr引用。

bash
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script>

创建第一个图表

npmyarn等包管理工具的项目中创建

javascript
import { init } from 'klinecharts'
+    
Skip to content

🚀 快速开始

获取KLineChart

KLineChart 支持多种下载方式,你可以通过npmyarn等包管理工具,也可以通过CDN获取。

使用npm

bash
npm install klinecharts --save
npm install klinecharts --save

使用yarn

bash
yarn add klinecharts
yarn add klinecharts

使用CDN

可以使用jsDelivrunpkg或者其它的,推荐从jsDelivr引用。

bash
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/klinecharts/dist/klinecharts.min.js"></script>

创建第一个图表

npmyarn等包管理工具的项目中创建

javascript
import { init } from 'klinecharts'
 
 // 初始化图表
-const chart = init(`${domId}`)
+const chart = init(`${domId}`)
 
 // 为图表添加数据
-chart.applyNewData([
-  { close: 4976.16, high: 4977.99, low: 4970.12, open: 4972.89, timestamp: 1587660000000, volume: 204 },
-  { close: 4977.33, high: 4979.94, low: 4971.34, open: 4973.20, timestamp: 1587660060000, volume: 194 },
-  { close: 4977.93, high: 4977.93, low: 4974.20, open: 4976.53, timestamp: 1587660120000, volume: 197 },
-  { close: 4966.77, high: 4968.53, low: 4962.20, open: 4963.88, timestamp: 1587660180000, volume: 28 },
-  { close: 4961.56, high: 4972.61, low: 4961.28, open: 4961.28, timestamp: 1587660240000, volume: 184 },
-  { close: 4964.19, high: 4964.74, low: 4961.42, open: 4961.64, timestamp: 1587660300000, volume: 191 },
-  { close: 4968.93, high: 4972.70, low: 4964.55, open: 4966.96, timestamp: 1587660360000, volume: 105 },
-  { close: 4979.31, high: 4979.61, low: 4973.99, open: 4977.06, timestamp: 1587660420000, volume: 35 },
-  { close: 4977.02, high: 4981.66, low: 4975.14, open: 4981.66, timestamp: 1587660480000, volume: 135 },
-  { close: 4985.09, high: 4988.62, low: 4980.30, open: 4986.72, timestamp: 1587660540000, volume: 76 }
-])
import { init } from 'klinecharts'
+chart.applyNewData([
+  { close: 4976.16, high: 4977.99, low: 4970.12, open: 4972.89, timestamp: 1587660000000, volume: 204 },
+  { close: 4977.33, high: 4979.94, low: 4971.34, open: 4973.20, timestamp: 1587660060000, volume: 194 },
+  { close: 4977.93, high: 4977.93, low: 4974.20, open: 4976.53, timestamp: 1587660120000, volume: 197 },
+  { close: 4966.77, high: 4968.53, low: 4962.20, open: 4963.88, timestamp: 1587660180000, volume: 28 },
+  { close: 4961.56, high: 4972.61, low: 4961.28, open: 4961.28, timestamp: 1587660240000, volume: 184 },
+  { close: 4964.19, high: 4964.74, low: 4961.42, open: 4961.64, timestamp: 1587660300000, volume: 191 },
+  { close: 4968.93, high: 4972.70, low: 4964.55, open: 4966.96, timestamp: 1587660360000, volume: 105 },
+  { close: 4979.31, high: 4979.61, low: 4973.99, open: 4977.06, timestamp: 1587660420000, volume: 35 },
+  { close: 4977.02, high: 4981.66, low: 4975.14, open: 4981.66, timestamp: 1587660480000, volume: 135 },
+  { close: 4985.09, high: 4988.62, low: 4980.30, open: 4986.72, timestamp: 1587660540000, volume: 76 }
+])
import { init } from 'klinecharts'
 
 // 初始化图表
 const chart = init(`${domId}`)
@@ -53,23 +54,23 @@
   { close: 4985.09, high: 4988.62, low: 4980.30, open: 4986.72, timestamp: 1587660540000, volume: 76 }
 ])

在直接通过 script 标签引入的项目中创建

html
<!DOCTYPE html>
 <html lang="en" >
-  <head>
-    <meta charset="utf-8" />
-    <meta name="viewport" content="width=device-width, initial-scale=1" />
-    <meta name="theme-color" content="#000000" />
-    <meta name="keywords" content="快速开始"/>
-    <meta name="description" content="快速开始"/>
-    <title>快速开始</title>
-  </head>
-  <body>
-    <div id="chart" style="width:600px;height:600px"></div>
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="theme-color" content="#000000" />
+    <meta name="keywords" content="快速开始"/>
+    <meta name="description" content="快速开始"/>
+    <title>快速开始</title>
+  </head>
+  <body>
+    <div id="chart" style="width:600px;height:600px"></div>
     <script>
-      window.onload = function () {
+      window.onload = function () {
         // 初始化图表
-        var chart = klinecharts.init('chart')
+        var chart = klinecharts.init('chart')
 
         // 为图表添加数据
-        chart.applyNewData([
+        chart.applyNewData([
           { close: 4976.16, high: 4977.99, low: 4970.12, open: 4972.89, timestamp: 1587660000000, volume: 204 },
           { close: 4977.33, high: 4979.94, low: 4971.34, open: 4973.20, timestamp: 1587660060000, volume: 194 },
           { close: 4977.93, high: 4977.93, low: 4974.20, open: 4976.53, timestamp: 1587660120000, volume: 197 },
@@ -82,8 +83,8 @@
           { close: 4985.09, high: 4988.62, low: 4980.30, open: 4986.72, timestamp: 1587660540000, volume: 76 }
         ])
       }
-    </script>
-  </body>
+    </script>
+  </body>
 </html>
<!DOCTYPE html>
 <html lang="en" >
   <head>
@@ -117,8 +118,8 @@
       }
     </script>
   </body>
-</html>

这样你的第一个图表就创建完成了。

Released under the Apache License V2.

- +</html>

这样你的第一个图表就创建完成了。

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/guide/hot-key.html b/guide/hot-key.html index 1bf599d16..12598bb9b 100644 --- a/guide/hot-key.html +++ b/guide/hot-key.html @@ -5,20 +5,21 @@ ⌨️ 快捷键 | KLineChart - + - + - - - + + + - + + -
Skip to content
本页目录

⌨️ 快捷键

目前快捷键仅支持移动和缩放。

  • shift + 右移
  • shift + 左移
  • shift + + 放大
  • shift + - 缩小

Released under the Apache License V2.

- +
Skip to content

⌨️ 快捷键

目前快捷键仅支持移动和缩放。

  • shift + 右移
  • shift + 左移
  • shift + + 放大
  • shift + - 缩小

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/guide/i18n.html b/guide/i18n.html index cef36440c..e57d22441 100644 --- a/guide/i18n.html +++ b/guide/i18n.html @@ -5,34 +5,35 @@ 🌏 国际化 | KLineChart - + - + - - - + + + - + + -
Skip to content
本页目录

🌏 国际化

目前图表内置了en-USzh-CN两种语言,默认语言是en-US,如果需要使用其他语言,可以参考下面的方案。

增加语言包

增加语言包通过klinecharts.registerLocale(key, locales)去完成。 例如,添加一个中文繁体的语言包,可以这样做:

typescript
klinecharts.registerLocale('zh-HK', {
-  time: '時間:',
-  open: '開:',
-  high: '高:',
-  low: '低:',
-  close: '收:',
-  volume: '成交量:'
-})
klinecharts.registerLocale('zh-HK', {
+    
Skip to content

🌏 国际化

目前图表内置了en-USzh-CN两种语言,默认语言是en-US,如果需要使用其他语言,可以参考下面的方案。

增加语言包

增加语言包通过klinecharts.registerLocale(key, locales)去完成。 例如,添加一个中文繁体的语言包,可以这样做:

typescript
klinecharts.registerLocale('zh-HK', {
+  time: '時間:',
+  open: '開:',
+  high: '高:',
+  low: '低:',
+  close: '收:',
+  volume: '成交量:'
+})
klinecharts.registerLocale('zh-HK', {
   time: '時間:',
   open: '開:',
   high: '高:',
   low: '低:',
   close: '收:',
   volume: '成交量:'
-})

使用语言包

当添加完语言包后,可以通过图表API init(options)或者setLocale(key),完成语言切换。

Released under the Apache License V2.

- +})

使用语言包

当添加完语言包后,可以通过图表API init(options)或者setLocale(key),完成语言切换。

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/guide/indicator.html b/guide/indicator.html index ff846e283..1cf686cdf 100644 --- a/guide/indicator.html +++ b/guide/indicator.html @@ -5,39 +5,40 @@ 技术指标 | KLineChart - + - + - - - + + + - + + -
Skip to content
本页目录

技术指标

本文档介绍了图表内置的技术指标和如何自定义一个技术指标。

内置技术指标

指标名默认计算参数指标名默认计算参数指标名默认计算参数
MA[5, 10, 30, 60]BIAS[6, 12, 24]VR[24, 30]
EMA[6, 12, 20]BRAR[26]WR[6, 10, 14]
SMA[12, 2]CCI[13]MTM[6, 10]
BBI[3, 6, 12, 24]DMI[14, 6]EMV[14, 9]
VOL[5, 10, 20]CR[26, 10, 20, 40, 60]SAR[2, 2,  20]
MACD[12, 26, 9]PSY[12, 6]AO[5, 34]
BOLL[20]DMA[10, 50, 10]ROC[12, 6]
KDJ[9, 3, 3]TRIX[12, 20]PVT
RSI[6, 12, 24]OBV[30]AVP

自定义技术指标

创建一个自定义技术指标,只需要生成一个技术指标信息,然后通过klinecharts.registerIndicator全局添加,添加到图表即可和内置技术指标一样去使用。

属性说明

typescript
{
+    
Skip to content

技术指标

本文档介绍了图表内置的技术指标和如何自定义一个技术指标。

内置技术指标

指标名默认计算参数指标名默认计算参数指标名默认计算参数
MA[5, 10, 30, 60]BIAS[6, 12, 24]VR[24, 30]
EMA[6, 12, 20]BRAR[26]WR[6, 10, 14]
SMA[12, 2]CCI[13]MTM[6, 10]
BBI[3, 6, 12, 24]DMI[14, 6]EMV[14, 9]
VOL[5, 10, 20]CR[26, 10, 20, 40, 60]SAR[2, 2,  20]
MACD[12, 26, 9]PSY[12, 6]AO[5, 34]
BOLL[20]DMA[10, 50, 10]ROC[12, 6]
KDJ[9, 3, 3]TRIX[12, 20]PVT
RSI[6, 12, 24]OBV[30]AVP

自定义技术指标

创建一个自定义技术指标,只需要生成一个技术指标信息,然后通过klinecharts.registerIndicator全局添加,添加到图表即可和内置技术指标一样去使用。

属性说明

typescript
{
   // 指标名
-  name: string
+  name: string
   // 指标简短名称,用于显示,缺省将显示name
-  shortName?: string
+  shortName?: string
   // 精度,默认为4
-  precision?: number
+  precision?: number
   // 计算参数
-  calcParams?: any[]
+  calcParams?: any[]
   // 是否需要ohlc
-  shouldOhlc?: boolean
+  shouldOhlc?: boolean
   // 是否需要格式化大数据值,从1000开始格式化,比如100000是否需要格式化100K
-  shouldFormatBigNumber?: boolean
+  shouldFormatBigNumber?: boolean
   // 是否可见
-  visible?: boolean 
+  visible?: boolean 
   // 扩展数据
-  extendData?: any
+  extendData?: any
   // 系列,默认为'normal'
-  series?: 'normal' | 'price' | 'volume'
+  series?: 'normal' | 'price' | 'volume'
   // 数据信息
-  figures?: Array<{
+  figures?: Array<{
     // 用于取计算结果中值
     key: string
     // 用于tooltip显示
@@ -56,7 +57,7 @@
     }) => IndicatorFigureAttrs
     // 是一个方法,用于生成样式
     styles?: (
-      data: {
+      data: {
         // 上一个图形的数据
         prev: {
           // k线数据,类型参阅[数据源]
@@ -76,31 +77,31 @@
         }
       },
       // 技术图表实例
-      indicator: Indicator
+      indicator: Indicator
       // 默认的技术指标样式,即全局设置的技术指标样式,参阅[样式]中的indicator
-      defaultStyles: IndicatorStyle
+      defaultStyles: IndicatorStyle
     ) => IndicatorFigureStyle
   }>
   // 指定的最小值,默认null
-  minValue?: number
+  minValue?: number
   // 指定的最大值,默认null
-  maxValue?: number
+  maxValue?: number
   // 样式,支持增量,默认为null,类型参阅[样式]中的indicator
-  styles?: IndicatorStyle
+  styles?: IndicatorStyle
   // 计算方法,可以是一个promise
   calc: (
     // 数据源,类型参阅[数据源]
-    dataList: KLineData[],
+    dataList: KLineData[],
     // 技术指标实例
-    indicator: Indicator
-  ) => Promise<Array<any>> | Array<any>
+    indicator: Indicator
+  ) => Promise<Array<any>> | Array<any>
   // 重新生成数图形配置方法,会在计算参数发生变化后触发,返回类型参阅figures,默认为null
-  regenerateFigures?: (
+  regenerateFigures?: (
     // 计算参数
-    calcParms: any[]
-  ) => Array<IndicatorFigure<D>>
+    calcParms: any[]
+  ) => Array<IndicatorFigure<D>>
   // 创建自定义提示文字
-  createTooltipDataSource?: (params: {
+  createTooltipDataSource?: (params: {
     // 数据源,类型参阅[数据源]
     kLineDataList: KLineData[]
     // 技术指标实例
@@ -152,11 +153,11 @@
     yAxis: YAxis
   }) => ({
     // 名字
-    name?: string
+    name?: string
     // 计算参数文字,如果name无值,则不会显示
-    calcParamsText?: string
+    calcParamsText?: string
     // 值信息
-    values?: Array<{
+    values?: Array<{
       title: string | {
         text: string
         color: string
@@ -168,7 +169,7 @@
     }>
   }),
   // 自定义绘制,如果返回true,则figures配置的图形不会绘制
-  draw?: (params: {
+  draw?: (params: {
     // 画布上下文
     ctx: CanvasRenderingContext2D
     // 数据源,类型参阅[数据源]
@@ -216,7 +217,7 @@
     xAxis: XAxis
     // y轴组件,内置一些转换方法
     yAxis: YAxis
-  }) => boolean
+  }) => boolean
 }
{
   // 指标名
   name: string
@@ -444,29 +445,29 @@
     { key: 'ma2', title: 'MA10: ', type: 'line' }
   ],
   // 当计算参数改变时,希望提示的和参数一样,即title的值需要改变
-  regenerateFigures: (params) => {
-    return params.map((p, i) => {
-      return { key: `ma${i + 1}`, title: `MA${p}: `, type: 'line' }
+  regenerateFigures: (params) => {
+    return params.map((p, i) => {
+      return { key: `ma${i + 1}`, title: `MA${p}: `, type: 'line' }
     })
   },
   // 计算结果
-  calc: (kLineDataList, { calcParams, figures }) => {
+  calc: (kLineDataList, { calcParams, figures }) => {
     // 注意:返回数据个数需要和kLineDataList的数据个数一致,如果无值,用{}代替即可。
     // 计算参数最好取回调参数calcParams,如果不是,后续计算参数发生变化的时候,这里计算不能及时响应
-    const closeSums = []
-    return kLineDataList.map((kLineData, i) => {
-      const ma = {}
-      const close = kLineData. close
-      calcParams.forEach((param, j) => {
-        closeSums[j] = (closeSums[j] || 0) + close
-        if (i >= param - 1) {
-          ma[figures[j].key] = closeSums[j] / param
-          closeSums[j] -= kLineDataList[i - (param - 1)].close
+    const closeSums = []
+    return kLineDataList.map((kLineData, i) => {
+      const ma = {}
+      const close = kLineData. close
+      calcParams.forEach((param, j) => {
+        closeSums[j] = (closeSums[j] || 0) + close
+        if (i >= param - 1) {
+          ma[figures[j].key] = closeSums[j] / param
+          closeSums[j] -= kLineDataList[i - (param - 1)].close
         }
       })
       // 如果有值的情况下,这里每一项的数据格式应该是 { ma1: xxx, ma2: xxx }
       // 每个key需要和figures中的子项key对应的值一致
-      return ma
+      return ma
     })
   }
 }
{
@@ -503,8 +504,8 @@
       return ma
     })
   }
-}

这样一个自定义指标就完成了。

Released under the Apache License V2.

- +}

这样一个自定义指标就完成了。

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/guide/instance-api.html b/guide/instance-api.html index bc8eff091..8c30c6a31 100644 --- a/guide/instance-api.html +++ b/guide/instance-api.html @@ -5,25 +5,26 @@ 实例API | KLineChart - + - + - - - + + + - + + -
Skip to content
本页目录

实例API

getDom(paneId, position)

typescript
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => HTMLElement
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => HTMLElement

获取dom容器。

  • paneId 窗口id,缺省则是整个图表容器
  • position 可选项为'root','main'和'yAxis',缺省则是'root'

getSize(paneId, position)

typescript
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => {
-  width: number
-  height: number
-  left: number
-  top: number
-  right: number
-  bottom: number
+    
Skip to content

实例API

getDom(paneId, position)

typescript
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => HTMLElement
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => HTMLElement

获取dom容器。

  • paneId 窗口id,缺省则是整个图表容器
  • position 支持rootmainyAxis,缺省则是root

getSize(paneId, position)

typescript
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => {
+  width: number
+  height: number
+  left: number
+  top: number
+  right: number
+  bottom: number
 }
(paneId?: string, position?: 'root' | 'main' | 'yAxis') => {
   width: number
   height: number
@@ -31,29 +32,29 @@
   top: number
   right: number
   bottom: number
-}

获取尺寸。

  • paneId 窗口id,缺省则是整个图表容器
  • position 位置,支持rootmainyAxis,缺省则是root

setStyles(styles)

typescript
(styles: string | object) => HTMLElement
(styles: string | object) => HTMLElement

设置样式配置。

  • styles 样式配置,可以是通过registerStyles注册进去的样式名。当是对象时,详情可参阅样式,支持合并。

getStyles()

typescript
() => object
() => object

获取样式配置,返回完整类型参阅样式

setPriceVolumePrecision(pricePrecision, volumePrecision)

typescript
(pricePrecision: number, volumePrecision: number) => void
(pricePrecision: number, volumePrecision: number) => void

设置价格和数量精度,同时技术指标系列是'price'或者'volume'也会受影响。

  • pricePrecision 价格精度
  • volumePrecision 数量精度

setTimezone(timezone)

typescript
(timezone: string) => void
(timezone: string) => void

设置时区。

  • timezone 时区名,如'Asia/Shanghai',如果不设置会自动获取本机时区,时区对应名字列表请参阅时区列表

getTimezone()

typescript
() => string
() => string

获取图表时区名。

setZoomEnabled(enabled)

typescript
(enabled: boolean) => void
(enabled: boolean) => void

设置是否缩放。

isZoomEnabled()

typescript
() => boolean
() => boolean

是否可以缩放。

setScrollEnabled(enabled)

typescript
(enabled: boolean) => void
(enabled: boolean) => void

设置是否可以拖拽滚动。

isScrollEnabled()

typescript
() => boolean
() => boolean

是否可以拖拽滚动。

setOffsetRightDistance(distance)

typescript
(distance: number) => void
(distance: number) => void

设置图表右边可以空出来的间隙。

getOffsetRightDistance()

typescript
() => number
() => number

获取图表右边可以空出来的间隙。

setLeftMinVisibleBarCount(barCount)

typescript
(barCount: number) => void
(barCount: number) => void

设置左边最小可见的蜡烛数量。

setRightMinVisibleBarCount(barCount)

typescript
(barCount: number) => void
(barCount: number) => void

设置右边最小可见的蜡烛数量。

setBarSpace(space)

typescript
(space: number) => void
(space: number) => void

设置图表单根蜡烛柱的宽度。

getBarSpace()

typescript
() => number
() => number

获取图表单根蜡烛柱的宽度。

getVisibleRange()

typescript
() => {
-  from: number
-  to: number
-  realFrom: number
-  realTo: number
+}

获取尺寸。

  • paneId 窗口id,缺省则是整个图表容器
  • position 位置,支持rootmainyAxis,缺省则是root

setStyles(styles)

typescript
(styles: string | object) => HTMLElement
(styles: string | object) => HTMLElement

设置样式配置。

  • styles 样式配置,可以是通过registerStyles注册进去的样式名。当是对象时,详情可参阅样式,支持合并。

getStyles()

typescript
() => object
() => object

获取样式配置,返回完整类型参阅样式

setPriceVolumePrecision(pricePrecision, volumePrecision)

typescript
(pricePrecision: number, volumePrecision: number) => void
(pricePrecision: number, volumePrecision: number) => void

设置价格和数量精度,同时技术指标系列是'price'或者'volume'也会受影响。

  • pricePrecision 价格精度
  • volumePrecision 数量精度

setTimezone(timezone)

typescript
(timezone: string) => void
(timezone: string) => void

设置时区。

  • timezone 时区名,如'Asia/Shanghai',如果不设置会自动获取本机时区,时区对应名字列表请参阅时区列表

getTimezone()

typescript
() => string
() => string

获取图表时区名。

setZoomEnabled(enabled)

typescript
(enabled: boolean) => void
(enabled: boolean) => void

设置是否缩放。

isZoomEnabled()

typescript
() => boolean
() => boolean

是否可以缩放。

setScrollEnabled(enabled)

typescript
(enabled: boolean) => void
(enabled: boolean) => void

设置是否可以拖拽滚动。

isScrollEnabled()

typescript
() => boolean
() => boolean

是否可以拖拽滚动。

setOffsetRightDistance(distance)

typescript
(distance: number) => void
(distance: number) => void

设置图表右边可以空出来的间隙。

getOffsetRightDistance()

typescript
() => number
() => number

获取图表右边可以空出来的间隙。

setLeftMinVisibleBarCount(barCount)

typescript
(barCount: number) => void
(barCount: number) => void

设置左边最小可见的蜡烛数量。

setRightMinVisibleBarCount(barCount)

typescript
(barCount: number) => void
(barCount: number) => void

设置右边最小可见的蜡烛数量。

setBarSpace(space)

typescript
(space: number) => void
(space: number) => void

设置图表单根蜡烛柱的宽度。

getBarSpace()

typescript
() => number
() => number

获取图表单根蜡烛柱的宽度。

getVisibleRange()

typescript
() => {
+  from: number
+  to: number
+  realFrom: number
+  realTo: number
 }
() => {
   from: number
   to: number
   realFrom: number
   realTo: number
-}

获取可见区间范围。

applyNewData(dataList, more, callback)

typescript
(
-  dataList:Array<{
-    timestamp: number
-    open: number
-    close: number
-    high: number
-    low: number
-    volume?: number,
-    turnover?: number
-  }>,
-  more?: boolean,
-  callback?: () => void
-) => void
(
+}

获取可见区间范围。

applyNewData(dataList, more, callback)

typescript
(
+  dataList:Array<{
+    timestamp: number
+    open: number
+    close: number
+    high: number
+    low: number
+    volume?: number,
+    turnover?: number
+  }>,
+  more?: boolean,
+  callback?: () => void
+) => void
(
   dataList:Array<{
     timestamp: number
     open: number
@@ -65,19 +66,19 @@
   }>,
   more?: boolean,
   callback?: () => void
-) => void

添加新数据,此方法会清空图表数据,不需要额外调用clearData方法。

  • dataList 是一个K线数据数组,数据类型详情可参阅数据源
  • more 告诉图表还有没有更多历史数据,可缺省,默认为true
  • callback 成功回调

applyMoreData(dataList, more, callback)

typescript
(
-  dataList:Array<{
-    timestamp: number
-    open: number
-    close: number
-    high: number
-    low: number
-    volume?: number
-    turnover?: number
-  }>,
-  more?: boolean,
-  callback?: () => void
-) => void
(
+) => void

添加新数据,此方法会清空图表数据,不需要额外调用clearData方法。

  • dataList 是一个K线数据数组,数据类型详情可参阅数据源
  • more 告诉图表还有没有更多历史数据,可缺省,默认为true
  • callback 成功回调

applyMoreData(dataList, more, callback)

typescript
(
+  dataList:Array<{
+    timestamp: number
+    open: number
+    close: number
+    high: number
+    low: number
+    volume?: number
+    turnover?: number
+  }>,
+  more?: boolean,
+  callback?: () => void
+) => void
(
   dataList:Array<{
     timestamp: number
     open: number
@@ -89,18 +90,18 @@
   }>,
   more?: boolean,
   callback?: () => void
-) => void

添加历史更多数据。

  • dataList 是一个K线数据数组,数据类型详情可参阅数据源
  • more 告诉图表还有没有更多历史数据,可缺省,默认为true
  • callback 成功回调

updateData(data, callback)

typescript
(
-  data: {
-    timestamp: number
-    open: number
-    close: number
-    high: number
-    low: number
-    volume?: number
-    turnover?: number
-  },
-  callback?: () => void
-) => void
(
+) => void

添加历史更多数据。

  • dataList 是一个K线数据数组,数据类型详情可参阅数据源
  • more 告诉图表还有没有更多历史数据,可缺省,默认为true
  • callback 成功回调

updateData(data, callback)

typescript
(
+  data: {
+    timestamp: number
+    open: number
+    close: number
+    high: number
+    low: number
+    volume?: number
+    turnover?: number
+  },
+  callback?: () => void
+) => void
(
   data: {
     timestamp: number
     open: number
@@ -111,14 +112,14 @@
     turnover?: number
   },
   callback?: () => void
-) => void

更新数据,目前只会匹配当前最后一条数据的时间戳,相同则覆盖,不同则追加。

  • data 单条k线数据,数据类型详情可参阅数据源
  • callback 成功回调

getDataList()

typescript
() => Array<{
-  timestamp: number
-  open: number
-  close: number
-  high: number
-  low: number
-  volume?: number
-  turnover?: number
+) => void

更新数据,目前只会匹配当前最后一条数据的时间戳,相同则覆盖,不同则追加。

  • data 单条k线数据,数据类型详情可参阅数据源
  • callback 成功回调

getDataList()

typescript
() => Array<{
+  timestamp: number
+  open: number
+  close: number
+  high: number
+  low: number
+  volume?: number
+  turnover?: number
 }>
() => Array<{
   timestamp: number
   open: number
@@ -127,53 +128,53 @@
   low: number
   volume?: number
   turnover?: number
-}>

获取图表目前的数据源,返回数据类型可参阅数据源

clearData()

typescript
() => void
() => void

清空图表数据,一般情况下不用手动调用,为了避免重复绘制,这里只是清除数据,图表不会重绘。

loadMore(cb)

typescript
(cb: (timestamp: number | null) => void) => void
(cb: (timestamp: number | null) => void) => void

设置加载更多回调函数。

  • cb 是一个回调方法,timestamp为第一条数据的时间戳

createIndicator(value, isStack, paneOptions, callback)

typescript
(
-  value: string | {
-    name: string
-    shortName?: string
-    precision?: number
-    calcParams?: any[]
-    shouldOhlc?: boolean
-    shouldFormatBigNumber?: boolean
-    visible?: boolean
-    extendData?: any
-    series?: 'normal' | 'price' | 'volume'
-    figures?: Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => {
-        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
-        color?: string
-      }
-    }>
-    minValue?: number
-    maxValue?: number
-    styles?: object
-    calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
-    regenerateFigures?: (calcParms: any[]) => Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => {
-        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
-        color?: string
-      }
-    }>,
-    createTooltipDataSource?: (params: object) => {
-      name?: string
-      calcParamsText?: string
-      values?: Array<{
+}>

获取图表目前的数据源,返回数据类型可参阅数据源

clearData()

typescript
() => void
() => void

清空图表数据,一般情况下不用手动调用,为了避免重复绘制,这里只是清除数据,图表不会重绘。

loadMore(cb)

typescript
(cb: (timestamp: number | null) => void) => void
(cb: (timestamp: number | null) => void) => void

设置加载更多回调函数。

  • cb 是一个回调方法,timestamp为第一条数据的时间戳

createIndicator(value, isStack, paneOptions, callback)

typescript
(
+  value: string | {
+    name: string
+    shortName?: string
+    precision?: number
+    calcParams?: any[]
+    shouldOhlc?: boolean
+    shouldFormatBigNumber?: boolean
+    visible?: boolean
+    extendData?: any
+    series?: 'normal' | 'price' | 'volume'
+    figures?: Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => {
+        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
+        color?: string
+      }
+    }>
+    minValue?: number
+    maxValue?: number
+    styles?: object
+    calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
+    regenerateFigures?: (calcParms: any[]) => Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => {
+        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
+        color?: string
+      }
+    }>,
+    createTooltipDataSource?: (params: object) => {
+      name?: string
+      calcParamsText?: string
+      values?: Array<{
         title: string | {
           text: string
           color: string
@@ -184,24 +185,24 @@
         }
       }>
     }
-    draw?: (params: object) => boolean
-  },
-  isStack?: boolean,
-  paneOptions?: {
-    id?: string
-    height?: number
-    minHeight?: number
-    dragEnabled?: boolean
-    gap?: {
-      top?: number
-      bottom?: number
-    }
-    axisOptions?: {
-      scrollZoomEnabled?: boolean
-    }
-  } | null,
-  callback?: () => void
-) => string | null
(
+    draw?: (params: object) => boolean
+  },
+  isStack?: boolean,
+  paneOptions?: {
+    id?: string
+    height?: number
+    minHeight?: number
+    dragEnabled?: boolean
+    gap?: {
+      top?: number
+      bottom?: number
+    }
+    axisOptions?: {
+      scrollZoomEnabled?: boolean
+    }
+  } | null,
+  callback?: () => void
+) => string | null
(
   value: string | {
     name: string
     shortName?: string
@@ -275,67 +276,67 @@
     }
   } | null,
   callback?: () => void
-) => string | null

创建一个技术指标,返回值是一个标识窗口的字符串,这非常重要,后续对该窗口的一些操作,都需要此标识。

  • value 技术指标名或者技术指标对象,当是对象时,类型和图表方法overrideIndicator的入参一致

  • isStack 是否覆盖

  • paneOptions 窗口配置信息,可缺省

    • id 窗口id,可缺省
    • height 窗口高度,可缺省
    • minHeight 窗口最小高度,可缺省
    • dragEnbaled 窗口是否可以拖拽调整高度,可缺省
    • gap 边距
      • top 上边距,值小余1则是百分比
      • bottom 下边距,值小余1则是百分比
    • axisOptions
      • scrollZoomEnabled 轴上是否可以滚动缩放
  • callback 指标创建完成回调方法

特殊的id

'candle_pane',主图的窗口id。

示例:

javascript
chart.createIndicator('MA', false, {
-  id: 'pane_1',
-  height: 100,
-  minHeight: 30,
-  dragEnabled: true,
-  gap: { top: 0.2, bottom: 0.1 },
-  axisOptions: { scrollZoomEnabled: true }
-}, () => {})
chart.createIndicator('MA', false, {
+) => string | null

创建一个技术指标,返回值是一个标识窗口的字符串,这非常重要,后续对该窗口的一些操作,都需要此标识。

  • value 技术指标名或者技术指标对象,当是对象时,类型和图表方法overrideIndicator的入参一致

  • isStack 是否覆盖

  • paneOptions 窗口配置信息,可缺省

    • id 窗口id,可缺省
    • height 窗口高度,可缺省
    • minHeight 窗口最小高度,可缺省
    • dragEnbaled 窗口是否可以拖拽调整高度,可缺省
    • gap 边距
      • top 上边距,值小余1则是百分比
      • bottom 下边距,值小余1则是百分比
    • axisOptions
      • scrollZoomEnabled 轴上是否可以滚动缩放
  • callback 指标创建完成回调方法

特殊的id

'candle_pane',主图的窗口id。

示例:

javascript
chart.createIndicator('MA', false, {
+  id: 'pane_1',
+  height: 100,
+  minHeight: 30,
+  dragEnabled: true,
+  gap: { top: 0.2, bottom: 0.1 },
+  axisOptions: { scrollZoomEnabled: true }
+}, () => {})
chart.createIndicator('MA', false, {
   id: 'pane_1',
   height: 100,
   minHeight: 30,
   dragEnabled: true,
   gap: { top: 0.2, bottom: 0.1 },
   axisOptions: { scrollZoomEnabled: true }
-}, () => {})

overrideIndicator(override, paneId, callback)

typescript
(
-  override: {
-    name: string
-    shortName?: string
-    precision?: number
-    calcParams?: any[]
-    shouldOhlc?: boolean
-    shouldFormatBigNumber?: boolean
-    visible?: boolean
-    extendData?: any
-    series?: 'normal' | 'price' | 'volume'
-    figures?: Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => {
-        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
-        color?: string
-      }
-    }>
-    minValue?: number
-    maxValue?: number
-    styles?: object
-    calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
-    regenerateFigures?: (calcParms: any[]) => Array<{
-      key: string
-      title?: string
-      type?: string
-      baseValue?: number
-      styles?: (
-        data: object,
-        indicator: object,
-        defaultStyles: object
-      ) => {
-        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
-        color?: string
-      }
-    }>,
-    createTooltipDataSource?: (params: object) => {
-      name?: string
-      calcParamsText?: string
-      values?: Array<{
+}, () => {})

overrideIndicator(override, paneId, callback)

typescript
(
+  override: {
+    name: string
+    shortName?: string
+    precision?: number
+    calcParams?: any[]
+    shouldOhlc?: boolean
+    shouldFormatBigNumber?: boolean
+    visible?: boolean
+    extendData?: any
+    series?: 'normal' | 'price' | 'volume'
+    figures?: Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => {
+        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
+        color?: string
+      }
+    }>
+    minValue?: number
+    maxValue?: number
+    styles?: object
+    calc?: (dataList: KLineData[], indicator: object) => Promise<object[]> | object[]
+    regenerateFigures?: (calcParms: any[]) => Array<{
+      key: string
+      title?: string
+      type?: string
+      baseValue?: number
+      styles?: (
+        data: object,
+        indicator: object,
+        defaultStyles: object
+      ) => {
+        style?: 'solid' | 'dashed' | 'stroke' | 'fill' | 'stroke_fill'
+        color?: string
+      }
+    }>,
+    createTooltipDataSource?: (params: object) => {
+      name?: string
+      calcParamsText?: string
+      values?: Array<{
         title: string | {
           text: string
           color: string 
@@ -346,11 +347,11 @@
         }
       }>
     }
-    draw?: (params: object) => boolean
-  },
-  paneId?: string | null,
-  callback?: () => void
-) => void
(
+    draw?: (params: object) => boolean
+  },
+  paneId?: string | null,
+  callback?: () => void
+) => void
(
   override: {
     name: string
     shortName?: string
@@ -411,49 +412,49 @@
   },
   paneId?: string | null,
   callback?: () => void
-) => void

覆盖技术指标信息。

  • override 需要覆盖的一些参数
    • name 指标名,用于创建和操作的唯一标识
    • shortName 简短名字,用于显示
    • precision 精度
    • calcParams 计算参数
    • shouldOhlc 是否需要ohlc辅助图形
    • shouldFormatBigNumber 是否需要格式化大的数字。如1000转换成1k,1000000转换为1M等
    • visible 是否可见
    • extendData 扩展数据
    • series 指标系列,可选项有'normal','price'和'volume'
    • figures 图形配置
    • minValue 指定最小值
    • maxValue 指定最大值
    • styles 样式
    • calc 计算方法
    • regenerateFigures 重新生成图形信息方法
    • createTooltipDataSource 创建自定义提示信息方法
    • draw 自定义绘制方法
  • paneId 窗口id,缺省则设置所有
  • callback 成功回调

特殊的id

'candle_pane',主图的窗口id。

示例:

javascript
chart.overrideIndicator({
-  name: 'BOLL',
-  showName: 'BOLL'
-  calcParams: [20, 5.5],
-  precision: 4,
-  shouldOhlc: true,
-  shouldFormatBigNumber: false,
-  visible: true,
-  extendData: 2432435,
-  series: 'price',
-  figures: [],
-  minValue: null,
-  maxValue: null,
-  calc: () => [],
-  regenerateFigures: () => [],
-  draw: () => {},
-  styles: {
-  	bars:[{
-      style: 'fill,
-      borderStyle: 'solid,
-      borderSize: 1,
-      borderDashedValue: [2, 2],
-      upColor: '#26A69A',
-      downColor: '#EF5350',
-      noChangeColor: '#888888'
-    }],
-    lines: [{
-      size: 1,
-      style: 'solid',
-      dashedValue: [2, 2],
-      color: '#FF9600'
-    }],
-    circles: [{
-      style: 'fill,
-      borderStyle: 'solid,
-      borderSize: 1,
-      borderDashedValue: [2, 2],
-      upColor: '#26A69A',
-      downColor: '#EF5350',
-      noChangeColor: '#888888'
-    }]
-  }
-}, 'candle_pane', () => {})
chart.overrideIndicator({
+) => void

覆盖技术指标信息。

  • override 需要覆盖的一些参数
    • name 指标名,用于创建和操作的唯一标识
    • shortName 简短名字,用于显示
    • precision 精度
    • calcParams 计算参数
    • shouldOhlc 是否需要ohlc辅助图形
    • shouldFormatBigNumber 是否需要格式化大的数字。如1000转换成1k,1000000转换为1M等
    • visible 是否可见
    • extendData 扩展数据
    • series 指标系列,可选项有'normal','price'和'volume'
    • figures 图形配置
    • minValue 指定最小值
    • maxValue 指定最大值
    • styles 样式
    • calc 计算方法
    • regenerateFigures 重新生成图形信息方法
    • createTooltipDataSource 创建自定义提示信息方法
    • draw 自定义绘制方法
  • paneId 窗口id,缺省则设置所有
  • callback 成功回调

特殊的id

'candle_pane',主图的窗口id。

示例:

javascript
chart.overrideIndicator({
+  name: 'BOLL',
+  showName: 'BOLL'
+  calcParams: [20, 5.5],
+  precision: 4,
+  shouldOhlc: true,
+  shouldFormatBigNumber: false,
+  visible: true,
+  extendData: 2432435,
+  series: 'price',
+  figures: [],
+  minValue: null,
+  maxValue: null,
+  calc: () => [],
+  regenerateFigures: () => [],
+  draw: () => {},
+  styles: {
+  	bars:[{
+      style: 'fill,
+      borderStyle: 'solid,
+      borderSize: 1,
+      borderDashedValue: [2, 2],
+      upColor: '#26A69A',
+      downColor: '#EF5350',
+      noChangeColor: '#888888'
+    }],
+    lines: [{
+      size: 1,
+      style: 'solid',
+      dashedValue: [2, 2],
+      color: '#FF9600'
+    }],
+    circles: [{
+      style: 'fill,
+      borderStyle: 'solid,
+      borderSize: 1,
+      borderDashedValue: [2, 2],
+      upColor: '#26A69A',
+      downColor: '#EF5350',
+      noChangeColor: '#888888'
+    }]
+  }
+}, 'candle_pane', () => {})
chart.overrideIndicator({
   name: 'BOLL',
   showName: 'BOLL'
   calcParams: [20, 5.5],
@@ -495,76 +496,76 @@
       noChangeColor: '#888888'
     }]
   }
-}, 'candle_pane', () => {})

getIndicatorByPaneId(paneId, name)

typescript
(paneId?: string, name?: string) => object
(paneId?: string, name?: string) => object

根据窗口id获取技术指标信息。

  • paneId 窗口id,即调用createIndicator方法时返回的窗口标识,可缺省,缺省则返回所有。
  • name 技术指标名

特殊的id

'candle_pane',主图的窗口id。

removeIndicator(paneId, name)

typescript
(paneId: string, name?: string) => object
(paneId: string, name?: string) => object

移除技术指标。

  • paneId 窗口id,即调用createIndicator方法时返回的窗口标识
  • name 技术指标名,如果缺省,则会移除所有

特殊的id

'candle_pane',主图的窗口id。

createOverlay(value, paneId)

typescript
(
-  value: string | {
-    name: string
-    id?: string
-    groupId?: string
-    lock?: boolean
-    visible?: boolean
-    zLevel?: number
-    needDefaultPointFigure?: boolean
-    needDefaultXAxisFigure?: boolean
-    needDefaultYAxisFigure?: boolean
-    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
-    modeSensitivity?: number
-    points?: Array<{
-      timestamp?: number
-      dataIndex?: number
-      value?: number
-    }>
-    extendData?: any
-    styles?: object
-    onDrawStart?: (event: object) => boolean
-    onDrawing?: (event: object) => boolean
-    onDrawEnd?: (event: object) => boolean
-    onClick?: (event: object) => boolean
-    onDoubleClick?: (event: object) => boolean
-    onRightClick?: (event: object) => boolean
-    onPressedMoveStart?: (event: object) => boolean
-    onPressedMoving?: (event: object) => boolean
-    onPressedMoveEnd?: (event: object) => boolean
-    onMouseEnter?: (event: object) => boolean
-    onMouseLeave?: (event: object) => boolean
-    onRemoved?: (event: object) => boolean
-    onSelected?: (event: object) => boolean
-    onDeselected?: (event: object) => boolean
-  } | Array<string | {
-    name: string
-    id?: string
-    groupId?: string
-    lock?: boolean
-    visible?: boolean
-    zLevel?: number
-    needDefaultPointFigure?: boolean
-    needDefaultXAxisFigure?: boolean
-    needDefaultYAxisFigure?: boolean
-    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
-    modeSensitivity?: number
-    points?: Array<{
-      timestamp?: number
-      dataIndex?: number
-      value?: number
-    }>
-    extendData?: any
-    styles?: object
-    onDrawStart?: (event: object) => boolean
-    onDrawing?: (event: object) => boolean
-    onDrawEnd?: (event: object) => boolean
-    onClick?: (event: object) => boolean
-    onDoubleClick?: (event: object) => boolean
-    onRightClick?: (event: object) => boolean
-    onPressedMoveStart?: (event: object) => boolean
-    onPressedMoving?: (event: object) => boolean
-    onPressedMoveEnd?: (event: object) => boolean
-    onMouseEnter?: (event: object) => boolean
-    onMouseLeave?: (event: object) => boolean
-    onRemoved?: (event: object) => boolean
-    onSelected?: (event: object) => boolean
-    onDeselected?: (event: object) => boolean
-  }>,
-  paneId?: string
-) => string | null
(
+}, 'candle_pane', () => {})

getIndicatorByPaneId(paneId, name)

typescript
(paneId?: string, name?: string) => object
(paneId?: string, name?: string) => object

根据窗口id获取技术指标信息。

  • paneId 窗口id,即调用createIndicator方法时返回的窗口标识,可缺省,缺省则返回所有。
  • name 技术指标名

特殊的id

'candle_pane',主图的窗口id。

removeIndicator(paneId, name)

typescript
(paneId: string, name?: string) => object
(paneId: string, name?: string) => object

移除技术指标。

  • paneId 窗口id,即调用createIndicator方法时返回的窗口标识
  • name 技术指标名,如果缺省,则会移除所有

特殊的id

'candle_pane',主图的窗口id。

createOverlay(value, paneId)

typescript
(
+  value: string | {
+    name: string
+    id?: string
+    groupId?: string
+    lock?: boolean
+    visible?: boolean
+    zLevel?: number
+    needDefaultPointFigure?: boolean
+    needDefaultXAxisFigure?: boolean
+    needDefaultYAxisFigure?: boolean
+    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+    modeSensitivity?: number
+    points?: Array<{
+      timestamp?: number
+      dataIndex?: number
+      value?: number
+    }>
+    extendData?: any
+    styles?: object
+    onDrawStart?: (event: object) => boolean
+    onDrawing?: (event: object) => boolean
+    onDrawEnd?: (event: object) => boolean
+    onClick?: (event: object) => boolean
+    onDoubleClick?: (event: object) => boolean
+    onRightClick?: (event: object) => boolean
+    onPressedMoveStart?: (event: object) => boolean
+    onPressedMoving?: (event: object) => boolean
+    onPressedMoveEnd?: (event: object) => boolean
+    onMouseEnter?: (event: object) => boolean
+    onMouseLeave?: (event: object) => boolean
+    onRemoved?: (event: object) => boolean
+    onSelected?: (event: object) => boolean
+    onDeselected?: (event: object) => boolean
+  } | Array<string | {
+    name: string
+    id?: string
+    groupId?: string
+    lock?: boolean
+    visible?: boolean
+    zLevel?: number
+    needDefaultPointFigure?: boolean
+    needDefaultXAxisFigure?: boolean
+    needDefaultYAxisFigure?: boolean
+    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+    modeSensitivity?: number
+    points?: Array<{
+      timestamp?: number
+      dataIndex?: number
+      value?: number
+    }>
+    extendData?: any
+    styles?: object
+    onDrawStart?: (event: object) => boolean
+    onDrawing?: (event: object) => boolean
+    onDrawEnd?: (event: object) => boolean
+    onClick?: (event: object) => boolean
+    onDoubleClick?: (event: object) => boolean
+    onRightClick?: (event: object) => boolean
+    onPressedMoveStart?: (event: object) => boolean
+    onPressedMoving?: (event: object) => boolean
+    onPressedMoveEnd?: (event: object) => boolean
+    onMouseEnter?: (event: object) => boolean
+    onMouseLeave?: (event: object) => boolean
+    onRemoved?: (event: object) => boolean
+    onSelected?: (event: object) => boolean
+    onDeselected?: (event: object) => boolean
+  }>,
+  paneId?: string
+) => string | null
(
   value: string | {
     name: string
     id?: string
@@ -633,49 +634,49 @@
     onDeselected?: (event: object) => boolean
   }>,
   paneId?: string
-) => string | null

创建覆盖物,返回一个字符串类型的标识。

  • value 覆盖物名或者对象,当是对象时,参数和overrideOverlay一致
  • paneId 窗口id,可缺省

特殊的id

'candle_pane',主图的窗口id。

示例:

javascript
chart.createOverlay({
-  name: 'segment',
-  id: 'segment_1'
-  groupId: 'segment',
-  points: [
-    { timestamp: 1614171282000, value: 18987 },
-    { timestamp: 1614171202000, value: 16098 },
-  ],
-  styles: {
-    line: {
-      style: 'solid',
-      dashedValue: [2, 2]
-      color: '#f00',
-      size: 2
-    }
-  },
-  lock: false,
-  visible: true,
-  zLevel: 0,
-  mode: 'weak_magnet',
-  modeSensitivity: 8,
-  extendData: 'xxxxxxxx',
-  needDefaultPointFigure: false,
-  needDefaultXAxisFigure: false,
-  needDefaultYAxisFigure: false,
-  onDrawStart: function (event) { console.log(event) },
-  onDrawing: function (event) { console.log(event) },
-  onDrawEnd: function (event) { console.log(event) },
-  onClick: function (event) { console.log(event) },
-  onDoubleClick: function (event) { console.log(event) },
-  onRightClick: function (event) {
-    console.log(event)
+) => string | null

创建覆盖物,返回一个字符串类型的标识。

  • value 覆盖物名或者对象,当是对象时,参数和overrideOverlay一致
  • paneId 窗口id,可缺省

特殊的id

'candle_pane',主图的窗口id。

示例:

javascript
chart.createOverlay({
+  name: 'segment',
+  id: 'segment_1'
+  groupId: 'segment',
+  points: [
+    { timestamp: 1614171282000, value: 18987 },
+    { timestamp: 1614171202000, value: 16098 },
+  ],
+  styles: {
+    line: {
+      style: 'solid',
+      dashedValue: [2, 2]
+      color: '#f00',
+      size: 2
+    }
+  },
+  lock: false,
+  visible: true,
+  zLevel: 0,
+  mode: 'weak_magnet',
+  modeSensitivity: 8,
+  extendData: 'xxxxxxxx',
+  needDefaultPointFigure: false,
+  needDefaultXAxisFigure: false,
+  needDefaultYAxisFigure: false,
+  onDrawStart: function (event) { console.log(event) },
+  onDrawing: function (event) { console.log(event) },
+  onDrawEnd: function (event) { console.log(event) },
+  onClick: function (event) { console.log(event) },
+  onDoubleClick: function (event) { console.log(event) },
+  onRightClick: function (event) {
+    console.log(event)
     return false
   },
-  onMouseEnter: function (event) { console.log(event) },
-  onMouseLeave: function (event) { console.log(event) },
-  onPressedMoveStart: function (event) { console.log(event) },
-  onPressedMoving: function (event) { console.log(event) },
-  onPressedMoveEnd: function (event) { console.log(event) },
-  onRemoved: function (event) { console.log(event) },
-  onSelected: function (event) { console.log(event) },
-  onDeselected: function (event) { console.log(event) }
-})
chart.createOverlay({
+  onMouseEnter: function (event) { console.log(event) },
+  onMouseLeave: function (event) { console.log(event) },
+  onPressedMoveStart: function (event) { console.log(event) },
+  onPressedMoving: function (event) { console.log(event) },
+  onPressedMoveEnd: function (event) { console.log(event) },
+  onRemoved: function (event) { console.log(event) },
+  onSelected: function (event) { console.log(event) },
+  onDeselected: function (event) { console.log(event) }
+})
chart.createOverlay({
   name: 'segment',
   id: 'segment_1'
   groupId: 'segment',
@@ -717,42 +718,42 @@
   onRemoved: function (event) { console.log(event) },
   onSelected: function (event) { console.log(event) },
   onDeselected: function (event) { console.log(event) }
-})

getOverlayById(id)

typescript
(id: string) => object
(id: string) => object

根据id获取覆盖物信息。

  • id 调用createOverlay方法是返回的标识

overrideOverlay(override)

typescript
(
-  override: {
-    name: string
-    id?: string
-    groupId?: string
-    lock?: boolean
-    visible?: boolean
-    zLevel?: number
-    needDefaultPointFigure?: boolean
-    needDefaultXAxisFigure?: boolean
-    needDefaultYAxisFigure?: boolean
-    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
-    modeSensitivity?: number
-    points?: Array<{
-      timestamp?: number
-      dataIndex?: number
-      value?: number
-    }>
-    extendData?: any
-    styles?: object
-    onDrawStart?: (event: object) => boolean
-    onDrawing?: (event: object) => boolean
-    onDrawEnd?: (event: object) => boolean
-    onClick?: (event: object) => boolean
-    onDoubleClick?: (event: object) => boolean
-    onRightClick?: (event: object) => boolean
-    onPressedMoveStart?: (event: object) => boolean
-    onPressedMoving?: (event: object) => boolean
-    onPressedMoveEnd?: (event: object) => boolean
-    onMouseEnter?: (event: object) => boolean
-    onMouseLeave?: (event: object) => boolean
-    onRemoved?: (event: object) => boolean
-    onSelected?: (event: object) => boolean
-    onDeselected?: (event: object) => boolean
-  }
-) => string | null
(
+})

getOverlayById(id)

typescript
(id: string) => object
(id: string) => object

根据id获取覆盖物信息。

  • id 调用createOverlay方法是返回的标识

overrideOverlay(override)

typescript
(
+  override: {
+    name: string
+    id?: string
+    groupId?: string
+    lock?: boolean
+    visible?: boolean
+    zLevel?: number
+    needDefaultPointFigure?: boolean
+    needDefaultXAxisFigure?: boolean
+    needDefaultYAxisFigure?: boolean
+    mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+    modeSensitivity?: number
+    points?: Array<{
+      timestamp?: number
+      dataIndex?: number
+      value?: number
+    }>
+    extendData?: any
+    styles?: object
+    onDrawStart?: (event: object) => boolean
+    onDrawing?: (event: object) => boolean
+    onDrawEnd?: (event: object) => boolean
+    onClick?: (event: object) => boolean
+    onDoubleClick?: (event: object) => boolean
+    onRightClick?: (event: object) => boolean
+    onPressedMoveStart?: (event: object) => boolean
+    onPressedMoving?: (event: object) => boolean
+    onPressedMoveEnd?: (event: object) => boolean
+    onMouseEnter?: (event: object) => boolean
+    onMouseLeave?: (event: object) => boolean
+    onRemoved?: (event: object) => boolean
+    onSelected?: (event: object) => boolean
+    onDeselected?: (event: object) => boolean
+  }
+) => string | null
(
   override: {
     name: string
     id?: string
@@ -787,49 +788,49 @@
     onSelected?: (event: object) => boolean
     onDeselected?: (event: object) => boolean
   }
-) => string | null

覆盖已绘制的覆盖物。

  • override 需要覆盖的参数
    • name 覆盖物名,用于创建的唯一标识
    • id 覆盖物标识,如果id存在,则会以id为依据去覆盖
    • groupId 编组id
    • lock 是否锁定不让拖动
    • visible 是否可见
    • zLevel 绘制层级,值越大越靠前显示
    • needDefaultPointFigure 是否需要默认的点对应的图形
    • needDefaultXAxisFigure 是否需要默认的x轴上的图形
    • needDefaultYAxisFigure 是否需要默认的y轴上的图形
    • mode 模式,可选项有'normal','weak_magnet'和'strong_magnet'
    • modeSensitivity 模式灵敏度,仅 mode 是 weak_magnet 时有效
    • points 点信息
    • extendData 扩展数据
    • styles 样式
    • onDrawStart 开始绘制事件
    • onDrawing 绘制中事件
    • onDrawEnd 绘制结束事件
    • onClick 点击事件
    • onDoubleClick 双击事件
    • onRightClick 右击事件
    • onPressedMoveStart 按住开始移动事件
    • onPressedMoving 按住移动中事件
    • onPressedMoveEnd 按住移动结束事件
    • onMouseEnter 鼠标移入事件
    • onMouseLeave 鼠标移出事件
    • onRemoved 删除事件
    • onSelected 选中事件
    • onDeselected 取消选中事件

示例:

javascript
chart.overrideOverlay({
-  name: 'segment',
-  id: 'segment_1',
-  groupId: 'segment',
-  points: [
-    { timestamp: 1614171282000, value: 18987 },
-    { timestamp: 1614171202000, value: 16098 },
-  ],
-  styles: {
-    line: {
-      style: 'solid',
-      dashedValue: [2, 2]
-      color: '#f00',
-      size: 2
-    }
-  },
-  lock: false,
-  visible: true,
-  zLevel: 0,
-  mode: 'weak_magnet',
-  modeSensitivity: 8,
-  extendData: 'xxxxxxxx',
-  needDefaultPointFigure: false,
-  needDefaultXAxisFigure: false,
-  needDefaultYAxisFigure: false,
-  onDrawStart: function (event) { console.log(event) },
-  onDrawing: function (event) { console.log(event) },
-  onDrawEnd: function (event) { console.log(event) },
-  onClick: function (event) { console.log(event) },
-  onDoubleClick: function (event) { console.log(event) },
-  onRightClick: function (event) {
-    console.log(event)
+) => string | null

覆盖已绘制的覆盖物。

  • override 需要覆盖的参数
    • name 覆盖物名,用于创建的唯一标识
    • id 覆盖物标识,如果id存在,则会以id为依据去覆盖
    • groupId 编组id
    • lock 是否锁定不让拖动
    • visible 是否可见
    • zLevel 绘制层级,值越大越靠前显示
    • needDefaultPointFigure 是否需要默认的点对应的图形
    • needDefaultXAxisFigure 是否需要默认的x轴上的图形
    • needDefaultYAxisFigure 是否需要默认的y轴上的图形
    • mode 模式,可选项有'normal','weak_magnet'和'strong_magnet'
    • modeSensitivity 模式灵敏度,仅 mode 是 weak_magnet 时有效
    • points 点信息
    • extendData 扩展数据
    • styles 样式
    • onDrawStart 开始绘制事件
    • onDrawing 绘制中事件
    • onDrawEnd 绘制结束事件
    • onClick 点击事件
    • onDoubleClick 双击事件
    • onRightClick 右击事件
    • onPressedMoveStart 按住开始移动事件
    • onPressedMoving 按住移动中事件
    • onPressedMoveEnd 按住移动结束事件
    • onMouseEnter 鼠标移入事件
    • onMouseLeave 鼠标移出事件
    • onRemoved 删除事件
    • onSelected 选中事件
    • onDeselected 取消选中事件

示例:

javascript
chart.overrideOverlay({
+  name: 'segment',
+  id: 'segment_1',
+  groupId: 'segment',
+  points: [
+    { timestamp: 1614171282000, value: 18987 },
+    { timestamp: 1614171202000, value: 16098 },
+  ],
+  styles: {
+    line: {
+      style: 'solid',
+      dashedValue: [2, 2]
+      color: '#f00',
+      size: 2
+    }
+  },
+  lock: false,
+  visible: true,
+  zLevel: 0,
+  mode: 'weak_magnet',
+  modeSensitivity: 8,
+  extendData: 'xxxxxxxx',
+  needDefaultPointFigure: false,
+  needDefaultXAxisFigure: false,
+  needDefaultYAxisFigure: false,
+  onDrawStart: function (event) { console.log(event) },
+  onDrawing: function (event) { console.log(event) },
+  onDrawEnd: function (event) { console.log(event) },
+  onClick: function (event) { console.log(event) },
+  onDoubleClick: function (event) { console.log(event) },
+  onRightClick: function (event) {
+    console.log(event)
     return false
   },
-  onMouseEnter: function (event) { console.log(event) },
-  onMouseLeave: function (event) { console.log(event) },
-  onPressedMoveStart: function (event) { console.log(event) },
-  onPressedMoving: function (event) { console.log(event) },
-  onPressedMoveEnd: function (event) { console.log(event) },
-  onRemoved: function (event) { console.log(event) },
-  onSelected: function (event) { console.log(event) },
-  onDeselected: function (event) { console.log(event) }
-})
chart.overrideOverlay({
+  onMouseEnter: function (event) { console.log(event) },
+  onMouseLeave: function (event) { console.log(event) },
+  onPressedMoveStart: function (event) { console.log(event) },
+  onPressedMoving: function (event) { console.log(event) },
+  onPressedMoveEnd: function (event) { console.log(event) },
+  onRemoved: function (event) { console.log(event) },
+  onSelected: function (event) { console.log(event) },
+  onDeselected: function (event) { console.log(event) }
+})
chart.overrideOverlay({
   name: 'segment',
   id: 'segment_1',
   groupId: 'segment',
@@ -871,47 +872,47 @@
   onRemoved: function (event) { console.log(event) },
   onSelected: function (event) { console.log(event) },
   onDeselected: function (event) { console.log(event) }
-})

removeOverlay(remove)

typescript
(
-  remove: string | {
-    id?: string
-    groupId?: string
-    name?: string
-  }
-) => void
(
+})

removeOverlay(remove)

typescript
(
+  remove: string | {
+    id?: string
+    groupId?: string
+    name?: string
+  }
+) => void
(
   remove: string | {
     id?: string
     groupId?: string
     name?: string
   }
-) => void

移除图形。

  • id 调用createOverlay方法是返回的标识
  • groupId 编组id
  • name 覆盖物名称

删除一个html元素

  • paneId 窗口id,缺省则删除所有
  • htmlId 创建时候的id,可以是单个id,也可以是id组成的数组,缺省则删除对应窗口上所有的

scrollByDistance(distance, animationDuration)

typescript
(distance: number, animationDuration?: number) => void
(distance: number, animationDuration?: number) => void

滚动一定的距离。

  • distance 距离
  • animationDuration 动画时间,可以缺省,缺省则无动画

scrollToRealTime(animationDuration)

typescript
(distance: number, animationDuration?: number) => void
(distance: number, animationDuration?: number) => void

滚动到最初的位置。

  • animationDuration 动画时间,可以缺省,缺省则无动画

scrollToDataIndex(dataIndex, animationDuration)

typescript
(dataIndex: number, animationDuration?: number) => void
(dataIndex: number, animationDuration?: number) => void

滚动到指定的位置。

  • dataIndex 数据的索引
  • animationDuration 动画时间,可以缺省,缺省则无动画

scrollToTimestamp(timestamp, animationDuration)

typescript
(timestamp: number, animationDuration?: number) => void
(timestamp: number, animationDuration?: number) => void

滚动到指定时间戳。

  • timestamp 时间戳
  • animationDuration 动画时间,可以缺省,缺省则无动画

zoomAtCoordinate(scale, coordinate, animationDuration)

typescript
(
-  scale: number,
-  coordinate?: {
-    x: number
-    y: number
-  },
-  animationDuration?: number
-) => void
(
+) => void

移除图形。

  • id 调用createOverlay方法是返回的标识
  • groupId 编组id
  • name 覆盖物名称

删除一个html元素

  • paneId 窗口id,缺省则删除所有
  • htmlId 创建时候的id,可以是单个id,也可以是id组成的数组,缺省则删除对应窗口上所有的

scrollByDistance(distance, animationDuration)

typescript
(distance: number, animationDuration?: number) => void
(distance: number, animationDuration?: number) => void

滚动一定的距离。

  • distance 距离
  • animationDuration 动画时间,可以缺省,缺省则无动画

scrollToRealTime(animationDuration)

typescript
(distance: number, animationDuration?: number) => void
(distance: number, animationDuration?: number) => void

滚动到最初的位置。

  • animationDuration 动画时间,可以缺省,缺省则无动画

scrollToDataIndex(dataIndex, animationDuration)

typescript
(dataIndex: number, animationDuration?: number) => void
(dataIndex: number, animationDuration?: number) => void

滚动到指定的位置。

  • dataIndex 数据的索引
  • animationDuration 动画时间,可以缺省,缺省则无动画

scrollToTimestamp(timestamp, animationDuration)

typescript
(timestamp: number, animationDuration?: number) => void
(timestamp: number, animationDuration?: number) => void

滚动到指定时间戳。

  • timestamp 时间戳
  • animationDuration 动画时间,可以缺省,缺省则无动画

zoomAtCoordinate(scale, coordinate, animationDuration)

typescript
(
+  scale: number,
+  coordinate?: {
+    x: number
+    y: number
+  },
+  animationDuration?: number
+) => void
(
   scale: number,
   coordinate?: {
     x: number
     y: number
   },
   animationDuration?: number
-) => void

在某个坐标点缩放。

  • scale 缩放比例
  • coordinate 坐标点,可缺省,缺省则在图表中间位置缩放
  • animationDuration 动画时间,可以缺省,缺省则无动画

zoomAtDataIndex(scale, dataIndex, animationDuration)

typescript
(scale: number, dataIndex: number, animationDuration?: number) => void
(scale: number, dataIndex: number, animationDuration?: number) => void

在某个位置缩放。

  • scale 缩放比例
  • dataIndex 数据的索引
  • animationDuration 动画时间,可以缺省,缺省则无动画

zoomAtTimestamp(scale, timestamp, animationDuration)

typescript
(scale: number, timestamp: number, animationDuration?: number) => void
(scale: number, timestamp: number, animationDuration?: number) => void

在指定时间戳上缩放。

  • scale 缩放比例
  • timestamp 时间戳
  • animationDuration 动画时间,可以缺省,缺省则无动画

setPaneOptions(options)

typescript
(
-  options: {
-    id: string
-    height?: number
-    minHeight?: number
-    dragEnabled?: boolean
-    gap?: {
-      top?: number
-      bottom?: number
-    }
-    axisOptions?: {
-      scrollZoomEnabled?: boolean
-    }
-  }
-) => void
(
+) => void

在某个坐标点缩放。

  • scale 缩放比例
  • coordinate 坐标点,可缺省,缺省则在图表中间位置缩放
  • animationDuration 动画时间,可以缺省,缺省则无动画

zoomAtDataIndex(scale, dataIndex, animationDuration)

typescript
(scale: number, dataIndex: number, animationDuration?: number) => void
(scale: number, dataIndex: number, animationDuration?: number) => void

在某个位置缩放。

  • scale 缩放比例
  • dataIndex 数据的索引
  • animationDuration 动画时间,可以缺省,缺省则无动画

zoomAtTimestamp(scale, timestamp, animationDuration)

typescript
(scale: number, timestamp: number, animationDuration?: number) => void
(scale: number, timestamp: number, animationDuration?: number) => void

在指定时间戳上缩放。

  • scale 缩放比例
  • timestamp 时间戳
  • animationDuration 动画时间,可以缺省,缺省则无动画

setPaneOptions(options)

typescript
(
+  options: {
+    id: string
+    height?: number
+    minHeight?: number
+    dragEnabled?: boolean
+    gap?: {
+      top?: number
+      bottom?: number
+    }
+    axisOptions?: {
+      scrollZoomEnabled?: boolean
+    }
+  }
+) => void
(
   options: {
     id: string
     height?: number
@@ -925,53 +926,53 @@
       scrollZoomEnabled?: boolean
     }
   }
-) => void

设置窗口配置。

  • paneOptions 窗口配置信息,可缺省
    • id 窗口id
    • height 窗口高度,可缺省
    • minHeight 窗口最小高度,可缺省
    • dragEnbaled 窗口是否可以拖拽调整高度,可缺省
    • gap 边距
      • top 上边距,值小余1则是百分比
      • bottom 下边距,值小余1则是百分比
    • axisOptions
      • scrollZoomEnabled 轴上是否可以滚动缩放

特殊的id

'candle_pane',主图的窗口id。

示例:

javascript
chart.setPaneOptions({
-  id: 'pane_1',
-  height: 100,
-  minHeight: 3,
-  dragEnabled: true,
-  gap: { top: 0.2, bottom: 0.1 },
-  axisOptions: { scrollZoomEnabled: true }
-})
chart.setPaneOptions({
+) => void

设置窗口配置。

  • paneOptions 窗口配置信息,可缺省
    • id 窗口id
    • height 窗口高度,可缺省
    • minHeight 窗口最小高度,可缺省
    • dragEnbaled 窗口是否可以拖拽调整高度,可缺省
    • gap 边距
      • top 上边距,值小余1则是百分比
      • bottom 下边距,值小余1则是百分比
    • axisOptions
      • scrollZoomEnabled 轴上是否可以滚动缩放

特殊的id

'candle_pane',主图的窗口id。

示例:

javascript
chart.setPaneOptions({
+  id: 'pane_1',
+  height: 100,
+  minHeight: 3,
+  dragEnabled: true,
+  gap: { top: 0.2, bottom: 0.1 },
+  axisOptions: { scrollZoomEnabled: true }
+})
chart.setPaneOptions({
   id: 'pane_1',
   height: 100,
   minHeight: 3,
   dragEnabled: true,
   gap: { top: 0.2, bottom: 0.1 },
   axisOptions: { scrollZoomEnabled: true }
-})

executeAction(type, data)

typescript
(
-   type: 'onCrosshairChange',
-   data: any => void
-) => void
(
+})

executeAction(type, data)

typescript
(
+   type: 'onCrosshairChange',
+   data: any => void
+) => void
(
    type: 'onCrosshairChange',
    data: any => void
-) => void

执行图表动作

  • type 仅支持 'onCrosshairChange'
  • data 执行动作需要的数据

subscribeAction(type, callback)

typescript
(
-  type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
-  callback: (data?: any) => void
-) => void
(
+) => void

执行图表动作

  • type 仅支持 'onCrosshairChange'
  • data 执行动作需要的数据

subscribeAction(type, callback)

typescript
(
+  type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
+  callback: (data?: any) => void
+) => void
(
   type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
   callback: (data?: any) => void
-) => void

订阅图表动作。

  • type 可选项为'onZoom','onScroll','onVisibleRangeChange','onCandleBarClick', 'onTooltipIconClick','onCrosshairChange'和'onPaneDrag'
  • callback 是一个回调方法

unsubscribeAction(type, callback)

typescript
(
-  type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
-  callback?: (data?: any) => void
-) => void
(
+) => void

订阅图表动作。

  • type 可选项为'onZoom','onScroll','onVisibleRangeChange','onCandleBarClick', 'onTooltipIconClick','onCrosshairChange'和'onPaneDrag'
  • callback 是一个回调方法

unsubscribeAction(type, callback)

typescript
(
+  type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
+  callback?: (data?: any) => void
+) => void
(
   type: 'onZoom' | 'onScroll' | 'onVisibleRangeChange' | 'onCrosshairChange' | 'onCandleBarClick' | 'onTooltipIconClick' | 'onPaneDrag',
   callback?: (data?: any) => void
-) => void

取消订阅图表动作。

  • type 可选项为'onZoom','onScroll','onVisibleRangeChange','onCandleBarClick', 'onTooltipIconClick','onCrosshairChange'和'onPaneDrag'
  • callback 订阅时的回调方法,缺省则取消当前类型所有

convertToPixel(value, finder)

typescript
(
-  value: {
-    dataIndex?: number
-    timestamp?: number
-    value?: number
-  } | Array<{
-    dataIndex?: number
-    timestamp?: number
-    value?: number
-  }>,
-  finder: {
-    paneId?: string
-    absolute?: boolean
-  }
-) => { x: number?, y?: number } | Array<{ x?: number, y?: number }>
(
+) => void

取消订阅图表动作。

  • type 可选项为'onZoom','onScroll','onVisibleRangeChange','onCandleBarClick', 'onTooltipIconClick','onCrosshairChange'和'onPaneDrag'
  • callback 订阅时的回调方法,缺省则取消当前类型所有

convertToPixel(value, finder)

typescript
(
+  value: {
+    dataIndex?: number
+    timestamp?: number
+    value?: number
+  } | Array<{
+    dataIndex?: number
+    timestamp?: number
+    value?: number
+  }>,
+  finder: {
+    paneId?: string
+    absolute?: boolean
+  }
+) => { x: number?, y?: number } | Array<{ x?: number, y?: number }>
(
   value: {
     dataIndex?: number
     timestamp?: number
@@ -985,27 +986,27 @@
     paneId?: string
     absolute?: boolean
   }
-) => { x: number?, y?: number } | Array<{ x?: number, y?: number }>

将值转换成坐标。

  • value 需要转换的值,可以是当个对象,也可以是数组
    • dataIndex 数据索引,如果dataIndextimestamp同时存在,则依据索引转换
    • timestamp 时间戳
    • value 对应y轴的值
  • finder 过滤条件
    • paneId 窗口id
    • absolute 是否是绝对坐标,只作用于y轴

convertFromPixel(coordinate, finder)

typescript
(
-  coordinate: {
-    x?: number
-    y?: number
-  } | Array<{
-    x?: number
-    y?: number
-  },
-  finder: {
-    paneId?: string
-    absolute?: boolean
-  }
-) => {
-    dataIndex?: number
-    timestamp?: number
-    value?: number
-  } | Array<{
-    dataIndex?: number
-    timestamp?: number
-    value?: number
-  }>
(
+) => { x: number?, y?: number } | Array<{ x?: number, y?: number }>

将值转换成坐标。

  • value 需要转换的值,可以是当个对象,也可以是数组
    • dataIndex 数据索引,如果dataIndextimestamp同时存在,则依据索引转换
    • timestamp 时间戳
    • value 对应y轴的值
  • finder 过滤条件
    • paneId 窗口id
    • absolute 是否是绝对坐标,只作用于y轴

convertFromPixel(coordinate, finder)

typescript
(
+  coordinate: {
+    x?: number
+    y?: number
+  } | Array<{
+    x?: number
+    y?: number
+  },
+  finder: {
+    paneId?: string
+    absolute?: boolean
+  }
+) => {
+    dataIndex?: number
+    timestamp?: number
+    value?: number
+  } | Array<{
+    dataIndex?: number
+    timestamp?: number
+    value?: number
+  }>
(
   coordinate: {
     x?: number
     y?: number
@@ -1025,8 +1026,8 @@
     dataIndex?: number
     timestamp?: number
     value?: number
-  }>

将坐标转换成值。

  • coordinate 需要转换的值,可以是当个对象,也可以是数组
  • finder 过滤条件
    • paneId 窗口id
    • absolute 是否是绝对坐标,只作用于y轴

getConvertPictureUrl(includeOverlay, type, backgroundColor)

typescript
(includeOverlay?: boolean, type?: string, backgroundColor?: string) => string
(includeOverlay?: boolean, type?: string, backgroundColor?: string) => string

获取图表转换成图片后的图片url。

  • includeOverlay 是否需要包含浮层,可缺省
  • type 转换后的图片类型,类型是'png'、'jpeg'、'bmp'三种中的一种,可缺省,默认为'jpeg'
  • backgroundColor 背景色,可缺省,默认为'#FFFFFF'

resize()

typescript
() => void
() => void

调整图表大小,总是会填充容器大小。

注意

此方法会重新计算整个图表各个模块的大小,频繁调用可能会影响到性能,调用请谨慎。

Released under the Apache License V2.

- + }>

将坐标转换成值。

  • coordinate 需要转换的值,可以是当个对象,也可以是数组
  • finder 过滤条件
    • paneId 窗口id
    • absolute 是否是绝对坐标,只作用于y轴

getConvertPictureUrl(includeOverlay, type, backgroundColor)

typescript
(includeOverlay?: boolean, type?: string, backgroundColor?: string) => string
(includeOverlay?: boolean, type?: string, backgroundColor?: string) => string

获取图表转换成图片后的图片url。

  • includeOverlay 是否需要包含浮层,可缺省
  • type 转换后的图片类型,类型是'png'、'jpeg'、'bmp'三种中的一种,可缺省,默认为'jpeg'
  • backgroundColor 背景色,可缺省,默认为'#FFFFFF'

resize()

typescript
() => void
() => void

调整图表大小,总是会填充容器大小。

注意

此方法会重新计算整个图表各个模块的大小,频繁调用可能会影响到性能,调用请谨慎。

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/guide/overlay.html b/guide/overlay.html index e6be4881a..349e9968d 100644 --- a/guide/overlay.html +++ b/guide/overlay.html @@ -5,51 +5,52 @@ 覆盖物 | KLineChart - + - + - - - + + + - + + -
Skip to content
本页目录

覆盖物

本文档介绍了图表内置的覆盖物和如何自定义一个覆盖物。

内置覆盖物类型

horizontalRayLine, horizontalSegment, horizontalStraightLine, verticalRayLine, verticalSegment, verticalStraightLine, rayLine, segment, straightLine, priceLine, priceChannelLine, parallelStraightLine, fibonacciLine, simpleAnnotation, simpleTag

自定义覆盖物

自定义一个覆盖物,然后通过klinecharts.registerOverlay 全局添加,添加到图表即可和内置覆盖物一样去使用。

属性说明

typescript
{
+    
Skip to content

覆盖物

本文档介绍了图表内置的覆盖物和如何自定义一个覆盖物。

内置覆盖物类型

horizontalRayLine, horizontalSegment, horizontalStraightLine, verticalRayLine, verticalSegment, verticalStraightLine, rayLine, segment, straightLine, priceLine, priceChannelLine, parallelStraightLine, fibonacciLine, simpleAnnotation, simpleTag

自定义覆盖物

自定义一个覆盖物,然后通过klinecharts.registerOverlay 全局添加,添加到图表即可和内置覆盖物一样去使用。

属性说明

typescript
{
   // 名称,必须字段,作为覆盖物创建的唯一标识
-  name: string
+  name: string
 
   // 总共需要多少步操作才行绘制完成,非必须
-  totalStep?: number
+  totalStep?: number
 
   // 是否锁定,不触发事件,非必须
-  lock?: boolean
+  lock?: boolean
 
   // 是否可见
-  visible?: boolean
+  visible?: boolean
 
   // 绘制层级,值越大越靠前显示
-  zLevel?: number
+  zLevel?: number
 
   // 是否需要默认的点对应的图形,非必须
-  needDefaultPointFigure?: boolean
+  needDefaultPointFigure?: boolean
 
   // 是否需要默认的X轴上的图形,非必须
-  needDefaultXAxisFigure?: boolean
+  needDefaultXAxisFigure?: boolean
 
   // 是否需要默认的Y轴上的图形,非必须
-  needDefaultYAxisFigure?: boolean
+  needDefaultYAxisFigure?: boolean
 
   // 模式,可选项为`normal`,`weak_magnet`,`strong_magnet`,非必须
-  mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
+  mode?: 'normal' | 'weak_magnet' | 'strong_magnet'
 
   // 模式灵敏度,仅 mode 是 weak_magnet 时有效
-  modeSensitivity?: number
+  modeSensitivity?: number
 
   // 点信息,非必须
-  points?: Array<{
+  points?: Array<{
     // 时间戳
     timestamp: number
     // 数据索引
@@ -59,72 +60,72 @@
   }>,
 
   // 扩展数据,非必须
-  extendData?: any
+  extendData?: any
 
   // 样式,非必须,类型参与[样式]中的overlay
-  styles?: OverlayStyle
+  styles?: OverlayStyle
 
   // 创建点对应的图形,非必须
   createPointFigures: ({
     // 覆盖物实例
-    overlay: Overlay
+    overlay: Overlay
     // points对应的坐标信息
-    coordinates: Array<{
+    coordinates: Array<{
       x: number
       y: number
     }>
     // 窗口尺寸信息
-    bounding: {
+    bounding: {
       // 宽
-      width: number
+      width: number
       // 高
-      height: number
+      height: number
       // 距离左边距离
-      left: number
+      left: number
       // 距离右边距离
-      right: number
+      right: number
       // 距离顶部距离
-      top: number
+      top: number
       // 距离底部距离
-      bottom: number
+      bottom: number
     }
     // 蜡烛柱的尺寸信息
-    barSpace: {
+    barSpace: {
       // 蜡烛柱尺寸
-      bar: number
-      halfBar: number
+      bar: number
+      halfBar: number
       // 蜡烛柱不包含蜡烛柱之间间隙的尺寸
-      gapBar: number
-      halfGapBar: number
+      gapBar: number
+      halfGapBar: number
     },
     // 精度
     precision: {
       // 价格精度
-      price: number
+      price: number
       // 数量精度
-      volume: number
+      volume: number
     }
     // 千分符
-    thousandsSeparator: string
+    thousandsSeparator: string
     // 格式化日期和时间的对象的构造器,详情参阅 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat
-    dateTimeFormat: Intl.DateTimeFormat
+    dateTimeFormat: Intl.DateTimeFormat
     // 默认样式,即全局样式配置中的overlay,类型参与[样式]中的overlay
-    defaultStyles: OverlayStyle
+    defaultStyles: OverlayStyle
      // x轴组件,内置一些转换方法
-    xAxis: XAxis
+    xAxis: XAxis
     // y轴组件,内置一些转换方法
-    yAxis: YAxis
+    yAxis: YAxis
   }) => ({
     // 无特殊含义,可用于扩展字段
-    key?: string
+    key?: string
     // 图形类型,类型为klinecharts.getSupportFigures返回值中的一种
-    type: string
+    type: string
     // type对应的图形的属性
-    attrs: any | any[]
+    attrs: any | any[]
     // type对应的图形的样式
-    styles?: any
+    styles?: any
     // 是否忽略事件
-    ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
+    ignoreEvent?: boolean | OverlayFigureIgnoreEventType[]
   }) | Array<{
     key?: string
     type: string
@@ -134,19 +135,19 @@
   }>
 
   // 创建X轴上的图形,非必须,参数和返回值和`createPointFigures`一致
-  createXAxisFigures?: OverlayCreateFiguresCallback
+  createXAxisFigures?: OverlayCreateFiguresCallback
 
   // 创建Y轴上的图形,非必须,参数和返回值和`createPointFigures`一致
-  createYAxisFigures?: OverlayCreateFiguresCallback
+  createYAxisFigures?: OverlayCreateFiguresCallback
 
   // 处理在绘制过程中移动操作,可缺省,移动绘制过程中触发
-  performEventMoveForDrawing?: ({
+  performEventMoveForDrawing?: ({
     // 当前步骤
-    currentStep: number
+    currentStep: number
     // 模式
-    mode: 'normal' | 'weak_magnet' | 'strong_magnet'
+    mode: 'normal' | 'weak_magnet' | 'strong_magnet'
     // 点信息
-    points: Array<{
+    points: Array<{
       // 时间戳
       timestamp: number
       // 数据索引
@@ -155,56 +156,56 @@
       value?: number
     }>
     // 事件所在点的索引
-    performPointIndex
+    performPointIndex
     // 事件所在点的信息
-    performPoint
+    performPoint
   }) => void
 
   // 处理按住移动操作,可缺省,按住某个操作点移动过程中触发
   // 回调参数和`performEventMoveForDrawing`一致
-  performEventPressedMove?: (params: OverlayPerformEventParams) => void
+  performEventPressedMove?: (params: OverlayPerformEventParams) => void
 
   // 绘制开始回调事件,可缺省
-  onDrawStart?: (event: OverlayEvent) => boolean
+  onDrawStart?: (event: OverlayEvent) => boolean
 
   // 绘制过程中回调事件,可缺省
-  onDrawing?: (event: OverlayEvent) => boolean
+  onDrawing?: (event: OverlayEvent) => boolean
 
   // 绘制结束回调事件,可缺省
-  onDrawEnd?: (event: OverlayEvent) => boolean
+  onDrawEnd?: (event: OverlayEvent) => boolean
 
   // 点击回调事件,可缺省
-  onClick?: (event: OverlayEvent) => boolean
+  onClick?: (event: OverlayEvent) => boolean
 
   // 双击回调事件,可缺省
-  onDoubleClick?: (event: OverlayEvent) => boolean
+  onDoubleClick?: (event: OverlayEvent) => boolean
 
   // 右击回调事件,可缺省,需要返回一个boolean类型的值,如果返回true,内置的右击删除将无效
-  onRightClick?: (event: OverlayEvent) => boolean
+  onRightClick?: (event: OverlayEvent) => boolean
 
   // 按住拖动开始回调事件,可缺省
-  onPressedMoveStart?: (event: OverlayEvent) => boolean
+  onPressedMoveStart?: (event: OverlayEvent) => boolean
 
   // 按住拖动回调事件,可缺省  
-  onPressedMoving?: (event: OverlayEvent) => boolean
+  onPressedMoving?: (event: OverlayEvent) => boolean
 
   // 按住拖动结束回调事件,可缺省
-  onPressedMoveEnd: (event: OverlayEvent) => boolean
+  onPressedMoveEnd: (event: OverlayEvent) => boolean
 
   // 鼠标移入事件,可缺省
-  onMouseEnter?: (event: OverlayEvent) => boolean
+  onMouseEnter?: (event: OverlayEvent) => boolean
 
   // 鼠标移出事件,可缺省
-  onMouseLeave?: (event: OverlayEvent) => boolean
+  onMouseLeave?: (event: OverlayEvent) => boolean
 
   // 删除回调事件,可缺省
-  onRemoved?: (event: OverlayEvent) => boolean
+  onRemoved?: (event: OverlayEvent) => boolean
 
   // 选中回调事件,可缺省
-  onSelected?: (event: OverlayEvent) => boolean
+  onSelected?: (event: OverlayEvent) => boolean
 
   // 取消回调事件,可缺省
-  onDeselected?: (event: OverlayEvent) => boolean
+  onDeselected?: (event: OverlayEvent) => boolean
 }
{
   // 名称,必须字段,作为覆盖物创建的唯一标识
   name: string
@@ -401,19 +402,19 @@
   totalStep: 3,
 
   // 创建点对应的图形信息
-  createPointFigures: ({ coordinates }) => {
-    if (coordinates.length === 2) {
-      const xDis = Math.abs(coordinates[0].x - coordinates[1].x)
-      const yDis = Math.abs(coordinates[0].y - coordinates[1].y)
+  createPointFigures: ({ coordinates }) => {
+    if (coordinates.length === 2) {
+      const xDis = Math.abs(coordinates[0].x - coordinates[1].x)
+      const yDis = Math.abs(coordinates[0].y - coordinates[1].y)
       // 确定对应点生成的圆的坐标
-      const radius = Math.sqrt(xDis * xDis + yDis * yDis)
+      const radius = Math.sqrt(xDis * xDis + yDis * yDis)
       // 图表内置了基础图形'circle',可以直接使用
       return {
         key: 'sampleCircle',
         type: 'circle',
         attrs: {
-          ...coordinates[0],
-          r: radius
+          ...coordinates[0],
+          r: radius
         },
         styles: {
           // 选择边框且填充,其它选择使用默认样式
@@ -453,8 +454,8 @@
     }
     return []
   }
-}

这样一个自定义覆盖物就完成了。

Released under the Apache License V2.

- +}

这样一个自定义覆盖物就完成了。

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/guide/styles.html b/guide/styles.html index e8b646053..4c53a6390 100644 --- a/guide/styles.html +++ b/guide/styles.html @@ -5,20 +5,21 @@ 🎨 样式配置 | KLineChart - + - + - - - - + + + + - + + -
Skip to content
本页目录

🎨 样式配置

图表上看到的不管是点还是线,基本都可以自定义样式。可以通过图表方法init(ds, options)或者图表实例方法setStyles(styles)进行更改。

图解说明

1 grid.horizontal2 grid.vertical3 candle.bar4 candle.candle.priceMark.last.line5 candle.candle.priceMark.last.text6 candle.candle.priceMark.high7 candle.candle.priceMark.low8 candle.candle.tooltip9 indicator.ohlc10 indicator.lastValueMark11 indicator.tooltip12 xAxis.axisLine13 xAxis.tickLine14 xAxis.tickText15 yAxis.axisLine16 yAxis.tickLine17 yAxis.tickText18 separator19 crosshair.horizontal.line20 crosshair.horizontal.text21 crosshair.vertical.line22 crosshair.vertical.text23 overlay

默认完整配置

javascript
{
+    
Skip to content

🎨 样式配置

图表上看到的不管是点还是线,基本都可以自定义样式。可以通过图表方法init(ds, options)或者图表实例方法setStyles(styles)进行更改。

图解说明

1 grid.horizontal2 grid.vertical3 candle.bar4 candle.candle.priceMark.last.line5 candle.candle.priceMark.last.text6 candle.candle.priceMark.high7 candle.candle.priceMark.low8 candle.candle.tooltip9 indicator.ohlc10 indicator.lastValueMark11 indicator.tooltip12 xAxis.axisLine13 xAxis.tickLine14 xAxis.tickText15 yAxis.axisLine16 yAxis.tickLine17 yAxis.tickText18 separator19 crosshair.horizontal.line20 crosshair.horizontal.text21 crosshair.vertical.line22 crosshair.vertical.text23 overlay

默认完整配置

javascript
{
   // 网格线
   grid: {
     show: true,
@@ -1038,8 +1039,8 @@
       backgroundColor: '#1677FF'
     }
   }
-}

Released under the Apache License V2.

- +}

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/guide/v8-to-v9.html b/guide/v8-to-v9.html index a6889c49b..76a2e0263 100644 --- a/guide/v8-to-v9.html +++ b/guide/v8-to-v9.html @@ -5,20 +5,21 @@ 🛠️ 从 V8 到 V9 | KLineChart - + - + - - - + + + - + + -
Skip to content
本页目录

🛠️ 从 V8 到 V9

本文档将帮助你从 klinecharts 8.x 版本升级到 klinecharts 9.x 版本,如果你是 7.x 或者更老的版本,请先参考之前的升级文档升级到 8.x。

引入调整

不再区分klinecharts/index.blankklinecharts/index.simple,请统一使用import { ... } from 'klinecharts'

设计调整

shapeannotationtag合并成overlay,详情请查阅覆盖物

样式配置调整

  • 所有线的样式选项dash,更改为dasheddashValue更改为dashedValue
  • candle.tooltip.labelscandle.tooltip.values,合并为candle.tooltip.custom
  • xAxis.height变更为xAxis.sizexAxis.tickText.paddingTop变更为xAxis.tickText.marginStartxAxis.tickText.paddingBottom变更为xAxis.tickText.marginEnd
  • yAxis.height变更为yAxis.sizeyAxis.tickText.paddingTop变更为yAxis.tickText.marginStartyAxis.tickText.paddingBottom变更为yAxis.tickText.marginEnd
  • technicalIndicator.bar变更为indicator.barstechnicalIndicator.line变更为indicator.linestechnicalIndicator.circle变更为indicator.circles
  • 删除shapeannotationtag,请用overlay代替。

API调整

图表API

  • extension.addTechnicalIndicatorTemplate(template)变更为registerIndicator(template)
  • 删除extension.addShapeTemplate(template),请用registerOverlay(template)代替。

实例API

  • getDom({ paneId, position })变更为getDom(paneId, position),参数position选项变更为rootmainyAxis
  • getWidth()getHeight()合并成一个方法getSize(paneId, position)
  • setStyleOptions(styles)变更为setStyles(styles)
  • getStyleOptions()变更为getStyles()
  • setOffsetRightSpace(space)变更为setOffsetRightDistance(distance)
  • createTechnicalIndicator(value, isStack, paneOptions)变更为createIndicator(value, isStack, paneOptions)
  • overrideTechnicalIndicator(override, paneId)变更为overrideIndicator(override, paneId)
  • getTechnicalIndicatorByPaneId(paneId, name)变更为getIndicatorByPaneId(paneId, name)
  • removeTechnicalIndicator(paneId, name)变更为removeIndicator(paneId, name)
  • subscribeAction(type, callback)unsubscribeAction(type, callback),参数type选项变更为onZoomonScrollonCrosshairChangeonVisibleRangeChangeonPaneDrag
  • convertToPixel(value, finder)convertFromPixel(coordinate, finder),参数finder.absoluteYAxis变更为finder.absolute
  • 删除createShape(value, paneId)createAnnotation(annotation, paneId)createTag(tag, paneId),请用createOverlay(value, paneId)代替。
  • 删除removeShape(id)removeAnnotation(paneId, points)removeTag(paneId, tagId),请用removeOverlay(id)代替。
  • 删除setShapeOptions(options),请用overrideOverlay(override)代替。
  • 删除createHtml(html, paneId)removeHtml(paneId, htmlId),请通过getDom(paneId, position)获取到对应的dom后操作。
  • 删除getTechnicalIndicatorByPaneId(paneId, name)

图形辅助API

  • 所有的API都迁移至klinecharts.utils

自定义技术指标调整

  • 属性plots变更为figures,子项方法colorisStrokeisDashed合并成styles
  • 方法regeneratePlots(params)变更为regeneratefigures(params)
  • 方法calcTechnicalIndicator(kLineDataList, options)变更为calc(kLineDataList, indicator)
  • 方法createTooltipDataSource({ dataSource, viewport, crosshair, technicalIndicator, xAxis,yAxis, defaultStyles })变更为createTooltipDataSource({ kLineDataList, indicator, visibleRange, bounding, crosshair, defaultStyles, xAxis, yAxis }),返回值由[{ title: 'xxx', value: 'xxx', color: 'xxx' }, ...]变更为{ name: 'xxx', calcParamsText: 'xxx', values: [{ title: 'xxx', value: 'xxx', color: 'xxx' }, ...] }
  • 方法render({ ctx, dataSource, viewport, styles,xAxis, yAxis })变更为draw({ ctx, kLineDataList, indicator, visibleRange, bounding, barSpace, defaultStyles, xAxis, yAxis })
  • 删除属性shouldCheckParamCount

Released under the Apache License V2.

- +
Skip to content

🛠️ 从 V8 到 V9

本文档将帮助你从 klinecharts 8.x 版本升级到 klinecharts 9.x 版本,如果你是 7.x 或者更老的版本,请先参考之前的升级文档升级到 8.x。

引入调整

不再区分klinecharts/index.blankklinecharts/index.simple,请统一使用import { ... } from 'klinecharts'

设计调整

shapeannotationtag合并成overlay,详情请查阅覆盖物

样式配置调整

  • 所有线的样式选项dash,更改为dasheddashValue更改为dashedValue
  • candle.tooltip.labelscandle.tooltip.values,合并为candle.tooltip.custom
  • xAxis.height变更为xAxis.sizexAxis.tickText.paddingTop变更为xAxis.tickText.marginStartxAxis.tickText.paddingBottom变更为xAxis.tickText.marginEnd
  • yAxis.height变更为yAxis.sizeyAxis.tickText.paddingTop变更为yAxis.tickText.marginStartyAxis.tickText.paddingBottom变更为yAxis.tickText.marginEnd
  • technicalIndicator.bar变更为indicator.barstechnicalIndicator.line变更为indicator.linestechnicalIndicator.circle变更为indicator.circles
  • 删除shapeannotationtag,请用overlay代替。

API调整

图表API

  • extension.addTechnicalIndicatorTemplate(template)变更为registerIndicator(template)
  • 删除extension.addShapeTemplate(template),请用registerOverlay(template)代替。

实例API

  • getDom({ paneId, position })变更为getDom(paneId, position),参数position选项变更为rootmainyAxis
  • getWidth()getHeight()合并成一个方法getSize(paneId, position)
  • setStyleOptions(styles)变更为setStyles(styles)
  • getStyleOptions()变更为getStyles()
  • setOffsetRightSpace(space)变更为setOffsetRightDistance(distance)
  • createTechnicalIndicator(value, isStack, paneOptions)变更为createIndicator(value, isStack, paneOptions)
  • overrideTechnicalIndicator(override, paneId)变更为overrideIndicator(override, paneId)
  • getTechnicalIndicatorByPaneId(paneId, name)变更为getIndicatorByPaneId(paneId, name)
  • removeTechnicalIndicator(paneId, name)变更为removeIndicator(paneId, name)
  • subscribeAction(type, callback)unsubscribeAction(type, callback),参数type选项变更为onZoomonScrollonCrosshairChangeonVisibleRangeChangeonPaneDrag
  • convertToPixel(value, finder)convertFromPixel(coordinate, finder),参数finder.absoluteYAxis变更为finder.absolute
  • 删除createShape(value, paneId)createAnnotation(annotation, paneId)createTag(tag, paneId),请用createOverlay(value, paneId)代替。
  • 删除removeShape(id)removeAnnotation(paneId, points)removeTag(paneId, tagId),请用removeOverlay(id)代替。
  • 删除setShapeOptions(options),请用overrideOverlay(override)代替。
  • 删除createHtml(html, paneId)removeHtml(paneId, htmlId),请通过getDom(paneId, position)获取到对应的dom后操作。
  • 删除getTechnicalIndicatorByPaneId(paneId, name)

图形辅助API

  • 所有的API都迁移至klinecharts.utils

自定义技术指标调整

  • 属性plots变更为figures,子项方法colorisStrokeisDashed合并成styles
  • 方法regeneratePlots(params)变更为regeneratefigures(params)
  • 方法calcTechnicalIndicator(kLineDataList, options)变更为calc(kLineDataList, indicator)
  • 方法createTooltipDataSource({ dataSource, viewport, crosshair, technicalIndicator, xAxis,yAxis, defaultStyles })变更为createTooltipDataSource({ kLineDataList, indicator, visibleRange, bounding, crosshair, defaultStyles, xAxis, yAxis }),返回值由[{ title: 'xxx', value: 'xxx', color: 'xxx' }, ...]变更为{ name: 'xxx', calcParamsText: 'xxx', values: [{ title: 'xxx', value: 'xxx', color: 'xxx' }, ...] }
  • 方法render({ ctx, dataSource, viewport, styles,xAxis, yAxis })变更为draw({ ctx, kLineDataList, indicator, visibleRange, bounding, barSpace, defaultStyles, xAxis, yAxis })
  • 删除属性shouldCheckParamCount

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/guide/what-is-klinechart.html b/guide/what-is-klinechart.html index 7f5c44f48..f3697c073 100644 --- a/guide/what-is-klinechart.html +++ b/guide/what-is-klinechart.html @@ -5,20 +5,21 @@ 📃 介绍 | KLineChart - + - + - - - + + + - + + -
Skip to content
本页目录

📃 介绍

什么是 KLineChart?

KLineChart,是一款可高度自定义的专业级轻量金融图表。

特性

  • 📦 开箱即用:简单快速集成,基本零成本上手。
  • 🚀 轻量流畅:零依赖,Gzip压缩下仅40k。
  • 💪 功能强大:内置多种指标和画线模型。
  • 🎨 高可扩展:丰富的样式配置和API,功能扩展随心所欲。
  • 📱 移动端:支持移动端,一个图表,搞定多端。
  • 🛡 Typescript开发:提供完整的类型定义文件。

Released under the Apache License V2.

- +
Skip to content

📃 介绍

什么是 KLineChart?

KLineChart,是一款可高度自定义的专业级轻量金融图表。

特性

  • 📦 开箱即用:简单快速集成,基本零成本上手。
  • 🚀 轻量流畅:零依赖,Gzip压缩下仅40k。
  • 💪 功能强大:内置多种指标和画线模型。
  • 🎨 高可扩展:丰富的样式配置和API,功能扩展随心所欲。
  • 📱 移动端:支持移动端,一个图表,搞定多端。
  • 🛡 Typescript开发:提供完整的类型定义文件。

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/hashmap.json b/hashmap.json index 8bfe667af..e0efee110 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"en-us_guide_changelog.md":"9b314bb3","en-us_index.md":"99aef212","guide_changelog.md":"88d4c906","en-us_sponsor.md":"ac667b2d","en-us_guide_faq.md":"4989ad59","en-us_guide_feedback.md":"4016f8e9","en-us_guide_hot-key.md":"96b2e99c","en-us_guide_figure.md":"95649728","en-us_guide_getting-started.md":"e521916e","en-us_guide_i18n.md":"814f9348","en-us_guide_indicator.md":"f7abbc7a","en-us_guide_instance-api.md":"95079f70","en-us_guide_styles.md":"b78be64c","en-us_guide_overlay.md":"e334f87e","en-us_guide_v8-to-v9.md":"ffb86506","en-us_guide_what-is-klinechart.md":"eaf1a224","en-us_guide_environment.md":"d392da34","en-us_guide_datasource.md":"0056d771","guide_datasource.md":"be16e914","guide_environment.md":"9a326483","guide_faq.md":"29925f19","guide_feedback.md":"7e65642d","guide_getting-started.md":"81c4827e","en-us_guide_chart-api.md":"baa06226","guide_i18n.md":"8d969e9e","guide_indicator.md":"f0cedf56","guide_hot-key.md":"c7ed5c19","guide_chart-api.md":"96158c5f","guide_v8-to-v9.md":"5534cf2e","index.md":"9172ee84","guide_what-is-klinechart.md":"19278a28","sponsor.md":"03404be7","guide_figure.md":"61613297","guide_instance-api.md":"da542511","guide_overlay.md":"47a04cff","guide_styles.md":"3c2df31b"} +{"en-us_guide_i18n.md":"67fab868","en-us_guide_feedback.md":"00b7599e","en-us_guide_hot-key.md":"80c73542","en-us_guide_environment.md":"c403487c","en-us_guide_datasource.md":"f7ec9b53","en-us_guide_changelog.md":"521321fb","en-us_guide_faq.md":"cbf5bfe9","en-us_index.md":"4824d65b","en-us_guide_figure.md":"e43e3059","en-us_sponsor.md":"ceae9547","en-us_guide_getting-started.md":"ee2bf999","guide_environment.md":"4a1b1a7c","guide_faq.md":"e491e83b","en-us_guide_indicator.md":"e611bbfa","en-us_guide_what-is-klinechart.md":"8fa4756d","guide_changelog.md":"e6871db3","guide_feedback.md":"71640072","en-us_guide_v8-to-v9.md":"9b145c5e","guide_datasource.md":"22f0d15c","en-us_guide_overlay.md":"12c30866","guide_hot-key.md":"254d156b","guide_figure.md":"94958226","guide_i18n.md":"52b20843","guide_getting-started.md":"ba1c2e79","en-us_guide_chart-api.md":"4f93847d","guide_chart-api.md":"fc242e9b","guide_indicator.md":"918697af","en-us_guide_styles.md":"04ec5105","en-us_guide_instance-api.md":"80510bf9","guide_overlay.md":"24f819b4","guide_v8-to-v9.md":"95f9a2c6","sponsor.md":"d97f4f44","guide_what-is-klinechart.md":"2aa308a4","index.md":"7104b694","guide_instance-api.md":"717c14e7","guide_styles.md":"666131a3"} diff --git a/index.html b/index.html index 9d609d8db..114594e77 100644 --- a/index.html +++ b/index.html @@ -5,20 +5,21 @@ 可高度自定义的专业级轻量金融图表 | KLineChart - + - + - - - + + + - + + -
Skip to content

KLineChart

可高度自定义的专业级轻量金融图表

简单易用,轻量流畅,适用场景丰富的 Web 前端金融图表。

KLineChart

谁在使用

Released under the Apache License V2.

- +
Skip to content

KLineChart

可高度自定义的专业级轻量金融图表

简单易用,轻量流畅,适用场景丰富的 Web 前端金融图表。

KLineChart

谁在使用

Released under the Apache License V2.

+ \ No newline at end of file diff --git a/sponsor.html b/sponsor.html index 3cb633de9..4239064e8 100644 --- a/sponsor.html +++ b/sponsor.html @@ -5,21 +5,22 @@ ❤️ 赞助 | KLineChart - + - + - - + + - + - + + -
Skip to content
本页目录

❤️ 赞助

如果你觉得插件还不错,希望你能在GitHub点一个 🌟。如果能够打赏一杯 ☕️,那就真的太感谢了。

支付宝

微信支付

PayPal

加密货币

Released under the Apache License V2.

- +
Skip to content

❤️ 赞助

如果你觉得插件还不错,希望你能在 GitHub 点一个 🌟。如果能够打赏一杯 ☕️,那就真的太感谢了。

支付宝

微信支付

PayPal

加密货币

Released under the Apache License V2.

+ \ No newline at end of file