!function(){var lang={zh:{editDemo:"编辑示例",reset:"重置",enableInteraction:"开启交互",disableInteraction:"关闭交互"},en:{editDemo:"Edit",reset:"Reset",enableInteraction:"Enable interaction",disableInteraction:"Disable interaction"}}[window.EC_DEMO_LANG],configs={},myChart;_.each((location.search||"").substr(1).split("&"),function(n){n=n.split("=");configs[n[0]]=n[1]});var app={},name,gui,run=function(code){if(clearTimeout(app.timeTicket),clearInterval(app.timeTicket),app.config=null,myChart&&myChart.dispose(),myChart=echarts.init(document.getElementById("view-chart"),configs.theme,{renderer:configs.renderer||"canvas"}),eval(code),"object"==typeof option&&myChart.setOption(option,!0),app.config){gui=new dat.GUI,$(gui.domElement).css({position:"absolute",right:5,top:0,zIndex:1e3}),$(".right-container").append(gui.domElement);var configParameters=app.configParameters||{},name;for(name in app.config){var value=app.config[name];if("onChange"!==name&&"onFinishChange"!==name){var isColor=!1,controller;if(configParameters[name]&&(configParameters[name].options?controller=gui.add(app.config,name,configParameters[name].options):null!=configParameters[name].min&&(controller=gui.add(app.config,name,configParameters[name].min,configParameters[name].max))),"string"==typeof obj)try{var colorArr=echarts.color.parse(value),isColor=!!colorArr;isColor&&(value=echarts.color.stringify(colorArr,"rgba"))}catch(e){}controller=controller||gui[isColor?"addColor":"add"](app.config,name),app.config.onChange&&controller.onChange(app.config.onChange),app.config.onFinishChange&&controller.onFinishChange(app.config.onFinishChange)}}}},$editButton,$resetButton,maskEnabled,$toggleBtn,$mask;function enableMask(){$toggleBtn.html(lang.enableInteraction),$(document.body).append($mask),maskEnabled=!0}function disableMask(){$toggleBtn.html(lang.disableInteraction),$mask.remove(),maskEnabled=!1}configs.edit&&($editButton=$('<a class="btn btn-default btn-sm">'+lang.editDemo+"</a>").click(function(){window.open("./editor.html?c="+configs.c)}),$("#view-main .control-panel").append($editButton)),configs.reset&&($resetButton=$('<a class="btn btn-default btn-sm">'+lang.reset+"</a>").click(function(){run()}),$("#view-main .control-panel").append($resetButton)),configs.mask&&(maskEnabled=!0,$toggleBtn=$('<a id="view-toggle-interable" class="btn btn-default btn-sm">'+lang.enableInteraction+"</a>"),$mask=$('<div id="view-mask"></div>'),$("#view-main .control-panel").append($toggleBtn),$toggleBtn.click(function(){(maskEnabled?disableMask:enableMask)()}),enableMask()),configs.c&&$.ajax(window.CDN_PAY_ROOT_PATH+"/data/"+configs.c+".js?_v_="+CDN_PAY_VERSION,{dataType:"text",success:function(n){run(n)}}).fail(function(){}),$(window).resize(function(){myChart&&myChart.resize()})}();