(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{192:function(t,e,n){t.exports={}},199:function(t,e,n){t.exports={}},200:function(t,e,n){t.exports={}},201:function(t,e,n){t.exports={}},210:function(t,e,n){t.exports={}},213:function(t,e,n){"use strict";n(192)},230:function(t,e,n){"use strict";n(199)},231:function(t,e,n){"use strict";n(200)},239:function(t,e,n){"use strict";n(201)},299:function(t,e,n){"use strict";n(210)},301:function(t,e,n){var map={"./en/basics/download.md":[302,8],"./en/basics/help.md":[303,9],"./en/basics/import.md":[304,10],"./en/basics/inspiration.md":[305,11],"./en/basics/release-note/5-2-0.md":[306,12],"./en/basics/release-note/v5-feature.md":[307,13],"./en/basics/release-note/v5-upgrade-guide.md":[308,14],"./en/best-practices/aria.md":[309,15],"./en/best-practices/canvas-vs-svg.md":[310,16],"./en/best-practices/design/color-enhance.md":[311,17],"./en/best-practices/mobile.md":[312,18],"./en/best-practices/specification/bar/basic-bar.md":[313,19],"./en/best-practices/specification/bar/bi-directional-bar.md":[314,20],"./en/best-practices/specification/bar/grouped-bar.md":[315,21],"./en/best-practices/specification/bar/stacked-bar.md":[316,22],"./en/best-practices/specification/funnel.md":[317,23],"./en/best-practices/specification/gauge.md":[318,24],"./en/best-practices/specification/line/area.md":[319,25],"./en/best-practices/specification/line/basic-line.md":[320,26],"./en/best-practices/specification/line/stacked-area.md":[321,27],"./en/best-practices/specification/pie/basic-pie.md":[322,28],"./en/best-practices/specification/radar.md":[323,29],"./en/best-practices/specification/scatter/bubble.md":[324,30],"./en/best-practices/specification/scatter/scatter.md":[325,31],"./en/concepts/axis.md":[326,32],"./en/concepts/chart-size.md":[327,33],"./en/concepts/coordinate.md":[328,34],"./en/concepts/data-transform.md":[329,35],"./en/concepts/dataset.md":[330,36],"./en/concepts/event.md":[331,37],"./en/concepts/legend.md":[332,38],"./en/concepts/options.md":[333,39],"./en/concepts/series.md":[334,40],"./en/concepts/style.md":[335,41],"./en/concepts/tooltip.md":[336,42],"./en/concepts/visual-map.md":[337,43],"./en/get-started.md":[338,44],"./en/how-to/chart-types/bar/bar-race.md":[339,45],"./en/how-to/chart-types/bar/basic-bar.md":[340,46],"./en/how-to/chart-types/bar/polar-bar.md":[341,47],"./en/how-to/chart-types/bar/stacked-bar.md":[342,48],"./en/how-to/chart-types/bar/waterfall.md":[343,49],"./en/how-to/chart-types/line/area-line.md":[344,50],"./en/how-to/chart-types/line/basic-line.md":[345,51],"./en/how-to/chart-types/line/smooth-line.md":[346,52],"./en/how-to/chart-types/line/stacked-line.md":[347,53],"./en/how-to/chart-types/line/step-line.md":[348,54],"./en/how-to/chart-types/pie/basic-pie.md":[349,55],"./en/how-to/chart-types/pie/doughnut.md":[350,56],"./en/how-to/chart-types/pie/rose.md":[351,57],"./en/how-to/chart-types/scatter/basic-scatter.md":[352,58],"./en/how-to/cross-platform/server.md":[353,59],"./en/how-to/data/drilldown.md":[354,60],"./en/how-to/data/dynamic-data.md":[355,61],"./en/how-to/interaction/drag.md":[356,62],"./en/how-to/label/rich-text.md":[357,63],"./en/meta/edit-guide.md":[358,64],"./zh/basics/download.md":[359,65],"./zh/basics/help.md":[360,66],"./zh/basics/import.md":[361,67],"./zh/basics/inspiration.md":[362,68],"./zh/basics/release-note/5-2-0.md":[363,69],"./zh/basics/release-note/v5-feature.md":[364,70],"./zh/basics/release-note/v5-upgrade-guide.md":[365,71],"./zh/basics/resource.md":[366,72],"./zh/best-practices/aria.md":[367,73],"./zh/best-practices/canvas-vs-svg.md":[368,74],"./zh/best-practices/design/color-enhance.md":[369,75],"./zh/best-practices/mobile.md":[370,76],"./zh/best-practices/specification/bar/basic-bar.md":[371,77],"./zh/best-practices/specification/bar/bi-directional-bar.md":[372,78],"./zh/best-practices/specification/bar/grouped-bar.md":[373,79],"./zh/best-practices/specification/bar/stacked-bar.md":[374,80],"./zh/best-practices/specification/funnel.md":[375,81],"./zh/best-practices/specification/gauge.md":[376,82],"./zh/best-practices/specification/line/area.md":[377,83],"./zh/best-practices/specification/line/basic-line.md":[378,84],"./zh/best-practices/specification/line/stacked-area.md":[379,85],"./zh/best-practices/specification/pie/basic-pie.md":[380,86],"./zh/best-practices/specification/radar.md":[381,87],"./zh/best-practices/specification/scatter/bubble.md":[382,88],"./zh/best-practices/specification/scatter/scatter.md":[383,89],"./zh/concepts/axis.md":[384,90],"./zh/concepts/chart-size.md":[385,91],"./zh/concepts/coordinate.md":[386,92],"./zh/concepts/data-transform.md":[387,93],"./zh/concepts/dataset.md":[388,94],"./zh/concepts/event.md":[389,95],"./zh/concepts/legend.md":[390,96],"./zh/concepts/options.md":[391,97],"./zh/concepts/series.md":[392,98],"./zh/concepts/style.md":[393,99],"./zh/concepts/tooltip.md":[394,100],"./zh/concepts/visual-map.md":[395,101],"./zh/get-started.md":[396,102],"./zh/how-to/chart-types/bar/bar-race.md":[397,103],"./zh/how-to/chart-types/bar/basic-bar.md":[398,104],"./zh/how-to/chart-types/bar/polar-bar.md":[399,105],"./zh/how-to/chart-types/bar/stacked-bar.md":[400,106],"./zh/how-to/chart-types/bar/waterfall.md":[401,107],"./zh/how-to/chart-types/line/area-line.md":[402,108],"./zh/how-to/chart-types/line/basic-line.md":[403,109],"./zh/how-to/chart-types/line/smooth-line.md":[404,110],"./zh/how-to/chart-types/line/stacked-line.md":[405,111],"./zh/how-to/chart-types/line/step-line.md":[406,112],"./zh/how-to/chart-types/pie/basic-pie.md":[407,113],"./zh/how-to/chart-types/pie/doughnut.md":[408,114],"./zh/how-to/chart-types/pie/rose.md":[409,115],"./zh/how-to/chart-types/scatter/basic-scatter.md":[410,116],"./zh/how-to/connect.md":[411,117],"./zh/how-to/cross-platform/baidu-app.md":[412,118],"./zh/how-to/cross-platform/server.md":[413,119],"./zh/how-to/cross-platform/wechat-app.md":[414,120],"./zh/how-to/data/drilldown.md":[415,121],"./zh/how-to/data/dynamic-data.md":[416,122],"./zh/how-to/interaction/drag.md":[417,123],"./zh/how-to/label/rich-text.md":[418,124],"./zh/how-to/mobile.md":[419,125],"./zh/meta/edit-guide.md":[420,126],"./zh/meta/writing.md":[421,127]};function c(t){if(!n.o(map,t))return Promise.resolve().then((function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}));var e=map[t],c=e[0];return n.e(e[1]).then((function(){return n(c)}))}c.keys=function(){return Object.keys(map)},c.id=301,t.exports=c},423:function(t,e,n){"use strict";n.r(e);var c=n(2),o=(n(21),n(36),n(103),n(0)),r=n.n(o),l=n(187),d=(n(211),n(212)),h=(n(140),n(102)),m=Object(l.c)({props:{width:{type:[String,Number],default:"100%"},height:{type:[String,Number],default:"350"},src:String},setup:function(t,e){var n=Object(l.a)((function(){return h.a.exampleViewPath.replace("${lang}",e.root.$i18n.locale)+t.src})),c=Object(l.f)("");return{finalSrc:c,visibilityChanged:function(t){t&&(c.value=n.value)}}}}),v=n(7),f=Object(v.a)(m,(function(){var t=this,e=t.$createElement;return(t._self._c||e)("iframe",{directives:[{name:"observe-visibility",rawName:"v-observe-visibility",value:t.visibilityChanged,expression:"visibilityChanged"}],attrs:{width:t.width||200,height:t.height||200,src:t.finalSrc}})}),[],!1,null,null,null).exports,z=(n(37),r.a.extend({props:{type:{type:String,default:"info",validator:function(t){return["info","success","warning","danger"].includes(t)}}}})),w=(n(213),Object(v.a)(z,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("blockquote",{class:"md-alert md-alert-"+t.type},[n("p",[t._t("default")],2)])}),[],!1,null,"a47f983e",null).exports),y=(n(16),n(214)),O=(n(215),n(216)),k=(n(193),n(194),n(195),n(27),n(28),n(22),n(60),{});var C=n(217),_=n(218),H=n.n(_),x=n(188),j=n(15);function S(){var t={},e={},n=1;function c(t,c){var o,time,l=(o=t,time=c,h.getZr().animation.animate({val:0},{loop:!1}).when(time,{val:1}).during((function(){h.getZr().wakeUp()})).done((function(){r.a.nextTick(o)})).start());return e[n]=l,n++}function o(t,c){var o,time,l=(o=t,time=c,h.getZr().animation.animate({val:0},{loop:!0}).when(time,{val:1}).during((function(t,e){h.getZr().wakeUp(),1===e&&r.a.nextTick(o)})).start());return e[n]=l,n++}function l(t){var n=e[t];n&&(h.getZr().animation.removeAnimator(n),delete e[t])}function d(t){l(t)}var h,m=[];return{resize:function(){h&&h.resize()},dispose:function(){h&&(h.dispose(),h=null)},getDataURL:function(){return h.getDataURL({pixelRatio:2,excludeComponents:["toolbox"]})},getOption:function(){return h.getOption()},getInstance:function(){return h},pause:function(){h&&h.getZr().animation.pause()},resume:function(){h&&h.getZr().animation.resume()},run:function(n,code,r){var v,f,z;r=r||{},h||(h=echarts.init(n,r.darkMode?"dark":"",{renderer:r.renderer,useDirtyRect:r.useDirtyRect}),f=(v=h).on,z=v.setOption,v.on=function(t){var e=f.apply(v,arguments);return m.push(t),e},v.setOption=function(){return z.apply(this,arguments)}),function(){for(var t in e)e.hasOwnProperty(t)&&l(t)}(),function(t){m.forEach((function(e){t&&t.off(e)})),m.length=0}(h),t.config=null;var option=new Function("myChart","app","setTimeout","setInterval","clearTimeout","clearInterval","var option;\n"+code+"\nreturn option;")(h,t,c,o,l,d);if(option&&"object"===Object(j.a)(option)){var w=+new Date;h.setOption(option,!0),+new Date-w}}}}var P=n(229),E=n.n(P),$=Object(l.c)({components:{},props:{source:{type:String}},setup:function(t){var e=Object(l.f)(null),n=Object(l.f)(!1);return Object(l.d)((function(){new E.a(e.value,{text:function(e){return t.source}}).on("success",(function(t){t.clearSelection(),n.value=!0,window.setTimeout((function(){n.value=!1}),2e3)}))})),{clipboardChecked:n,copyButton:e}}}),W=(n(230),Object(v.a)($,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{ref:"copyButton",staticClass:"clipboard"},[t.clipboardChecked?n("svg",{staticClass:"h-6 w-6",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"}},[n("path",{attrs:{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"}})]):n("svg",{staticClass:"h-6 w-6",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"}},[n("svg",{staticClass:"h-6 w-6",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"}},[n("path",{attrs:{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3"}})])])])}),[],!1,null,"479657ca",null).exports);function R(){return"undefined"==typeof echarts?(t=["https://cdn.jsdelivr.net/npm/echarts/dist/echarts.js"],Promise.all(t.map((function(t){return"string"==typeof t?{url:t,type:t.match(/\.css$/)?"css":"js"}:t})).map((function(t){if(k[t.url])return k[t.url];var e=new Promise((function(e,n){if("js"===t.type){var script=document.createElement("script");script.src=t.url,script.async=!1,script.onload=function(){e(null)},script.onerror=function(){n()},document.body.appendChild(script)}else if("css"===t.type){var link=document.createElement("link");link.rel="stylesheet",link.href=t.url,link.onload=function(){e(null)},link.onerror=function(){n()},document.body.appendChild(link)}}));return k[t.url]=e,e})))).then((function(){})):Promise.resolve();var t}var M=Object(l.c)({components:{PrismEditor:y.a,CodeBlockCopyClipboard:W},props:{lang:{type:String,default:"js"},code:{type:String},layout:{type:String,default:"tb",validator:function(t){return["lr","tb","rl","bt"].includes(t)}}},setup:function(t,e){var n,c=Object(l.f)(x.a(t.code)),o=Object(l.f)(null);function r(){n&&n.resize()}var d=H()((function(){R().then((function(){n||(Object(C.a)(Object(l.g)(o),r),n=S());try{Object(l.g)(o)&&n.run(Object(l.g)(o),Object(l.g)(c))}catch(t){console.error(t)}}))}),500,{trailing:!0});return Object(l.h)(c,(function(){d()})),Object(l.e)((function(){Object(C.b)(Object(l.g)(o),r)})),{innerCode:c,previewContainer:o,highlighter:function(code){return Object(O.highlight)(code,O.languages[t.lang]||O.languages.js)},visibilityChanged:function(t){t?n?n.resume():d():n&&n.pause()}}}}),N=(n(231),Object(v.a)(M,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.innerCode?n("div",{directives:[{name:"observe-visibility",rawName:"v-observe-visibility",value:t.visibilityChanged,expression:"visibilityChanged"}],class:"md-live layout-"+t.layout},[n("div",{staticClass:"md-live-editor"},[n("div",{staticClass:"md-live-editor-container"},[n("prism-editor",{attrs:{highlight:t.highlighter},model:{value:t.innerCode,callback:function(e){t.innerCode=e},expression:"innerCode"}})],1),t._v(" "),n("div",{staticClass:"md-live-tag"},[t._v("live")]),t._v(" "),n("code-block-copy-clipboard",{attrs:{source:t.innerCode}})],1),t._v(" "),n("div",{ref:"previewContainer",staticClass:"md-live-preview"})]):t._e()}),[],!1,null,null,null).exports),D=n(232),T=n.n(D),L=(n(233),n(234),n(235),n(236),n(237),n(238),/^(diff)-([\w-]+)/i);var B=Object(l.c)({components:{CodeBlockCopyClipboard:W},props:{lang:{type:String,default:"js"},code:{type:String},lineHighlights:String,fileName:String},setup:function(t,e){var n=Object(l.f)(x.a(t.code)),c=Object(l.a)((function(){return function(t,e){var n="",c=(t=t||"").match(L);c&&(t=c[2],n=T.a.languages.diff),t="vue"===t?"html":t,n||(n=T.a.languages[t]);var o=c?"diff-".concat(t):t,code=n?T.a.highlight(e,n,o):e;return t&&n||(t="text",code=code.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")),{lang:t,code:code}}(t.lang,n.value)}));return{rawCode:n,highlightResult:c}}}),U=(n(239),Object(v.a)(B,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"md-code-block"},[n("div",{staticClass:"nuxt-content-highlight"},[n("pre",{class:"language-"+t.highlightResult.lang+" line-numbers"},[n("code",{domProps:{innerHTML:t._s(t.highlightResult.code)}})])]),t._v(" "),t.fileName?n("span",{staticClass:"filename"},[t._v(t._s(t.fileName))]):t._e(),t._v(" "),n("code-block-copy-clipboard",{attrs:{source:t.rawCode}})],1)}),[],!1,null,null,null).exports),Z=(n(240),Object(l.c)({props:{link:String},setup:function(t){return{fullLink:Object(l.a)((function(){return h.a.optionPath+t.link}))}}})),I=Object(v.a)(Z,(function(){var t=this,e=t.$createElement;return(t._self._c||e)("a",{attrs:{href:t.fullLink,target:"_blank"}},[t._v(t._s(t.link))])}),[],!1,null,null,null).exports;r.a.use(l.b),r.a.component("md-example",f),r.a.component("md-alert",w),r.a.component("md-live",N),r.a.component("md-code-block",U),r.a.component("md-option",I),r.a.directive("observe-visibility",d.a);var A=n(242),V=n.n(A),F=n(298),G={"contents/zh/meta/edit-guide.md":["Ovilia","pissang"],"contents/zh/how-to/label/rich-text.md":["pissang"],"contents/zh/how-to/interaction/drag.md":["pissang"],"contents/zh/how-to/data/dynamic-data.md":["Ovilia","pissang"],"contents/zh/how-to/data/drilldown.md":["Hansz00","Ovilia","pissang"],"contents/zh/how-to/cross-platform/wechat-app.md":["Ovilia","pissang"],"contents/zh/how-to/cross-platform/server.md":["Ovilia","pissang"],"contents/zh/how-to/cross-platform/baidu-app.md":["Ovilia","pissang"],"contents/zh/how-to/connect.md":["Ovilia","pissang"],"contents/zh/how-to/chart-types/scatter/basic-scatter.md":["Ovilia","Wdingding","pissang"],"contents/zh/how-to/chart-types/pie/rose.md":["Ovilia","pissang"],"contents/zh/how-to/chart-types/pie/doughnut.md":["Hansz00","Ovilia","pissang"],"contents/zh/how-to/chart-types/pie/basic-pie.md":["Hansz00","Ovilia","pissang"],"contents/zh/how-to/chart-types/line/step-line.md":["Ovilia","pissang"],"contents/zh/how-to/chart-types/line/stacked-line.md":["Ovilia","pissang"],"contents/zh/how-to/chart-types/line/smooth-line.md":["Ovilia","pissang"],"contents/zh/how-to/chart-types/line/basic-line.md":["Hansz00","Ovilia","pissang"],"contents/zh/how-to/chart-types/line/area-line.md":["Ovilia","pissang"],"contents/zh/how-to/chart-types/bar/waterfall.md":["Ovilia","pissang"],"contents/zh/how-to/chart-types/bar/stacked-bar.md":["Ovilia","pissang"],"contents/zh/how-to/chart-types/bar/polar-bar.md":["Ovilia","pissang"],"contents/zh/how-to/chart-types/bar/basic-bar.md":["Ovilia","pissang"],"contents/zh/how-to/chart-types/bar/bar-race.md":["Ovilia","pissang"],"contents/zh/get-started.md":["Ovilia","pissang"],"contents/zh/concepts/visual-map.md":["Ovilia","pissang"],"contents/zh/concepts/tooltip.md":["Ovilia"],"contents/zh/concepts/style.md":["pissang"],"contents/zh/concepts/series.md":["Ovilia"],"contents/zh/concepts/options.md":["Ovilia"],"contents/zh/concepts/legend.md":["Ovilia","pissang","yufeng04"],"contents/zh/concepts/event.md":["100pah","Ovilia","huanghan01","pissang","plainheart"],"contents/zh/concepts/dataset.md":["100pah","Ovilia","huanghan01","pissang"],"contents/zh/concepts/data-transform.md":["100pah","pissang"],"contents/zh/concepts/coordinate.md":["Ovilia"],"contents/zh/concepts/chart-size.md":["Ovilia","pissang"],"contents/zh/concepts/axis.md":["Ovilia","huanghan01","pissang","plainheart","yufeng04"],"contents/zh/best-practices/specification/scatter/scatter.md":["Hansz00","Wdingding","pissang"],"contents/zh/best-practices/specification/scatter/bubble.md":["Wdingding","pissang"],"contents/zh/best-practices/specification/radar.md":["Hansz00","Wdingding","pissang"],"contents/zh/best-practices/specification/pie/basic-pie.md":["100pah","Wdingding","pissang"],"contents/zh/best-practices/specification/line/stacked-area.md":["Wdingding","pissang"],"contents/zh/best-practices/specification/line/basic-line.md":["Hansz00","Wdingding","pissang"],"contents/zh/best-practices/specification/line/area.md":["Hansz00","Wdingding","pissang"],"contents/zh/best-practices/specification/gauge.md":["Hansz00","Wdingding","pissang"],"contents/zh/best-practices/specification/funnel.md":["Wdingding","pissang"],"contents/zh/best-practices/specification/bar/stacked-bar.md":["Wdingding","pissang"],"contents/zh/best-practices/specification/bar/grouped-bar.md":["Hansz00","Wdingding","pissang"],"contents/zh/best-practices/specification/bar/bi-directional-bar.md":["Ovilia","Wdingding","pissang"],"contents/zh/best-practices/specification/bar/basic-bar.md":["Hansz00","Wdingding","pissang"],"contents/zh/best-practices/mobile.md":["Hansz00","Ovilia","pissang"],"contents/zh/best-practices/design/color-enhance.md":["Hansz00","Wdingding","pissang"],"contents/zh/best-practices/canvas-vs-svg.md":["100pah","Ovilia","pissang"],"contents/zh/best-practices/aria.md":["Ovilia","pissang"],"contents/zh/basics/resource.md":["Ovilia","pissang"],"contents/zh/basics/release-note/v5-upgrade-guide.md":["pissang"],"contents/zh/basics/release-note/v5-feature.md":["pissang"],"contents/zh/basics/release-note/5-2-0.md":["Ovilia","pissang"],"contents/zh/basics/inspiration.md":["Ovilia","pissang"],"contents/zh/basics/import.md":["pissang"],"contents/zh/basics/help.md":["100pah","Ovilia","pissang","plainheart"],"contents/zh/basics/download.md":["100pah","Ovilia","pissang"],"contents/en/posts.yml":["Ovilia","pissang"],"contents/en/meta/edit-guide.md":["Ovilia","pissang"],"contents/en/how-to/label/rich-text.md":["pissang"],"contents/en/how-to/interaction/drag.md":["pissang"],"contents/en/how-to/data/dynamic-data.md":["Hansz00","Ovilia","pissang"],"contents/en/how-to/data/drilldown.md":["Hansz00","Ovilia","pissang"],"contents/en/how-to/cross-platform/server.md":["pissang"],"contents/en/how-to/chart-types/scatter/basic-scatter.md":["Hansz00","pissang"],"contents/en/how-to/chart-types/pie/rose.md":["Hansz00","Ovilia","pissang"],"contents/en/how-to/chart-types/pie/doughnut.md":["pissang"],"contents/en/how-to/chart-types/pie/basic-pie.md":["Hansz00","pissang"],"contents/en/how-to/chart-types/line/step-line.md":["Hansz00","pissang"],"contents/en/how-to/chart-types/line/stacked-line.md":["Hansz00","Ovilia","pissang"],"contents/en/how-to/chart-types/line/smooth-line.md":["Hansz00","pissang"],"contents/en/how-to/chart-types/line/basic-line.md":["Hansz00","pissang"],"contents/en/how-to/chart-types/line/area-line.md":["Hank","Hansz00","pissang"],"contents/en/how-to/chart-types/bar/waterfall.md":["Hansz00","Ovilia","pissang"],"contents/en/how-to/chart-types/bar/stacked-bar.md":["Hansz00","pissang"],"contents/en/how-to/chart-types/bar/polar-bar.md":["Hansz00","pissang"],"contents/en/how-to/chart-types/bar/basic-bar.md":["Hank","Hansz00","pissang"],"contents/en/how-to/chart-types/bar/bar-race.md":["Hansz00","Ovilia","pissang"],"contents/en/get-started.md":["Ovilia","pissang","plainheart"],"contents/en/concepts/visual-map.md":["pissang"],"contents/en/concepts/tooltip.md":["Ovilia","huanghan01"],"contents/en/concepts/style.md":["pissang"],"contents/en/concepts/series.md":["Ovilia","huanghan01"],"contents/en/concepts/options.md":["Ovilia","huanghan01"],"contents/en/concepts/legend.md":["huanghan01","pissang"],"contents/en/concepts/event.md":["100pah","Ovilia","huanghan01","pissang"],"contents/en/concepts/dataset.md":["100pah","Ovilia","huanghan01","pissang"],"contents/en/concepts/data-transform.md":["100pah","pissang"],"contents/en/concepts/coordinate.md":["Ovilia","huanghan01"],"contents/en/concepts/chart-size.md":["huanghan01","pissang"],"contents/en/concepts/axis.md":["huanghan01","pissang"],"contents/en/best-practices/specification/scatter/scatter.md":["Hansz00","pissang"],"contents/en/best-practices/specification/scatter/bubble.md":["Hansz00","pissang"],"contents/en/best-practices/specification/radar.md":["Hansz00","pissang"],"contents/en/best-practices/specification/pie/basic-pie.md":["Hansz00","pissang"],"contents/en/best-practices/specification/line/stacked-area.md":["Hansz00","pissang"],"contents/en/best-practices/specification/line/basic-line.md":["Hansz00","pissang"],"contents/en/best-practices/specification/line/area.md":["Hansz00","pissang"],"contents/en/best-practices/specification/gauge.md":["Hansz00","pissang"],"contents/en/best-practices/specification/funnel.md":["Hansz00","pissang"],"contents/en/best-practices/specification/bar/stacked-bar.md":["Hansz00","pissang"],"contents/en/best-practices/specification/bar/grouped-bar.md":["Hansz00","pissang"],"contents/en/best-practices/specification/bar/bi-directional-bar.md":["Hansz00","pissang"],"contents/en/best-practices/specification/bar/basic-bar.md":["Hansz00","pissang"],"contents/en/best-practices/mobile.md":["Hansz00","Ovilia","pissang"],"contents/en/best-practices/design/color-enhance.md":["Hansz00","pissang"],"contents/en/best-practices/canvas-vs-svg.md":["100pah","Hansz00","Ovilia","pissang"],"contents/en/best-practices/aria.md":["Hansz00","Ovilia","pissang"],"contents/en/basics/release-note/v5-upgrade-guide.md":["pissang"],"contents/en/basics/release-note/v5-feature.md":["pissang"],"contents/en/basics/release-note/5-2-0.md":["Ovilia","pissang"],"contents/en/basics/inspiration.md":["pissang","plainheart"],"contents/en/basics/import.md":["pissang"],"contents/en/basics/help.md":["pissang"],"contents/en/basics/download.md":["Ovilia","pissang"],"contents/.prettierrc":["pissang"],"contents/zh/posts.yml":["Ovilia","pissang"]};n(139);var J=Object(l.c)({props:{path:String},setup:function(t){return{contributors:Object(l.a)((function(){return G["contents/".concat(t.path||"",".md")]})),sourcePath:Object(l.a)((function(){return(e=t.path).endsWith(".md")||(e+=".md"),n&&(e+="#".concat(decodeURIComponent(n))),"https://github.com/".concat(h.a.gitRepo,"/tree/master/contents/").concat(e);var e,n}))}}}),K=(n(299),Object(v.a)(J,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"post-contributors"},[n("h3",[n("span",{staticClass:"inline-block align-middle"},[t._v("本文贡献者")]),t._v(" "),n("a",{staticClass:"inline-block align-middle text-sm",attrs:{target:"_blank",href:t.sourcePath,title:"编辑本文"}},[n("svg",{staticClass:"h-8 w-8 inline-block align-middle",attrs:{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"}},[n("path",{attrs:{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"}})]),t._v(" "),n("span",{staticClass:"inline-block align-middle"},[t._v("在 GitHub 上编辑本页")])])]),t._v(" "),t.contributors&&t.contributors.length?n("div",{staticClass:"post-contributors-list"},t._l(t.contributors,(function(e){return n("a",{key:e,staticClass:"post-contributor",attrs:{href:"https://github.com/"+e,target:"_blank"}},[n("img",{attrs:{alt:e,src:"https://avatars.githubusercontent.com/"+e+"?size=60"}}),t._v(" "),n("span",[t._v(t._s(e))])])})),0):t._e()])}),[],!1,null,null,null).exports),Q={functional:!0,props:{content:String},render:function(t,e){return t({template:"<article>"+e.props.content+"</article>"})}},X=n(300),Y=n.n(X);function tt(t){return t.replace(/^```(\w+?)\s+live\s*({.*?})?\s*?\n([\s\S]+?)^```/gm,(function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"js",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"{}",code=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";e=e.trim(),n=n.trim()||"{}";var c=x.b(code.trim(),!0);return'<md-live lang="'.concat(e,'" code="\'').concat(c,'\'" v-bind="').concat(n,'" />')}))}function et(t){return t.replace(/^```(\w+?)\s*({.*?})?\s*?\n([\s\S]+?)^```/gm,(function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"js",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",code=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";e=e.trim();var c=x.b(code.trim(),!0);return'<md-code-block lang="'.concat(e,'" code="\'').concat(c,"'\" line-highlights=\"'").concat(n,"'\" />")}))}function nt(t,e){return["optionPath","mainSitePath","exampleViewPath","exampleEditorPath"].forEach((function(p){var n=h.a[p].replace("${lang}",e);t=t.replace(new RegExp("\\$\\{"+p+"\\}","g"),n)})),t=t.replace(/\$\{lang\}/g,e)}var st={components:{Contributors:K,PostContent:Q},data:function(){return{toc:[]}},mounted:function(){var t,e=this;this.toc=[];for(var s,n=(null===(t=this.$el.querySelector(".post-inner"))||void 0===t?void 0:t.querySelectorAll(" h2,h3"))||[],i=0;i<n.length;i++){var title=n[i].innerText;this.toc.push({title:title,depth:+n[i].nodeName.replace(/\D/g,""),id:(s=title,encodeURIComponent(String(s).trim().toLowerCase().replace(/\s+/g,"-")))})}setTimeout((function(){e._lazyload=new Y.a({elements_selector:"img[data-src], iframe[data-src]",threshold:300})}))},destroyed:function(){this._lazyload&&this._lazyload.destroy()},head:function(){return{meta:[{hid:"docsearch:language",name:"docsearch:language",content:this.$i18n.locale}]}},asyncData:function(t){return Object(c.a)(regeneratorRuntime.mark((function e(){var c,o,r,l,content,d;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c=t.params,o=t.i18n,r="".concat(o.locale,"/").concat(c.pathMatch),e.next=4,n(301)("./".concat(r,".md"));case 4:return l=e.sent,content=nt(et(tt(l.default)),o.locale),d=V()({html:!0,linkify:!0}).use(F.a,{permalink:!1,permalinkAfter:!0,permalinkSymbol:"#",permalinkClass:"permalink"}).use((function(t){var e=t.renderer.rules.image;t.renderer.rules.image=function(t,n,c,o,r){var l=t[n],d=l.attrGet("src");return l.attrPush(["data-src",d]),l.attrSet("src",""),e(t,n,c,o,r)}})),e.abrupt("return",{html:d.render(content),postPath:r});case 8:case"end":return e.stop()}}),e)})))()}},at=Object(v.a)(st,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("div",{staticClass:"post-inner"},[t.toc.length?n("div",{staticClass:"table-of-contents"},[n("h4",{staticClass:"toc-container-header"},[t._v(t._s(t.$t("inThisPage")))]),t._v(" "),n("ul",t._l(t.toc,(function(link){return n("li",{key:link.id,class:{toc2:2===link.depth,toc3:3===link.depth}},[n("NuxtLink",{attrs:{to:"#"+link.id}},[t._v(t._s(link.title))])],1)})),0)]):t._e(),t._v(" "),n("div",{staticClass:"nuxt-content"},[n("post-content",{attrs:{content:t.html}})],1)]),t._v(" "),n("contributors",{attrs:{path:t.postPath}})],1)}),[],!1,null,null,null);e.default=at.exports}}]);