From 110a6063b96973b103a21114308b53ff875b3a78 Mon Sep 17 00:00:00 2001 From: "LAPTOP-SB56SG4Q\\86185" Date: Tue, 22 Feb 2022 10:29:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=BC=80=E6=BA=90=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=9D=90=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 +- lib/finekit-10.0.jar | Bin 0 -> 235895 bytes plugin.xml | 19 + .../party/jsdggac/CustomChartConfig.java | 396 +++++++++++++++ .../third/party/jsdggac/CustomChartType.java | 60 +++ .../third/party/jsdggac/CustomChartUI.java | 63 +++ .../party/jsdggac/CustomGanttDataFactory.java | 198 ++++++++ .../party/jsdggac/UIComboBoxWithNone.java | 39 ++ .../third/party/jsdggac/color/ColorUtils.java | 197 ++++++++ .../CustomGanttColumnFieldCollection.java | 37 ++ .../data/CustomGanttDataCellFieldsPane.java | 55 +++ .../data/CustomGanttDataSetFieldsPane.java | 57 +++ .../party/jsdggac/ui/ColorSectionPane.java | 59 +++ .../party/jsdggac/ui/ColorSeriesConfPane.java | 251 ++++++++++ .../party/jsdggac/ui/ColorSettingPane.java | 46 ++ .../party/jsdggac/ui/CustomFRFontPane.java | 461 ++++++++++++++++++ .../party/jsdggac/ui/CustomGanttTypePane.java | 49 ++ .../party/jsdggac/ui/CustomMultiTabPane.java | 72 +++ .../jsdggac/ui/CustomStyleContentPane.java | 47 ++ .../party/jsdggac/ui/CustomStylePane.java | 33 ++ .../jsdggac/ui/CylinderWidthConfPane.java | 75 +++ .../jsdggac/ui/DisplayScaleConfPane.java | 51 ++ .../ui/spinner/CustomUIBoundSpinner.java | 45 ++ .../jsdggac/ui/spinner/CustomUISpinner.java | 399 +++++++++++++++ .../plugin/third/party/jsdggac/images/bbb.png | Bin 0 -> 197335 bytes .../plugin/third/party/jsdggac/images/ccc.png | Bin 0 -> 143056 bytes .../third/party/jsdggac/images/chart_icon.png | Bin 0 -> 334 bytes .../third/party/jsdggac/images/chart_type.png | Bin 0 -> 504 bytes .../party/jsdggac/images/chart_type_demo.png | Bin 0 -> 7471 bytes .../plugin/third/party/jsdggac/web/common.css | 0 .../jsdggac/web/customGanttPlusWrapper.js | 65 +++ .../third/party/jsdggac/web/custom_map.js | 65 +++ .../party/jsdggac/web/echarts-adapter.js | 7 + .../third/party/jsdggac/web/echarts-gl.min.js | 1 + .../third/party/jsdggac/web/echarts.min.js | 45 ++ 实现方案.txt | 1 + 36 files changed, 2898 insertions(+), 2 deletions(-) create mode 100644 lib/finekit-10.0.jar create mode 100644 plugin.xml create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/CustomChartConfig.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/CustomChartType.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/CustomChartUI.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/CustomGanttDataFactory.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/UIComboBoxWithNone.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/color/ColorUtils.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/data/CustomGanttColumnFieldCollection.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/data/CustomGanttDataCellFieldsPane.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/data/CustomGanttDataSetFieldsPane.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/ui/ColorSectionPane.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/ui/ColorSeriesConfPane.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/ui/ColorSettingPane.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomFRFontPane.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomGanttTypePane.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomMultiTabPane.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomStyleContentPane.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomStylePane.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/ui/CylinderWidthConfPane.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/ui/DisplayScaleConfPane.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/ui/spinner/CustomUIBoundSpinner.java create mode 100644 src/main/java/com/fr/plugin/third/party/jsdggac/ui/spinner/CustomUISpinner.java create mode 100644 src/main/resources/com/fr/plugin/third/party/jsdggac/images/bbb.png create mode 100644 src/main/resources/com/fr/plugin/third/party/jsdggac/images/ccc.png create mode 100644 src/main/resources/com/fr/plugin/third/party/jsdggac/images/chart_icon.png create mode 100644 src/main/resources/com/fr/plugin/third/party/jsdggac/images/chart_type.png create mode 100644 src/main/resources/com/fr/plugin/third/party/jsdggac/images/chart_type_demo.png create mode 100644 src/main/resources/com/fr/plugin/third/party/jsdggac/web/common.css create mode 100644 src/main/resources/com/fr/plugin/third/party/jsdggac/web/customGanttPlusWrapper.js create mode 100644 src/main/resources/com/fr/plugin/third/party/jsdggac/web/custom_map.js create mode 100644 src/main/resources/com/fr/plugin/third/party/jsdggac/web/echarts-adapter.js create mode 100644 src/main/resources/com/fr/plugin/third/party/jsdggac/web/echarts-gl.min.js create mode 100644 src/main/resources/com/fr/plugin/third/party/jsdggac/web/echarts.min.js create mode 100644 实现方案.txt diff --git a/README.md b/README.md index 26851b8..8c7ed7f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ -# open-JSD-6602 +# open-JSD-6602 热力图 -JSD-6602 热力图 \ No newline at end of file +JSD-6602 热力图\ +免责说明:该源码为第三方爱好者提供,不保证源码和方案的可靠性,也不提供任何形式的源码教学指导和协助!\ +仅作为开发者学习参考使用!禁止用于任何商业用途!\ +为保护开发者隐私,开发者信息已隐去!若原开发者希望公开自己的信息,可联系hugh处理。 \ No newline at end of file diff --git a/lib/finekit-10.0.jar b/lib/finekit-10.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..19d504ab8688df935b9db1100f95c3d7bc0fe9ea GIT binary patch literal 235895 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

v1Z;D1voC=0r+UG! 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 RZr0uWV?;!LDuE + + com.fr.plugin.third.party.jsdggac + + yes + 0.6 + 10.0 + 2019-01-01 + fr.open + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/CustomChartConfig.java b/src/main/java/com/fr/plugin/third/party/jsdggac/CustomChartConfig.java new file mode 100644 index 0000000..93b5437 --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/CustomChartConfig.java @@ -0,0 +1,396 @@ +package com.fr.plugin.third.party.jsdggac; + +import com.fanruan.api.report.chart.BaseChartWithData; +import com.fanruan.api.util.AssistKit; +import com.fanruan.api.util.IOKit; +import com.fanruan.api.util.StringKit; +import com.fr.base.chart.cross.FormulaProcessor; +import com.fr.base.chart.result.WebChartIDInfo; +import com.fr.chart.ChartWebPara; +import com.fr.chart.ChartWebParaProvider; +import com.fr.chartx.data.field.ColumnField; +import com.fr.general.GeneralUtils; +import com.fr.json.JSONArray; +import com.fr.json.JSONObject; +import com.fr.plugin.context.PluginContexts; +import com.fr.plugin.third.party.jsdggac.data.CustomGanttColumnFieldCollection; +import com.fr.stable.xml.XMLPrintWriter; +import com.fr.stable.xml.XMLableReader; +import com.fr.web.core.SessionPoolManager; +import com.fr.web.core.TemplateSessionIDInfo; + +import java.awt.*; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + + +public class CustomChartConfig extends BaseChartWithData { + private static final String ID = "CUSTOM_HEAT_MAP_CHART_JSDGGAC"; + + private double originX = 0; + private double originY = 0; + + private double originDiagonalX = 0; + private double originDiagonalY = 0; + + public double getOriginX() { + return originX; + } + + public void setOriginX(double originX) { + this.originX = originX; + } + + public double getOriginY() { + return originY; + } + + public void setOriginY(double originY) { + this.originY = originY; + } + + public double getOriginDiagonalX() { + return originDiagonalX; + } + + public void setOriginDiagonalX(double originDiagonalX) { + this.originDiagonalX = originDiagonalX; + } + + public double getOriginDiagonalY() { + return originDiagonalY; + } + + public void setOriginDiagonalY(double originDiagonalY) { + this.originDiagonalY = originDiagonalY; + } + + @Override + protected Image designImage(int width, int height, int resolution, ChartWebParaProvider chartWebPara) { + return IOKit.readImageWithCache("com/fr/plugin/third/party/jsdggac/images/chart_type_demo.png"); + } + + @Override + protected Image exportImage(int width, int height, int resolution, ChartWebParaProvider chartWebPara) { + return null; + } + + @Override + public CustomChartConfig clone() throws CloneNotSupportedException { + CustomChartConfig result = (CustomChartConfig) super.clone(); + result.setOriginX(this.getOriginX()); + result.setOriginY(this.getOriginY()); + result.setOriginDiagonalX(this.getOriginDiagonalX()); + result.setOriginDiagonalY(this.getOriginDiagonalY()); + return result; + } + + @Override + public int hashCode() { + return super.hashCode() + AssistKit.hashCode(this.getOriginX()) + AssistKit.hashCode(this.getOriginY()) + AssistKit.hashCode(this.getOriginDiagonalX()) + + AssistKit.hashCode(this.getOriginDiagonalY()) + ; + } + + @Override + public boolean equals(Object ob) { + return super.equals(ob) + && ob instanceof CustomChartConfig + && AssistKit.equals(this.getOriginX(), ((CustomChartConfig) ob).getOriginX()) + && AssistKit.equals(this.getOriginY(), ((CustomChartConfig) ob).getOriginY()) + && AssistKit.equals(this.getOriginDiagonalX(), ((CustomChartConfig) ob).getOriginDiagonalX()) + && AssistKit.equals(this.getOriginDiagonalY(), ((CustomChartConfig) ob).getOriginDiagonalY()) + ; + } + + @Override + public JSONObject createAttributeConfig(ChartWebParaProvider chartWebPara) { + JSONObject jsonObject = super.createAttributeConfig(chartWebPara); + jsonObject.put("dataStatus", false); + if (!PluginContexts.currentContext().isAvailable()) { + return jsonObject; + } + if (isDatasEmpty()) { + return jsonObject; + } + + JSONObject mapConfigJson = new JSONObject(); + mapConfigJson.put("originX", getOriginX()); + mapConfigJson.put("originY", getOriginY()); + mapConfigJson.put("originDiagonalX", getOriginDiagonalX()); + mapConfigJson.put("originDiagonalY", getOriginDiagonalY()); + jsonObject.put("mapConfig", mapConfigJson); + + //jsonObject.put("coordinates", createCoordinatesContent()); + jsonObject.put("datas", createDatas()); + jsonObject.put("dataStatus", true); + return jsonObject; + } + + + @Override + public void dealFormula(FormulaProcessor formulaProcessor) { + super.dealFormula(formulaProcessor); + } + + @Override + public String getID() { + return ID; + } + + @Override + public void readAttr(XMLableReader xmLableReader) { + super.readAttr(xmLableReader); + setOriginX(xmLableReader.getAttrAsDouble("originX", 10)); + if (getOriginX() <= 0) { + setOriginX(10); + } + setOriginY(xmLableReader.getAttrAsDouble("originY", 0)); + setOriginDiagonalX(xmLableReader.getAttrAsDouble("originDiagonalX", 0)); + setOriginDiagonalY(xmLableReader.getAttrAsDouble("originDiagonalY", 0)); + } + + @Override + public void writeAttr(XMLPrintWriter xmlPrintWriter) { + super.writeAttr(xmlPrintWriter); + xmlPrintWriter.attr("originX", getOriginX()); + xmlPrintWriter.attr("originY", getOriginY()); + xmlPrintWriter.attr("originDiagonalX", getOriginDiagonalX()); + xmlPrintWriter.attr("originDiagonalY", getOriginDiagonalY()); + } + + + private String createCoordinatesContent() { + /* + [[[[0, 0],[1200, 0],[1200, 800],[0, 800]]]] + */ + String content = "[[[[" + getOriginX() + ", " + getOriginY() + "],[" + getOriginDiagonalX() + "," + getOriginY() + "],[" + getOriginDiagonalX() + ", " + getOriginDiagonalY() + "],[" + getOriginX() + ", " + getOriginDiagonalY() + "]]]]"; + return content; + } + + private JSONArray createDatas() { + JSONArray datasJson = new JSONArray(); + if (isDatasEmpty()) { + return datasJson; + } + + CustomGanttColumnFieldCollection columnFieldCollection = getFieldCollection(CustomGanttColumnFieldCollection.class); + if (columnFieldCollection == null) { + return datasJson; + } + + List dataXValues = columnFieldCollection.getDataX().getValues(); + List dataYValues = columnFieldCollection.getDataY().getValues(); + + double x, y; + for (int i = 0, max = dataXValues.size() - 1; i <= max; i++) { + x = Double.valueOf(String.valueOf(dataXValues.get(i))); + y = Double.valueOf(String.valueOf(dataYValues.get(i))); + datasJson.put(createDataValue(x, y)); + } + return datasJson; + } + + private JSONArray createDataValue(double x, double y) { + //double xValue = (4220315.5 - y) / 21000 * 4232; + //double yValue = (19513890.5 - x) / 6150 * 1240; + + //xValue = (4220315.5 - 1736 / 10040 * 21000 - y) / (21000 * 5992 / 10040) * 5992; + //yValue = (19513890.5 - 120 / 2952 * 6150 - x) / (6150 * 2104 / 2952) * 2104; + + //xValue = (4220315.5 - 1697 / 10040 * 21000 - y) / (21000 * 6075 / 10040) * 6075; + //yValue = (19513890.5 - 105 / 2952 * 6150 - x) / (6150 * 2153 / 2952) * 2153; + + double xValue = (4220315.5 - y) / 21000 * 10040; + double yValue = (19513890.5 - x) / 6150 * 2952; + + xValue = xValue - 1705; + yValue = yValue - 129; + xValue = toValue(xValue); + yValue = toValue(yValue); + JSONArray valueJson = new JSONArray(); + valueJson.put(xValue); + valueJson.put(yValue); + return valueJson; + } + + private double toValue(double value) { + BigDecimal b = new BigDecimal(value); + double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + return f1; + } + + private String getOwnerChartName(ChartWebPara chartWebPara) { + if (chartWebPara == null) { + return ""; + } + WebChartIDInfo chartIDInfo = chartWebPara.getChartIDInfo(); + String ownerChartName = chartIDInfo.getName(); + if (StringKit.isNotEmpty(ownerChartName)) { + ownerChartName = ownerChartName.toUpperCase(); + } + return ownerChartName; + } + + private String getBookPath(ChartWebPara chartWebPara) { + if (chartWebPara == null) { + return ""; + } + String sessionID = chartWebPara.getSessionID(); + TemplateSessionIDInfo templateSessionIDInfo = (TemplateSessionIDInfo) SessionPoolManager.getSessionIDInfor(sessionID, TemplateSessionIDInfo.class); + if (templateSessionIDInfo == null) { + return ""; + } + String path = templateSessionIDInfo.getRelativePath(); + return path; + } + + + private String trim(String value) { + String tempValue = StringKit.trim(value); + if (StringKit.isEmpty(tempValue)) { + return ""; + } + return tempValue; + } + + private List toColorList(String content) { + List tempColors = new ArrayList<>(); + if (StringKit.isEmpty(content)) { + return tempColors; + } + content = content.trim(); + if (StringKit.isEmpty(content)) { + return tempColors; + } + String[] tempArray = content.split(","); + if ((tempArray == null) || (tempArray.length <= 0)) { + return tempColors; + } + String tempValue; + int tempColorValue; + for (int i = 0, max = tempArray.length - 1; i <= max; i++) { + tempValue = tempArray[i]; + tempColorValue = Integer.valueOf(tempValue); + tempColors.add(tempColorValue); + } + + return tempColors; + } + + + private int getObjectValue(List objs) { + double tempValue = getObjectDoubleValue(objs); + Double doubleValue = new Double(tempValue); + int value = doubleValue.intValue(); + return value; + } + + private double getObjectDoubleValue(List objs) { + double value = 0; + if ((objs == null) || (objs.size() <= 0)) { + return -1; + } + try { + value = Double.valueOf(String.valueOf(objs.get(0))); + } catch (Exception e) { + value = -1; + } + + return value; + } + + + private double getFinishRate(double monthFinishValue, double maxValue) { + double f = monthFinishValue * 1.00 / maxValue; + BigDecimal b = new BigDecimal(f); + double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + return f1; + } + + + private double toDouble(Object obj) { + if (obj == null) { + return 0; + } + String tempStr = String.valueOf(obj); + if (StringKit.isEmpty(tempStr)) { + return 0; + } + double value = Double.valueOf(tempStr); + return value; + } + + private JSONObject createSymbolJson(int index, List values) { + JSONObject circleJson = new JSONObject(); + circleJson.put("type", "circle"); + circleJson.put("path", ""); + if (isListEmpty(values) || (index >= values.size())) { + return circleJson; + } + + String path = GeneralUtils.objectToString(values.get(index)); + if (StringKit.isEmpty(path)) { + return circleJson; + } + JSONObject itemJson = new JSONObject(); + itemJson.put("type", "image"); + itemJson.put("path", path); + return itemJson; + } + + + private boolean isListEmpty(List list) { + if ((list == null) || (list.size() <= 0)) { + return true; + } + return false; + } + + + private boolean isDatasEmpty() { + if (isDataXsEmpty() || isDataYsEmpty()) { + return true; + } + return false; + } + + private boolean isDataXsEmpty() { + CustomGanttColumnFieldCollection columnFieldCollection = getFieldCollection(CustomGanttColumnFieldCollection.class); + if (columnFieldCollection == null) { + return true; + } + + ColumnField dataXColumnField = columnFieldCollection.getDataX(); + if (dataXColumnField == null) { + return true; + } + + List values = dataXColumnField.getValues(); + if ((values == null) || (values.size() <= 0)) { + return true; + } + return false; + } + + private boolean isDataYsEmpty() { + CustomGanttColumnFieldCollection columnFieldCollection = getFieldCollection(CustomGanttColumnFieldCollection.class); + if (columnFieldCollection == null) { + return true; + } + + ColumnField dataXColumnField = columnFieldCollection.getDataY(); + if (dataXColumnField == null) { + return true; + } + + List values = dataXColumnField.getValues(); + if ((values == null) || (values.size() <= 0)) { + return true; + } + return false; + } + + +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/CustomChartType.java b/src/main/java/com/fr/plugin/third/party/jsdggac/CustomChartType.java new file mode 100644 index 0000000..2a2c519 --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/CustomChartType.java @@ -0,0 +1,60 @@ +package com.fr.plugin.third.party.jsdggac; + +import com.fanruan.api.report.chart.BaseChartType; +import com.fanruan.api.report.chart.BaseChartWithData; +import com.fr.intelli.record.Focus; +import com.fr.intelli.record.Original; +import com.fr.record.analyzer.EnableMetrics; +import com.fr.stable.fun.Authorize; + +@EnableMetrics +@Authorize(callSignKey = "com.fr.plugin.third.party.jsdggac") +public class CustomChartType extends BaseChartType { + + /** + * 该种图表所有的图表对象实例,比如柱形图就有堆积柱形图,百分比堆积柱形图等等 + * + * @return 所有的图表对象实例 + */ + @Focus(id = "com.fr.plugin.third.party.jsdggac", text = "plugin-jsd-ggac", source = Original.PLUGIN) + public BaseChartWithData[] getChartTypes() { + return new BaseChartWithData[]{ + new CustomChartConfig() + }; + } + + /** + * 图表在web端展现时需要的JS文件 + * + * @return JS文件数组 + */ + public String[] getRequiredJS() { + return new String[]{ + "com/fr/plugin/third/party/jsdggac/web/echarts.min.js", + "com/fr/plugin/third/party/jsdggac/web/echarts-gl.min.js", + "com/fr/plugin/third/party/jsdggac/web/custom_map.js", + "com/fr/plugin/third/party/jsdggac/web/customGanttPlusWrapper.js", + }; + } + + /** + * 图表在web端展现时需要的CSS文件 + * + * @return CSS文件数组 + */ + public String[] getRequiredCss() { + return new String[]{ + "com/fr/plugin/third/party/jsdggac/web/common.css" + }; + } + + /** + * JS对象名,该对象一般是一个函数,执行后会在给定的dom中绘制图表 + * + * @return JS对象名 + */ + public String getWrapperName() { + return "customChartJsdggacWrapper"; + } + +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/CustomChartUI.java b/src/main/java/com/fr/plugin/third/party/jsdggac/CustomChartUI.java new file mode 100644 index 0000000..cd6c473 --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/CustomChartUI.java @@ -0,0 +1,63 @@ +package com.fr.plugin.third.party.jsdggac; + +import com.fanruan.api.design.chart.*; +import com.fr.design.gui.frpane.AttributeChangeListener; +import com.fr.plugin.third.party.jsdggac.data.CustomGanttDataCellFieldsPane; +import com.fr.plugin.third.party.jsdggac.data.CustomGanttDataSetFieldsPane; +import com.fr.plugin.third.party.jsdggac.ui.CustomGanttTypePane; +import com.fr.plugin.third.party.jsdggac.ui.CustomStylePane; + +public class CustomChartUI extends BaseChartTypeUI { + public String CHART_NAME = "矿场热力图"; + + @Override + public DefaultTypePane getPlotTypePane() { + return new CustomGanttTypePane(); + } + + @Override + public BaseDataPane getChartDataPane(AttributeChangeListener listener) { + return new BaseDataPane(listener) { + @Override + protected SingleDataPane createSingleDataPane() { + return new SingleDataPane(new CustomGanttDataSetFieldsPane(), + new CustomGanttDataCellFieldsPane() + ); + } + }; + } + + @Override + public BaseOtherPane[] getAttrPaneArray(AttributeChangeListener listener) { + return new BaseOtherPane[]{ + //new CustomGanttTitlePane(), + new CustomStylePane(), + // new CustomGanttShowSettingsPane(), + // new VanChartStylePane(listener), + new DefaultOtherPane()}; + } + + @Override + public String getIconPath() { + return "com/fr/plugin/third/party/jsdggac/images/chart_icon.png"; + } + + @Override + public String getName() { + return CHART_NAME; + } + + @Override + public String[] getSubName() { + return new String[]{ + CHART_NAME + }; + } + + @Override + public String[] getDemoImagePath() { + return new String[]{ + "com/fr/plugin/third/party/jsdggac/images/chart_type_demo.png" + }; + } +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/CustomGanttDataFactory.java b/src/main/java/com/fr/plugin/third/party/jsdggac/CustomGanttDataFactory.java new file mode 100644 index 0000000..7f050bf --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/CustomGanttDataFactory.java @@ -0,0 +1,198 @@ +package com.fr.plugin.third.party.jsdggac; + +import com.fanruan.api.util.StringKit; +import com.fr.general.GeneralUtils; +import com.fr.plugin.third.party.jsdggac.data.CustomGanttColumnFieldCollection; + +import java.awt.*; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; + +public class CustomGanttDataFactory { + public static synchronized List createProjectNames(CustomGanttColumnFieldCollection dataSource) { + List projectList = new ArrayList<>(); + if (dataSource == null) { + return projectList; + } + //List projectNames = dataSource.getProjectName().getValues(); + List projectNames = null; + int size = projectNames.size(); + if (size <= 0) { + return projectList; + } + String tempValue; + Object tempObj; + + for (int i = 0, max = size - 1; i <= max; i++) { + tempObj = projectNames.get(i); + if (tempObj == null) { + tempValue = ""; + addNotRepeatingObj(tempValue, projectList); + continue; + } + tempValue = GeneralUtils.objectToString(tempObj); + addNotRepeatingObj(tempValue, projectList); + } + Collections.reverse(projectList); + return projectList; + } + + + /** + * 针对echarts的bug处理,若系列名称有数字,有中文,会默认按数字处理,有中文会显示NaN,故在前面加中文处理 + * + * @param name + * @return + */ + private static String createSeriesName(String name) { + String tempName = name; + if (StringKit.isEmpty(name)) { + tempName = ""; + } + return "甘特图" + tempName; + } + + private static synchronized String objectToString(Object obj) { + String tempValue = GeneralUtils.objectToString(obj); + return tempValue; + } + + + private static ThreadLocal threadLocalFormat = new ThreadLocal() { + @Override + protected SimpleDateFormat initialValue() { + return new SimpleDateFormat("yyyy-MM-dd"); + } + }; + + private static ThreadLocal threadLocalFormat1 = new ThreadLocal() { + @Override + protected SimpleDateFormat initialValue() { + return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + } + }; + + + /** + * 转为时间戳 + * + * @param obj + * @return + */ + private static synchronized long objectToTimestamp(Object obj) { + if (obj == null) { + return 0; + } + + Date tempDate = null; + if (obj instanceof Date) { + tempDate = (Date) obj; + return tempDate.getTime(); + } + + String tempValue = GeneralUtils.objectToString(obj); + if (StringKit.isEmpty(tempValue)) { + return 0; + } + int length = tempValue.length(); + try { + if (length == 10) { + tempDate = threadLocalFormat.get().parse(tempValue); + } else if (length == 19) { + tempDate = threadLocalFormat1.get().parse(tempValue); + } + } catch (Exception e) { + return 0; + } + if (tempDate != null) { + return tempDate.getTime(); + } + return 0; + } + + /** + * 转为0-1的四位小数 + * + * @param obj + * @return + */ + private static synchronized double objectToRate(Object obj) { + if (obj == null) { + return 0; + } + + double tempValue = 0; + if (obj instanceof Double) { + tempValue = (Double) obj; + } else { + String tempContent = objectToString(obj); + if (StringKit.isEmpty(tempContent)) { + return 0; + } + tempContent = tempContent.trim(); + if (StringKit.isEmpty(tempContent)) { + return 0; + } + tempValue = Double.valueOf(tempContent); + } + + if (tempValue <= 0) { + return 0; + } + + if (tempValue >= 1) { + return 1; + } + BigDecimal bigDecimal = new BigDecimal(String.valueOf(tempValue)); + tempValue = bigDecimal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue(); + return tempValue; + } + + private static synchronized String objectToRateShow(double value) { + BigDecimal bigDecimal = new BigDecimal(String.valueOf(value)); + BigDecimal bigDecimal1 = new BigDecimal("100"); + String tempValue = bigDecimal.multiply(bigDecimal1).doubleValue() + "%"; + return tempValue; + } + + private static synchronized void addNotRepeatingObj(String value, List values) { + String tempValue = value; + if (StringKit.isEmpty(tempValue)) { + tempValue = ""; + } + if (values.contains(tempValue)) { + return; + } + values.add(tempValue); + } + + private static synchronized int getIndex(String value, List values) { + int index = values.indexOf(value); + return index; + } + + + public static String rgbToHex(Color color) { + if (color == null) { + return "#000000"; + } + String value = "#" + String.format("%02X", color.getRed()) + String.format("%02X", color.getGreen()) + String.format("%02X", color.getBlue()); + return value; + } + + + public static Color colorToGray(Color color) { + if (color == null) { + return new Color(0); + } + + int gray = (int) ((color.getRed() * 30 + color.getGreen() * 59 + color.getBlue() * 11 + 50) * 0.01); + return new Color(gray); + } + + +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/UIComboBoxWithNone.java b/src/main/java/com/fr/plugin/third/party/jsdggac/UIComboBoxWithNone.java new file mode 100644 index 0000000..425207f --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/UIComboBoxWithNone.java @@ -0,0 +1,39 @@ +package com.fr.plugin.third.party.jsdggac; + + +import com.fanruan.api.design.ui.component.UIComboBox; +import com.fr.design.i18n.Toolkit; + +import java.util.List; + +public class UIComboBoxWithNone extends UIComboBox { + protected String getDefaultLocaleString() { + return Toolkit.i18nText("Fine-Design_Chart_Use_None"); + } + + public UIComboBoxWithNone() { + this.addDefaultItem(); + } + + public void refreshBoxItems(List var1) { + super.refreshBoxItems(var1); + this.addDefaultItem(); + } + + public void clearBoxItems() { + super.clearBoxItems(); + this.addDefaultItem(); + } + + private void addDefaultItem() { + this.addItem(this.getDefaultLocaleString()); + } + + public void setSelectedItem(Object var1) { + super.setSelectedItem(var1); + if (this.getSelectedIndex() == -1) { + super.setSelectedItem(this.getDefaultLocaleString()); + } + + } +} \ No newline at end of file diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/color/ColorUtils.java b/src/main/java/com/fr/plugin/third/party/jsdggac/color/ColorUtils.java new file mode 100644 index 0000000..96e3504 --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/color/ColorUtils.java @@ -0,0 +1,197 @@ +package com.fr.plugin.third.party.jsdggac.color; + + +import java.awt.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class ColorUtils { + /** + * 颜色变暗 + * + * @param color + * @return + */ + public static Color toDark(Color color) { + if (color == null) { + return Color.black; + } + float[] hsb = rgb2hsb(color.getRed(), color.getGreen(), color.getBlue()); + float h = hsb[0]; + float s = hsb[1]; + float b = hsb[2]; + if (s >= 0.5) { + s = (float) (s - 0.5); + } else { + s = 0; + } + int[] rgb = hsb2rgb(h, s, b); + Color tempColor = new Color(rgb[0], rgb[2], rgb[2]); + return tempColor; + } + + public static float[] rgb2hsb(int rgbR, int rgbG, int rgbB) { + assert 0 <= rgbR && rgbR <= 255; + assert 0 <= rgbG && rgbG <= 255; + assert 0 <= rgbB && rgbB <= 255; + int[] rgb = new int[]{rgbR, rgbG, rgbB}; + Arrays.sort(rgb); + int max = rgb[2]; + int min = rgb[0]; + + float hsbB = max / 255.0f; + float hsbS = max == 0 ? 0 : (max - min) / (float) max; + + float hsbH = 0; + if (max == rgbR && rgbG >= rgbB) { + hsbH = (rgbG - rgbB) * 60f / (max - min) + 0; + } else if (max == rgbR && rgbG < rgbB) { + hsbH = (rgbG - rgbB) * 60f / (max - min) + 360; + } else if (max == rgbG) { + hsbH = (rgbB - rgbR) * 60f / (max - min) + 120; + } else if (max == rgbB) { + hsbH = (rgbR - rgbG) * 60f / (max - min) + 240; + } + + return new float[]{hsbH, hsbS, hsbB}; + } + + public static int[] hsb2rgb(float h, float s, float v) { + assert Float.compare(h, 0.0f) >= 0 && Float.compare(h, 360.0f) <= 0; + assert Float.compare(s, 0.0f) >= 0 && Float.compare(s, 1.0f) <= 0; + assert Float.compare(v, 0.0f) >= 0 && Float.compare(v, 1.0f) <= 0; + + float r = 0, g = 0, b = 0; + int i = (int) ((h / 60) % 6); + float f = (h / 60) - i; + float p = v * (1 - s); + float q = v * (1 - f * s); + float t = v * (1 - (1 - f) * s); + switch (i) { + case 0: + r = v; + g = t; + b = p; + break; + case 1: + r = q; + g = v; + b = p; + break; + case 2: + r = p; + g = v; + b = t; + break; + case 3: + r = p; + g = q; + b = v; + break; + case 4: + r = t; + g = p; + b = v; + break; + case 5: + r = v; + g = p; + b = q; + break; + default: + break; + } + return new int[]{(int) (r * 255.0), (int) (g * 255.0), + (int) (b * 255.0)}; + } + + /** + * 获取渐变颜色 当前颜色到 红绿蓝 渐变 + * + * @param color + * @param count + * @return + */ + public static List getGradientColors(Color color, int count) { + List colors = new ArrayList<>(); + if (count <= 0) { + return colors; + } + if (count <= 1) { + count = 1; + } + int max = count - 1; + if (color == null) { + for (int i = 0; i <= max; i++) { + colors.add(Color.black); + } + return colors; + } + if (count == 1) { + colors.add(color); + return colors; + } + + Color endColor = new Color(220, 220, 220); + endColor = Color.RED; + + int maxStep = Math.abs(Math.abs(color.getRGB()) - Math.abs(endColor.getRGB())); + int tempStep = Math.abs(Math.abs(color.getRGB()) - Math.abs(Color.GREEN.getRGB())); + if (tempStep >= maxStep) { + maxStep = tempStep; + endColor = Color.GREEN; + } + + tempStep = Math.abs(Math.abs(color.getRGB()) - Math.abs(Color.BLUE.getRGB())); + if (tempStep >= maxStep) { + maxStep = tempStep; + endColor = Color.BLUE; + } + endColor = new Color(220, 220, 220); + double redStep = (endColor.getRed() - color.getRed()) / (count + 1); + double greenStep = (endColor.getGreen() - color.getGreen()) / (count + 1); + double blueStep = (endColor.getBlue() - color.getBlue()) / (count + 1); + + int redValue = color.getRed(); + int greenValue = color.getGreen(); + int blueValue = color.getBlue(); + + double redTempValue = color.getRed(); + double greenTempValue = color.getGreen(); + double blueTempValue = color.getBlue(); + + Color tempColor = null; + for (int i = 0; i <= max; i++) { + if (redValue >= 255) { + redValue = 255; + } + if (greenValue >= 255) { + greenValue = 255; + } + if (blueValue >= 255) { + blueValue = 255; + } + tempColor = new Color(redValue, greenValue, blueValue); + colors.add(tempColor); + redTempValue = (redTempValue + redStep); + greenTempValue = (greenTempValue + greenStep); + blueTempValue = (blueTempValue + blueStep); + redValue = (int) redTempValue; + greenValue = (int) greenTempValue; + blueValue = (int) blueTempValue; + } + return colors; + } + + public static String rgbToHex(Color color) { + if (color == null) { + return "#000000"; + } + String value = "#" + String.format("%02X", color.getRed()) + String.format("%02X", color.getGreen()) + String.format("%02X", color.getBlue()); + return value; + } + + + +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/data/CustomGanttColumnFieldCollection.java b/src/main/java/com/fr/plugin/third/party/jsdggac/data/CustomGanttColumnFieldCollection.java new file mode 100644 index 0000000..8361911 --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/data/CustomGanttColumnFieldCollection.java @@ -0,0 +1,37 @@ +package com.fr.plugin.third.party.jsdggac.data; + +import com.fanruan.api.report.chart.field.BaseColumnFieldCollection; +import com.fr.chartx.data.field.ColumnField; + + +public class CustomGanttColumnFieldCollection extends BaseColumnFieldCollection { + + /** + * x轴数据 + */ + private ColumnField dataX = new ColumnField(); + + /** + * y轴数据 + */ + private ColumnField dataY = new ColumnField(); + + + public ColumnField getDataX() { + return dataX; + } + + public void setDataX(ColumnField dataX) { + this.dataX = dataX; + } + + public ColumnField getDataY() { + return dataY; + } + + public void setDataY(ColumnField dataY) { + this.dataY = dataY; + } + + +} \ No newline at end of file diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/data/CustomGanttDataCellFieldsPane.java b/src/main/java/com/fr/plugin/third/party/jsdggac/data/CustomGanttDataCellFieldsPane.java new file mode 100644 index 0000000..6607b93 --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/data/CustomGanttDataCellFieldsPane.java @@ -0,0 +1,55 @@ +package com.fr.plugin.third.party.jsdggac.data; + +import com.fanruan.api.design.chart.field.BaseCellDataFieldsPane; +import com.fanruan.api.design.ui.component.formula.UIFormulaTextField; + +import java.awt.*; + +public class CustomGanttDataCellFieldsPane extends BaseCellDataFieldsPane { + private UIFormulaTextField dataXPane; + private UIFormulaTextField dataYPane; + + public void initComponents() { + dataXPane = new UIFormulaTextField(); + dataYPane = new UIFormulaTextField(); + super.initComponents(); + } + + @Override + protected String[] fieldLabels() { + return new String[]{ + "X轴", + "Y轴" + }; + } + + @Override + protected Component[] fieldComponents() { + return new Component[]{ + this.dataXPane, + this.dataYPane, + }; + } + + @Override + protected UIFormulaTextField[] formulaPanes() { + return new UIFormulaTextField[]{ + this.dataXPane, + this.dataYPane, + }; + } + + @Override + public void populateBean(CustomGanttColumnFieldCollection dataConf) { + populateField(dataXPane, dataConf.getDataX()); + populateField(dataYPane, dataConf.getDataY()); + } + + @Override + public CustomGanttColumnFieldCollection updateBean() { + CustomGanttColumnFieldCollection dataConf = new CustomGanttColumnFieldCollection(); + updateField(dataXPane, dataConf.getDataX()); + updateField(dataYPane, dataConf.getDataY()); + return dataConf; + } +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/data/CustomGanttDataSetFieldsPane.java b/src/main/java/com/fr/plugin/third/party/jsdggac/data/CustomGanttDataSetFieldsPane.java new file mode 100644 index 0000000..c5bcf6f --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/data/CustomGanttDataSetFieldsPane.java @@ -0,0 +1,57 @@ +package com.fr.plugin.third.party.jsdggac.data; + +import com.fanruan.api.design.chart.field.BaseDataSetFieldsPane; +import com.fanruan.api.design.ui.component.UIComboBox; +import com.fr.plugin.third.party.jsdggac.UIComboBoxWithNone; + +import java.awt.*; + + +public class CustomGanttDataSetFieldsPane extends BaseDataSetFieldsPane { + private UIComboBoxWithNone dataXPane; + private UIComboBoxWithNone dataYPane; + + public void initComponents() { + dataXPane = new UIComboBoxWithNone(); + dataYPane = new UIComboBoxWithNone(); + super.initComponents(); + } + + @Override + protected String[] fieldLabels() { + return new String[]{ + "X轴", + "Y轴" + }; + } + + @Override + protected Component[] fieldComponents() { + return new Component[]{ + this.dataXPane, + this.dataYPane, + }; + } + + @Override + protected UIComboBox[] filedComboBoxes() { + return new UIComboBox[]{ + this.dataXPane, + this.dataYPane, + }; + } + + @Override + public void populateBean(CustomGanttColumnFieldCollection dataConf) { + populateField(dataXPane, dataConf.getDataX()); + populateField(dataYPane, dataConf.getDataY()); + } + + @Override + public CustomGanttColumnFieldCollection updateBean() { + CustomGanttColumnFieldCollection dataConf = new CustomGanttColumnFieldCollection(); + updateField(dataXPane, dataConf.getDataX()); + updateField(dataYPane, dataConf.getDataY()); + return dataConf; + } +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/ui/ColorSectionPane.java b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/ColorSectionPane.java new file mode 100644 index 0000000..3d40e4c --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/ColorSectionPane.java @@ -0,0 +1,59 @@ +package com.fr.plugin.third.party.jsdggac.ui; + +import com.fr.chart.chartglyph.MapHotAreaColor; +import com.fr.design.event.UIObserver; +import com.fr.design.event.UIObserverListener; +import com.fr.design.gui.frpane.AbstractAttrNoScrollPane; +import com.fr.design.gui.frpane.AttributeChangeListener; +import com.fr.van.chart.range.component.SectionIntervalConfigPaneWithOutNum; + +import javax.swing.*; + +public class ColorSectionPane extends AbstractAttrNoScrollPane implements UIObserver { + private SectionIntervalConfigPaneWithOutNum sectionIntervalConfigPaneWithOutNum; + protected UIObserverListener uiObserverListener; + + public ColorSectionPane() { + if (this.shouldResponseChangeListener()) { + addAttributeChangeListener(new AttributeChangeListener() { + @Override + public void attributeChange() { + if (ColorSectionPane.this.uiObserverListener != null) { + ColorSectionPane.this.uiObserverListener.doChange(); + } + } + }); + } + } + + @Override + protected JPanel createContentPane() { + sectionIntervalConfigPaneWithOutNum = new SectionIntervalConfigPaneWithOutNum(this); + return sectionIntervalConfigPaneWithOutNum; + } + + public void updateBean(MapHotAreaColor mapHotAreaColor) { + sectionIntervalConfigPaneWithOutNum.updateBean(mapHotAreaColor); + + } + + public void populateBean(MapHotAreaColor mapHotAreaColor) { + sectionIntervalConfigPaneWithOutNum.populateBean(mapHotAreaColor); + } + + public String title4PopupWindow() { + return "区域颜色设置"; + } + + @Override + public void registerChangeListener(UIObserverListener uiObserverListener) { + this.uiObserverListener = uiObserverListener; + } + + @Override + public boolean shouldResponseChangeListener() { + return true; + } + + +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/ui/ColorSeriesConfPane.java b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/ColorSeriesConfPane.java new file mode 100644 index 0000000..9280a68 --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/ColorSeriesConfPane.java @@ -0,0 +1,251 @@ +package com.fr.plugin.third.party.jsdggac.ui; + +import com.fanruan.api.design.DesignKit; +import com.fr.base.BaseUtils; +import com.fr.design.dialog.BasicDialog; +import com.fr.design.dialog.BasicPane; +import com.fr.design.dialog.DialogActionAdapter; +import com.fr.design.dialog.FineJOptionPane; +import com.fr.design.gui.ibutton.UIButton; +import com.fr.design.layout.FRGUIPaneFactory; + +import javax.swing.*; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.util.ArrayList; +import java.util.List; + + +public class ColorSeriesConfPane extends BasicPane { + private JList colorList; + private UIButton addButton; + private UIButton editButton; + private UIButton removeButton; + private UIButton moveUpButton; + private UIButton moveDownButton; + ActionListener addActionListener = new ActionListener() { + public void actionPerformed(ActionEvent var1) { + final ColorSettingPane var2 = new ColorSettingPane(); + BasicDialog var3 = var2.showSmallWindow(SwingUtilities.getWindowAncestor(ColorSeriesConfPane.this), new DialogActionAdapter() { + public void doOk() { + Color var1 = var2.update(); + if (var1 != null) { + DefaultListModel var2x = (DefaultListModel) ColorSeriesConfPane.this.colorList.getModel(); + var2x.addElement(var1); + ColorSeriesConfPane.this.colorList.setSelectedIndex(var2x.size() - 1); + } + + } + }); + var3.setTitle("增加颜色..."); + var3.setVisible(true); + } + }; + ActionListener editActionListener = new ActionListener() { + public void actionPerformed(ActionEvent var1) { + ColorSeriesConfPane.this.editPrinterList(); + } + }; + ActionListener removeActionListener = new ActionListener() { + public void actionPerformed(ActionEvent var1) { + int var2 = ColorSeriesConfPane.this.colorList.getSelectedIndex(); + if (var2 != -1) { + int var3 = FineJOptionPane.showConfirmDialog(ColorSeriesConfPane.this, "你确实想删除选中的颜色吗?", DesignKit.i18nText("Fine-Design_Basic_Remove"), 2, 3); + if (var3 == 0) { + ((DefaultListModel) ColorSeriesConfPane.this.colorList.getModel()).remove(var2); + if (ColorSeriesConfPane.this.colorList.getModel().getSize() > 0) { + if (var2 < ColorSeriesConfPane.this.colorList.getModel().getSize()) { + ColorSeriesConfPane.this.colorList.setSelectedIndex(var2); + } else { + ColorSeriesConfPane.this.colorList.setSelectedIndex(ColorSeriesConfPane.this.colorList.getModel().getSize() - 1); + } + } + + ColorSeriesConfPane.this.checkButtonEnabled(); + } + + } + } + }; + ActionListener moveUpActionListener = new ActionListener() { + public void actionPerformed(ActionEvent var1) { + int var2 = ColorSeriesConfPane.this.colorList.getSelectedIndex(); + if (var2 > 0) { + DefaultListModel var3 = (DefaultListModel) ColorSeriesConfPane.this.colorList.getModel(); + Object var4 = var3.get(var2 - 1); + var3.set(var2 - 1, var3.get(var2)); + var3.set(var2, var4); + ColorSeriesConfPane.this.colorList.setSelectedIndex(var2 - 1); + ColorSeriesConfPane.this.checkButtonEnabled(); + } + + } + }; + ActionListener moveDownActionListener = new ActionListener() { + public void actionPerformed(ActionEvent var1) { + int var2 = ColorSeriesConfPane.this.colorList.getSelectedIndex(); + if (var2 != -1) { + if (var2 < ColorSeriesConfPane.this.colorList.getModel().getSize() - 1) { + DefaultListModel var3 = (DefaultListModel) ColorSeriesConfPane.this.colorList.getModel(); + Object var4 = var3.get(var2 + 1); + var3.set(var2 + 1, var3.get(var2)); + var3.set(var2, var4); + ColorSeriesConfPane.this.colorList.setSelectedIndex(var2 + 1); + ColorSeriesConfPane.this.checkButtonEnabled(); + } + + } + } + }; + ListSelectionListener printerSelectionListener = new ListSelectionListener() { + public void valueChanged(ListSelectionEvent var1) { + ColorSeriesConfPane.this.checkButtonEnabled(); + } + }; + MouseAdapter mouseClickedListener = new MouseAdapter() { + public void mouseClicked(MouseEvent var1) { + int var2 = var1.getClickCount(); + if (var2 >= 2) { + ColorSeriesConfPane.this.editPrinterList(); + } + + } + }; + + public class ColorRenderer extends JLabel implements ListCellRenderer { + @Override + public Component getListCellRendererComponent(JList list, + Object value, + int index, + boolean isSelected, + boolean cellHasFocus) { + if ((value != null) && (value instanceof Color)) { + Color color = (Color) value; + this.setOpaque(true); //此句是重点,设置背景颜色必须先将它设置为不透明的,因为默认是透明的。。。 + this.setText(" "); + this.setBackground(color); + } + return this; + } + } + + public ColorSeriesConfPane() { + this.initComponents(); + } + + protected void initComponents() { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + this.setBorder(BorderFactory.createEmptyBorder(6, 2, 4, 2)); + JToolBar var1 = new JToolBar(); + this.add(var1, "North"); + Dimension var2 = new Dimension(24, 24); + this.addButton = new UIButton(BaseUtils.readIcon("/com/fr/base/images/cell/control/add.png")); + this.addButton.addActionListener(this.addActionListener); + this.addButton.setToolTipText(DesignKit.i18nText("Fine-Design_Basic_Add")); + this.addButton.setPreferredSize(var2); + this.editButton = new UIButton(BaseUtils.readIcon("/com/fr/design/images/control/edit.png")); + this.editButton.addActionListener(this.editActionListener); + this.editButton.setToolTipText(DesignKit.i18nText("Fine-Design_Report_Edit")); + this.editButton.setPreferredSize(var2); + this.removeButton = new UIButton(BaseUtils.readIcon("/com/fr/base/images/cell/control/remove.png")); + this.removeButton.addActionListener(this.removeActionListener); + this.removeButton.setToolTipText(DesignKit.i18nText("Fine-Design_Basic_Remove")); + this.removeButton.setPreferredSize(var2); + this.moveUpButton = new UIButton(BaseUtils.readIcon("/com/fr/design/images/control/up.png")); + this.moveUpButton.addActionListener(this.moveUpActionListener); + this.moveUpButton.setToolTipText(DesignKit.i18nText("Fine-Design_Basic_Utils_Move_Up")); + this.moveUpButton.setPreferredSize(var2); + this.moveDownButton = new UIButton(BaseUtils.readIcon("/com/fr/design/images/control/down.png")); + this.moveDownButton.addActionListener(this.moveDownActionListener); + this.moveDownButton.setToolTipText(DesignKit.i18nText("Fine-Design_Basic_Utils_Move_Down")); + this.moveDownButton.setPreferredSize(var2); + var1.add(this.addButton); + var1.add(this.editButton); + var1.add(this.removeButton); + var1.add(this.moveUpButton); + var1.add(this.moveDownButton); + this.colorList = new JList(new DefaultListModel()); + this.colorList.addListSelectionListener(this.printerSelectionListener); + this.colorList.addMouseListener(this.mouseClickedListener); + this.colorList.setCellRenderer(new ColorRenderer()); + this.add(new JScrollPane(this.colorList), "Center"); + this.checkButtonEnabled(); + } + + protected String title4PopupWindow() { + return "完成颜色设置"; + } + + private void checkButtonEnabled() { + this.editButton.setEnabled(false); + this.removeButton.setEnabled(false); + this.moveUpButton.setEnabled(false); + this.moveDownButton.setEnabled(false); + int var1 = this.colorList.getSelectedIndex(); + if (var1 >= 0) { + this.editButton.setEnabled(true); + this.removeButton.setEnabled(true); + if (var1 > 0) { + this.moveUpButton.setEnabled(true); + } + + if (var1 < this.colorList.getModel().getSize() - 1) { + this.moveDownButton.setEnabled(true); + } + } + + } + + public void editPrinterList() { + final int var1 = this.colorList.getSelectedIndex(); + final ColorSettingPane var2 = new ColorSettingPane(); + BasicDialog var3 = var2.showSmallWindow(SwingUtilities.getWindowAncestor(this), new DialogActionAdapter() { + public void doOk() { + Color var1x = var2.update(); + if (var1x != null) { + DefaultListModel var2x = (DefaultListModel) ColorSeriesConfPane.this.colorList.getModel(); + var2x.remove(var1); + var2x.add(var1, var1x); + ColorSeriesConfPane.this.colorList.setSelectedIndex(var1); + } + + } + }); + var2.populate((Color) this.colorList.getSelectedValue()); + var3.setTitle( "编辑颜色..."); + var3.setVisible(true); + } + + public void populate(List colors) { + DefaultListModel var3 = (DefaultListModel) this.colorList.getModel(); + var3.removeAllElements(); + if ((colors == null) || (colors.size() <= 0)) { + return; + } + int size = colors.size(); + for (int i = 0, max = size - 1; i <= max; i++) { + var3.addElement(new Color(colors.get(i))); + } + if (size >= 1) { + this.colorList.setSelectedIndex(0); + } + } + + public List update() { + List var2 = new ArrayList(); + DefaultListModel var3 = (DefaultListModel) this.colorList.getModel(); + Color color; + for (int i = 0, max = var3.size() - 1; i <= max; i++) { + color = (Color) var3.get(i); + var2.add(color.getRGB()); + } + return var2; + } + + +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/ui/ColorSettingPane.java b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/ColorSettingPane.java new file mode 100644 index 0000000..36ee3ea --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/ColorSettingPane.java @@ -0,0 +1,46 @@ +package com.fr.plugin.third.party.jsdggac.ui; + +import com.fanruan.api.design.ui.component.UILabel; +import com.fr.design.dialog.BasicPane; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.style.color.NewColorSelectBox; + +import java.awt.*; + +public class ColorSettingPane extends BasicPane { + //private ColorBackgroundQuickPane colorBackgroundQuickPane; + private NewColorSelectBox colorBackgroundQuickPane; + + public ColorSettingPane() { + this.initComponents(); + } + + protected void initComponents() { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + colorBackgroundQuickPane = new NewColorSelectBox(100); + this.add(new UILabel("设置颜色"), BorderLayout.NORTH); + this.add(colorBackgroundQuickPane, BorderLayout.CENTER); + } + + public void checkValid() throws Exception { + + } + + protected boolean isShowHelpButton() { + return false; + } + + protected String title4PopupWindow() { + return "设置颜色"; + } + + public void populate(Color var1) { + //this.colorBackgroundQuickPane.populateColor(var1); + this.colorBackgroundQuickPane.setSelectObject(var1); + } + + public Color update() { + //return this.colorBackgroundQuickPane.updateColor(); + return this.colorBackgroundQuickPane.getSelectObject(); + } +} \ No newline at end of file diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomFRFontPane.java b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomFRFontPane.java new file mode 100644 index 0000000..c4a3999 --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomFRFontPane.java @@ -0,0 +1,461 @@ +package com.fr.plugin.third.party.jsdggac.ui; + + +import com.fanruan.api.design.DesignKit; +import com.fr.base.BaseUtils; +import com.fr.base.FRContext; +import com.fr.base.Style; +import com.fr.base.Utils; +import com.fr.design.constants.LayoutConstants; +import com.fr.design.constants.UIConstants; +import com.fr.design.event.GlobalNameListener; +import com.fr.design.event.GlobalNameObserver; +import com.fr.design.gui.ibutton.UIColorButton; +import com.fr.design.gui.ibutton.UIToggleButton; +import com.fr.design.gui.icombobox.LineComboBox; +import com.fr.design.gui.icombobox.UIComboBox; +import com.fr.design.gui.style.AbstractBasicStylePane; +import com.fr.design.layout.TableLayout; +import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.general.ComparatorUtils; +import com.fr.general.DefaultValues; +import com.fr.general.FRFont; +import com.fr.stable.Constants; + +import javax.swing.*; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import java.awt.*; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.util.Vector; + +/** + * Pane to edit Font. + */ +public class CustomFRFontPane extends AbstractBasicStylePane implements GlobalNameObserver { + public static final Integer[] FONT_SIZES = { + 6, 8, 9, 10, 11, 12, 13, 14, 16, + 18, 20, 22, 24, 26, 28, 30, 32, 34, + 36, 38, 40, 48, 64, 72, 128 + }; + private static final int MAX_FONT_SIZE = 100; + private static final Dimension BUTTON_SIZE = new Dimension(20, 18); + private static final Dimension UNDER_LINE_SIZE = new Dimension(87, 20); + private static final Dimension HIDE_SIZE = new Dimension(0, 0); + private final String[] fontSizeStyles = {com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Plain"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Bold"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Italic"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Bolditalic")}; + private JPanel buttonPane; + private JPanel isSuperOrSubPane; + private UIComboBox fontNameComboBox; + private UIComboBox fontSizeStyleComboBox; + protected UIComboBox fontSizeComboBox; + private UIToggleButton bold; + private UIToggleButton italic; + private UIToggleButton underline; + private GlobalNameListener globalNameListener = null; + + // underline + private LineComboBox underlineCombo; + private UIColorButton colorSelectPane; + // effects. + private UIToggleButton isStrikethroughCheckBox; + private UIToggleButton isShadowCheckBox; + private UIToggleButton superPane; + private UIToggleButton subPane; + private JPanel linePane; + private int italic_bold; + + private String title = DesignKit.i18nText("Fine-Design_Report_Sytle_FRFont"); + ; + + /** + * LeftPane和RightPane之间的间隙,也是fontSizeStyleComboBox与fontSizeComboBox之间的间隙,之前的默认值为VGAP_LARGE + */ + private int hGapBetweenLeftPaneAndRightPane = LayoutConstants.VGAP_LARGE; + + + public CustomFRFontPane(String text) { + this.title = text; + this.initComponents(); + } + + public CustomFRFontPane() { + this.initComponents(); + } + + public CustomFRFontPane(int hGapBetweenLeftPaneAndRightPane) { + this.hGapBetweenLeftPaneAndRightPane = hGapBetweenLeftPaneAndRightPane; + this.initComponents(); + } + + public static void main(String[] args) { + JFrame jf = new JFrame("test"); + jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + JPanel content = (JPanel) jf.getContentPane(); + content.setLayout(new BorderLayout()); + content.add(new CustomFRFontPane(), BorderLayout.CENTER); + GUICoreUtils.centerWindow(jf); + jf.setSize(290, 400); + jf.setVisible(true); + } + + + @Override + protected String title4PopupWindow() { + return this.title; + } + + /** + * Use font to populate pane. + */ + public void populateBean(FRFont frFont) { + fontNameComboBox.setSelectedItem(frFont.getFamily()); + fontSizeStyleComboBox.setSelectedIndex(frFont.getStyle()); + fontSizeComboBox.setSelectedItem(Utils.round5(frFont.getSize2D())); + bold.setSelected(frFont.isBold()); + italic.setSelected(frFont.isItalic()); + + // foreground. + this.colorSelectPane.setColor(frFont.getForeground()); + this.colorSelectPane.repaint(); + // update frFont. + + CardLayout cly = (CardLayout) linePane.getLayout(); + int line = frFont.getUnderline(); + if (line == Constants.LINE_NONE) { + underline.setSelected(false); + cly.show(linePane, "none"); + linePane.setPreferredSize(HIDE_SIZE); + } else { + underline.setSelected(true); + cly.show(linePane, "combobox"); + linePane.setPreferredSize(UNDER_LINE_SIZE); + this.underlineCombo.setSelectedLineStyle(line); + } + // effects + this.isStrikethroughCheckBox.setSelected(frFont.isStrikethrough()); + this.isShadowCheckBox.setSelected(frFont.isShadow()); + if (frFont.isSuperscript()) { + this.superPane.setSelected(true); + this.subPane.setSelected(false); + } else if (frFont.isSubscript()) { + this.superPane.setSelected(false); + this.subPane.setSelected(true); + } else { + this.superPane.setSelected(false); + this.subPane.setSelected(false); + } + } + + public FRFont updateFRFont() { + FRFont frFont = FRFont.getInstance(); + + frFont = frFont.applyName((String) fontNameComboBox.getSelectedItem()); + frFont = frFont.applyStyle(fontSizeStyleComboBox.getSelectedIndex()); + frFont = frFont.applySize(Float.parseFloat(fontSizeComboBox.getSelectedItem().toString())); + frFont = frFont.applyForeground(this.colorSelectPane.getColor()); + + int line = underline.isSelected() ? this.underlineCombo.getSelectedLineStyle() : Constants.LINE_NONE; + frFont = frFont.applyUnderline(line); + + frFont = frFont.applyUnderline(this.underlineCombo.getSelectedLineStyle()); + + frFont = frFont.applyStrikethrough(isStrikethroughCheckBox.isSelected()); + frFont = frFont.applyShadow(isShadowCheckBox.isSelected()); + frFont = updateOthers(frFont); + + return frFont; + } + + /** + * Update pane to get new font. + */ + public FRFont update(FRFont frFont) { + + if (ComparatorUtils.equals(globalNameListener.getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Name"))) { + frFont = frFont.applyName((String) fontNameComboBox.getSelectedItem()); + } + if (ComparatorUtils.equals(globalNameListener.getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Style"))) { + frFont = frFont.applyStyle(fontSizeStyleComboBox.getSelectedIndex()); + } + if (ComparatorUtils.equals(globalNameListener.getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_FRFont_Size"))) { + frFont = frFont.applySize(Float.parseFloat(fontSizeComboBox.getSelectedItem().toString())); + } + if (ComparatorUtils.equals(globalNameListener.getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Foreground"))) { + frFont = frFont.applyForeground(this.colorSelectPane.getColor()); + } + + if (ComparatorUtils.equals(globalNameListener.getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Underline"))) { + + int line = underline.isSelected() ? this.underlineCombo.getSelectedLineStyle() : Constants.LINE_NONE; + frFont = frFont.applyUnderline(line); + + } + + if (ComparatorUtils.equals(globalNameListener.getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_FRFont_Line_Style"))) { + frFont = frFont.applyUnderline(this.underlineCombo.getSelectedLineStyle()); + } + + if (ComparatorUtils.equals(globalNameListener.getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Strikethrough"))) { + frFont = frFont.applyStrikethrough(isStrikethroughCheckBox.isSelected()); + } + if (ComparatorUtils.equals(globalNameListener.getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Shadow"))) { + frFont = frFont.applyShadow(isShadowCheckBox.isSelected()); + } + + frFont = updateOthers(frFont); + + return frFont; + } + + + private FRFont updateOthers(FRFont frFont) { + frFont = updateSubSuperscript(frFont); + return frFont; + } + + private FRFont updateSubSuperscript(FRFont frFont) { + boolean isSuper = frFont.isSuperscript(); + boolean isSub = frFont.isSubscript(); + if (ComparatorUtils.equals(globalNameListener.getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Superscript"))) { + //如果上标没有选中,点击则选中上标,并且下标一定是不选中状态 + //如果上标选中,点击则取消选中上标,字体回复正常 + if (superPane.isSelected() && !isSuper) { + frFont = frFont.applySuperscript(true); + frFont = frFont.applySubscript(false); + this.subPane.setSelected(false); + } else if (!superPane.isSelected() && isSuper) { + frFont = frFont.applySuperscript(false); + } + } + if (ComparatorUtils.equals(globalNameListener.getGlobalName(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Subscript"))) { + if (subPane.isSelected() && !isSub) { + frFont = frFont.applySubscript(true); + frFont = frFont.applySuperscript(false); + this.superPane.setSelected(false); + } else if (!subPane.isSelected() && isSub) { + frFont = frFont.applySubscript(false); + } + } + return frFont; + } + + @Override + public void populateBean(Style style) { + this.populateBean(style.getFRFont()); + } + + @Override + public Style update(Style style) { + // TODO Auto-generated method stub + FRFont frFont = style.getFRFont(); + frFont = this.update(frFont); + return style.deriveFRFont(frFont); + } + + public static Vector getFontSizes() { + Vector FONT_SIZES = new Vector(); + for (int i = 1; i < MAX_FONT_SIZE; i++) { + FONT_SIZES.add(i); + } + return FONT_SIZES; + } + + protected void initComponents() { + fontSizeStyleComboBox = new UIComboBox(fontSizeStyles); + fontNameComboBox = new UIComboBox(Utils.getAvailableFontFamilyNames4Report()); + fontNameComboBox.setPreferredSize(new Dimension(144, 20)); + fontSizeComboBox = new UIComboBox(getFontSizes()); + fontSizeComboBox.setEditable(true); + this.underlineCombo = new LineComboBox(UIConstants.BORDER_LINE_STYLE_ARRAY); + colorSelectPane = new UIColorButton(); + bold = new UIToggleButton(BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/bold.png")); + italic = new UIToggleButton(BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/italic.png")); + underline = new UIToggleButton(BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/underline.png")); + bold.setPreferredSize(BUTTON_SIZE); + italic.setPreferredSize(BUTTON_SIZE); + underline.setPreferredSize(BUTTON_SIZE); + isStrikethroughCheckBox = new UIToggleButton(BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/strikethrough.png")); + isStrikethroughCheckBox.setPreferredSize(BUTTON_SIZE); + isShadowCheckBox = new UIToggleButton(BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/shadow.png")); + isShadowCheckBox.setPreferredSize(BUTTON_SIZE); + superPane = new UIToggleButton(BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/sup.png")); + superPane.setPreferredSize(BUTTON_SIZE); + subPane = new UIToggleButton(BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/sub.png")); + subPane.setPreferredSize(BUTTON_SIZE); + Component[] SuperOrSubComponents = new Component[]{ + superPane, subPane + }; + isSuperOrSubPane = new JPanel(new BorderLayout()); + isSuperOrSubPane.add(GUICoreUtils.createFlowPane(SuperOrSubComponents, FlowLayout.LEFT, LayoutConstants.HGAP_SMALL)); + Component[] components_font = new Component[]{ + colorSelectPane, underline, isStrikethroughCheckBox, isShadowCheckBox + }; + buttonPane = new JPanel(new BorderLayout()); + buttonPane.add(GUICoreUtils.createFlowPane(components_font, FlowLayout.LEFT, LayoutConstants.HGAP_SMALL)); + linePane = new JPanel(new CardLayout()); + initAllNames(); + setToolTips(); + this.setLayout(new BorderLayout()); + this.add(createPane(), BorderLayout.CENTER); + DefaultValues defaultValues = FRContext.getDefaultValues(); + populateBean(defaultValues.getFRFont()); + } + + private void initAllNames() { + fontSizeStyleComboBox.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Style")); + fontNameComboBox.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Name")); + fontSizeComboBox.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_FRFont_Size")); + colorSelectPane.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Foreground")); + italic.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Italic")); + bold.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Bold")); + underline.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Underline")); + underlineCombo.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_FRFont_Line_Style")); + isStrikethroughCheckBox.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Strikethrough")); + isShadowCheckBox.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Shadow")); + superPane.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Superscript")); + subPane.setGlobalName(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Subscript")); + } + + private void setToolTips() { + colorSelectPane.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Foreground")); + italic.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Italic")); + bold.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Bold")); + underline.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Underline")); + isStrikethroughCheckBox.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Strikethrough")); + isShadowCheckBox.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Shadow")); + superPane.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Superscript")); + subPane.setToolTipText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FR_Font_Subscript")); + } + + + private JPanel createLinePane() { + linePane.add(new JPanel(), "none"); + JPanel gap = new JPanel(new GridLayout(0, 1)); + gap.add(underlineCombo); + linePane.add(gap, "combobox"); + underline.addChangeListener(new ChangeListener() { + + @Override + public void stateChanged(ChangeEvent e) { + CardLayout cly = (CardLayout) linePane.getLayout(); + cly.show(linePane, underline.isSelected() ? "combobox" : "none"); + if (underline.isSelected()) { + linePane.setPreferredSize(UNDER_LINE_SIZE); + } else { + linePane.setPreferredSize(HIDE_SIZE); + } + } + }); + + return linePane; + } + + private JPanel createLeftPane() { + double p = TableLayout.PREFERRED; + double f = TableLayout.FILL; + double[] columnSize = {p}; + double[] rowSize = {p, p, p}; + int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}}; + Component[][] components = new Component[][]{ + new Component[]{fontSizeStyleComboBox}, + new Component[]{buttonPane}, + new Component[]{createLinePane()} + }; + return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); + } + + protected JPanel createRightPane() { + double p = TableLayout.PREFERRED; + double f = TableLayout.FILL; + double[] columnSize = {f}; + double[] rowSize = {p, p}; + int[][] rowCount = {{1, 1}, {1, 1}}; + Component[][] components = new Component[][]{ + new Component[]{fontSizeComboBox}, + new Component[]{isSuperOrSubPane} + }; + return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); + } + + private JPanel createPane() { + JPanel createPane = new JPanel(new BorderLayout()); + Component[] components_font = new Component[]{ + fontNameComboBox, fontSizeComboBox, colorSelectPane + }; + createPane.add(GUICoreUtils.createFlowPane(components_font, FlowLayout.LEFT, LayoutConstants.HGAP_SMALL)); + //createPane.add(fontNameComboBox, BorderLayout.NORTH); + //JPanel jPanel = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{createLeftPane(), createRightPane()}}, TableLayoutHelper.FILL_LASTCOLUMN, hGapBetweenLeftPaneAndRightPane, LayoutConstants.VGAP_LARGE); + //jPanel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0)); + //createPane.add(jPanel, BorderLayout.CENTER); + return createPane; + } + + /** + * @param listener 观察者监听事件 + */ + public void registerNameListener(GlobalNameListener listener) { + globalNameListener = listener; + } + + /** + * @return + */ + public boolean shouldResponseNameListener() { + return false; + } + + public void setGlobalName(String name) { + } + + private class TwoButtonPane extends JPanel { + public UIToggleButton leftButton; + public UIToggleButton rightButton; + + public TwoButtonPane(UIToggleButton leftButton, UIToggleButton rightButton) { + this.leftButton = leftButton; + this.rightButton = rightButton; + this.setLayout(new FlowLayout(FlowLayout.LEFT, 1, 0)); + this.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1)); + initButton(leftButton); + initButton(rightButton); + initListener(); + } + + private void initListener() { + leftButton.addMouseListener(new MouseAdapter() { + public void mousePressed(MouseEvent e) { + rightButton.setSelected(false); + } + }); + rightButton.addMouseListener(new MouseAdapter() { + public void mousePressed(MouseEvent e) { + leftButton.setSelected(false); + } + }); + } + + private void initButton(UIToggleButton button) { + button.setRoundBorder(false); + button.setBorderPainted(false); + this.add(button); + } + + + protected void paintBorder(Graphics g) { + Graphics2D g2d = (Graphics2D) g; + g2d.setColor(UIConstants.LINE_COLOR); + int buttonX = getComponent(0).getX(); + int buttonY = getComponent(0).getY(); + int height = getComponent(0).getHeight(); + int width = getComponent(0).getWidth(); + g.drawLine(buttonX + width, 0, buttonX + width, height); + width += getComponent(1).getWidth(); + g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + + g2d.drawRoundRect(buttonX - 1, buttonY - 1, width + 2, getHeight() - 1, UIConstants.ARC, UIConstants.ARC); + g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); + } + } +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomGanttTypePane.java b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomGanttTypePane.java new file mode 100644 index 0000000..c302a75 --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomGanttTypePane.java @@ -0,0 +1,49 @@ +package com.fr.plugin.third.party.jsdggac.ui; + +import com.fanruan.api.design.chart.DefaultTypePane; +import com.fr.plugin.third.party.jsdggac.CustomChartConfig; + +import javax.swing.*; +import java.awt.*; + + +public class CustomGanttTypePane extends DefaultTypePane { + //private UIButtonGroup buttonGroup = new UIButtonGroup(new String[]{DesignKit.i18nText("Fine-Plugin_Legend_Right"), DesignKit.i18nText("Fine-Plugin_Legend_Left")}); + + @Override + protected String[] getTypeIconPath() { + return new String[]{ + "com/fr/plugin/third/party/jsdggac/images/chart_type.png" + }; + } + + @Override + protected int getSelectIndexInChart(CustomChartConfig chart) { + return 0; + } + + @Override + protected void setSelectIndexInChart(CustomChartConfig chart, int index) { + //chart.setPieType(PieType.parseInt(index)); + } + + @Override + protected Component[][] getPaneComponents(JPanel typePane) { + return new Component[][]{ + new Component[]{typePane}, + //new Component[]{buttonGroup} + }; + } + + @Override + public void populateBean(CustomChartConfig ob) { + super.populateBean(ob); + // buttonGroup.setSelectedIndex(StringKit.equals("left", ob.getLegendPosition()) ? 0 : 1); + } + + @Override + public void updateBean(CustomChartConfig ob) { + super.updateBean(ob); + // ob.setLegendPosition(buttonGroup.getSelectedIndex() == 0 ? "left" : "right"); + } +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomMultiTabPane.java b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomMultiTabPane.java new file mode 100644 index 0000000..9964b21 --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomMultiTabPane.java @@ -0,0 +1,72 @@ +package com.fr.plugin.third.party.jsdggac.ui; + + +import com.fr.design.beans.FurtherBasicBeanPane; +import com.fr.design.dialog.BasicPane; +import com.fr.design.gui.ibutton.UITabGroup; + +import javax.swing.*; +import java.awt.*; +import java.util.List; + + +public abstract class CustomMultiTabPane extends FurtherBasicBeanPane { + private static final long serialVersionUID = 2298609199400393886L; + protected UITabGroup tabPane; + protected String[] NameArray; + protected JPanel centerPane; + protected CardLayout cardLayout = new CardLayout(); + protected List paneList; + + protected abstract List initPaneList(); + + public abstract void populateBean(T var1); + + public abstract void updateBean(T var1); + + public int getSelectedIndex() { + return this.tabPane.getSelectedIndex(); + } + + public CustomMultiTabPane() { + //this.relayoutWhenListChange(); + } + + public void relayoutWhenListChange() { + this.centerPane = new JPanel(this.cardLayout) { + public Dimension getPreferredSize() { + return getSelectedIndex() == -1 ? super.getPreferredSize() : paneList.get(getSelectedIndex()).getPreferredSize(); + } + }; + paneList = this.initPaneList(); + this.NameArray = new String[this.paneList.size()]; + for(int var1 = 0; var1 < this.paneList.size(); ++var1) { + BasicPane var2 = this.paneList.get(var1); + this.NameArray[var1] = var2.getTitle(); + this.centerPane.add(var2, this.NameArray[var1]); + } + + this.tabPane = new UITabGroup(this.NameArray) { + public void tabChanged(int var1) { + dealWithTabChanged(var1); + } + }; + this.tabPane.setSelectedIndex(0); + this.tabPane.tabChanged(0); + this.initLayout(); + } + + protected void dealWithTabChanged(int var1) { + this.cardLayout.show(this.centerPane, this.NameArray[var1]); + this.tabChanged(); + } + + protected void tabChanged() { + } + + protected void initLayout() { + this.setLayout(new BorderLayout(0, 4)); + this.add(this.tabPane, "North"); + this.add(this.centerPane, "Center"); + } +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomStyleContentPane.java b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomStyleContentPane.java new file mode 100644 index 0000000..1025b2c --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomStyleContentPane.java @@ -0,0 +1,47 @@ +package com.fr.plugin.third.party.jsdggac.ui; + +import com.fr.design.dialog.BasicPane; +import com.fr.plugin.third.party.jsdggac.CustomChartConfig; + +import java.util.ArrayList; +import java.util.List; + +//import com.fr.design.style.FRFontPane; + +public class CustomStyleContentPane extends CustomMultiTabPane { + private CylinderWidthConfPane cylinderWidthConfPane = new CylinderWidthConfPane(); + + @Override + protected List initPaneList() { + List tempPaneList = new ArrayList<>(); + tempPaneList.add(cylinderWidthConfPane); + return tempPaneList; + } + + @Override + public void populateBean(CustomChartConfig config) { + cylinderWidthConfPane.populate(config); + } + + @Override + public CustomChartConfig updateBean() { + CustomChartConfig config = new CustomChartConfig(); + updateBean(config); + return config; + } + + @Override + public void updateBean(CustomChartConfig config) { + cylinderWidthConfPane.update(config); + } + + @Override + public boolean accept(Object o) { + return true; + } + + @Override + public void reset() { + + } +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomStylePane.java b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomStylePane.java new file mode 100644 index 0000000..d1a6d81 --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CustomStylePane.java @@ -0,0 +1,33 @@ +package com.fr.plugin.third.party.jsdggac.ui; + +import com.fanruan.api.design.chart.BaseOtherPane; +import com.fr.plugin.third.party.jsdggac.CustomChartConfig; + +import javax.swing.*; + +public class CustomStylePane extends BaseOtherPane { + private CustomStyleContentPane contentPane; + @Override + protected JPanel createContentPane() { + contentPane = new CustomStyleContentPane(); + contentPane.relayoutWhenListChange(); + return contentPane; + } + + @Override + protected void populate(CustomChartConfig config) { + contentPane.populateBean(config); + } + + @Override + protected void update(CustomChartConfig config) { + contentPane.updateBean(config); + } + + + @Override + public String title4PopupWindow() { + return "样式"; + } + +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CylinderWidthConfPane.java b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CylinderWidthConfPane.java new file mode 100644 index 0000000..be6e6c9 --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/CylinderWidthConfPane.java @@ -0,0 +1,75 @@ +package com.fr.plugin.third.party.jsdggac.ui; + +import com.fanruan.api.design.ui.component.UILabel; +import com.fanruan.api.design.ui.layout.TableLayoutKit; +import com.fr.design.dialog.BasicPane; +import com.fr.plugin.third.party.jsdggac.CustomChartConfig; +import com.fr.plugin.third.party.jsdggac.ui.spinner.CustomUIBoundSpinner; + +import javax.swing.*; +import java.awt.*; + + +/** + * 柱形宽度配置 + */ +public class CylinderWidthConfPane extends BasicPane { + private CustomUIBoundSpinner originXBoundSpinner; + private CustomUIBoundSpinner originYBoundSpinner; + private CustomUIBoundSpinner originDiagonalXBoundSpinner; + private CustomUIBoundSpinner originDiagonalYBoundSpinner; + + public CylinderWidthConfPane() { + this.initComponents(); + } + + protected void initComponents() { + this.setLayout(new BorderLayout()); + JPanel panel0 = new JPanel(); + panel0.setLayout(new FlowLayout(0, 0, 0)); + + originXBoundSpinner = new CustomUIBoundSpinner(Integer.MIN_VALUE, Integer.MAX_VALUE, 1, 0); + originYBoundSpinner = new CustomUIBoundSpinner(Integer.MIN_VALUE, Integer.MAX_VALUE, 1, 0); + originDiagonalXBoundSpinner = new CustomUIBoundSpinner(Integer.MIN_VALUE, Integer.MAX_VALUE, 1, 0); + originDiagonalYBoundSpinner = new CustomUIBoundSpinner(Integer.MIN_VALUE, Integer.MAX_VALUE, 1, 0); + + Component[][] components = new Component[][]{ + {new UILabel("圆点大小:"), originXBoundSpinner}, + //{new UILabel("原点坐标Y:"), originYBoundSpinner}, + //{new UILabel("原点对角坐标X:"), originDiagonalXBoundSpinner}, + // {new UILabel("原点对角坐标Y:"), originDiagonalYBoundSpinner}, + }; + double p = TableLayoutKit.PREFERRED; + double[] rowSize = new double[]{p, p, p, p}; + double[] columnSize = new double[]{p, 100}; + JPanel settingsUI = TableLayoutKit.createTableLayoutPane(components, rowSize, columnSize); + this.add(settingsUI, BorderLayout.CENTER); + } + + protected String title4PopupWindow() { + return "地图设置"; + } + + public void populate(CustomChartConfig conf) { + originXBoundSpinner.setValue(conf.getOriginX()); + originYBoundSpinner.setValue(conf.getOriginY()); + originDiagonalXBoundSpinner.setValue(conf.getOriginDiagonalX()); + originDiagonalYBoundSpinner.setValue(conf.getOriginDiagonalY()); + } + + public void update(CustomChartConfig conf) { + conf.setOriginX(originXBoundSpinner.getValue()); + conf.setOriginY(originYBoundSpinner.getValue()); + conf.setOriginDiagonalX(originDiagonalXBoundSpinner.getValue()); + conf.setOriginDiagonalY(originDiagonalYBoundSpinner.getValue()); + } + + private int getIntegerValue(double value) { + int tempValue = (int) value; + if (tempValue <= 0) { + tempValue = 0; + } + return tempValue; + } + +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/ui/DisplayScaleConfPane.java b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/DisplayScaleConfPane.java new file mode 100644 index 0000000..85331b9 --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/DisplayScaleConfPane.java @@ -0,0 +1,51 @@ +package com.fr.plugin.third.party.jsdggac.ui; + +import com.fanruan.api.design.ui.component.UILabel; +import com.fr.design.dialog.BasicPane; +import com.fr.design.gui.ispinner.UISpinner; + +import java.awt.*; + +public class DisplayScaleConfPane extends BasicPane { + + private UISpinner scaleSpinner; + + + public DisplayScaleConfPane() { + this.initComponents(); + } + + protected void initComponents() { + this.setLayout(new FlowLayout(0, 0, 0)); + scaleSpinner = new UISpinner(0, 100, 1, 100); + this.add(new UILabel("比例:")); + this.add(scaleSpinner); + } + + public void populate(int value) { + if (value <= 0) { + value = 0; + } + if (value >= 100) { + value = 100; + } + scaleSpinner.setValue(value, true); + } + + public int update() { + int value = (int) scaleSpinner.getValue(); + if (value <= 0) { + value = 0; + } + if (value >= 100) { + value = 100; + } + return value; + } + + + @Override + protected String title4PopupWindow() { + return "显示比例"; + } +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/ui/spinner/CustomUIBoundSpinner.java b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/spinner/CustomUIBoundSpinner.java new file mode 100644 index 0000000..e8469c5 --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/spinner/CustomUIBoundSpinner.java @@ -0,0 +1,45 @@ +package com.fr.plugin.third.party.jsdggac.ui.spinner; + +import java.awt.event.FocusAdapter; +import java.awt.event.FocusEvent; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; + +/** + * 定制此组件,是为了修复若组件值和设置值相同时,不显示设置值问题 + */ +public class CustomUIBoundSpinner extends CustomUISpinner { + public CustomUIBoundSpinner(double minValue, double maxValue, double dierta) { + super(minValue, maxValue, dierta); + } + + public CustomUIBoundSpinner(double minValue, double maxValue, double dierta, double defaultValue) { + super(minValue, maxValue, dierta, defaultValue); + } + + @Override + protected void initTextFiledListeners() { + this.getTextField().addFocusListener(new FocusAdapter() { + @Override + public void focusLost(FocusEvent e) { + setTextFieldValue(getTextField().getValue()); + setTextField(value); + } + }); + + this.getTextField().addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent e) { + if (e.getKeyCode() == KeyEvent.VK_ENTER) { + setTextFieldValue(getTextField().getValue()); + setTextField(value); + } + } + }); + } + + @Override + protected void setTextField(double value) { + this.getTextField().setValue(value); + } +} diff --git a/src/main/java/com/fr/plugin/third/party/jsdggac/ui/spinner/CustomUISpinner.java b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/spinner/CustomUISpinner.java new file mode 100644 index 0000000..393bb71 --- /dev/null +++ b/src/main/java/com/fr/plugin/third/party/jsdggac/ui/spinner/CustomUISpinner.java @@ -0,0 +1,399 @@ +package com.fr.plugin.third.party.jsdggac.ui.spinner; + +import com.fr.design.constants.UIConstants; +import com.fr.design.event.GlobalNameListener; +import com.fr.design.event.GlobalNameObserver; +import com.fr.design.event.UIObserver; +import com.fr.design.event.UIObserverListener; +import com.fr.design.gui.ibutton.UIButton; +import com.fr.design.gui.ibutton.UIButtonUI; +import com.fr.design.gui.itextfield.UINumberField; +import com.fr.design.utils.gui.GUIPaintUtils; +import com.fr.stable.CommonUtils; +import com.fr.stable.Constants; +import com.fr.stable.StringUtils; + +import javax.swing.*; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.plaf.ButtonUI; +import java.awt.*; +import java.awt.event.*; + +/** + * 定制此组件,是为了修复若组件值和设置值相同时,不显示设置值问题 + */ +public class CustomUISpinner extends JPanel implements UIObserver, GlobalNameObserver { + protected double value; + private static final int SIZE = 20; + private static final int LEN = 13; + private static final int WIDTH = 13; + private static final int HEIGHT = 10; + private static final int DEFAULT_NUMBERFIELD_COLUMNS = 2; + private UINumberField textField; + private UIButton preButton; + private UIButton nextButton; + private double minValue; + private double maxValue; + private double dierta; + private String spinnerName = StringUtils.EMPTY; + private UIObserverListener uiObserverListener; + private GlobalNameListener globalNameListener = null; + private boolean lessMinValue = false; + /** + * Spinner内的数字文本框长度 + */ + private int numberFieldColumns; + + + public CustomUISpinner(double minValue, double maxValue, double dierta) { + init(minValue, maxValue, dierta); + } + + public CustomUISpinner(double minValue, double maxValue, double dierta, double defaultValue) { + init(minValue, maxValue, dierta); + textField.setValue(defaultValue); + } + + private void init(double minValue, double maxValue, double dierta) { + this.minValue = minValue; + this.maxValue = maxValue; + this.dierta = dierta; + initComponents(); + iniListener(); + } + + private void iniListener() { + if (shouldResponseChangeListener()) { + this.addChangeListener(new ChangeListener() { + @Override + public void stateChanged(ChangeEvent e) { + if (uiObserverListener == null) { + return; + } + uiObserverListener.doChange(); + } + }); + } + } + + /** + * 给组件分别加上FocusListener + * + * @param focusListener 监听事件 + */ + public void addUISpinnerFocusListenner(FocusListener focusListener) { + this.addFocusListener(focusListener); + this.textField.addFocusListener(focusListener); + this.preButton.addFocusListener(focusListener); + this.nextButton.addFocusListener(focusListener); + + } + + public double getValue() { + return value; + } + + @Override + public void setGlobalName(String name) { + spinnerName = name; + } + + public UINumberField getTextField() { + return textField; + } + + public UIButton getNextButton() { + return nextButton; + } + + public boolean isLessMinValue() { + return lessMinValue; + } + + public void resetLessMinValue() { + lessMinValue = false; + } + + public void setValue(double value) { + setValue(value, true); + } + + /** + * 赋值但不触发保存,只是展现,一般是populate的时候用 + * + * @param value + */ + public void setValueWithoutEvent(double value) { + setValue(value, false); + } + + public void setValue(double value, boolean fireStateChange) { + if (globalNameListener != null && shouldResponseNameListener()) { + globalNameListener.setGlobalName(spinnerName); + } + lessMinValue = value < minValue; + value = lessMinValue ? minValue : value; + value = value > maxValue ? maxValue : value; + //if (CommonUtils.equals(value, this.value)) { + //return; + //} + this.value = value; + setTextField(value); + if (fireStateChange) { + fireStateChanged(); + } + } + + protected void setTextField(double value) { + textField.getDocument().removeDocumentListener(docListener); + textField.setValue(value); + textField.getDocument().addDocumentListener(docListener); + } + + public void setTextFieldValue(double value) { + if (globalNameListener != null && shouldResponseNameListener()) { + globalNameListener.setGlobalName(spinnerName); + } + lessMinValue = value < minValue; + value = lessMinValue ? minValue : value; + value = value > maxValue ? maxValue : value; + + if (CommonUtils.equals(value, this.value)) { + return; + } + this.value = value; + fireStateChanged(); + } + + /** + * 设置Spinner内的数字输入框列数 + * + * @param numberFieldColumns 输入框列数 + */ + public void setNumberFieldColumns(int numberFieldColumns) { + textField.setColumns(numberFieldColumns); + } + + @Override + public void setEnabled(boolean flag) { + super.setEnabled(flag); + this.textField.setEnabled(flag); + this.preButton.setEnabled(flag); + this.nextButton.setEnabled(flag); + } + + @Override + public Dimension getPreferredSize() { + Dimension dim = super.getPreferredSize(); + dim.height = SIZE; + return dim; + } + + /** + * 增加 a ChangeListener to the listener list. + * + * @param l 监听事件 + */ + public void addChangeListener(ChangeListener l) { + this.listenerList.add(ChangeListener.class, l); + } + + /** + * 移除 a ChangeListener from the listener list. + * + * @param l 监听事件 + */ + public void removeChangeListener(ChangeListener l) { + this.listenerList.remove(ChangeListener.class, l); + } + + // august: Process the listeners last to first + protected void fireStateChanged() { + Object[] listeners = listenerList.getListenerList(); + + for (int i = listeners.length - 2; i >= 0; i -= 2) { + if (listeners[i] == ChangeListener.class) { + ((ChangeListener) listeners[i + 1]).stateChanged(new ChangeEvent(this)); + } + } + } + + private class ButtionUI extends UIButtonUI { + private boolean isNormalPaint = true; + + @Override + protected void doExtraPainting(UIButton b, Graphics2D g2d, int w, int h, String selectedRoles) { + if (isPressed(b) && b.isPressedPainted()) { + isNormalPaint = false; + Color pressColor = UIConstants.COMBOBOX_BTN_PRESS; + GUIPaintUtils.fillPressed(g2d, 0, 0, w, h, b.isRoundBorder(), b.getRectDirection(), b.isDoneAuthorityEdited(selectedRoles), pressColor); + } else if (isRollOver(b)) { + isNormalPaint = false; + Color hoverColor = UIConstants.COMBOBOX_BTN_ROLLOVER; + GUIPaintUtils.fillRollOver(g2d, 0, 0, w, h, b.isRoundBorder(), b.getRectDirection(), b.isDoneAuthorityEdited(selectedRoles), b.isPressedPainted(), hoverColor); + } else if (b.isNormalPainted()) { + isNormalPaint = true; + GUIPaintUtils.fillNormal(g2d, 0, 0, w, h, b.isRoundBorder(), b.getRectDirection(), b.isDoneAuthorityEdited(selectedRoles), b.isPressedPainted()); + } + } + + @Override + protected void paintModelIcon(ButtonModel model, Icon icon, Graphics g, JComponent c) { + if (isNormalPaint) { + g.setColor(UIConstants.COMBOBOX_BTN_NORMAL); + g.fillRect(0, 0, c.getWidth(), c.getHeight()); + } + super.paintModelIcon(model, icon, g, c); + } + } + + private void initComponents() { + textField = initNumberField(); + textField.setMaxValue(maxValue); + textField.setMinValue(minValue); + setValue(value); + preButton = new UIButton(UIConstants.ARROW_UP_ICON) { + @Override + public boolean shouldResponseChangeListener() { + return false; + } + + @Override + public ButtonUI getUI() { + return new ButtionUI(); + } + }; + preButton.setRoundBorder(true, Constants.LEFT); + nextButton = new UIButton(UIConstants.ARROW_DOWN_ICON) { + @Override + public boolean shouldResponseChangeListener() { + return false; + } + + @Override + public ButtonUI getUI() { + return new ButtionUI(); + } + }; + nextButton.setRoundBorder(true, Constants.LEFT); + setLayout(new BorderLayout()); + add(textField, BorderLayout.CENTER); + JPanel arrowPane = new JPanel(); + arrowPane.setPreferredSize(new Dimension(LEN, SIZE)); + arrowPane.setLayout(new GridLayout(2, 1)); + preButton.setBounds(0, 1, WIDTH, HEIGHT); + nextButton.setBounds(0, HEIGHT, WIDTH, HEIGHT); + arrowPane.add(preButton); + arrowPane.add(nextButton); + add(arrowPane, BorderLayout.EAST); + componentInitListeners(); + } + + private void componentInitListeners() { + preButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + setValue(value + dierta); + } + }); + nextButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + setValue(value - dierta); + } + }); + addMouseWheelListener(new MouseWheelListener() { + + @Override + public void mouseWheelMoved(MouseWheelEvent e) { + if (isEnabled() && e.getScrollType() == MouseWheelEvent.WHEEL_UNIT_SCROLL) { + setValue(value - e.getWheelRotation()); + } + } + }); + initTextFiledListeners(); + } + + protected void initTextFiledListeners() { + textField.getDocument().removeDocumentListener(docListener); + textField.getDocument().addDocumentListener(docListener); + textField.addFocusListener(new FocusAdapter() { + @Override + public void focusLost(FocusEvent e) { + textField.getDocument().removeDocumentListener(docListener); + textField.setValue(value); + textField.getDocument().addDocumentListener(docListener); + } + }); + } + + protected UINumberField initNumberField() { + int columns = this.numberFieldColumns == 0 ? DEFAULT_NUMBERFIELD_COLUMNS : this.numberFieldColumns; + return new UINumberField(columns) { + @Override + public boolean shouldResponseChangeListener() { + return false; + } + }; + } + + private DocumentListener docListener = new DocumentListener() { + @Override + public void removeUpdate(DocumentEvent e) { + setTextFieldValue(textField.getValue()); + } + + @Override + public void insertUpdate(DocumentEvent e) { + setTextFieldValue(textField.getValue()); + } + + @Override + public void changedUpdate(DocumentEvent e) { + setTextFieldValue(textField.getValue()); + } + }; + + /** + * 给组件登记一个观察者监听事件 + * + * @param listener 观察者监听事件 + */ + @Override + public void registerChangeListener(UIObserverListener listener) { + uiObserverListener = listener; + } + + /** + * 组件是否需要响应添加的观察者事件 + * + * @return 如果需要响应观察者事件则返回true,否则返回false + */ + @Override + public boolean shouldResponseChangeListener() { + return true; + } + + /** + * 给组件登记一个全局名字观察者监听事件 + * + * @param listener 观察者监听事件 + */ + @Override + public void registerNameListener(GlobalNameListener listener) { + globalNameListener = listener; + } + + /** + * 组件是否需要响应添加的观察者事件 + * + * @return 如果需要响应观察者事件则返回true,否则返回false + */ + @Override + public boolean shouldResponseNameListener() { + return true; + } +} diff --git a/src/main/resources/com/fr/plugin/third/party/jsdggac/images/bbb.png b/src/main/resources/com/fr/plugin/third/party/jsdggac/images/bbb.png new file mode 100644 index 0000000000000000000000000000000000000000..548418dc3af2d0cb1ed00af293509af37328161b GIT binary patch literal 197335 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%0At~uxp##Dw(LRFNdZt{cyF9h@Xl7LFiR&-ikNm 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 z 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/com/fr/plugin/third/party/jsdggac/images/chart_type_demo.png b/src/main/resources/com/fr/plugin/third/party/jsdggac/images/chart_type_demo.png new file mode 100644 index 0000000000000000000000000000000000000000..5f763cc6451430e15c421059c8cb7eb8118c854b GIT binary patch literal 7471 zcmds+_cz>681F?8Er^8ZHAvPfiRdkQjRayDPz31L@|Al++4|C=`&w1v|%xC62^L{;_ctZoN+th5-BqSuab+pxuNJwq~ z|7(;K*PeioWY~3g!`nzpm8AM7$L6&`_D1Eo3JFPV3e7o`{Mx2^t8L~@LPGcBzjh-- zn2w!HXI#dta-2$`RZ4*`75?!we2wqY z1*zL+FrUfe3*km#0)XNnwr!82^WUfc;hwd7V;h#(%+e?YAJ9+aQlQZMS(oi$o$4=P4I;)>P{jAMb=ADItM zmHU#{=k1jv)0+%acF^Sw)*|S#vAc=}`Bo2Y(gYsE$_|j}ks3;BWZ5=){B|yKsH$u;##j!2XLp%zNq@-5_6GH=b&v5ZlWyTX11A`JsCXqe&3w>d#GW2qx00(P7o_D=QBknX*`@)s zMiRc8Yo|ReRq@rlK%={0%_5yZE=!%;aHRHfV&)sITwSUF{ z9(@UwWVX?n5x1n2EWX>R*b{OZQl2xXW~-4Pdqdh}m-`8S*uUfz!aX}GAi-M`(wNe< zzrpue*Um8%dwLdAL&h0_Uh&2U?oh(r$9wSE?P>P9@>_|t_rUuq!uQoNRCclve$yZP z?&G`Jdlw?KdkTEZj59`$#F5_x1xgyWhF@+&Az7E)Dv(}H~W zT0=Xi;O^oN-ZRJrSIPrxpV!~wuH`>YbXE;5EDADf!WJKdAg6bo4avZ2NorsD9IOl% z@#l(GY=X%7=f2&QL9|rt#Nj$~^JG#Rh4*dZ-7Ot|dd8YeVr$n7eQ`Y;WA8uH>0XDK zK$1>g?8R|%#n8#mi8oa~ifOE?0z)z-jrP=h30n#=Gq@HWB-^I#U!&gvv5$+xV#%Iz zD#g-sQo$cXwWojV88uqdUf<&D4H{0!SI{j=dHl@Qk@4@=T`XV#ckm(E`~&WZ^OvQp z)Sw`P%IgI@7Wq;Nr-$>zb_k)w_> zZpdGdQRz6gn~)>d1Ni*v`in`a8D2+>r4~US?Gk_MUpmfB0G*~B0ytxzTjWK^-hH~T zCF5mEf>r*!EB?`|@99&->hIre<_8dM`#Wtc0nU^NN4=xpVZBy2S?eSh%qE%wLz$1k z^@U9?BDxP7y>ukTbVjViNB8^AMa&#S7IE==6}-q-oA@C~^ac8Cfezajs_{u`u#p+g zy}ggYq@Mi4E*t1!4BoVY&sSo$oyTlyZY8^-6|!7(r8I0cJWWmO{y3v;Qdvb6=gVEU z_?jh%QtRoV3Yqv$kt$+FrMYUQxml-Ad!L!3qO}KSVXmhQfFgp4zo9j~Z_n!B$`tpt zP}zqZYjkny=jj(2OlS_UBj^?!lo96Na06{z-5sy<;7PY(*y!xmZVToWIxpx88Ccv8 z2HV?DZvAKXQipuR3lzB}epSX(WE!O+VUK=LCYc|$W8<*5{LSd`=2?o}St`**mF;Sx zGxq@PM~N^@#_J9=eTVs)r8b}Tv!gK{wI04xujI%9HRV2r`PDFs$}4rLKlEX=l!emw z@jU~PDN!5q_fr`mf_0)=fKq(b8t1*r2MwV#n=YHur>D!JIp*bah1cmZ>wd2r=q2d> z8)CKW!w0H6c@*)T(hlZj>-Yew(;cf98(+e^*x0dj3?4wpA{xMHp5>d6%S)Sl9`wOp z#mj}sOH8q+fBWic(3gIw?W4V$>Kha#@I$>kKH2_u>X@^$1$Re>Jn1Ti$QaQ<`(w7C zQL+B9akFOSc6epr#k;$gOC^VLTV!KLe&y9<5%zby8aV=JGP1S-9`G2)>C*BCzbiwi zu;X2w0@O`|P9}_okA+@ty*yu4DA(uZ8|(P{z-!auwA<~>Qo|3H(P2ZY_C4LZI2yP1 zh;(?UBeQSuA%R=cG-;O61)1Z0D`Ohr3}2mBwOMqQN08m-(6TA%S1o z>A6)uwIt_EoQZ?pRM$XnXD*J7WnzA(#-;O~J4}BJo*Sk#hUj!|Ehhg+E8NOkIye-m zK$ubj?_N;Q&b;$;tFfl`>XIXdml>7~fn4&Ci;z!%2m+ZUz^G|y!Xt9X%>q_OWx zZ8*L=h#VZ`4MaYq(S$hXR;r_M8K3(Wqg zQu-Ne>~_blt+NP%K{*8yGhHXle6JNuEUpr#jnyd<3xcQ%y zuio6rAs<;2##!mzS7kf=S%YmJmkdNbC(CBF*0Ob~Zj?5{%=t!sOq#|4REL^<`}4$Ar%X(WWZ+!A9W+h&6!ykg>Rc*Xd+adZ#fECfY3zBg-uD$l!E>nJxZt zPxU%n*wLD~Uy*ZlWo#mPGSwW;1=1;C^{}&g&Ffh6Y7Jg0=N-yTCHx{z)9pq{Y-Dvv z{U^s6se`UMLe;7W;funA<~D^BpJK+orJ5c8^g&<#D)KYOPCjlqc6Duh)M|89?U^a1 zgQD0)NIN=P43TitQe5jw7isG=_x`3HZr~5S4l@`njSOA+;fmwYGCQF9A;W4j6 zN0UU;^qH(Pd)Cij7!$@@^MV;%@NBeu=-|xN>!@Z`ap2uAH;LN_1%$rGY84Xj z$+rwRh#f$Fp)LO=EYUV*_S!rsUxA%B3C3zYE2un_Anm&0pp48|ZOa3%d{@}2@gb?Z zUJ0<~94Ha^RWRVVPa-NqTm)3^ZL+Yuk@zjNaFrZ5J^!()idvS11?Be-TV2aNt=nkB zKelMIOUOsffFKwofXLeju2Wz8w#w9=o^QYn3?G$T`x)d30#*Ia%Wrj27O9 z+6qBSPctP9&2mQpNY~-}btTy~Mza=+DkeCCQNnZqVf(Y?v%@11LR5^xO_lm^5HUdh zp+~QBFV%+Gro~^psVN$@zzGp|mMY{evfmK6pbeXBt>r&q-D!qkf0LjQ%y>A9;JV91I>OR3}+?B;GeRYeHHg# zQ-w(asw1^3l6a_2WjPSre_63w1=HC#-%biSsrar|71@fYF-Vw z_t9wG`T`fWm;_bA#bjHLi!C8|3kG6;hZKN|^F8md%;8vK2j5{H1LWrCR<=*H{hTy< zdS)Pd)|_={bL+K8?pf~4j@qHdUow!D>i;C()J>K-7%LI>%QuT)z;2f z5AQp!psTJH6Lja3x0SSxQwTAEgg_t4l=lpY*3^-r6rnx(+_;-iN`w;fkMk@?jYk}! zwV0D3iWj<`dHkG|3hpG+R)R{BNeePQ$sFQA%B?xp-35Q}+A-<~&7>tSG1xAUz1ES( zNsE;5N7v5`_dUOxI{M^R)U;)k2!m<%S{%HN$0|s^FI)Qq5CQRKy52$fCSUG8MG_86 z6>nB9d?WYj4U-fUL{lH-CNaVijmYa$_jjN*Lyglifny((cZ>Ok>&U?A4X_DkOh%wV zovA30gb9QsT_u{Fhn0*u{58XWhV2b)iirQW9f_sj`CH?~Sz|Wv|1>|q-Et0;a-480 zPSy5?NL}>D!T$qWw92F|tFGMPeqy`jg`y$}S}cA48)wjs(~B>!EY})oRcw>;cH=}m z4ulB4Xq8Kbd`F>AmaDLHJf^xeL@JC{g4AU@`NdQaeHMOwx#;$H^pug}2~j=dveI9M zfoS1Q1}3HB?gVppJmiwm7it(;`qi+0m#9FOw1nb}$aohAaAE67@HCNEgZeva*$VJ( z-&81-CPLsva$}w&BhYxwcGifDxKw&%dq>%1KOXg~qhc;K?kwo*k$F>W#!kGoi*@ctQ<+f&iYl84pDOf{FJ!c(rCELoMK4NlsQQ>bRB2S zE5SMw+Llof!Bbzcgn#tWcI;Etx{WF8;y(TZ#YPeUU{=Wy{jl`n=J>bVMO+Zh`)A=1 zcfOc@wN9HMw>f~1_l7sDrlV5Z`j;3N3QV7T&~GJE7PgoQ*jm1PhkU|=bS9q8=rCKp z@ge_Lchan~$-jTPyz?>7MK&r#Z420d+WjYqzEuD(SSQ@}_%Z1179K#8P5>1K@q};9)l&WUx;LtmNC)A;F77t%oYGtx?>%@`?iS7a!aNi>vhH zqXgDOw@&=wMe&~z)x@9Ez?PDh-Ho*_VTOOqw6d!#pMQJZp%)?#ymV=3q1&~1W=k&P zU-oUK3-R-W^U{32HZ{5=7b-B!;JfQCR+UQ8rKRD&pfGeLq8S8QX=i}&lEy@bn8q{B*GHP>v7P0D-X>|T&I8JFEuK` zfdK2*u3u1{5>rZ4Xx8Up3w7}@;Xu14lV|7tS<*$X~^r&$-8e*qYo5@D1sKf>~nF~3)%M&@w$jS zu@bbmJ$O0F`}?cwrvsf?c`Gg@Ddqc#7tydbo&Y*~(&hJ;=9?ESfT>3cS`~cASq9I# zN_c=6ca$g?vH0!JA{IX7_(_7)%RI@6W;J-s_o6wZ32rTaoM3~3_{!f?=O+Wh6QJ2# z)~+~%vj+u5_PI2M!%k;fLD1Yj0qKz$7Nxmky{wKCtbsEw(Z&w+>Y)sf6i#k`fbju` zJ=*$k;;`sUsKE^O>tM)1HKcdzfF(cQ`aDf;>ZuIo8rdpg#;09+G{HAM4G@C5qj@Pb zY?I<$90S@-Qf>yC%#4@ywenPOp!EHhN`T}QV0|M{v;zGt(*?C30JA~dEF*=LlSO^{ zC{Gn7g3EqAt_4@lJmV`=pobp*Wn=KD)@mPLx_&S3kZ>^j(zN<-c^NU2J~ArmW3bdOl%XZ*x|*k5;AY9My|`qN9%MNxK3lm zNcAk-;^z>>X^wzq!FZ}lqfk!_8i=d`tM?Hg$IqhVAA znV_q=h#oO<^t5oVHWst}e_8`{?9pB}_2ZY!ra$AQSGvs0wIa4WqDJ<6flpl3 z0=|gFW?`WDWmzk^_UvcJKdUUOWFH_7$B6_!gzma%Z*=BB>~W?Q&-g&QFk<^&64HXb zP3KQX9g+*Q(XG{4O8hR#<>~~x_+&rUCWi1~I!m!<3d$d6^z!Yo(3s=(1wTG~#q8aa ziu8tO_orH$<=ZpBjUx|VS}kHQRHxv9GC8&KXnkgF$Y}w=PfTp;Xvq7MVhVfGVQUcx z02gifwN;tYh1br{?hn?A2tF~*3LXKUH5B?2qI33XmzM1OAcGPj^{tEeH*WR#DlW1i zytXPlsp%PR%h@Ao;aakZOka+Rp~KjID)gmNe{VQ=HUNG!na4W4LtA5lfc~; zqvj(lW+q4QXp`aOf-6-iFAIgRO-8r$aqm>fSi{V3Jj{8nw(sj{m850Ymft`IoCfW~R7vdKb zRUJ4AMbPWS=jKel|$PVpZ+w5;hTBDf`_+=KK2kJKUwH{V{sf))=2#Gg{ z(~`nL84Fx&JB8>U-_LgF^A3&i+j^*$SD~(n?4>z?Slc9KBBObUhHay5E^!~^NLVR=!IH*MQc{M^V+>^NNZ(%l|gFf+GS(@q=WA{MLZp&c~hT1eWF{7 zWd~~n`Y~$`8TVhspaAw4nUbOYBNu5vggbiSC7)M-O25HXW=GBv?>aNH+A-cOgo()4 z3548XgzWWl)Knb#Z-Ab8fdulP5k6fuw`6# zTo*O7HPpYxvLx2E?=r3|E##kpXIXcvks|wqNhN8BOM__^)KThCA6#N3=vt$qa#`o< ztrTKMPuSx@l72K^M@?D|RaWYV_0A07ENtcCBoF?!udFeiOuEbwh# zZ<@gIb6d_?-B$Laka(;mNMNo&Jr*=>bR)z^Is|;)g9wg>H99+^F7#PeN|AvqO+GUl zgwe0y4AT)PJpp_;V@EmnL|IoUTMeE zSn2r3tfnpK2U$jW!5()%YN#b2G$k_0>pW-df~3!IlGWm@i?`Ev+)Tavs26-YrfXuK z3*>JYUnOzLpWkc(F={*)ujAiZO8Jv5cRHQ9j)wKZ%ne-lUT}DS}R5E$`g+9JzTJ)=tzf=Jw8g%3vB{n~8Kt84JwpzsMIbWi={dK; zU$ZG5>k7LK1_nMB^6)dVzwHl5t+}%Z?pcgHplTlFM{=OwCvHu=aFc0Xx4!j22t;T( z7IIiHTj!AYP<)X1M%!^gVpo-|bFWAx<)Y=08L)BrvSE-xsMt9*6a-g$MpNPNj`=Iz zB0ysqtf3?(xZftJ_`)-By}K-=Ln)uC1qtU6m;Dtu8ceE37AjNX3vtwMBHV8K<_roB zN1w^^%27?GQDmAFJs!5Hth{m0>+^L1X;c{bq%QBflG?Nfgo!k{$qqB<{U^X+_AGmW zJiwR?)5J;vhL+3@G(!ofUP|7dWMA&p4Hay-Nd{I` z&3ZN^z@21}X)ralwkQu_(Bg=qM7WVL_YF_yj~Rx)!;I8O~SXms-Q~spnsyerZSvCUkXw`|CEAV;v@RflBsMJ}odn z8r)U{+VWKEkhASLm_WLo>0`5jW;N2X-ek<;ACtE9GhZ_w>N(s>q6FHC)4+PigFWm! vtKy4euaWV8!sP!4{P@3En6YT;>SlrYjzEMFy5ssMCy9=RfqJ#7?YsX0bE8|Q literal 0 HcmV?d00001 diff --git a/src/main/resources/com/fr/plugin/third/party/jsdggac/web/common.css b/src/main/resources/com/fr/plugin/third/party/jsdggac/web/common.css new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/com/fr/plugin/third/party/jsdggac/web/customGanttPlusWrapper.js b/src/main/resources/com/fr/plugin/third/party/jsdggac/web/customGanttPlusWrapper.js new file mode 100644 index 0000000..95b8296 --- /dev/null +++ b/src/main/resources/com/fr/plugin/third/party/jsdggac/web/customGanttPlusWrapper.js @@ -0,0 +1,65 @@ +!(function () { + Van.FRChartBridge.customChartJsdggacWrapper = Van.FRChartBridge.AbstractChart.extend({ + _init: function (dom, option) { + //debugger; + var globeChart = echarts.init(dom); + this._setConfigJsdggac(globeChart,option,false); + //globeChart.setOption(globalOption); + return globeChart; + }, + _refresh: function (chart, option) { + this._setConfigJsdggac(chart,option,true); + }, + _setConfigJsdggac: function (earthChart, option, refreshOption) { + if (!(option.dataStatus === true)) { + return; + } + var mapConfig = option.mapConfig; + var datas = option.datas; + + var globalOption = { + backgroundColor: 'transparent', + geo: { + map: 'custom_map', + //aspectScale: 1, // 宽高比 + //layoutCenter: ['50%', '50%'], // 位置 + //layoutSize: 100, // 大小 + left: 0, + top: 0, + right: 0, + bottom: 0, + silent: false, + roam: false, + //zoom: 0.95, //当前视角的缩放比例 + //aspectScale: 0.86, + itemStyle: { + borderWidth: 0, + }, + }, + + series: [{ + type: 'scatter', + coordinateSystem: 'geo', + symbolSize: mapConfig.originX, + itemStyle: { + color: 'red' + }, + data: datas, + + }] + }; + if (refreshOption && (refreshOption == true)) { + earthChart.setOption(globalOption, true); + return; + } + earthChart.setOption(globalOption); + }, + _resize: function (chart) { + chart.resize(); + }, + + _emptyData: function (options) { + return options.series.data.length === 0; + } + }) +})(); diff --git a/src/main/resources/com/fr/plugin/third/party/jsdggac/web/custom_map.js b/src/main/resources/com/fr/plugin/third/party/jsdggac/web/custom_map.js new file mode 100644 index 0000000..fc76a5d --- /dev/null +++ b/src/main/resources/com/fr/plugin/third/party/jsdggac/web/custom_map.js @@ -0,0 +1,65 @@ +/* +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ + +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['exports', 'echarts'], factory); + } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') { + // CommonJS + factory(exports, require('echarts')); + } else { + // Browser globals + factory({}, root.echarts); + } +}(this, function (exports, echarts) { + var log = function (msg) { + if (typeof console !== 'undefined') { + console && console.error && console.error(msg); + } + } + if (!echarts) { + log('ECharts is not Loaded'); + return; + } + if (!echarts.registerMap) { + log('ECharts Map is not loaded') + return; + } + + var widthValue = 4232; + var heightValue = 1240; + + widthValue = 5992; + heightValue = 2104; + + widthValue = 6075; + heightValue = 2153; + + widthValue = 10040; + heightValue = 2952; + + widthValue = 6033; + heightValue = 2121; + + var svgContent = '\n' + + '\n' + + ''; + echarts.registerMap('custom_map', {svg: svgContent}); +})); diff --git a/src/main/resources/com/fr/plugin/third/party/jsdggac/web/echarts-adapter.js b/src/main/resources/com/fr/plugin/third/party/jsdggac/web/echarts-adapter.js new file mode 100644 index 0000000..2aa0f20 --- /dev/null +++ b/src/main/resources/com/fr/plugin/third/party/jsdggac/web/echarts-adapter.js @@ -0,0 +1,7 @@ +var document = { + createElement: function(element) { + if (element == 'canvas') { + return new Canvas(); + } + }, +}; diff --git a/src/main/resources/com/fr/plugin/third/party/jsdggac/web/echarts-gl.min.js b/src/main/resources/com/fr/plugin/third/party/jsdggac/web/echarts-gl.min.js new file mode 100644 index 0000000..ef77609 --- /dev/null +++ b/src/main/resources/com/fr/plugin/third/party/jsdggac/web/echarts-gl.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("echarts")):"function"==typeof define&&define.amd?define(["echarts"],t):"object"==typeof exports?exports["echarts-gl"]=t(require("echarts")):e["echarts-gl"]=t(e.echarts)}(self,(function(e){return(()=>{"use strict";var t={468:(e,t,r)=>{r.r(t);var i=r(83);function n(e,t,r){"object"==typeof t&&(r=t,t=null);var i,n=this;if(!(e instanceof Function))for(var s in i=[],e)e.hasOwnProperty(s)&&i.push(s);var l=function(t){if(n.apply(this,arguments),e instanceof Function?a(this,e.call(this,t)):o(this,e,i),this.constructor===l)for(var r=l.__initializers__,s=0;s=400?e.onerror&&e.onerror():e.onload&&e.onload(t.response)},e.onerror&&(t.onerror=e.onerror),t.send(null)}};var F,z={supportWebGL:function(){if(null==F)try{var e=document.createElement("canvas");if(!e.getContext("webgl")&&!e.getContext("experimental-webgl"))throw new Error}catch(e){F=!1}return F}};z.Int8Array="undefined"==typeof Int8Array?Array:Int8Array,z.Uint8Array="undefined"==typeof Uint8Array?Array:Uint8Array,z.Uint16Array="undefined"==typeof Uint16Array?Array:Uint16Array,z.Uint32Array="undefined"==typeof Uint32Array?Array:Uint32Array,z.Int16Array="undefined"==typeof Int16Array?Array:Int16Array,z.Float32Array="undefined"==typeof Float32Array?Array:Float32Array,z.Float64Array="undefined"==typeof Float64Array?Array:Float64Array;var G={};"undefined"!=typeof window?G=window:void 0!==r.g&&(G=r.g),z.requestAnimationFrame=G.requestAnimationFrame||G.msRequestAnimationFrame||G.mozRequestAnimationFrame||G.webkitRequestAnimationFrame||function(e){setTimeout(e,16)},z.createCanvas=function(){return document.createElement("canvas")},z.createImage=function(){return new G.Image},z.request={get:B.get},z.addEventListener=function(e,t,r,i){e.addEventListener(t,r,i)},z.removeEventListener=function(e,t,r){e.removeEventListener(t,r)};const U=z;var k=function(){this.head=null,this.tail=null,this._length=0};k.prototype.insert=function(e){var t=new k.Entry(e);return this.insertEntry(t),t},k.prototype.insertAt=function(e,t){if(!(e<0)){for(var r=this.head,i=0;r&&i!=e;)r=r.next,i++;if(r){var n=new k.Entry(t),a=r.prev;a?(a.next=n,n.prev=a):this.head=n,n.next=r,r.prev=n}else this.insert(t)}},k.prototype.insertBeforeEntry=function(e,t){var r=new k.Entry(e),i=t.prev;i?(i.next=r,r.prev=i):this.head=r,r.next=t,t.prev=r,this._length++},k.prototype.insertEntry=function(e){this.head?(this.tail.next=e,e.prev=this.tail,this.tail=e):this.head=this.tail=e,this._length++},k.prototype.remove=function(e){var t=e.prev,r=e.next;t?t.next=r:this.head=r,r?r.prev=t:this.tail=t,e.next=e.prev=null,this._length--},k.prototype.removeAt=function(e){if(!(e<0)){for(var t=this.head,r=0;t&&r!=e;)t=t.next,r++;return t?(this.remove(t),t.value):void 0}},k.prototype.getHead=function(){if(this.head)return this.head.value},k.prototype.getTail=function(){if(this.tail)return this.tail.value},k.prototype.getAt=function(e){if(!(e<0)){for(var t=this.head,r=0;t&&r!=e;)t=t.next,r++;return t.value}},k.prototype.indexOf=function(e){for(var t=this.head,r=0;t;){if(t.value===e)return r;t=t.next,r++}},k.prototype.length=function(){return this._length},k.prototype.isEmpty=function(){return 0===this._length},k.prototype.forEach=function(e,t){for(var r=this.head,i=0,n=void 0!==t;r;)n?e.call(t,r.value,i):e(r.value,i),r=r.next,i++},k.prototype.clear=function(){this.tail=this.head=null,this._length=0},k.Entry=function(e){this.value=e,this.next=null,this.prev=null};const V=k;var H=function(e){this._list=new V,this._map={},this._maxSize=e||10};H.prototype.setMaxSize=function(e){this._maxSize=e},H.prototype.put=function(e,t){if(!this._map.hasOwnProperty(e)){var r=this._list.length();if(r>=this._maxSize&&r>0){var i=this._list.head;this._list.remove(i),delete this._map[i.key]}var n=this._list.insert(t);n.key=e,this._map[e]=n}},H.prototype.get=function(e){var t=this._map[e];if(this._map.hasOwnProperty(e))return t!==this._list.tail&&(this._list.remove(t),this._list.insertEntry(t)),t.value},H.prototype.remove=function(e){var t=this._map[e];void 0!==t&&(delete this._map[e],this._list.remove(t))},H.prototype.clear=function(){this._list.clear(),this._map={}};const W=H;var j={},X={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function q(e){return(e=Math.round(e))<0?0:e>255?255:e}function Z(e){return e<0?0:e>1?1:e}function Y(e){return e.length&&"%"===e.charAt(e.length-1)?q(parseFloat(e)/100*255):q(parseInt(e,10))}function K(e){return e.length&&"%"===e.charAt(e.length-1)?Z(parseFloat(e)/100):Z(parseFloat(e))}function Q(e,t,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?e+(t-e)*r*6:2*r<1?t:3*r<2?e+(t-e)*(2/3-r)*6:e}function J(e,t,r){return e+(t-e)*r}function $(e,t,r,i,n){return e[0]=t,e[1]=r,e[2]=i,e[3]=n,e}function ee(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var te=new W(20),re=null;function ie(e,t){re&&ee(re,t),re=te.put(e,re||t.slice())}function ne(e,t){var r=(parseFloat(e[0])%360+360)%360/360,i=K(e[1]),n=K(e[2]),a=n<=.5?n*(i+1):n+i-n*i,o=2*n-a;return $(t=t||[],q(255*Q(o,a,r+1/3)),q(255*Q(o,a,r)),q(255*Q(o,a,r-1/3)),1),4===e.length&&(t[3]=e[3]),t}j.parse=function(e,t){if(e){t=t||[];var r=te.get(e);if(r)return ee(t,r);var i,n=(e+="").replace(/ /g,"").toLowerCase();if(n in X)return ee(t,X[n]),ie(e,t),t;if("#"===n.charAt(0))return 4===n.length?(i=parseInt(n.substr(1),16))>=0&&i<=4095?($(t,(3840&i)>>4|(3840&i)>>8,240&i|(240&i)>>4,15&i|(15&i)<<4,1),ie(e,t),t):void $(t,0,0,0,1):7===n.length?(i=parseInt(n.substr(1),16))>=0&&i<=16777215?($(t,(16711680&i)>>16,(65280&i)>>8,255&i,1),ie(e,t),t):void $(t,0,0,0,1):void 0;var a=n.indexOf("("),o=n.indexOf(")");if(-1!==a&&o+1===n.length){var s=n.substr(0,a),l=n.substr(a+1,o-(a+1)).split(","),h=1;switch(s){case"rgba":if(4!==l.length)return void $(t,0,0,0,1);h=K(l.pop());case"rgb":return 3!==l.length?void $(t,0,0,0,1):($(t,Y(l[0]),Y(l[1]),Y(l[2]),h),ie(e,t),t);case"hsla":return 4!==l.length?void $(t,0,0,0,1):(l[3]=K(l[3]),ne(l,t),ie(e,t),t);case"hsl":return 3!==l.length?void $(t,0,0,0,1):(ne(l,t),ie(e,t),t);default:return}}$(t,0,0,0,1)}},j.parseToFloat=function(e,t){if(t=j.parse(e,t))return t[0]/=255,t[1]/=255,t[2]/=255,t},j.lift=function(e,t){var r=j.parse(e);if(r){for(var i=0;i<3;i++)r[i]=t<0?r[i]*(1-t)|0:(255-r[i])*t+r[i]|0;return j.stringify(r,4===r.length?"rgba":"rgb")}},j.toHex=function(e){var t=j.parse(e);if(t)return((1<<24)+(t[0]<<16)+(t[1]<<8)+ +t[2]).toString(16).slice(1)},j.fastLerp=function(e,t,r){if(t&&t.length&&e>=0&&e<=1){r=r||[];var i=e*(t.length-1),n=Math.floor(i),a=Math.ceil(i),o=t[n],s=t[a],l=i-n;return r[0]=q(J(o[0],s[0],l)),r[1]=q(J(o[1],s[1],l)),r[2]=q(J(o[2],s[2],l)),r[3]=Z(J(o[3],s[3],l)),r}},j.fastMapToColor=j.fastLerp,j.lerp=function(e,t,r){if(t&&t.length&&e>=0&&e<=1){var i=e*(t.length-1),n=Math.floor(i),a=Math.ceil(i),o=j.parse(t[n]),s=j.parse(t[a]),l=i-n,h=j.stringify([q(J(o[0],s[0],l)),q(J(o[1],s[1],l)),q(J(o[2],s[2],l)),Z(J(o[3],s[3],l))],"rgba");return r?{color:h,leftIndex:n,rightIndex:a,value:i}:h}},j.mapToColor=j.lerp,j.modifyHSL=function(e,t,r,i){if(e=j.parse(e))return e=function(e){if(e){var t,r,i=e[0]/255,n=e[1]/255,a=e[2]/255,o=Math.min(i,n,a),s=Math.max(i,n,a),l=s-o,h=(s+o)/2;if(0===l)t=0,r=0;else{r=h<.5?l/(s+o):l/(2-s-o);var u=((s-i)/6+l/2)/l,c=((s-n)/6+l/2)/l,d=((s-a)/6+l/2)/l;i===s?t=d-c:n===s?t=1/3+u-d:a===s&&(t=2/3+c-u),t<0&&(t+=1),t>1&&(t-=1)}var f=[360*t,r,h];return null!=e[3]&&f.push(e[3]),f}}(e),null!=t&&(e[0]=(n=t,(n=Math.round(n))<0?0:n>360?360:n)),null!=r&&(e[1]=K(r)),null!=i&&(e[2]=K(i)),j.stringify(ne(e),"rgba");var n},j.modifyAlpha=function(e,t){if((e=j.parse(e))&&null!=t)return e[3]=Z(t),j.stringify(e,"rgba")},j.stringify=function(e,t){if(e&&e.length){var r=e[0]+","+e[1]+","+e[2];return"rgba"!==t&&"hsva"!==t&&"hsla"!==t||(r+=","+e[3]),t+"("+r+")"}};var ae=j.parseToFloat,oe={};function se(e){var t=Object.keys(e);t.sort();for(var r=[],i=0;i=0},getEnabledUniforms:function(){return this._enabledUniforms},getTextureUniforms:function(){return this._textureUniforms},set:function(e,t){if("object"==typeof e)for(var r in e){var i=e[r];this.setUniform(r,i)}else this.setUniform(e,t)},get:function(e){var t=this.uniforms[e];if(t)return t.value},attachShader:function(e,t){var r=this.uniforms;this.uniforms=e.createUniforms(),this.shader=e;var i=this.uniforms;this._enabledUniforms=Object.keys(i),this._enabledUniforms.sort(),this._textureUniforms=this._enabledUniforms.filter((function(e){var t=this.uniforms[e].type;return"t"===t||"tv"===t}),this);var n=this.vertexDefines,a=this.fragmentDefines;if(this.vertexDefines=f.clone(e.vertexDefines),this.fragmentDefines=f.clone(e.fragmentDefines),t){for(var o in r)i[o]&&(i[o].value=r[o].value);f.defaults(this.vertexDefines,n),f.defaults(this.fragmentDefines,a)}var s={};for(var l in e.textures)s[l]={shaderType:e.textures[l].shaderType,type:e.textures[l].type,enabled:!(!t||!this._textureStatus[l])&&this._textureStatus[l].enabled};this._textureStatus=s,this._programKey=""},clone:function(){var e=new this.constructor({name:this.name,shader:this.shader});for(var t in this.uniforms)e.uniforms[t].value=this.uniforms[t].value;return e.depthTest=this.depthTest,e.depthMask=this.depthMask,e.transparent=this.transparent,e.blend=this.blend,e.vertexDefines=f.clone(this.vertexDefines),e.fragmentDefines=f.clone(this.fragmentDefines),e.enableTexture(this.getEnabledTextures()),e.precision=this.precision,e},define:function(e,t,r){var i=this.vertexDefines,n=this.fragmentDefines;"vertex"!==e&&"fragment"!==e&&"both"!==e&&arguments.length<3&&(r=t,t=e,e="both"),r=null!=r?r:null,"vertex"!==e&&"both"!==e||i[t]!==r&&(i[t]=r,this._programKey=""),"fragment"!==e&&"both"!==e||n[t]!==r&&(n[t]=r,"both"!==e&&(this._programKey=""))},undefine:function(e,t){"vertex"!==e&&"fragment"!==e&&"both"!==e&&arguments.length<2&&(t=e,e="both"),"vertex"!==e&&"both"!==e||this.isDefined("vertex",t)&&(delete this.vertexDefines[t],this._programKey=""),"fragment"!==e&&"both"!==e||this.isDefined("fragment",t)&&(delete this.fragmentDefines[t],"both"!==e&&(this._programKey=""))},isDefined:function(e,t){switch(e){case"vertex":return void 0!==this.vertexDefines[t];case"fragment":return void 0!==this.fragmentDefines[t]}},getDefine:function(e,t){switch(e){case"vertex":return this.vertexDefines[t];case"fragment":return this.fragmentDefines[t]}},enableTexture:function(e){if(Array.isArray(e))for(var t=0;t0&&(n=1/Math.sqrt(n),e[0]=t[0]*n,e[1]=t[1]*n),e},fe.dot=function(e,t){return e[0]*t[0]+e[1]*t[1]},fe.cross=function(e,t,r){var i=t[0]*r[1]-t[1]*r[0];return e[0]=e[1]=0,e[2]=i,e},fe.lerp=function(e,t,r,i){var n=t[0],a=t[1];return e[0]=n+i*(r[0]-n),e[1]=a+i*(r[1]-a),e},fe.random=function(e,t){t=t||1;var r=2*GLMAT_RANDOM()*Math.PI;return e[0]=Math.cos(r)*t,e[1]=Math.sin(r)*t,e},fe.transformMat2=function(e,t,r){var i=t[0],n=t[1];return e[0]=r[0]*i+r[2]*n,e[1]=r[1]*i+r[3]*n,e},fe.transformMat2d=function(e,t,r){var i=t[0],n=t[1];return e[0]=r[0]*i+r[2]*n+r[4],e[1]=r[1]*i+r[3]*n+r[5],e},fe.transformMat3=function(e,t,r){var i=t[0],n=t[1];return e[0]=r[0]*i+r[3]*n+r[6],e[1]=r[1]*i+r[4]*n+r[7],e},fe.transformMat4=function(e,t,r){var i=t[0],n=t[1];return e[0]=r[0]*i+r[4]*n+r[12],e[1]=r[1]*i+r[5]*n+r[13],e},fe.forEach=(he=fe.create(),function(e,t,r,i,n,a){var o,s;for(t||(t=2),r||(r=0),s=i?Math.min(i*t+r,e.length):e.length,o=r;o0&&i.push("#define "+n.toUpperCase()+"_COUNT "+a)}if(r)for(var o=0;ol.getMaxJointNumber()&&(d.USE_SKIN_MATRICES_TEXTURE=null),c+="\n"+Me(d)+"\n"}a&&(c+="\n#define INSTANCING\n");var f=c+Me(t.vertexDefines,s,u),p=c+Me(t.fragmentDefines,s,u),m=f+"\n"+t.shader.vertex,g=["OES_standard_derivatives","EXT_shader_texture_lod"].filter((function(e){return null!=l.getGLExtension(e)}));g.indexOf("EXT_shader_texture_lod")>=0&&(p+="\n#define SUPPORT_TEXTURE_LOD"),g.indexOf("OES_standard_derivatives")>=0&&(p+="\n#define SUPPORT_STANDARD_DERIVATIVES");var _,v,y=function(e){for(var t=[],r=0;r=0){if(1!==s&&4!==s){ke();break}s=2,h=[]}else if(1!==s)if(4!==s)u(c),s=0;else{var d=c;Ie.indexOf(d)>=0||Re.indexOf(d)>=0||Be.indexOf(d)>=0?l[o].semantic=d:"ignore"===d||"unconfigurable"===d?l[o].ignore=!0:l[o].value="bool"===e?"true"===d:parseFloat(d)}else l[o].value="bool"===e?"true"===c:parseFloat(c),h=null;else{if(2!==s){ke();break}if(!(h instanceof Array)){ke();break}h.push(+i[++a])}else l[o].value=new U.Float32Array(h),h=null,s=5;else if(2===s){if(!(h instanceof Array)){ke();break}h.push(+i[++a])}else s=5;else s=4;else{if(0!==s&&3!==s){ke();break}s=1}}return l}function He(e,t){"object"==typeof e&&(t=e.fragment,e=e.vertex),e=Ue(e),t=Ue(t),this._shaderID=function(e,t){var r="vertex:"+e+"fragment:"+t;if(ze[r])return ze[r];var i=f.genGUID();return ze[r]=i,Ge[i]={vertex:e,fragment:t},i}(e,t),this._vertexCode=He.parseImport(e),this._fragmentCode=He.parseImport(t),this.attributeSemantics={},this.matrixSemantics={},this.uniformSemantics={},this.matrixSemanticKeys=[],this.uniformTemplates={},this.attributes={},this.textures={},this.vertexDefines={},this.fragmentDefines={},this._parseAttributes(),this._parseUniforms(),this._parseDefines()}He.prototype={constructor:He,createUniforms:function(){var e={};for(var t in this.uniformTemplates){var r=this.uniformTemplates[t];e[t]={type:r.type,value:r.value()}}return e},_parseImport:function(){this._vertexCode=He.parseImport(this.vertex),this._fragmentCode=He.parseImport(this.fragment)},_addSemanticUniform:function(e,t,r){if(Ie.indexOf(r)>=0)this.attributeSemantics[r]={symbol:e,type:t};else if(Be.indexOf(r)>=0){var i=!1,n=r;r.match(/TRANSPOSE$/)&&(i=!0,n=r.slice(0,-9)),this.matrixSemantics[r]={symbol:e,type:t,isTranspose:i,semanticNoTranspose:n}}else Re.indexOf(r)>=0&&(this.uniformSemantics[r]={symbol:e,type:t})},_addMaterialUniform:function(e,t,r,i,n,a){a[e]={type:r,value:n?Ne.array:i||Ne[t],semantic:null}},_parseUniforms:function(){var e={},t=this;function r(e){return null!=e?function(){return e}:null}function i(i,n,a){var o=Ve(n,a),s=[];for(var l in o){var h=o[l],u=h.semantic,c=l,d=Pe[n],f=r(o[l].value);o[l].isArray&&(c+="["+o[l].arraySize+"]",d+="v"),s.push(c),t._uniformList.push(l),h.ignore||("sampler2D"!==n&&"samplerCube"!==n||(t.textures[l]={shaderType:"fragment",type:n}),u?t._addSemanticUniform(l,d,u):t._addMaterialUniform(l,n,d,f,o[l].isArray,e))}return s.length>0?"uniform "+n+" "+s.join(",")+";\n":""}this._uniformList=[],this._vertexCode=this._vertexCode.replace(Ce,i),this._fragmentCode=this._fragmentCode.replace(Ce,i),t.matrixSemanticKeys=Object.keys(this.matrixSemantics),this.uniformTemplates=e},_parseAttributes:function(){var e={},t=this;this._vertexCode=this._vertexCode.replace(De,(function(r,i,n){var a=Ve(i,n),o=Fe[i]||1,s=[];for(var l in a){var h=a[l].semantic;if(e[l]={type:"float",size:o,semantic:h||null},h){if(Ie.indexOf(h)<0)throw new Error('Unkown semantic "'+h+'"');t.attributeSemantics[h]={symbol:l,type:i}}s.push(l)}return"attribute "+i+" "+s.join(",")+";\n"})),this.attributes=e},_parseDefines:function(){var e=this;function t(t,r,i){var n=e.fragmentDefines;return n[r]||(n[r]="false"!==i&&("true"===i||(i?isNaN(parseFloat(i))?i.trim():parseFloat(i):null))),""}this._vertexCode=this._vertexCode.replace(Le,t),this._fragmentCode=this._fragmentCode.replace(Le,t)},clone:function(){var e=Ge[this._shaderID];return new He(e.vertex,e.fragment)}},Object.defineProperty&&(Object.defineProperty(He.prototype,"shaderID",{get:function(){return this._shaderID}}),Object.defineProperty(He.prototype,"vertex",{get:function(){return this._vertexCode}}),Object.defineProperty(He.prototype,"fragment",{get:function(){return this._fragmentCode}}),Object.defineProperty(He.prototype,"uniforms",{get:function(){return this._uniformList}}));var We=/(@import)\s*([0-9a-zA-Z_\-\.]*)/g;He.parseImport=function(e){return e.replace(We,(function(e,t,r){return(e=He.source(r))?He.parseImport(e):(console.error('Shader chunk "'+r+'" not existed in library'),"")}))};var je=/(@export)\s*([0-9a-zA-Z_\-\.]*)\s*\n([\s\S]*?)@end/g;He.import=function(e){e.replace(je,(function(e,t,r,i){if(i=i.replace(/(^[\s\t\xa0\u3000]+)|([\u3000\xa0\s\t]+\x24)/g,"")){for(var n,a=r.split("."),o=He.codes,s=0;s 0.0) {\n if (texture2D(alphaMap, v_Texcoord).a <= alphaCutoff) {\n discard;\n }\n }\n gl_FragColor = vec4(0.0,0.0,0.0,1.0);\n}\n@end";var Ze={create:function(){var e=new ce(16);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},clone:function(e){var t=new ce(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},copy:function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},identity:function(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},transpose:function(e,t){if(e===t){var r=t[1],i=t[2],n=t[3],a=t[6],o=t[7],s=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=r,e[6]=t[9],e[7]=t[13],e[8]=i,e[9]=a,e[11]=t[14],e[12]=n,e[13]=o,e[14]=s}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e},invert:function(e,t){var r=t[0],i=t[1],n=t[2],a=t[3],o=t[4],s=t[5],l=t[6],h=t[7],u=t[8],c=t[9],d=t[10],f=t[11],p=t[12],m=t[13],g=t[14],_=t[15],v=r*s-i*o,y=r*l-n*o,x=r*h-a*o,b=i*l-n*s,w=i*h-a*s,T=n*h-a*l,S=u*m-c*p,M=u*g-d*p,A=u*_-f*p,E=c*g-d*m,C=c*_-f*m,D=d*_-f*g,L=v*D-y*C+x*E+b*A-w*M+T*S;return L?(L=1/L,e[0]=(s*D-l*C+h*E)*L,e[1]=(n*C-i*D-a*E)*L,e[2]=(m*T-g*w+_*b)*L,e[3]=(d*w-c*T-f*b)*L,e[4]=(l*A-o*D-h*M)*L,e[5]=(r*D-n*A+a*M)*L,e[6]=(g*x-p*T-_*y)*L,e[7]=(u*T-d*x+f*y)*L,e[8]=(o*C-s*A+h*S)*L,e[9]=(i*A-r*C-a*S)*L,e[10]=(p*w-m*x+_*v)*L,e[11]=(c*x-u*w-f*v)*L,e[12]=(s*M-o*E-l*S)*L,e[13]=(r*E-i*M+n*S)*L,e[14]=(m*y-p*b-g*v)*L,e[15]=(u*b-c*y+d*v)*L,e):null},adjoint:function(e,t){var r=t[0],i=t[1],n=t[2],a=t[3],o=t[4],s=t[5],l=t[6],h=t[7],u=t[8],c=t[9],d=t[10],f=t[11],p=t[12],m=t[13],g=t[14],_=t[15];return e[0]=s*(d*_-f*g)-c*(l*_-h*g)+m*(l*f-h*d),e[1]=-(i*(d*_-f*g)-c*(n*_-a*g)+m*(n*f-a*d)),e[2]=i*(l*_-h*g)-s*(n*_-a*g)+m*(n*h-a*l),e[3]=-(i*(l*f-h*d)-s*(n*f-a*d)+c*(n*h-a*l)),e[4]=-(o*(d*_-f*g)-u*(l*_-h*g)+p*(l*f-h*d)),e[5]=r*(d*_-f*g)-u*(n*_-a*g)+p*(n*f-a*d),e[6]=-(r*(l*_-h*g)-o*(n*_-a*g)+p*(n*h-a*l)),e[7]=r*(l*f-h*d)-o*(n*f-a*d)+u*(n*h-a*l),e[8]=o*(c*_-f*m)-u*(s*_-h*m)+p*(s*f-h*c),e[9]=-(r*(c*_-f*m)-u*(i*_-a*m)+p*(i*f-a*c)),e[10]=r*(s*_-h*m)-o*(i*_-a*m)+p*(i*h-a*s),e[11]=-(r*(s*f-h*c)-o*(i*f-a*c)+u*(i*h-a*s)),e[12]=-(o*(c*g-d*m)-u*(s*g-l*m)+p*(s*d-l*c)),e[13]=r*(c*g-d*m)-u*(i*g-n*m)+p*(i*d-n*c),e[14]=-(r*(s*g-l*m)-o*(i*g-n*m)+p*(i*l-n*s)),e[15]=r*(s*d-l*c)-o*(i*d-n*c)+u*(i*l-n*s),e},determinant:function(e){var t=e[0],r=e[1],i=e[2],n=e[3],a=e[4],o=e[5],s=e[6],l=e[7],h=e[8],u=e[9],c=e[10],d=e[11],f=e[12],p=e[13],m=e[14],g=e[15];return(t*o-r*a)*(c*g-d*m)-(t*s-i*a)*(u*g-d*p)+(t*l-n*a)*(u*m-c*p)+(r*s-i*o)*(h*g-d*f)-(r*l-n*o)*(h*m-c*f)+(i*l-n*s)*(h*p-u*f)},multiply:function(e,t,r){var i=t[0],n=t[1],a=t[2],o=t[3],s=t[4],l=t[5],h=t[6],u=t[7],c=t[8],d=t[9],f=t[10],p=t[11],m=t[12],g=t[13],_=t[14],v=t[15],y=r[0],x=r[1],b=r[2],w=r[3];return e[0]=y*i+x*s+b*c+w*m,e[1]=y*n+x*l+b*d+w*g,e[2]=y*a+x*h+b*f+w*_,e[3]=y*o+x*u+b*p+w*v,y=r[4],x=r[5],b=r[6],w=r[7],e[4]=y*i+x*s+b*c+w*m,e[5]=y*n+x*l+b*d+w*g,e[6]=y*a+x*h+b*f+w*_,e[7]=y*o+x*u+b*p+w*v,y=r[8],x=r[9],b=r[10],w=r[11],e[8]=y*i+x*s+b*c+w*m,e[9]=y*n+x*l+b*d+w*g,e[10]=y*a+x*h+b*f+w*_,e[11]=y*o+x*u+b*p+w*v,y=r[12],x=r[13],b=r[14],w=r[15],e[12]=y*i+x*s+b*c+w*m,e[13]=y*n+x*l+b*d+w*g,e[14]=y*a+x*h+b*f+w*_,e[15]=y*o+x*u+b*p+w*v,e},multiplyAffine:function(e,t,r){var i=t[0],n=t[1],a=t[2],o=t[4],s=t[5],l=t[6],h=t[8],u=t[9],c=t[10],d=t[12],f=t[13],p=t[14],m=r[0],g=r[1],_=r[2];return e[0]=m*i+g*o+_*h,e[1]=m*n+g*s+_*u,e[2]=m*a+g*l+_*c,m=r[4],g=r[5],_=r[6],e[4]=m*i+g*o+_*h,e[5]=m*n+g*s+_*u,e[6]=m*a+g*l+_*c,m=r[8],g=r[9],_=r[10],e[8]=m*i+g*o+_*h,e[9]=m*n+g*s+_*u,e[10]=m*a+g*l+_*c,m=r[12],g=r[13],_=r[14],e[12]=m*i+g*o+_*h+d,e[13]=m*n+g*s+_*u+f,e[14]=m*a+g*l+_*c+p,e}};Ze.mul=Ze.multiply,Ze.mulAffine=Ze.multiplyAffine,Ze.translate=function(e,t,r){var i,n,a,o,s,l,h,u,c,d,f,p,m=r[0],g=r[1],_=r[2];return t===e?(e[12]=t[0]*m+t[4]*g+t[8]*_+t[12],e[13]=t[1]*m+t[5]*g+t[9]*_+t[13],e[14]=t[2]*m+t[6]*g+t[10]*_+t[14],e[15]=t[3]*m+t[7]*g+t[11]*_+t[15]):(i=t[0],n=t[1],a=t[2],o=t[3],s=t[4],l=t[5],h=t[6],u=t[7],c=t[8],d=t[9],f=t[10],p=t[11],e[0]=i,e[1]=n,e[2]=a,e[3]=o,e[4]=s,e[5]=l,e[6]=h,e[7]=u,e[8]=c,e[9]=d,e[10]=f,e[11]=p,e[12]=i*m+s*g+c*_+t[12],e[13]=n*m+l*g+d*_+t[13],e[14]=a*m+h*g+f*_+t[14],e[15]=o*m+u*g+p*_+t[15]),e},Ze.scale=function(e,t,r){var i=r[0],n=r[1],a=r[2];return e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e[3]=t[3]*i,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*a,e[9]=t[9]*a,e[10]=t[10]*a,e[11]=t[11]*a,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},Ze.rotate=function(e,t,r,i){var n,a,o,s,l,h,u,c,d,f,p,m,g,_,v,y,x,b,w,T,S,M,A,E,C=i[0],D=i[1],L=i[2],P=Math.sqrt(C*C+D*D+L*L);return Math.abs(P)0&&(a=1/Math.sqrt(a),e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a),e},Ke.dot=function(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]},Ke.cross=function(e,t,r){var i=t[0],n=t[1],a=t[2],o=r[0],s=r[1],l=r[2];return e[0]=n*l-a*s,e[1]=a*o-i*l,e[2]=i*s-n*o,e},Ke.lerp=function(e,t,r,i){var n=t[0],a=t[1],o=t[2];return e[0]=n+i*(r[0]-n),e[1]=a+i*(r[1]-a),e[2]=o+i*(r[2]-o),e},Ke.random=function(e,t){t=t||1;var r=2*de()*Math.PI,i=2*de()-1,n=Math.sqrt(1-i*i)*t;return e[0]=Math.cos(r)*n,e[1]=Math.sin(r)*n,e[2]=i*t,e},Ke.transformMat4=function(e,t,r){var i=t[0],n=t[1],a=t[2],o=r[3]*i+r[7]*n+r[11]*a+r[15];return o=o||1,e[0]=(r[0]*i+r[4]*n+r[8]*a+r[12])/o,e[1]=(r[1]*i+r[5]*n+r[9]*a+r[13])/o,e[2]=(r[2]*i+r[6]*n+r[10]*a+r[14])/o,e},Ke.transformMat3=function(e,t,r){var i=t[0],n=t[1],a=t[2];return e[0]=i*r[0]+n*r[3]+a*r[6],e[1]=i*r[1]+n*r[4]+a*r[7],e[2]=i*r[2]+n*r[5]+a*r[8],e},Ke.transformQuat=function(e,t,r){var i=t[0],n=t[1],a=t[2],o=r[0],s=r[1],l=r[2],h=r[3],u=h*i+s*a-l*n,c=h*n+l*i-o*a,d=h*a+o*n-s*i,f=-o*i-s*n-l*a;return e[0]=u*h+f*-o+c*-l-d*-s,e[1]=c*h+f*-s+d*-o-u*-l,e[2]=d*h+f*-l+u*-s-c*-o,e},Ke.rotateX=function(e,t,r,i){var n=[],a=[];return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],a[0]=n[0],a[1]=n[1]*Math.cos(i)-n[2]*Math.sin(i),a[2]=n[1]*Math.sin(i)+n[2]*Math.cos(i),e[0]=a[0]+r[0],e[1]=a[1]+r[1],e[2]=a[2]+r[2],e},Ke.rotateY=function(e,t,r,i){var n=[],a=[];return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],a[0]=n[2]*Math.sin(i)+n[0]*Math.cos(i),a[1]=n[1],a[2]=n[2]*Math.cos(i)-n[0]*Math.sin(i),e[0]=a[0]+r[0],e[1]=a[1]+r[1],e[2]=a[2]+r[2],e},Ke.rotateZ=function(e,t,r,i){var n=[],a=[];return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],a[0]=n[0]*Math.cos(i)-n[1]*Math.sin(i),a[1]=n[0]*Math.sin(i)+n[1]*Math.cos(i),a[2]=n[2],e[0]=a[0]+r[0],e[1]=a[1]+r[1],e[2]=a[2]+r[2],e},Ke.forEach=function(){var e=Ke.create();return function(t,r,i,n,a,o){var s,l;for(r||(r=3),i||(i=0),l=n?Math.min(n*r+i,t.length):t.length,s=i;s1?0:Math.acos(n)};const Qe=Ke;Xe.import(qe);var Je=Ye.create,$e={};function et(e){return e.material}function tt(e,t,r){return t.uniforms[r].value}function rt(e,t,r,i){return r!==i}function it(e){return!0}function nt(){}var at={float:S,byte:5120,ubyte:T,short:5122,ushort:5123};function ot(e,t,r){this.availableAttributes=e,this.availableAttributeSymbols=t,this.indicesBuffer=r,this.vao=null}function st(e){var t,r;this.bind=function(e){t||((t=U.createCanvas()).width=t.height=1,t.getContext("2d"));var i=e.gl,n=!r;n&&(r=i.createTexture()),i.bindTexture(i.TEXTURE_2D,r),n&&i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,t)},this.unbind=function(e){e.gl.bindTexture(e.gl.TEXTURE_2D,null)},this.isRenderable=function(){return!0}}var lt=m.extend((function(){return{canvas:null,_width:100,_height:100,devicePixelRatio:"undefined"!=typeof window&&window.devicePixelRatio||1,clearColor:[0,0,0,0],clearBit:17664,alpha:!0,depth:!0,stencil:!1,antialias:!0,premultipliedAlpha:!0,preserveDrawingBuffer:!1,throwError:!0,gl:null,viewport:{},maxJointNumber:20,__currentFrameBuffer:null,_viewportStack:[],_clearStack:[],_sceneRendering:null}}),(function(){this.canvas||(this.canvas=U.createCanvas());var e=this.canvas;try{var t={alpha:this.alpha,depth:this.depth,stencil:this.stencil,antialias:this.antialias,premultipliedAlpha:this.premultipliedAlpha,preserveDrawingBuffer:this.preserveDrawingBuffer};if(this.gl=e.getContext("webgl",t)||e.getContext("experimental-webgl",t),!this.gl)throw new Error;this._glinfo=new v(this.gl),this.gl.targetRenderer&&console.error("Already created a renderer"),this.gl.targetRenderer=this,this.resize()}catch(e){throw"Error creating WebGL Context "+e}this._programMgr=new Ee(this),this._placeholderTexture=new st(this)}),{resize:function(e,t){var r=this.canvas,i=this.devicePixelRatio;null!=e?(r.style&&(r.style.width=e+"px",r.style.height=t+"px"),r.width=e*i,r.height=t*i,this._width=e,this._height=t):(this._width=r.width/i,this._height=r.height/i),this.setViewport(0,0,this._width,this._height)},getWidth:function(){return this._width},getHeight:function(){return this._height},getViewportAspect:function(){var e=this.viewport;return e.width/e.height},setDevicePixelRatio:function(e){this.devicePixelRatio=e,this.resize(this._width,this._height)},getDevicePixelRatio:function(){return this.devicePixelRatio},getGLExtension:function(e){return this._glinfo.getExtension(e)},getGLParameter:function(e){return this._glinfo.getParameter(e)},setViewport:function(e,t,r,i,n){if("object"==typeof e){var a=e;e=a.x,t=a.y,r=a.width,i=a.height,n=a.devicePixelRatio}n=n||this.devicePixelRatio,this.gl.viewport(e*n,t*n,r*n,i*n),this.viewport={x:e,y:t,width:r,height:i,devicePixelRatio:n}},saveViewport:function(){this._viewportStack.push(this.viewport)},restoreViewport:function(){this._viewportStack.length>0&&this.setViewport(this._viewportStack.pop())},saveClear:function(){this._clearStack.push({clearBit:this.clearBit,clearColor:this.clearColor})},restoreClear:function(){if(this._clearStack.length>0){var e=this._clearStack.pop();this.clearColor=e.clearColor,this.clearBit=e.clearBit}},bindSceneRendering:function(e){this._sceneRendering=e},render:function(e,t,r,i){var n=this.gl,a=this.clearColor;if(this.clearBit){n.colorMask(!0,!0,!0,!0),n.depthMask(!0);var o=this.viewport,s=!1,l=o.devicePixelRatio;(o.width!==this._width||o.height!==this._height||l&&l!==this.devicePixelRatio||o.x||o.y)&&(s=!0,n.enable(n.SCISSOR_TEST),n.scissor(o.x*l,o.y*l,o.width*l,o.height*l)),n.clearColor(a[0],a[1],a[2],a[3]),n.clear(this.clearBit),s&&n.disable(n.SCISSOR_TEST)}if(r||e.update(!1),e.updateLights(),t=t||e.getMainCamera()){t.update();var h=e.updateRenderList(t,!0);this._sceneRendering=e;var u=h.opaque,c=h.transparent,d=e.material;e.trigger("beforerender",this,e,t,h),i?(this.renderPreZ(u,e,t),n.depthFunc(n.LEQUAL)):n.depthFunc(n.LESS);for(var f=Je(),p=Qe.create(),m=0;m0){var s=e[n-1],l=s.joints?s.joints.length:0;if((a.joints?a.joints.length:0)===l&&a.material===s.material&&a.lightGroup===s.lightGroup){a.__program=s.__program;continue}}var h=this._programMgr.getProgram(a,o,t);this.validateProgram(h),a.__program=h}},renderPass:function(e,t,r){this.trigger("beforerenderpass",this,e,t,r),(r=r||{}).getMaterial=r.getMaterial||et,r.getUniform=r.getUniform||tt,r.isMaterialChanged=r.isMaterialChanged||rt,r.beforeRender=r.beforeRender||nt,r.afterRender=r.afterRender||nt;var i=r.ifRender||it;this.updatePrograms(e,this._sceneRendering,r),r.sortCompare&&e.sort(r.sortCompare);var n=this.viewport,a=n.devicePixelRatio,o=[n.x*a,n.y*a,n.width*a,n.height*a],s=this.devicePixelRatio,l=this.__currentFrameBuffer?[this.__currentFrameBuffer.getTextureWidth(),this.__currentFrameBuffer.getTextureHeight()]:[this._width*s,this._height*s],h=[o[2],o[3]],u=Date.now();t?(Ye.copy(ht.VIEW,t.viewMatrix.array),Ye.copy(ht.PROJECTION,t.projectionMatrix.array),Ye.copy(ht.VIEWINVERSE,t.worldTransform.array)):(Ye.identity(ht.VIEW),Ye.identity(ht.PROJECTION),Ye.identity(ht.VIEWINVERSE)),Ye.multiply(ht.VIEWPROJECTION,ht.PROJECTION,ht.VIEW),Ye.invert(ht.PROJECTIONINVERSE,ht.PROJECTION),Ye.invert(ht.VIEWPROJECTIONINVERSE,ht.VIEWPROJECTION);for(var c,d,f,p,m,g,_,v,y,x,b,w,T=this.gl,S=this._sceneRendering,M=0;Mthis.getMaxJointNumber()){var a=n.getSubSkinMatricesTexture(e.__uid__,e.joints);t.useTextureSlot(this,a,r),t.setUniform(i,"1i","skinMatricesTexture",r),t.setUniform(i,"1f","skinMatricesTextureSize",a.width)}else{var o=n.getSubSkinMatrices(e.__uid__,e.joints);t.setUniformOfSemantic(i,"SKIN_MATRIX",o)}},_renderObject:function(e,t,r){var i=this.gl,n=e.geometry,a=e.mode;null==a&&(a=4);var o=null,s=e.isInstancedMesh&&e.isInstancedMesh();if(!s||(o=this.getGLExtension("ANGLE_instanced_arrays"))){var l;if(s&&(l=this._bindInstancedAttributes(e,r,o)),t.indicesBuffer){var h=this.getGLExtension("OES_element_index_uint")&&n.indices instanceof Uint32Array?i.UNSIGNED_INT:i.UNSIGNED_SHORT;s?o.drawElementsInstancedANGLE(a,t.indicesBuffer.count,h,0,e.getInstanceCount()):i.drawElements(a,t.indicesBuffer.count,h,0)}else s?o.drawArraysInstancedANGLE(a,0,n.vertexCount,e.getInstanceCount()):i.drawArrays(a,0,n.vertexCount);if(s)for(var u=0;ur?r:e}ct.add=function(e,t,r){return Qe.add(e.array,t.array,r.array),e._dirty=!0,e},ct.set=function(e,t,r,i){Qe.set(e.array,t,r,i),e._dirty=!0},ct.copy=function(e,t){return Qe.copy(e.array,t.array),e._dirty=!0,e},ct.cross=function(e,t,r){return Qe.cross(e.array,t.array,r.array),e._dirty=!0,e},ct.distance=ct.dist=function(e,t){return Qe.distance(e.array,t.array)},ct.divide=ct.div=function(e,t,r){return Qe.divide(e.array,t.array,r.array),e._dirty=!0,e},ct.dot=function(e,t){return Qe.dot(e.array,t.array)},ct.len=function(e){return Qe.length(e.array)},ct.lerp=function(e,t,r,i){return Qe.lerp(e.array,t.array,r.array,i),e._dirty=!0,e},ct.min=function(e,t,r){return Qe.min(e.array,t.array,r.array),e._dirty=!0,e},ct.max=function(e,t,r){return Qe.max(e.array,t.array,r.array),e._dirty=!0,e},ct.multiply=ct.mul=function(e,t,r){return Qe.multiply(e.array,t.array,r.array),e._dirty=!0,e},ct.negate=function(e,t){return Qe.negate(e.array,t.array),e._dirty=!0,e},ct.normalize=function(e,t){return Qe.normalize(e.array,t.array),e._dirty=!0,e},ct.random=function(e,t){return Qe.random(e.array,t),e._dirty=!0,e},ct.scale=function(e,t,r){return Qe.scale(e.array,t.array,r),e._dirty=!0,e},ct.scaleAndAdd=function(e,t,r,i){return Qe.scaleAndAdd(e.array,t.array,r.array,i),e._dirty=!0,e},ct.squaredDistance=ct.sqrDist=function(e,t){return Qe.sqrDist(e.array,t.array)},ct.squaredLength=ct.sqrLen=function(e){return Qe.sqrLen(e.array)},ct.subtract=ct.sub=function(e,t,r){return Qe.subtract(e.array,t.array,r.array),e._dirty=!0,e},ct.transformMat3=function(e,t,r){return Qe.transformMat3(e.array,t.array,r.array),e._dirty=!0,e},ct.transformMat4=function(e,t,r){return Qe.transformMat4(e.array,t.array,r.array),e._dirty=!0,e},ct.transformQuat=function(e,t,r){return Qe.transformQuat(e.array,t.array,r.array),e._dirty=!0,e};var mt=Math.atan2,gt=Math.asin,_t=Math.abs;ct.eulerFromQuat=function(e,t,r){e._dirty=!0,t=t.array;var i=e.array,n=t[0],a=t[1],o=t[2],s=t[3],l=n*n,h=a*a,u=o*o,c=s*s;switch(r=(r||"XYZ").toUpperCase()){case"XYZ":i[0]=mt(2*(n*s-a*o),c-l-h+u),i[1]=gt(pt(2*(n*o+a*s),-1,1)),i[2]=mt(2*(o*s-n*a),c+l-h-u);break;case"YXZ":i[0]=gt(pt(2*(n*s-a*o),-1,1)),i[1]=mt(2*(n*o+a*s),c-l-h+u),i[2]=mt(2*(n*a+o*s),c-l+h-u);break;case"ZXY":i[0]=gt(pt(2*(n*s+a*o),-1,1)),i[1]=mt(2*(a*s-o*n),c-l-h+u),i[2]=mt(2*(o*s-n*a),c-l+h-u);break;case"ZYX":i[0]=mt(2*(n*s+o*a),c-l-h+u),i[1]=gt(pt(2*(a*s-n*o),-1,1)),i[2]=mt(2*(n*a+o*s),c+l-h-u);break;case"YZX":i[0]=mt(2*(n*s-o*a),c-l+h-u),i[1]=mt(2*(a*s-n*o),c+l-h-u),i[2]=gt(pt(2*(n*a+o*s),-1,1));break;case"XZY":i[0]=mt(2*(n*s+a*o),c-l+h-u),i[1]=mt(2*(n*o+a*s),c+l-h-u),i[2]=gt(pt(2*(o*s-n*a),-1,1));break;default:console.warn("Unkown order: "+r)}return e},ct.eulerFromMat3=function(e,t,r){var i=t.array,n=i[0],a=i[3],o=i[6],s=i[1],l=i[4],h=i[7],u=i[2],c=i[5],d=i[8],f=e.array;switch(r=(r||"XYZ").toUpperCase()){case"XYZ":f[1]=gt(pt(o,-1,1)),_t(o)<.99999?(f[0]=mt(-h,d),f[2]=mt(-a,n)):(f[0]=mt(c,l),f[2]=0);break;case"YXZ":f[0]=gt(-pt(h,-1,1)),_t(h)<.99999?(f[1]=mt(o,d),f[2]=mt(s,l)):(f[1]=mt(-u,n),f[2]=0);break;case"ZXY":f[0]=gt(pt(c,-1,1)),_t(c)<.99999?(f[1]=mt(-u,d),f[2]=mt(-a,l)):(f[1]=0,f[2]=mt(s,n));break;case"ZYX":f[1]=gt(-pt(u,-1,1)),_t(u)<.99999?(f[0]=mt(c,d),f[2]=mt(s,n)):(f[0]=0,f[2]=mt(-a,l));break;case"YZX":f[2]=gt(pt(s,-1,1)),_t(s)<.99999?(f[0]=mt(-h,l),f[1]=mt(-u,n)):(f[0]=0,f[1]=mt(o,d));break;case"XZY":f[2]=gt(-pt(a,-1,1)),_t(a)<.99999?(f[0]=mt(c,l),f[1]=mt(o,n)):(f[0]=mt(-h,d),f[1]=0);break;default:console.warn("Unkown order: "+r)}return e._dirty=!0,e},Object.defineProperties(ct,{POSITIVE_X:{get:function(){return new ct(1,0,0)}},NEGATIVE_X:{get:function(){return new ct(-1,0,0)}},POSITIVE_Y:{get:function(){return new ct(0,1,0)}},NEGATIVE_Y:{get:function(){return new ct(0,-1,0)}},POSITIVE_Z:{get:function(){return new ct(0,0,1)}},NEGATIVE_Z:{get:function(){return new ct(0,0,-1)}},UP:{get:function(){return new ct(0,1,0)}},ZERO:{get:function(){return new ct}}});const vt=ct;var yt,xt,bt,wt,Tt,St=function(e,t){this.origin=e||new vt,this.direction=t||new vt};St.prototype={constructor:St,intersectPlane:function(e,t){var r=e.normal.array,i=e.distance,n=this.origin.array,a=this.direction.array,o=Qe.dot(r,a);if(0===o)return null;t||(t=new vt);var s=(Qe.dot(r,n)-i)/o;return Qe.scaleAndAdd(t.array,n,a,-s),t._dirty=!0,t},mirrorAgainstPlane:function(e){var t=Qe.dot(e.normal.array,this.direction.array);Qe.scaleAndAdd(this.direction.array,this.direction.array,e.normal.array,2*-t),this.direction._dirty=!0},distanceToPoint:(Tt=Qe.create(),function(e){Qe.sub(Tt,e,this.origin.array);var t=Qe.dot(Tt,this.direction.array);if(t<0)return Qe.distance(this.origin.array,e);var r=Qe.lenSquared(Tt);return Math.sqrt(r-t*t)}),intersectSphere:function(){var e=Qe.create();return function(t,r,i){var n=this.origin.array,a=this.direction.array;t=t.array,Qe.sub(e,t,n);var o=Qe.dot(e,a),s=Qe.squaredLength(e)-o*o,l=r*r;if(!(s>l)){var h=Math.sqrt(l-s),u=o-h,c=o+h;return i||(i=new vt),u<0?c<0?null:(Qe.scaleAndAdd(i.array,n,a,c),i):(Qe.scaleAndAdd(i.array,n,a,u),i)}}}(),intersectBoundingBox:function(e,t){var r,i,n,a,o,s,l=this.direction.array,h=this.origin.array,u=e.min.array,c=e.max.array,d=1/l[0],f=1/l[1],p=1/l[2];if(d>=0?(r=(u[0]-h[0])*d,i=(c[0]-h[0])*d):(i=(u[0]-h[0])*d,r=(c[0]-h[0])*d),f>=0?(n=(u[1]-h[1])*f,a=(c[1]-h[1])*f):(a=(u[1]-h[1])*f,n=(c[1]-h[1])*f),r>a||n>i)return null;if((n>r||r!=r)&&(r=n),(a=0?(o=(u[2]-h[2])*p,s=(c[2]-h[2])*p):(s=(u[2]-h[2])*p,o=(c[2]-h[2])*p),r>s||o>i)return null;if((o>r||r!=r)&&(r=o),(s=0?r:i;return t||(t=new vt),Qe.scaleAndAdd(t.array,h,l,m),t},intersectTriangle:(yt=Qe.create(),xt=Qe.create(),bt=Qe.create(),wt=Qe.create(),function(e,t,r,i,n,a){var o=this.direction.array,s=this.origin.array;e=e.array,t=t.array,r=r.array,Qe.sub(yt,t,e),Qe.sub(xt,r,e),Qe.cross(wt,xt,o);var l=Qe.dot(yt,wt);if(i){if(l>-1e-5)return null}else if(l>-1e-5&&l<1e-5)return null;Qe.sub(bt,s,e);var h=Qe.dot(wt,bt)/l;if(h<0||h>1)return null;Qe.cross(wt,yt,bt);var u=Qe.dot(o,wt)/l;if(u<0||u>1||h+u>1)return null;Qe.cross(wt,yt,xt);var c=-Qe.dot(bt,wt)/l;return c<0?null:(n||(n=new vt),a&&vt.set(a,1-h-u,h,u),Qe.scaleAndAdd(n.array,s,o,c),n)}),applyTransform:function(e){vt.add(this.direction,this.direction,this.origin),vt.transformMat4(this.origin,this.origin,e),vt.transformMat4(this.direction,this.direction,e),vt.sub(this.direction,this.direction,this.origin),vt.normalize(this.direction,this.direction)},copy:function(e){vt.copy(this.origin,e.origin),vt.copy(this.direction,e.direction)},clone:function(){var e=new St;return e.copy(this),e}};const Mt=St;var At={create:function(){var e=new ce(4);return e[0]=0,e[1]=0,e[2]=0,e[3]=0,e},clone:function(e){var t=new ce(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t},fromValues:function(e,t,r,i){var n=new ce(4);return n[0]=e,n[1]=t,n[2]=r,n[3]=i,n},copy:function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e},set:function(e,t,r,i,n){return e[0]=t,e[1]=r,e[2]=i,e[3]=n,e},add:function(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e},subtract:function(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e}};At.sub=At.subtract,At.multiply=function(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e[3]=t[3]*r[3],e},At.mul=At.multiply,At.divide=function(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e[3]=t[3]/r[3],e},At.div=At.divide,At.min=function(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e[3]=Math.min(t[3],r[3]),e},At.max=function(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e[3]=Math.max(t[3],r[3]),e},At.scale=function(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e},At.scaleAndAdd=function(e,t,r,i){return e[0]=t[0]+r[0]*i,e[1]=t[1]+r[1]*i,e[2]=t[2]+r[2]*i,e[3]=t[3]+r[3]*i,e},At.distance=function(e,t){var r=t[0]-e[0],i=t[1]-e[1],n=t[2]-e[2],a=t[3]-e[3];return Math.sqrt(r*r+i*i+n*n+a*a)},At.dist=At.distance,At.squaredDistance=function(e,t){var r=t[0]-e[0],i=t[1]-e[1],n=t[2]-e[2],a=t[3]-e[3];return r*r+i*i+n*n+a*a},At.sqrDist=At.squaredDistance,At.length=function(e){var t=e[0],r=e[1],i=e[2],n=e[3];return Math.sqrt(t*t+r*r+i*i+n*n)},At.len=At.length,At.squaredLength=function(e){var t=e[0],r=e[1],i=e[2],n=e[3];return t*t+r*r+i*i+n*n},At.sqrLen=At.squaredLength,At.negate=function(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=-t[3],e},At.inverse=function(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e[3]=1/t[3],e},At.normalize=function(e,t){var r=t[0],i=t[1],n=t[2],a=t[3],o=r*r+i*i+n*n+a*a;return o>0&&(o=1/Math.sqrt(o),e[0]=t[0]*o,e[1]=t[1]*o,e[2]=t[2]*o,e[3]=t[3]*o),e},At.dot=function(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]},At.lerp=function(e,t,r,i){var n=t[0],a=t[1],o=t[2],s=t[3];return e[0]=n+i*(r[0]-n),e[1]=a+i*(r[1]-a),e[2]=o+i*(r[2]-o),e[3]=s+i*(r[3]-s),e},At.random=function(e,t){return t=t||1,e[0]=de(),e[1]=de(),e[2]=de(),e[3]=de(),At.normalize(e,e),At.scale(e,e,t),e},At.transformMat4=function(e,t,r){var i=t[0],n=t[1],a=t[2],o=t[3];return e[0]=r[0]*i+r[4]*n+r[8]*a+r[12]*o,e[1]=r[1]*i+r[5]*n+r[9]*a+r[13]*o,e[2]=r[2]*i+r[6]*n+r[10]*a+r[14]*o,e[3]=r[3]*i+r[7]*n+r[11]*a+r[15]*o,e},At.transformQuat=function(e,t,r){var i=t[0],n=t[1],a=t[2],o=r[0],s=r[1],l=r[2],h=r[3],u=h*i+s*a-l*n,c=h*n+l*i-o*a,d=h*a+o*n-s*i,f=-o*i-s*n-l*a;return e[0]=u*h+f*-o+c*-l-d*-s,e[1]=c*h+f*-s+d*-o-u*-l,e[2]=d*h+f*-l+u*-s-c*-o,e},At.forEach=function(){var e=At.create();return function(t,r,i,n,a,o){var s,l;for(r||(r=4),i||(i=0),l=n?Math.min(n*r+i,t.length):t.length,s=i;s.999999?(e[0]=0,e[1]=0,e[2]=0,e[3]=1,e):(Qe.cross(Lt,t,r),e[0]=Lt[0],e[1]=Lt[1],e[2]=Lt[2],e[3]=1+i,It.normalize(e,e))}),It.setAxes=(Nt=Dt.create(),function(e,t,r,i){return Nt[0]=r[0],Nt[3]=r[1],Nt[6]=r[2],Nt[1]=i[0],Nt[4]=i[1],Nt[7]=i[2],Nt[2]=-t[0],Nt[5]=-t[1],Nt[8]=-t[2],It.normalize(e,It.fromMat3(e,Nt))}),It.clone=Et.clone,It.fromValues=Et.fromValues,It.copy=Et.copy,It.set=Et.set,It.identity=function(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e},It.setAxisAngle=function(e,t,r){r*=.5;var i=Math.sin(r);return e[0]=i*t[0],e[1]=i*t[1],e[2]=i*t[2],e[3]=Math.cos(r),e},It.add=Et.add,It.multiply=function(e,t,r){var i=t[0],n=t[1],a=t[2],o=t[3],s=r[0],l=r[1],h=r[2],u=r[3];return e[0]=i*u+o*s+n*h-a*l,e[1]=n*u+o*l+a*s-i*h,e[2]=a*u+o*h+i*l-n*s,e[3]=o*u-i*s-n*l-a*h,e},It.mul=It.multiply,It.scale=Et.scale,It.rotateX=function(e,t,r){r*=.5;var i=t[0],n=t[1],a=t[2],o=t[3],s=Math.sin(r),l=Math.cos(r);return e[0]=i*l+o*s,e[1]=n*l+a*s,e[2]=a*l-n*s,e[3]=o*l-i*s,e},It.rotateY=function(e,t,r){r*=.5;var i=t[0],n=t[1],a=t[2],o=t[3],s=Math.sin(r),l=Math.cos(r);return e[0]=i*l-a*s,e[1]=n*l+o*s,e[2]=a*l+i*s,e[3]=o*l-n*s,e},It.rotateZ=function(e,t,r){r*=.5;var i=t[0],n=t[1],a=t[2],o=t[3],s=Math.sin(r),l=Math.cos(r);return e[0]=i*l+n*s,e[1]=n*l-i*s,e[2]=a*l+o*s,e[3]=o*l-a*s,e},It.calculateW=function(e,t){var r=t[0],i=t[1],n=t[2];return e[0]=r,e[1]=i,e[2]=n,e[3]=Math.sqrt(Math.abs(1-r*r-i*i-n*n)),e},It.dot=Et.dot,It.lerp=Et.lerp,It.slerp=function(e,t,r,i){var n,a,o,s,l,h=t[0],u=t[1],c=t[2],d=t[3],f=r[0],p=r[1],m=r[2],g=r[3];return(a=h*f+u*p+c*m+d*g)<0&&(a=-a,f=-f,p=-p,m=-m,g=-g),1-a>1e-6?(n=Math.acos(a),o=Math.sin(n),s=Math.sin((1-i)*n)/o,l=Math.sin(i*n)/o):(s=1-i,l=i),e[0]=s*h+l*f,e[1]=s*u+l*p,e[2]=s*c+l*m,e[3]=s*d+l*g,e},It.invert=function(e,t){var r=t[0],i=t[1],n=t[2],a=t[3],o=r*r+i*i+n*n+a*a,s=o?1/o:0;return e[0]=-r*s,e[1]=-i*s,e[2]=-n*s,e[3]=a*s,e},It.conjugate=function(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e},It.length=Et.length,It.len=It.length,It.squaredLength=Et.squaredLength,It.sqrLen=It.squaredLength,It.normalize=Et.normalize,It.fromMat3=function(e,t){var r,i=t[0]+t[4]+t[8];if(i>0)r=Math.sqrt(i+1),e[3]=.5*r,r=.5/r,e[0]=(t[5]-t[7])*r,e[1]=(t[6]-t[2])*r,e[2]=(t[1]-t[3])*r;else{var n=0;t[4]>t[0]&&(n=1),t[8]>t[3*n+n]&&(n=2);var a=(n+1)%3,o=(n+2)%3;r=Math.sqrt(t[3*n+n]-t[3*a+a]-t[3*o+o]+1),e[n]=.5*r,r=.5/r,e[3]=(t[3*a+o]-t[3*o+a])*r,e[a]=(t[3*a+n]+t[3*n+a])*r,e[o]=(t[3*o+n]+t[3*n+o])*r}return e};const Rt=It;var Bt,Ft,zt,Gt,Ut=function(){this._axisX=new vt,this._axisY=new vt,this._axisZ=new vt,this.array=Ye.create(),this._dirty=!0};Ut.prototype={constructor:Ut,setArray:function(e){for(var t=0;t0){var t=this.min,r=this.max,i=t.array,n=r.array;tr(i,e[0]),tr(n,e[0]);for(var a=1;an[0]&&(n[0]=o[0]),o[1]>n[1]&&(n[1]=o[1]),o[2]>n[2]&&(n[2]=o[2])}t._dirty=!0,r._dirty=!0}},union:function(e){var t=this.min,r=this.max;return Qe.min(t.array,t.array,e.min.array),Qe.max(r.array,r.array,e.max.array),t._dirty=!0,r._dirty=!0,this},intersection:function(e){var t=this.min,r=this.max;return Qe.max(t.array,t.array,e.min.array),Qe.min(r.array,r.array,e.max.array),t._dirty=!0,r._dirty=!0,this},intersectBoundingBox:function(e){var t=this.min.array,r=this.max.array,i=e.min.array,n=e.max.array;return!(t[0]>n[0]||t[1]>n[1]||t[2]>n[2]||r[0]=n[0]&&r[1]>=n[1]&&r[2]>=n[2]},containPoint:function(e){var t=this.min.array,r=this.max.array,i=e.array;return t[0]<=i[0]&&t[1]<=i[1]&&t[2]<=i[2]&&r[0]>=i[0]&&r[1]>=i[1]&&r[2]>=i[2]},isFinite:function(){var e=this.min.array,t=this.max.array;return isFinite(e[0])&&isFinite(e[1])&&isFinite(e[2])&&isFinite(t[0])&&isFinite(t[1])&&isFinite(t[2])},applyTransform:function(e){this.transformFrom(this,e)},transformFrom:(Zt=Qe.create(),Yt=Qe.create(),Kt=Qe.create(),Qt=Qe.create(),Jt=Qe.create(),$t=Qe.create(),function(e,t){var r=e.min.array,i=e.max.array,n=t.array;return Zt[0]=n[0]*r[0],Zt[1]=n[1]*r[0],Zt[2]=n[2]*r[0],Yt[0]=n[0]*i[0],Yt[1]=n[1]*i[0],Yt[2]=n[2]*i[0],Kt[0]=n[4]*r[1],Kt[1]=n[5]*r[1],Kt[2]=n[6]*r[1],Qt[0]=n[4]*i[1],Qt[1]=n[5]*i[1],Qt[2]=n[6]*i[1],Jt[0]=n[8]*r[2],Jt[1]=n[9]*r[2],Jt[2]=n[10]*r[2],$t[0]=n[8]*i[2],$t[1]=n[9]*i[2],$t[2]=n[10]*i[2],r=this.min.array,i=this.max.array,r[0]=Math.min(Zt[0],Yt[0])+Math.min(Kt[0],Qt[0])+Math.min(Jt[0],$t[0])+n[12],r[1]=Math.min(Zt[1],Yt[1])+Math.min(Kt[1],Qt[1])+Math.min(Jt[1],$t[1])+n[13],r[2]=Math.min(Zt[2],Yt[2])+Math.min(Kt[2],Qt[2])+Math.min(Jt[2],$t[2])+n[14],i[0]=Math.max(Zt[0],Yt[0])+Math.max(Kt[0],Qt[0])+Math.max(Jt[0],$t[0])+n[12],i[1]=Math.max(Zt[1],Yt[1])+Math.max(Kt[1],Qt[1])+Math.max(Jt[1],$t[1])+n[13],i[2]=Math.max(Zt[2],Yt[2])+Math.max(Kt[2],Qt[2])+Math.max(Jt[2],$t[2])+n[14],this.min._dirty=!0,this.max._dirty=!0,this}),applyProjection:function(e){var t=this.min.array,r=this.max.array,i=e.array,n=t[0],a=t[1],o=t[2],s=r[0],l=r[1],h=t[2],u=r[0],c=r[1],d=r[2];if(1===i[15])t[0]=i[0]*n+i[12],t[1]=i[5]*a+i[13],r[2]=i[10]*o+i[14],r[0]=i[0]*u+i[12],r[1]=i[5]*c+i[13],t[2]=i[10]*d+i[14];else{var f=-1/o;t[0]=i[0]*n*f,t[1]=i[5]*a*f,r[2]=(i[10]*o+i[14])*f,f=-1/h,r[0]=i[0]*s*f,r[1]=i[5]*l*f,f=-1/d,t[2]=(i[10]*d+i[14])*f}return this.min._dirty=!0,this.max._dirty=!0,this},updateVertices:function(){var e=this.vertices;if(!e){e=[];for(var t=0;t<8;t++)e[t]=Qe.fromValues(0,0,0);this.vertices=e}var r=this.min.array,i=this.max.array;return er(e[0],r[0],r[1],r[2]),er(e[1],r[0],i[1],r[2]),er(e[2],i[0],r[1],r[2]),er(e[3],i[0],i[1],r[2]),er(e[4],r[0],r[1],i[2]),er(e[5],r[0],i[1],i[2]),er(e[6],i[0],r[1],i[2]),er(e[7],i[0],i[1],i[2]),this},copy:function(e){var t=this.min,r=this.max;return tr(t.array,e.min.array),tr(r.array,e.max.array),t._dirty=!0,r._dirty=!0,this},clone:function(){var e=new rr;return e.copy(this),e}};const ir=rr;var nr,ar,or=0;const sr=m.extend({name:"",position:null,rotation:null,scale:null,worldTransform:null,localTransform:null,autoUpdateLocalTransform:!0,_parent:null,_scene:null,_needsUpdateWorldTransform:!0,_inIterating:!1,__depth:0},(function(){this.name||(this.name=(this.type||"NODE")+"_"+or++),this.position||(this.position=new vt),this.rotation||(this.rotation=new qt),this.scale||(this.scale=new vt(1,1,1)),this.worldTransform=new Ht,this.localTransform=new Ht,this._children=[]}),{target:null,invisible:!1,isSkinnedMesh:function(){return!1},isRenderable:function(){return!1},setName:function(e){var t=this._scene;if(t){var r=t._nodeRepository;delete r[this.name],r[e]=this}this.name=e},add:function(e){var t=e._parent;if(t!==this){t&&t.remove(e),e._parent=this,this._children.push(e);var r=this._scene;r&&r!==e.scene&&e.traverse(this._addSelfToScene,this),e._needsUpdateWorldTransform=!0}},remove:function(e){var t=this._children,r=t.indexOf(e);r<0||(t.splice(r,1),e._parent=null,this._scene&&e.traverse(this._removeSelfFromScene,this))},removeAll:function(){for(var e=this._children,t=0;t0},beforeRender:function(e){},afterRender:function(e,t){},getBoundingBox:function(e,t){return t=sr.prototype.getBoundingBox.call(this,e,t),this.geometry&&this.geometry.boundingBox&&t.union(this.geometry.boundingBox),t},clone:(lr=["castShadow","receiveShadow","mode","culling","cullFace","frontFace","frustumCulling","renderOrder","lineWidth","ignorePicking","ignorePreZ","ignoreGBuffer"],function(){var e=sr.prototype.clone.call(this);e.geometry=this.geometry,e.material=this.material;for(var t=0;t=0&&g[p]>1e-4&&(Qe.transformMat4(T,m,d[_[p]]),Qe.scaleAndAdd(v,v,T,g[p]));S.set(f,v)}}for(f=0;f>t;return e+1},dispose:function(e){var t=this._cache;t.use(e.__uid__);var r=t.get("webgl_texture");r&&e.gl.deleteTexture(r),t.deleteContext(e.__uid__)},isRenderable:function(){},isPowerOfTwo:function(){}});Object.defineProperty(br.prototype,"width",{get:function(){return this._width},set:function(e){this._width=e}}),Object.defineProperty(br.prototype,"height",{get:function(){return this._height},set:function(e){this._height=e}}),br.BYTE=5120,br.UNSIGNED_BYTE=T,br.SHORT=5122,br.UNSIGNED_SHORT=5123,br.INT=5124,br.UNSIGNED_INT=5125,br.FLOAT=S,br.HALF_FLOAT=36193,br.UNSIGNED_INT_24_8_WEBGL=34042,br.DEPTH_COMPONENT=M,br.DEPTH_STENCIL=34041,br.ALPHA=6406,br.RGB=6407,br.RGBA=A,br.LUMINANCE=6409,br.LUMINANCE_ALPHA=6410,br.SRGB=35904,br.SRGB_ALPHA=35906,br.COMPRESSED_RGB_S3TC_DXT1_EXT=33776,br.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777,br.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778,br.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779,br.NEAREST=E,br.LINEAR=C,br.NEAREST_MIPMAP_NEAREST=D,br.LINEAR_MIPMAP_NEAREST=L,br.NEAREST_MIPMAP_LINEAR=P,br.LINEAR_MIPMAP_LINEAR=O,br.REPEAT=N,br.CLAMP_TO_EDGE=I,br.MIRRORED_REPEAT=33648;const wr=br;var Tr=ur.extend({skeleton:null,joints:null},(function(){this.joints||(this.joints=[])}),{offsetMatrix:null,isInstancedMesh:function(){return!1},isSkinnedMesh:function(){return!!(this.skeleton&&this.joints&&this.joints.length>0)},clone:function(){var e=ur.prototype.clone.call(this);return e.skeleton=this.skeleton,this.joints&&(e.joints=this.joints.slice()),e}});Tr.POINTS=0,Tr.LINES=1,Tr.LINE_LOOP=2,Tr.LINE_STRIP=3,Tr.TRIANGLES=4,Tr.TRIANGLE_STRIP=5,Tr.TRIANGLE_FAN=6,Tr.BACK=x,Tr.FRONT=y,Tr.FRONT_AND_BACK=1032,Tr.CW=b,Tr.CCW=w;const Sr=Tr;const Mr={isPowerOfTwo:function(e){return 0==(e&e-1)},nextPowerOfTwo:function(e){return e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},nearestPowerOfTwo:function(e){return Math.pow(2,Math.round(Math.log(e)/Math.LN2))}};var Ar=Mr.isPowerOfTwo;function Er(e){return Math.pow(2,Math.round(Math.log(e)/Math.LN2))}var Cr=wr.extend((function(){return{image:null,pixels:null,mipmaps:[],convertToPOT:!1}}),{textureType:"texture2D",update:function(e){var t=e.gl;t.bindTexture(t.TEXTURE_2D,this._cache.get("webgl_texture")),this.updateCommon(e);var r=this.format,i=this.type,n=!(!this.convertToPOT||this.mipmaps.length||!this.image||this.wrapS!==wr.REPEAT&&this.wrapT!==wr.REPEAT||!this.NPOT);t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,n?this.wrapS:this.getAvailableWrapS()),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,n?this.wrapT:this.getAvailableWrapT()),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,n?this.magFilter:this.getAvailableMagFilter()),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,n?this.minFilter:this.getAvailableMinFilter());var a=e.getGLExtension("EXT_texture_filter_anisotropic");if(a&&this.anisotropic>1&&t.texParameterf(t.TEXTURE_2D,a.TEXTURE_MAX_ANISOTROPY_EXT,this.anisotropic),36193===i&&(e.getGLExtension("OES_texture_half_float")||(i=S)),this.mipmaps.length)for(var o=this.width,s=this.height,l=0;l=wr.COMPRESSED_RGB_S3TC_DXT1_EXT?e.compressedTexImage2D(e.TEXTURE_2D,r,a,i,n,0,t.pixels):e.texImage2D(e.TEXTURE_2D,r,a,i,n,0,a,o,t.pixels)},generateMipmap:function(e){var t=e.gl;this.useMipmap&&!this.NPOT&&(t.bindTexture(t.TEXTURE_2D,this._cache.get("webgl_texture")),t.generateMipmap(t.TEXTURE_2D))},isPowerOfTwo:function(){return Ar(this.width)&&Ar(this.height)},isRenderable:function(){return this.image?this.image.width>0&&this.image.height>0:!(!this.width||!this.height)},bind:function(e){e.gl.bindTexture(e.gl.TEXTURE_2D,this.getWebGLTexture(e))},unbind:function(e){e.gl.bindTexture(e.gl.TEXTURE_2D,null)},load:function(e,t){var r=U.createImage();t&&(r.crossOrigin=t);var i=this;return r.onload=function(){i.dirty(),i.trigger("success",i)},r.onerror=function(){i.trigger("error",i)},r.src=e,this.image=r,this}});Object.defineProperty(Cr.prototype,"width",{get:function(){return this.image?this.image.width:this._width},set:function(e){this.image?console.warn("Texture from image can't set width"):(this._width!==e&&this.dirty(),this._width=e)}}),Object.defineProperty(Cr.prototype,"height",{get:function(){return this.image?this.image.height:this._height},set:function(e){this.image?console.warn("Texture from image can't set height"):(this._height!==e&&this.dirty(),this._height=e)}});const Dr=Cr;function Lr(e){return{byte:U.Int8Array,ubyte:U.Uint8Array,short:U.Int16Array,ushort:U.Uint16Array}[e]||U.Float32Array}function Pr(e){return"attr_"+e}function Or(e,t,r,i){switch(this.name=e,this.type=t,this.size=r,this.semantic=i||"",this.value=null,r){case 1:this.get=function(e){return this.value[e]},this.set=function(e,t){this.value[e]=t},this.copy=function(e,t){this.value[e]=this.value[e]};break;case 2:this.get=function(e,t){var r=this.value;return t[0]=r[2*e],t[1]=r[2*e+1],t},this.set=function(e,t){var r=this.value;r[2*e]=t[0],r[2*e+1]=t[1]},this.copy=function(e,t){var r=this.value;t*=2,r[e*=2]=r[t],r[e+1]=r[t+1]};break;case 3:this.get=function(e,t){var r=3*e,i=this.value;return t[0]=i[r],t[1]=i[r+1],t[2]=i[r+2],t},this.set=function(e,t){var r=3*e,i=this.value;i[r]=t[0],i[r+1]=t[1],i[r+2]=t[2]},this.copy=function(e,t){var r=this.value;t*=3,r[e*=3]=r[t],r[e+1]=r[t+1],r[e+2]=r[t+2]};break;case 4:this.get=function(e,t){var r=this.value,i=4*e;return t[0]=r[i],t[1]=r[i+1],t[2]=r[i+2],t[3]=r[i+3],t},this.set=function(e,t){var r=this.value,i=4*e;r[i]=t[0],r[i+1]=t[1],r[i+2]=t[2],r[i+3]=t[3]},this.copy=function(e,t){var r=this.value;t*=4,r[e*=4]=r[t],r[e+1]=r[t+1],r[e+2]=r[t+2],r[e+3]=r[t+3]}}}function Nr(e,t,r,i,n){this.name=e,this.type=t,this.buffer=r,this.size=i,this.semantic=n,this.symbol="",this.needsRemove=!1}function Ir(e){this.buffer=e,this.count=0}Or.prototype.init=function(e){if(!this.value||this.value.length!==e*this.size){var t=Lr(this.type);this.value=new t(e*this.size)}},Or.prototype.fromArray=function(e){var t,r=Lr(this.type);if(e[0]&&e[0].length){var i=0,n=this.size;t=new r(e.length*n);for(var a=0;a=0){t||(t=[]);var r=this.indices;return t[0]=r[3*e],t[1]=r[3*e+1],t[2]=r[3*e+2],t}},setTriangleIndices:function(e,t){var r=this.indices;r[3*e]=t[0],r[3*e+1]=t[1],r[3*e+2]=t[2]},isUseIndices:function(){return!!this.indices},initIndicesFromArray:function(e){var t,r=this.vertexCount>65535?U.Uint32Array:U.Uint16Array;if(e[0]&&e[0].length){var i=0;t=new r(3*e.length);for(var n=0;n=0&&(t.splice(r,1),delete this.attributes[e],!0)},getAttribute:function(e){return this.attributes[e]},getEnabledAttributes:function(){var e=this._enabledAttributes,t=this._attributeList;if(e)return e;for(var r=[],i=this.vertexCount,n=0;na[0]&&(a[0]=s),l>a[1]&&(a[1]=l),h>a[2]&&(a[2]=h)}r._dirty=!0,i._dirty=!0}},generateVertexNormals:function(){if(this.vertexCount){var e=this.indices,t=this.attributes,r=t.position.value,i=t.normal.value;if(i&&i.length===r.length)for(var n=0;n65535&&(this.indices=new U.Uint32Array(this.indices));for(var e=this.attributes,t=this.indices,r=this.getEnabledAttributes(),i={},n=0;nthis.distance,n=1;n<8;n++)if(Qe.dot(t[n].array,r)>this.distance!=i)return!0},intersectLine:(Qr=Qe.create(),function(e,t,r){var i=this.distanceToPoint(e),n=this.distanceToPoint(t);if(i>0&&n>0||i<0&&n<0)return null;var a=this.normal.array,o=this.distance,s=e.array;Qe.sub(Qr,t.array,e.array),Qe.normalize(Qr,Qr);var l=Qe.dot(a,Qr);if(0===l)return null;r||(r=new vt);var h=(Qe.dot(a,s)-o)/l;return Qe.scaleAndAdd(r.array,s,Qr,-h),r._dirty=!0,r}),applyTransform:(Zr=Ye.create(),Yr=Et.create(),Kr=Et.create(),Kr[3]=1,function(e){e=e.array,Qe.scale(Kr,this.normal.array,this.distance),Et.transformMat4(Kr,Kr,e),this.distance=Qe.dot(Kr,this.normal.array),Ye.invert(Zr,e),Ye.transpose(Zr,Zr),Yr[3]=0,Qe.copy(Yr,this.normal.array),Et.transformMat4(Yr,Yr,Zr),Qe.copy(this.normal.array,Yr)}),copy:function(e){Qe.copy(this.normal.array,e.normal.array),this.normal._dirty=!0,this.distance=e.distance},clone:function(){var e=new Jr;return e.copy(this),e}};const $r=Jr;var ei,ti=Qe.set,ri=Qe.copy,ii=Qe.transformMat4,ni=Math.min,ai=Math.max,oi=function(){this.planes=[];for(var e=0;e<6;e++)this.planes.push(new $r);for(this.boundingBox=new ir,this.vertices=[],e=0;e<8;e++)this.vertices[e]=Qe.fromValues(0,0,0)};oi.prototype={setFromProjection:function(e){var t=this.planes,r=e.array,i=r[0],n=r[1],a=r[2],o=r[3],s=r[4],l=r[5],h=r[6],u=r[7],c=r[8],d=r[9],f=r[10],p=r[11],m=r[12],g=r[13],_=r[14],v=r[15];ti(t[0].normal.array,o-i,u-s,p-c),t[0].distance=-(v-m),t[0].normalize(),ti(t[1].normal.array,o+i,u+s,p+c),t[1].distance=-(v+m),t[1].normalize(),ti(t[2].normal.array,o+n,u+l,p+d),t[2].distance=-(v+g),t[2].normalize(),ti(t[3].normal.array,o-n,u-l,p-d),t[3].distance=-(v-g),t[3].normalize(),ti(t[4].normal.array,o-a,u-h,p-f),t[4].distance=-(v-_),t[4].normalize(),ti(t[5].normal.array,o+a,u+h,p+f),t[5].distance=-(v+_),t[5].normalize();var y=this.boundingBox,x=this.vertices;if(0===v){var b=l/i,w=-_/(f-1),T=-_/(f+1),S=-T/l,M=-w/l;y.min.set(-S*b,-S,T),y.max.set(S*b,S,w),ti(x[0],-S*b,-S,T),ti(x[1],-S*b,S,T),ti(x[2],S*b,-S,T),ti(x[3],S*b,S,T),ti(x[4],-M*b,-M,w),ti(x[5],-M*b,M,w),ti(x[6],M*b,-M,w),ti(x[7],M*b,M,w)}else{var A=(-1-m)/i,E=(1-m)/i,C=(1-g)/l,D=(-1-g)/l,L=(-1-_)/f,P=(1-_)/f;y.min.set(Math.min(A,E),Math.min(D,C),Math.min(P,L)),y.max.set(Math.max(E,A),Math.max(C,D),Math.max(L,P));var O=y.min.array,N=y.max.array;ti(x[0],O[0],O[1],O[2]),ti(x[1],O[0],N[1],O[2]),ti(x[2],N[0],O[1],O[2]),ti(x[3],N[0],N[1],O[2]),ti(x[4],O[0],O[1],N[2]),ti(x[5],O[0],N[1],N[2]),ti(x[6],N[0],O[1],N[2]),ti(x[7],N[0],N[1],N[2])}},getTransformedBoundingBox:(ei=Qe.create(),function(e,t){var r=this.vertices,i=t.array,n=e.min,a=e.max,o=n.array,s=a.array,l=r[0];ii(ei,l,i),ri(o,ei),ri(s,ei);for(var h=1;h<8;h++)l=r[h],ii(ei,l,i),o[0]=ni(ei[0],o[0]),o[1]=ni(ei[1],o[1]),o[2]=ni(ei[2],o[2]),s[0]=ai(ei[0],s[0]),s[1]=ai(ei[1],s[1]),s[2]=ai(ei[2],s[2]);return n._dirty=!0,a._dirty=!0,e})};const si=oi;var li;const hi=sr.extend((function(){return{projectionMatrix:new Ht,invProjectionMatrix:new Ht,viewMatrix:new Ht,frustum:new si}}),(function(){this.update(!0)}),{update:function(e){sr.prototype.update.call(this,e),Ht.invert(this.viewMatrix,this.worldTransform),this.updateProjectionMatrix(),Ht.invert(this.invProjectionMatrix,this.projectionMatrix),this.frustum.setFromProjection(this.projectionMatrix)},setViewMatrix:function(e){Ht.copy(this.viewMatrix,e),Ht.invert(this.worldTransform,e),this.decomposeWorldTransform()},decomposeProjectionMatrix:function(){},setProjectionMatrix:function(e){Ht.copy(this.projectionMatrix,e),Ht.invert(this.invProjectionMatrix,e),this.decomposeProjectionMatrix()},updateProjectionMatrix:function(){},castRay:(li=Et.create(),function(e,t){var r=void 0!==t?t:new Mt,i=e.array[0],n=e.array[1];return Et.set(li,i,n,-1,1),Et.transformMat4(li,li,this.invProjectionMatrix.array),Et.transformMat4(li,li,this.worldTransform.array),Qe.scale(r.origin.array,li,1/li[3]),Et.set(li,i,n,1,1),Et.transformMat4(li,li,this.invProjectionMatrix.array),Et.transformMat4(li,li,this.worldTransform.array),Qe.scale(li,li,1/li[3]),Qe.sub(r.direction.array,li,r.origin.array),Qe.normalize(r.direction.array,r.direction.array),r.direction._dirty=!0,r.origin._dirty=!0,r})});var ui,ci,di=Ye.create(),fi=Ye.create(),pi={};function mi(e){var t=[],r=Object.keys(e);r.sort();for(var i=0;i0&&console.warn("Found multiple camera in one scene. Use the fist one."),this._cameraList.push(e)):e instanceof qr&&this.lights.push(e),e.name&&(this._nodeRepository[e.name]=e)},removeFromScene:function(e){var t;e instanceof hi?(t=this._cameraList.indexOf(e))>=0&&this._cameraList.splice(t,1):e instanceof qr&&(t=this.lights.indexOf(e))>=0&&this.lights.splice(t,1),e.name&&delete this._nodeRepository[e.name]},getNode:function(e){return this._nodeRepository[e]},setMainCamera:function(e){var t=this._cameraList.indexOf(e);t>=0&&this._cameraList.splice(t,1),this._cameraList.unshift(e)},getMainCamera:function(){return this._cameraList[0]},getLights:function(){return this.lights},updateLights:function(){var e=this.lights;this._previousLightNumber=this._lightNumber;for(var t={},r=0;r0&&this._doUpdateRenderList(o,t,r,i,n)}},isFrustumCulled:(ui=new ir,ci=new Ht,function(e,t,r){var i=e.boundingBox;if(i||(i=e.skeleton&&e.skeleton.boundingBox?e.skeleton.boundingBox:e.geometry.boundingBox),!i)return!1;if(ci.array=r,ui.transformFrom(i,ci),e.castShadow&&this.viewBoundingBoxLastFrame.union(ui),e.frustumCulling){if(!ui.intersectBoundingBox(t.frustum.boundingBox))return!0;ci.array=t.projectionMatrix.array,ui.max.array[2]>0&&ui.min.array[2]<0&&(ui.max.array[2]=-1e-20),ui.applyProjection(ci);var n=ui.min.array,a=ui.max.array;if(a[0]<-1||n[0]>1||a[1]<-1||n[1]>1||a[2]<-1||n[2]>1)return!0}return!1}),_updateLightUniforms:function(){var e=this.lights;e.sort(_i);var t=this._lightUniforms;for(var r in t)for(var i in t[r])t[r][i].value.length=0;for(var n=0;n=this._maxSize&&a>0){var s=r.head;r.remove(s),delete i[s.key],n=s.value,this._lastRemovedEntry=s}o?o.value=t:o=new yi(t),o.key=e,r.insertEntry(o),i[e]=o}return n},e.prototype.get=function(e){var t=this._map[e],r=this._list;if(null!=t)return t!==r.tail&&(r.remove(t),r.insertEntry(t)),t.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}();var wi=Mr.isPowerOfTwo,Ti=["px","nx","py","ny","pz","nz"],Si=wr.extend((function(){return{image:{px:null,nx:null,py:null,ny:null,pz:null,nz:null},pixels:{px:null,nx:null,py:null,ny:null,pz:null,nz:null},mipmaps:[]}}),{textureType:"textureCube",update:function(e){var t=e.gl;t.bindTexture(t.TEXTURE_CUBE_MAP,this._cache.get("webgl_texture")),this.updateCommon(e);var r=this.format,i=this.type;t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_WRAP_S,this.getAvailableWrapS()),t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_WRAP_T,this.getAvailableWrapT()),t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_MAG_FILTER,this.getAvailableMagFilter()),t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_MIN_FILTER,this.getAvailableMinFilter());var n=e.getGLExtension("EXT_texture_filter_anisotropic");if(n&&this.anisotropic>1&&t.texParameterf(t.TEXTURE_CUBE_MAP,n.TEXTURE_MAX_ANISOTROPY_EXT,this.anisotropic),36193===i&&(e.getGLExtension("OES_texture_half_float")||(i=S)),this.mipmaps.length)for(var a=this.width,o=this.height,s=0;s0&&e.height>0}Object.defineProperty(Si.prototype,"width",{get:function(){return this.image&&this.image.px?this.image.px.width:this._width},set:function(e){this.image&&this.image.px?console.warn("Texture from image can't set width"):(this._width!==e&&this.dirty(),this._width=e)}}),Object.defineProperty(Si.prototype,"height",{get:function(){return this.image&&this.image.px?this.image.px.height:this._height},set:function(e){this.image&&this.image.px?console.warn("Texture from image can't set height"):(this._height!==e&&this.dirty(),this._height=e)}});const Ai=Si,Ei=hi.extend({fov:50,aspect:1,near:.1,far:2e3},{updateProjectionMatrix:function(){var e=this.fov/180*Math.PI;this.projectionMatrix.perspective(e,this.aspect,this.near,this.far)},decomposeProjectionMatrix:function(){var e=this.projectionMatrix.array,t=2*Math.atan(1/e[5]);this.fov=t/Math.PI*180,this.aspect=e[5]/e[0],this.near=e[14]/(e[10]-1),this.far=e[14]/(e[10]+1)},clone:function(){var e=hi.prototype.clone.call(this);return e.fov=this.fov,e.aspect=this.aspect,e.near=this.near,e.far=this.far,e}});var Ci="framebuffer",Di="renderbuffer",Li="renderbuffer_width",Pi="renderbuffer_height",Oi="renderbuffer_attached",Ni="depthtexture_attached",Ii=36160,Ri=36161,Bi=36096,Fi=m.extend({depthBuffer:!0,viewport:null,_width:0,_height:0,_textures:null,_boundRenderer:null},(function(){this._cache=new xr,this._textures={}}),{getTextureWidth:function(){return this._width},getTextureHeight:function(){return this._height},bind:function(e){if(e.__currentFrameBuffer){if(e.__currentFrameBuffer===this)return;console.warn("Renderer already bound with another framebuffer. Unbind it first")}e.__currentFrameBuffer=this;var t=e.gl;t.bindFramebuffer(Ii,this._getFrameBufferGL(e)),this._boundRenderer=e;var r=this._cache;r.put("viewport",e.viewport);var i,n,a=!1;for(var o in this._textures){a=!0;var s=this._textures[o];s&&(i=s.texture.width,n=s.texture.height,this._doAttach(e,s.texture,o,s.target))}this._width=i,this._height=n,!a&&this.depthBuffer&&console.error("Must attach texture before bind, or renderbuffer may have incorrect width and height."),this.viewport?e.setViewport(this.viewport):e.setViewport(0,0,i,n,1);var l=r.get("attached_textures");if(l)for(var o in l)if(!this._textures[o]){var h=l[o];this._doDetach(t,o,h)}if(!r.get(Ni)&&this.depthBuffer){r.miss(Di)&&r.put(Di,t.createRenderbuffer());var u=r.get(Di);i===r.get(Li)&&n===r.get(Pi)||(t.bindRenderbuffer(Ri,u),t.renderbufferStorage(Ri,t.DEPTH_COMPONENT16,i,n),r.put(Li,i),r.put(Pi,n),t.bindRenderbuffer(Ri,null)),r.get(Oi)||(t.framebufferRenderbuffer(Ii,Bi,Ri,u),r.put(Oi,!0))}},unbind:function(e){e.__currentFrameBuffer=null,e.gl.bindFramebuffer(Ii,null),this._boundRenderer=null,this._cache.use(e.__uid__);var t=this._cache.get("viewport");t&&e.setViewport(t),this.updateMipmap(e)},updateMipmap:function(e){var t=e.gl;for(var r in this._textures){var i=this._textures[r];if(i){var n=i.texture;if(!n.NPOT&&n.useMipmap&&n.minFilter===wr.LINEAR_MIPMAP_LINEAR){var a="textureCube"===n.textureType?34067:3553;t.bindTexture(a,n.getWebGLTexture(e)),t.generateMipmap(a),t.bindTexture(a,null)}}}},checkStatus:function(e){return e.checkFramebufferStatus(Ii)},_getFrameBufferGL:function(e){var t=this._cache;return t.use(e.__uid__),t.miss(Ci)&&t.put(Ci,e.gl.createFramebuffer()),t.get(Ci)},attach:function(e,t,r){if(!e.width)throw new Error("The texture attached to color buffer is not a valid.");t=t||36064,r=r||3553;var i,n=this._boundRenderer;if(n&&n.gl){var a=this._cache;a.use(n.__uid__),i=a.get("attached_textures")}var o=this._textures[t];if(!o||o.target!==r||o.texture!==e||!i||null==i[t]){var s=!0;n&&(s=this._doAttach(n,e,t,r),this.viewport||n.setViewport(0,0,e.width,e.height,1)),s&&(this._textures[t]=this._textures[t]||{},this._textures[t].texture=e,this._textures[t].target=r)}},_doAttach:function(e,t,r,i){var n=e.gl,a=t.getWebGLTexture(e),o=this._cache.get("attached_textures");if(o&&o[r]){var s=o[r];if(s.texture===t&&s.target===i)return}var l=!0;if(((r=+r)===Bi||r===R)&&(e.getGLExtension("WEBGL_depth_texture")||(console.error("Depth texture is not supported by the browser"),l=!1),t.format!==M&&34041!==t.format&&(console.error("The texture attached to depth buffer is not a valid."),l=!1),l)){var h=this._cache.get(Di);h&&(n.framebufferRenderbuffer(Ii,Bi,Ri,null),n.deleteRenderbuffer(h),this._cache.put(Di,!1)),this._cache.put(Oi,!1),this._cache.put(Ni,!0)}return n.framebufferTexture2D(Ii,r,i,a,0),o||(o={},this._cache.put("attached_textures",o)),o[r]=o[r]||{},o[r].texture=t,o[r].target=i,l},_doDetach:function(e,t,r){e.framebufferTexture2D(Ii,t,r,null,0);var i=this._cache.get("attached_textures");i&&i[t]&&(i[t]=null),t!==Bi&&t!==R||this._cache.put(Ni,!1)},detach:function(e,t){this._textures[e]=null,this._boundRenderer&&(this._cache.use(this._boundRenderer.__uid__),this._doDetach(this._boundRenderer.gl,e,t))},dispose:function(e){var t=e.gl,r=this._cache;r.use(e.__uid__);var i=r.get(Di);i&&t.deleteRenderbuffer(i);var n=r.get(Ci);n&&t.deleteFramebuffer(n),r.deleteContext(e.__uid__),this._textures={}}});Fi.DEPTH_ATTACHMENT=Bi,Fi.COLOR_ATTACHMENT0=36064,Fi.STENCIL_ATTACHMENT=36128,Fi.DEPTH_STENCIL_ATTACHMENT=R;const zi=Fi;var Gi=["px","nx","py","ny","pz","nz"];const Ui=m.extend((function(){var e={position:new vt,far:1e3,near:.1,texture:null,shadowMapPass:null},t=e._cameras={px:new Ei({fov:90}),nx:new Ei({fov:90}),py:new Ei({fov:90}),ny:new Ei({fov:90}),pz:new Ei({fov:90}),nz:new Ei({fov:90})};return t.px.lookAt(vt.POSITIVE_X,vt.NEGATIVE_Y),t.nx.lookAt(vt.NEGATIVE_X,vt.NEGATIVE_Y),t.py.lookAt(vt.POSITIVE_Y,vt.POSITIVE_Z),t.ny.lookAt(vt.NEGATIVE_Y,vt.NEGATIVE_Z),t.pz.lookAt(vt.POSITIVE_Z,vt.NEGATIVE_Y),t.nz.lookAt(vt.NEGATIVE_Z,vt.NEGATIVE_Y),e._frameBuffer=new zi,e}),{getCamera:function(e){return this._cameras[e]},render:function(e,t,r){var i=e.gl;r||t.update();for(var n=this.texture.width,a=2*Math.atan(n/(n-.5))/Math.PI*180,o=0;o<6;o++){var s=Gi[o],l=this._cameras[s];if(vt.copy(l.position,this.position),l.far=this.far,l.near=this.near,l.fov=a,this.shadowMapPass){l.update();var h=t.getBoundingBox();h.applyTransform(l.viewMatrix),t.viewBoundingBoxLastFrame.copy(h),this.shadowMapPass.render(e,t,l,!0)}this._frameBuffer.attach(this.texture,i.COLOR_ATTACHMENT0,i.TEXTURE_CUBE_MAP_POSITIVE_X+o),this._frameBuffer.bind(e),e.render(t,l,!0),this._frameBuffer.unbind(e)}},dispose:function(e){this._frameBuffer.dispose(e)}}),ki=Vr.extend({dynamic:!1,widthSegments:1,heightSegments:1},(function(){this.build()}),{build:function(){for(var e=this.heightSegments,t=this.widthSegments,r=this.attributes,i=[],n=[],a=[],o=[],s=0;s<=e;s++)for(var l=s/e,h=0;h<=t;h++){var u=h/t;if(i.push([2*u-1,2*l-1,0]),n&&n.push([u,l]),a&&a.push([0,0,1]),h0?this.material.define("fragment","LOD"):this.material.undefine("fragment","LOD"),e.renderPass([this],r)}}),Xi=ji;function qi(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)}var Zi=qi("DXT1"),Yi=qi("DXT3"),Ki=qi("DXT5");const Qi=function(e,t){var r=new Int32Array(e,0,31);if(542327876!==r[0])return null;if(4&!r(20))return null;var i,n,a=r(21),o=r[4],s=r[3],l=512&r[28],h=131072&r[2];switch(a){case Zi:i=8,n=wr.COMPRESSED_RGB_S3TC_DXT1_EXT;break;case Yi:i=16,n=wr.COMPRESSED_RGBA_S3TC_DXT3_EXT;break;case Ki:i=16,n=wr.COMPRESSED_RGBA_S3TC_DXT5_EXT;break;default:return null}var u=r[1]+4,c=l?6:1,d=1;h&&(d=Math.max(1,r[7]));for(var f=[],p=0;p0){var n=Math.pow(2,e[3]-128-8+i);t[r+0]=e[0]*n,t[r+1]=e[1]*n,t[r+2]=e[2]*n}else t[r+0]=0,t[r+1]=0,t[r+2]=0;return t[r+3]=1,t}function en(e,t,r,i){for(var n,a,o=0,s=0,l=i;l>0;)if(e[s][0]=t[r++],e[s][1]=t[r++],e[s][2]=t[r++],e[s][3]=t[r++],1===e[s][0]&&1===e[s][1]&&1===e[s][2]){for(var h=e[s][3]<>>0;h>0;h--)n=e[s-1],(a=e[s])[0]=n[0],a[1]=n[1],a[2]=n[2],a[3]=n[3],s++,l--;o+=8}else s++,l--,o=0;return r}function tn(e,t,r,i){if(i<8|i>32767)return en(e,t,r,i);if(2!=(n=t[r++]))return en(e,t,r-1,i);if(e[0][1]=t[r++],e[0][2]=t[r++],n=t[r++],(e[0][2]<<8>>>0|n)>>>0!==i)return null;for(var n=0;n<4;n++)for(var a=0;a128){o=(127&o)>>>0;for(var s=t[r++];o--;)e[a++][n]=s}else for(;o--;)e[a++][n]=t[r++]}return r}const rn=function(e,t,r){null==r&&(r=0);var i=new Uint8Array(e),n=i.length;if("#?"===function(e,t,r){for(var i="",n=0;n<2;n++)i+=Ji(e[n]);return i}(i)){for(var a=2;a=n)){a+=2;for(var o="";a20)return console.warn("Given image is not a height map"),e}var d,f,p,m;l%(4*i)==0?(d=o.data[l],p=o.data[l+4]):l%(4*i)==4*(i-1)?(d=o.data[l-4],p=o.data[l]):(d=o.data[l-4],p=o.data[l+4]),l<4*i?(f=o.data[l],m=o.data[l+4*i]):l>i*(n-1)*4?(f=o.data[l-4*i],m=o.data[l]):(f=o.data[l-4*i],m=o.data[l+4*i]),s.data[l]=d-p+127,s.data[l+1]=f-m+127,s.data[l+2]=255,s.data[l+3]=255}return a.putImageData(s,0,0),r},isHeightImage:function(e,t,r){if(!e||!e.width||!e.height)return!1;var i=document.createElement("canvas"),n=i.getContext("2d"),a=t||32;r=r||20,i.width=i.height=a,n.drawImage(e,0,0,a,a);for(var o=n.getImageData(0,0,a,a),s=0;sr)return!1}return!0},_fetchTexture:function(e,t,r){U.request.get({url:e,responseType:"arraybuffer",onload:t,onerror:r})},createChessboard:function(e,t,r,i){e=e||512,t=t||64,r=r||"black",i=i||"white";var n=Math.ceil(e/t),a=document.createElement("canvas");a.width=e,a.height=e;var o=a.getContext("2d");o.fillStyle=i,o.fillRect(0,0,e,e),o.fillStyle=r;for(var s=0;s=0||(on.forEach((function(t){e.on(t,this[sn(t)],this)}),this),this._meshes.push(e))},detachFromMesh:function(e){var t=this._meshes.indexOf(e);t>=0&&this._meshes.splice(t,1),on.forEach((function(t){e.off(t,this[sn(t)])}),this)},dispose:function(){this._meshes.forEach((function(e){this.detachFromMesh(e)}),this)}};const hn=ln,un=hi.extend({left:-1,right:1,near:-1,far:1,top:1,bottom:-1},{updateProjectionMatrix:function(){this.projectionMatrix.ortho(this.left,this.right,this.bottom,this.top,this.near,this.far)},decomposeProjectionMatrix:function(){var e=this.projectionMatrix.array;this.left=(-1-e[12])/e[0],this.right=(1-e[12])/e[0],this.top=(1-e[13])/e[5],this.bottom=(-1-e[13])/e[5],this.near=-(-1-e[14])/e[10],this.far=-(1-e[14])/e[10]},clone:function(){var e=hi.prototype.clone.call(this);return e.left=this.left,e.right=this.right,e.near=this.near,e.far=this.far,e.top=this.top,e.bottom=this.bottom,e}});Xe.import("\n@export clay.compositor.vertex\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\nattribute vec3 position : POSITION;\nattribute vec2 texcoord : TEXCOORD_0;\nvarying vec2 v_Texcoord;\nvoid main()\n{\n v_Texcoord = texcoord;\n gl_Position = worldViewProjection * vec4(position, 1.0);\n}\n@end");var cn=new ki,dn=new Sr({geometry:cn,frustumCulling:!1}),fn=new un;const pn=m.extend((function(){return{fragment:"",outputs:null,material:null,blendWithPrevious:!1,clearColor:!1,clearDepth:!0}}),(function(){var e=new Xe(Xe.source("clay.compositor.vertex"),this.fragment),t=new le({shader:e});t.enableTexturesAll(),this.material=t}),{setUniform:function(e,t){this.material.setUniform(e,t)},getUniform:function(e){var t=this.material.uniforms[e];if(t)return t.value},attachOutput:function(e,t){this.outputs||(this.outputs={}),t=t||36064,this.outputs[t]=e},detachOutput:function(e){for(var t in this.outputs)this.outputs[t]===e&&(this.outputs[t]=null)},bind:function(e,t){if(this.outputs)for(var r in this.outputs){var i=this.outputs[r];i&&t.attach(i,r)}t&&t.bind(e)},unbind:function(e,t){t.unbind(e)},render:function(e,t){var r=e.gl;if(t){this.bind(e,t);var i=e.getGLExtension("EXT_draw_buffers");if(i&&this.outputs){var n=[];for(var a in this.outputs)(a=+a)>=r.COLOR_ATTACHMENT0&&a<=r.COLOR_ATTACHMENT0+8&&n.push(a);i.drawBuffersEXT(n)}}this.trigger("beforerender",this,e);var o=this.clearDepth?r.DEPTH_BUFFER_BIT:0;if(r.depthMask(!0),this.clearColor){o|=r.COLOR_BUFFER_BIT,r.colorMask(!0,!0,!0,!0);var s=this.clearColor;Array.isArray(s)&&r.clearColor(s[0],s[1],s[2],s[3])}r.clear(o),this.blendWithPrevious?(r.enable(r.BLEND),this.material.transparent=!0):(r.disable(r.BLEND),this.material.transparent=!1),this.renderQuad(e),this.trigger("afterrender",this,e),t&&this.unbind(e,t)},renderQuad:function(e){dn.material=this.material,e.renderPass([dn],fn)},dispose:function(e){}});var mn={},gn=["px","nx","py","ny","pz","nz"];mn.prefilterEnvironmentMap=function(e,t,r,i,n){n&&i||(i=mn.generateNormalDistribution(),n=mn.integrateBRDF(e,i));var a=(r=r||{}).width||64,o=r.height||64,s=r.type||t.type,l=new Ai({width:a,height:o,type:s,flipY:!1,mipmaps:[]});l.isPowerOfTwo()||console.warn("Width and height must be power of two to enable mipmap.");var h=Math.min(a,o),u=Math.log(h)/Math.log(2)+1,c=new le({shader:new Xe({vertex:Xe.source("clay.skybox.vertex"),fragment:"#define SHADER_NAME prefilter\n#define SAMPLE_NUMBER 1024\n#define PI 3.14159265358979\nuniform mat4 viewInverse : VIEWINVERSE;\nuniform samplerCube environmentMap;\nuniform sampler2D normalDistribution;\nuniform float roughness : 0.5;\nvarying vec2 v_Texcoord;\nvarying vec3 v_WorldPosition;\n@import clay.util.rgbm\nvec3 importanceSampleNormal(float i, float roughness, vec3 N) {\n vec3 H = texture2D(normalDistribution, vec2(roughness, i)).rgb;\n vec3 upVector = abs(N.y) > 0.999 ? vec3(1.0, 0.0, 0.0) : vec3(0.0, 1.0, 0.0);\n vec3 tangentX = normalize(cross(N, upVector));\n vec3 tangentZ = cross(N, tangentX);\n return normalize(tangentX * H.x + N * H.y + tangentZ * H.z);\n}\nvoid main() {\n vec3 eyePos = viewInverse[3].xyz;\n vec3 V = normalize(v_WorldPosition - eyePos);\n vec3 N = V;\n vec3 prefilteredColor = vec3(0.0);\n float totalWeight = 0.0;\n float fMaxSampleNumber = float(SAMPLE_NUMBER);\n for (int i = 0; i < SAMPLE_NUMBER; i++) {\n vec3 H = importanceSampleNormal(float(i) / fMaxSampleNumber, roughness, N);\n vec3 L = reflect(-V, H);\n float NoL = clamp(dot(N, L), 0.0, 1.0);\n if (NoL > 0.0) {\n prefilteredColor += decodeHDR(textureCube(environmentMap, L)).rgb * NoL;\n totalWeight += NoL;\n }\n }\n gl_FragColor = encodeHDR(vec4(prefilteredColor / totalWeight, 1.0));\n}\n"})});c.set("normalDistribution",i),r.encodeRGBM&&c.define("fragment","RGBM_ENCODE"),r.decodeRGBM&&c.define("fragment","RGBM_DECODE");var d,f=new vi;if("texture2D"===t.textureType){var p=new Ai({width:a,height:o,type:s===wr.FLOAT?wr.HALF_FLOAT:s});an.panoramaToCubeMap(e,t,p,{encodeRGBM:r.decodeRGBM}),t=p}(d=new ji({scene:f,material:c})).material.set("environmentMap",t);var m=new Ui({texture:l});r.encodeRGBM&&(s=l.type=wr.UNSIGNED_BYTE);for(var g=new Dr({width:a,height:o,type:s}),_=new zi({depthBuffer:!1}),v=U[s===wr.UNSIGNED_BYTE?"Uint8Array":"Float32Array"],y=0;y 0.999 ? vec3(1.0, 0.0, 0.0) : vec3(0.0, 1.0, 0.0);\n vec3 tangentX = normalize(cross(N, upVector));\n vec3 tangentZ = cross(N, tangentX);\n return normalize(tangentX * H.x + N * H.y + tangentZ * H.z);\n}\nfloat G_Smith(float roughness, float NoV, float NoL) {\n float k = roughness * roughness / 2.0;\n float G1V = NoV / (NoV * (1.0 - k) + k);\n float G1L = NoL / (NoL * (1.0 - k) + k);\n return G1L * G1V;\n}\nvoid main() {\n vec2 uv = gl_FragCoord.xy / viewportSize;\n float NoV = uv.x;\n float roughness = uv.y;\n vec3 V;\n V.x = sqrt(1.0 - NoV * NoV);\n V.y = 0.0;\n V.z = NoV;\n float A = 0.0;\n float B = 0.0;\n for (int i = 0; i < SAMPLE_NUMBER; i++) {\n vec3 H = importanceSampleNormal(float(i) / fSampleNumber, roughness, N);\n vec3 L = reflect(-V, H);\n float NoL = clamp(L.z, 0.0, 1.0);\n float NoH = clamp(H.z, 0.0, 1.0);\n float VoH = clamp(dot(V, H), 0.0, 1.0);\n if (NoL > 0.0) {\n float G = G_Smith(roughness, NoV, NoL);\n float G_Vis = G * VoH / (NoH * NoV);\n float Fc = pow(1.0 - VoH, 5.0);\n A += (1.0 - Fc) * G_Vis;\n B += Fc * G_Vis;\n }\n }\n gl_FragColor = vec4(vec2(A, B) / fSampleNumber, 0.0, 1.0);\n}\n"}),n=new Dr({width:512,height:256,type:wr.HALF_FLOAT,wrapS:wr.CLAMP_TO_EDGE,wrapT:wr.CLAMP_TO_EDGE,minFilter:wr.NEAREST,magFilter:wr.NEAREST,useMipmap:!1});return i.setUniform("normalDistribution",t),i.setUniform("viewportSize",[512,256]),i.attachOutput(n),i.render(e,r),r.dispose(e),n},mn.generateNormalDistribution=function(e,t){for(var r=new Dr({width:e=e||256,height:t=t||1024,type:wr.FLOAT,minFilter:wr.NEAREST,magFilter:wr.NEAREST,wrapS:wr.CLAMP_TO_EDGE,wrapT:wr.CLAMP_TO_EDGE,useMipmap:!1}),i=new Float32Array(t*e*4),n=[],a=0;a>>16)>>>0;h=(((16711935&(h=((252645135&(h=((858993459&(h=((1431655765&h)<<1|(2863311530&h)>>>1)>>>0))<<2|(3435973836&h)>>>2)>>>0))<<4|(4042322160&h)>>>4)>>>0))<<8|(4278255360&h)>>>8)>>>0)/4294967296;var u=Math.sqrt((1-h)/(1+(s*s-1)*h));n[l]=u}for(l=0;l65535?Uint32Array:Uint16Array,v=this.indices=new _(t*e*6),y=this.radius,x=this.phiStart,b=this.phiLength,w=this.thetaStart,T=this.thetaLength,S=[],M=[],A=0,E=1/(y=this.radius);for(d=0;d<=e;d++)for(c=0;c<=t;c++)h=c/t,u=d/e,o=-y*Math.cos(x+h*b)*Math.sin(w+u*T),s=y*Math.cos(w+u*T),l=y*Math.sin(x+h*b)*Math.sin(w+u*T),S[0]=o,S[1]=s,S[2]=l,M[0]=h,M[1]=u,r.set(A,S),i.set(A,M),S[0]*=E,S[1]*=E,S[2]*=E,n.set(A,S),A++;var C=t+1,D=0;for(d=0;d255?255:e}function Qn(e){return e<0?0:e>1?1:e}function Jn(e){var t=e;return t.length&&"%"===t.charAt(t.length-1)?Kn(parseFloat(t)/100*255):Kn(parseInt(t,10))}function $n(e){var t=e;return t.length&&"%"===t.charAt(t.length-1)?Qn(parseFloat(t)/100):Qn(parseFloat(t))}function ea(e,t,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?e+(t-e)*r*6:2*r<1?t:3*r<2?e+(t-e)*(2/3-r)*6:e}function ta(e,t,r,i,n){return e[0]=t,e[1]=r,e[2]=i,e[3]=n,e}function ra(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var ia=new bi(20),na=null;function aa(e,t){na&&ra(na,t),na=ia.put(e,na||t.slice())}function oa(e,t){if(e){t=t||[];var r=ia.get(e);if(r)return ra(t,r);var i=(e+="").replace(/ /g,"").toLowerCase();if(i in Yn)return ra(t,Yn[i]),aa(e,t),t;var n,a=i.length;if("#"===i.charAt(0))return 4===a||5===a?(n=parseInt(i.slice(1,4),16))>=0&&n<=4095?(ta(t,(3840&n)>>4|(3840&n)>>8,240&n|(240&n)>>4,15&n|(15&n)<<4,5===a?parseInt(i.slice(4),16)/15:1),aa(e,t),t):void ta(t,0,0,0,1):7===a||9===a?(n=parseInt(i.slice(1,7),16))>=0&&n<=16777215?(ta(t,(16711680&n)>>16,(65280&n)>>8,255&n,9===a?parseInt(i.slice(7),16)/255:1),aa(e,t),t):void ta(t,0,0,0,1):void 0;var o=i.indexOf("("),s=i.indexOf(")");if(-1!==o&&s+1===a){var l=i.substr(0,o),h=i.substr(o+1,s-(o+1)).split(","),u=1;switch(l){case"rgba":if(4!==h.length)return 3===h.length?ta(t,+h[0],+h[1],+h[2],1):ta(t,0,0,0,1);u=$n(h.pop());case"rgb":return 3!==h.length?void ta(t,0,0,0,1):(ta(t,Jn(h[0]),Jn(h[1]),Jn(h[2]),u),aa(e,t),t);case"hsla":return 4!==h.length?void ta(t,0,0,0,1):(h[3]=$n(h[3]),sa(h,t),aa(e,t),t);case"hsl":return 3!==h.length?void ta(t,0,0,0,1):(sa(h,t),aa(e,t),t);default:return}}ta(t,0,0,0,1)}}function sa(e,t){var r=(parseFloat(e[0])%360+360)%360/360,i=$n(e[1]),n=$n(e[2]),a=n<=.5?n*(i+1):n+i-n*i,o=2*n-a;return ta(t=t||[],Kn(255*ea(o,a,r+1/3)),Kn(255*ea(o,a,r)),Kn(255*ea(o,a,r-1/3)),1),4===e.length&&(t[3]=e[3]),t}var la=Object.prototype.toString,ha=Array.prototype,ua=ha.forEach,ca=ha.filter,da=ha.slice,fa=ha.map,pa=function(){}.constructor,ma=pa?pa.prototype:null;function ga(e,t){if(Object.assign)Object.assign(e,t);else for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function _a(e,t,r){if(e="prototype"in e?e.prototype:e,t="prototype"in t?t.prototype:t,Object.getOwnPropertyNames)for(var i=Object.getOwnPropertyNames(t),n=0;no)i.length=o;else for(var s=a;s=2&&this.interpolable},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(e,t){e>=this.maxTime?this.maxTime=e:this._needsSort=!0;var r=this.keyframes,i=r.length;if(this.interpolable)if(va(t)){var n=function(e){return va(e&&e[0])?2:1}(t);if(i>0&&this.arrDim!==n)return void(this.interpolable=!1);if(1===n&&"number"!=typeof t[0]||2===n&&"number"!=typeof t[0][0])return void(this.interpolable=!1);if(i>0){var a=r[i-1];this._isAllValueEqual&&(1===n&&Na(t,a.value)||(this._isAllValueEqual=!1))}this.arrDim=n}else{if(this.arrDim>0)return void(this.interpolable=!1);if("string"==typeof t){var o=oa(t);o?(t=o,this.isValueColor=!0):this.interpolable=!1}else if("number"!=typeof t||isNaN(t))return void(this.interpolable=!1);this._isAllValueEqual&&i>0&&(a=r[i-1],(this.isValueColor&&!Na(a.value,t)||a.value!==t)&&(this._isAllValueEqual=!1))}var s={time:e,value:t,percent:0};return this.keyframes.push(s),s},e.prototype.prepare=function(e){var t=this.keyframes;this._needsSort&&t.sort((function(e,t){return e.time-t.time}));for(var r=this.arrDim,i=t.length,n=t[i-1],a=0;a0&&a!==i-1&&Oa(t[a].value,n.value,r);if(e&&this.needsAnimate()&&e.needsAnimate()&&r===e.arrDim&&this.isValueColor===e.isValueColor&&!e._finished){this._additiveTrack=e;var o=t[0].value;for(a=0;a=0&&!(a[r].percent<=t);r--);r=Math.min(r,o-2)}else{for(r=this._lastFrame;rt);r++);r=Math.min(r-1,o-2)}var u=a[r+1],c=a[r];if(c&&u){this._lastFrame=r,this._lastFramePercent=t;var d=u.percent-c.percent;if(0!==d){var f=(t-c.percent)/d,p=i?this._additiveValue:h?za:e[s];if((l>0||h)&&!p&&(p=this._additiveValue=[]),this.useSpline){var m=a[r][n],g=a[0===r?r:r-1][n],_=a[r>o-2?o-1:r+1][n],v=a[r>o-3?o-1:r+2][n];if(l>0)1===l?Ra(p,g,m,_,v,f,f*f,f*f*f):function(e,t,r,i,n,a,o,s){for(var l=t.length,h=t[0].length,u=0;u0?1===l?Da(p,c[n],u[n],f):function(e,t,r,i){for(var n=t.length,a=n&&t[0].length,o=0;o.5?t:e}(c[n],u[n],f),i?this._additiveValue=y:e[s]=y);i&&this._addToTarget(e)}}}},e.prototype._addToTarget=function(e){var t=this.arrDim,r=this.propName,i=this._additiveValue;0===t?this.isValueColor?(oa(e[r],za),La(za,za,i,1),e[r]=Fa(za)):e[r]=e[r]+i:1===t?La(e[r],e[r],i,1):2===t&&Pa(e[r],e[r],i,1)},e}();const Ua=function(){function e(e,t,r){this._tracks={},this._trackKeys=[],this._delay=0,this._maxTime=0,this._paused=!1,this._started=0,this._clip=null,this._target=e,this._loop=t,t&&r?function(){for(var e=[],t=0;t0)){this._started=1;for(var r=this,i=[],n=0;n1){var o=a.pop();n.addKeyframe(o.time,e[i]),n.prepare(n.getAdditiveTrack())}}}},e}(),ka={_animators:null,getAnimators:function(){return this._animators=this._animators||[],this._animators},animate:function(e,t){var r;if(this._animators=this._animators||[],e){for(var i=e.split("."),n=this,a=0,o=i.length;a=0&&s.splice(e,1)})),s.push(l),this.__zr&&this.__zr.animation.addAnimator(l),l},stopAnimation:function(e){this._animators=this._animators||[];for(var t=this._animators,r=t.length,i=0;i 1e-4)\n{\n skinMatrixWS += getSkinMatrix(joint.y) * weight.y;\n}\nif (weight.z > 1e-4)\n{\n skinMatrixWS += getSkinMatrix(joint.z) * weight.z;\n}\nfloat weightW = 1.0-weight.x-weight.y-weight.z;\nif (weightW > 1e-4)\n{\n skinMatrixWS += getSkinMatrix(joint.w) * weightW;\n}\n@end\n@export clay.chunk.instancing_header\n#ifdef INSTANCING\nattribute vec4 instanceMat1;\nattribute vec4 instanceMat2;\nattribute vec4 instanceMat3;\n#endif\n@end\n@export clay.chunk.instancing_matrix\nmat4 instanceMat = mat4(\n vec4(instanceMat1.xyz, 0.0),\n vec4(instanceMat2.xyz, 0.0),\n vec4(instanceMat3.xyz, 0.0),\n vec4(instanceMat1.w, instanceMat2.w, instanceMat3.w, 1.0)\n);\n@end\n@export clay.util.parallax_correct\nvec3 parallaxCorrect(in vec3 dir, in vec3 pos, in vec3 boxMin, in vec3 boxMax) {\n vec3 first = (boxMax - pos) / dir;\n vec3 second = (boxMin - pos) / dir;\n vec3 further = max(first, second);\n float dist = min(further.x, min(further.y, further.z));\n vec3 fixedPos = pos + dir * dist;\n vec3 boxCenter = (boxMax + boxMin) * 0.5;\n return normalize(fixedPos - boxCenter);\n}\n@end\n@export clay.util.clamp_sample\nvec4 clampSample(const in sampler2D texture, const in vec2 coord)\n{\n#ifdef STEREO\n float eye = step(0.5, coord.x) * 0.5;\n vec2 coordClamped = clamp(coord, vec2(eye, 0.0), vec2(0.5 + eye, 1.0));\n#else\n vec2 coordClamped = clamp(coord, vec2(0.0), vec2(1.0));\n#endif\n return texture2D(texture, coordClamped);\n}\n@end\n@export clay.util.ACES\nvec3 ACESToneMapping(vec3 color)\n{\n const float A = 2.51;\n const float B = 0.03;\n const float C = 2.43;\n const float D = 0.59;\n const float E = 0.14;\n return (color * (A * color + B)) / (color * (C * color + D) + E);\n}\n@end";function Ha(e){return e instanceof HTMLCanvasElement||e instanceof HTMLImageElement||e instanceof Image}Object.assign(sr.prototype,ka),Xe.import(Va),Xe.import(qe),Xe.import("\n@export ecgl.common.transformUniforms\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\nuniform mat4 worldInverseTranspose : WORLDINVERSETRANSPOSE;\nuniform mat4 world : WORLD;\n@end\n\n@export ecgl.common.attributes\nattribute vec3 position : POSITION;\nattribute vec2 texcoord : TEXCOORD_0;\nattribute vec3 normal : NORMAL;\n@end\n\n@export ecgl.common.uv.header\nuniform vec2 uvRepeat : [1.0, 1.0];\nuniform vec2 uvOffset : [0.0, 0.0];\nuniform vec2 detailUvRepeat : [1.0, 1.0];\nuniform vec2 detailUvOffset : [0.0, 0.0];\n\nvarying vec2 v_Texcoord;\nvarying vec2 v_DetailTexcoord;\n@end\n\n@export ecgl.common.uv.main\nv_Texcoord = texcoord * uvRepeat + uvOffset;\nv_DetailTexcoord = texcoord * detailUvRepeat + detailUvOffset;\n@end\n\n@export ecgl.common.uv.fragmentHeader\nvarying vec2 v_Texcoord;\nvarying vec2 v_DetailTexcoord;\n@end\n\n\n@export ecgl.common.albedo.main\n\n vec4 albedoTexel = vec4(1.0);\n#ifdef DIFFUSEMAP_ENABLED\n albedoTexel = texture2D(diffuseMap, v_Texcoord);\n #ifdef SRGB_DECODE\n albedoTexel = sRGBToLinear(albedoTexel);\n #endif\n#endif\n\n#ifdef DETAILMAP_ENABLED\n vec4 detailTexel = texture2D(detailMap, v_DetailTexcoord);\n #ifdef SRGB_DECODE\n detailTexel = sRGBToLinear(detailTexel);\n #endif\n albedoTexel.rgb = mix(albedoTexel.rgb, detailTexel.rgb, detailTexel.a);\n albedoTexel.a = detailTexel.a + (1.0 - detailTexel.a) * albedoTexel.a;\n#endif\n\n@end\n\n@export ecgl.common.wireframe.vertexHeader\n\n#ifdef WIREFRAME_QUAD\nattribute vec4 barycentric;\nvarying vec4 v_Barycentric;\n#elif defined(WIREFRAME_TRIANGLE)\nattribute vec3 barycentric;\nvarying vec3 v_Barycentric;\n#endif\n\n@end\n\n@export ecgl.common.wireframe.vertexMain\n\n#if defined(WIREFRAME_QUAD) || defined(WIREFRAME_TRIANGLE)\n v_Barycentric = barycentric;\n#endif\n\n@end\n\n\n@export ecgl.common.wireframe.fragmentHeader\n\nuniform float wireframeLineWidth : 1;\nuniform vec4 wireframeLineColor: [0, 0, 0, 0.5];\n\n#ifdef WIREFRAME_QUAD\nvarying vec4 v_Barycentric;\nfloat edgeFactor () {\n vec4 d = fwidth(v_Barycentric);\n vec4 a4 = smoothstep(vec4(0.0), d * wireframeLineWidth, v_Barycentric);\n return min(min(min(a4.x, a4.y), a4.z), a4.w);\n}\n#elif defined(WIREFRAME_TRIANGLE)\nvarying vec3 v_Barycentric;\nfloat edgeFactor () {\n vec3 d = fwidth(v_Barycentric);\n vec3 a3 = smoothstep(vec3(0.0), d * wireframeLineWidth, v_Barycentric);\n return min(min(a3.x, a3.y), a3.z);\n}\n#endif\n\n@end\n\n\n@export ecgl.common.wireframe.fragmentMain\n\n#if defined(WIREFRAME_QUAD) || defined(WIREFRAME_TRIANGLE)\n if (wireframeLineWidth > 0.) {\n vec4 lineColor = wireframeLineColor;\n#ifdef SRGB_DECODE\n lineColor = sRGBToLinear(lineColor);\n#endif\n\n gl_FragColor.rgb = mix(gl_FragColor.rgb, lineColor.rgb, (1.0 - edgeFactor()) * lineColor.a);\n }\n#endif\n@end\n\n\n\n\n@export ecgl.common.bumpMap.header\n\n#ifdef BUMPMAP_ENABLED\nuniform sampler2D bumpMap;\nuniform float bumpScale : 1.0;\n\n\nvec3 bumpNormal(vec3 surfPos, vec3 surfNormal, vec3 baseNormal)\n{\n vec2 dSTdx = dFdx(v_Texcoord);\n vec2 dSTdy = dFdy(v_Texcoord);\n\n float Hll = bumpScale * texture2D(bumpMap, v_Texcoord).x;\n float dHx = bumpScale * texture2D(bumpMap, v_Texcoord + dSTdx).x - Hll;\n float dHy = bumpScale * texture2D(bumpMap, v_Texcoord + dSTdy).x - Hll;\n\n vec3 vSigmaX = dFdx(surfPos);\n vec3 vSigmaY = dFdy(surfPos);\n vec3 vN = surfNormal;\n\n vec3 R1 = cross(vSigmaY, vN);\n vec3 R2 = cross(vN, vSigmaX);\n\n float fDet = dot(vSigmaX, R1);\n\n vec3 vGrad = sign(fDet) * (dHx * R1 + dHy * R2);\n return normalize(abs(fDet) * baseNormal - vGrad);\n\n}\n#endif\n\n@end\n\n@export ecgl.common.normalMap.vertexHeader\n\n#ifdef NORMALMAP_ENABLED\nattribute vec4 tangent : TANGENT;\nvarying vec3 v_Tangent;\nvarying vec3 v_Bitangent;\n#endif\n\n@end\n\n@export ecgl.common.normalMap.vertexMain\n\n#ifdef NORMALMAP_ENABLED\n if (dot(tangent, tangent) > 0.0) {\n v_Tangent = normalize((worldInverseTranspose * vec4(tangent.xyz, 0.0)).xyz);\n v_Bitangent = normalize(cross(v_Normal, v_Tangent) * tangent.w);\n }\n#endif\n\n@end\n\n\n@export ecgl.common.normalMap.fragmentHeader\n\n#ifdef NORMALMAP_ENABLED\nuniform sampler2D normalMap;\nvarying vec3 v_Tangent;\nvarying vec3 v_Bitangent;\n#endif\n\n@end\n\n@export ecgl.common.normalMap.fragmentMain\n#ifdef NORMALMAP_ENABLED\n if (dot(v_Tangent, v_Tangent) > 0.0) {\n vec3 normalTexel = texture2D(normalMap, v_DetailTexcoord).xyz;\n if (dot(normalTexel, normalTexel) > 0.0) { N = normalTexel * 2.0 - 1.0;\n mat3 tbn = mat3(v_Tangent, v_Bitangent, v_Normal);\n N = normalize(tbn * N);\n }\n }\n#endif\n@end\n\n\n\n@export ecgl.common.vertexAnimation.header\n\n#ifdef VERTEX_ANIMATION\nattribute vec3 prevPosition;\nattribute vec3 prevNormal;\nuniform float percent;\n#endif\n\n@end\n\n@export ecgl.common.vertexAnimation.main\n\n#ifdef VERTEX_ANIMATION\n vec3 pos = mix(prevPosition, position, percent);\n vec3 norm = mix(prevNormal, normal, percent);\n#else\n vec3 pos = position;\n vec3 norm = normal;\n#endif\n\n@end\n\n\n@export ecgl.common.ssaoMap.header\n#ifdef SSAOMAP_ENABLED\nuniform sampler2D ssaoMap;\nuniform vec4 viewport : VIEWPORT;\n#endif\n@end\n\n@export ecgl.common.ssaoMap.main\n float ao = 1.0;\n#ifdef SSAOMAP_ENABLED\n ao = texture2D(ssaoMap, (gl_FragCoord.xy - viewport.xy) / viewport.zw).r;\n#endif\n@end\n\n\n\n\n@export ecgl.common.diffuseLayer.header\n\n#if (LAYER_DIFFUSEMAP_COUNT > 0)\nuniform float layerDiffuseIntensity[LAYER_DIFFUSEMAP_COUNT];\nuniform sampler2D layerDiffuseMap[LAYER_DIFFUSEMAP_COUNT];\n#endif\n\n@end\n\n@export ecgl.common.emissiveLayer.header\n\n#if (LAYER_EMISSIVEMAP_COUNT > 0)\nuniform float layerEmissionIntensity[LAYER_EMISSIVEMAP_COUNT];\nuniform sampler2D layerEmissiveMap[LAYER_EMISSIVEMAP_COUNT];\n#endif\n\n@end\n\n@export ecgl.common.layers.header\n@import ecgl.common.diffuseLayer.header\n@import ecgl.common.emissiveLayer.header\n@end\n\n@export ecgl.common.diffuseLayer.main\n\n#if (LAYER_DIFFUSEMAP_COUNT > 0)\n for (int _idx_ = 0; _idx_ < LAYER_DIFFUSEMAP_COUNT; _idx_++) {{\n float intensity = layerDiffuseIntensity[_idx_];\n vec4 texel2 = texture2D(layerDiffuseMap[_idx_], v_Texcoord);\n #ifdef SRGB_DECODE\n texel2 = sRGBToLinear(texel2);\n #endif\n albedoTexel.rgb = mix(albedoTexel.rgb, texel2.rgb * intensity, texel2.a);\n albedoTexel.a = texel2.a + (1.0 - texel2.a) * albedoTexel.a;\n }}\n#endif\n\n@end\n\n@export ecgl.common.emissiveLayer.main\n\n#if (LAYER_EMISSIVEMAP_COUNT > 0)\n for (int _idx_ = 0; _idx_ < LAYER_EMISSIVEMAP_COUNT; _idx_++)\n {{\n vec4 texel2 = texture2D(layerEmissiveMap[_idx_], v_Texcoord) * layerEmissionIntensity[_idx_];\n #ifdef SRGB_DECODE\n texel2 = sRGBToLinear(texel2);\n #endif\n float intensity = layerEmissionIntensity[_idx_];\n gl_FragColor.rgb += texel2.rgb * texel2.a * intensity;\n }}\n#endif\n\n@end\n"),Xe.import("@export ecgl.color.vertex\n\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\n\n@import ecgl.common.uv.header\n\nattribute vec2 texcoord : TEXCOORD_0;\nattribute vec3 position: POSITION;\n\n@import ecgl.common.wireframe.vertexHeader\n\n#ifdef VERTEX_COLOR\nattribute vec4 a_Color : COLOR;\nvarying vec4 v_Color;\n#endif\n\n#ifdef VERTEX_ANIMATION\nattribute vec3 prevPosition;\nuniform float percent : 1.0;\n#endif\n\n#ifdef ATMOSPHERE_ENABLED\nattribute vec3 normal: NORMAL;\nuniform mat4 worldInverseTranspose : WORLDINVERSETRANSPOSE;\nvarying vec3 v_Normal;\n#endif\n\nvoid main()\n{\n#ifdef VERTEX_ANIMATION\n vec3 pos = mix(prevPosition, position, percent);\n#else\n vec3 pos = position;\n#endif\n\n gl_Position = worldViewProjection * vec4(pos, 1.0);\n\n @import ecgl.common.uv.main\n\n#ifdef VERTEX_COLOR\n v_Color = a_Color;\n#endif\n\n#ifdef ATMOSPHERE_ENABLED\n v_Normal = normalize((worldInverseTranspose * vec4(normal, 0.0)).xyz);\n#endif\n\n @import ecgl.common.wireframe.vertexMain\n\n}\n\n@end\n\n@export ecgl.color.fragment\n\n#define LAYER_DIFFUSEMAP_COUNT 0\n#define LAYER_EMISSIVEMAP_COUNT 0\n\nuniform sampler2D diffuseMap;\nuniform sampler2D detailMap;\n\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\n\n#ifdef ATMOSPHERE_ENABLED\nuniform mat4 viewTranspose: VIEWTRANSPOSE;\nuniform vec3 glowColor;\nuniform float glowPower;\nvarying vec3 v_Normal;\n#endif\n\n#ifdef VERTEX_COLOR\nvarying vec4 v_Color;\n#endif\n\n@import ecgl.common.layers.header\n\n@import ecgl.common.uv.fragmentHeader\n\n@import ecgl.common.wireframe.fragmentHeader\n\n@import clay.util.srgb\n\nvoid main()\n{\n#ifdef SRGB_DECODE\n gl_FragColor = sRGBToLinear(color);\n#else\n gl_FragColor = color;\n#endif\n\n#ifdef VERTEX_COLOR\n gl_FragColor *= v_Color;\n#endif\n\n @import ecgl.common.albedo.main\n\n @import ecgl.common.diffuseLayer.main\n\n gl_FragColor *= albedoTexel;\n\n#ifdef ATMOSPHERE_ENABLED\n float atmoIntensity = pow(1.0 - dot(v_Normal, (viewTranspose * vec4(0.0, 0.0, 1.0, 0.0)).xyz), glowPower);\n gl_FragColor.rgb += glowColor * atmoIntensity;\n#endif\n\n @import ecgl.common.emissiveLayer.main\n\n @import ecgl.common.wireframe.fragmentMain\n\n}\n@end"),Xe.import("/**\n * http: */\n\n@export ecgl.lambert.vertex\n\n@import ecgl.common.transformUniforms\n\n@import ecgl.common.uv.header\n\n\n@import ecgl.common.attributes\n\n@import ecgl.common.wireframe.vertexHeader\n\n#ifdef VERTEX_COLOR\nattribute vec4 a_Color : COLOR;\nvarying vec4 v_Color;\n#endif\n\n\n@import ecgl.common.vertexAnimation.header\n\n\nvarying vec3 v_Normal;\nvarying vec3 v_WorldPosition;\n\nvoid main()\n{\n @import ecgl.common.uv.main\n\n @import ecgl.common.vertexAnimation.main\n\n\n gl_Position = worldViewProjection * vec4(pos, 1.0);\n\n v_Normal = normalize((worldInverseTranspose * vec4(norm, 0.0)).xyz);\n v_WorldPosition = (world * vec4(pos, 1.0)).xyz;\n\n#ifdef VERTEX_COLOR\n v_Color = a_Color;\n#endif\n\n @import ecgl.common.wireframe.vertexMain\n}\n\n@end\n\n\n@export ecgl.lambert.fragment\n\n#define LAYER_DIFFUSEMAP_COUNT 0\n#define LAYER_EMISSIVEMAP_COUNT 0\n\n#define NORMAL_UP_AXIS 1\n#define NORMAL_FRONT_AXIS 2\n\n@import ecgl.common.uv.fragmentHeader\n\nvarying vec3 v_Normal;\nvarying vec3 v_WorldPosition;\n\nuniform sampler2D diffuseMap;\nuniform sampler2D detailMap;\n\n@import ecgl.common.layers.header\n\nuniform float emissionIntensity: 1.0;\n\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\n\nuniform mat4 viewInverse : VIEWINVERSE;\n\n#ifdef ATMOSPHERE_ENABLED\nuniform mat4 viewTranspose: VIEWTRANSPOSE;\nuniform vec3 glowColor;\nuniform float glowPower;\n#endif\n\n#ifdef AMBIENT_LIGHT_COUNT\n@import clay.header.ambient_light\n#endif\n#ifdef AMBIENT_SH_LIGHT_COUNT\n@import clay.header.ambient_sh_light\n#endif\n\n#ifdef DIRECTIONAL_LIGHT_COUNT\n@import clay.header.directional_light\n#endif\n\n#ifdef VERTEX_COLOR\nvarying vec4 v_Color;\n#endif\n\n\n@import ecgl.common.ssaoMap.header\n\n@import ecgl.common.bumpMap.header\n\n@import clay.util.srgb\n\n@import ecgl.common.wireframe.fragmentHeader\n\n@import clay.plugin.compute_shadow_map\n\nvoid main()\n{\n#ifdef SRGB_DECODE\n gl_FragColor = sRGBToLinear(color);\n#else\n gl_FragColor = color;\n#endif\n\n#ifdef VERTEX_COLOR\n #ifdef SRGB_DECODE\n gl_FragColor *= sRGBToLinear(v_Color);\n #else\n gl_FragColor *= v_Color;\n #endif\n#endif\n\n @import ecgl.common.albedo.main\n\n @import ecgl.common.diffuseLayer.main\n\n gl_FragColor *= albedoTexel;\n\n vec3 N = v_Normal;\n#ifdef DOUBLE_SIDED\n vec3 eyePos = viewInverse[3].xyz;\n vec3 V = normalize(eyePos - v_WorldPosition);\n\n if (dot(N, V) < 0.0) {\n N = -N;\n }\n#endif\n\n float ambientFactor = 1.0;\n\n#ifdef BUMPMAP_ENABLED\n N = bumpNormal(v_WorldPosition, v_Normal, N);\n ambientFactor = dot(v_Normal, N);\n#endif\n\n vec3 N2 = vec3(N.x, N[NORMAL_UP_AXIS], N[NORMAL_FRONT_AXIS]);\n\n vec3 diffuseColor = vec3(0.0, 0.0, 0.0);\n\n @import ecgl.common.ssaoMap.main\n\n#ifdef AMBIENT_LIGHT_COUNT\n for(int i = 0; i < AMBIENT_LIGHT_COUNT; i++)\n {\n diffuseColor += ambientLightColor[i] * ambientFactor * ao;\n }\n#endif\n#ifdef AMBIENT_SH_LIGHT_COUNT\n for(int _idx_ = 0; _idx_ < AMBIENT_SH_LIGHT_COUNT; _idx_++)\n {{\n diffuseColor += calcAmbientSHLight(_idx_, N2) * ambientSHLightColor[_idx_] * ao;\n }}\n#endif\n#ifdef DIRECTIONAL_LIGHT_COUNT\n#if defined(DIRECTIONAL_LIGHT_SHADOWMAP_COUNT)\n float shadowContribsDir[DIRECTIONAL_LIGHT_COUNT];\n if(shadowEnabled)\n {\n computeShadowOfDirectionalLights(v_WorldPosition, shadowContribsDir);\n }\n#endif\n for(int i = 0; i < DIRECTIONAL_LIGHT_COUNT; i++)\n {\n vec3 lightDirection = -directionalLightDirection[i];\n vec3 lightColor = directionalLightColor[i];\n\n float shadowContrib = 1.0;\n#if defined(DIRECTIONAL_LIGHT_SHADOWMAP_COUNT)\n if (shadowEnabled)\n {\n shadowContrib = shadowContribsDir[i];\n }\n#endif\n\n float ndl = dot(N, normalize(lightDirection)) * shadowContrib;\n\n diffuseColor += lightColor * clamp(ndl, 0.0, 1.0);\n }\n#endif\n\n gl_FragColor.rgb *= diffuseColor;\n\n#ifdef ATMOSPHERE_ENABLED\n float atmoIntensity = pow(1.0 - dot(v_Normal, (viewTranspose * vec4(0.0, 0.0, 1.0, 0.0)).xyz), glowPower);\n gl_FragColor.rgb += glowColor * atmoIntensity;\n#endif\n\n @import ecgl.common.emissiveLayer.main\n\n @import ecgl.common.wireframe.fragmentMain\n}\n\n@end"),Xe.import("@export ecgl.realistic.vertex\n\n@import ecgl.common.transformUniforms\n\n@import ecgl.common.uv.header\n\n@import ecgl.common.attributes\n\n\n@import ecgl.common.wireframe.vertexHeader\n\n#ifdef VERTEX_COLOR\nattribute vec4 a_Color : COLOR;\nvarying vec4 v_Color;\n#endif\n\n#ifdef NORMALMAP_ENABLED\nattribute vec4 tangent : TANGENT;\nvarying vec3 v_Tangent;\nvarying vec3 v_Bitangent;\n#endif\n\n@import ecgl.common.vertexAnimation.header\n\nvarying vec3 v_Normal;\nvarying vec3 v_WorldPosition;\n\nvoid main()\n{\n\n @import ecgl.common.uv.main\n\n @import ecgl.common.vertexAnimation.main\n\n gl_Position = worldViewProjection * vec4(pos, 1.0);\n\n v_Normal = normalize((worldInverseTranspose * vec4(norm, 0.0)).xyz);\n v_WorldPosition = (world * vec4(pos, 1.0)).xyz;\n\n#ifdef VERTEX_COLOR\n v_Color = a_Color;\n#endif\n\n#ifdef NORMALMAP_ENABLED\n v_Tangent = normalize((worldInverseTranspose * vec4(tangent.xyz, 0.0)).xyz);\n v_Bitangent = normalize(cross(v_Normal, v_Tangent) * tangent.w);\n#endif\n\n @import ecgl.common.wireframe.vertexMain\n\n}\n\n@end\n\n\n\n@export ecgl.realistic.fragment\n\n#define LAYER_DIFFUSEMAP_COUNT 0\n#define LAYER_EMISSIVEMAP_COUNT 0\n#define PI 3.14159265358979\n#define ROUGHNESS_CHANEL 0\n#define METALNESS_CHANEL 1\n\n#define NORMAL_UP_AXIS 1\n#define NORMAL_FRONT_AXIS 2\n\n#ifdef VERTEX_COLOR\nvarying vec4 v_Color;\n#endif\n\n@import ecgl.common.uv.fragmentHeader\n\nvarying vec3 v_Normal;\nvarying vec3 v_WorldPosition;\n\nuniform sampler2D diffuseMap;\n\nuniform sampler2D detailMap;\nuniform sampler2D metalnessMap;\nuniform sampler2D roughnessMap;\n\n@import ecgl.common.layers.header\n\nuniform float emissionIntensity: 1.0;\n\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\n\nuniform float metalness : 0.0;\nuniform float roughness : 0.5;\n\nuniform mat4 viewInverse : VIEWINVERSE;\n\n#ifdef ATMOSPHERE_ENABLED\nuniform mat4 viewTranspose: VIEWTRANSPOSE;\nuniform vec3 glowColor;\nuniform float glowPower;\n#endif\n\n#ifdef AMBIENT_LIGHT_COUNT\n@import clay.header.ambient_light\n#endif\n\n#ifdef AMBIENT_SH_LIGHT_COUNT\n@import clay.header.ambient_sh_light\n#endif\n\n#ifdef AMBIENT_CUBEMAP_LIGHT_COUNT\n@import clay.header.ambient_cubemap_light\n#endif\n\n#ifdef DIRECTIONAL_LIGHT_COUNT\n@import clay.header.directional_light\n#endif\n\n@import ecgl.common.normalMap.fragmentHeader\n\n@import ecgl.common.ssaoMap.header\n\n@import ecgl.common.bumpMap.header\n\n@import clay.util.srgb\n\n@import clay.util.rgbm\n\n@import ecgl.common.wireframe.fragmentHeader\n\n@import clay.plugin.compute_shadow_map\n\nvec3 F_Schlick(float ndv, vec3 spec) {\n return spec + (1.0 - spec) * pow(1.0 - ndv, 5.0);\n}\n\nfloat D_Phong(float g, float ndh) {\n float a = pow(8192.0, g);\n return (a + 2.0) / 8.0 * pow(ndh, a);\n}\n\nvoid main()\n{\n vec4 albedoColor = color;\n\n vec3 eyePos = viewInverse[3].xyz;\n vec3 V = normalize(eyePos - v_WorldPosition);\n#ifdef VERTEX_COLOR\n #ifdef SRGB_DECODE\n albedoColor *= sRGBToLinear(v_Color);\n #else\n albedoColor *= v_Color;\n #endif\n#endif\n\n @import ecgl.common.albedo.main\n\n @import ecgl.common.diffuseLayer.main\n\n albedoColor *= albedoTexel;\n\n float m = metalness;\n\n#ifdef METALNESSMAP_ENABLED\n float m2 = texture2D(metalnessMap, v_DetailTexcoord)[METALNESS_CHANEL];\n m = clamp(m2 + (m - 0.5) * 2.0, 0.0, 1.0);\n#endif\n\n vec3 baseColor = albedoColor.rgb;\n albedoColor.rgb = baseColor * (1.0 - m);\n vec3 specFactor = mix(vec3(0.04), baseColor, m);\n\n float g = 1.0 - roughness;\n\n#ifdef ROUGHNESSMAP_ENABLED\n float g2 = 1.0 - texture2D(roughnessMap, v_DetailTexcoord)[ROUGHNESS_CHANEL];\n g = clamp(g2 + (g - 0.5) * 2.0, 0.0, 1.0);\n#endif\n\n vec3 N = v_Normal;\n\n#ifdef DOUBLE_SIDED\n if (dot(N, V) < 0.0) {\n N = -N;\n }\n#endif\n\n float ambientFactor = 1.0;\n\n#ifdef BUMPMAP_ENABLED\n N = bumpNormal(v_WorldPosition, v_Normal, N);\n ambientFactor = dot(v_Normal, N);\n#endif\n\n@import ecgl.common.normalMap.fragmentMain\n\n vec3 N2 = vec3(N.x, N[NORMAL_UP_AXIS], N[NORMAL_FRONT_AXIS]);\n\n vec3 diffuseTerm = vec3(0.0);\n vec3 specularTerm = vec3(0.0);\n\n float ndv = clamp(dot(N, V), 0.0, 1.0);\n vec3 fresnelTerm = F_Schlick(ndv, specFactor);\n\n @import ecgl.common.ssaoMap.main\n\n#ifdef AMBIENT_LIGHT_COUNT\n for(int _idx_ = 0; _idx_ < AMBIENT_LIGHT_COUNT; _idx_++)\n {{\n diffuseTerm += ambientLightColor[_idx_] * ambientFactor * ao;\n }}\n#endif\n\n#ifdef AMBIENT_SH_LIGHT_COUNT\n for(int _idx_ = 0; _idx_ < AMBIENT_SH_LIGHT_COUNT; _idx_++)\n {{\n diffuseTerm += calcAmbientSHLight(_idx_, N2) * ambientSHLightColor[_idx_] * ao;\n }}\n#endif\n\n#ifdef DIRECTIONAL_LIGHT_COUNT\n#if defined(DIRECTIONAL_LIGHT_SHADOWMAP_COUNT)\n float shadowContribsDir[DIRECTIONAL_LIGHT_COUNT];\n if(shadowEnabled)\n {\n computeShadowOfDirectionalLights(v_WorldPosition, shadowContribsDir);\n }\n#endif\n for(int _idx_ = 0; _idx_ < DIRECTIONAL_LIGHT_COUNT; _idx_++)\n {{\n vec3 L = -directionalLightDirection[_idx_];\n vec3 lc = directionalLightColor[_idx_];\n\n vec3 H = normalize(L + V);\n float ndl = clamp(dot(N, normalize(L)), 0.0, 1.0);\n float ndh = clamp(dot(N, H), 0.0, 1.0);\n\n float shadowContrib = 1.0;\n#if defined(DIRECTIONAL_LIGHT_SHADOWMAP_COUNT)\n if (shadowEnabled)\n {\n shadowContrib = shadowContribsDir[_idx_];\n }\n#endif\n\n vec3 li = lc * ndl * shadowContrib;\n\n diffuseTerm += li;\n specularTerm += li * fresnelTerm * D_Phong(g, ndh);\n }}\n#endif\n\n\n#ifdef AMBIENT_CUBEMAP_LIGHT_COUNT\n vec3 L = reflect(-V, N);\n L = vec3(L.x, L[NORMAL_UP_AXIS], L[NORMAL_FRONT_AXIS]);\n float rough2 = clamp(1.0 - g, 0.0, 1.0);\n float bias2 = rough2 * 5.0;\n vec2 brdfParam2 = texture2D(ambientCubemapLightBRDFLookup[0], vec2(rough2, ndv)).xy;\n vec3 envWeight2 = specFactor * brdfParam2.x + brdfParam2.y;\n vec3 envTexel2;\n for(int _idx_ = 0; _idx_ < AMBIENT_CUBEMAP_LIGHT_COUNT; _idx_++)\n {{\n envTexel2 = RGBMDecode(textureCubeLodEXT(ambientCubemapLightCubemap[_idx_], L, bias2), 8.12);\n specularTerm += ambientCubemapLightColor[_idx_] * envTexel2 * envWeight2 * ao;\n }}\n#endif\n\n gl_FragColor.rgb = albedoColor.rgb * diffuseTerm + specularTerm;\n gl_FragColor.a = albedoColor.a;\n\n#ifdef ATMOSPHERE_ENABLED\n float atmoIntensity = pow(1.0 - dot(v_Normal, (viewTranspose * vec4(0.0, 0.0, 1.0, 0.0)).xyz), glowPower);\n gl_FragColor.rgb += glowColor * atmoIntensity;\n#endif\n\n#ifdef SRGB_ENCODE\n gl_FragColor = linearTosRGB(gl_FragColor);\n#endif\n\n @import ecgl.common.emissiveLayer.main\n\n @import ecgl.common.wireframe.fragmentMain\n}\n\n@end"),Xe.import("@export ecgl.hatching.vertex\n\n@import ecgl.realistic.vertex\n\n@end\n\n\n@export ecgl.hatching.fragment\n\n#define NORMAL_UP_AXIS 1\n#define NORMAL_FRONT_AXIS 2\n\n@import ecgl.common.uv.fragmentHeader\n\nvarying vec3 v_Normal;\nvarying vec3 v_WorldPosition;\n\nuniform vec4 color : [0.0, 0.0, 0.0, 1.0];\nuniform vec4 paperColor : [1.0, 1.0, 1.0, 1.0];\n\nuniform mat4 viewInverse : VIEWINVERSE;\n\n#ifdef AMBIENT_LIGHT_COUNT\n@import clay.header.ambient_light\n#endif\n#ifdef AMBIENT_SH_LIGHT_COUNT\n@import clay.header.ambient_sh_light\n#endif\n\n#ifdef DIRECTIONAL_LIGHT_COUNT\n@import clay.header.directional_light\n#endif\n\n#ifdef VERTEX_COLOR\nvarying vec4 v_Color;\n#endif\n\n\n@import ecgl.common.ssaoMap.header\n\n@import ecgl.common.bumpMap.header\n\n@import clay.util.srgb\n\n@import ecgl.common.wireframe.fragmentHeader\n\n@import clay.plugin.compute_shadow_map\n\nuniform sampler2D hatch1;\nuniform sampler2D hatch2;\nuniform sampler2D hatch3;\nuniform sampler2D hatch4;\nuniform sampler2D hatch5;\nuniform sampler2D hatch6;\n\nfloat shade(in float tone) {\n vec4 c = vec4(1. ,1., 1., 1.);\n float step = 1. / 6.;\n vec2 uv = v_DetailTexcoord;\n if (tone <= step / 2.0) {\n c = mix(vec4(0.), texture2D(hatch6, uv), 12. * tone);\n }\n else if (tone <= step) {\n c = mix(texture2D(hatch6, uv), texture2D(hatch5, uv), 6. * tone);\n }\n if(tone > step && tone <= 2. * step){\n c = mix(texture2D(hatch5, uv), texture2D(hatch4, uv) , 6. * (tone - step));\n }\n if(tone > 2. * step && tone <= 3. * step){\n c = mix(texture2D(hatch4, uv), texture2D(hatch3, uv), 6. * (tone - 2. * step));\n }\n if(tone > 3. * step && tone <= 4. * step){\n c = mix(texture2D(hatch3, uv), texture2D(hatch2, uv), 6. * (tone - 3. * step));\n }\n if(tone > 4. * step && tone <= 5. * step){\n c = mix(texture2D(hatch2, uv), texture2D(hatch1, uv), 6. * (tone - 4. * step));\n }\n if(tone > 5. * step){\n c = mix(texture2D(hatch1, uv), vec4(1.), 6. * (tone - 5. * step));\n }\n\n return c.r;\n}\n\nconst vec3 w = vec3(0.2125, 0.7154, 0.0721);\n\nvoid main()\n{\n#ifdef SRGB_DECODE\n vec4 inkColor = sRGBToLinear(color);\n#else\n vec4 inkColor = color;\n#endif\n\n#ifdef VERTEX_COLOR\n #ifdef SRGB_DECODE\n inkColor *= sRGBToLinear(v_Color);\n #else\n inkColor *= v_Color;\n #endif\n#endif\n\n vec3 N = v_Normal;\n#ifdef DOUBLE_SIDED\n vec3 eyePos = viewInverse[3].xyz;\n vec3 V = normalize(eyePos - v_WorldPosition);\n\n if (dot(N, V) < 0.0) {\n N = -N;\n }\n#endif\n\n float tone = 0.0;\n\n float ambientFactor = 1.0;\n\n#ifdef BUMPMAP_ENABLED\n N = bumpNormal(v_WorldPosition, v_Normal, N);\n ambientFactor = dot(v_Normal, N);\n#endif\n\n vec3 N2 = vec3(N.x, N[NORMAL_UP_AXIS], N[NORMAL_FRONT_AXIS]);\n\n @import ecgl.common.ssaoMap.main\n\n#ifdef AMBIENT_LIGHT_COUNT\n for(int i = 0; i < AMBIENT_LIGHT_COUNT; i++)\n {\n tone += dot(ambientLightColor[i], w) * ambientFactor * ao;\n }\n#endif\n#ifdef AMBIENT_SH_LIGHT_COUNT\n for(int _idx_ = 0; _idx_ < AMBIENT_SH_LIGHT_COUNT; _idx_++)\n {{\n tone += dot(calcAmbientSHLight(_idx_, N2) * ambientSHLightColor[_idx_], w) * ao;\n }}\n#endif\n#ifdef DIRECTIONAL_LIGHT_COUNT\n#if defined(DIRECTIONAL_LIGHT_SHADOWMAP_COUNT)\n float shadowContribsDir[DIRECTIONAL_LIGHT_COUNT];\n if(shadowEnabled)\n {\n computeShadowOfDirectionalLights(v_WorldPosition, shadowContribsDir);\n }\n#endif\n for(int i = 0; i < DIRECTIONAL_LIGHT_COUNT; i++)\n {\n vec3 lightDirection = -directionalLightDirection[i];\n float lightTone = dot(directionalLightColor[i], w);\n\n float shadowContrib = 1.0;\n#if defined(DIRECTIONAL_LIGHT_SHADOWMAP_COUNT)\n if (shadowEnabled)\n {\n shadowContrib = shadowContribsDir[i];\n }\n#endif\n\n float ndl = dot(N, normalize(lightDirection)) * shadowContrib;\n\n tone += lightTone * clamp(ndl, 0.0, 1.0);\n }\n#endif\n\n gl_FragColor = mix(inkColor, paperColor, shade(clamp(tone, 0.0, 1.0)));\n }\n@end\n"),Xe.import("@export ecgl.sm.depth.vertex\n\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\n\nattribute vec3 position : POSITION;\nattribute vec2 texcoord : TEXCOORD_0;\n\n#ifdef VERTEX_ANIMATION\nattribute vec3 prevPosition;\nuniform float percent : 1.0;\n#endif\n\nvarying vec4 v_ViewPosition;\nvarying vec2 v_Texcoord;\n\nvoid main(){\n\n#ifdef VERTEX_ANIMATION\n vec3 pos = mix(prevPosition, position, percent);\n#else\n vec3 pos = position;\n#endif\n\n v_ViewPosition = worldViewProjection * vec4(pos, 1.0);\n gl_Position = v_ViewPosition;\n\n v_Texcoord = texcoord;\n\n}\n@end\n\n\n\n@export ecgl.sm.depth.fragment\n\n@import clay.sm.depth.fragment\n\n@end");var Wa=vi.prototype.addToScene,ja=vi.prototype.removeFromScene;vi.prototype.addToScene=function(e){if(Wa.call(this,e),this.__zr){var t=this.__zr;e.traverse((function(e){e.__zr=t,e.addAnimatorsToZr&&e.addAnimatorsToZr(t)}))}},vi.prototype.removeFromScene=function(e){ja.call(this,e),e.traverse((function(e){var t=e.__zr;e.__zr=null,t&&e.removeAnimatorsFromZr&&e.removeAnimatorsFromZr(t)}))},le.prototype.setTextureImage=function(e,t,r,i){if(this.shader){var n,a=r.getZr(),o=this;return o.autoUpdateTextureStatus=!1,o.disableTexture(e),!(s=t)||"none"===s||(n=Xa.loadTexture(t,r,i,(function(t){o.enableTexture(e),a&&a.refresh()})),o.set(e,n)),n}var s};var Xa={};Xa.Renderer=ut,Xa.Node=sr,Xa.Mesh=Sr,Xa.Shader=Xe,Xa.Material=le,Xa.Texture=wr,Xa.Texture2D=Dr,Xa.Geometry=Vr,Xa.SphereGeometry=En,Xa.PlaneGeometry=ki,Xa.CubeGeometry=Wi,Xa.AmbientLight=Cn,Xa.DirectionalLight=Dn,Xa.PointLight=Ln,Xa.SpotLight=Pn,Xa.PerspectiveCamera=Ei,Xa.OrthographicCamera=un,Xa.Vector2=_e,Xa.Vector3=vt,Xa.Vector4=Rn,Xa.Quaternion=qt,Xa.Matrix2=Gn,Xa.Matrix2d=Hn,Xa.Matrix3=jn,Xa.Matrix4=Ht,Xa.Plane=$r,Xa.Ray=Mt,Xa.BoundingBox=ir,Xa.Frustum=si;var qa=null;function Za(e){return Math.pow(2,Math.round(Math.log(e)/Math.LN2))}function Ya(e){if((e.wrapS===wr.REPEAT||e.wrapT===wr.REPEAT)&&e.image){var t=Za(e.width),r=Za(e.height);if(t!==e.width||r!==e.height){var i=document.createElement("canvas");i.width=t,i.height=r,i.getContext("2d").drawImage(e.image,0,0,t,r),e.image=i}}}Xa.loadTexture=function(e,t,r,i){"function"==typeof r&&(i=r,r={}),r=r||{};for(var n=Object.keys(r).sort(),a="",o=0;o3?t[3]=e[3]:t[3]=1,t):((t=i.color.parse(e||"#000",t)||[0,0,0,0])[0]/=255,t[1]/=255,t[2]/=255,t)},Xa.directionFromAlphaBeta=function(e,t){var r=e/180*Math.PI+Math.PI/2,i=-t/180*Math.PI+Math.PI/2,n=[],a=Math.sin(r);return n[0]=a*Math.cos(i),n[1]=-Math.cos(r),n[2]=a*Math.sin(i),n},Xa.getShadowResolution=function(e){var t=1024;switch(e){case"low":t=512;break;case"medium":break;case"high":t=2048;break;case"ultra":t=4096}return t},Xa.COMMON_SHADERS=["lambert","color","realistic","hatching","shadow"],Xa.createShader=function(e){"ecgl.shadow"===e&&(e="ecgl.displayShadow");var t=Xe.source(e+".vertex"),r=Xe.source(e+".fragment");t||console.error("Vertex shader of '%s' not exits",e),r||console.error("Fragment shader of '%s' not exits",e);var i=new Xe(t,r);return i.name=e,i},Xa.createMaterial=function(e,t){t instanceof Array||(t=[t]);var r=Xa.createShader(e),i=new le({shader:r});return t.forEach((function(e){"string"==typeof e&&i.define(e)})),i},Xa.setMaterialFromModel=function(e,t,r,i){t.autoUpdateTextureStatus=!1;var n=r.getModel(e+"Material"),a=n.get("detailTexture"),o=Mn(n.get("textureTiling"),1),s=Mn(n.get("textureOffset"),0);"number"==typeof o&&(o=[o,o]),"number"==typeof s&&(s=[s,s]);var l=o[0]>1||o[1]>1?Xa.Texture.REPEAT:Xa.Texture.CLAMP_TO_EDGE,h={anisotropic:8,wrapS:l,wrapT:l};if("realistic"===e){var u=n.get("roughness"),c=n.get("metalness");null!=c?isNaN(c)&&(t.setTextureImage("metalnessMap",c,i,h),c=Mn(n.get("metalnessAdjust"),.5)):c=0,null!=u?isNaN(u)&&(t.setTextureImage("roughnessMap",u,i,h),u=Mn(n.get("roughnessAdjust"),.5)):u=.5;var d=n.get("normalTexture");t.setTextureImage("detailMap",a,i,h),t.setTextureImage("normalMap",d,i,h),t.set({roughness:u,metalness:c,detailUvRepeat:o,detailUvOffset:s})}else if("lambert"===e)t.setTextureImage("detailMap",a,i,h),t.set({detailUvRepeat:o,detailUvOffset:s});else if("color"===e)t.setTextureImage("detailMap",a,i,h),t.set({detailUvRepeat:o,detailUvOffset:s});else if("hatching"===e){var f=n.get("hatchingTextures")||[];f.length;for(var p=0;p<6;p++)t.setTextureImage("hatch"+(p+1),f[p],i,{anisotropic:8,wrapS:Xa.Texture.REPEAT,wrapT:Xa.Texture.REPEAT});t.set({detailUvRepeat:o,detailUvOffset:s})}},Xa.updateVertexAnimation=function(e,t,r,i){var n=i.get("animation"),a=i.get("animationDurationUpdate"),o=i.get("animationEasingUpdate"),s=r.shadowDepthMaterial;if(n&&t&&a>0&&t.geometry.vertexCount===r.geometry.vertexCount){r.material.define("vertex","VERTEX_ANIMATION"),r.ignorePreZ=!0,s&&s.define("vertex","VERTEX_ANIMATION");for(var l=0;l=0&&this._viewsToDispose.splice(t,1),this.views.push(e),e.layer=this;var r=this.zr;e.scene.traverse((function(e){e.__zr=r,e.addAnimatorsToZr&&e.addAnimatorsToZr(r)}))}},Ja.prototype.removeView=function(e){if(e.layer===this){var t=this.views.indexOf(e);t>=0&&(this.views.splice(t,1),e.scene.traverse($a,this),e.layer=null,this._viewsToDispose.push(e))}},Ja.prototype.removeViewsAll=function(){this.views.forEach((function(e){e.scene.traverse($a,this),e.layer=null,this._viewsToDispose.push(e)}),this),this.views.length=0},Ja.prototype.resize=function(e,t){this.renderer.resize(e,t)},Ja.prototype.clear=function(){var e=this.renderer.gl,t=this._backgroundColor||[0,0,0,0];e.clearColor(t[0],t[1],t[2],t[3]),e.depthMask(!0),e.colorMask(!0,!0,!0,!0),e.clear(e.DEPTH_BUFFER_BIT|e.COLOR_BUFFER_BIT)},Ja.prototype.clearDepth=function(){var e=this.renderer.gl;e.clear(e.DEPTH_BUFFER_BIT)},Ja.prototype.clearColor=function(){var e=this.renderer.gl;e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT)},Ja.prototype.needsRefresh=function(){this.zr.refresh()},Ja.prototype.refresh=function(e){this._backgroundColor=e?Ka.parseColor(e):[0,0,0,0],this.renderer.clearColor=this._backgroundColor;for(var t=0;t20)){e=e.event;var i=this.pickObject(e.offsetX,e.offsetY);i&&(this._dispatchEvent(e.type,e,i),this._dispatchDataEvent(e.type,e,i));var n=this._clickToSetFocusPoint(e);n&&n.view.setDOFFocusOnPoint(n.distance)&&this.zr.refresh()}}},Ja.prototype._clickToSetFocusPoint=function(e){for(var t=this.renderer,r=t.viewport,i=this.views.length-1;i>=0;i--){var n=this.views[i];if(n.hasDOF()&&n.containPoint(e.offsetX,e.offsetY)){this._picking.scene=n.scene,this._picking.camera=n.camera,t.viewport=n.viewport;var a=this._picking.pick(e.offsetX,e.offsetY,!0);if(a)return a.view=n,a}}t.viewport=r},Ja.prototype.onglobalout=function(e){var t=this._hovered;t&&this._dispatchEvent("mouseout",e,{target:t.target})},Ja.prototype.pickObject=function(e,t){for(var r=[],i=this.renderer,n=i.viewport,a=0;a=0&&(c.dataIndex=this._lastDataIndex,c.seriesIndex=this._lastSeriesIndex,this.zr.handler.dispatchToElement(u,"mouseout",t)),l=!0):null!=s&&s!==this._lastEventData&&(null!=this._lastEventData&&(c.eventData=this._lastEventData,this.zr.handler.dispatchToElement(u,"mouseout",t)),l=!0),this._lastEventData=s,this._lastDataIndex=a,this._lastSeriesIndex=o),c.eventData=s,c.dataIndex=a,c.seriesIndex=o,(null!=s||parseInt(a,10)>=0&&parseInt(o,10)>=0)&&(this.zr.handler.dispatchToElement(u,e,t),l&&this.zr.handler.dispatchToElement(u,"mouseover",t))},Ja.prototype._dispatchToView=function(e,t){for(var r=0;re&&o=0&&(function(e){so(e,"itemStyle"),so(e,"lineStyle"),so(e,"areaStyle"),so(e,"label")}(t),"mapbox"===t.coordinateSystem&&(t.coordinateSystem="mapbox3D",e.mapbox3D=e.mapbox))})),lo(e.xAxis3D),lo(e.yAxis3D),lo(e.zAxis3D),lo(e.grid3D),so(e.geo3D)}));const uo={defaultOption:{viewControl:{projection:"perspective",autoRotate:!1,autoRotateDirection:"cw",autoRotateSpeed:10,autoRotateAfterStill:3,damping:.8,rotateSensitivity:1,zoomSensitivity:1,panSensitivity:1,panMouseButton:"middle",rotateMouseButton:"left",distance:150,minDistance:40,maxDistance:400,orthographicSize:150,maxOrthographicSize:400,minOrthographicSize:20,center:[0,0,0],alpha:0,beta:0,minAlpha:-90,maxAlpha:90}},setView:function(e){e=e||{},this.option.viewControl=this.option.viewControl||{},null!=e.alpha&&(this.option.viewControl.alpha=e.alpha),null!=e.beta&&(this.option.viewControl.beta=e.beta),null!=e.distance&&(this.option.viewControl.distance=e.distance),null!=e.center&&(this.option.viewControl.center=e.center)}},co={defaultOption:{postEffect:{enable:!1,bloom:{enable:!0,intensity:.1},depthOfField:{enable:!1,focalRange:20,focalDistance:50,blurRadius:10,fstop:2.8,quality:"medium"},screenSpaceAmbientOcclusion:{enable:!1,radius:2,quality:"medium",intensity:1},screenSpaceReflection:{enable:!1,quality:"medium",maxRoughness:.8},colorCorrection:{enable:!0,exposure:0,brightness:0,contrast:1,saturation:1,lookupTexture:""},edge:{enable:!1},FXAA:{enable:!1}},temporalSuperSampling:{enable:"auto"}}},fo={defaultOption:{light:{main:{shadow:!1,shadowQuality:"high",color:"#fff",intensity:1,alpha:0,beta:0},ambient:{color:"#fff",intensity:.2},ambientCubemap:{texture:null,exposure:1,diffuseIntensity:.5,specularIntensity:.5}}}};var po=i.ComponentModel.extend({type:"grid3D",dependencies:["xAxis3D","yAxis3D","zAxis3D"],defaultOption:{show:!0,zlevel:-10,left:0,top:0,width:"100%",height:"100%",environment:"auto",boxWidth:100,boxHeight:100,boxDepth:100,axisPointer:{show:!0,lineStyle:{color:"rgba(0, 0, 0, 0.8)",width:1},label:{show:!0,formatter:null,margin:8,textStyle:{fontSize:14,color:"#fff",backgroundColor:"rgba(0,0,0,0.5)",padding:3,borderRadius:3}}},axisLine:{show:!0,lineStyle:{color:"#333",width:2,type:"solid"}},axisTick:{show:!0,inside:!1,length:3,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,margin:8,textStyle:{fontSize:12}},splitLine:{show:!0,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}},light:{main:{alpha:30,beta:40},ambient:{intensity:.4}},viewControl:{alpha:20,beta:40,autoRotate:!1,distance:200,minDistance:40,maxDistance:400}}});i.util.merge(po.prototype,uo),i.util.merge(po.prototype,co),i.util.merge(po.prototype,fo);const mo=po;function go(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%"}return"string"==typeof e?(r=e,r.replace(/^\s+|\s+$/g,"")).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):null==e?NaN:+e;var r}function _o(){var e="__ec_inner_"+vo++;return function(t){return t[e]||(t[e]={})}}var vo=Math.round(9*Math.random()),yo={};function xo(e,t,r,i,n){var a={};return function(e,t,r,i,n){r=r||yo;var a,o=t.ecModel,s=o&&o.option.textStyle,l=function(e){for(var t;e&&e!==e.ecModel;){var r=(e.option||yo).rich;if(r){t=t||{};for(var i=ba(r),n=0;n0&&this._notFirst?this.animateTo({alpha:h,beta:u,center:c,distance:a,orthographicSize:o,easing:l.animationEasingUpdate,duration:l.animationDurationUpdate}):(this.setDistance(a),this.setAlpha(h),this.setBeta(u),this.setCenter(c),this.setOrthographicSize(o)),this._notFirst=!0,this._validateProperties()},_validateProperties:function(){},animateTo:function(e){var t=this.zr,r=this,i={},n={};return null!=e.distance&&(i.distance=this.getDistance(),n.distance=e.distance),null!=e.orthographicSize&&(i.orthographicSize=this.getOrthographicSize(),n.orthographicSize=e.orthographicSize),null!=e.alpha&&(i.alpha=this.getAlpha(),n.alpha=e.alpha),null!=e.beta&&(i.beta=this.getBeta(),n.beta=e.beta),null!=e.center&&(i.center=this.getCenter(),n.center=e.center),this._addAnimator(t.animation.animate(i).when(e.duration||1e3,n).during((function(){null!=i.alpha&&r.setAlpha(i.alpha),null!=i.beta&&r.setBeta(i.beta),null!=i.distance&&r.setDistance(i.distance),null!=i.center&&r.setCenter(i.center),null!=i.orthographicSize&&r.setOrthographicSize(i.orthographicSize),r._needsUpdate=!0}))).start(e.easing||"linear")},stopAllAnimation:function(){for(var e=0;e0},_update:function(e){if(this._rotating){var t=("cw"===this.autoRotateDirection?1:-1)*this.autoRotateSpeed/180*Math.PI;this._phi-=t*e/1e3,this._needsUpdate=!0}else this._rotateVelocity.len()>0&&(this._needsUpdate=!0);(Math.abs(this._zoomSpeed)>.1||this._panVelocity.len()>0)&&(this._needsUpdate=!0),this._needsUpdate&&(e=Math.min(e,50),this._updateDistanceOrSize(e),this._updatePan(e),this._updateRotate(e),this._updateTransform(),this.getCamera().update(),this.zr&&this.zr.refresh(),this.trigger("update"),this._needsUpdate=!1)},_updateRotate:function(e){var t=this._rotateVelocity;this._phi=t.y*e/20+this._phi,this._theta=t.x*e/20+this._theta,this.setAlpha(this.getAlpha()),this.setBeta(this.getBeta()),this._vectorDamping(t,Math.pow(this.damping,e/16))},_updateDistanceOrSize:function(e){"perspective"===this._projection?this._setDistance(this._distance+this._zoomSpeed*e/20):this._setOrthoSize(this._orthoSize+this._zoomSpeed*e/20),this._zoomSpeed*=Math.pow(this.damping,e/16)},_setDistance:function(e){this._distance=Math.max(Math.min(e,this.maxDistance),this.minDistance)},_setOrthoSize:function(e){this._orthoSize=Math.max(Math.min(e,this.maxOrthographicSize),this.minOrthographicSize);var t=this.getCamera(),r=this._orthoSize,i=r/this.viewGL.viewport.height*this.viewGL.viewport.width;t.left=-i/2,t.right=i/2,t.top=r/2,t.bottom=-r/2},_updatePan:function(e){var t=this._panVelocity,r=this._distance,i=this.getCamera(),n=i.worldTransform.y,a=i.worldTransform.x;this._center.scaleAndAdd(a,-t.x*r/200).scaleAndAdd(n,-t.y*r/200),this._vectorDamping(t,0)},_updateTransform:function(){var e=this.getCamera(),t=new vt,r=this._theta+Math.PI/2,i=this._phi+Math.PI/2,n=Math.sin(r);t.x=n*Math.cos(i),t.y=-Math.cos(r),t.z=n*Math.sin(i),e.position.copy(this._center).scaleAndAdd(t,this._distance),e.rotation.identity().rotateY(-this._phi).rotateX(-this._theta)},_startCountingStill:function(){clearTimeout(this._stillTimeout);var e=this.autoRotateAfterStill,t=this;!isNaN(e)&&e>0&&(this._stillTimeout=setTimeout((function(){t._rotating=!0}),1e3*e))},_vectorDamping:function(e,t){var r=e.len();(r*=t)<1e-4&&(r=0),e.normalize().scale(r)},_decomposeTransform:function(){if(this.getCamera()){this.getCamera().updateWorldTransform();var e=this.getCamera().worldTransform.z,t=Math.asin(e.y),r=Math.atan2(e.x,e.z);this._theta=t,this._phi=-r,this.setBeta(this.getBeta()),this.setAlpha(this.getAlpha()),this.getCamera().aspect?this._setDistance(this.getCamera().position.dist(this._center)):this._setOrthoSize(this.getCamera().top-this.getCamera().bottom)}},_mouseDownHandler:function(e){if(!e.target&&!this._isAnimating()){var t=e.offsetX,r=e.offsetY;this.viewGL&&!this.viewGL.containPoint(t,r)||(this.zr.on("mousemove",this._mouseMoveHandler),this.zr.on("mouseup",this._mouseUpHandler),e.event.targetTouches?1===e.event.targetTouches.length&&(this._mode="rotate"):e.event.button===Ao[this.rotateMouseButton]?this._mode="rotate":e.event.button===Ao[this.panMouseButton]?this._mode="pan":this._mode="",this._rotateVelocity.set(0,0),this._rotating=!1,this.autoRotate&&this._startCountingStill(),this._mouseX=e.offsetX,this._mouseY=e.offsetY)}},_mouseMoveHandler:function(e){if(!(e.target&&e.target.__isGLToZRProxy||this._isAnimating())){var t=Eo(this.panSensitivity),r=Eo(this.rotateSensitivity);"rotate"===this._mode?(this._rotateVelocity.y=(e.offsetX-this._mouseX)/this.zr.getHeight()*2*r[0],this._rotateVelocity.x=(e.offsetY-this._mouseY)/this.zr.getWidth()*2*r[1]):"pan"===this._mode&&(this._panVelocity.x=(e.offsetX-this._mouseX)/this.zr.getWidth()*t[0]*400,this._panVelocity.y=(-e.offsetY+this._mouseY)/this.zr.getHeight()*t[1]*400),this._mouseX=e.offsetX,this._mouseY=e.offsetY,e.event.preventDefault()}},_mouseWheelHandler:function(e){if(!this._isAnimating()){var t=e.event.wheelDelta||-e.event.detail;this._zoomHandler(e,t)}},_pinchHandler:function(e){this._isAnimating()||(this._zoomHandler(e,e.pinchScale>1?1:-1),this._mode="")},_zoomHandler:function(e,t){if(0!==t){var r,i=e.offsetX,n=e.offsetY;this.viewGL&&!this.viewGL.containPoint(i,n)||(r="perspective"===this._projection?Math.max(Math.max(Math.min(this._distance-this.minDistance,this.maxDistance-this._distance))/20,.5):Math.max(Math.max(Math.min(this._orthoSize-this.minOrthographicSize,this.maxOrthographicSize-this._orthoSize))/20,.5),this._zoomSpeed=(t>0?-1:1)*r*this.zoomSensitivity,this._rotating=!1,this.autoRotate&&"rotate"===this._mode&&this._startCountingStill(),e.event.preventDefault())}},_mouseUpHandler:function(){this.zr.off("mousemove",this._mouseMoveHandler),this.zr.off("mouseup",this._mouseUpHandler)},_isRightMouseButtonUsed:function(){return"right"===this.rotateMouseButton||"right"===this.panMouseButton},_contextMenuHandler:function(e){this._isRightMouseButtonUsed()&&e.preventDefault()},_addAnimator:function(e){var t=this._animators;return t.push(e),e.done((function(){var r=t.indexOf(e);r>=0&&t.splice(r,1)})),e}});Object.defineProperty(Co.prototype,"autoRotate",{get:function(e){return this._autoRotate},set:function(e){this._autoRotate=e,this._rotating=e}});const Do=Co,Lo={convertToDynamicArray:function(e){e&&this.resetOffset();var t=this.attributes;for(var r in t)e||!t[r].value?t[r].value=[]:t[r].value=Array.prototype.slice.call(t[r].value);e||!this.indices?this.indices=[]:this.indices=Array.prototype.slice.call(this.indices)},convertToTypedArray:function(){var e=this.attributes;for(var t in e)e[t].value&&e[t].value.length>0?e[t].value=new Float32Array(e[t].value):e[t].value=null;this.indices&&this.indices.length>0&&(this.indices=this.vertexCount>65535?new Uint32Array(this.indices):new Uint16Array(this.indices)),this.dirty()}},Po={vec2:pe,vec3:Qe,vec4:Et,mat2:Fn,mat2d:kn,mat3:Dt,mat4:Ye,quat:Rt};var Oo=Po.vec3,No=[[0,0],[1,1]],Io=Vr.extend((function(){return{segmentScale:1,dynamic:!0,useNativeLine:!0,attributes:{position:new Vr.Attribute("position","float",3,"POSITION"),positionPrev:new Vr.Attribute("positionPrev","float",3),positionNext:new Vr.Attribute("positionNext","float",3),prevPositionPrev:new Vr.Attribute("prevPositionPrev","float",3),prevPosition:new Vr.Attribute("prevPosition","float",3),prevPositionNext:new Vr.Attribute("prevPositionNext","float",3),offset:new Vr.Attribute("offset","float",1),color:new Vr.Attribute("color","float",4,"COLOR")}}}),{resetOffset:function(){this._vertexOffset=0,this._triangleOffset=0,this._itemVertexOffsets=[]},setVertexCount:function(e){var t=this.attributes;this.vertexCount!==e&&(t.position.init(e),t.color.init(e),this.useNativeLine||(t.positionPrev.init(e),t.positionNext.init(e),t.offset.init(e)),e>65535?this.indices instanceof Uint16Array&&(this.indices=new Uint32Array(this.indices)):this.indices instanceof Uint32Array&&(this.indices=new Uint16Array(this.indices)))},setTriangleCount:function(e){this.triangleCount!==e&&(this.indices=0===e?null:this.vertexCount>65535?new Uint32Array(3*e):new Uint16Array(3*e))},_getCubicCurveApproxStep:function(e,t,r,i){return 1/(Oo.dist(e,t)+Oo.dist(r,t)+Oo.dist(i,r)+1)*this.segmentScale},getCubicCurveVertexCount:function(e,t,r,i){var n=this._getCubicCurveApproxStep(e,t,r,i),a=Math.ceil(1/n);return this.useNativeLine?2*a:2*a+2},getCubicCurveTriangleCount:function(e,t,r,i){var n=this._getCubicCurveApproxStep(e,t,r,i),a=Math.ceil(1/n);return this.useNativeLine?0:2*a},getLineVertexCount:function(){return this.getPolylineVertexCount(No)},getLineTriangleCount:function(){return this.getPolylineTriangleCount(No)},getPolylineVertexCount:function(e){var t;return t="number"==typeof e?e:"number"!=typeof e[0]?e.length:e.length/3,this.useNativeLine?2*(t-1):2*(t-1)+2},getPolylineTriangleCount:function(e){var t;return t="number"==typeof e?e:"number"!=typeof e[0]?e.length:e.length/3,this.useNativeLine?0:2*Math.max(t-1,0)},addCubicCurve:function(e,t,r,i,n,a){null==a&&(a=1);var o=e[0],s=e[1],l=e[2],h=t[0],u=t[1],c=t[2],d=r[0],f=r[1],p=r[2],m=i[0],g=i[1],_=i[2],v=this._getCubicCurveApproxStep(e,t,r,i),y=v*v,x=y*v,b=3*v,w=3*y,T=6*y,S=6*x,M=o-2*h+d,A=s-2*u+f,E=l-2*c+p,C=3*(h-d)-o+m,D=3*(u-f)-s+g,L=3*(c-p)-l+_,P=o,O=s,N=l,I=(h-o)*b+M*w+C*x,R=(u-s)*b+A*w+D*x,B=(c-l)*b+E*w+L*x,F=M*T+C*S,z=A*T+D*S,G=E*T+L*S,U=C*S,k=D*S,V=L*S,H=0,W=0,j=Math.ceil(1/v),X=new Float32Array(3*(j+1)),q=(X=[],0);for(W=0;W1&&(P=I>0?Math.min(P,m):Math.max(P,m),O=R>0?Math.min(O,g):Math.max(O,g),N=B>0?Math.min(N,_):Math.max(N,_));return this.addPolyline(X,n,a)},addLine:function(e,t,r,i){return this.addPolyline([e,t],r,i)},addPolyline:function(e,t,r,i,n){if(e.length){var a="number"!=typeof e[0];if(null==n&&(n=a?e.length:e.length/3),!(n<2)){null==i&&(i=0),null==r&&(r=1),this._itemVertexOffsets.push(this._vertexOffset);var o,s,l=(a="number"!=typeof e[0])?"number"!=typeof t[0]:t.length/4===n,h=this.attributes.position,u=this.attributes.positionPrev,c=this.attributes.positionNext,d=this.attributes.color,f=this.attributes.offset,p=this.indices,m=this._vertexOffset;r=Math.max(r,.01);for(var g=i;g1&&(h.copy(m,m-1),d.copy(m,m-1),m++):(g0&&(c.set(m-2,o),c.set(m-1,o)),h.set(m,o),h.set(m+1,o),d.set(m,s),d.set(m+1,s),f.set(m,r/2),f.set(m+1,-r/2),m+=2),this.useNativeLine)d.set(m,s),h.set(m,o),m++;else if(g>0){var y=3*this._triangleOffset;(p=this.indices)[y]=m-4,p[y+1]=m-3,p[y+2]=m-2,p[y+3]=m-3,p[y+4]=m-1,p[y+5]=m-2,this._triangleOffset+=2}}if(!this.useNativeLine){var x=this._vertexOffset,b=this._vertexOffset+2*n;u.copy(x,x+2),u.copy(x+1,x+3),c.copy(b-1,b-3),c.copy(b-2,b-4)}return this._vertexOffset=m,this._vertexOffset}}},setItemColor:function(e,t){for(var r=this._itemVertexOffsets[e],i=eo&&(n=this._x=0,a+=this._rowHeight+l,this._y=a,this._rowHeight=0),this._x+=t+l,this._rowHeight=Math.max(this._rowHeight,r),a+r+l>s)return null;e.x+=this.offsetX*this.dpr+n,e.y+=this.offsetY*this.dpr+a,this._zr.add(e);var h=[this.offsetX/this.width,this.offsetY/this.height];return[[n/o+h[0],a/s+h[1]],[(n+t)/o+h[0],(a+r)/s+h[1]]]},_fitElement:function(e,t,r){var i=e.getBoundingRect(),n=t/i.width,a=r/i.height;e.x=-i.x*n,e.y=-i.y*a,e.scaleX=n,e.scaleY=a,e.update()}},Fo.prototype={clear:function(){for(var e=0;e=e)){var n=(r+this._nodeWidth)*this._dpr,a=(i+this._nodeHeight)*this._dpr;try{this._zr.resize({width:n,height:a})}catch(e){this._canvas.width=n,this._canvas.height=a}var o=new Bo(this._zr,r,i,this._nodeWidth,this._nodeHeight,this._gap,this._dpr);return this._textureAtlasNodes.push(o),o}},add:function(e,t,r){if(this._coords[e.id])return this._coords[e.id];var i=this._getCurrentNode().add(e,t,r);if(!i){var n=this._expand();if(!n)return;i=n.add(e,t,r)}return this._coords[e.id]=i,i},getCoordsScale:function(){var e=this._dpr;return[this._nodeWidth/this._canvas.width*e,this._nodeHeight/this._canvas.height*e]},getCoords:function(e){return this._coords[e]},dispose:function(){this._zr.dispose()}};const zo=Fo;function Go(){}Go.prototype={constructor:Go,setScene:function(e){this._scene=e,this._skybox&&this._skybox.attachScene(this._scene)},initLight:function(e){this._lightRoot=e,this.mainLight=new Ka.DirectionalLight({shadowBias:.005}),this.ambientLight=new Ka.AmbientLight,e.add(this.mainLight),e.add(this.ambientLight)},dispose:function(){this._lightRoot&&(this._lightRoot.remove(this.mainLight),this._lightRoot.remove(this.ambientLight))},updateLight:function(e){var t=this.mainLight,r=this.ambientLight,i=e.getModel("light"),n=i.getModel("main"),a=i.getModel("ambient");t.intensity=n.get("intensity"),r.intensity=a.get("intensity"),t.color=Ka.parseColor(n.get("color")).slice(0,3),r.color=Ka.parseColor(a.get("color")).slice(0,3);var o=n.get("alpha")||0,s=n.get("beta")||0;t.position.setArray(Ka.directionFromAlphaBeta(o,s)),t.lookAt(Ka.Vector3.ZERO),t.castShadow=n.get("shadow"),t.shadowResolution=Ka.getShadowResolution(n.get("shadowQuality"))},updateAmbientCubemap:function(e,t,r){var i=t.getModel("light.ambientCubemap"),n=i.get("texture");if(n){this._cubemapLightsCache=this._cubemapLightsCache||{};var a=this._cubemapLightsCache[n];if(!a){var o=this;a=this._cubemapLightsCache[n]=Ka.createAmbientCubemap(i.option,e,r,(function(){o._isSkyboxFromAmbientCubemap&&o._skybox.setEnvironmentMap(a.specular.cubemap),r.getZr().refresh()}))}this._lightRoot.add(a.diffuse),this._lightRoot.add(a.specular),this._currentCubemapLights=a}else this._currentCubemapLights&&(this._lightRoot.remove(this._currentCubemapLights.diffuse),this._lightRoot.remove(this._currentCubemapLights.specular),this._currentCubemapLights=null)},updateSkybox:function(e,t,r){var n=t.get("environment"),a=this,o=(a._skybox=a._skybox||new ji,a._skybox);if(n&&"none"!==n)if("auto"===n)if(this._isSkyboxFromAmbientCubemap=!0,this._currentCubemapLights){var s=this._currentCubemapLights.specular.cubemap;o.setEnvironmentMap(s),this._scene&&o.attachScene(this._scene),o.material.set("lod",3)}else this._skybox&&this._skybox.detachScene();else if("object"==typeof n&&n.colorStops||"string"==typeof n&&i.color.parse(n)){this._isSkyboxFromAmbientCubemap=!1;var l=new Ka.Texture2D({anisotropic:8,flipY:!1});o.setEnvironmentMap(l);var h=l.image=document.createElement("canvas");h.width=h.height=16;var u=h.getContext("2d"),c=new i.graphic.Rect({shape:{x:0,y:0,width:16,height:16},style:{fill:n}});i.innerDrawElementOnCanvas(u,c),o.attachScene(this._scene)}else this._isSkyboxFromAmbientCubemap=!1,l=Ka.loadTexture(n,r,{anisotropic:8,flipY:!1}),o.setEnvironmentMap(l),o.attachScene(this._scene);else this._skybox&&this._skybox.detachScene(this._scene),this._skybox=null;var d=t.coordinateSystem;if(this._skybox)if(!d||!d.viewGL||"auto"===n||n.match&&n.match(/.hdr$/))this._skybox.material.undefine("fragment","SRGB_DECODE");else{var f=d.viewGL.isLinearSpace()?"define":"undefine";this._skybox.material[f]("fragment","SRGB_DECODE")}}};const Uo=Go;var ko=Po.vec3,Vo=Vr.extend((function(){return{segmentScale:1,useNativeLine:!0,attributes:{position:new Vr.Attribute("position","float",3,"POSITION"),normal:new Vr.Attribute("normal","float",3,"NORMAL"),color:new Vr.Attribute("color","float",4,"COLOR")}}}),{resetOffset:function(){this._vertexOffset=0,this._faceOffset=0},setQuadCount:function(e){var t=this.attributes,r=this.getQuadVertexCount()*e,i=this.getQuadTriangleCount()*e;this.vertexCount!==r&&(t.position.init(r),t.normal.init(r),t.color.init(r)),this.triangleCount!==i&&(this.indices=r>65535?new Uint32Array(3*i):new Uint16Array(3*i))},getQuadVertexCount:function(){return 4},getQuadTriangleCount:function(){return 2},addQuad:function(){var e=ko.create(),t=ko.create(),r=ko.create(),i=[0,3,1,3,2,1];return function(n,a){var o=this.attributes.position,s=this.attributes.normal,l=this.attributes.color;ko.sub(e,n[1],n[0]),ko.sub(t,n[2],n[1]),ko.cross(r,e,t),ko.normalize(r,r);for(var h=0;h<4;h++)o.set(this._vertexOffset+h,n[h]),l.set(this._vertexOffset+h,a),s.set(this._vertexOffset+h,r);var u=3*this._faceOffset;for(h=0;h<6;h++)this.indices[u+h]=i[h]+this._vertexOffset;this._vertexOffset+=4,this._faceOffset+=2}}()});i.util.defaults(Vo.prototype,Lo);const Ho=Vo;var Wo=Mn,jo={x:0,y:2,z:1};function Xo(e,t,r){this.rootNode=new Ka.Node;var i=new Ka.Mesh({geometry:new Ro({useNativeLine:!1}),material:t,castShadow:!1,ignorePicking:!0,$ignorePicking:!0,renderOrder:1}),n=new Ka.Mesh({geometry:new Ho,material:r,castShadow:!1,culling:!1,ignorePicking:!0,$ignorePicking:!0,renderOrder:0});this.rootNode.add(n),this.rootNode.add(i),this.faceInfo=e,this.plane=new Ka.Plane,this.linesMesh=i,this.quadsMesh=n}Xo.prototype.update=function(e,t,r){var i=e.coordinateSystem,n=[i.getAxis(this.faceInfo[0]),i.getAxis(this.faceInfo[1])],a=this.linesMesh.geometry,o=this.quadsMesh.geometry;a.convertToDynamicArray(!0),o.convertToDynamicArray(!0),this._updateSplitLines(a,n,e,r),this._udpateSplitAreas(o,n,e,r),a.convertToTypedArray(),o.convertToTypedArray();var s=i.getAxis(this.faceInfo[2]);!function(e,t,r,i){var n=[0,0,0],a=i<0?r.getExtentMin():r.getExtentMax();n[jo[r.dim]]=a,e.position.setArray(n),e.rotation.identity(),t.distance=-Math.abs(a),t.normal.set(0,0,0),"x"===r.dim?(e.rotation.rotateY(i*Math.PI/2),t.normal.x=-i):"z"===r.dim?(e.rotation.rotateX(-i*Math.PI/2),t.normal.y=-i):(i>0&&e.rotation.rotateY(Math.PI),t.normal.z=-i)}(this.rootNode,this.plane,s,this.faceInfo[3])},Xo.prototype._updateSplitLines=function(e,t,r,n){var a=n.getDevicePixelRatio();t.forEach((function(n,o){var s=n.model,l=t[1-o].getExtent();if(!n.scale.isBlank()){var h=s.getModel("splitLine",r.getModel("splitLine"));if(h.get("show")){var u=h.getModel("lineStyle"),c=u.get("color"),d=Wo(u.get("opacity"),1),f=Wo(u.get("width"),1);c=i.util.isArray(c)?c:[c];for(var p=n.getTicksCoords({tickModel:h}),m=0,g=0;g65535?new Uint32Array(3*r):new Uint16Array(3*r))},setSpriteAlign:function(e,t,r,i,n){var a,o,s,l;switch(null==r&&(r="left"),null==i&&(i="top"),n=n||0,r){case"left":a=n,s=t[0]+n;break;case"center":case"middle":a=-t[0]/2,s=t[0]/2;break;case"right":a=-t[0]-n,s=-n}switch(i){case"bottom":o=n,l=t[1]+n;break;case"middle":o=-t[1]/2,l=t[1]/2;break;case"top":o=-t[1]-n,l=-n}var h=4*e,u=this.attributes.offset;u.set(h,[a,l]),u.set(h+1,[s,l]),u.set(h+2,[s,o]),u.set(h+3,[a,o])},addSprite:function(e,t,r,i,n,a){var o=this._vertexOffset;this.setSprite(this._vertexOffset/4,e,t,r,i,n,a);for(var s=0;s 0.0) {\n currProj = clipNear(currProj, nextProj);\n }\n else if (prevProj.w > 0.0) {\n currProj = clipNear(currProj, prevProj);\n }\n }\n\n vec2 prevScreen = (prevProj.xy / abs(prevProj.w) + 1.0) * 0.5 * viewport.zw;\n vec2 currScreen = (currProj.xy / abs(currProj.w) + 1.0) * 0.5 * viewport.zw;\n vec2 nextScreen = (nextProj.xy / abs(nextProj.w) + 1.0) * 0.5 * viewport.zw;\n\n vec2 dir;\n float len = offset;\n if (position == positionPrev) {\n dir = normalize(nextScreen - currScreen);\n }\n else if (position == positionNext) {\n dir = normalize(currScreen - prevScreen);\n }\n else {\n vec2 dirA = normalize(currScreen - prevScreen);\n vec2 dirB = normalize(nextScreen - currScreen);\n\n vec2 tanget = normalize(dirA + dirB);\n\n float miter = 1.0 / max(dot(tanget, dirA), 0.5);\n len *= miter;\n dir = tanget;\n }\n\n dir = vec2(-dir.y, dir.x) * len;\n currScreen += dir;\n\n currProj.xy = (currScreen / viewport.zw - 0.5) * 2.0 * abs(currProj.w);\n@end\n\n\n@export ecgl.meshLines3D.vertex\n\nattribute vec3 position: POSITION;\nattribute vec3 positionPrev;\nattribute vec3 positionNext;\nattribute float offset;\nattribute vec4 a_Color : COLOR;\n\n#ifdef VERTEX_ANIMATION\nattribute vec3 prevPosition;\nattribute vec3 prevPositionPrev;\nattribute vec3 prevPositionNext;\nuniform float percent : 1.0;\n#endif\n\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\nuniform vec4 viewport : VIEWPORT;\nuniform float near : NEAR;\n\nvarying vec4 v_Color;\n\n@import ecgl.common.wireframe.vertexHeader\n\n@import ecgl.lines3D.clipNear\n\nvoid main()\n{\n @import ecgl.lines3D.expandLine\n\n gl_Position = currProj;\n\n v_Color = a_Color;\n\n @import ecgl.common.wireframe.vertexMain\n}\n@end\n\n\n@export ecgl.meshLines3D.fragment\n\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\n\nvarying vec4 v_Color;\n\n@import ecgl.common.wireframe.fragmentHeader\n\n@import clay.util.srgb\n\nvoid main()\n{\n#ifdef SRGB_DECODE\n gl_FragColor = sRGBToLinear(color * v_Color);\n#else\n gl_FragColor = color * v_Color;\n#endif\n\n @import ecgl.common.wireframe.fragmentMain\n}\n\n@end";var ns=Mn;Ka.Shader.import(is);var as={x:0,y:2,z:1};const os=i.ComponentView.extend({type:"grid3D",__ecgl__:!0,init:function(e,t){var r=new Ka.Material({shader:Ka.createShader("ecgl.color"),depthMask:!1,transparent:!0}),i=new Ka.Material({shader:Ka.createShader("ecgl.meshLines3D"),depthMask:!1,transparent:!0});r.define("fragment","DOUBLE_SIDED"),r.define("both","VERTEX_COLOR"),this.groupGL=new Ka.Node,this._control=new Do({zr:t.getZr()}),this._control.init(),this._faces=[["y","z","x",-1,"left"],["y","z","x",1,"right"],["x","y","z",-1,"bottom"],["x","y","z",1,"top"],["x","z","y",-1,"far"],["x","z","y",1,"near"]].map((function(e){var t=new qo(e,i,r);return this.groupGL.add(t.rootNode),t}),this),this._axes=["x","y","z"].map((function(e){var t=new rs(e,i);return this.groupGL.add(t.rootNode),t}),this);var n=t.getDevicePixelRatio();this._axisLabelSurface=new zo({width:256,height:256,devicePixelRatio:n}),this._axisLabelSurface.onupdate=function(){t.getZr().refresh()},this._axisPointerLineMesh=new Ka.Mesh({geometry:new Ro({useNativeLine:!1}),material:i,castShadow:!1,ignorePicking:!0,renderOrder:3}),this.groupGL.add(this._axisPointerLineMesh),this._axisPointerLabelsSurface=new zo({width:128,height:128,devicePixelRatio:n}),this._axisPointerLabelsMesh=new Qo({ignorePicking:!0,renderOrder:4,castShadow:!1}),this._axisPointerLabelsMesh.material.set("textureAtlas",this._axisPointerLabelsSurface.getTexture()),this.groupGL.add(this._axisPointerLabelsMesh),this._lightRoot=new Ka.Node,this._sceneHelper=new Uo,this._sceneHelper.initLight(this._lightRoot)},render:function(e,t,r){this._model=e,this._api=r;var i=e.coordinateSystem;i.viewGL.add(this._lightRoot),e.get("show")?i.viewGL.add(this.groupGL):i.viewGL.remove(this.groupGL);var n=this._control;n.setViewGL(i.viewGL);var a=e.getModel("viewControl");n.setFromViewControlModel(a,0),this._axisLabelSurface.clear(),n.off("update"),e.get("show")&&(this._faces.forEach((function(i){i.update(e,t,r)}),this),this._axes.forEach((function(t){t.update(e,this._axisLabelSurface,r)}),this)),n.on("update",this._onCameraChange.bind(this,e,r),this),this._sceneHelper.setScene(i.viewGL.scene),this._sceneHelper.updateLight(e),i.viewGL.setPostEffect(e.getModel("postEffect"),r),i.viewGL.setTemporalSuperSampling(e.getModel("temporalSuperSampling")),this._initMouseHandler(e)},afterRender:function(e,t,r,i){var n=i.renderer;this._sceneHelper.updateAmbientCubemap(n,e,r),this._sceneHelper.updateSkybox(n,e,r)},showAxisPointer:function(e,t,r,i){this._doShowAxisPointer(),this._updateAxisPointer(i.value)},hideAxisPointer:function(e,t,r,i){this._doHideAxisPointer()},_initMouseHandler:function(e){var t=e.coordinateSystem.viewGL;e.get("show")&&e.get("axisPointer.show")?t.on("mousemove",this._updateAxisPointerOnMousePosition,this):t.off("mousemove",this._updateAxisPointerOnMousePosition)},_updateAxisPointerOnMousePosition:function(e){if(!e.target){for(var t,r=this._model.coordinateSystem,i=r.viewGL,n=i.castRay(e.offsetX,e.offsetY,new Ka.Ray),a=0;ai[1]?0:1,o=this._faces[2*r+a],s=this._faces[2*r+1-a];o.rootNode.invisible=!0,s.rootNode.invisible=!1}},_updateAxisLinePosition:function(){var e=this._model.coordinateSystem,t=e.getAxis("x"),r=e.getAxis("y"),i=e.getAxis("z"),n=i.getExtentMax(),a=i.getExtentMin(),o=t.getExtentMin(),s=t.getExtentMax(),l=r.getExtentMax(),h=r.getExtentMin(),u=this._axes[0].rootNode,c=this._axes[1].rootNode,d=this._axes[2].rootNode,f=this._faces,p=f[4].rootNode.invisible?h:l,m=f[2].rootNode.invisible?n:a,g=f[0].rootNode.invisible?o:s,_=f[2].rootNode.invisible?n:a,v=f[0].rootNode.invisible?s:o,y=f[4].rootNode.invisible?h:l;u.rotation.identity(),c.rotation.identity(),d.rotation.identity(),f[4].rootNode.invisible&&(this._axes[0].flipped=!0,u.rotation.rotateX(Math.PI)),f[0].rootNode.invisible&&(this._axes[1].flipped=!0,c.rotation.rotateZ(Math.PI)),f[4].rootNode.invisible&&(this._axes[2].flipped=!0,d.rotation.rotateY(Math.PI)),u.position.set(0,m,p),c.position.set(g,_,0),d.position.set(v,0,y),u.update(),c.update(),d.update(),this._updateAxisLabelAlign()},_updateAxisLabelAlign:function(){var e=this._control.getCamera(),t=[new Ka.Vector4,new Ka.Vector4],r=new Ka.Vector4;this.groupGL.getWorldPosition(r),r.w=1,r.transformMat4(e.viewMatrix).transformMat4(e.projectionMatrix),r.x/=r.w,r.y/=r.w,this._axes.forEach((function(i){for(var n=i.axisLineCoords,a=(i.labelsMesh.geometry,0);ar.y?"bottom":"top"):(s="middle",o=u>r.x?"left":"right"),i.setSpriteAlign(o,s,this._api)}),this)},_doShowAxisPointer:function(){this._axisPointerLineMesh.invisible&&(this._axisPointerLineMesh.invisible=!1,this._axisPointerLabelsMesh.invisible=!1,this._api.getZr().refresh())},_doHideAxisPointer:function(){this._axisPointerLineMesh.invisible||(this._axisPointerLineMesh.invisible=!0,this._axisPointerLabelsMesh.invisible=!0,this._api.getZr().refresh())},_updateAxisPointer:function(e){var t=this._model.coordinateSystem,r=t.dataToPoint(e),i=this._axisPointerLineMesh.geometry,n=this._model.getModel("axisPointer"),a=this._api.getDevicePixelRatio();function o(e){return Mn(e.model.get("axisPointer.show"),n.get("show"))}function s(e){var t=e.model.getModel("axisPointer",n).getModel("lineStyle"),r=Ka.parseColor(t.get("color")),i=ns(t.get("width"),1),a=ns(t.get("opacity"),1);return r[3]*=a,{color:r,lineWidth:i}}i.convertToDynamicArray(!0);for(var l=0;lp&&(p=y,mp&&(p=x,_=r.x&&e<=r.x+r.width&&t>=r.y&&t<=r.y+r.height},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(t){e.copy(this,t)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return 0===this.width||0===this.height},e.create=function(t){return new e(t.x,t.y,t.width,t.height)},e.copy=function(e,t){e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height},e.applyTransform=function(t,r,i){if(i){if(i[1]<1e-5&&i[1]>-1e-5&&i[2]<1e-5&&i[2]>-1e-5){var n=i[0],a=i[3],o=i[4],s=i[5];return t.x=r.x*n+o,t.y=r.y*a+s,t.width=r.width*n,t.height=r.height*a,t.width<0&&(t.x+=t.width,t.width=-t.width),void(t.height<0&&(t.y+=t.height,t.height=-t.height))}gs.x=vs.x=r.x,gs.y=ys.y=r.y,_s.x=ys.x=r.x+r.width,_s.y=vs.y=r.y+r.height,gs.transform(i),ys.transform(i),_s.transform(i),vs.transform(i),t.x=ps(gs.x,_s.x,vs.x,ys.x),t.y=ps(gs.y,_s.y,vs.y,ys.y);var l=ms(gs.x,_s.x,vs.x,ys.x),h=ms(gs.y,_s.y,vs.y,ys.y);t.width=l-t.x,t.height=h-t.y}else t!==r&&e.copy(t,r)},e}();function Ts(e,t,r,i,n){var a=0,o=0;null==i&&(i=1/0),null==n&&(n=1/0);var s=0;t.eachChild((function(l,h){var u,c,d=l.getBoundingRect(),f=t.childAt(h+1),p=f&&f.getBoundingRect();if("horizontal"===e){var m=d.width+(p?-p.x+d.x:0);(u=a+m)>i||l.newline?(a=0,u=m,o+=s+r,s=d.height):s=Math.max(s,d.height)}else{var g=d.height+(p?-p.y+d.y:0);(c=o+g)>n||l.newline?(a+=s+r,o=0,c=g,s=d.width):s=Math.max(s,d.width)}l.newline||(l.x=a,l.y=o,l.markRedraw(),"horizontal"===e?a=u+r:o=c+r)}))}function Ss(e,t,r){r=function(e){if("number"==typeof e)return[e,e,e,e];var t=e.length;return 2===t?[e[0],e[1],e[0],e[1]]:3===t?[e[0],e[1],e[2],e[1]]:e}(r||0);var i=t.width,n=t.height,a=go(e.left,i),o=go(e.top,n),s=go(e.right,i),l=go(e.bottom,n),h=go(e.width,i),u=go(e.height,n),c=r[2]+r[0],d=r[1]+r[3],f=e.aspect;switch(isNaN(h)&&(h=i-s-d-a),isNaN(u)&&(u=n-l-c-o),null!=f&&(isNaN(h)&&isNaN(u)&&(f>i/n?h=.8*i:u=.8*n),isNaN(h)&&(h=f*u),isNaN(u)&&(u=h/f)),isNaN(a)&&(a=i-s-h-d),isNaN(o)&&(o=n-l-u-c),e.left||e.right){case"center":a=i/2-h/2-r[3];break;case"right":a=i-h-d}switch(e.top||e.bottom){case"middle":case"center":o=n/2-u/2-r[0];break;case"bottom":o=n-u-c}a=a||0,o=o||0,isNaN(h)&&(h=i-d-a-(s||0)),isNaN(u)&&(u=n-c-o-(l||0));var p=new ws(a+r[3],o+r[0],h,u);return p.margin=r,p}wa(Ts,"vertical"),wa(Ts,"horizontal");var Ms=function(){this._pool={},this._allocatedTextures=[]};Ms.prototype={constructor:Ms,get:function(e){var t=Cs(e);this._pool.hasOwnProperty(t)||(this._pool[t]=[]);var r=this._pool[t];if(!r.length){var i=new Dr(e);return this._allocatedTextures.push(i),i}return r.pop()},put:function(e){var t=Cs(e);this._pool.hasOwnProperty(t)||(this._pool[t]=[]),this._pool[t].push(e)},clear:function(e){for(var t=0;t 0.0) {\n if (texture2D(alphaMap, v_Texcoord).a <= alphaCutoff) {\n discard;\n }\n }\n#ifdef USE_VSM\n depth = depth * 0.5 + 0.5;\n float moment1 = depth;\n float moment2 = depth * depth;\n #ifdef SUPPORT_STANDARD_DERIVATIVES\n float dx = dFdx(depth);\n float dy = dFdy(depth);\n moment2 += 0.25*(dx*dx+dy*dy);\n #endif\n gl_FragColor = vec4(moment1, moment2, 0.0, 1.0);\n#else\n #ifdef SUPPORT_STANDARD_DERIVATIVES\n float dx = dFdx(depth);\n float dy = dFdy(depth);\n depth += sqrt(dx*dx + dy*dy) * slopeScale + bias;\n #else\n depth += bias;\n #endif\n gl_FragColor = encodeFloat(depth * 0.5 + 0.5);\n#endif\n}\n@end\n@export clay.sm.debug_depth\nuniform sampler2D depthMap;\nvarying vec2 v_Texcoord;\n@import clay.util.decode_float\nvoid main() {\n vec4 tex = texture2D(depthMap, v_Texcoord);\n#ifdef USE_VSM\n gl_FragColor = vec4(tex.rgb, 1.0);\n#else\n float depth = decodeFloat(tex);\n gl_FragColor = vec4(depth, depth, depth, 1.0);\n#endif\n}\n@end\n@export clay.sm.distance.vertex\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\nuniform mat4 world : WORLD;\nattribute vec3 position : POSITION;\n@import clay.chunk.skinning_header\nvarying vec3 v_WorldPosition;\nvoid main (){\n vec4 P = vec4(position, 1.0);\n#ifdef SKINNING\n @import clay.chunk.skin_matrix\n P = skinMatrixWS * P;\n#endif\n#ifdef INSTANCING\n @import clay.chunk.instancing_matrix\n P = instanceMat * P;\n#endif\n gl_Position = worldViewProjection * P;\n v_WorldPosition = (world * P).xyz;\n}\n@end\n@export clay.sm.distance.fragment\nuniform vec3 lightPosition;\nuniform float range : 100;\nvarying vec3 v_WorldPosition;\n@import clay.util.encode_float\nvoid main(){\n float dist = distance(lightPosition, v_WorldPosition);\n#ifdef USE_VSM\n gl_FragColor = vec4(dist, dist * dist, 0.0, 0.0);\n#else\n dist = dist / range;\n gl_FragColor = encodeFloat(dist);\n#endif\n}\n@end\n@export clay.plugin.shadow_map_common\n@import clay.util.decode_float\nfloat tapShadowMap(sampler2D map, vec2 uv, float z){\n vec4 tex = texture2D(map, uv);\n return step(z, decodeFloat(tex) * 2.0 - 1.0);\n}\nfloat pcf(sampler2D map, vec2 uv, float z, float textureSize, vec2 scale) {\n float shadowContrib = tapShadowMap(map, uv, z);\n vec2 offset = vec2(1.0 / textureSize) * scale;\n#ifdef PCF_KERNEL_SIZE\n for (int _idx_ = 0; _idx_ < PCF_KERNEL_SIZE; _idx_++) {{\n shadowContrib += tapShadowMap(map, uv + offset * pcfKernel[_idx_], z);\n }}\n return shadowContrib / float(PCF_KERNEL_SIZE + 1);\n#else\n shadowContrib += tapShadowMap(map, uv+vec2(offset.x, 0.0), z);\n shadowContrib += tapShadowMap(map, uv+vec2(offset.x, offset.y), z);\n shadowContrib += tapShadowMap(map, uv+vec2(-offset.x, offset.y), z);\n shadowContrib += tapShadowMap(map, uv+vec2(0.0, offset.y), z);\n shadowContrib += tapShadowMap(map, uv+vec2(-offset.x, 0.0), z);\n shadowContrib += tapShadowMap(map, uv+vec2(-offset.x, -offset.y), z);\n shadowContrib += tapShadowMap(map, uv+vec2(offset.x, -offset.y), z);\n shadowContrib += tapShadowMap(map, uv+vec2(0.0, -offset.y), z);\n return shadowContrib / 9.0;\n#endif\n}\nfloat pcf(sampler2D map, vec2 uv, float z, float textureSize) {\n return pcf(map, uv, z, textureSize, vec2(1.0));\n}\nfloat chebyshevUpperBound(vec2 moments, float z){\n float p = 0.0;\n z = z * 0.5 + 0.5;\n if (z <= moments.x) {\n p = 1.0;\n }\n float variance = moments.y - moments.x * moments.x;\n variance = max(variance, 0.0000001);\n float mD = moments.x - z;\n float pMax = variance / (variance + mD * mD);\n pMax = clamp((pMax-0.4)/(1.0-0.4), 0.0, 1.0);\n return max(p, pMax);\n}\nfloat computeShadowContrib(\n sampler2D map, mat4 lightVPM, vec3 position, float textureSize, vec2 scale, vec2 offset\n) {\n vec4 posInLightSpace = lightVPM * vec4(position, 1.0);\n posInLightSpace.xyz /= posInLightSpace.w;\n float z = posInLightSpace.z;\n if(all(greaterThan(posInLightSpace.xyz, vec3(-0.99, -0.99, -1.0))) &&\n all(lessThan(posInLightSpace.xyz, vec3(0.99, 0.99, 1.0)))){\n vec2 uv = (posInLightSpace.xy+1.0) / 2.0;\n #ifdef USE_VSM\n vec2 moments = texture2D(map, uv * scale + offset).xy;\n return chebyshevUpperBound(moments, z);\n #else\n return pcf(map, uv * scale + offset, z, textureSize, scale);\n #endif\n }\n return 1.0;\n}\nfloat computeShadowContrib(sampler2D map, mat4 lightVPM, vec3 position, float textureSize) {\n return computeShadowContrib(map, lightVPM, position, textureSize, vec2(1.0), vec2(0.0));\n}\nfloat computeShadowContribOmni(samplerCube map, vec3 direction, float range)\n{\n float dist = length(direction);\n vec4 shadowTex = textureCube(map, direction);\n#ifdef USE_VSM\n vec2 moments = shadowTex.xy;\n float variance = moments.y - moments.x * moments.x;\n float mD = moments.x - dist;\n float p = variance / (variance + mD * mD);\n if(moments.x + 0.001 < dist){\n return clamp(p, 0.0, 1.0);\n }else{\n return 1.0;\n }\n#else\n return step(dist, (decodeFloat(shadowTex) + 0.0002) * range);\n#endif\n}\n@end\n@export clay.plugin.compute_shadow_map\n#if defined(SPOT_LIGHT_SHADOWMAP_COUNT) || defined(DIRECTIONAL_LIGHT_SHADOWMAP_COUNT) || defined(POINT_LIGHT_SHADOWMAP_COUNT)\n#ifdef SPOT_LIGHT_SHADOWMAP_COUNT\nuniform sampler2D spotLightShadowMaps[SPOT_LIGHT_SHADOWMAP_COUNT]:unconfigurable;\nuniform mat4 spotLightMatrices[SPOT_LIGHT_SHADOWMAP_COUNT]:unconfigurable;\nuniform float spotLightShadowMapSizes[SPOT_LIGHT_SHADOWMAP_COUNT]:unconfigurable;\n#endif\n#ifdef DIRECTIONAL_LIGHT_SHADOWMAP_COUNT\n#if defined(SHADOW_CASCADE)\nuniform sampler2D directionalLightShadowMaps[1]:unconfigurable;\nuniform mat4 directionalLightMatrices[SHADOW_CASCADE]:unconfigurable;\nuniform float directionalLightShadowMapSizes[1]:unconfigurable;\nuniform float shadowCascadeClipsNear[SHADOW_CASCADE]:unconfigurable;\nuniform float shadowCascadeClipsFar[SHADOW_CASCADE]:unconfigurable;\n#else\nuniform sampler2D directionalLightShadowMaps[DIRECTIONAL_LIGHT_SHADOWMAP_COUNT]:unconfigurable;\nuniform mat4 directionalLightMatrices[DIRECTIONAL_LIGHT_SHADOWMAP_COUNT]:unconfigurable;\nuniform float directionalLightShadowMapSizes[DIRECTIONAL_LIGHT_SHADOWMAP_COUNT]:unconfigurable;\n#endif\n#endif\n#ifdef POINT_LIGHT_SHADOWMAP_COUNT\nuniform samplerCube pointLightShadowMaps[POINT_LIGHT_SHADOWMAP_COUNT]:unconfigurable;\n#endif\nuniform bool shadowEnabled : true;\n#ifdef PCF_KERNEL_SIZE\nuniform vec2 pcfKernel[PCF_KERNEL_SIZE];\n#endif\n@import clay.plugin.shadow_map_common\n#if defined(SPOT_LIGHT_SHADOWMAP_COUNT)\nvoid computeShadowOfSpotLights(vec3 position, inout float shadowContribs[SPOT_LIGHT_COUNT] ) {\n float shadowContrib;\n for(int _idx_ = 0; _idx_ < SPOT_LIGHT_SHADOWMAP_COUNT; _idx_++) {{\n shadowContrib = computeShadowContrib(\n spotLightShadowMaps[_idx_], spotLightMatrices[_idx_], position,\n spotLightShadowMapSizes[_idx_]\n );\n shadowContribs[_idx_] = shadowContrib;\n }}\n for(int _idx_ = SPOT_LIGHT_SHADOWMAP_COUNT; _idx_ < SPOT_LIGHT_COUNT; _idx_++){{\n shadowContribs[_idx_] = 1.0;\n }}\n}\n#endif\n#if defined(DIRECTIONAL_LIGHT_SHADOWMAP_COUNT)\n#ifdef SHADOW_CASCADE\nvoid computeShadowOfDirectionalLights(vec3 position, inout float shadowContribs[DIRECTIONAL_LIGHT_COUNT]){\n float depth = (2.0 * gl_FragCoord.z - gl_DepthRange.near - gl_DepthRange.far)\n / (gl_DepthRange.far - gl_DepthRange.near);\n float shadowContrib;\n shadowContribs[0] = 1.0;\n for (int _idx_ = 0; _idx_ < SHADOW_CASCADE; _idx_++) {{\n if (\n depth >= shadowCascadeClipsNear[_idx_] &&\n depth <= shadowCascadeClipsFar[_idx_]\n ) {\n shadowContrib = computeShadowContrib(\n directionalLightShadowMaps[0], directionalLightMatrices[_idx_], position,\n directionalLightShadowMapSizes[0],\n vec2(1.0 / float(SHADOW_CASCADE), 1.0),\n vec2(float(_idx_) / float(SHADOW_CASCADE), 0.0)\n );\n shadowContribs[0] = shadowContrib;\n }\n }}\n for(int _idx_ = DIRECTIONAL_LIGHT_SHADOWMAP_COUNT; _idx_ < DIRECTIONAL_LIGHT_COUNT; _idx_++) {{\n shadowContribs[_idx_] = 1.0;\n }}\n}\n#else\nvoid computeShadowOfDirectionalLights(vec3 position, inout float shadowContribs[DIRECTIONAL_LIGHT_COUNT]){\n float shadowContrib;\n for(int _idx_ = 0; _idx_ < DIRECTIONAL_LIGHT_SHADOWMAP_COUNT; _idx_++) {{\n shadowContrib = computeShadowContrib(\n directionalLightShadowMaps[_idx_], directionalLightMatrices[_idx_], position,\n directionalLightShadowMapSizes[_idx_]\n );\n shadowContribs[_idx_] = shadowContrib;\n }}\n for(int _idx_ = DIRECTIONAL_LIGHT_SHADOWMAP_COUNT; _idx_ < DIRECTIONAL_LIGHT_COUNT; _idx_++) {{\n shadowContribs[_idx_] = 1.0;\n }}\n}\n#endif\n#endif\n#if defined(POINT_LIGHT_SHADOWMAP_COUNT)\nvoid computeShadowOfPointLights(vec3 position, inout float shadowContribs[POINT_LIGHT_COUNT] ){\n vec3 lightPosition;\n vec3 direction;\n for(int _idx_ = 0; _idx_ < POINT_LIGHT_SHADOWMAP_COUNT; _idx_++) {{\n lightPosition = pointLightPosition[_idx_];\n direction = position - lightPosition;\n shadowContribs[_idx_] = computeShadowContribOmni(pointLightShadowMaps[_idx_], direction, pointLightRange[_idx_]);\n }}\n for(int _idx_ = POINT_LIGHT_SHADOWMAP_COUNT; _idx_ < POINT_LIGHT_COUNT; _idx_++) {{\n shadowContribs[_idx_] = 1.0;\n }}\n}\n#endif\n#endif\n@end");var Ns,Is,Rs,Bs,Fs,zs,Gs,Us=m.extend((function(){return{softShadow:Us.PCF,shadowBlur:1,lightFrustumBias:"auto",kernelPCF:new Float32Array([1,0,1,1,-1,1,0,1,-1,0,-1,-1,1,-1,0,-1]),precision:"highp",_lastRenderNotCastShadow:!1,_frameBuffer:new zi,_textures:{},_shadowMapNumber:{POINT_LIGHT:0,DIRECTIONAL_LIGHT:0,SPOT_LIGHT:0},_depthMaterials:{},_distanceMaterials:{},_receivers:[],_lightsCastShadow:[],_lightCameras:{},_lightMaterials:{},_texturePool:new Ds}}),(function(){this._gaussianPassH=new pn({fragment:Xe.source("clay.compositor.gaussian_blur")}),this._gaussianPassV=new pn({fragment:Xe.source("clay.compositor.gaussian_blur")}),this._gaussianPassH.setUniform("blurSize",this.shadowBlur),this._gaussianPassH.setUniform("blurDir",0),this._gaussianPassV.setUniform("blurSize",this.shadowBlur),this._gaussianPassV.setUniform("blurDir",1),this._outputDepthPass=new pn({fragment:Xe.source("clay.sm.debug_depth")})}),{render:function(e,t,r,i){r||(r=t.getMainCamera()),this.trigger("beforerender",this,e,t,r),this._renderShadowPass(e,t,r,i),this.trigger("afterrender",this,e,t,r)},renderDebug:function(e,t){e.saveClear();var r=e.viewport,i=0,n=t||r.width/4,a=n;for(var o in this.softShadow===Us.VSM?this._outputDepthPass.material.define("fragment","USE_VSM"):this._outputDepthPass.material.undefine("fragment","USE_VSM"),this._textures){var s=this._textures[o];e.setViewport(i,0,n*s.width/s.height,a),this._outputDepthPass.setUniform("depthMap",s),this._outputDepthPass.render(e),i+=n*s.width/s.height}e.setViewport(r),e.restoreClear()},_updateReceivers:function(e,t){if(t.receiveShadow?(this._receivers.push(t),t.material.set("shadowEnabled",1),t.material.set("pcfKernel",this.kernelPCF)):t.material.set("shadowEnabled",0),this.softShadow===Us.VSM)t.material.define("fragment","USE_VSM"),t.material.undefine("fragment","PCF_KERNEL_SIZE");else{t.material.undefine("fragment","USE_VSM");var r=this.kernelPCF;r&&r.length?t.material.define("fragment","PCF_KERNEL_SIZE",r.length/2):t.material.undefine("fragment","PCF_KERNEL_SIZE")}},_update:function(e,t){var r=this;t.traverse((function(t){t.isRenderable()&&r._updateReceivers(e,t)}));for(var i=0;i4){console.warn("Support at most 4 cascade");continue}p.shadowCascade>1&&(o=p),this.renderDirectionalLightShadow(e,t,r,p,c,u,h)}else"SPOT_LIGHT"===p.type?this.renderSpotLightShadow(e,t,p,l,s):"POINT_LIGHT"===p.type&&this.renderPointLightShadow(e,t,p,d);this._shadowMapNumber[p.type]++}for(var m in this._shadowMapNumber){var g=this._shadowMapNumber[m],_=m+"_SHADOWMAP_COUNT";for(f=0;f0?v.define("fragment",_,g):v.isDefined("fragment",_)&&v.undefine("fragment",_))}for(f=0;f0){var x=h.map(S);if(y.directionalLightShadowMaps={value:h,type:"tv"},y.directionalLightMatrices={value:u,type:"m4v"},y.directionalLightShadowMapSizes={value:x,type:"1fv"},o){var b=c.slice(),w=c.slice();b.pop(),w.shift(),b.reverse(),w.reverse(),u.reverse(),y.shadowCascadeClipsNear={value:b,type:"1fv"},y.shadowCascadeClipsFar={value:w,type:"1fv"}}}if(s.length>0){var T=s.map(S);(y=t.shadowUniforms).spotLightShadowMaps={value:s,type:"tv"},y.spotLightMatrices={value:l,type:"m4v"},y.spotLightShadowMapSizes={value:T,type:"1fv"}}d.length>0&&(y.pointLightShadowMaps={value:d,type:"tv"})}function S(e){return e.height}},renderDirectionalLightShadow:(Ns=new si,Is=new Ht,Rs=new ir,Bs=new Ht,Fs=new Ht,zs=new Ht,Gs=new Ht,function(e,t,r,i,n,a,o){var s=this._getDepthMaterial(i),l={getMaterial:function(e){return e.shadowDepthMaterial||s},isMaterialChanged:Os,getUniform:Ps,ifRender:function(e){return e.castShadow},sortCompare:ut.opaqueSortCompare};if(!t.viewBoundingBoxLastFrame.isFinite()){var h=t.getBoundingBox();t.viewBoundingBoxLastFrame.copy(h).applyTransform(r.viewMatrix)}var u=Math.min(-t.viewBoundingBoxLastFrame.min.z,r.far),c=Math.max(-t.viewBoundingBoxLastFrame.max.z,r.near),d=this._getDirectionalLightCamera(i,t,r),f=zs.array;Gs.copy(d.projectionMatrix),Ye.invert(Fs.array,d.worldTransform.array),Ye.multiply(Fs.array,Fs.array,r.worldTransform.array),Ye.multiply(f,Gs.array,Fs.array);for(var p=[],m=r instanceof Ei,g=(r.near+r.far)/(r.near-r.far),_=2*r.near*r.far/(r.near-r.far),v=0;v<=i.shadowCascade;v++){var y=c*Math.pow(u/c,v/i.shadowCascade),x=c+(u-c)*v/i.shadowCascade,b=y*i.cascadeSplitLogFactor+x*(1-i.cascadeSplitLogFactor);p.push(b),n.push(-(-b*g+_)/-b)}var w=this._getTexture(i,i.shadowCascade);o.push(w);var T=e.viewport,S=e.gl;for(this._frameBuffer.attach(w),this._frameBuffer.bind(e),S.clear(S.COLOR_BUFFER_BIT|S.DEPTH_BUFFER_BIT),v=0;vd?s>f?p[n>0?"px":"nx"]=!0:p[o>0?"pz":"nz"]=!0:d>f?p[a>0?"py":"ny"]=!0:p[o>0?"pz":"nz"]=!0}for(r=0;r0&&(this.outputs[e].keepLastFrame?(this._prevOutputTextures[e]&&this._compositor.releaseTexture(this._prevOutputTextures[e]),this._prevOutputTextures[e]=this._outputTextures[e]):this._compositor.releaseTexture(this._outputTextures[e]))}}),Hs=m.extend((function(){return{nodes:[]}}),{dirty:function(){this._dirty=!0},addNode:function(e){this.nodes.indexOf(e)>=0||(this.nodes.push(e),this._dirty=!0)},removeNode:function(e){"string"==typeof e&&(e=this.getNodeByName(e));var t=this.nodes.indexOf(e);t>=0&&(this.nodes.splice(t,1),this._dirty=!0)},getNodeByName:function(e){for(var t=0;t=r.COLOR_ATTACHMENT0&&u<=r.COLOR_ATTACHMENT0+8&&h.push(u);l.drawBuffersEXT(h)}e.saveClear(),e.clearBit=16640,t=e.render(this.scene,this.camera,!this.autoUpdateScene,this.preZ),e.restoreClear(),i.unbind(e)}else t=e.render(this.scene,this.camera,!this.autoUpdateScene,this.preZ);this.trigger("afterrender",t),this._rendering=!1,this._rendered=!0}}),Xs=Vs.extend((function(){return{texture:null,outputs:{color:{}}}}),(function(){}),{getOutput:function(e,t){return this.texture},beforeFrame:function(){},afterFrame:function(){}}),qs=Vs.extend((function(){return{name:"",inputs:{},outputs:null,shader:"",inputLinks:{},outputLinks:{},pass:null,_prevOutputTextures:{},_outputTextures:{},_outputReferences:{},_rendering:!1,_rendered:!1,_compositor:null}}),(function(){var e=new pn({fragment:this.shader});this.pass=e}),{render:function(e,t){this.trigger("beforerender",e),this._rendering=!0;var r=e.gl;for(var i in this.inputLinks){var n=(c=this.inputLinks[i]).node.getOutput(e,c.pin);this.pass.setUniform(i,n)}if(this.outputs){this.pass.outputs={};var a={};for(var o in this.outputs){var s=this.updateParameter(o,e);isNaN(s.width)&&this.updateParameter(o,e);var l=this.outputs[o],h=this._compositor.allocateTexture(s);this._outputTextures[o]=h,"string"==typeof(u=l.attachment||r.COLOR_ATTACHMENT0)&&(u=r[u]),a[u]=h}for(var u in this._compositor.getFrameBuffer().bind(e),a)this._compositor.getFrameBuffer().attach(a[u],u);this.pass.render(e),this._compositor.getFrameBuffer().updateMipmap(e)}else this.pass.outputs=null,this._compositor.getFrameBuffer().unbind(e),this.pass.render(e,t);for(var i in this.inputLinks){var c;(c=this.inputLinks[i]).node.removeReference(c.pin)}this._rendering=!1,this._rendered=!0,this.trigger("afterrender",e)},updateParameter:function(e,t){var r,i,n=this.outputs[e],a=n.parameters,o=n._parametersCopy;if(o||(o=n._parametersCopy={}),a)for(var s in a)"width"!==s&&"height"!==s&&(o[s]=a[s]);return r="function"==typeof a.width?a.width.call(this,t):a.width,i="function"==typeof a.height?a.height.call(this,t):a.height,r=Math.ceil(r),i=Math.ceil(i),o.width===r&&o.height===i||this._outputTextures[e]&&this._outputTextures[e].dispose(t),o.width=r,o.height=i,o},setParameter:function(e,t){this.pass.setUniform(e,t)},getParameter:function(e){return this.pass.getUniform(e)},setParameters:function(e){for(var t in e)this.setParameter(t,e[t])},define:function(e,t){this.pass.material.define("fragment",e,t)},undefine:function(e){this.pass.material.undefine("fragment",e)},removeReference:function(e){this._outputReferences[e]--,0===this._outputReferences[e]&&(this.outputs[e].keepLastFrame?(this._prevOutputTextures[e]&&this._compositor.releaseTexture(this._prevOutputTextures[e]),this._prevOutputTextures[e]=this._outputTextures[e]):this._compositor.releaseTexture(this._outputTextures[e]))},clear:function(){Vs.prototype.clear.call(this),this.pass.material.disableTexturesAll()}}),Zs="@export clay.compositor.kernel.gaussian_9\nfloat gaussianKernel[9];\ngaussianKernel[0] = 0.07;\ngaussianKernel[1] = 0.09;\ngaussianKernel[2] = 0.12;\ngaussianKernel[3] = 0.14;\ngaussianKernel[4] = 0.16;\ngaussianKernel[5] = 0.14;\ngaussianKernel[6] = 0.12;\ngaussianKernel[7] = 0.09;\ngaussianKernel[8] = 0.07;\n@end\n@export clay.compositor.kernel.gaussian_13\nfloat gaussianKernel[13];\ngaussianKernel[0] = 0.02;\ngaussianKernel[1] = 0.03;\ngaussianKernel[2] = 0.06;\ngaussianKernel[3] = 0.08;\ngaussianKernel[4] = 0.11;\ngaussianKernel[5] = 0.13;\ngaussianKernel[6] = 0.14;\ngaussianKernel[7] = 0.13;\ngaussianKernel[8] = 0.11;\ngaussianKernel[9] = 0.08;\ngaussianKernel[10] = 0.06;\ngaussianKernel[11] = 0.03;\ngaussianKernel[12] = 0.02;\n@end\n@export clay.compositor.gaussian_blur\n#define SHADER_NAME gaussian_blur\nuniform sampler2D texture;varying vec2 v_Texcoord;\nuniform float blurSize : 2.0;\nuniform vec2 textureSize : [512.0, 512.0];\nuniform float blurDir : 0.0;\n@import clay.util.rgbm\n@import clay.util.clamp_sample\nvoid main (void)\n{\n @import clay.compositor.kernel.gaussian_9\n vec2 off = blurSize / textureSize;\n off *= vec2(1.0 - blurDir, blurDir);\n vec4 sum = vec4(0.0);\n float weightAll = 0.0;\n for (int i = 0; i < 9; i++) {\n float w = gaussianKernel[i];\n vec4 texel = decodeHDR(clampSample(texture, v_Texcoord + float(i - 4) * off));\n sum += texel * w;\n weightAll += w;\n }\n gl_FragColor = encodeHDR(sum / max(weightAll, 0.01));\n}\n@end\n",Ys="\n@export clay.compositor.lut\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nuniform sampler2D lookup;\nvoid main()\n{\n vec4 tex = texture2D(texture, v_Texcoord);\n float blueColor = tex.b * 63.0;\n vec2 quad1;\n quad1.y = floor(floor(blueColor) / 8.0);\n quad1.x = floor(blueColor) - (quad1.y * 8.0);\n vec2 quad2;\n quad2.y = floor(ceil(blueColor) / 8.0);\n quad2.x = ceil(blueColor) - (quad2.y * 8.0);\n vec2 texPos1;\n texPos1.x = (quad1.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * tex.r);\n texPos1.y = (quad1.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * tex.g);\n vec2 texPos2;\n texPos2.x = (quad2.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * tex.r);\n texPos2.y = (quad2.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * tex.g);\n vec4 newColor1 = texture2D(lookup, texPos1);\n vec4 newColor2 = texture2D(lookup, texPos2);\n vec4 newColor = mix(newColor1, newColor2, fract(blueColor));\n gl_FragColor = vec4(newColor.rgb, tex.w);\n}\n@end",Ks="@export clay.compositor.output\n#define OUTPUT_ALPHA\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\n@import clay.util.rgbm\nvoid main()\n{\n vec4 tex = decodeHDR(texture2D(texture, v_Texcoord));\n gl_FragColor.rgb = tex.rgb;\n#ifdef OUTPUT_ALPHA\n gl_FragColor.a = tex.a;\n#else\n gl_FragColor.a = 1.0;\n#endif\n gl_FragColor = encodeHDR(gl_FragColor);\n#ifdef PREMULTIPLY_ALPHA\n gl_FragColor.rgb *= gl_FragColor.a;\n#endif\n}\n@end",Qs="@export clay.compositor.bright\nuniform sampler2D texture;\nuniform float threshold : 1;\nuniform float scale : 1.0;\nuniform vec2 textureSize: [512, 512];\nvarying vec2 v_Texcoord;\nconst vec3 lumWeight = vec3(0.2125, 0.7154, 0.0721);\n@import clay.util.rgbm\nvec4 median(vec4 a, vec4 b, vec4 c)\n{\n return a + b + c - min(min(a, b), c) - max(max(a, b), c);\n}\nvoid main()\n{\n vec4 texel = decodeHDR(texture2D(texture, v_Texcoord));\n#ifdef ANTI_FLICKER\n vec3 d = 1.0 / textureSize.xyx * vec3(1.0, 1.0, 0.0);\n vec4 s1 = decodeHDR(texture2D(texture, v_Texcoord - d.xz));\n vec4 s2 = decodeHDR(texture2D(texture, v_Texcoord + d.xz));\n vec4 s3 = decodeHDR(texture2D(texture, v_Texcoord - d.zy));\n vec4 s4 = decodeHDR(texture2D(texture, v_Texcoord + d.zy));\n texel = median(median(texel, s1, s2), s3, s4);\n#endif\n float lum = dot(texel.rgb , lumWeight);\n vec4 color;\n if (lum > threshold && texel.a > 0.0)\n {\n color = vec4(texel.rgb * scale, texel.a * scale);\n }\n else\n {\n color = vec4(0.0);\n }\n gl_FragColor = encodeHDR(color);\n}\n@end\n",Js="@export clay.compositor.downsample\nuniform sampler2D texture;\nuniform vec2 textureSize : [512, 512];\nvarying vec2 v_Texcoord;\n@import clay.util.rgbm\nfloat brightness(vec3 c)\n{\n return max(max(c.r, c.g), c.b);\n}\n@import clay.util.clamp_sample\nvoid main()\n{\n vec4 d = vec4(-1.0, -1.0, 1.0, 1.0) / textureSize.xyxy;\n#ifdef ANTI_FLICKER\n vec3 s1 = decodeHDR(clampSample(texture, v_Texcoord + d.xy)).rgb;\n vec3 s2 = decodeHDR(clampSample(texture, v_Texcoord + d.zy)).rgb;\n vec3 s3 = decodeHDR(clampSample(texture, v_Texcoord + d.xw)).rgb;\n vec3 s4 = decodeHDR(clampSample(texture, v_Texcoord + d.zw)).rgb;\n float s1w = 1.0 / (brightness(s1) + 1.0);\n float s2w = 1.0 / (brightness(s2) + 1.0);\n float s3w = 1.0 / (brightness(s3) + 1.0);\n float s4w = 1.0 / (brightness(s4) + 1.0);\n float oneDivideSum = 1.0 / (s1w + s2w + s3w + s4w);\n vec4 color = vec4(\n (s1 * s1w + s2 * s2w + s3 * s3w + s4 * s4w) * oneDivideSum,\n 1.0\n );\n#else\n vec4 color = decodeHDR(clampSample(texture, v_Texcoord + d.xy));\n color += decodeHDR(clampSample(texture, v_Texcoord + d.zy));\n color += decodeHDR(clampSample(texture, v_Texcoord + d.xw));\n color += decodeHDR(clampSample(texture, v_Texcoord + d.zw));\n color *= 0.25;\n#endif\n gl_FragColor = encodeHDR(color);\n}\n@end",$s="\n@export clay.compositor.upsample\n#define HIGH_QUALITY\nuniform sampler2D texture;\nuniform vec2 textureSize : [512, 512];\nuniform float sampleScale: 0.5;\nvarying vec2 v_Texcoord;\n@import clay.util.rgbm\n@import clay.util.clamp_sample\nvoid main()\n{\n#ifdef HIGH_QUALITY\n vec4 d = vec4(1.0, 1.0, -1.0, 0.0) / textureSize.xyxy * sampleScale;\n vec4 s;\n s = decodeHDR(clampSample(texture, v_Texcoord - d.xy));\n s += decodeHDR(clampSample(texture, v_Texcoord - d.wy)) * 2.0;\n s += decodeHDR(clampSample(texture, v_Texcoord - d.zy));\n s += decodeHDR(clampSample(texture, v_Texcoord + d.zw)) * 2.0;\n s += decodeHDR(clampSample(texture, v_Texcoord )) * 4.0;\n s += decodeHDR(clampSample(texture, v_Texcoord + d.xw)) * 2.0;\n s += decodeHDR(clampSample(texture, v_Texcoord + d.zy));\n s += decodeHDR(clampSample(texture, v_Texcoord + d.wy)) * 2.0;\n s += decodeHDR(clampSample(texture, v_Texcoord + d.xy));\n gl_FragColor = encodeHDR(s / 16.0);\n#else\n vec4 d = vec4(-1.0, -1.0, +1.0, +1.0) / textureSize.xyxy;\n vec4 s;\n s = decodeHDR(clampSample(texture, v_Texcoord + d.xy));\n s += decodeHDR(clampSample(texture, v_Texcoord + d.zy));\n s += decodeHDR(clampSample(texture, v_Texcoord + d.xw));\n s += decodeHDR(clampSample(texture, v_Texcoord + d.zw));\n gl_FragColor = encodeHDR(s / 4.0);\n#endif\n}\n@end",el="@export clay.compositor.hdr.composite\n#define TONEMAPPING\nuniform sampler2D texture;\n#ifdef BLOOM_ENABLED\nuniform sampler2D bloom;\n#endif\n#ifdef LENSFLARE_ENABLED\nuniform sampler2D lensflare;\nuniform sampler2D lensdirt;\n#endif\n#ifdef LUM_ENABLED\nuniform sampler2D lum;\n#endif\n#ifdef LUT_ENABLED\nuniform sampler2D lut;\n#endif\n#ifdef COLOR_CORRECTION\nuniform float brightness : 0.0;\nuniform float contrast : 1.0;\nuniform float saturation : 1.0;\n#endif\n#ifdef VIGNETTE\nuniform float vignetteDarkness: 1.0;\nuniform float vignetteOffset: 1.0;\n#endif\nuniform float exposure : 1.0;\nuniform float bloomIntensity : 0.25;\nuniform float lensflareIntensity : 1;\nvarying vec2 v_Texcoord;\n@import clay.util.srgb\nvec3 ACESToneMapping(vec3 color)\n{\n const float A = 2.51;\n const float B = 0.03;\n const float C = 2.43;\n const float D = 0.59;\n const float E = 0.14;\n return (color * (A * color + B)) / (color * (C * color + D) + E);\n}\nfloat eyeAdaption(float fLum)\n{\n return mix(0.2, fLum, 0.5);\n}\n#ifdef LUT_ENABLED\nvec3 lutTransform(vec3 color) {\n float blueColor = color.b * 63.0;\n vec2 quad1;\n quad1.y = floor(floor(blueColor) / 8.0);\n quad1.x = floor(blueColor) - (quad1.y * 8.0);\n vec2 quad2;\n quad2.y = floor(ceil(blueColor) / 8.0);\n quad2.x = ceil(blueColor) - (quad2.y * 8.0);\n vec2 texPos1;\n texPos1.x = (quad1.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * color.r);\n texPos1.y = (quad1.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * color.g);\n vec2 texPos2;\n texPos2.x = (quad2.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * color.r);\n texPos2.y = (quad2.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * color.g);\n vec4 newColor1 = texture2D(lut, texPos1);\n vec4 newColor2 = texture2D(lut, texPos2);\n vec4 newColor = mix(newColor1, newColor2, fract(blueColor));\n return newColor.rgb;\n}\n#endif\n@import clay.util.rgbm\nvoid main()\n{\n vec4 texel = vec4(0.0);\n vec4 originalTexel = vec4(0.0);\n#ifdef TEXTURE_ENABLED\n texel = decodeHDR(texture2D(texture, v_Texcoord));\n originalTexel = texel;\n#endif\n#ifdef BLOOM_ENABLED\n vec4 bloomTexel = decodeHDR(texture2D(bloom, v_Texcoord));\n texel.rgb += bloomTexel.rgb * bloomIntensity;\n texel.a += bloomTexel.a * bloomIntensity;\n#endif\n#ifdef LENSFLARE_ENABLED\n texel += decodeHDR(texture2D(lensflare, v_Texcoord)) * texture2D(lensdirt, v_Texcoord) * lensflareIntensity;\n#endif\n texel.a = min(texel.a, 1.0);\n#ifdef LUM_ENABLED\n float fLum = texture2D(lum, vec2(0.5, 0.5)).r;\n float adaptedLumDest = 3.0 / (max(0.1, 1.0 + 10.0*eyeAdaption(fLum)));\n float exposureBias = adaptedLumDest * exposure;\n#else\n float exposureBias = exposure;\n#endif\n#ifdef TONEMAPPING\n texel.rgb *= exposureBias;\n texel.rgb = ACESToneMapping(texel.rgb);\n#endif\n texel = linearTosRGB(texel);\n#ifdef LUT_ENABLED\n texel.rgb = lutTransform(clamp(texel.rgb,vec3(0.0),vec3(1.0)));\n#endif\n#ifdef COLOR_CORRECTION\n texel.rgb = clamp(texel.rgb + vec3(brightness), 0.0, 1.0);\n texel.rgb = clamp((texel.rgb - vec3(0.5))*contrast+vec3(0.5), 0.0, 1.0);\n float lum = dot(texel.rgb, vec3(0.2125, 0.7154, 0.0721));\n texel.rgb = mix(vec3(lum), texel.rgb, saturation);\n#endif\n#ifdef VIGNETTE\n vec2 uv = (v_Texcoord - vec2(0.5)) * vec2(vignetteOffset);\n texel.rgb = mix(texel.rgb, vec3(1.0 - vignetteDarkness), dot(uv, uv));\n#endif\n gl_FragColor = encodeHDR(texel);\n#ifdef DEBUG\n #if DEBUG == 1\n gl_FragColor = encodeHDR(decodeHDR(texture2D(texture, v_Texcoord)));\n #elif DEBUG == 2\n gl_FragColor = encodeHDR(decodeHDR(texture2D(bloom, v_Texcoord)) * bloomIntensity);\n #elif DEBUG == 3\n gl_FragColor = encodeHDR(decodeHDR(texture2D(lensflare, v_Texcoord) * lensflareIntensity));\n #endif\n#endif\n if (originalTexel.a <= 0.01 && gl_FragColor.a > 1e-5) {\n gl_FragColor.a = dot(gl_FragColor.rgb, vec3(0.2125, 0.7154, 0.0721));\n }\n#ifdef PREMULTIPLY_ALPHA\n gl_FragColor.rgb *= gl_FragColor.a;\n#endif\n}\n@end",tl="@export clay.compositor.blend\n#define SHADER_NAME blend\n#ifdef TEXTURE1_ENABLED\nuniform sampler2D texture1;\nuniform float weight1 : 1.0;\n#endif\n#ifdef TEXTURE2_ENABLED\nuniform sampler2D texture2;\nuniform float weight2 : 1.0;\n#endif\n#ifdef TEXTURE3_ENABLED\nuniform sampler2D texture3;\nuniform float weight3 : 1.0;\n#endif\n#ifdef TEXTURE4_ENABLED\nuniform sampler2D texture4;\nuniform float weight4 : 1.0;\n#endif\n#ifdef TEXTURE5_ENABLED\nuniform sampler2D texture5;\nuniform float weight5 : 1.0;\n#endif\n#ifdef TEXTURE6_ENABLED\nuniform sampler2D texture6;\nuniform float weight6 : 1.0;\n#endif\nvarying vec2 v_Texcoord;\n@import clay.util.rgbm\nvoid main()\n{\n vec4 tex = vec4(0.0);\n#ifdef TEXTURE1_ENABLED\n tex += decodeHDR(texture2D(texture1, v_Texcoord)) * weight1;\n#endif\n#ifdef TEXTURE2_ENABLED\n tex += decodeHDR(texture2D(texture2, v_Texcoord)) * weight2;\n#endif\n#ifdef TEXTURE3_ENABLED\n tex += decodeHDR(texture2D(texture3, v_Texcoord)) * weight3;\n#endif\n#ifdef TEXTURE4_ENABLED\n tex += decodeHDR(texture2D(texture4, v_Texcoord)) * weight4;\n#endif\n#ifdef TEXTURE5_ENABLED\n tex += decodeHDR(texture2D(texture5, v_Texcoord)) * weight5;\n#endif\n#ifdef TEXTURE6_ENABLED\n tex += decodeHDR(texture2D(texture6, v_Texcoord)) * weight6;\n#endif\n gl_FragColor = encodeHDR(tex);\n}\n@end",rl="@export clay.compositor.fxaa\nuniform sampler2D texture;\nuniform vec4 viewport : VIEWPORT;\nvarying vec2 v_Texcoord;\n#define FXAA_REDUCE_MIN (1.0/128.0)\n#define FXAA_REDUCE_MUL (1.0/8.0)\n#define FXAA_SPAN_MAX 8.0\n@import clay.util.rgbm\nvoid main()\n{\n vec2 resolution = 1.0 / viewport.zw;\n vec3 rgbNW = decodeHDR( texture2D( texture, ( gl_FragCoord.xy + vec2( -1.0, -1.0 ) ) * resolution ) ).xyz;\n vec3 rgbNE = decodeHDR( texture2D( texture, ( gl_FragCoord.xy + vec2( 1.0, -1.0 ) ) * resolution ) ).xyz;\n vec3 rgbSW = decodeHDR( texture2D( texture, ( gl_FragCoord.xy + vec2( -1.0, 1.0 ) ) * resolution ) ).xyz;\n vec3 rgbSE = decodeHDR( texture2D( texture, ( gl_FragCoord.xy + vec2( 1.0, 1.0 ) ) * resolution ) ).xyz;\n vec4 rgbaM = decodeHDR( texture2D( texture, gl_FragCoord.xy * resolution ) );\n vec3 rgbM = rgbaM.xyz;\n float opacity = rgbaM.w;\n vec3 luma = vec3( 0.299, 0.587, 0.114 );\n float lumaNW = dot( rgbNW, luma );\n float lumaNE = dot( rgbNE, luma );\n float lumaSW = dot( rgbSW, luma );\n float lumaSE = dot( rgbSE, luma );\n float lumaM = dot( rgbM, luma );\n float lumaMin = min( lumaM, min( min( lumaNW, lumaNE ), min( lumaSW, lumaSE ) ) );\n float lumaMax = max( lumaM, max( max( lumaNW, lumaNE) , max( lumaSW, lumaSE ) ) );\n vec2 dir;\n dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));\n dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));\n float dirReduce = max( ( lumaNW + lumaNE + lumaSW + lumaSE ) * ( 0.25 * FXAA_REDUCE_MUL ), FXAA_REDUCE_MIN );\n float rcpDirMin = 1.0 / ( min( abs( dir.x ), abs( dir.y ) ) + dirReduce );\n dir = min( vec2( FXAA_SPAN_MAX, FXAA_SPAN_MAX),\n max( vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),\n dir * rcpDirMin)) * resolution;\n vec3 rgbA = decodeHDR( texture2D( texture, gl_FragCoord.xy * resolution + dir * ( 1.0 / 3.0 - 0.5 ) ) ).xyz;\n rgbA += decodeHDR( texture2D( texture, gl_FragCoord.xy * resolution + dir * ( 2.0 / 3.0 - 0.5 ) ) ).xyz;\n rgbA *= 0.5;\n vec3 rgbB = decodeHDR( texture2D( texture, gl_FragCoord.xy * resolution + dir * -0.5 ) ).xyz;\n rgbB += decodeHDR( texture2D( texture, gl_FragCoord.xy * resolution + dir * 0.5 ) ).xyz;\n rgbB *= 0.25;\n rgbB += rgbA * 0.5;\n float lumaB = dot( rgbB, luma );\n if ( ( lumaB < lumaMin ) || ( lumaB > lumaMax ) )\n {\n gl_FragColor = vec4( rgbA, opacity );\n }\n else {\n gl_FragColor = vec4( rgbB, opacity );\n }\n}\n@end";!function(e){e.import("@export clay.compositor.coloradjust\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nuniform float brightness : 0.0;\nuniform float contrast : 1.0;\nuniform float exposure : 0.0;\nuniform float gamma : 1.0;\nuniform float saturation : 1.0;\nconst vec3 w = vec3(0.2125, 0.7154, 0.0721);\nvoid main()\n{\n vec4 tex = texture2D( texture, v_Texcoord);\n vec3 color = clamp(tex.rgb + vec3(brightness), 0.0, 1.0);\n color = clamp( (color-vec3(0.5))*contrast+vec3(0.5), 0.0, 1.0);\n color = clamp( color * pow(2.0, exposure), 0.0, 1.0);\n color = clamp( pow(color, vec3(gamma)), 0.0, 1.0);\n float luminance = dot( color, w );\n color = mix(vec3(luminance), color, saturation);\n gl_FragColor = vec4(color, tex.a);\n}\n@end\n@export clay.compositor.brightness\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nuniform float brightness : 0.0;\nvoid main()\n{\n vec4 tex = texture2D( texture, v_Texcoord);\n vec3 color = tex.rgb + vec3(brightness);\n gl_FragColor = vec4(color, tex.a);\n}\n@end\n@export clay.compositor.contrast\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nuniform float contrast : 1.0;\nvoid main()\n{\n vec4 tex = texture2D( texture, v_Texcoord);\n vec3 color = (tex.rgb-vec3(0.5))*contrast+vec3(0.5);\n gl_FragColor = vec4(color, tex.a);\n}\n@end\n@export clay.compositor.exposure\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nuniform float exposure : 0.0;\nvoid main()\n{\n vec4 tex = texture2D(texture, v_Texcoord);\n vec3 color = tex.rgb * pow(2.0, exposure);\n gl_FragColor = vec4(color, tex.a);\n}\n@end\n@export clay.compositor.gamma\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nuniform float gamma : 1.0;\nvoid main()\n{\n vec4 tex = texture2D(texture, v_Texcoord);\n vec3 color = pow(tex.rgb, vec3(gamma));\n gl_FragColor = vec4(color, tex.a);\n}\n@end\n@export clay.compositor.saturation\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nuniform float saturation : 1.0;\nconst vec3 w = vec3(0.2125, 0.7154, 0.0721);\nvoid main()\n{\n vec4 tex = texture2D(texture, v_Texcoord);\n vec3 color = tex.rgb;\n float luminance = dot(color, w);\n color = mix(vec3(luminance), color, saturation);\n gl_FragColor = vec4(color, tex.a);\n}\n@end"),e.import(Zs),e.import("@export clay.compositor.hdr.log_lum\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nconst vec3 w = vec3(0.2125, 0.7154, 0.0721);\n@import clay.util.rgbm\nvoid main()\n{\n vec4 tex = decodeHDR(texture2D(texture, v_Texcoord));\n float luminance = dot(tex.rgb, w);\n luminance = log(luminance + 0.001);\n gl_FragColor = encodeHDR(vec4(vec3(luminance), 1.0));\n}\n@end\n@export clay.compositor.hdr.lum_adaption\nvarying vec2 v_Texcoord;\nuniform sampler2D adaptedLum;\nuniform sampler2D currentLum;\nuniform float frameTime : 0.02;\n@import clay.util.rgbm\nvoid main()\n{\n float fAdaptedLum = decodeHDR(texture2D(adaptedLum, vec2(0.5, 0.5))).r;\n float fCurrentLum = exp(encodeHDR(texture2D(currentLum, vec2(0.5, 0.5))).r);\n fAdaptedLum += (fCurrentLum - fAdaptedLum) * (1.0 - pow(0.98, 30.0 * frameTime));\n gl_FragColor = encodeHDR(vec4(vec3(fAdaptedLum), 1.0));\n}\n@end\n@export clay.compositor.lum\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nconst vec3 w = vec3(0.2125, 0.7154, 0.0721);\nvoid main()\n{\n vec4 tex = texture2D( texture, v_Texcoord );\n float luminance = dot(tex.rgb, w);\n gl_FragColor = vec4(vec3(luminance), 1.0);\n}\n@end"),e.import(Ys),e.import("@export clay.compositor.vignette\n#define OUTPUT_ALPHA\nvarying vec2 v_Texcoord;\nuniform sampler2D texture;\nuniform float darkness: 1;\nuniform float offset: 1;\n@import clay.util.rgbm\nvoid main()\n{\n vec4 texel = decodeHDR(texture2D(texture, v_Texcoord));\n gl_FragColor.rgb = texel.rgb;\n vec2 uv = (v_Texcoord - vec2(0.5)) * vec2(offset);\n gl_FragColor = encodeHDR(vec4(mix(texel.rgb, vec3(1.0 - darkness), dot(uv, uv)), texel.a));\n}\n@end"),e.import(Ks),e.import(Qs),e.import(Js),e.import($s),e.import(el),e.import("@export clay.compositor.lensflare\n#define SAMPLE_NUMBER 8\nuniform sampler2D texture;\nuniform sampler2D lenscolor;\nuniform vec2 textureSize : [512, 512];\nuniform float dispersal : 0.3;\nuniform float haloWidth : 0.4;\nuniform float distortion : 1.0;\nvarying vec2 v_Texcoord;\n@import clay.util.rgbm\nvec4 textureDistorted(\n in vec2 texcoord,\n in vec2 direction,\n in vec3 distortion\n) {\n return vec4(\n decodeHDR(texture2D(texture, texcoord + direction * distortion.r)).r,\n decodeHDR(texture2D(texture, texcoord + direction * distortion.g)).g,\n decodeHDR(texture2D(texture, texcoord + direction * distortion.b)).b,\n 1.0\n );\n}\nvoid main()\n{\n vec2 texcoord = -v_Texcoord + vec2(1.0); vec2 textureOffset = 1.0 / textureSize;\n vec2 ghostVec = (vec2(0.5) - texcoord) * dispersal;\n vec2 haloVec = normalize(ghostVec) * haloWidth;\n vec3 distortion = vec3(-textureOffset.x * distortion, 0.0, textureOffset.x * distortion);\n vec4 result = vec4(0.0);\n for (int i = 0; i < SAMPLE_NUMBER; i++)\n {\n vec2 offset = fract(texcoord + ghostVec * float(i));\n float weight = length(vec2(0.5) - offset) / length(vec2(0.5));\n weight = pow(1.0 - weight, 10.0);\n result += textureDistorted(offset, normalize(ghostVec), distortion) * weight;\n }\n result *= texture2D(lenscolor, vec2(length(vec2(0.5) - texcoord)) / length(vec2(0.5)));\n float weight = length(vec2(0.5) - fract(texcoord + haloVec)) / length(vec2(0.5));\n weight = pow(1.0 - weight, 10.0);\n vec2 offset = fract(texcoord + haloVec);\n result += textureDistorted(offset, normalize(ghostVec), distortion) * weight;\n gl_FragColor = result;\n}\n@end"),e.import(tl),e.import(rl)}(Xe);var il=/^#source\((.*?)\)/;function nl(e,t,r){var i,n,a,o,s=e.type||"filter";if("filter"===s){var l=e.shader.trim(),h=il.exec(l);if(h?i=Xe.source(h[1].trim()):"#"===l.charAt(0)&&(i=t.shaders[l.substr(1)]),i||(i=l),!i)return}if(e.inputs)for(var u in n={},e.inputs)"string"==typeof e.inputs[u]?n[u]=e.inputs[u]:n[u]={node:e.inputs[u].node,pin:e.inputs[u].pin};if(e.outputs)for(var u in a={},e.outputs){var c=e.outputs[u];a[u]={},null!=c.attachment&&(a[u].attachment=c.attachment),null!=c.keepLastFrame&&(a[u].keepLastFrame=c.keepLastFrame),null!=c.outputLastFrame&&(a[u].outputLastFrame=c.outputLastFrame),c.parameters&&(a[u].parameters=sl(c.parameters))}if(o="scene"===s?new js({name:e.name,scene:r.scene,camera:r.camera,outputs:a}):"texture"===s?new Xs({name:e.name,outputs:a}):new qs({name:e.name,shader:i,inputs:n,outputs:a})){if(e.parameters)for(var u in e.parameters)"string"==typeof(d=e.parameters[u])?"#"===(d=d.trim()).charAt(0)?d=t.textures[d.substr(1)]:o.on("beforerender",ll(u,hl(d))):"function"==typeof d&&o.on("beforerender",d),o.setParameter(u,d);if(e.defines&&o.pass)for(var u in e.defines){var d=e.defines[u];o.pass.material.define("fragment",u,d)}}return o}function al(e,t){return e}function ol(e,t){return t}function sl(e){var t={};if(!e)return t;["type","minFilter","magFilter","wrapS","wrapT","flipY","useMipmap"].forEach((function(r){var i=e[r];null!=i&&("string"==typeof i&&(i=wr[i]),t[r]=i)}));var r=e.scale||1;return["width","height"].forEach((function(i){if(null!=e[i]){var n=e[i];"string"==typeof n?(n=n.trim(),t[i]=(a=hl(n),o=(o=r)||1,function(e){var t=e.getDevicePixelRatio(),r=e.getWidth()*o,i=e.getHeight()*o;return a(r,i,t)})):t[i]=n}var a,o})),t.width||(t.width=al),t.height||(t.height=ol),null!=e.useMipmap&&(t.useMipmap=e.useMipmap),t}function ll(e,t){return function(r){var i=r.getDevicePixelRatio(),n=r.getWidth(),a=r.getHeight(),o=t(n,a,i);this.setParameter(e,o)}}function hl(e){var t=/^expr\((.*)\)$/.exec(e);if(t)try{var r=new Function("width","height","dpr","return "+t[1]);return r(1,1),r}catch(e){throw new Error("Invalid expression.")}}const ul=function(e,t){for(var r=0,i=1/t,n=e;n>0;)r+=i*(n%t),n=Math.floor(n/t),i/=t;return r};function cl(e){for(var t=new Uint8Array(e*e*4),r=0,i=new vt,n=0;n 0.99999) {\n gl_FragColor = vec4(1.0);\n return;\n }\n mat3 kernelBasis;\n#endif\n\n float z = depthTexel.r * 2.0 - 1.0;\n\n vec4 projectedPos = vec4(v_Texcoord * 2.0 - 1.0, z, 1.0);\n vec4 p4 = projectionInv * projectedPos;\n\n vec3 position = p4.xyz / p4.w;\n\n float ao = ssaoEstimator(position, kernelBasis);\n ao = clamp(1.0 - (1.0 - ao) * intensity, 0.0, 1.0);\n gl_FragColor = vec4(vec3(ao), 1.0);\n}\n\n@end\n\n\n@export ecgl.ssao.blur\n#define SHADER_NAME SSAO_BLUR\n\nuniform sampler2D ssaoTexture;\n\n#ifdef NORMALTEX_ENABLED\nuniform sampler2D normalTex;\n#endif\n\nvarying vec2 v_Texcoord;\n\nuniform vec2 textureSize;\nuniform float blurSize : 1.0;\n\nuniform int direction: 0.0;\n\n#ifdef DEPTHTEX_ENABLED\nuniform sampler2D depthTex;\nuniform mat4 projection;\nuniform float depthRange : 0.5;\n\nfloat getLinearDepth(vec2 coord)\n{\n float depth = texture2D(depthTex, coord).r * 2.0 - 1.0;\n return projection[3][2] / (depth * projection[2][3] - projection[2][2]);\n}\n#endif\n\nvoid main()\n{\n float kernel[5];\n kernel[0] = 0.122581;\n kernel[1] = 0.233062;\n kernel[2] = 0.288713;\n kernel[3] = 0.233062;\n kernel[4] = 0.122581;\n\n vec2 off = vec2(0.0);\n if (direction == 0) {\n off[0] = blurSize / textureSize.x;\n }\n else {\n off[1] = blurSize / textureSize.y;\n }\n\n vec2 coord = v_Texcoord;\n\n float sum = 0.0;\n float weightAll = 0.0;\n\n#ifdef NORMALTEX_ENABLED\n vec3 centerNormal = texture2D(normalTex, v_Texcoord).rgb * 2.0 - 1.0;\n#endif\n#if defined(DEPTHTEX_ENABLED)\n float centerDepth = getLinearDepth(v_Texcoord);\n#endif\n\n for (int i = 0; i < 5; i++) {\n vec2 coord = clamp(v_Texcoord + vec2(float(i) - 2.0) * off, vec2(0.0), vec2(1.0));\n\n float w = kernel[i];\n#ifdef NORMALTEX_ENABLED\n vec3 normal = texture2D(normalTex, coord).rgb * 2.0 - 1.0;\n w *= clamp(dot(normal, centerNormal), 0.0, 1.0);\n#endif\n#ifdef DEPTHTEX_ENABLED\n float d = getLinearDepth(coord);\n w *= (1.0 - smoothstep(abs(centerDepth - d) / depthRange, 0.0, 1.0));\n#endif\n\n weightAll += w;\n sum += texture2D(ssaoTexture, coord).r * w;\n }\n\n gl_FragColor = vec4(vec3(sum / weightAll), 1.0);\n}\n\n@end\n"),pl.prototype.setDepthTexture=function(e){this._depthTex=e},pl.prototype.setNormalTexture=function(e){this._normalTex=e,this._ssaoPass.material[e?"enableTexture":"disableTexture"]("normalTex"),this.setKernelSize(this._kernelSize)},pl.prototype.update=function(e,t,r){var i=e.getWidth(),n=e.getHeight(),a=this._ssaoPass,o=this._blurPass;a.setUniform("kernel",this._kernels[r%this._kernels.length]),a.setUniform("depthTex",this._depthTex),null!=this._normalTex&&a.setUniform("normalTex",this._normalTex),a.setUniform("depthTexSize",[this._depthTex.width,this._depthTex.height]);var s=new Ht;Ht.transpose(s,t.worldTransform),a.setUniform("projection",t.projectionMatrix.array),a.setUniform("projectionInv",t.invProjectionMatrix.array),a.setUniform("viewInverseTranspose",s.array);var l=this._ssaoTexture,h=this._blurTexture,u=this._blurTexture2;l.width=i/2,l.height=n/2,h.width=i,h.height=n,u.width=i,u.height=n,this._framebuffer.attach(l),this._framebuffer.bind(e),e.gl.clearColor(1,1,1,1),e.gl.clear(e.gl.COLOR_BUFFER_BIT),a.render(e),o.setUniform("textureSize",[i/2,n/2]),o.setUniform("projection",t.projectionMatrix.array),this._framebuffer.attach(h),o.setUniform("direction",0),o.setUniform("ssaoTexture",l),o.render(e),this._framebuffer.attach(u),o.setUniform("textureSize",[i,n]),o.setUniform("direction",1),o.setUniform("ssaoTexture",h),o.render(e),this._framebuffer.unbind(e);var c=e.clearColor;e.gl.clearColor(c[0],c[1],c[2],c[3])},pl.prototype.getTargetTexture=function(){return this._blurTexture2},pl.prototype.setParameter=function(e,t){"noiseTexSize"===e?this.setNoiseSize(t):"kernelSize"===e?this.setKernelSize(t):"intensity"===e?this._ssaoPass.material.set("intensity",t):this._ssaoPass.setUniform(e,t)},pl.prototype.setKernelSize=function(e){this._kernelSize=e,this._ssaoPass.material.define("fragment","KERNEL_SIZE",e),this._kernels=this._kernels||[];for(var t=0;t<30;t++)this._kernels[t]=fl(e,t*e,!!this._normalTex)},pl.prototype.setNoiseSize=function(e){var t=this._ssaoPass.getUniform("noiseTex");t?(t.data=cl(e),t.width=t.height=e,t.dirty()):(t=dl(e),this._ssaoPass.setUniform("noiseTex",dl(e))),this._ssaoPass.setUniform("noiseTexSize",[e,e])},pl.prototype.dispose=function(e){this._blurTexture.dispose(e),this._ssaoTexture.dispose(e),this._blurTexture2.dispose(e)};const ml=pl;function gl(e){e=e||{},this._ssrPass=new pn({fragment:Xe.source("ecgl.ssr.main"),clearColor:[0,0,0,0]}),this._blurPass1=new pn({fragment:Xe.source("ecgl.ssr.blur"),clearColor:[0,0,0,0]}),this._blurPass2=new pn({fragment:Xe.source("ecgl.ssr.blur"),clearColor:[0,0,0,0]}),this._blendPass=new pn({fragment:Xe.source("clay.compositor.blend")}),this._blendPass.material.disableTexturesAll(),this._blendPass.material.enableTexture(["texture1","texture2"]),this._ssrPass.setUniform("gBufferTexture1",e.normalTexture),this._ssrPass.setUniform("gBufferTexture2",e.depthTexture),this._blurPass1.setUniform("gBufferTexture1",e.normalTexture),this._blurPass1.setUniform("gBufferTexture2",e.depthTexture),this._blurPass2.setUniform("gBufferTexture1",e.normalTexture),this._blurPass2.setUniform("gBufferTexture2",e.depthTexture),this._blurPass2.material.define("fragment","VERTICAL"),this._blurPass2.material.define("fragment","BLEND"),this._ssrTexture=new Dr({type:wr.HALF_FLOAT}),this._texture2=new Dr({type:wr.HALF_FLOAT}),this._texture3=new Dr({type:wr.HALF_FLOAT}),this._prevTexture=new Dr({type:wr.HALF_FLOAT}),this._currentTexture=new Dr({type:wr.HALF_FLOAT}),this._frameBuffer=new zi({depthBuffer:!1}),this._normalDistribution=null,this._totalSamples=256,this._samplePerFrame=4,this._ssrPass.material.define("fragment","SAMPLE_PER_FRAME",this._samplePerFrame),this._ssrPass.material.define("fragment","TOTAL_SAMPLES",this._totalSamples),this._downScale=1}Xe.import("@export ecgl.ssr.main\n\n#define SHADER_NAME SSR\n#define MAX_ITERATION 20;\n#define SAMPLE_PER_FRAME 5;\n#define TOTAL_SAMPLES 128;\n\nuniform sampler2D sourceTexture;\nuniform sampler2D gBufferTexture1;\nuniform sampler2D gBufferTexture2;\nuniform sampler2D gBufferTexture3;\nuniform samplerCube specularCubemap;\nuniform float specularIntensity: 1;\n\nuniform mat4 projection;\nuniform mat4 projectionInv;\nuniform mat4 toViewSpace;\nuniform mat4 toWorldSpace;\n\nuniform float maxRayDistance: 200;\n\nuniform float pixelStride: 16;\nuniform float pixelStrideZCutoff: 50; \nuniform float screenEdgeFadeStart: 0.9; \nuniform float eyeFadeStart : 0.2; uniform float eyeFadeEnd: 0.8; \nuniform float minGlossiness: 0.2; uniform float zThicknessThreshold: 1;\n\nuniform float nearZ;\nuniform vec2 viewportSize : VIEWPORT_SIZE;\n\nuniform float jitterOffset: 0;\n\nvarying vec2 v_Texcoord;\n\n#ifdef DEPTH_DECODE\n@import clay.util.decode_float\n#endif\n\n#ifdef PHYSICALLY_CORRECT\nuniform sampler2D normalDistribution;\nuniform float sampleOffset: 0;\nuniform vec2 normalDistributionSize;\n\nvec3 transformNormal(vec3 H, vec3 N) {\n vec3 upVector = N.y > 0.999 ? vec3(1.0, 0.0, 0.0) : vec3(0.0, 1.0, 0.0);\n vec3 tangentX = normalize(cross(N, upVector));\n vec3 tangentZ = cross(N, tangentX);\n return normalize(tangentX * H.x + N * H.y + tangentZ * H.z);\n}\nvec3 importanceSampleNormalGGX(float i, float roughness, vec3 N) {\n float p = fract((i + sampleOffset) / float(TOTAL_SAMPLES));\n vec3 H = texture2D(normalDistribution,vec2(roughness, p)).rgb;\n return transformNormal(H, N);\n}\nfloat G_Smith(float g, float ndv, float ndl) {\n float roughness = 1.0 - g;\n float k = roughness * roughness / 2.0;\n float G1V = ndv / (ndv * (1.0 - k) + k);\n float G1L = ndl / (ndl * (1.0 - k) + k);\n return G1L * G1V;\n}\nvec3 F_Schlick(float ndv, vec3 spec) {\n return spec + (1.0 - spec) * pow(1.0 - ndv, 5.0);\n}\n#endif\n\nfloat fetchDepth(sampler2D depthTexture, vec2 uv)\n{\n vec4 depthTexel = texture2D(depthTexture, uv);\n return depthTexel.r * 2.0 - 1.0;\n}\n\nfloat linearDepth(float depth)\n{\n if (projection[3][3] == 0.0) {\n return projection[3][2] / (depth * projection[2][3] - projection[2][2]);\n }\n else {\n return (depth - projection[3][2]) / projection[2][2];\n }\n}\n\nbool rayIntersectDepth(float rayZNear, float rayZFar, vec2 hitPixel)\n{\n if (rayZFar > rayZNear)\n {\n float t = rayZFar; rayZFar = rayZNear; rayZNear = t;\n }\n float cameraZ = linearDepth(fetchDepth(gBufferTexture2, hitPixel));\n return rayZFar <= cameraZ && rayZNear >= cameraZ - zThicknessThreshold;\n}\n\n\nbool traceScreenSpaceRay(\n vec3 rayOrigin, vec3 rayDir, float jitter,\n out vec2 hitPixel, out vec3 hitPoint, out float iterationCount\n)\n{\n float rayLength = ((rayOrigin.z + rayDir.z * maxRayDistance) > -nearZ)\n ? (-nearZ - rayOrigin.z) / rayDir.z : maxRayDistance;\n\n vec3 rayEnd = rayOrigin + rayDir * rayLength;\n\n vec4 H0 = projection * vec4(rayOrigin, 1.0);\n vec4 H1 = projection * vec4(rayEnd, 1.0);\n\n float k0 = 1.0 / H0.w, k1 = 1.0 / H1.w;\n\n vec3 Q0 = rayOrigin * k0, Q1 = rayEnd * k1;\n\n vec2 P0 = (H0.xy * k0 * 0.5 + 0.5) * viewportSize;\n vec2 P1 = (H1.xy * k1 * 0.5 + 0.5) * viewportSize;\n\n P1 += dot(P1 - P0, P1 - P0) < 0.0001 ? 0.01 : 0.0;\n vec2 delta = P1 - P0;\n\n bool permute = false;\n if (abs(delta.x) < abs(delta.y)) {\n permute = true;\n delta = delta.yx;\n P0 = P0.yx;\n P1 = P1.yx;\n }\n float stepDir = sign(delta.x);\n float invdx = stepDir / delta.x;\n\n vec3 dQ = (Q1 - Q0) * invdx;\n float dk = (k1 - k0) * invdx;\n\n vec2 dP = vec2(stepDir, delta.y * invdx);\n\n float strideScaler = 1.0 - min(1.0, -rayOrigin.z / pixelStrideZCutoff);\n float pixStride = 1.0 + strideScaler * pixelStride;\n\n dP *= pixStride; dQ *= pixStride; dk *= pixStride;\n\n vec4 pqk = vec4(P0, Q0.z, k0);\n vec4 dPQK = vec4(dP, dQ.z, dk);\n\n pqk += dPQK * jitter;\n float rayZFar = (dPQK.z * 0.5 + pqk.z) / (dPQK.w * 0.5 + pqk.w);\n float rayZNear;\n\n bool intersect = false;\n\n vec2 texelSize = 1.0 / viewportSize;\n\n iterationCount = 0.0;\n\n for (int i = 0; i < MAX_ITERATION; i++)\n {\n pqk += dPQK;\n\n rayZNear = rayZFar;\n rayZFar = (dPQK.z * 0.5 + pqk.z) / (dPQK.w * 0.5 + pqk.w);\n\n hitPixel = permute ? pqk.yx : pqk.xy;\n hitPixel *= texelSize;\n\n intersect = rayIntersectDepth(rayZNear, rayZFar, hitPixel);\n\n iterationCount += 1.0;\n\n dPQK *= 1.2;\n\n if (intersect) {\n break;\n }\n }\n\n Q0.xy += dQ.xy * iterationCount;\n Q0.z = pqk.z;\n hitPoint = Q0 / pqk.w;\n\n return intersect;\n}\n\nfloat calculateAlpha(\n float iterationCount, float reflectivity,\n vec2 hitPixel, vec3 hitPoint, float dist, vec3 rayDir\n)\n{\n float alpha = clamp(reflectivity, 0.0, 1.0);\n alpha *= 1.0 - (iterationCount / float(MAX_ITERATION));\n vec2 hitPixelNDC = hitPixel * 2.0 - 1.0;\n float maxDimension = min(1.0, max(abs(hitPixelNDC.x), abs(hitPixelNDC.y)));\n alpha *= 1.0 - max(0.0, maxDimension - screenEdgeFadeStart) / (1.0 - screenEdgeFadeStart);\n\n float _eyeFadeStart = eyeFadeStart;\n float _eyeFadeEnd = eyeFadeEnd;\n if (_eyeFadeStart > _eyeFadeEnd) {\n float tmp = _eyeFadeEnd;\n _eyeFadeEnd = _eyeFadeStart;\n _eyeFadeStart = tmp;\n }\n\n float eyeDir = clamp(rayDir.z, _eyeFadeStart, _eyeFadeEnd);\n alpha *= 1.0 - (eyeDir - _eyeFadeStart) / (_eyeFadeEnd - _eyeFadeStart);\n\n alpha *= 1.0 - clamp(dist / maxRayDistance, 0.0, 1.0);\n\n return alpha;\n}\n\n@import clay.util.rand\n\n@import clay.util.rgbm\n\nvoid main()\n{\n vec4 normalAndGloss = texture2D(gBufferTexture1, v_Texcoord);\n\n if (dot(normalAndGloss.rgb, vec3(1.0)) == 0.0) {\n discard;\n }\n\n float g = normalAndGloss.a;\n#if !defined(PHYSICALLY_CORRECT)\n if (g <= minGlossiness) {\n discard;\n }\n#endif\n\n float reflectivity = (g - minGlossiness) / (1.0 - minGlossiness);\n\n vec3 N = normalize(normalAndGloss.rgb * 2.0 - 1.0);\n N = normalize((toViewSpace * vec4(N, 0.0)).xyz);\n\n vec4 projectedPos = vec4(v_Texcoord * 2.0 - 1.0, fetchDepth(gBufferTexture2, v_Texcoord), 1.0);\n vec4 pos = projectionInv * projectedPos;\n vec3 rayOrigin = pos.xyz / pos.w;\n vec3 V = -normalize(rayOrigin);\n\n float ndv = clamp(dot(N, V), 0.0, 1.0);\n float iterationCount;\n float jitter = rand(fract(v_Texcoord + jitterOffset));\n\n#ifdef PHYSICALLY_CORRECT\n vec4 color = vec4(vec3(0.0), 1.0);\n vec4 albedoMetalness = texture2D(gBufferTexture3, v_Texcoord);\n vec3 albedo = albedoMetalness.rgb;\n float m = albedoMetalness.a;\n vec3 diffuseColor = albedo * (1.0 - m);\n vec3 spec = mix(vec3(0.04), albedo, m);\n\n float jitter2 = rand(fract(v_Texcoord)) * float(TOTAL_SAMPLES);\n\n for (int i = 0; i < SAMPLE_PER_FRAME; i++) {\n vec3 H = importanceSampleNormalGGX(float(i) + jitter2, 1.0 - g, N);\n vec3 rayDir = normalize(reflect(-V, H));\n#else\n vec3 rayDir = normalize(reflect(-V, N));\n#endif\n vec2 hitPixel;\n vec3 hitPoint;\n\n bool intersect = traceScreenSpaceRay(rayOrigin, rayDir, jitter, hitPixel, hitPoint, iterationCount);\n\n float dist = distance(rayOrigin, hitPoint);\n\n vec3 hitNormal = texture2D(gBufferTexture1, hitPixel).rgb * 2.0 - 1.0;\n hitNormal = normalize((toViewSpace * vec4(hitNormal, 0.0)).xyz);\n#ifdef PHYSICALLY_CORRECT\n float ndl = clamp(dot(N, rayDir), 0.0, 1.0);\n float vdh = clamp(dot(V, H), 0.0, 1.0);\n float ndh = clamp(dot(N, H), 0.0, 1.0);\n vec3 litTexel = vec3(0.0);\n if (dot(hitNormal, rayDir) < 0.0 && intersect) {\n litTexel = texture2D(sourceTexture, hitPixel).rgb;\n litTexel *= pow(clamp(1.0 - dist / 200.0, 0.0, 1.0), 3.0);\n\n }\n else {\n #ifdef SPECULARCUBEMAP_ENABLED\n vec3 rayDirW = normalize(toWorldSpace * vec4(rayDir, 0.0)).rgb;\n litTexel = RGBMDecode(textureCubeLodEXT(specularCubemap, rayDirW, 0.0), 8.12).rgb * specularIntensity;\n#endif\n }\n color.rgb += ndl * litTexel * (\n F_Schlick(ndl, spec) * G_Smith(g, ndv, ndl) * vdh / (ndh * ndv + 0.001)\n );\n }\n color.rgb /= float(SAMPLE_PER_FRAME);\n#else\n #if !defined(SPECULARCUBEMAP_ENABLED)\n if (dot(hitNormal, rayDir) >= 0.0) {\n discard;\n }\n if (!intersect) {\n discard;\n }\n#endif\n float alpha = clamp(calculateAlpha(iterationCount, reflectivity, hitPixel, hitPoint, dist, rayDir), 0.0, 1.0);\n vec4 color = texture2D(sourceTexture, hitPixel);\n color.rgb *= alpha;\n\n#ifdef SPECULARCUBEMAP_ENABLED\n vec3 rayDirW = normalize(toWorldSpace * vec4(rayDir, 0.0)).rgb;\n alpha = alpha * (intersect ? 1.0 : 0.0);\n float bias = (1.0 -g) * 5.0;\n color.rgb += (1.0 - alpha)\n * RGBMDecode(textureCubeLodEXT(specularCubemap, rayDirW, bias), 8.12).rgb\n * specularIntensity;\n#endif\n\n#endif\n\n gl_FragColor = encodeHDR(color);\n}\n@end\n\n@export ecgl.ssr.blur\n\nuniform sampler2D texture;\nuniform sampler2D gBufferTexture1;\nuniform sampler2D gBufferTexture2;\nuniform mat4 projection;\nuniform float depthRange : 0.05;\n\nvarying vec2 v_Texcoord;\n\nuniform vec2 textureSize;\nuniform float blurSize : 1.0;\n\n#ifdef BLEND\n #ifdef SSAOTEX_ENABLED\nuniform sampler2D ssaoTex;\n #endif\nuniform sampler2D sourceTexture;\n#endif\n\nfloat getLinearDepth(vec2 coord)\n{\n float depth = texture2D(gBufferTexture2, coord).r * 2.0 - 1.0;\n return projection[3][2] / (depth * projection[2][3] - projection[2][2]);\n}\n\n@import clay.util.rgbm\n\n\nvoid main()\n{\n @import clay.compositor.kernel.gaussian_9\n\n vec4 centerNTexel = texture2D(gBufferTexture1, v_Texcoord);\n float g = centerNTexel.a;\n float maxBlurSize = clamp(1.0 - g, 0.0, 1.0) * blurSize;\n#ifdef VERTICAL\n vec2 off = vec2(0.0, maxBlurSize / textureSize.y);\n#else\n vec2 off = vec2(maxBlurSize / textureSize.x, 0.0);\n#endif\n\n vec2 coord = v_Texcoord;\n\n vec4 sum = vec4(0.0);\n float weightAll = 0.0;\n\n vec3 cN = centerNTexel.rgb * 2.0 - 1.0;\n float cD = getLinearDepth(v_Texcoord);\n for (int i = 0; i < 9; i++) {\n vec2 coord = clamp((float(i) - 4.0) * off + v_Texcoord, vec2(0.0), vec2(1.0));\n float w = gaussianKernel[i]\n * clamp(dot(cN, texture2D(gBufferTexture1, coord).rgb * 2.0 - 1.0), 0.0, 1.0);\n float d = getLinearDepth(coord);\n w *= (1.0 - smoothstep(abs(cD - d) / depthRange, 0.0, 1.0));\n\n weightAll += w;\n sum += decodeHDR(texture2D(texture, coord)) * w;\n }\n\n#ifdef BLEND\n float aoFactor = 1.0;\n #ifdef SSAOTEX_ENABLED\n aoFactor = texture2D(ssaoTex, v_Texcoord).r;\n #endif\n gl_FragColor = encodeHDR(\n sum / weightAll * aoFactor + decodeHDR(texture2D(sourceTexture, v_Texcoord))\n );\n#else\n gl_FragColor = encodeHDR(sum / weightAll);\n#endif\n}\n\n@end"),gl.prototype.setAmbientCubemap=function(e,t){this._ssrPass.material.set("specularCubemap",e),this._ssrPass.material.set("specularIntensity",t);var r=e&&t;this._ssrPass.material[r?"enableTexture":"disableTexture"]("specularCubemap")},gl.prototype.update=function(e,t,r,i){var n=e.getWidth(),a=e.getHeight(),o=this._ssrTexture,s=this._texture2,l=this._texture3;o.width=this._prevTexture.width=this._currentTexture.width=n/this._downScale,o.height=this._prevTexture.height=this._currentTexture.height=a/this._downScale,s.width=l.width=n,s.height=l.height=a;var h=this._frameBuffer,u=this._ssrPass,c=this._blurPass1,d=this._blurPass2,f=this._blendPass,p=new Ht,m=new Ht;Ht.transpose(p,t.worldTransform),Ht.transpose(m,t.viewMatrix),u.setUniform("sourceTexture",r),u.setUniform("projection",t.projectionMatrix.array),u.setUniform("projectionInv",t.invProjectionMatrix.array),u.setUniform("toViewSpace",p.array),u.setUniform("toWorldSpace",m.array),u.setUniform("nearZ",t.near);var g=i/this._totalSamples*this._samplePerFrame;if(u.setUniform("jitterOffset",g),u.setUniform("sampleOffset",i*this._samplePerFrame),c.setUniform("textureSize",[o.width,o.height]),d.setUniform("textureSize",[n,a]),d.setUniform("sourceTexture",r),c.setUniform("projection",t.projectionMatrix.array),d.setUniform("projection",t.projectionMatrix.array),h.attach(o),h.bind(e),u.render(e),this._physicallyCorrect&&(h.attach(this._currentTexture),f.setUniform("texture1",this._prevTexture),f.setUniform("texture2",o),f.material.set({weight1:i>=1?.95:0,weight2:i>=1?.05:1}),f.render(e)),h.attach(s),c.setUniform("texture",this._physicallyCorrect?this._currentTexture:o),c.render(e),h.attach(l),d.setUniform("texture",s),d.render(e),h.unbind(e),this._physicallyCorrect){var _=this._prevTexture;this._prevTexture=this._currentTexture,this._currentTexture=_}},gl.prototype.getTargetTexture=function(){return this._texture3},gl.prototype.setParameter=function(e,t){"maxIteration"===e?this._ssrPass.material.define("fragment","MAX_ITERATION",t):this._ssrPass.setUniform(e,t)},gl.prototype.setPhysicallyCorrect=function(e){e?(this._normalDistribution||(this._normalDistribution=_n.generateNormalDistribution(64,this._totalSamples)),this._ssrPass.material.define("fragment","PHYSICALLY_CORRECT"),this._ssrPass.material.set("normalDistribution",this._normalDistribution),this._ssrPass.material.set("normalDistributionSize",[64,this._totalSamples])):this._ssrPass.material.undefine("fragment","PHYSICALLY_CORRECT"),this._physicallyCorrect=e},gl.prototype.setSSAOTexture=function(e){var t=this._blurPass2;e?(t.material.enableTexture("ssaoTex"),t.material.set("ssaoTex",e)):t.material.disableTexture("ssaoTex")},gl.prototype.isFinished=function(e){return!this._physicallyCorrect||e>this._totalSamples/this._samplePerFrame},gl.prototype.dispose=function(e){this._ssrTexture.dispose(e),this._texture2.dispose(e),this._texture3.dispose(e),this._prevTexture.dispose(e),this._currentTexture.dispose(e),this._frameBuffer.dispose(e)};const _l=gl,vl=[0,0,-.321585265978,-.154972575841,.458126042375,.188473391593,.842080129861,.527766490688,.147304551086,-.659453822776,-.331943915203,-.940619700594,.0479226680259,.54812163202,.701581552186,-.709825561388,-.295436780218,.940589268233,-.901489676764,.237713156085,.973570876096,-.109899459384,-.866792314779,-.451805525005,.330975007087,.800048655954,-.344275183665,.381779221166,-.386139432542,-.437418421534,-.576478634965,-.0148463392551,.385798197415,-.262426961053,-.666302061145,.682427250835,-.628010632582,-.732836215494,.10163141741,-.987658134403,.711995289051,-.320024291314,.0296005138058,.950296523438,.0130612307608,-.351024443122,-.879596633704,-.10478487883,.435712737232,.504254490347,.779203817497,.206477676721,.388264289969,-.896736162545,-.153106280781,-.629203242522,-.245517550697,.657969239148,.126830499058,.26862328493,-.634888119007,-.302301223431,.617074219636,.779817204925];function yl(e,t,r,i,n){var a=e.gl;t.setUniform(a,"1i",r,n),a.activeTexture(a.TEXTURE0+n),i.isRenderable()?i.bind(e):i.unbind(e)}function xl(e,t,r,i,n){var a,o,s,l,h=e.gl;return function(n,u,c){if(!l||l.material!==n.material){var d=n.material,f=n.__program,p=d.get("roughness");null==p&&(p=1);var m=d.get("normalMap")||t,g=d.get("roughnessMap"),_=d.get("bumpMap"),v=d.get("uvRepeat"),y=d.get("uvOffset"),x=d.get("detailUvRepeat"),b=d.get("detailUvOffset"),w=!!_&&d.isTextureEnabled("bumpMap"),T=!!g&&d.isTextureEnabled("roughnessMap"),S=d.isDefined("fragment","DOUBLE_SIDED");_=_||r,g=g||i,c!==u?(u.set("normalMap",m),u.set("bumpMap",_),u.set("roughnessMap",g),u.set("useBumpMap",w),u.set("useRoughnessMap",T),u.set("doubleSide",S),null!=v&&u.set("uvRepeat",v),null!=y&&u.set("uvOffset",y),null!=x&&u.set("detailUvRepeat",x),null!=b&&u.set("detailUvOffset",b),u.set("roughness",p)):(f.setUniform(h,"1f","roughness",p),a!==m&&yl(e,f,"normalMap",m,0),o!==_&&_&&yl(e,f,"bumpMap",_,1),s!==g&&g&&yl(e,f,"roughnessMap",g,2),null!=v&&f.setUniform(h,"2f","uvRepeat",v),null!=y&&f.setUniform(h,"2f","uvOffset",y),null!=x&&f.setUniform(h,"2f","detailUvRepeat",x),null!=b&&f.setUniform(h,"2f","detailUvOffset",b),f.setUniform(h,"1i","useBumpMap",+w),f.setUniform(h,"1i","useRoughnessMap",+T),f.setUniform(h,"1i","doubleSide",+S)),a=m,o=_,s=g,l=n}}}function bl(e){e=e||{},this._depthTex=new Dr({format:wr.DEPTH_COMPONENT,type:wr.UNSIGNED_INT}),this._normalTex=new Dr({type:wr.HALF_FLOAT}),this._framebuffer=new zi,this._framebuffer.attach(this._normalTex),this._framebuffer.attach(this._depthTex,zi.DEPTH_ATTACHMENT),this._normalMaterial=new le({shader:new Xe(Xe.source("ecgl.normal.vertex"),Xe.source("ecgl.normal.fragment"))}),this._normalMaterial.enableTexture(["normalMap","bumpMap","roughnessMap"]),this._defaultNormalMap=an.createBlank("#000"),this._defaultBumpMap=an.createBlank("#000"),this._defaultRoughessMap=an.createBlank("#000"),this._debugPass=new pn({fragment:Xe.source("clay.compositor.output")}),this._debugPass.setUniform("texture",this._normalTex),this._debugPass.material.undefine("fragment","OUTPUT_ALPHA")}Xe.import("@export ecgl.normal.vertex\n\n@import ecgl.common.transformUniforms\n\n@import ecgl.common.uv.header\n\n@import ecgl.common.attributes\n\nvarying vec3 v_Normal;\nvarying vec3 v_WorldPosition;\n\n@import ecgl.common.normalMap.vertexHeader\n\n@import ecgl.common.vertexAnimation.header\n\nvoid main()\n{\n\n @import ecgl.common.vertexAnimation.main\n\n @import ecgl.common.uv.main\n\n v_Normal = normalize((worldInverseTranspose * vec4(normal, 0.0)).xyz);\n v_WorldPosition = (world * vec4(pos, 1.0)).xyz;\n\n @import ecgl.common.normalMap.vertexMain\n\n gl_Position = worldViewProjection * vec4(pos, 1.0);\n\n}\n\n\n@end\n\n\n@export ecgl.normal.fragment\n\n#define ROUGHNESS_CHANEL 0\n\nuniform bool useBumpMap;\nuniform bool useRoughnessMap;\nuniform bool doubleSide;\nuniform float roughness;\n\n@import ecgl.common.uv.fragmentHeader\n\nvarying vec3 v_Normal;\nvarying vec3 v_WorldPosition;\n\nuniform mat4 viewInverse : VIEWINVERSE;\n\n@import ecgl.common.normalMap.fragmentHeader\n@import ecgl.common.bumpMap.header\n\nuniform sampler2D roughnessMap;\n\nvoid main()\n{\n vec3 N = v_Normal;\n \n bool flipNormal = false;\n if (doubleSide) {\n vec3 eyePos = viewInverse[3].xyz;\n vec3 V = normalize(eyePos - v_WorldPosition);\n\n if (dot(N, V) < 0.0) {\n flipNormal = true;\n }\n }\n\n @import ecgl.common.normalMap.fragmentMain\n\n if (useBumpMap) {\n N = bumpNormal(v_WorldPosition, v_Normal, N);\n }\n\n float g = 1.0 - roughness;\n\n if (useRoughnessMap) {\n float g2 = 1.0 - texture2D(roughnessMap, v_DetailTexcoord)[ROUGHNESS_CHANEL];\n g = clamp(g2 + (g - 0.5) * 2.0, 0.0, 1.0);\n }\n\n if (flipNormal) {\n N = -N;\n }\n\n gl_FragColor.rgb = (N.xyz + 1.0) * 0.5;\n gl_FragColor.a = g;\n}\n@end"),bl.prototype.getDepthTexture=function(){return this._depthTex},bl.prototype.getNormalTexture=function(){return this._normalTex},bl.prototype.update=function(e,t,r){var i=e.getWidth(),n=e.getHeight(),a=this._depthTex,o=this._normalTex,s=this._normalMaterial;a.width=i,a.height=n,o.width=i,o.height=n;var l=t.getRenderList(r).opaque;this._framebuffer.bind(e),e.gl.clearColor(0,0,0,0),e.gl.clear(e.gl.COLOR_BUFFER_BIT|e.gl.DEPTH_BUFFER_BIT),e.gl.disable(e.gl.BLEND),e.renderPass(l,r,{getMaterial:function(){return s},ifRender:function(e){return e.renderNormal},beforeRender:xl(e,this._defaultNormalMap,this._defaultBumpMap,this._defaultRoughessMap,this._normalMaterial),sort:e.opaqueSortCompare}),this._framebuffer.unbind(e)},bl.prototype.renderDebug=function(e){this._debugPass.render(e)},bl.prototype.dispose=function(e){this._depthTex.dispose(e),this._normalTex.dispose(e)};const wl=bl;function Tl(e){e=e||{},this._edgePass=new pn({fragment:Xe.source("ecgl.edge")}),this._edgePass.setUniform("normalTexture",e.normalTexture),this._edgePass.setUniform("depthTexture",e.depthTexture),this._targetTexture=new Dr({type:wr.HALF_FLOAT}),this._frameBuffer=new zi,this._frameBuffer.attach(this._targetTexture)}Tl.prototype.update=function(e,t,r,i){var n=e.getWidth(),a=e.getHeight(),o=this._targetTexture;o.width=n,o.height=a;var s=this._frameBuffer;s.bind(e),this._edgePass.setUniform("projectionInv",t.invProjectionMatrix.array),this._edgePass.setUniform("textureSize",[n,a]),this._edgePass.setUniform("texture",r),this._edgePass.render(e),s.unbind(e)},Tl.prototype.getTargetTexture=function(){return this._targetTexture},Tl.prototype.setParameter=function(e,t){this._edgePass.setUniform(e,t)},Tl.prototype.dispose=function(e){this._targetTexture.dispose(e),this._frameBuffer.dispose(e)};const Sl=Tl,Ml={type:"compositor",nodes:[{name:"source",type:"texture",outputs:{color:{}}},{name:"source_half",shader:"#source(clay.compositor.downsample)",inputs:{texture:"source"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 2)",height:"expr(height * 1.0 / 2)",type:"HALF_FLOAT"}}},parameters:{textureSize:"expr( [width * 1.0, height * 1.0] )"}},{name:"bright",shader:"#source(clay.compositor.bright)",inputs:{texture:"source_half"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 2)",height:"expr(height * 1.0 / 2)",type:"HALF_FLOAT"}}},parameters:{threshold:2,scale:4,textureSize:"expr([width * 1.0 / 2, height / 2])"}},{name:"bright_downsample_4",shader:"#source(clay.compositor.downsample)",inputs:{texture:"bright"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 4)",height:"expr(height * 1.0 / 4)",type:"HALF_FLOAT"}}},parameters:{textureSize:"expr( [width * 1.0 / 2, height / 2] )"}},{name:"bright_downsample_8",shader:"#source(clay.compositor.downsample)",inputs:{texture:"bright_downsample_4"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 8)",height:"expr(height * 1.0 / 8)",type:"HALF_FLOAT"}}},parameters:{textureSize:"expr( [width * 1.0 / 4, height / 4] )"}},{name:"bright_downsample_16",shader:"#source(clay.compositor.downsample)",inputs:{texture:"bright_downsample_8"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 16)",height:"expr(height * 1.0 / 16)",type:"HALF_FLOAT"}}},parameters:{textureSize:"expr( [width * 1.0 / 8, height / 8] )"}},{name:"bright_downsample_32",shader:"#source(clay.compositor.downsample)",inputs:{texture:"bright_downsample_16"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 32)",height:"expr(height * 1.0 / 32)",type:"HALF_FLOAT"}}},parameters:{textureSize:"expr( [width * 1.0 / 16, height / 16] )"}},{name:"bright_upsample_16_blur_h",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_downsample_32"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 16)",height:"expr(height * 1.0 / 16)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:0,textureSize:"expr( [width * 1.0 / 32, height / 32] )"}},{name:"bright_upsample_16_blur_v",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_upsample_16_blur_h"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 16)",height:"expr(height * 1.0 / 16)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:1,textureSize:"expr( [width * 1.0 / 16, height * 1.0 / 16] )"}},{name:"bright_upsample_8_blur_h",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_downsample_16"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 8)",height:"expr(height * 1.0 / 8)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:0,textureSize:"expr( [width * 1.0 / 16, height * 1.0 / 16] )"}},{name:"bright_upsample_8_blur_v",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_upsample_8_blur_h"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 8)",height:"expr(height * 1.0 / 8)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:1,textureSize:"expr( [width * 1.0 / 8, height * 1.0 / 8] )"}},{name:"bright_upsample_8_blend",shader:"#source(clay.compositor.blend)",inputs:{texture1:"bright_upsample_8_blur_v",texture2:"bright_upsample_16_blur_v"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 8)",height:"expr(height * 1.0 / 8)",type:"HALF_FLOAT"}}},parameters:{weight1:.3,weight2:.7}},{name:"bright_upsample_4_blur_h",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_downsample_8"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 4)",height:"expr(height * 1.0 / 4)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:0,textureSize:"expr( [width * 1.0 / 8, height * 1.0 / 8] )"}},{name:"bright_upsample_4_blur_v",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_upsample_4_blur_h"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 4)",height:"expr(height * 1.0 / 4)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:1,textureSize:"expr( [width * 1.0 / 4, height * 1.0 / 4] )"}},{name:"bright_upsample_4_blend",shader:"#source(clay.compositor.blend)",inputs:{texture1:"bright_upsample_4_blur_v",texture2:"bright_upsample_8_blend"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 4)",height:"expr(height * 1.0 / 4)",type:"HALF_FLOAT"}}},parameters:{weight1:.3,weight2:.7}},{name:"bright_upsample_2_blur_h",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_downsample_4"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 2)",height:"expr(height * 1.0 / 2)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:0,textureSize:"expr( [width * 1.0 / 4, height * 1.0 / 4] )"}},{name:"bright_upsample_2_blur_v",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_upsample_2_blur_h"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 2)",height:"expr(height * 1.0 / 2)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:1,textureSize:"expr( [width * 1.0 / 2, height * 1.0 / 2] )"}},{name:"bright_upsample_2_blend",shader:"#source(clay.compositor.blend)",inputs:{texture1:"bright_upsample_2_blur_v",texture2:"bright_upsample_4_blend"},outputs:{color:{parameters:{width:"expr(width * 1.0 / 2)",height:"expr(height * 1.0 / 2)",type:"HALF_FLOAT"}}},parameters:{weight1:.3,weight2:.7}},{name:"bright_upsample_full_blur_h",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright"},outputs:{color:{parameters:{width:"expr(width * 1.0)",height:"expr(height * 1.0)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:0,textureSize:"expr( [width * 1.0 / 2, height * 1.0 / 2] )"}},{name:"bright_upsample_full_blur_v",shader:"#source(clay.compositor.gaussian_blur)",inputs:{texture:"bright_upsample_full_blur_h"},outputs:{color:{parameters:{width:"expr(width * 1.0)",height:"expr(height * 1.0)",type:"HALF_FLOAT"}}},parameters:{blurSize:1,blurDir:1,textureSize:"expr( [width * 1.0, height * 1.0] )"}},{name:"bloom_composite",shader:"#source(clay.compositor.blend)",inputs:{texture1:"bright_upsample_full_blur_v",texture2:"bright_upsample_2_blend"},outputs:{color:{parameters:{width:"expr(width * 1.0)",height:"expr(height * 1.0)",type:"HALF_FLOAT"}}},parameters:{weight1:.3,weight2:.7}},{name:"coc",shader:"#source(ecgl.dof.coc)",outputs:{color:{parameters:{minFilter:"NEAREST",magFilter:"NEAREST",width:"expr(width * 1.0)",height:"expr(height * 1.0)"}}},parameters:{focalDist:50,focalRange:30}},{name:"dof_far_blur",shader:"#source(ecgl.dof.diskBlur)",inputs:{texture:"source",coc:"coc"},outputs:{color:{parameters:{width:"expr(width * 1.0)",height:"expr(height * 1.0)",type:"HALF_FLOAT"}}},parameters:{textureSize:"expr( [width * 1.0, height * 1.0] )"}},{name:"dof_near_blur",shader:"#source(ecgl.dof.diskBlur)",inputs:{texture:"source",coc:"coc"},outputs:{color:{parameters:{width:"expr(width * 1.0)",height:"expr(height * 1.0)",type:"HALF_FLOAT"}}},parameters:{textureSize:"expr( [width * 1.0, height * 1.0] )"},defines:{BLUR_NEARFIELD:null}},{name:"dof_coc_blur",shader:"#source(ecgl.dof.diskBlur)",inputs:{texture:"coc"},outputs:{color:{parameters:{minFilter:"NEAREST",magFilter:"NEAREST",width:"expr(width * 1.0)",height:"expr(height * 1.0)"}}},parameters:{textureSize:"expr( [width * 1.0, height * 1.0] )"},defines:{BLUR_COC:null}},{name:"dof_composite",shader:"#source(ecgl.dof.composite)",inputs:{original:"source",blurred:"dof_far_blur",nearfield:"dof_near_blur",coc:"coc",nearcoc:"dof_coc_blur"},outputs:{color:{parameters:{width:"expr(width * 1.0)",height:"expr(height * 1.0)",type:"HALF_FLOAT"}}}},{name:"composite",shader:"#source(clay.compositor.hdr.composite)",inputs:{texture:"source",bloom:"bloom_composite"},outputs:{color:{parameters:{width:"expr(width * 1.0)",height:"expr(height * 1.0)"}}},defines:{}},{name:"FXAA",shader:"#source(clay.compositor.fxaa)",inputs:{texture:"composite"}}]};function Al(e,t){return{color:{parameters:{width:e,height:t}}}}Xe.import(Zs),Xe.import(Ys),Xe.import(Ks),Xe.import(Qs),Xe.import(Js),Xe.import($s),Xe.import(el),Xe.import(tl),Xe.import(rl),Xe.import("@export ecgl.dof.coc\n\nuniform sampler2D depth;\n\nuniform float zNear: 0.1;\nuniform float zFar: 2000;\n\nuniform float focalDistance: 3;\nuniform float focalRange: 1;\nuniform float focalLength: 30;\nuniform float fstop: 2.8;\n\nvarying vec2 v_Texcoord;\n\n@import clay.util.encode_float\n\nvoid main()\n{\n float z = texture2D(depth, v_Texcoord).r * 2.0 - 1.0;\n\n float dist = 2.0 * zNear * zFar / (zFar + zNear - z * (zFar - zNear));\n\n float aperture = focalLength / fstop;\n\n float coc;\n\n float uppper = focalDistance + focalRange;\n float lower = focalDistance - focalRange;\n if (dist <= uppper && dist >= lower) {\n coc = 0.5;\n }\n else {\n float focalAdjusted = dist > uppper ? uppper : lower;\n\n coc = abs(aperture * (focalLength * (dist - focalAdjusted)) / (dist * (focalAdjusted - focalLength)));\n coc = clamp(coc, 0.0, 2.0) / 2.00001;\n\n if (dist < lower) {\n coc = -coc;\n }\n coc = coc * 0.5 + 0.5;\n }\n\n gl_FragColor = encodeFloat(coc);\n}\n@end\n\n\n@export ecgl.dof.composite\n\n#define DEBUG 0\n\nuniform sampler2D original;\nuniform sampler2D blurred;\nuniform sampler2D nearfield;\nuniform sampler2D coc;\nuniform sampler2D nearcoc;\nvarying vec2 v_Texcoord;\n\n@import clay.util.rgbm\n@import clay.util.float\n\nvoid main()\n{\n vec4 blurredColor = texture2D(blurred, v_Texcoord);\n vec4 originalColor = texture2D(original, v_Texcoord);\n\n float fCoc = decodeFloat(texture2D(coc, v_Texcoord));\n\n fCoc = abs(fCoc * 2.0 - 1.0);\n\n float weight = smoothstep(0.0, 1.0, fCoc);\n \n#ifdef NEARFIELD_ENABLED\n vec4 nearfieldColor = texture2D(nearfield, v_Texcoord);\n float fNearCoc = decodeFloat(texture2D(nearcoc, v_Texcoord));\n fNearCoc = abs(fNearCoc * 2.0 - 1.0);\n\n gl_FragColor = encodeHDR(\n mix(\n nearfieldColor, mix(originalColor, blurredColor, weight),\n pow(1.0 - fNearCoc, 4.0)\n )\n );\n#else\n gl_FragColor = encodeHDR(mix(originalColor, blurredColor, weight));\n#endif\n\n}\n\n@end\n\n\n\n@export ecgl.dof.diskBlur\n\n#define POISSON_KERNEL_SIZE 16;\n\nuniform sampler2D texture;\nuniform sampler2D coc;\nvarying vec2 v_Texcoord;\n\nuniform float blurRadius : 10.0;\nuniform vec2 textureSize : [512.0, 512.0];\n\nuniform vec2 poissonKernel[POISSON_KERNEL_SIZE];\n\nuniform float percent;\n\nfloat nrand(const in vec2 n) {\n return fract(sin(dot(n.xy ,vec2(12.9898,78.233))) * 43758.5453);\n}\n\n@import clay.util.rgbm\n@import clay.util.float\n\n\nvoid main()\n{\n vec2 offset = blurRadius / textureSize;\n\n float rnd = 6.28318 * nrand(v_Texcoord + 0.07 * percent );\n float cosa = cos(rnd);\n float sina = sin(rnd);\n vec4 basis = vec4(cosa, -sina, sina, cosa);\n\n#if !defined(BLUR_NEARFIELD) && !defined(BLUR_COC)\n offset *= abs(decodeFloat(texture2D(coc, v_Texcoord)) * 2.0 - 1.0);\n#endif\n\n#ifdef BLUR_COC\n float cocSum = 0.0;\n#else\n vec4 color = vec4(0.0);\n#endif\n\n\n float weightSum = 0.0;\n\n for (int i = 0; i < POISSON_KERNEL_SIZE; i++) {\n vec2 ofs = poissonKernel[i];\n\n ofs = vec2(dot(ofs, basis.xy), dot(ofs, basis.zw));\n\n vec2 uv = v_Texcoord + ofs * offset;\n vec4 texel = texture2D(texture, uv);\n\n float w = 1.0;\n#ifdef BLUR_COC\n float fCoc = decodeFloat(texel) * 2.0 - 1.0;\n cocSum += clamp(fCoc, -1.0, 0.0) * w;\n#else\n texel = texel;\n #if !defined(BLUR_NEARFIELD)\n float fCoc = decodeFloat(texture2D(coc, uv)) * 2.0 - 1.0;\n w *= abs(fCoc);\n #endif\n texel.rgb *= texel.a;\n color += texel * w;\n#endif\n\n weightSum += w;\n }\n\n#ifdef BLUR_COC\n gl_FragColor = encodeFloat(clamp(cocSum / weightSum, -1.0, 0.0) * 0.5 + 0.5);\n#else\n color /= weightSum;\n color.rgb /= (color.a + 0.0001);\n gl_FragColor = color;\n#endif\n}\n\n@end"),Xe.import("@export ecgl.edge\n\nuniform sampler2D texture;\n\nuniform sampler2D normalTexture;\nuniform sampler2D depthTexture;\n\nuniform mat4 projectionInv;\n\nuniform vec2 textureSize;\n\nuniform vec4 edgeColor: [0,0,0,0.8];\n\nvarying vec2 v_Texcoord;\n\nvec3 packColor(vec2 coord) {\n float z = texture2D(depthTexture, coord).r * 2.0 - 1.0;\n vec4 p = vec4(v_Texcoord * 2.0 - 1.0, z, 1.0);\n vec4 p4 = projectionInv * p;\n\n return vec3(\n texture2D(normalTexture, coord).rg,\n -p4.z / p4.w / 5.0\n );\n}\n\nvoid main() {\n vec2 cc = v_Texcoord;\n vec3 center = packColor(cc);\n\n float size = clamp(1.0 - (center.z - 10.0) / 100.0, 0.0, 1.0) * 0.5;\n float dx = size / textureSize.x;\n float dy = size / textureSize.y;\n\n vec2 coord;\n vec3 topLeft = packColor(cc+vec2(-dx, -dy));\n vec3 top = packColor(cc+vec2(0.0, -dy));\n vec3 topRight = packColor(cc+vec2(dx, -dy));\n vec3 left = packColor(cc+vec2(-dx, 0.0));\n vec3 right = packColor(cc+vec2(dx, 0.0));\n vec3 bottomLeft = packColor(cc+vec2(-dx, dy));\n vec3 bottom = packColor(cc+vec2(0.0, dy));\n vec3 bottomRight = packColor(cc+vec2(dx, dy));\n\n vec3 v = -topLeft-2.0*top-topRight+bottomLeft+2.0*bottom+bottomRight;\n vec3 h = -bottomLeft-2.0*left-topLeft+bottomRight+2.0*right+topRight;\n\n float edge = sqrt(dot(h, h) + dot(v, v));\n\n edge = smoothstep(0.8, 1.0, edge);\n\n gl_FragColor = mix(texture2D(texture, v_Texcoord), vec4(edgeColor.rgb, 1.0), edgeColor.a * edge);\n}\n@end");var El=["composite","FXAA"];function Cl(){this._width,this._height,this._dpr,this._sourceTexture=new Dr({type:wr.HALF_FLOAT}),this._depthTexture=new Dr({format:wr.DEPTH_COMPONENT,type:wr.UNSIGNED_INT}),this._framebuffer=new zi,this._framebuffer.attach(this._sourceTexture),this._framebuffer.attach(this._depthTexture,zi.DEPTH_ATTACHMENT),this._normalPass=new wl,this._compositor=function(e,t){var r=new Ws;t=t||{};var i={textures:{},parameters:{}};for(var n in e.parameters){var a=e.parameters[n];i.parameters[n]=sl(a)}return function(e,t,r,i){if(e.textures){var n={},a=0,o=!1,s=r.textureRootPath;f.each(e.textures,(function(e,t){var r,l=e.path,h=sl(e.parameters);if(Array.isArray(l)&&6===l.length)s&&(l=l.map((function(e){return f.relative2absolute(e,s)}))),r=new Ai(h);else{if("string"!=typeof l)return;s&&(l=f.relative2absolute(l,s)),r=new Dr(h)}r.load(l),a++,r.once("success",(function(){n[t]=r,0==--a&&(i(n),o=!0)}))})),0!==a||o||i(n)}else i({})}(e,0,t,(function(n){i.textures=n,function(n,a){for(var o=0;o=this._haltonSequence.length},render:function(e,t,r){var i=this._blendPass;0===this._frame?(i.setUniform("weight1",0),i.setUniform("weight2",1)):(i.setUniform("weight1",.9),i.setUniform("weight2",.1)),i.setUniform("texture1",this._prevFrameTex),i.setUniform("texture2",t||this._sourceTex),this._blendFb.attach(this._outputTex),this._blendFb.bind(e),i.render(e),this._blendFb.unbind(e),r||(this._outputPass.setUniform("texture",this._outputTex),this._outputPass.render(e));var n=this._prevFrameTex;this._prevFrameTex=this._outputTex,this._outputTex=n,this._frame++},dispose:function(e){this._sourceFb.dispose(e),this._blendFb.dispose(e),this._prevFrameTex.dispose(e),this._outputTex.dispose(e),this._sourceTex.dispose(e),this._outputPass.dispose(e),this._blendPass.dispose(e)}};const Pl=Ll;function Ol(e){e=e||"perspective",this.layer=null,this.scene=new vi,this.rootNode=this.scene,this.viewport={x:0,y:0,width:0,height:0},this.setProjection(e),this._compositor=new Dl,this._temporalSS=new Pl,this._shadowMapPass=new ks;for(var t=[],r=0,i=0;i<30;i++){for(var n=[],a=0;a<6;a++)n.push(4*ul(r,2)-2),n.push(4*ul(r,3)-2),r++;t.push(n)}this._pcfKernels=t,this.scene.on("beforerender",(function(e,t,r){this.needsTemporalSS()&&this._temporalSS.jitterProjection(e,r)}),this)}Ol.prototype.setProjection=function(e){var t=this.camera;t&&t.update(),"perspective"===e?this.camera instanceof Ei||(this.camera=new Ei,t&&this.camera.setLocalTransform(t.localTransform)):this.camera instanceof un||(this.camera=new un,t&&this.camera.setLocalTransform(t.localTransform)),this.camera.near=.1,this.camera.far=2e3},Ol.prototype.setViewport=function(e,t,r,i,n){this.camera instanceof Ei&&(this.camera.aspect=r/i),n=n||1,this.viewport.x=e,this.viewport.y=t,this.viewport.width=r,this.viewport.height=i,this.viewport.devicePixelRatio=n,this._compositor.resize(r*n,i*n),this._temporalSS.resize(r*n,i*n)},Ol.prototype.containPoint=function(e,t){var r=this.viewport;return t=this.layer.renderer.getHeight()-t,e>=r.x&&t>=r.y&&e<=r.x+r.width&&t<=r.y+r.height};var Nl=new _e;Ol.prototype.castRay=function(e,t,r){var i=this.layer.renderer,n=i.viewport;return i.viewport=this.viewport,i.screenToNDC(e,t,Nl),this.camera.castRay(Nl,r),i.viewport=n,r},Ol.prototype.prepareRender=function(){this.scene.update(),this.camera.update(),this.scene.updateLights();var e=this.scene.updateRenderList(this.camera);this._needsSortProgressively=!1;for(var t=0;t30},Ol.prototype._doRender=function(e,t,r){var i=this.scene,n=this.camera;r=r||0,this._updateTransparent(e,i,n,r),t||(this._shadowMapPass.kernelPCF=this._pcfKernels[0],this._shadowMapPass.render(e,i,n,!0)),this._updateShadowPCFKernel(r);var a,o=e.clearColor;e.gl.clearColor(o[0],o[1],o[2],o[3]),this._enablePostEffect&&(this.needsTemporalSS()&&this._temporalSS.jitterProjection(e,n),this._compositor.updateNormal(e,i,n,this._temporalSS.getFrame())),this._updateSSAO(e,i,n,this._temporalSS.getFrame()),this._enablePostEffect?((a=this._compositor.getSourceFrameBuffer()).bind(e),e.gl.clear(e.gl.DEPTH_BUFFER_BIT|e.gl.COLOR_BUFFER_BIT),e.render(i,n,!0,!0),a.unbind(e),this.needsTemporalSS()&&t?(this._compositor.composite(e,i,n,this._temporalSS.getSourceFrameBuffer(),this._temporalSS.getFrame()),e.setViewport(this.viewport),this._temporalSS.render(e)):(e.setViewport(this.viewport),this._compositor.composite(e,i,n,null,0))):this.needsTemporalSS()&&t?((a=this._temporalSS.getSourceFrameBuffer()).bind(e),e.saveClear(),e.clearBit=e.gl.DEPTH_BUFFER_BIT|e.gl.COLOR_BUFFER_BIT,e.render(i,n,!0,!0),e.restoreClear(),a.unbind(e),e.setViewport(this.viewport),this._temporalSS.render(e)):(e.setViewport(this.viewport),e.render(i,n,!0,!0))},Ol.prototype._updateTransparent=function(e,t,r,i){for(var n=new vt,a=new Ht,o=r.getWorldPosition(),s=t.getRenderList(r).transparent,l=0;lthis.camera.far||e80*r){i=a=e[0],n=o=e[1];for(var p=r;pa&&(a=s),l>o&&(o=l);h=Math.max(a-i,o-n)}return nh(d,f,r,i,n,h),f}function rh(e,t,r,i,n){var a,o;if(n===Th(e,t,r,i)>0)for(a=t;a=t;a-=i)o=xh(a,e[a],e[a+1],o);return o&&gh(o,o.next)&&(bh(o),o=o.next),o}function ih(e,t){if(!e)return e;t||(t=e);var r,i=e;do{if(r=!1,i.steiner||!gh(i,i.next)&&0!==mh(i.prev,i,i.next))i=i.next;else{if(bh(i),(i=t=i.prev)===i.next)return null;r=!0}}while(r||i!==t);return t}function nh(e,t,r,i,n,a,o){if(e){!o&&a&&function(e,t,r,i){var n=e;do{null===n.z&&(n.z=ch(n.x,n.y,t,r,i)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next}while(n!==e);n.prevZ.nextZ=null,n.prevZ=null,function(e){var t,r,i,n,a,o,s,l,h=1;do{for(r=e,e=null,a=null,o=0;r;){for(o++,i=r,s=0,t=0;t0||l>0&&i;)0!==s&&(0===l||!i||r.z<=i.z)?(n=r,r=r.nextZ,s--):(n=i,i=i.nextZ,l--),a?a.nextZ=n:e=n,n.prevZ=a,a=n;r=i}a.nextZ=null,h*=2}while(o>1)}(n)}(e,i,n,a);for(var s,l,h=e;e.prev!==e.next;)if(s=e.prev,l=e.next,a?oh(e,i,n,a):ah(e))t.push(s.i/r),t.push(e.i/r),t.push(l.i/r),bh(e),e=l.next,h=l.next;else if((e=l)===h){o?1===o?nh(e=sh(e,t,r),t,r,i,n,a,2):2===o&&lh(e,t,r,i,n,a):nh(ih(e),t,r,i,n,a,1);break}}}function ah(e){var t=e.prev,r=e,i=e.next;if(mh(t,r,i)>=0)return!1;for(var n=e.next.next;n!==e.prev;){if(fh(t.x,t.y,r.x,r.y,i.x,i.y,n.x,n.y)&&mh(n.prev,n,n.next)>=0)return!1;n=n.next}return!0}function oh(e,t,r,i){var n=e.prev,a=e,o=e.next;if(mh(n,a,o)>=0)return!1;for(var s=n.xa.x?n.x>o.x?n.x:o.x:a.x>o.x?a.x:o.x,u=n.y>a.y?n.y>o.y?n.y:o.y:a.y>o.y?a.y:o.y,c=ch(s,l,t,r,i),d=ch(h,u,t,r,i),f=e.nextZ;f&&f.z<=d;){if(f!==e.prev&&f!==e.next&&fh(n.x,n.y,a.x,a.y,o.x,o.y,f.x,f.y)&&mh(f.prev,f,f.next)>=0)return!1;f=f.nextZ}for(f=e.prevZ;f&&f.z>=c;){if(f!==e.prev&&f!==e.next&&fh(n.x,n.y,a.x,a.y,o.x,o.y,f.x,f.y)&&mh(f.prev,f,f.next)>=0)return!1;f=f.prevZ}return!0}function sh(e,t,r){var i=e;do{var n=i.prev,a=i.next.next;!gh(n,a)&&_h(n,i,i.next,a)&&vh(n,a)&&vh(a,n)&&(t.push(n.i/r),t.push(i.i/r),t.push(a.i/r),bh(i),bh(i.next),i=e=a),i=i.next}while(i!==e);return i}function lh(e,t,r,i,n,a){var o=e;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&ph(o,s)){var l=yh(o,s);return o=ih(o,o.next),l=ih(l,l.next),nh(o,t,r,i,n,a),void nh(l,t,r,i,n,a)}s=s.next}o=o.next}while(o!==e)}function hh(e,t){return e.x-t.x}function uh(e,t){if(t=function(e,t){var r,i=t,n=e.x,a=e.y,o=-1/0;do{if(a<=i.y&&a>=i.next.y&&i.next.y!==i.y){var s=i.x+(a-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(s<=n&&s>o){if(o=s,s===n){if(a===i.y)return i;if(a===i.next.y)return i.next}r=i.x=i.x&&i.x>=u&&n!==i.x&&fh(ar.x)&&vh(i,e)&&(r=i,d=l),i=i.next;return r}(e,t)){var r=yh(t,e);ih(r,r.next)}}function ch(e,t,r,i,n){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-r)/n)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-i)/n)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function dh(e){var t=e,r=e;do{t.x=0&&(e-o)*(i-s)-(r-o)*(t-s)>=0&&(r-o)*(a-s)-(n-o)*(i-s)>=0}function ph(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&_h(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}(e,t)&&vh(e,t)&&vh(t,e)&&function(e,t){var r=e,i=!1,n=(e.x+t.x)/2,a=(e.y+t.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&n<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(i=!i),r=r.next}while(r!==e);return i}(e,t)}function mh(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function gh(e,t){return e.x===t.x&&e.y===t.y}function _h(e,t,r,i){return!!(gh(e,t)&&gh(r,i)||gh(e,i)&&gh(r,t))||mh(e,t,r)>0!=mh(e,t,i)>0&&mh(r,i,e)>0!=mh(r,i,t)>0}function vh(e,t){return mh(e.prev,e,e.next)<0?mh(e,t,e.next)>=0&&mh(e,e.prev,t)>=0:mh(e,t,e.prev)<0||mh(e,e.next,t)<0}function yh(e,t){var r=new wh(e.i,e.x,e.y),i=new wh(t.i,t.x,t.y),n=e.next,a=t.prev;return e.next=t,t.prev=e,r.next=n,n.prev=r,i.next=r,r.prev=i,a.next=i,i.prev=a,i}function xh(e,t,r,i){var n=new wh(e,t,r);return i?(n.next=i.next,n.prev=i,i.next.prev=n,i.next=n):(n.prev=n,n.next=n),n}function bh(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function wh(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Th(e,t,r,i){for(var n=0,a=t,o=r-i;ah&&s.push({pivot:Math.floor((l+h)/2),left:h,right:l}),h=a[o].pivot+1,(l=a[o].right)>h&&s.push({pivot:Math.floor((l+h)/2),left:h,right:l})}a=this._parts=s}else for(o=0;o=2e4},doSortTriangles:function(e,t){var r=this.indices;if(0===t){var i=this.attributes.position;e=e.array,this._triangleZList&&this._triangleZList.length===this.triangleCount||(this._triangleZList=new Float32Array(this.triangleCount),this._sortedTriangleIndices=new Uint32Array(this.triangleCount),this._indicesTmp=new r.constructor(r.length),this._triangleZListTmp=new Float32Array(this.triangleCount));for(var n,a=0,o=0;o0,r={},n=0;n65535?new Uint32Array(3*o):new Uint16Array(3*o),d.material.shader!==t&&d.material.attachShader(t,!0),Ka.setMaterialFromModel(t.__shading,d.material,e,r),s>0&&(this._linesMesh.geometry.resetOffset(),this._linesMesh.geometry.setVertexCount(s),this._linesMesh.geometry.setTriangleCount(l)),this._dataIndexOfVertex=new Uint32Array(a),this._vertexRangeOfDataIndex=new Uint32Array(2*(n-i))},_updateRegionMesh:function(e,t,r,i){for(var n=e.getData(),a=0,o=0,s=!1,l=this._polygonMesh,h=this._linesMesh,u=r;u0;w&&(b*=t.getDevicePixelRatio(),this._updateLinesGeometry(h.geometry,e,u,v,b,e.coordinateSystem.transform)),h.invisible=!w,h.material.set({color:g})}(l=this._polygonMesh).material.transparent=s,l.material.depthMask=!s,l.geometry.updateBoundingBox(),l.frontFace=this.extrudeY?Ka.Mesh.CCW:Ka.Mesh.CW,l.material.get("normalMap")&&l.geometry.generateTangents(),l.seriesIndex=e.seriesIndex,l.on("mousemove",this._onmousemove,this),l.on("mouseout",this._onmouseout,this)},_updateDebugWireframe:function(e){var t=e.getModel("debug.wireframe");if(t.get("show")){var r=Ka.parseColor(t.get("lineStyle.color")||"rgba(0,0,0,0.5)"),i=Mn(t.get("lineStyle.width"),1),n=this._polygonMesh;n.geometry.generateBarycentric(),n.material.define("both","WIREFRAME_TRIANGLE"),n.material.set("wireframeLineColor",r),n.material.set("wireframeLineWidth",i)}},_onmousemove:function(e){var t=this._dataIndexOfVertex[e.triangle[0]];null==t&&(t=-1),t!==this._lastHoverDataIndex&&(this.downplay(this._lastHoverDataIndex),this.highlight(t),this._labelsBuilder.updateLabels([t])),this._lastHoverDataIndex=t,this._polygonMesh.dataIndex=t},_onmouseout:function(e){e.target&&(this.downplay(this._lastHoverDataIndex),this._lastHoverDataIndex=-1,this._polygonMesh.dataIndex=-1),this._labelsBuilder.updateLabels([])},_updateGroundPlane:function(e,t,r){var i=e.getModel("groundPlane",e);if(this._groundMesh.invisible=!i.get("show",!0),!this._groundMesh.invisible){var n=e.get("shading"),a=this._groundMaterials[n];a||(a=this._groundMaterials.lambert),Ka.setMaterialFromModel(n,a,i,r),a.get("normalMap")&&this._groundMesh.geometry.generateTangents(),this._groundMesh.material=a,this._groundMesh.material.set("color",Ka.parseColor(i.get("color"))),this._groundMesh.scale.set(t.size[0],t.size[2],1)}},_triangulation:function(e,t,r){this._triangulationResults=[];for(var i=[1/0,1/0,1/0],n=[-1/0,-1/0,-1/0],a=e.coordinateSystem,o=t;o1?i:0,L[U][g]=A.points[V+2],l.set(n+U,L[U]),s?(I[0]=(A.points[V]*_[0]-v[0])/x,I[1]=(A.points[V+2]*_[g]-v[g])/x):(I[0]=(k?R:R+G)/x,I[1]=(L[U][m]*_[m]-v[m])/x),u.set(n+U,I)}for(zh.sub(P,L[1],L[0]),zh.sub(O,L[3],L[0]),zh.cross(N,P,O),zh.normalize(N,N),U=0;U<4;U++)h.set(n+U,N),f&&c.set(n+U,o);for(U=0;U<6;U++)p[3*a+U]=D[U]+n;n+=4,a+=2,R+=G}}return t.dirty(),{vertexOffset:n,triangleOffset:a}},_getRegionLinesInfo:function(e,t,r){var i=0,n=0;return t.getRegionModel(e).getModel("itemStyle").get("borderWidth")>0&&t.getRegionPolygonCoords(e).forEach((function(e){var t=e.exterior,a=e.interiors;i+=r.getPolylineVertexCount(t),n+=r.getPolylineTriangleCount(t);for(var o=0;othis._endIndex)){t-=this._startIndex;for(var i=this._vertexRangeOfDataIndex[2*t];i0},_displacementChanged:!0,_displacementScale:0,updateDisplacementHash:function(){var e=this.getDisplacementTexture(),t=this.getDisplacemenScale();this._displacementChanged=this._displacementTexture!==e||this._displacementScale!==t,this._displacementTexture=e,this._displacementScale=t},isDisplacementChanged:function(){return this._displacementChanged}});i.util.merge(ru.prototype,uo),i.util.merge(ru.prototype,co),i.util.merge(ru.prototype,fo),i.util.merge(ru.prototype,Kl);const iu=ru;var nu=Math.PI,au=Math.sin,ou=Math.cos,su=Math.tan,lu=Math.asin,hu=Math.atan2,uu=nu/180,cu=23.4397*uu;function du(e,t){return hu(au(e)*ou(cu)-su(t)*au(cu),ou(e))}function fu(e,t,r){return hu(au(e),ou(e)*au(t)-su(r)*ou(t))}function pu(e,t,r){return lu(au(t)*au(r)+ou(t)*ou(r)*ou(e))}var mu={};mu.getPosition=function(e,t,r){var i=uu*-r,n=uu*t,a=function(e){return function(e){return e.valueOf()/864e5-.5+2440588}(e)-2451545}(e),o=function(e){var t,r,i=(r=function(e){return uu*(357.5291+.98560028*e)}(e))+uu*(1.9148*au(r)+.02*au(2*r)+3e-4*au(3*r))+102.9372*uu+nu;return{dec:(t=i,lu(au(0)*ou(cu)+ou(0)*au(cu)*au(t))),ra:du(i,0)}}(a),s=function(e,t){return uu*(280.16+360.9856235*e)-t}(a,i)-o.ra;return{azimuth:fu(s,n,o.dec),altitude:pu(s,n,o.dec)}};const gu=mu;Ka.Shader.import(Va),Ka.Shader.import("@export ecgl.atmosphere.vertex\nattribute vec3 position: POSITION;\nattribute vec3 normal : NORMAL;\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\nuniform mat4 normalMatrix : WORLDINVERSETRANSPOSE;\n\nvarying vec3 v_Normal;\n\nvoid main() {\n v_Normal = normalize((normalMatrix * vec4(normal, 0.0)).xyz);\n gl_Position = worldViewProjection * vec4(position, 1.0);\n}\n@end\n\n\n@export ecgl.atmosphere.fragment\nuniform mat4 viewTranspose: VIEWTRANSPOSE;\nuniform float glowPower;\nuniform vec3 glowColor;\n\nvarying vec3 v_Normal;\n\nvoid main() {\n float intensity = pow(1.0 - dot(v_Normal, (viewTranspose * vec4(0.0, 0.0, 1.0, 0.0)).xyz), glowPower);\n gl_FragColor = vec4(glowColor, intensity * intensity);\n}\n@end");const _u=i.ComponentView.extend({type:"globe",__ecgl__:!0,_displacementScale:0,init:function(e,t){this.groupGL=new Ka.Node,this._sphereGeometry=new Ka.SphereGeometry({widthSegments:200,heightSegments:100,dynamic:!0}),this._overlayGeometry=new Ka.SphereGeometry({widthSegments:80,heightSegments:40}),this._planeGeometry=new Ka.PlaneGeometry,this._earthMesh=new Ka.Mesh({renderNormal:!0}),this._atmosphereMesh=new Ka.Mesh,this._atmosphereGeometry=new Ka.SphereGeometry({widthSegments:80,heightSegments:40}),this._atmosphereMaterial=new Ka.Material({shader:new Ka.Shader(Ka.Shader.source("ecgl.atmosphere.vertex"),Ka.Shader.source("ecgl.atmosphere.fragment")),transparent:!0}),this._atmosphereMesh.geometry=this._atmosphereGeometry,this._atmosphereMesh.material=this._atmosphereMaterial,this._atmosphereMesh.frontFace=Ka.Mesh.CW,this._lightRoot=new Ka.Node,this._sceneHelper=new Uo,this._sceneHelper.initLight(this._lightRoot),this.groupGL.add(this._atmosphereMesh),this.groupGL.add(this._earthMesh),this._control=new Do({zr:t.getZr()}),this._control.init(),this._layerMeshes={}},render:function(e,t,r){var i=e.coordinateSystem,n=e.get("shading");i.viewGL.add(this._lightRoot),e.get("show")?i.viewGL.add(this.groupGL):i.viewGL.remove(this.groupGL),this._sceneHelper.setScene(i.viewGL.scene),i.viewGL.setPostEffect(e.getModel("postEffect"),r),i.viewGL.setTemporalSuperSampling(e.getModel("temporalSuperSampling"));var a=this._earthMesh;a.geometry=this._sphereGeometry;var o="ecgl."+n;a.material&&a.material.shader.name===o||(a.material=Ka.createMaterial(o)),Ka.setMaterialFromModel(n,a.material,e,r),["roughnessMap","metalnessMap","detailMap","normalMap"].forEach((function(e){var t=a.material.get(e);t&&(t.flipY=!1)})),a.material.set("color",Ka.parseColor(e.get("baseColor")));var s=.99*i.radius;if(a.scale.set(s,s,s),e.get("atmosphere.show")){a.material.define("both","ATMOSPHERE_ENABLED"),this._atmosphereMesh.invisible=!1,this._atmosphereMaterial.setUniforms({glowPower:e.get("atmosphere.glowPower")||6,glowColor:e.get("atmosphere.color")||"#ffffff"}),a.material.setUniforms({glowPower:e.get("atmosphere.innerGlowPower")||2,glowColor:e.get("atmosphere.color")||"#ffffff"});var l=e.get("atmosphere.offset")||5;this._atmosphereMesh.scale.set(s+l,s+l,s+l)}else a.material.undefine("both","ATMOSPHERE_ENABLED"),this._atmosphereMesh.invisible=!0;var h=a.material.setTextureImage("diffuseMap",e.get("baseTexture"),r,{flipY:!1,anisotropic:8});h&&h.surface&&h.surface.attachToMesh(a);var u=a.material.setTextureImage("bumpMap",e.get("heightTexture"),r,{flipY:!1,anisotropic:8});u&&u.surface&&u.surface.attachToMesh(a),a.material[e.get("postEffect.enable")?"define":"undefine"]("fragment","SRGB_DECODE"),this._updateLight(e,r),this._displaceVertices(e,r),this._updateViewControl(e,r),this._updateLayers(e,r)},afterRender:function(e,t,r,i){var n=i.renderer;this._sceneHelper.updateAmbientCubemap(n,e,r),this._sceneHelper.updateSkybox(n,e,r)},_updateLayers:function(e,t){var r=e.coordinateSystem,n=e.get("layers"),a=r.radius,o=[],s=[],l=[],h=[];i.util.each(n,(function(e){var n=new i.Model(e),u=n.get("type"),c=Ka.loadTexture(n.get("texture"),t,{flipY:!1,anisotropic:8});if(c.surface&&c.surface.attachToMesh(this._earthMesh),"blend"===u){var d=n.get("blendTo"),f=Mn(n.get("intensity"),1);"emission"===d?(l.push(c),h.push(f)):(o.push(c),s.push(f))}else{var p=n.get("id"),m=this._layerMeshes[p];m||(m=this._layerMeshes[p]=new Ka.Mesh({geometry:this._overlayGeometry,castShadow:!1,ignorePicking:!0})),"lambert"===n.get("shading")?(m.material=m.__lambertMaterial||new Ka.Material({autoUpdateTextureStatus:!1,shader:Ka.createShader("ecgl.lambert"),transparent:!0,depthMask:!1}),m.__lambertMaterial=m.material):(m.material=m.__colorMaterial||new Ka.Material({autoUpdateTextureStatus:!1,shader:Ka.createShader("ecgl.color"),transparent:!0,depthMask:!1}),m.__colorMaterial=m.material),m.material.enableTexture("diffuseMap");var g=n.get("distance"),_=a+(null==g?r.radius/100:g);m.scale.set(_,_,_),a=_;var v=this._blankTexture||(this._blankTexture=Ka.createBlankTexture("rgba(255, 255, 255, 0)"));m.material.set("diffuseMap",v),Ka.loadTexture(n.get("texture"),t,{flipY:!1,anisotropic:8},(function(e){e.surface&&e.surface.attachToMesh(m),m.material.set("diffuseMap",e),t.getZr().refresh()})),n.get("show")?this.groupGL.add(m):this.groupGL.remove(m)}}),this);var u=this._earthMesh.material;u.define("fragment","LAYER_DIFFUSEMAP_COUNT",o.length),u.define("fragment","LAYER_EMISSIVEMAP_COUNT",l.length),u.set("layerDiffuseMap",o),u.set("layerDiffuseIntensity",s),u.set("layerEmissiveMap",l),u.set("layerEmissionIntensity",h);var c=e.getModel("debug.wireframe");if(c.get("show")){u.define("both","WIREFRAME_TRIANGLE");var d=Ka.parseColor(c.get("lineStyle.color")||"rgba(0,0,0,0.5)"),f=Mn(c.get("lineStyle.width"),1);u.set("wireframeLineWidth",f),u.set("wireframeLineColor",d)}else u.undefine("both","WIREFRAME_TRIANGLE")},_updateViewControl:function(e,t){var r=e.coordinateSystem,i=e.getModel("viewControl"),n=(r.viewGL.camera,this),a=this._control;a.setViewGL(r.viewGL);var o,s,l=i.get("targetCoord");null!=l&&(s=l[0]+90,o=l[1]),a.setFromViewControlModel(i,{baseDistance:r.radius,alpha:o,beta:s}),a.off("update"),a.on("update",(function(){t.dispatchAction({type:"globeChangeCamera",alpha:a.getAlpha(),beta:a.getBeta(),distance:a.getDistance()-r.radius,center:a.getCenter(),from:n.uid,globeId:e.id})}))},_displaceVertices:function(e,t){var r=e.get("displacementQuality"),i=e.get("debug.wireframe.show"),n=e.coordinateSystem;if(e.isDisplacementChanged()||r!==this._displacementQuality||i!==this._showDebugWireframe){this._displacementQuality=r,this._showDebugWireframe=i;var a=this._sphereGeometry,o={low:100,medium:200,high:400,ultra:800}[r]||200,s=o/2;(a.widthSegments!==o||i)&&(a.widthSegments=o,a.heightSegments=s,a.build()),this._doDisplaceVertices(a,n),i&&a.generateBarycentric()}},_doDisplaceVertices:function(e,t){var r=e.attributes.position.value,i=e.attributes.texcoord0.value,n=e.__originalPosition;n&&n.length===r.length||((n=new Float32Array(r.length)).set(r),e.__originalPosition=n);for(var a=t.displacementWidth,o=t.displacementHeight,s=t.displacementData,l=0;l50&&(a=1e3);var o=[];Ou.perspective(o,Iu,this.width/this.height,1,a),this.viewGL.camera.projectionMatrix.setArray(o),this.viewGL.camera.decomposeProjectionMatrix(),o=Ou.identity([]);var s=this.dataToPoint(this.center);Ou.scale(o,o,[1,-1,1]),Ou.translate(o,o,[0,0,-e]),Ou.rotateX(o,o,t),Ou.rotateZ(o,o,-this.bearing/180*Math.PI),Ou.translate(o,o,[-s[0]*this.getScale()*Bu,-s[1]*this.getScale()*Bu,0]),this.viewGL.camera.viewMatrix.array=o;var l=[];Ou.invert(l,o),this.viewGL.camera.worldTransform.array=l,this.viewGL.camera.decomposeWorldTransform();var h,u=Nu*this.getScale();if(this.altitudeExtent&&!isNaN(this.boxHeight)){var c=this.altitudeExtent[1]-this.altitudeExtent[0];h=this.boxHeight/c*this.getScale()/Math.pow(2,this._initialZoom-this.zoomOffset)}else h=u/(2*Math.PI*6378e3*Math.abs(Math.cos(this.center[1]*(Math.PI/180))))*this.altitudeScale*Bu;this.viewGL.rootNode.scale.set(this.getScale()*Bu,this.getScale()*Bu,h)}},getScale:function(){return Math.pow(2,this.zoom-this.zoomOffset)},projectOnTile:function(e,t){return this.projectOnTileWithScale(e,this.getScale()*Nu,t)},projectOnTileWithScale:function(e,t,r){var i=e[0],n=e[1]*Ru/180,a=t*(i*Ru/180+Ru)/(2*Ru),o=t*(Ru-Math.log(Math.tan(Ru/4+.5*n)))/(2*Ru);return(r=r||[])[0]=a,r[1]=o,r},unprojectFromTile:function(e,t){return this.unprojectOnTileWithScale(e,this.getScale()*Nu,t)},unprojectOnTileWithScale:function(e,t,r){var i=e[0],n=e[1],a=i/t*(2*Ru)-Ru,o=2*(Math.atan(Math.exp(Ru-n/t*(2*Ru)))-Ru/4);return(r=r||[])[0]=180*a/Ru,r[1]=180*o/Ru,r},dataToPoint:function(e,t){return(t=this.projectOnTileWithScale(e,Nu,t))[0]-=this._origin[0],t[1]-=this._origin[1],t[2]=isNaN(e[2])?0:e[2],isNaN(e[2])||(t[2]=e[2],this.altitudeExtent&&(t[2]-=this.altitudeExtent[0])),t}};const zu=Fu;function Gu(){zu.apply(this,arguments)}function Uu(e,t,r){function i(e,t){var r=t.getWidth(),i=t.getHeight(),n=t.getDevicePixelRatio();this.viewGL.setViewport(0,0,r,i,n),this.width=r,this.height=i,this.altitudeScale=e.get("altitudeScale"),this.boxHeight=e.get("boxHeight")}function n(e,t){if("auto"!==this.model.get("boxHeight")){var r=[1/0,-1/0];e.eachSeries((function(e){if(e.coordinateSystem===this){var t=e.getData(),i=e.coordDimToDataDim("alt")[0];if(i){var n=t.getDataExtent(i,!0);r[0]=Math.min(r[0],n[0]),r[1]=Math.max(r[1],n[1])}}}),this),r&&isFinite(r[1]-r[0])&&(this.altitudeExtent=r)}}return{dimensions:t.prototype.dimensions,create:function(a,o){var s=[];return a.eachComponent(e,(function(e){var r=e.__viewGL;r||(r=e.__viewGL=new Il).setRootNode(new Ka.Node);var a=new t;a.viewGL=e.__viewGL,a.resize=i,a.resize(e,o),s.push(a),e.coordinateSystem=a,a.model=e,a.update=n})),a.eachSeries((function(t){if(t.get("coordinateSystem")===e){var r=t.getReferringComponents(e).models[0];if(r||(r=a.getComponent(e)),!r)throw new Error(e+' "'+Mn(t.get(e+"Index"),t.get(e+"Id"),0)+'" not found');t.coordinateSystem=r.coordinateSystem}})),r&&r(s,a,o),s}}}Gu.prototype=new zu,Gu.prototype.constructor=Gu,Gu.prototype.type="mapbox3D";const ku=Uu("mapbox3D",Gu,(function(e){e.forEach((function(e){e.setCameraOption(e.model.getMapboxCameraOption())}))}));(0,i.use)((function(e){e.registerComponentModel(Au),e.registerComponentView(Pu),e.registerCoordinateSystem("mapbox3D",ku),e.registerAction({type:"mapbox3DChangeCamera",event:"mapbox3dcamerachanged",update:"mapbox3D:updateCamera"},(function(e,t){t.eachComponent({mainType:"mapbox3D",query:e},(function(t){t.setMapboxCameraOption(e)}))}))}));var Vu=["zoom","center","pitch","bearing"],Hu=i.ComponentModel.extend({type:"maptalks3D",layoutMode:"box",coordinateSystem:null,defaultOption:{zlevel:-10,urlTemplate:"http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png",attribution:'© OpenStreetMap contributors, © CARTO',center:[0,0],zoom:0,pitch:0,bearing:0,light:{main:{alpha:20,beta:30}},altitudeScale:1,boxHeight:"auto"},getMaptalksCameraOption:function(){var e=this;return Vu.reduce((function(t,r){return t[r]=e.get(r),t}),{})},setMaptalksCameraOption:function(e){null!=e&&Vu.forEach((function(t){null!=e[t]&&(this.option[t]=e[t])}),this)},getMaptalks:function(){return this._maptalks},setMaptalks:function(e){this._maptalks=e}});i.util.merge(Hu.prototype,co),i.util.merge(Hu.prototype,fo);const Wu=Hu;function ju(e,t,r,i){if(this.id=e,this.zr=t,this.dom=document.createElement("div"),this.dom.style.cssText="position:absolute;left:0;right:0;top:0;bottom:0;",!maptalks)throw new Error("Maptalks library must be included. See https://maptalks.org");this._maptalks=new maptalks.Map(this.dom,{center:r,zoom:i,doubleClickZoom:!1,fog:!1}),this._initEvents()}ju.prototype.setUnpainted=function(){},ju.prototype.resize=function(){this._maptalks.checkSize()},ju.prototype.getMaptalks=function(){return this._maptalks},ju.prototype.clear=function(){},ju.prototype.refresh=function(){this._maptalks.checkSize()};var Xu=["mousedown","mouseup","click","dblclick","mousemove","mousewheel","DOMMouseScroll","touchstart","touchend","touchmove","touchcancel"];ju.prototype._initEvents=function(){var e=this.dom;this._handlers=this._handlers||{contextmenu:function(e){return e.preventDefault(),!1}},Xu.forEach((function(t){this._handlers[t]=function(r){var i={};for(var n in r)i[n]=r[n];i.bubbles=!1;var a=new r.constructor(r.type,i);"mousewheel"===t||"DOMMouseScroll"===t?e.dispatchEvent(a):e.firstElementChild.dispatchEvent(a)},this.zr.dom.addEventListener(t,this._handlers[t])}),this),this.zr.dom.addEventListener("contextmenu",this._handlers.contextmenu)},ju.prototype.dispose=function(){Xu.forEach((function(e){this.zr.dom.removeEventListener(e,this._handlers[e])}),this),this._maptalks.remove()};const qu=ju;Ka.Shader.import(Lu);const Zu=i.ComponentView.extend({type:"maptalks3D",__ecgl__:!0,init:function(e,t){this._groundMesh=new Ka.Mesh({geometry:new Ka.PlaneGeometry,material:new Ka.Material({shader:new Ka.Shader({vertex:Ka.Shader.source("ecgl.displayShadow.vertex"),fragment:Ka.Shader.source("ecgl.displayShadow.fragment")}),depthMask:!1}),renderOrder:-100,culling:!1,castShadow:!1,$ignorePicking:!0,renderNormal:!0})},_initMaptalksLayer:function(e,t){var r=t.getZr();this._zrLayer=new qu("maptalks3D",r,e.get("center"),e.get("zoom")),r.painter.insertLayer(-1e3,this._zrLayer),this._lightRoot=new Ka.Node,this._sceneHelper=new Uo(this._lightRoot),this._sceneHelper.initLight(this._lightRoot);var i=this._zrLayer.getMaptalks(),n=this._dispatchInteractAction.bind(this,t,i);["zoomend","zooming","zoomstart","dragrotating","pitch","pitchend","movestart","moving","moveend","resize","touchstart","touchmove","touchend","animating"].forEach((function(e){i.on(e,n)}))},render:function(e,t,r){this._zrLayer||this._initMaptalksLayer(e,r);var i=this._zrLayer.getMaptalks(),n=e.get("urlTemplate"),a=i.getBaseLayer();n!==this._oldUrlTemplate&&(a?a.setOptions({urlTemplate:n,attribution:e.get("attribution")}):(a=new maptalks.TileLayer("maptalks-echarts-gl-baselayer",{urlTemplate:n,subdomains:["a","b","c"],attribution:e.get("attribution")}),i.setBaseLayer(a))),this._oldUrlTemplate=n,i.setCenter(e.get("center")),i.setZoom(e.get("zoom"),{animation:!1}),i.setPitch(e.get("pitch")),i.setBearing(e.get("bearing")),e.setMaptalks(i);var o=e.coordinateSystem;o.viewGL.scene.add(this._lightRoot),o.viewGL.add(this._groundMesh),this._updateGroundMesh(),this._sceneHelper.setScene(o.viewGL.scene),this._sceneHelper.updateLight(e),o.viewGL.setPostEffect(e.getModel("postEffect"),r),o.viewGL.setTemporalSuperSampling(e.getModel("temporalSuperSampling")),this._maptalks3DModel=e},afterRender:function(e,t,r,i){var n=i.renderer;this._sceneHelper.updateAmbientCubemap(n,e,r),this._sceneHelper.updateSkybox(n,e,r),e.coordinateSystem.viewGL.scene.traverse((function(e){e.material&&(e.material.define("fragment","NORMAL_UP_AXIS",2),e.material.define("fragment","NORMAL_FRONT_AXIS",1))}))},updateCamera:function(e,t,r,i){e.coordinateSystem.setCameraOption(i),this._updateGroundMesh(),r.getZr().refresh()},_dispatchInteractAction:function(e,t,r){var i;e.dispatchAction({type:"maptalks3DChangeCamera",pitch:t.getPitch(),zoom:(i=t.getResolution(),19-Math.log(i/Yu)/Math.LN2+1),center:t.getCenter().toArray(),bearing:t.getBearing(),maptalks3DId:this._maptalks3DModel&&this._maptalks3DModel.id})},_updateGroundMesh:function(){if(this._maptalks3DModel){var e=this._maptalks3DModel.coordinateSystem,t=e.dataToPoint(e.center);this._groundMesh.position.set(t[0],t[1],-.001);var r=new Ka.Plane(new Ka.Vector3(0,0,1),0),i=e.viewGL.camera.castRay(new Ka.Vector2(-1,-1)),n=e.viewGL.camera.castRay(new Ka.Vector2(1,1)),a=i.intersectPlane(r),o=n.intersectPlane(r),s=a.dist(o)/e.viewGL.rootNode.scale.x;this._groundMesh.scale.set(s,s,1)}},dispose:function(e,t){this._zrLayer&&this._zrLayer.dispose(),t.getZr().painter.delLayer(-1e3)}}),Yu=12756274*Math.PI/(256*Math.pow(2,20));function Ku(){zu.apply(this,arguments),this.maxPitch=85,this.zoomOffset=1}Ku.prototype=new zu,Ku.prototype.constructor=Ku,Ku.prototype.type="maptalks3D";const Qu=Uu("maptalks3D",Ku,(function(e){e.forEach((function(e){e.setCameraOption(e.model.getMaptalksCameraOption())}))}));(0,i.use)((function(e){e.registerComponentModel(Wu),e.registerComponentView(Zu),e.registerCoordinateSystem("maptalks3D",Qu),e.registerAction({type:"maptalks3DChangeCamera",event:"maptalks3dcamerachanged",update:"maptalks3D:updateCamera"},(function(e,t){t.eachComponent({mainType:"maptalks3D",query:e},(function(t){t.setMaptalksCameraOption(e)}))}))}));var Ju=Po.vec3,$u=i.helper.dataStack.isDimensionStacked;function ec(e,t,r){for(var i=e.getDataExtent(t),n=e.getDataExtent(r),a=i[1]-i[0]||i[0],o=n[1]-n[0]||n[0],s=new Uint8Array(2500),l=0;l0&&d>0||c<0&&d<0)),m=["x","y","z"].map((function(t){return e.coordDimToDataDim(t)[0]})),g=$u(r,m[2]),_=g?r.getCalculationInfo("stackResultDimension"):m[2];r.each(m,(function(e,i,a,o){var s=r.get(_,o),l=g?s-a:p?0:f[0],h=t.dataToPoint([e,i,l]),u=t.dataToPoint([e,i,s]),c=Ju.dist(h,u),d=[0,u[1]"+a.join("
")}(a):i.format.encodeHTML(i.format.addCommas(a)),s=n.getName(t),l=Ih(n,t);i.util.isObject(l)&&l.colorStops&&(l=(l.colorStops[0]||{}).color),l=l||"transparent";var h=i.format.getTooltipMarker(l),u=e.name;return"\0-"===u&&(u=""),u=u?i.format.encodeHTML(u)+(r?": ":"
"):"",r?h+u+o:u+h+(s?i.format.encodeHTML(s)+": "+o:o)}function sc(e,t,r){r=r||e.getSource();var n=t||i.getCoordinateSystemDimensions(e.get("coordinateSystem"))||["x","y","z"],a=i.helper.createDimensions(r,{dimensionsDefine:r.dimensionsDefine||e.get("dimensions"),encodeDefine:r.encodeDefine||e.get("encode"),coordDimensions:n.map((function(t){var r=e.getReferringComponents(t+"Axis3D").models[0];return{type:r&&"category"===r.get("type")?"ordinal":"float",name:t}}))});"cartesian3D"===e.get("coordinateSystem")&&a.forEach((function(t){if(n.indexOf(t.coordDim)>=0){var r=e.getReferringComponents(t.coordDim+"Axis3D").models[0];r&&"category"===r.get("type")&&(t.ordinalMeta=r.getOrdinalMeta())}}));var o=i.helper.dataStack.enableDataStack(e,a,{byIndex:!0,stackedCoordDimension:"z"}),s=new i.List(a,e);return s.setCalculationInfo(o),s.initData(r),s}var lc=i.SeriesModel.extend({type:"series.bar3D",dependencies:["globe"],visualStyleAccessPathvisu:"itemStyle",getInitialData:function(e,t){return sc(this)},getFormattedLabel:function(e,t,r,i){var n=ac.getFormattedLabel(this,e,t,r,i);return null==n&&(n=this.getData().get("z",e)),n},formatTooltip:function(e){return oc(this,e)},defaultOption:{coordinateSystem:"cartesian3D",globeIndex:0,grid3DIndex:0,zlevel:-10,bevelSize:0,bevelSmoothness:2,onGridPlane:"xy",shading:"color",minHeight:0,itemStyle:{opacity:1},label:{show:!1,distance:2,textStyle:{fontSize:14,color:"#000",backgroundColor:"rgba(255,255,255,0.7)",padding:3,borderRadius:3}},emphasis:{label:{show:!0}},animationDurationUpdate:500}});i.util.merge(lc.prototype,Kl);const hc=lc;var uc,cc,dc,fc,pc,mc,gc,_c,vc=Po.vec3,yc=Po.mat3,xc=Vr.extend((function(){return{attributes:{position:new Vr.Attribute("position","float",3,"POSITION"),normal:new Vr.Attribute("normal","float",3,"NORMAL"),color:new Vr.Attribute("color","float",4,"COLOR"),prevPosition:new Vr.Attribute("prevPosition","float",3),prevNormal:new Vr.Attribute("prevNormal","float",3)},dynamic:!0,enableNormal:!1,bevelSize:1,bevelSegments:0,_dataIndices:null,_vertexOffset:0,_triangleOffset:0}}),{resetOffset:function(){this._vertexOffset=0,this._triangleOffset=0},setBarCount:function(e){var t=this.enableNormal,r=this.getBarVertexCount()*e,i=this.getBarTriangleCount()*e;this.vertexCount!==r&&(this.attributes.position.init(r),t?this.attributes.normal.init(r):this.attributes.normal.value=null,this.attributes.color.init(r)),this.triangleCount!==i&&(this.indices=r>65535?new Uint32Array(3*i):new Uint16Array(3*i),this._dataIndices=new Uint32Array(r))},getBarVertexCount:function(){var e=this.bevelSize>0?this.bevelSegments:0;return e>0?this._getBevelBarVertexCount(e):this.enableNormal?24:8},getBarTriangleCount:function(){var e=this.bevelSize>0?this.bevelSegments:0;return e>0?this._getBevelBarTriangleCount(e):12},_getBevelBarVertexCount:function(e){return 4*(e+1)*(e+1)*2},_getBevelBarTriangleCount:function(e){return(4*e+3+1)*(2*e+1)*2+4},setColor:function(e,t){for(var r=this.getBarVertexCount(),i=r*(e+1),n=r*e;n0&&this.bevelSegments>0)this._addBevelBar(e,c,m,g,this.bevelSize,this.bevelSegments,_);else{vc.copy(n,c),vc.normalize(n,n),vc.cross(a,m,n),vc.normalize(a,a),vc.cross(i,n,a),vc.normalize(a,a),vc.negate(o,i),vc.negate(s,n),vc.negate(l,a),t(h[0],e,i,g[0]/2),t(h[0],h[0],a,g[2]/2),t(h[1],e,i,g[0]/2),t(h[1],h[1],l,g[2]/2),t(h[2],e,o,g[0]/2),t(h[2],h[2],l,g[2]/2),t(h[3],e,o,g[0]/2),t(h[3],h[3],a,g[2]/2),t(r,e,n,g[1]),t(h[4],r,i,g[0]/2),t(h[4],h[4],a,g[2]/2),t(h[5],r,i,g[0]/2),t(h[5],h[5],l,g[2]/2),t(h[6],r,o,g[0]/2),t(h[6],h[6],l,g[2]/2),t(h[7],r,o,g[0]/2),t(h[7],h[7],a,g[2]/2);var x=this.attributes;if(this.enableNormal){u[0]=i,u[1]=o,u[2]=n,u[3]=s,u[4]=a,u[5]=l;for(var b=this._vertexOffset,w=0;w0&&(f++,u[3]<.99&&(p=!0))}})),o.geometry.setBarCount(f);var m=r.getLayout("orient"),g=this._barIndexOfData=new Int32Array(r.count());f=0,r.each((function(e){if(r.hasValue(e)){var t=r.getItemLayout(e),i=t[0],n=t[1],o=t[2],s=4*e;u[0]=c[s++],u[1]=c[s++],u[2]=c[s++],u[3]=c[s++],u[3]>0&&(a._barMesh.geometry.addBar(i,n,m,o,u,e),g[e]=f++)}else g[e]=-1})),o.geometry.dirty(),o.geometry.updateBoundingBox();var _=o.material;_.transparent=p,_.depthMask=!p,o.geometry.sortTriangles=p,this._initHandler(e,t)},_initHandler:function(e,t){var r=e.getData(),i=this._barMesh,n="cartesian3D"===e.coordinateSystem.type;i.seriesIndex=e.seriesIndex;var a=-1;i.off("mousemove"),i.off("mouseout"),i.on("mousemove",(function(e){var o=i.geometry.getDataIndexOfVertex(e.triangle[0]);o!==a&&(this._downplay(a),this._highlight(o),this._labelsBuilder.updateLabels([o]),n&&t.dispatchAction({type:"grid3DShowAxisPointer",value:[r.get("x",o),r.get("y",o),r.get("z",o,!0)]})),a=o,i.dataIndex=o}),this),i.on("mouseout",(function(e){this._downplay(a),this._labelsBuilder.updateLabels(),a=-1,i.dataIndex=-1,n&&t.dispatchAction({type:"grid3DHideAxisPointer"})}),this)},_highlight:function(e){var t=this._data;if(t){var r=this._barIndexOfData[e];if(!(r<0)){var n=t.getItemModel(e).getModel("emphasis.itemStyle"),a=n.get("color"),o=n.get("opacity");if(null==a){var s=Ih(t,e);a=i.color.lift(s,-.4)}null==o&&(o=Rh(t,e));var l=Ka.parseColor(a);l[3]*=o,this._barMesh.geometry.setColor(r,l),this._api.getZr().refresh()}}},_downplay:function(e){var t=this._data;if(t){var r=this._barIndexOfData[e];if(!(r<0)){var i=Ih(t,e),n=Rh(t,e),a=Ka.parseColor(i);a[3]*=n,this._barMesh.geometry.setColor(r,a),this._api.getZr().refresh()}}},highlight:function(e,t,r,i){this._toggleStatus("highlight",e,t,r,i)},downplay:function(e,t,r,i){this._toggleStatus("downplay",e,t,r,i)},_toggleStatus:function(e,t,r,n,a){var o=t.getData(),s=An(o,a),l=this;null!=s?i.util.each(ac.normalizeToArray(s),(function(t){"highlight"===e?this._highlight(t):this._downplay(t)}),this):o.each((function(t){"highlight"===e?l._highlight(t):l._downplay(t)}))},remove:function(){this.groupGL.removeAll()},dispose:function(){this._labelsBuilder.dispose(),this.groupGL.removeAll()}});(0,i.use)((function(e){e.registerChartView(Tc),e.registerSeriesModel(hc),nc(e),e.registerProcessor((function(e,t){e.eachSeriesByType("bar3d",(function(e){var t=e.getData();t.filterSelf((function(e){return t.hasValue(e)}))}))}))}));const Sc=i.SeriesModel.extend({type:"series.line3D",dependencies:["grid3D"],visualStyleAccessPath:"lineStyle",visualDrawType:"stroke",getInitialData:function(e,t){return sc(this)},formatTooltip:function(e){return oc(this,e)},defaultOption:{coordinateSystem:"cartesian3D",zlevel:-10,grid3DIndex:0,lineStyle:{width:2},animationDurationUpdate:500}});function Mc(e,t,r,i,n,a,o){if(0===n)return!1;var s,l=n;if(o>t+l&&o>i+l||oe+l&&a>r+l||a=0){var g=3*l,_=new vt(this._points[g],this._points[g+1],this._points[g+2]);a.push({dataIndex:l,point:_,pointWorld:_.clone(),target:this._line3DMesh,distance:this._camera.getWorldPosition().dist(_)})}},remove:function(){this.groupGL.removeAll()},dispose:function(){this.groupGL.removeAll()}});(0,i.use)((function(e){e.registerChartView(Ec),e.registerSeriesModel(Sc),e.registerLayout((function(e,t){e.eachSeriesByType("line3D",(function(e){var t=e.getData(),r=e.coordinateSystem;if(r){if("cartesian3D"!==r.type)return;var i=new Float32Array(3*t.count()),n=[],a=[],o=r.dimensions.map((function(t){return e.coordDimToDataDim(t)[0]}));r&&t.each(o,(function(e,t,o,s){n[0]=e,n[1]=t,n[2]=o,r.dataToPoint(n,a),i[3*s]=a[0],i[3*s+1]=a[1],i[3*s+2]=a[2]})),t.setLayout("points",i)}}))}))}));const Cc=i.SeriesModel.extend({type:"series.scatter3D",dependencies:["globe","grid3D","geo3D"],visualStyleAccessPath:"itemStyle",hasSymbolVisual:!0,getInitialData:function(e,t){return sc(this)},getFormattedLabel:function(e,t,r,i){var n=ac.getFormattedLabel(this,e,t,r,i);if(null==n){var a=this.getData(),o=a.dimensions[a.dimensions.length-1];n=a.get(o,e)}return n},formatTooltip:function(e){return oc(this,e)},defaultOption:{coordinateSystem:"cartesian3D",zlevel:-10,progressive:1e5,progressiveThreshold:1e5,grid3DIndex:0,globeIndex:0,symbol:"circle",symbolSize:10,blendMode:"source-over",label:{show:!1,position:"right",distance:5,textStyle:{fontSize:14,color:"#000",backgroundColor:"rgba(255,255,255,0.7)",padding:3,borderRadius:3}},itemStyle:{opacity:.8},emphasis:{label:{show:!0}},animationDurationUpdate:500}});function Dc(e,t,r){(t=t||document.createElement("canvas")).width=e,t.height=e;var i=t.getContext("2d");return r&&r(i),t}var Lc={getMarginByStyle:function(e){var t=e.minMargin||0,r=0;e.stroke&&"none"!==e.stroke&&(r=null==e.lineWidth?1:e.lineWidth);var i=e.shadowBlur||0,n=e.shadowOffsetX||0,a=e.shadowOffsetY||0,o={};return o.left=Math.max(r/2,-n+i,t),o.right=Math.max(r/2,n+i,t),o.top=Math.max(r/2,-a+i,t),o.bottom=Math.max(r/2,a+i,t),o},createSymbolSprite:function(e,t,r,n){var a=function(e,t,r,n){i.util.isArray(t)||(t=[t,t]);var a=Lc.getMarginByStyle(r,void 0),o=t[0]+a.left+a.right,s=t[1]+a.top+a.bottom,l=i.helper.createSymbol(e,0,0,t[0],t[1]),h=Math.max(o,s);l.x=a.left,l.y=a.top,o>s?l.y+=(h-s)/2:l.x+=(h-o)/2;var u=l.getBoundingRect();return l.x-=u.x,l.y-=u.y,l.setStyle(r),l.update(),l.__size=h,l}(e,t,r),o=Lc.getMarginByStyle(r);return{image:Dc(a.__size,n,(function(e){i.innerDrawElementOnCanvas(e,a)})),margin:o}},createSDFFromCanvas:function(e,t,r,i){return Dc(t,i,(function(t){var i=e.getContext("2d").getImageData(0,0,e.width,e.height);t.putImageData(function(e,t,r){var i=t.width,n=t.height,a=e.canvas.width,o=e.canvas.height,s=i/a,l=n/o;function h(e){return e<128?1:-1}function u(e,a){var o=1/0;e=Math.floor(e*s);for(var u=(a=Math.floor(a*l))*i+e,c=h(t.data[4*u]),d=Math.max(a-r,0);d=2e4},doSortVertices:function(e,t){var r=this.indices,i=Oc.create();if(!r){r=this.indices=this.vertexCount>65535?new Uint32Array(this.vertexCount):new Uint16Array(this.vertexCount);for(var n=0;n.05);else for(n=0;n<3;n++)this._progressiveQuickSort(3*t+n);this.dirtyIndices()},_simpleSort:function(e){var t=this._zList,r=this.indices;function i(e,r){return t[r]-t[e]}e?Array.prototype.sort.call(r,i):Ch.sort(r,i,0,r.length-1)},_progressiveQuickSort:function(e){var t=this._zList,r=this.indices;this._quickSort=this._quickSort||new Ch,this._quickSort.step(r,(function(e,r){return t[r]-t[e]}),e)}};var Ic=Po.vec4;Ka.Shader.import("@export ecgl.sdfSprite.vertex\n\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\nuniform float elapsedTime : 0;\n\nattribute vec3 position : POSITION;\n\n#ifdef VERTEX_SIZE\nattribute float size;\n#else\nuniform float u_Size;\n#endif\n\n#ifdef VERTEX_COLOR\nattribute vec4 a_FillColor: COLOR;\nvarying vec4 v_Color;\n#endif\n\n#ifdef VERTEX_ANIMATION\nattribute vec3 prevPosition;\nattribute float prevSize;\nuniform float percent : 1.0;\n#endif\n\n\n#ifdef POSITIONTEXTURE_ENABLED\nuniform sampler2D positionTexture;\n#endif\n\nvarying float v_Size;\n\nvoid main()\n{\n\n#ifdef POSITIONTEXTURE_ENABLED\n gl_Position = worldViewProjection * vec4(texture2D(positionTexture, position.xy).xy, -10.0, 1.0);\n#else\n\n #ifdef VERTEX_ANIMATION\n vec3 pos = mix(prevPosition, position, percent);\n #else\n vec3 pos = position;\n #endif\n gl_Position = worldViewProjection * vec4(pos, 1.0);\n#endif\n\n#ifdef VERTEX_SIZE\n#ifdef VERTEX_ANIMATION\n v_Size = mix(prevSize, size, percent);\n#else\n v_Size = size;\n#endif\n#else\n v_Size = u_Size;\n#endif\n\n#ifdef VERTEX_COLOR\n v_Color = a_FillColor;\n #endif\n\n gl_PointSize = v_Size;\n}\n\n@end\n\n@export ecgl.sdfSprite.fragment\n\nuniform vec4 color: [1, 1, 1, 1];\nuniform vec4 strokeColor: [1, 1, 1, 1];\nuniform float smoothing: 0.07;\n\nuniform float lineWidth: 0.0;\n\n#ifdef VERTEX_COLOR\nvarying vec4 v_Color;\n#endif\n\nvarying float v_Size;\n\nuniform sampler2D sprite;\n\n@import clay.util.srgb\n\nvoid main()\n{\n gl_FragColor = color;\n\n vec4 _strokeColor = strokeColor;\n\n#ifdef VERTEX_COLOR\n gl_FragColor *= v_Color;\n #endif\n\n#ifdef SPRITE_ENABLED\n float d = texture2D(sprite, gl_PointCoord).r;\n gl_FragColor.a *= smoothstep(0.5 - smoothing, 0.5 + smoothing, d);\n\n if (lineWidth > 0.0) {\n float sLineWidth = lineWidth / 2.0;\n\n float outlineMaxValue0 = 0.5 + sLineWidth;\n float outlineMaxValue1 = 0.5 + sLineWidth + smoothing;\n float outlineMinValue0 = 0.5 - sLineWidth - smoothing;\n float outlineMinValue1 = 0.5 - sLineWidth;\n\n if (d <= outlineMaxValue1 && d >= outlineMinValue0) {\n float a = _strokeColor.a;\n if (d <= outlineMinValue1) {\n a = a * smoothstep(outlineMinValue0, outlineMinValue1, d);\n }\n else {\n a = a * smoothstep(outlineMaxValue1, outlineMaxValue0, d);\n }\n gl_FragColor.rgb = mix(gl_FragColor.rgb * gl_FragColor.a, _strokeColor.rgb, a);\n gl_FragColor.a = gl_FragColor.a * (1.0 - a) + a;\n }\n }\n#endif\n\n#ifdef SRGB_DECODE\n gl_FragColor = sRGBToLinear(gl_FragColor);\n#endif\n}\n@end");const Rc=Ka.Mesh.extend((function(){var e=new Ka.Geometry({dynamic:!0,attributes:{color:new Ka.Geometry.Attribute("color","float",4,"COLOR"),position:new Ka.Geometry.Attribute("position","float",3,"POSITION"),size:new Ka.Geometry.Attribute("size","float",1),prevPosition:new Ka.Geometry.Attribute("prevPosition","float",3),prevSize:new Ka.Geometry.Attribute("prevSize","float",1)}});Object.assign(e,Nc);var t=new Ka.Material({shader:Ka.createShader("ecgl.sdfSprite"),transparent:!0,depthMask:!1});t.enableTexture("sprite"),t.define("both","VERTEX_COLOR"),t.define("both","VERTEX_SIZE");var r=new Ka.Texture2D({image:document.createElement("canvas"),flipY:!1});return t.set("sprite",r),e.pick=this._pick.bind(this),{geometry:e,material:t,mode:Ka.Mesh.POINTS,sizeScale:1}}),{_pick:function(e,t,r,i,n,a){var o=this._positionNDC;if(o)for(var s=r.viewport,l=2/s.width,h=2/s.height,u=this.geometry.vertexCount-1;u>=0;u--){var c,d=o[2*(c=this.geometry.indices?this.geometry.indices[u]:u)],f=o[2*c+1],p=this.geometry.attributes.size.get(c)/this.sizeScale/2;if(e>d-p*l&&ef-p*h&&t2?(p=this._updateSymbolSprite(e,d,u,c),s.enableTexture("sprite")):s.disableTexture("sprite"),h.position.init(n-i);var m=[];if(f){s.undefine("VERTEX_SIZE"),s.undefine("VERTEX_COLOR");var g=function(e){const t=e.getVisual("style");if(t)return t[e.getVisual("drawType")]}(o),_=function(e){return e.getVisual("style").opacity}(o);Ka.parseColor(g,m),m[3]*=_,s.set({color:m,u_Size:u.maxSize*this._sizeScale})}else s.set({color:[1,1,1,1]}),s.define("VERTEX_SIZE"),s.define("VERTEX_COLOR"),h.size.init(n-i),h.color.init(n-i),this._originalOpacity=new Float32Array(n-i);for(var v=o.getLayout("points"),y=h.position.value,x=0;x1?(o[0]=r.maxSize,o[1]=r.maxSize/r.aspect):(o[1]=r.maxSize,o[0]=r.maxSize*r.aspect),o[0]=o[0]||1,o[1]=o[1]||1,this._symbolType===r.type&&(a=o,(n=this._symbolSize)&&a&&n[0]===a[0]&&n[1]===a[1])&&this._lineWidth===t.lineWidth||(Pc.createSymbolSprite(r.type,o,{fill:"#fff",lineWidth:t.lineWidth,stroke:"transparent",shadowColor:"transparent",minMargin:Math.min(o[0]/2,10)},this._spriteImageCanvas),Pc.createSDFFromCanvas(this._spriteImageCanvas,Math.min(this._spriteImageCanvas.width,32),20,this._mesh.material.get("sprite").image),this._symbolType=r.type,this._symbolSize=o,this._lineWidth=t.lineWidth),this._spriteImageCanvas.width/r.maxSize*i},_updateMaterial:function(e,t){var r="lighter"===e.get("blendMode")?Ka.additiveBlend:null,i=this._mesh.material;i.blend=r,i.set("lineWidth",t.lineWidth/20);var n=Ka.parseColor(t.stroke);i.set("strokeColor",n),i.transparent=!0,i.depthMask=!1,i.depthTest=!this.is2D,i.sortVertices=!this.is2D},_updateLabelBuilder:function(e,t,r){var i=e.getData(),n=this._mesh.geometry,a=n.attributes.position.value,o=(t=this._startDataIndex,this._mesh.sizeScale);this._labelsBuilder.updateData(i,t,r),this._labelsBuilder.getLabelPosition=function(e,r,i){var n=3*(e-t);return[a[n],a[n+1],a[n+2]]},this._labelsBuilder.getLabelDistance=function(e,r,i){return n.attributes.size.get(e-t)/o/2+i},this._labelsBuilder.updateLabels()},_updateAnimation:function(e){Ka.updateVertexAnimation([["prevPosition","position"],["prevSize","size"]],this._prevMesh,this._mesh,e)},_updateHandler:function(e,t,r){var i,n=e.getData(),a=this._mesh,o=this,s=-1,l=e.coordinateSystem&&"cartesian3D"===e.coordinateSystem.type;l&&(i=e.coordinateSystem.model),a.seriesIndex=e.seriesIndex,a.off("mousemove"),a.off("mouseout"),a.on("mousemove",(function(t){var h=t.vertexIndex+o._startDataIndex;h!==s&&(this.highlightOnMouseover&&(this.downplay(n,s),this.highlight(n,h),this._labelsBuilder.updateLabels([h])),l&&r.dispatchAction({type:"grid3DShowAxisPointer",value:[n.get(e.coordDimToDataDim("x")[0],h),n.get(e.coordDimToDataDim("y")[0],h),n.get(e.coordDimToDataDim("z")[0],h)],grid3DIndex:i.componentIndex})),a.dataIndex=h,s=h}),this),a.on("mouseout",(function(e){var t=e.vertexIndex+o._startDataIndex;this.highlightOnMouseover&&(this.downplay(n,t),this._labelsBuilder.updateLabels()),s=-1,a.dataIndex=-1,l&&r.dispatchAction({type:"grid3DHideAxisPointer",grid3DIndex:i.componentIndex})}),this)},updateLayout:function(e,t,r){var i=e.getData();if(this._mesh){var n=this._mesh.geometry.attributes.position.value,a=i.getLayout("points");if(this.is2D)for(var o=0;othis._endDataIndex||tthis._endDataIndex||t 1.0 || v_Percent < 0.0) {\n discard;\n }\n\n float fade = v_Percent;\n\n#ifdef SRGB_DECODE\n gl_FragColor = sRGBToLinear(color * v_Color);\n#else\n gl_FragColor = color * v_Color;\n#endif\n\n @import ecgl.common.wireframe.fragmentMain\n\n if (v_Percent > (1.0 - v_SpotPercent)) {\n gl_FragColor.rgb *= spotIntensity;\n }\n\n gl_FragColor.a *= fade;\n}\n\n@end");const ad=Ka.Mesh.extend((function(){var e=new Ka.Material({shader:new Ka.Shader(Ka.Shader.source("ecgl.trail2.vertex"),Ka.Shader.source("ecgl.trail2.fragment")),transparent:!0,depthMask:!1}),t=new Ro({dynamic:!0});return t.createAttribute("dist","float",1),t.createAttribute("distAll","float",1),t.createAttribute("start","float",1),{geometry:t,material:e,culling:!1,$ignorePicking:!0}}),{updateData:function(e,t,r){var i=e.hostModel,n=this.geometry,a=i.getModel("effect"),o=a.get("trailWidth")*t.getDevicePixelRatio(),s=a.get("trailLength"),l=i.get("effect.constantSpeed"),h=1e3*i.get("effect.period"),u=null!=l;u?this.material.set("speed",l/1e3):this.material.set("period",h),this.material[u?"define":"undefine"]("vertex","CONSTANT_SPEED");var c=i.get("polyline");n.trailLength=s,this.material.set("trailLength",s),n.resetOffset(),["position","positionPrev","positionNext"].forEach((function(e){n.attributes[e].value=r.attributes[e].value})),["dist","distAll","start","offset","color"].forEach((function(e){n.attributes[e].init(n.vertexCount)})),n.indices=r.indices;var d=[],f=a.get("trailColor"),p=a.get("trailOpacity"),m=null!=f,g=null!=p;this.updateWorldTransform();var _=this.worldTransform.x.len(),v=this.worldTransform.y.len(),y=this.worldTransform.z.len(),x=0,b=0;e.each((function(t){var i=e.getItemLayout(t),a=g?p:Rh(e,t),s=Ih(e,t);null==a&&(a=1),(d=Ka.parseColor(m?f:s,d))[3]*=a;for(var l=c?r.getPolylineVertexCount(i):r.getCubicCurveVertexCount(i[0],i[1],i[2],i[3]),w=0,T=[],S=[],M=x;Mx&&(w+=nd.dist(T,S)),n.attributes.dist.set(M,w),nd.copy(S,T);b=Math.max(b,w);var A=Math.random()*(u?w:h);for(M=x;M0?1:-1)*o/2),n.attributes.color.set(M,d);x+=l})),this.material.set("spotSize",.1*b*s),this.material.set("spotIntensity",a.get("spotIntensity")),n.dirty()},setAnimationTime:function(e){this.material.set("time",e)}});Ka.Shader.import(is);const od=i.ChartView.extend({type:"lines3D",__ecgl__:!0,init:function(e,t){this.groupGL=new Ka.Node,this._meshLinesMaterial=new Ka.Material({shader:Ka.createShader("ecgl.meshLines3D"),transparent:!0,depthMask:!1}),this._linesMesh=new Ka.Mesh({geometry:new Ro,material:this._meshLinesMaterial,$ignorePicking:!0}),this._trailMesh=new ad},render:function(e,t,r){this.groupGL.add(this._linesMesh);var i=e.coordinateSystem,n=e.getData();if(i&&i.viewGL){i.viewGL.add(this.groupGL),this._updateLines(e,t,r);var a=i.viewGL.isLinearSpace()?"define":"undefine";this._linesMesh.material[a]("fragment","SRGB_DECODE"),this._trailMesh.material[a]("fragment","SRGB_DECODE")}var o=this._trailMesh;if(o.stopAnimation(),e.get("effect.show")){this.groupGL.add(o),o.updateData(n,r,this._linesMesh.geometry),o.__time=o.__time||0;var s=36e5;this._curveEffectsAnimator=o.animate("",{loop:!0}).when(s,{__time:s}).during((function(){o.setAnimationTime(o.__time)})).start()}else this.groupGL.remove(o),this._curveEffectsAnimator=null;this._linesMesh.material.blend=this._trailMesh.material.blend="lighter"===e.get("blendMode")?Ka.additiveBlend:null},pauseEffect:function(){this._curveEffectsAnimator&&this._curveEffectsAnimator.pause()},resumeEffect:function(){this._curveEffectsAnimator&&this._curveEffectsAnimator.resume()},toggleEffect:function(){var e=this._curveEffectsAnimator;e&&(e.isPaused()?e.resume():e.pause())},_updateLines:function(e,t,r){var i=e.getData(),n=e.coordinateSystem,a=this._linesMesh.geometry,o=e.get("polyline");a.expandLine=!0;var s=function(e){return null!=e.radius?e.radius:null!=e.size?Math.max(e.size[0],e.size[1],e.size[2]):100}(n);a.segmentScale=s/20;var l="lineStyle.width".split("."),h=r.getDevicePixelRatio(),u=0;i.each((function(e){var t=i.getItemModel(e).get(l);null==t&&(t=1),i.setItemVisual(e,"lineWidth",t),u=Math.max(t,u)})),a.useNativeLine=!1;var c=0,d=0;i.each((function(e){var t=i.getItemLayout(e);o?(c+=a.getPolylineVertexCount(t),d+=a.getPolylineTriangleCount(t)):(c+=a.getCubicCurveVertexCount(t[0],t[1],t[2],t[3]),d+=a.getCubicCurveTriangleCount(t[0],t[1],t[2],t[3]))})),a.setVertexCount(c),a.setTriangleCount(d),a.resetOffset();var f=[];i.each((function(e){var t=i.getItemLayout(e),r=Ih(i,e),n=Rh(i,e),s=i.getItemVisual(e,"lineWidth")*h;null==n&&(n=1),(f=Ka.parseColor(r,f))[3]*=n,o?a.addPolyline(t,f,s):a.addCubicCurve(t[0],t[1],t[2],t[3],f,s)})),a.dirty()},remove:function(){this.groupGL.removeAll()},dispose:function(){this.groupGL.removeAll()}});function sd(e,t){for(var r=[],i=0;i0;this._updateSurfaceMesh(this._surfaceMesh,e,u,f);var p=this._surfaceMesh.material;f?(p.define("WIREFRAME_QUAD"),p.set("wireframeLineWidth",d),p.set("wireframeLineColor",Ka.parseColor(c.get("lineStyle.color")))):p.undefine("WIREFRAME_QUAD"),this._initHandler(e,r),this._updateAnimation(e)},_updateAnimation:function(e){Ka.updateVertexAnimation([["prevPosition","position"],["prevNormal","normal"]],this._prevSurfaceMesh,this._surfaceMesh,e)},_createSurfaceMesh:function(){var e=new Ka.Mesh({geometry:new Ka.Geometry({dynamic:!0,sortTriangles:!0}),shadowDepthMaterial:new Ka.Material({shader:new Ka.Shader(Ka.Shader.source("ecgl.sm.depth.vertex"),Ka.Shader.source("ecgl.sm.depth.fragment"))}),culling:!1,renderOrder:10,renderNormal:!0});return e.geometry.createAttribute("barycentric","float",4),e.geometry.createAttribute("prevPosition","float",3),e.geometry.createAttribute("prevNormal","float",3),Object.assign(e.geometry,Nh),e},_initHandler:function(e,t){var r=e.getData(),i=this._surfaceMesh,n=e.coordinateSystem;i.seriesIndex=e.seriesIndex;var a=-1;i.off("mousemove"),i.off("mouseout"),i.on("mousemove",(function(e){var o=function(e,t){for(var r=1/0,n=-1,a=[],o=0;o=0){var s=[];i.geometry.attributes.position.get(o,s);for(var l=n.pointToData(s),h=1/0,u=-1,c=[],d=0;d65535?Uint32Array:Uint16Array)((p-1)*(m-1)*6),w=function(e,t,r){r[1]=e*m+t,r[0]=e*m+t+1,r[3]=(e+1)*m+t+1,r[2]=(e+1)*m+t},T=!1;if(l){var S=[],M=[],A=0;g?u.init(n.vertexCount):u.value=null;for(var E=[[],[],[]],C=[],D=[],L=fd.create(),P=function(e,t,r){var i=3*t;return r[0]=e[i],r[1]=e[i+1],r[2]=e[i+2],r},O=new Float32Array(o.length),N=new Float32Array(o.length/3*4),I=0;I0;){if(Math.floor(s/u)===s/u)return[u,s/u];u--}return[u=Math.floor(Math.sqrt(s)),u]},dispose:function(){this.groupGL.removeAll()},remove:function(){this.groupGL.removeAll()}});function md(e,t){for(var r=[],i=0;i=0&&e.call(t,r[n],n)},e.prototype.eachEdge=function(e,t){for(var r=this.edges,i=r.length,n=0;n=0&&r[n].node1.dataIndex>=0&&r[n].node2.dataIndex>=0&&e.call(t,r[n],n)},e.prototype.breadthFirstTraverse=function(e,t,r,i){if(t instanceof Ad||(t=this._nodesMap[Sd(t)]),t){for(var n="out"===r?"outEdges":"in"===r?"inEdges":"edges",a=0;a=0&&r.node2.dataIndex>=0})),n=0,a=i.length;n=0&&this[e][t].setItemVisual(this.dataIndex,r,i)},getVisual:function(r){return this[e][t].getItemVisual(this.dataIndex,r)},setLayout:function(r,i){this.dataIndex>=0&&this[e][t].setItemLayout(this.dataIndex,r,i)},getLayout:function(){return this[e][t].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[e][t].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[e][t].getRawIndex(this.dataIndex)}}}_a(Ad,Cd("hostGraph","data")),_a(Ed,Cd("hostGraph","edgeData"));const Dd=Md;var Ld=_o();function Pd(e,t){if(Ld(this).mainData===this){var r=ga({},Ld(this).datas);r[this.dataType]=t,Bd(t,r,e)}else Fd(t,this.dataType,Ld(this).mainData,e);return t}function Od(e,t){return e.struct&&e.struct.update(),t}function Nd(e,t){return ya(Ld(t).datas,(function(r,i){r!==t&&Fd(r.cloneShallow(),i,t,e)})),t}function Id(e){var t=Ld(this).mainData;return null==e||null==t?t:Ld(t).datas[e]}function Rd(){var e=Ld(this).mainData;return null==e?[{data:e}]:xa(ba(Ld(e).datas),(function(t){return{type:t,data:Ld(e).datas[t]}}))}function Bd(e,t,r){Ld(e).datas={},ya(t,(function(t,i){Fd(t,i,e,r)}))}function Fd(e,t,r,i){Ld(r).datas[t]=e,Ld(e).mainData=r,e.dataType=t,i.struct&&(e[i.structAttr]=i.struct,i.struct[i.datasAttr[t]]=e),e.getLinkedData=Id,e.getLinkedDataAll=Rd}var zd=i.SeriesModel.extend({type:"series.graphGL",visualStyleAccessPath:"itemStyle",hasSymbolVisual:!0,init:function(e){zd.superApply(this,"init",arguments),this.legendDataProvider=function(){return this._categoriesData},this._updateCategoriesData()},mergeOption:function(e){zd.superApply(this,"mergeOption",arguments),this._updateCategoriesData()},getFormattedLabel:function(e,t,r,i){var n=ac.getFormattedLabel(this,e,t,r,i);if(null==n){var a=this.getData(),o=a.dimensions[a.dimensions.length-1];n=a.get(o,e)}return n},getInitialData:function(e,t){var r=e.edges||e.links||[],n=e.data||e.nodes||[],a=this;if(n&&r)return function(e,t,r,n,a){for(var o=new Dd(!0),s=0;s "+p)),c++)}var m=i.helper.createDimensions(e,{coordDimensions:["value"]});(l=new i.List(m,r)).initData(e);var g,_,v,y=new i.List(["value"],r);return y.initData(u,h),a&&a(l,y),_=(g={mainData:l,struct:o,structAttr:"graph",datas:{node:l,edge:y},datasAttr:{node:"data",edge:"edgeData"}}).mainData,(v=g.datas)||(v={main:_},g.datasAttr={main:"data"}),g.datas=g.mainData=null,Bd(_,v,g),ya(v,(function(e){ya(_.TRANSFERABLE_METHODS,(function(t){e.wrapMethod(t,wa(Pd,g))}))})),_.wrapMethod("cloneShallow",wa(Nd,g)),ya(_.CHANGABLE_METHODS,(function(e){_.wrapMethod(e,wa(Od,g))})),function(e,t){if(!e)throw new Error(void 0)}(v[_.dataType]===_),o.update(),o}(n,r,this,0,(function(e,r){e.wrapMethod("getItemModel",(function(e){const t=a._categoriesModels[e.getShallow("category")];return t&&(t.parentModel=e.parentModel,e.parentModel=t),e}));const i=t.getModel([]).getModel;function n(e,t){const r=i.call(this,e,t);return r.resolveParentPath=o,r}function o(e){if(e&&("label"===e[0]||"label"===e[1])){const t=e.slice();return"label"===e[0]?t[0]="edgeLabel":"label"===e[1]&&(t[1]="edgeLabel"),t}return e}r.wrapMethod("getItemModel",(function(e){return e.resolveParentPath=o,e.getModel=n,e}))})).data},getGraph:function(){return this.getData().graph},getEdgeData:function(){return this.getGraph().edgeData},getCategoriesData:function(){return this._categoriesData},formatTooltip:function(e,t,r){if("edge"===r){var n=this.getData(),a=this.getDataParams(e,r),o=n.graph.getEdgeByIndex(e),s=n.getName(o.node1.dataIndex),l=n.getName(o.node2.dataIndex),h=[];return null!=s&&h.push(s),null!=l&&h.push(l),h=i.format.encodeHTML(h.join(" > ")),a.value&&(h+=" : "+i.format.encodeHTML(a.value)),h}return zd.superApply(this,"formatTooltip",arguments)},_updateCategoriesData:function(){var e=(this.option.categories||[]).map((function(e){return null!=e.value?e:Object.assign({value:0},e)})),t=new i.List(["value"],this);t.initData(e),this._categoriesData=t,this._categoriesModels=t.mapArray((function(e){return t.getItemModel(e,!0)}))},setView:function(e){null!=e.zoom&&(this.option.zoom=e.zoom),null!=e.offset&&(this.option.offset=e.offset)},setNodePosition:function(e){for(var t=0;t65535?this.indices instanceof Uint16Array&&(this.indices=new Uint32Array(this.indices)):this.indices instanceof Uint32Array&&(this.indices=new Uint16Array(this.indices)))},setTriangleCount:function(e){this.triangleCount!==e&&(this.indices=0===e?null:this.vertexCount>65535?new Uint32Array(3*e):new Uint16Array(3*e))},_getCubicCurveApproxStep:function(e,t,r,i){return 1/(Ud.dist(e,t)+Ud.dist(r,t)+Ud.dist(i,r)+1)*this.segmentScale},getCubicCurveVertexCount:function(e,t,r,i){var n=this._getCubicCurveApproxStep(e,t,r,i),a=Math.ceil(1/n);return this.useNativeLine?2*a:2*a+2},getCubicCurveTriangleCount:function(e,t,r,i){var n=this._getCubicCurveApproxStep(e,t,r,i),a=Math.ceil(1/n);return this.useNativeLine?0:2*a},getLineVertexCount:function(){return this.getPolylineVertexCount(kd)},getLineTriangleCount:function(){return this.getPolylineTriangleCount(kd)},getPolylineVertexCount:function(e){var t;return t="number"==typeof e?e:"number"!=typeof e[0]?e.length:e.length/2,this.useNativeLine?2*(t-1):2*(t-1)+2},getPolylineTriangleCount:function(e){var t;return t="number"==typeof e?e:"number"!=typeof e[0]?e.length:e.length/2,this.useNativeLine?0:2*(t-1)},addCubicCurve:function(e,t,r,i,n,a){null==a&&(a=1);var o=e[0],s=e[1],l=t[0],h=t[1],u=r[0],c=r[1],d=i[0],f=i[1],p=this._getCubicCurveApproxStep(e,t,r,i),m=p*p,g=m*p,_=3*p,v=3*m,y=6*m,x=6*g,b=o-2*l+u,w=s-2*h+c,T=3*(l-u)-o+d,S=3*(h-c)-s+f,M=o,A=s,E=(l-o)*_+b*v+T*g,C=(h-s)*_+w*v+S*g,D=b*y+T*x,L=w*y+S*x,P=T*x,O=S*x,N=0,I=0,R=Math.ceil(1/p),B=new Float32Array(3*(R+1)),F=(B=[],0);for(I=0;I1&&(M=E>0?Math.min(M,d):Math.max(M,d),A=C>0?Math.min(A,f):Math.max(A,f));this.addPolyline(B,n,a)},addLine:function(e,t,r,i){this.addPolyline([e,t],r,i)},addPolyline:function(){var e=Ud.create(),t=Ud.create(),r=Ud.create(),i=Ud.create(),n=[],a=[],o=[];return function(s,l,h,u,c){if(s.length){var d="number"!=typeof s[0];if(null==c&&(c=d?s.length:s.length/2),!(c<2)){null==u&&(u=0),null==h&&(h=1),this._itemVertexOffsets.push(this._vertexOffset);for(var f,p=d?"number"!=typeof l[0]:l.length/4===c,m=this.attributes.position,g=this.attributes.color,_=this.attributes.offset,v=this.attributes.normal,y=this.indices,x=this._vertexOffset,b=0;b1&&(m.copy(x,x-1),g.copy(x,x-1),x++);else{var S;if(b0){Ud.sub(e,n,o),Ud.sub(t,a,n),Ud.normalize(e,e),Ud.normalize(t,t),Ud.add(i,e,t),Ud.normalize(i,i);var M=h/2*Math.min(1/Ud.dot(e,i),2);r[0]=-i[1],r[1]=i[0],S=M}else Ud.sub(e,a,n),Ud.normalize(e,e),r[0]=-e[1],r[1]=e[0],S=h/2;else Ud.sub(e,n,o),Ud.normalize(e,e),r[0]=-e[1],r[1]=e[0],S=h/2;v.set(x,r),v.set(x+1,r),_.set(x,S),_.set(x+1,-S),Ud.copy(o,n),m.set(x,n),m.set(x+1,n),g.set(x,f),g.set(x+1,f),x+=2}if(this.useNativeLine)g.set(x,f),m.set(x,n),x++;else if(b>0){var A=3*this._faceOffset;(y=this.indices)[A]=x-4,y[A+1]=x-3,y[A+2]=x-2,y[A+3]=x-3,y[A+4]=x-1,y[A+5]=x-2,this._faceOffset+=2}}this._vertexOffset=x}}}}(),setItemColor:function(e,t){for(var r=this._itemVertexOffsets[e],i=e 0.0) {\n float factor = 0.0;\n if (preventOverlap) {\n float d = sqrt(d2);\n d = d - n0.w - n1.w;\n if (d > 0.0) {\n factor = scaling * n0.z * n1.z / (d * d);\n }\n else if (d < 0.0) {\n factor = scaling * 100.0 * n0.z * n1.z;\n }\n }\n else {\n factor = scaling * n0.z * n1.z / d2;\n }\n force += dir * factor;\n }\n }\n\n vec2 dir = gravityCenter - n0.xy;\n float d = 1.0;\n if (!strongGravityMode) {\n d = length(dir);\n }\n\n force += dir * n0.z * gravity / (d + 1.0);\n\n gl_FragColor = vec4(force, 0.0, 1.0);\n}\n@end\n\n@export ecgl.forceAtlas2.updateEdgeAttraction.vertex\n\nattribute vec2 node1;\nattribute vec2 node2;\nattribute float weight;\n\nuniform sampler2D positionTex;\nuniform float edgeWeightInfluence;\nuniform bool preventOverlap;\nuniform bool linLogMode;\n\nuniform vec2 windowSize: WINDOW_SIZE;\n\nvarying vec2 v_Force;\n\nvoid main() {\n\n vec4 n0 = texture2D(positionTex, node1);\n vec4 n1 = texture2D(positionTex, node2);\n\n vec2 dir = n1.xy - n0.xy;\n float d = length(dir);\n float w;\n if (edgeWeightInfluence == 0.0) {\n w = 1.0;\n }\n else if (edgeWeightInfluence == 1.0) {\n w = weight;\n }\n else {\n w = pow(weight, edgeWeightInfluence);\n }\n vec2 offset = vec2(1.0 / windowSize.x, 1.0 / windowSize.y);\n vec2 scale = vec2((windowSize.x - 1.0) / windowSize.x, (windowSize.y - 1.0) / windowSize.y);\n vec2 pos = node1 * scale * 2.0 - 1.0;\n gl_Position = vec4(pos + offset, 0.0, 1.0);\n gl_PointSize = 1.0;\n\n float factor;\n if (preventOverlap) {\n d = d - n1.w - n0.w;\n }\n if (d <= 0.0) {\n v_Force = vec2(0.0);\n return;\n }\n\n if (linLogMode) {\n factor = w * log(d) / d;\n }\n else {\n factor = w;\n }\n v_Force = dir * factor;\n}\n@end\n\n@export ecgl.forceAtlas2.updateEdgeAttraction.fragment\n\nvarying vec2 v_Force;\n\nvoid main() {\n gl_FragColor = vec4(v_Force, 0.0, 0.0);\n}\n@end\n\n@export ecgl.forceAtlas2.calcWeightedSum.vertex\n\nattribute vec2 node;\n\nvarying vec2 v_NodeUv;\n\nvoid main() {\n\n v_NodeUv = node;\n gl_Position = vec4(0.0, 0.0, 0.0, 1.0);\n gl_PointSize = 1.0;\n}\n@end\n\n@export ecgl.forceAtlas2.calcWeightedSum.fragment\n\nvarying vec2 v_NodeUv;\n\nuniform sampler2D positionTex;\nuniform sampler2D forceTex;\nuniform sampler2D forcePrevTex;\n\nvoid main() {\n vec2 force = texture2D(forceTex, v_NodeUv).rg;\n vec2 forcePrev = texture2D(forcePrevTex, v_NodeUv).rg;\n\n float mass = texture2D(positionTex, v_NodeUv).z;\n float swing = length(force - forcePrev) * mass;\n float traction = length(force + forcePrev) * 0.5 * mass;\n\n gl_FragColor = vec4(swing, traction, 0.0, 0.0);\n}\n@end\n\n@export ecgl.forceAtlas2.calcGlobalSpeed\n\nuniform sampler2D globalSpeedPrevTex;\nuniform sampler2D weightedSumTex;\nuniform float jitterTolerence;\n\nvoid main() {\n vec2 weightedSum = texture2D(weightedSumTex, vec2(0.5)).xy;\n float prevGlobalSpeed = texture2D(globalSpeedPrevTex, vec2(0.5)).x;\n float globalSpeed = jitterTolerence * jitterTolerence\n * weightedSum.y / weightedSum.x;\n if (prevGlobalSpeed > 0.0) {\n globalSpeed = min(globalSpeed / prevGlobalSpeed, 1.5) * prevGlobalSpeed;\n }\n gl_FragColor = vec4(globalSpeed, 0.0, 0.0, 1.0);\n}\n@end\n\n@export ecgl.forceAtlas2.updatePosition\n\nuniform sampler2D forceTex;\nuniform sampler2D forcePrevTex;\nuniform sampler2D positionTex;\nuniform sampler2D globalSpeedTex;\n\nvarying vec2 v_Texcoord;\n\nvoid main() {\n vec2 force = texture2D(forceTex, v_Texcoord).xy;\n vec2 forcePrev = texture2D(forcePrevTex, v_Texcoord).xy;\n vec4 node = texture2D(positionTex, v_Texcoord);\n\n float globalSpeed = texture2D(globalSpeedTex, vec2(0.5)).r;\n float swing = length(force - forcePrev);\n float speed = 0.1 * globalSpeed / (0.1 + globalSpeed * sqrt(swing));\n\n float df = length(force);\n if (df > 0.0) {\n speed = min(df * speed, 10.0) / df;\n\n gl_FragColor = vec4(node.xy + speed * force, node.zw);\n }\n else {\n gl_FragColor = node;\n }\n}\n@end\n\n@export ecgl.forceAtlas2.edges.vertex\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\n\nattribute vec2 node;\nattribute vec4 a_Color : COLOR;\nvarying vec4 v_Color;\n\nuniform sampler2D positionTex;\n\nvoid main()\n{\n gl_Position = worldViewProjection * vec4(\n texture2D(positionTex, node).xy, -10.0, 1.0\n );\n v_Color = a_Color;\n}\n@end\n\n@export ecgl.forceAtlas2.edges.fragment\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\nvarying vec4 v_Color;\nvoid main() {\n gl_FragColor = color * v_Color;\n}\n@end");var Wd={repulsionByDegree:!0,linLogMode:!1,strongGravityMode:!1,gravity:1,scaling:1,edgeWeightInfluence:1,jitterTolerence:.1,preventOverlap:!1,dissuadeHubs:!1,gravityCenter:null};function jd(e){var t={type:Ka.Texture.FLOAT,minFilter:Ka.Texture.NEAREST,magFilter:Ka.Texture.NEAREST};this._positionSourceTex=new Ka.Texture2D(t),this._positionSourceTex.flipY=!1,this._positionTex=new Ka.Texture2D(t),this._positionPrevTex=new Ka.Texture2D(t),this._forceTex=new Ka.Texture2D(t),this._forcePrevTex=new Ka.Texture2D(t),this._weightedSumTex=new Ka.Texture2D(t),this._weightedSumTex.width=this._weightedSumTex.height=1,this._globalSpeedTex=new Ka.Texture2D(t),this._globalSpeedPrevTex=new Ka.Texture2D(t),this._globalSpeedTex.width=this._globalSpeedTex.height=1,this._globalSpeedPrevTex.width=this._globalSpeedPrevTex.height=1,this._nodeRepulsionPass=new pn({fragment:Ka.Shader.source("ecgl.forceAtlas2.updateNodeRepulsion")}),this._positionPass=new pn({fragment:Ka.Shader.source("ecgl.forceAtlas2.updatePosition")}),this._globalSpeedPass=new pn({fragment:Ka.Shader.source("ecgl.forceAtlas2.calcGlobalSpeed")}),this._copyPass=new pn({fragment:Ka.Shader.source("clay.compositor.output")});var r=function(e){e.blendEquation(e.FUNC_ADD),e.blendFunc(e.ONE,e.ONE)};this._edgeForceMesh=new Ka.Mesh({geometry:new Ka.Geometry({attributes:{node1:new Ka.Geometry.Attribute("node1","float",2),node2:new Ka.Geometry.Attribute("node2","float",2),weight:new Ka.Geometry.Attribute("weight","float",1)},dynamic:!0,mainAttribute:"node1"}),material:new Ka.Material({transparent:!0,shader:Ka.createShader("ecgl.forceAtlas2.updateEdgeAttraction"),blend:r,depthMask:!1,depthText:!1}),mode:Ka.Mesh.POINTS}),this._weightedSumMesh=new Ka.Mesh({geometry:new Ka.Geometry({attributes:{node:new Ka.Geometry.Attribute("node","float",2)},dynamic:!0,mainAttribute:"node"}),material:new Ka.Material({transparent:!0,shader:Ka.createShader("ecgl.forceAtlas2.calcWeightedSum"),blend:r,depthMask:!1,depthText:!1}),mode:Ka.Mesh.POINTS}),this._framebuffer=new zi({depthBuffer:!1}),this._dummyCamera=new Ka.OrthographicCamera({left:-1,right:1,top:1,bottom:-1,near:0,far:100}),this._globalSpeed=0}jd.prototype.updateOption=function(e){for(var t in Wd)this[t]=Wd[t];var r=this._nodes.length;if(this.jitterTolerence=r>5e4?10:r>5e3?1:.1,this.scaling=r>100?2:10,e)for(var t in Wd)null!=e[t]&&(this[t]=e[t]);if(this.repulsionByDegree)for(var i=this._positionSourceTex.pixels,n=0;ne},jd.prototype._swapTexture=function(){var e=this._positionPrevTex;this._positionPrevTex=this._positionTex,this._positionTex=e,e=this._forcePrevTex,this._forcePrevTex=this._forceTex,this._forceTex=e,e=this._globalSpeedPrevTex,this._globalSpeedPrevTex=this._globalSpeedTex,this._globalSpeedTex=e},jd.prototype._initFromSource=function(e){this._framebuffer.attach(this._positionPrevTex),this._framebuffer.bind(e),this._copyPass.setUniform("texture",this._positionSourceTex),this._copyPass.render(e),e.gl.clearColor(0,0,0,0),this._framebuffer.attach(this._forcePrevTex),e.gl.clear(e.gl.COLOR_BUFFER_BIT),this._framebuffer.attach(this._globalSpeedPrevTex),e.gl.clear(e.gl.COLOR_BUFFER_BIT),this._framebuffer.unbind(e)},jd.prototype._resize=function(e,t){["_positionSourceTex","_positionTex","_positionPrevTex","_forceTex","_forcePrevTex"].forEach((function(r){this[r].width=e,this[r].height=t,this[r].dirty()}),this)},jd.prototype.dispose=function(e){this._framebuffer.dispose(e),this._copyPass.dispose(e),this._nodeRepulsionPass.dispose(e),this._positionPass.dispose(e),this._globalSpeedPass.dispose(e),this._edgeForceMesh.geometry.dispose(e),this._weightedSumMesh.geometry.dispose(e),this._positionSourceTex.dispose(e),this._positionTex.dispose(e),this._positionPrevTex.dispose(e),this._forceTex.dispose(e),this._forcePrevTex.dispose(e),this._weightedSumTex.dispose(e),this._globalSpeedTex.dispose(e),this._globalSpeedPrevTex.dispose(e)};const Xd=jd;var qd=function(){var e=function(){return new Float32Array(2)},t=function(e,t){var r=t[0]-e[0],i=t[1]-e[1];return Math.sqrt(r*r+i*i)},r=function(e){var t=e[0],r=e[1];return Math.sqrt(t*t+r*r)},i=function(e,t,r,i){return e[0]=t[0]+r[0]*i,e[1]=t[1]+r[1]*i,e},n=function(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e},a=function(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e},o=function(e,t,r){return e[0]=t,e[1]=r,e};function s(){this.subRegions=[],this.nSubRegions=0,this.node=null,this.mass=0,this.centerOfMass=null,this.bbox=new Float32Array(4),this.size=0}var l=s.prototype;function h(){this.position=new Float32Array(2),this.force=e(),this.forcePrev=e(),this.mass=1,this.inDegree=0,this.outDegree=0}function u(e,t){this.source=e,this.target=t,this.weight=1}function c(){this.autoSettings=!0,this.barnesHutOptimize=!0,this.barnesHutTheta=1.5,this.repulsionByDegree=!0,this.linLogMode=!1,this.strongGravityMode=!1,this.gravity=1,this.scaling=1,this.edgeWeightInfluence=1,this.jitterTolerence=.1,this.preventOverlap=!1,this.dissuadeHubs=!1,this.rootRegion=new s,this.rootRegion.centerOfMass=e(),this.nodes=[],this.edges=[],this.bbox=new Float32Array(4),this.gravityCenter=null,this._massArr=null,this._swingingArr=null,this._sizeArr=null,this._globalSpeed=0}l.beforeUpdate=function(){for(var e=0;e=e&&this.bbox[1]<=t&&this.bbox[3]>=t},l.setBBox=function(e,t,r,i){this.bbox[0]=e,this.bbox[1]=t,this.bbox[2]=r,this.bbox[3]=i,this.size=(r-e+i-t)/2},l._newSubRegion=function(){var e=this.subRegions[this.nSubRegions];return e||(e=new s,this.subRegions[this.nSubRegions]=e),this.nSubRegions++,e},l._addNodeToSubRegion=function(e){var t=this.findSubRegion(e.position[0],e.position[1]),r=this.bbox;if(!t){var i=(r[0]+r[2])/2,n=(r[1]+r[3])/2,a=(r[2]-r[0])/2,o=(r[3]-r[1])/2,s=e.position[0]>=i?1:0,l=e.position[1]>=n?1:0;(t=this._newSubRegion()).setBBox(s*a+r[0],l*o+r[1],(s+1)*a+r[0],(l+1)*o+r[1])}t.addNode(e)},l._updateCenterOfMass=function(e){null==this.centerOfMass&&(this.centerOfMass=new Float32Array(2));var t=this.centerOfMass[0]*this.mass,r=this.centerOfMass[1]*this.mass;t+=e.position[0]*e.mass,r+=e.position[1]*e.mass,this.mass+=e.mass,this.centerOfMass[0]=t/this.mass,this.centerOfMass[1]=r/this.mass};var d=c.prototype;d.initNodes=function(e,t,r){var i=t.length;this.nodes.length=0;for(var n=void 0!==r,a=0;a0&&(this.strongGravityMode?this.applyNodeStrongGravity(c):this.applyNodeGravity(c))}for(h=0;h0&&(_=Math.min(_/this._globalSpeed,1.5)*this._globalSpeed),this._globalSpeed=_,h=0;h0&&(y=Math.min(x*y,10)/x,i(u.position,u.position,u.force,y))}},d.applyRegionToNodeRepulsion=function(){var t=e();return function(e,r){if(e.node)this.applyNodeToNodeRepulsion(e.node,r,!0);else{a(t,r.position,e.centerOfMass);var n=t[0]*t[0]+t[1]*t[1];if(n>this.barnesHutTheta*e.size*e.size){var o=this.scaling*r.mass*e.mass/n;i(r.force,r.force,t,o)}else for(var s=0;s0)s=this.scaling*e.mass*r.mass/(l*l);else{if(!(l<0))return;s=100*this.scaling*e.mass*r.mass}}else s=this.scaling*e.mass*r.mass/o;i(e.force,e.force,t,s),i(r.force,r.force,t,-s)}}}}(),d.applyEdgeAttraction=function(){var t=e();return function(e){var n=e.source,o=e.target;a(t,n.position,o.position);var s,l,h=r(t);s=0===this.edgeWeightInfluence?1:1===this.edgeWeightInfluence?e.weight:Math.pow(e.weight,this.edgeWeightInfluence),this.preventOverlap&&(h=h-n.size-o.size)<=0||(l=this.linLogMode?-s*Math.log(h+1)/(h+1):-s,i(n.force,n.force,t,l),i(o.force,o.force,t,-l))}}(),d.applyNodeGravity=function(){var t=e();return function(e){a(t,this.gravityCenter,e.position);var n=r(t);i(e.force,e.force,t,this.gravity*e.mass/(n+1))}}(),d.applyNodeStrongGravity=function(){var t=e();return function(e){a(t,this.gravityCenter,e.position),i(e.force,e.force,t,this.gravity*e.mass)}}(),d.updateBBox=function(){for(var e=1/0,t=1/0,r=-1/0,i=-1/0,n=0;n5e4?10:a>5e3?1:.1,t.scaling=a>100?2:10,t.barnesHutOptimize=a>1e3,e)for(var r in Zd)null!=e[r]&&(t[r]=e[r]);if(!t.gravityCenter){for(var o=[1/0,1/0],s=[-1/0,-1/0],l=0;le},Yd.prototype.getNodePosition=function(e,t){if(t||(t=new Float32Array(2*this._nodes.length)),this._positionArr)for(var r=0;r0?1.1:.9,a=Math.max(Math.min(this._zoom*n,this.maxZoom),this.minZoom);n=a/this._zoom;var o=this._convertPos(r,i),s=(o.x-this._dx)*(n-1),l=(o.y-this._dy)*(n-1);this._dx-=s,this._dy-=l,this._zoom=a,this._needsUpdate=!0}}},dispose:function(){var e=this.zr;e.off("mousedown",this._mouseDownHandler),e.off("mousemove",this._mouseMoveHandler),e.off("mouseup",this._mouseUpHandler),e.off("mousewheel",this._mouseWheelHandler),e.off("globalout",this._mouseUpHandler),e.animation.off("frame",this._update)}});var Jd=Po.vec2;Ka.Shader.import("@export ecgl.lines2D.vertex\n\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\n\nattribute vec2 position: POSITION;\nattribute vec4 a_Color : COLOR;\nvarying vec4 v_Color;\n\n#ifdef POSITIONTEXTURE_ENABLED\nuniform sampler2D positionTexture;\n#endif\n\nvoid main()\n{\n gl_Position = worldViewProjection * vec4(position, -10.0, 1.0);\n\n v_Color = a_Color;\n}\n\n@end\n\n@export ecgl.lines2D.fragment\n\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\n\nvarying vec4 v_Color;\n\nvoid main()\n{\n gl_FragColor = color * v_Color;\n}\n@end\n\n\n@export ecgl.meshLines2D.vertex\n\nattribute vec2 position: POSITION;\nattribute vec2 normal;\nattribute float offset;\nattribute vec4 a_Color : COLOR;\n\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\nuniform vec4 viewport : VIEWPORT;\n\nvarying vec4 v_Color;\nvarying float v_Miter;\n\nvoid main()\n{\n vec4 p2 = worldViewProjection * vec4(position + normal, -10.0, 1.0);\n gl_Position = worldViewProjection * vec4(position, -10.0, 1.0);\n\n p2.xy /= p2.w;\n gl_Position.xy /= gl_Position.w;\n\n vec2 N = normalize(p2.xy - gl_Position.xy);\n gl_Position.xy += N * offset / viewport.zw * 2.0;\n\n gl_Position.xy *= gl_Position.w;\n\n v_Color = a_Color;\n}\n@end\n\n\n@export ecgl.meshLines2D.fragment\n\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\n\nvarying vec4 v_Color;\nvarying float v_Miter;\n\nvoid main()\n{\n gl_FragColor = color * v_Color;\n}\n\n@end");var $d=1;const ef=i.ChartView.extend({type:"graphGL",__ecgl__:!0,init:function(e,t){this.groupGL=new Ka.Node,this.viewGL=new Il("orthographic"),this.viewGL.camera.left=this.viewGL.camera.right=0,this.viewGL.add(this.groupGL),this._pointsBuilder=new Fc(!0,t),this._forceEdgesMesh=new Ka.Mesh({material:new Ka.Material({shader:Ka.createShader("ecgl.forceAtlas2.edges"),transparent:!0,depthMask:!1,depthTest:!1}),$ignorePicking:!0,geometry:new Ka.Geometry({attributes:{node:new Ka.Geometry.Attribute("node","float",2),color:new Ka.Geometry.Attribute("color","float",4,"COLOR")},dynamic:!0,mainAttribute:"node"}),renderOrder:-1,mode:Ka.Mesh.LINES}),this._edgesMesh=new Ka.Mesh({material:new Ka.Material({shader:Ka.createShader("ecgl.meshLines2D"),transparent:!0,depthMask:!1,depthTest:!1}),$ignorePicking:!0,geometry:new Hd({useNativeLine:!1,dynamic:!0}),renderOrder:-1,culling:!1}),this._layoutId=0,this._control=new Qd({zr:t.getZr(),viewGL:this.viewGL}),this._control.setTarget(this.groupGL),this._control.init(),this._clickHandler=this._clickHandler.bind(this)},render:function(e,t,r){this.groupGL.add(this._pointsBuilder.rootNode),this._model=e,this._api=r,this._initLayout(e,t,r),this._pointsBuilder.update(e,t,r),this._forceLayoutInstance instanceof Xd||this.groupGL.remove(this._forceEdgesMesh),this._updateCamera(e,r),this._control.off("update"),this._control.on("update",(function(){r.dispatchAction({type:"graphGLRoam",seriesId:e.id,zoom:this._control.getZoom(),offset:this._control.getOffset()}),this._pointsBuilder.updateView(this.viewGL.camera)}),this),this._control.setZoom(Mn(e.get("zoom"),1)),this._control.setOffset(e.get("offset")||[0,0]);var i=this._pointsBuilder.getPointsMesh();if(i.off("mousemove",this._mousemoveHandler),i.off("mouseout",this._mouseOutHandler,this),r.getZr().off("click",this._clickHandler),this._pointsBuilder.highlightOnMouseover=!0,e.get("focusNodeAdjacency")){var n=e.get("focusNodeAdjacencyOn");"click"===n?r.getZr().on("click",this._clickHandler):"mouseover"===n&&(i.on("mousemove",this._mousemoveHandler,this),i.on("mouseout",this._mouseOutHandler,this),this._pointsBuilder.highlightOnMouseover=!1)}this._lastMouseOverDataIndex=-1},_clickHandler:function(e){if(!this._layouting){var t=this._pointsBuilder.getPointsMesh().dataIndex;t>=0?this._api.dispatchAction({type:"graphGLFocusNodeAdjacency",seriesId:this._model.id,dataIndex:t}):this._api.dispatchAction({type:"graphGLUnfocusNodeAdjacency",seriesId:this._model.id})}},_mousemoveHandler:function(e){if(!this._layouting){var t=this._pointsBuilder.getPointsMesh().dataIndex;t>=0?t!==this._lastMouseOverDataIndex&&this._api.dispatchAction({type:"graphGLFocusNodeAdjacency",seriesId:this._model.id,dataIndex:t}):this._mouseOutHandler(e),this._lastMouseOverDataIndex=t}},_mouseOutHandler:function(e){this._layouting||(this._api.dispatchAction({type:"graphGLUnfocusNodeAdjacency",seriesId:this._model.id}),this._lastMouseOverDataIndex=-1)},_updateForceEdgesGeometry:function(e,t){var r=this._forceEdgesMesh.geometry,i=t.getEdgeData(),n=0,a=this._forceLayoutInstance,o=2*i.count();r.attributes.node.init(o),r.attributes.color.init(o),i.each((function(t){var o=e[t];r.attributes.node.set(n,a.getNodeUV(o.node1)),r.attributes.node.set(n+1,a.getNodeUV(o.node2));var s=Ih(i,o.dataIndex),l=Ka.parseColor(s);l[3]*=Mn(Rh(i,o.dataIndex),1),r.attributes.color.set(n,l),r.attributes.color.set(n+1,l),n+=2})),r.dirty()},_updateMeshLinesGeometry:function(){var e=this._model.getEdgeData(),t=this._edgesMesh.geometry,r=(e=this._model.getEdgeData(),this._model.getData().getLayout("points"));t.resetOffset(),t.setVertexCount(e.count()*t.getLineVertexCount()),t.setTriangleCount(e.count()*t.getLineTriangleCount());var i=[],n=[],a=["lineStyle","width"];this._originalEdgeColors=new Float32Array(4*e.count()),this._edgeIndicesMap=new Float32Array(e.count()),e.each((function(o){var s=e.graph.getEdgeByIndex(o),l=2*s.node1.dataIndex,h=2*s.node2.dataIndex;i[0]=r[l],i[1]=r[l+1],n[0]=r[h],n[1]=r[h+1];var u=Ih(e,s.dataIndex),c=Ka.parseColor(u);c[3]*=Mn(Rh(e,s.dataIndex),1);var d=e.getItemModel(s.dataIndex),f=Mn(d.get(a),1)*this._api.getDevicePixelRatio();t.addLine(i,n,c,f);for(var p=0;p<4;p++)this._originalEdgeColors[4*s.dataIndex+p]=c[p];this._edgeIndicesMap[s.dataIndex]=o}),this),t.dirty()},_updateForceNodesGeometry:function(e){for(var t=this._pointsBuilder.getPointsMesh(),r=[],i=0;i=f&&(l._syncNodePosition(e),d=0),r.getZr().refresh(),Qa((function(){p(t)}))}))};Qa((function(){l._forceLayoutInstanceToDispose&&(l._forceLayoutInstanceToDispose.dispose(n.layer.renderer),l._forceLayoutInstanceToDispose=null),p(h)})),this._layouting=!0}}},stopLayout:function(e,t,r,i){i&&null!=i.from&&i.from!==this.uid||(this._layoutId=0,this.groupGL.remove(this._forceEdgesMesh),this.groupGL.add(this._edgesMesh),this._forceLayoutInstance&&this.viewGL.layer&&(i&&i.beforeLayout||(this._syncNodePosition(e),this._updateAfterLayout(e,t,r)),this._api.getZr().refresh(),this._layouting=!1))},_syncNodePosition:function(e){var t=this._forceLayoutInstance.getNodePosition(this.viewGL.layer.renderer);e.getData().setLayout("points",t),e.setNodePosition(t)},_updateAfterLayout:function(e,t,r){this._updateMeshLinesGeometry(),this._pointsBuilder.removePositionTexture(),this._pointsBuilder.updateLayout(e,t,r),this._pointsBuilder.updateView(this.viewGL.camera),this._pointsBuilder.updateLabels(),this._pointsBuilder.showLabels()},focusNodeAdjacency:function(e,t,r,i){var n=this._model.getData();this._downplayAll();var a=i.dataIndex,o=n.graph,s=[],l=o.getNodeByIndex(a);s.push(l),l.edges.forEach((function(e){e.dataIndex<0||(e.node1!==l&&s.push(e.node1),e.node2!==l&&s.push(e.node2))}),this),this._pointsBuilder.fadeOutAll(.05),this._fadeOutEdgesAll(.05),s.forEach((function(e){this._pointsBuilder.highlight(n,e.dataIndex)}),this),this._pointsBuilder.updateLabels(s.map((function(e){return e.dataIndex})));var h=[];l.edges.forEach((function(e){e.dataIndex>=0&&(this._highlightEdge(e.dataIndex),h.push(e))}),this),this._focusNodes=s,this._focusEdges=h},unfocusNodeAdjacency:function(e,t,r,i){this._downplayAll(),this._pointsBuilder.fadeInAll(),this._fadeInEdgesAll(),this._pointsBuilder.updateLabels()},_highlightEdge:function(e){var t=this._model.getEdgeData().getItemModel(e),r=Ka.parseColor(t.get("emphasis.lineStyle.color")||t.get("lineStyle.color")),i=Mn(t.get("emphasis.lineStyle.opacity"),t.get("lineStyle.opacity"),1);r[3]*=i,this._edgesMesh.geometry.setItemColor(this._edgeIndicesMap[e],r)},_downplayAll:function(){this._focusNodes&&this._focusNodes.forEach((function(e){this._pointsBuilder.downplay(this._model.getData(),e.dataIndex)}),this),this._focusEdges&&this._focusEdges.forEach((function(e){this._downplayEdge(e.dataIndex)}),this)},_downplayEdge:function(e){var t=this._getColor(e,[]);this._edgesMesh.geometry.setItemColor(this._edgeIndicesMap[e],t)},_setEdgeFade:(tf=[],function(e,t){this._getColor(e,tf),tf[3]*=t,this._edgesMesh.geometry.setItemColor(this._edgeIndicesMap[e],tf)}),_getColor:function(e,t){for(var r=0;r<4;r++)t[r]=this._originalEdgeColors[4*e+r];return t},_fadeOutEdgesAll:function(e){this._model.getData().graph.eachEdge((function(t){this._setEdgeFade(t.dataIndex,e)}),this)},_fadeInEdgesAll:function(){this._fadeOutEdgesAll(1)},_updateCamera:function(e,t){this.viewGL.setViewport(0,0,t.getWidth(),t.getHeight(),t.getDevicePixelRatio());for(var r=this.viewGL.camera,i=e.getData().getLayout("points"),n=Jd.create(1/0,1/0),a=Jd.create(-1/0,-1/0),o=[],s=0;sr.left&&hr.top)){var u=Math.max(a[0]-n[0],10),c=u/t.getWidth()*t.getHeight();u*=1.4,c*=1.4,n[0]-=.2*u,r.left=n[0],r.top=l-c/2,r.bottom=l+c/2,r.right=u+n[0],r.near=0,r.far=100}},dispose:function(){var e=this.viewGL.layer.renderer;this._forceLayoutInstance&&this._forceLayoutInstance.dispose(e),this.groupGL.removeAll(),this._layoutId=-1,this._pointsBuilder.dispose()},remove:function(){this.groupGL.removeAll(),this._control.dispose()}});var tf;function rf(e){return e instanceof Array||(e=[e,e]),e}(0,i.use)((function(e){function t(){}e.registerChartView(ef),e.registerSeriesModel(Gd),e.registerVisual((function(e){const t={};e.eachSeriesByType("graphGL",(function(e){var r=e.getCategoriesData(),n=e.getData(),a={};r.each((function(i){var n=r.getName(i);a["ec-"+n]=i;var o=r.getItemModel(i),s=o.getModel("itemStyle").getItemStyle();s.fill||(s.fill=e.getColorFromPalette(n,t)),r.setItemVisual(i,"style",s);var l=["symbol","symbolSize","symbolKeepAspect"];for(let e=0;e65535?new Uint32Array(3*i):new Uint16Array(3*i))},addLine:function(e){var t=this._vertexOffset;this.attributes.position.set(t,[e[0],e[1],1]),this.attributes.position.set(t+1,[e[0],e[1],-1]),this.attributes.position.set(t+2,[e[0],e[1],2]),this.attributes.position.set(t+3,[e[0],e[1],-2]),this.setTriangleIndices(this._faceOffset++,[t,t+1,t+2]),this.setTriangleIndices(this._faceOffset++,[t+1,t+2,t+3]),this._vertexOffset+=4}});Xe.import("@export ecgl.vfParticle.particle.fragment\n\nuniform sampler2D particleTexture;\nuniform sampler2D spawnTexture;\nuniform sampler2D velocityTexture;\n\nuniform float deltaTime;\nuniform float elapsedTime;\n\nuniform float speedScaling : 1.0;\n\nuniform vec2 textureSize;\nuniform vec4 region : [0, 0, 1, 1];\nuniform float firstFrameTime;\n\nvarying vec2 v_Texcoord;\n\n\nvoid main()\n{\n vec4 p = texture2D(particleTexture, v_Texcoord);\n bool spawn = false;\n if (p.w <= 0.0) {\n p = texture2D(spawnTexture, fract(v_Texcoord + elapsedTime / 10.0));\n p.w -= firstFrameTime;\n spawn = true;\n }\n vec2 v = texture2D(velocityTexture, fract(p.xy * region.zw + region.xy)).xy;\n v = (v - 0.5) * 2.0;\n p.z = length(v);\n p.xy += v * deltaTime / 10.0 * speedScaling;\n p.w -= deltaTime;\n\n if (spawn || p.xy != fract(p.xy)) {\n p.z = 0.0;\n }\n p.xy = fract(p.xy);\n\n gl_FragColor = p;\n}\n@end\n\n@export ecgl.vfParticle.renderPoints.vertex\n\n#define PI 3.1415926\n\nattribute vec2 texcoord : TEXCOORD_0;\n\nuniform sampler2D particleTexture;\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\n\nuniform float size : 1.0;\n\nvarying float v_Mag;\nvarying vec2 v_Uv;\n\nvoid main()\n{\n vec4 p = texture2D(particleTexture, texcoord);\n\n if (p.w > 0.0 && p.z > 1e-5) {\n gl_Position = worldViewProjection * vec4(p.xy * 2.0 - 1.0, 0.0, 1.0);\n }\n else {\n gl_Position = vec4(100000.0, 100000.0, 100000.0, 1.0);\n }\n\n v_Mag = p.z;\n v_Uv = p.xy;\n\n gl_PointSize = size;\n}\n\n@end\n\n@export ecgl.vfParticle.renderPoints.fragment\n\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\nuniform sampler2D gradientTexture;\nuniform sampler2D colorTexture;\nuniform sampler2D spriteTexture;\n\nvarying float v_Mag;\nvarying vec2 v_Uv;\n\nvoid main()\n{\n gl_FragColor = color;\n#ifdef SPRITETEXTURE_ENABLED\n gl_FragColor *= texture2D(spriteTexture, gl_PointCoord);\n if (color.a == 0.0) {\n discard;\n }\n#endif\n#ifdef GRADIENTTEXTURE_ENABLED\n gl_FragColor *= texture2D(gradientTexture, vec2(v_Mag, 0.5));\n#endif\n#ifdef COLORTEXTURE_ENABLED\n gl_FragColor *= texture2D(colorTexture, v_Uv);\n#endif\n}\n\n@end\n\n@export ecgl.vfParticle.renderLines.vertex\n\n#define PI 3.1415926\n\nattribute vec3 position : POSITION;\n\nuniform sampler2D particleTexture;\nuniform sampler2D prevParticleTexture;\n\nuniform float size : 1.0;\nuniform vec4 vp: VIEWPORT;\nuniform mat4 worldViewProjection : WORLDVIEWPROJECTION;\n\nvarying float v_Mag;\nvarying vec2 v_Uv;\n\n@import clay.util.rand\n\nvoid main()\n{\n vec4 p = texture2D(particleTexture, position.xy);\n vec4 p2 = texture2D(prevParticleTexture, position.xy);\n\n p.xy = p.xy * 2.0 - 1.0;\n p2.xy = p2.xy * 2.0 - 1.0;\n\n if (p.w > 0.0 && p.z > 1e-5) {\n vec2 dir = normalize(p.xy - p2.xy);\n vec2 norm = vec2(dir.y / vp.z, -dir.x / vp.w) * sign(position.z) * size;\n if (abs(position.z) == 2.0) {\n gl_Position = vec4(p.xy + norm, 0.0, 1.0);\n v_Uv = p.xy;\n v_Mag = p.z;\n }\n else {\n gl_Position = vec4(p2.xy + norm, 0.0, 1.0);\n v_Mag = p2.z;\n v_Uv = p2.xy;\n }\n gl_Position = worldViewProjection * gl_Position;\n }\n else {\n gl_Position = vec4(100000.0, 100000.0, 100000.0, 1.0);\n }\n}\n\n@end\n\n@export ecgl.vfParticle.renderLines.fragment\n\nuniform vec4 color : [1.0, 1.0, 1.0, 1.0];\nuniform sampler2D gradientTexture;\nuniform sampler2D colorTexture;\n\nvarying float v_Mag;\nvarying vec2 v_Uv;\n\nvoid main()\n{\n gl_FragColor = color;\n #ifdef GRADIENTTEXTURE_ENABLED\n gl_FragColor *= texture2D(gradientTexture, vec2(v_Mag, 0.5));\n#endif\n#ifdef COLORTEXTURE_ENABLED\n gl_FragColor *= texture2D(colorTexture, v_Uv);\n#endif\n}\n\n@end\n");var of=function(){this.motionBlurFactor=.99,this.vectorFieldTexture=new Dr({type:wr.FLOAT,flipY:!1}),this.particleLife=[5,20],this._particleType="point",this._particleSize=1,this.particleColor=[1,1,1,1],this.particleSpeedScaling=1,this._thisFrameTexture=null,this._particlePass=null,this._spawnTexture=null,this._particleTexture0=null,this._particleTexture1=null,this._particlePointsMesh=null,this._surfaceFrameBuffer=null,this._elapsedTime=0,this._scene=null,this._camera=null,this._lastFrameTexture=null,this._supersampling=1,this._downsampleTextures=[],this._width=512,this._height=512,this.init()};of.prototype={constructor:of,init:function(){var e={type:wr.FLOAT,minFilter:wr.NEAREST,magFilter:wr.NEAREST,useMipmap:!1};this._spawnTexture=new Dr(e),this._particleTexture0=new Dr(e),this._particleTexture1=new Dr(e),this._frameBuffer=new zi({depthBuffer:!1}),this._particlePass=new pn({fragment:Xe.source("ecgl.vfParticle.particle.fragment")}),this._particlePass.setUniform("velocityTexture",this.vectorFieldTexture),this._particlePass.setUniform("spawnTexture",this._spawnTexture),this._downsamplePass=new pn({fragment:Xe.source("clay.compositor.downsample")});var t=new Sr({renderOrder:10,material:new le({shader:new Xe(Xe.source("ecgl.vfParticle.renderPoints.vertex"),Xe.source("ecgl.vfParticle.renderPoints.fragment"))}),mode:Sr.POINTS,geometry:new Vr({dynamic:!0,mainAttribute:"texcoord0"})}),r=new Sr({renderOrder:10,material:new le({shader:new Xe(Xe.source("ecgl.vfParticle.renderLines.vertex"),Xe.source("ecgl.vfParticle.renderLines.fragment"))}),geometry:new af,culling:!1}),i=new Sr({material:new le({shader:new Xe(Xe.source("ecgl.color.vertex"),Xe.source("ecgl.color.fragment"))}),geometry:new ki});i.material.enableTexture("diffuseMap"),this._particlePointsMesh=t,this._particleLinesMesh=r,this._lastFrameFullQuadMesh=i,this._camera=new un,this._thisFrameTexture=new Dr,this._lastFrameTexture=new Dr},setParticleDensity:function(e,t){for(var r=new Float32Array(e*t*4),i=0,n=this.particleLife,a=0;a0?e[e.length-1]:this._lastFrameTexture},setRegion:function(e){this._particlePass.setUniform("region",e)},resize:function(e,t){this._lastFrameTexture.width=e*this._supersampling,this._lastFrameTexture.height=t*this._supersampling,this._thisFrameTexture.width=e*this._supersampling,this._thisFrameTexture.height=t*this._supersampling,this._width=e,this._height=t},setParticleSize:function(e){var t=this._getParticleMesh();if(e<=2)return t.material.disableTexture("spriteTexture"),void(t.material.transparent=!1);this._spriteTexture||(this._spriteTexture=new Dr),this._spriteTexture.image&&this._spriteTexture.image.width===e||(this._spriteTexture.image=function(e){var t=document.createElement("canvas");t.width=t.height=e;var r=t.getContext("2d");return r.fillStyle="#fff",r.arc(e/2,e/2,e/2,0,2*Math.PI),r.fill(),t}(e),this._spriteTexture.dirty()),t.material.transparent=!0,t.material.enableTexture("spriteTexture"),t.material.set("spriteTexture",this._spriteTexture),this._particleSize=e},setGradientTexture:function(e){var t=this._getParticleMesh().material;t[e?"enableTexture":"disableTexture"]("gradientTexture"),t.setUniform("gradientTexture",e)},setColorTextureImage:function(e,t){this._getParticleMesh().material.setTextureImage("colorTexture",e,t,{flipY:!0})},setParticleType:function(e){this._particleType=e},clearFrame:function(e){var t=this._frameBuffer;t.attach(this._lastFrameTexture),t.bind(e),e.gl.clear(e.gl.DEPTH_BUFFER_BIT|e.gl.COLOR_BUFFER_BIT),t.unbind(e)},setSupersampling:function(e){this._supersampling=e,this.resize(this._width,this._height)},_updateDownsampleTextures:function(e,t){for(var r=this._downsampleTextures,i=Math.max(Math.floor(Math.log(this._supersampling/t.getDevicePixelRatio())/Math.log(2)),0),n=2,a=this._width*this._supersampling,o=this._height*this._supersampling,s=0;s=359&&(n[0]>0&&(n[0]=0),a[0]1?(t.material.shader!==this._meshLinesShader&&t.material.attachShader(this._meshLinesShader),t.mode=Ka.Mesh.TRIANGLES):(t.material.shader!==this._nativeLinesShader&&t.material.attachShader(this._nativeLinesShader),t.mode=Ka.Mesh.LINES),r=r||0,i=i||n.count(),s.resetOffset();var u=0,c=0,d=[],f=[],p=[],m=[],g=[],_=.3,v=.7;function y(){f[0]=d[0]*v+m[0]*_-(d[1]-m[1])*a,f[1]=d[1]*v+m[1]*_-(m[0]-d[0])*a,p[0]=d[0]*_+m[0]*v-(d[1]-m[1])*a,p[1]=d[1]*_+m[1]*v-(m[0]-d[0])*a}if(o||0!==a)for(var x=r;x{t.exports=e}},r={};function i(e){if(r[e])return r[e].exports;var n=r[e]={exports:{}};return t[e](n,n.exports,i),n.exports}return i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i(468)})()})); \ No newline at end of file diff --git a/src/main/resources/com/fr/plugin/third/party/jsdggac/web/echarts.min.js b/src/main/resources/com/fr/plugin/third/party/jsdggac/web/echarts.min.js new file mode 100644 index 0000000..016dd56 --- /dev/null +++ b/src/main/resources/com/fr/plugin/third/party/jsdggac/web/echarts.min.js @@ -0,0 +1,45 @@ + +/* +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you under the Apache License, Version 2.0 (the +* "License"); you may not use this file except in compliance +* with the License. You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ + +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).echarts={})}(this,(function(t){"use strict"; +/*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,n)};function n(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}var i=function(){return(i=Object.assign||function(t){for(var e,n=1,i=arguments.length;n18);a&&(n.weChat=!0);e.canvasSupported=!!document.createElement("canvas").getContext,e.svgSupported="undefined"!=typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&+n.version>=11),e.domSupported="undefined"!=typeof document;var s=document.documentElement.style;e.transform3dSupported=(n.ie&&"transition"in s||n.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),e.transformSupported=e.transform3dSupported||n.ie&&+n.version>=9}(navigator.userAgent,a);var s={"[object Function]":!0,"[object RegExp]":!0,"[object Date]":!0,"[object Error]":!0,"[object CanvasGradient]":!0,"[object CanvasPattern]":!0,"[object Image]":!0,"[object Canvas]":!0},l={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0},u=Object.prototype.toString,h=Array.prototype,c=h.forEach,p=h.filter,d=h.slice,f=h.map,g=function(){}.constructor,y=g?g.prototype:null,v={};function m(t,e){v[t]=e}var _=2311;function x(){return _++}function b(){for(var t=[],e=0;e>1)%2;a.style.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[s]+":0",r[l]+":0",i[1-s]+":auto",r[1-l]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}(e,o),o,r);if(s)return s(t,n,i),!0}return!1}function Yt(t){return"CANVAS"===t.nodeName.toUpperCase()}var Zt="undefined"!=typeof window&&!!window.addEventListener,jt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,qt=[];function Kt(t,e,n,i){return n=n||{},i||!a.canvasSupported?$t(t,e,n):a.browser.firefox&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):$t(t,e,n),n}function $t(t,e,n){if(a.domSupported&&t.getBoundingClientRect){var i=e.clientX,r=e.clientY;if(Yt(t)){var o=t.getBoundingClientRect();return n.zrX=i-o.left,void(n.zrY=r-o.top)}if(Xt(qt,t,i,r))return n.zrX=qt[0],void(n.zrY=qt[1])}n.zrX=n.zrY=0}function Jt(t){return t||window.event}function Qt(t,e,n){if(null!=(e=Jt(e)).zrX)return e;var i=e.type;if(i&&i.indexOf("touch")>=0){var r="touchend"!==i?e.targetTouches[0]:e.changedTouches[0];r&&Kt(t,r,e,n)}else{Kt(t,e,e,n);var o=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;if(null==n||null==i)return e;return 3*(0!==i?Math.abs(i):Math.abs(n))*(i>0?-1:i<0?1:n>0?-1:1)}(e);e.zrDelta=o?o/120:-(e.detail||0)/3}var a=e.button;return null==e.which&&void 0!==a&&jt.test(e.type)&&(e.which=1&a?1:2&a?3:4&a?2:0),e}function te(t,e,n,i){Zt?t.addEventListener(e,n,i):t.attachEvent("on"+e,n)}var ee=Zt?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0};function ne(t){return 2===t.which||3===t.which}var ie=function(){function t(){this._track=[]}return t.prototype.recognize=function(t,e,n){return this._doTrack(t,e,n),this._recognize(t)},t.prototype.clear=function(){return this._track.length=0,this},t.prototype._doTrack=function(t,e,n){var i=t.touches;if(i){for(var r={points:[],touches:[],target:e,event:t},o=0,a=i.length;o1&&r&&r.length>1){var a=re(r)/re(o);!isFinite(a)&&(a=1),e.pinchScale=a;var s=[((i=r)[0][0]+i[1][0])/2,(i[0][1]+i[1][1])/2];return e.pinchX=s[0],e.pinchY=s[1],{type:"pinch",target:t[0].target,event:e}}}}},ae="silent";function se(){ee(this.event)}var le=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.handler=null,e}return n(e,t),e.prototype.dispose=function(){},e.prototype.setCursor=function(){},e}(Ft),ue=function(t,e){this.x=t,this.y=e},he=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],ce=function(t){function e(e,n,i,r){var o=t.call(this)||this;return o._hovered=new ue(0,0),o.storage=e,o.painter=n,o.painterRoot=r,i=i||new le,o.proxy=null,o.setHandlerProxy(i),o._draggingMgr=new Bt(o),o}return n(e,t),e.prototype.setHandlerProxy=function(t){this.proxy&&this.proxy.dispose(),t&&(P(he,(function(e){t.on&&t.on(e,this[e],this)}),this),t.handler=this),this.proxy=t},e.prototype.mousemove=function(t){var e=t.zrX,n=t.zrY,i=de(this,e,n),r=this._hovered,o=r.target;o&&!o.__zr&&(o=(r=this.findHover(r.x,r.y)).target);var a=this._hovered=i?new ue(e,n):this.findHover(e,n),s=a.target,l=this.proxy;l.setCursor&&l.setCursor(s?s.cursor:"default"),o&&s!==o&&this.dispatchToElement(r,"mouseout",t),this.dispatchToElement(a,"mousemove",t),s&&s!==o&&this.dispatchToElement(a,"mouseover",t)},e.prototype.mouseout=function(t){var e=t.zrEventControl;"only_globalout"!==e&&this.dispatchToElement(this._hovered,"mouseout",t),"no_globalout"!==e&&this.trigger("globalout",{type:"globalout",event:t})},e.prototype.resize=function(){this._hovered=new ue(0,0)},e.prototype.dispatch=function(t,e){var n=this[t];n&&n.call(this,e)},e.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},e.prototype.setCursorStyle=function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},e.prototype.dispatchToElement=function(t,e,n){var i=(t=t||{}).target;if(!i||!i.silent){for(var r="on"+e,o=function(t,e,n){return{type:t,event:n,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which,stop:se}}(e,t,n);i&&(i[r]&&(o.cancelBubble=!!i[r].call(i,o)),i.trigger(e,o),i=i.__hostTarget?i.__hostTarget:i.parent,!o.cancelBubble););o.cancelBubble||(this.trigger(e,o),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer((function(t){"function"==typeof t[r]&&t[r].call(t,o),t.trigger&&t.trigger(e,o)})))}},e.prototype.findHover=function(t,e,n){for(var i=this.storage.getDisplayList(),r=new ue(t,e),o=i.length-1;o>=0;o--){var a=void 0;if(i[o]!==n&&!i[o].ignore&&(a=pe(i[o],t,e))&&(!r.topTarget&&(r.topTarget=i[o]),a!==ae)){r.target=i[o];break}}return r},e.prototype.processGesture=function(t,e){this._gestureMgr||(this._gestureMgr=new ie);var n=this._gestureMgr;"start"===e&&n.clear();var i=n.recognize(t,this.findHover(t.zrX,t.zrY,null).target,this.proxy.dom);if("end"===e&&n.clear(),i){var r=i.type;t.gestureEvent=r;var o=new ue;o.target=i.target,this.dispatchToElement(o,r,i.event)}},e}(Ft);function pe(t,e,n){if(t[t.rectHover?"rectContain":"contain"](e,n)){for(var i=t,r=void 0,o=!1;i;){if(i.ignoreClip&&(o=!0),!o){var a=i.getClipPath();if(a&&!a.contain(e,n))return!1;i.silent&&(r=!0)}var s=i.__hostTarget;i=s||i.parent}return!r||ae}return!1}function de(t,e,n){var i=t.painter;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}P(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],(function(t){ce.prototype[t]=function(e){var n,i,r=e.zrX,o=e.zrY,a=de(this,r,o);if("mouseup"===t&&a||(i=(n=this.findHover(r,o)).target),"mousedown"===t)this._downEl=i,this._downPoint=[e.zrX,e.zrY],this._upEl=i;else if("mouseup"===t)this._upEl=i;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||Lt(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,t,e)}}));function fe(t,e,n,i){var r=e+1;if(r===n)return 1;if(i(t[r++],t[e])<0){for(;r=0;)r++;return r-e}function ge(t,e,n,i,r){for(i===e&&i++;i>>1])<0?l=o:s=o+1;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;u>0;)t[s+u]=t[s+u-1],u--}t[s]=a}}function ye(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])>0){for(s=i-r;l0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}else{for(s=r+1;ls&&(l=s);var u=a;a=r-l,l=r-u}for(a++;a>>1);o(t,e[n+h])>0?a=h+1:l=h}return l}function ve(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])<0){for(s=r+1;ls&&(l=s);var u=a;a=r-l,l=r-u}else{for(s=i-r;l=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}for(a++;a>>1);o(t,e[n+h])<0?l=h:a=h+1}return l}function me(t,e){var n,i,r=7,o=0;t.length;var a=[];function s(s){var l=n[s],u=i[s],h=n[s+1],c=i[s+1];i[s]=u+c,s===o-3&&(n[s+1]=n[s+2],i[s+1]=i[s+2]),o--;var p=ve(t[h],t,l,u,0,e);l+=p,0!==(u-=p)&&0!==(c=ye(t[l+u-1],t,h,c,c-1,e))&&(u<=c?function(n,i,o,s){var l=0;for(l=0;l=7||d>=7);if(f)break;g<0&&(g=0),g+=2}if((r=g)<1&&(r=1),1===i){for(l=0;l=0;l--)t[d+l]=t[p+l];return void(t[c]=a[h])}var f=r;for(;;){var g=0,y=0,v=!1;do{if(e(a[h],t[u])<0){if(t[c--]=t[u--],g++,y=0,0==--i){v=!0;break}}else if(t[c--]=a[h--],y++,g=0,1==--s){v=!0;break}}while((g|y)=0;l--)t[d+l]=t[p+l];if(0===i){v=!0;break}}if(t[c--]=a[h--],1==--s){v=!0;break}if(0!==(y=s-ye(t[u],a,0,s,s-1,e))){for(s-=y,d=(c-=y)+1,p=(h-=y)+1,l=0;l=7||y>=7);if(v)break;f<0&&(f=0),f+=2}(r=f)<1&&(r=1);if(1===s){for(d=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[d+l]=t[p+l];t[c]=a[h]}else{if(0===s)throw new Error;for(p=c-(s-1),l=0;l1;){var t=o-2;if(t>=1&&i[t-1]<=i[t]+i[t+1]||t>=2&&i[t-2]<=i[t]+i[t-1])i[t-1]i[t+1])break;s(t)}},forceMergeRuns:function(){for(;o>1;){var t=o-2;t>0&&i[t-1]=32;)e|=1&t,t>>=1;return t+e}(r);do{if((o=fe(t,n,i,e))s&&(l=s),ge(t,n,n+l,n+o,e),o=l}a.pushRun(n,o),a.mergeRuns(),r-=o,n+=o}while(0!==r);a.forceMergeRuns()}}}var xe=!1;function be(){xe||(xe=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function we(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}var Se=function(){function t(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=we}return t.prototype.traverse=function(t,e){for(var n=0;n0&&(u.__clipPaths=[]),isNaN(u.z)&&(be(),u.z=0),isNaN(u.z2)&&(be(),u.z2=0),isNaN(u.zlevel)&&(be(),u.zlevel=0),this._displayList[this._displayListLen++]=u}var h=t.getDecalElement&&t.getDecalElement();h&&this._updateAndAddDisplayable(h,e,n);var c=t.getTextGuideLine();c&&this._updateAndAddDisplayable(c,e,n);var p=t.getTextContent();p&&this._updateAndAddDisplayable(p,e,n)}},t.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},t.prototype.delRoot=function(t){if(t instanceof Array)for(var e=0,n=t.length;e=0&&this._roots.splice(i,1)}},t.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},t.prototype.getRoots=function(){return this._roots},t.prototype.dispose=function(){this._displayList=null,this._roots=null},t}(),Me="undefined"!=typeof window&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){return setTimeout(t,16)},Ie={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4))},elasticOut:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/.4)+1)},elasticInOut:function(t){var e,n=.1,i=.4;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=i*Math.asin(1/n)/(2*Math.PI),(t*=2)<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-Ie.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*Ie.bounceIn(2*t):.5*Ie.bounceOut(2*t-1)+.5}},Te=function(){function t(t){this._initialized=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=null!=t.loop&&t.loop,this.gap=t.gap||0,this.easing=t.easing||"linear",this.onframe=t.onframe,this.ondestroy=t.ondestroy,this.onrestart=t.onrestart}return t.prototype.step=function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),!this._paused){var n=(t-this._startTime-this._pausedTime)/this._life;n<0&&(n=0),n=Math.min(n,1);var i=this.easing,r="string"==typeof i?Ie[i]:i,o="function"==typeof r?r(n):n;if(this.onframe&&this.onframe(o),1===n){if(!this.loop)return!0;this._restart(t),this.onrestart&&this.onrestart()}return!1}this._pausedTime+=e},t.prototype._restart=function(t){var e=(t-this._startTime-this._pausedTime)%this._life;this._startTime=t-e+this.gap,this._pausedTime=0},t.prototype.pause=function(){this._paused=!0},t.prototype.resume=function(){this._paused=!1},t}(),Ce=function(t){this.value=t},De=function(){function t(){this._len=0}return t.prototype.insert=function(t){var e=new Ce(t);return this.insertEntry(e),e},t.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},t.prototype.remove=function(t){var e=t.prev,n=t.next;e?e.next=n:this.head=n,n?n.prev=e:this.tail=e,t.next=t.prev=null,this._len--},t.prototype.len=function(){return this._len},t.prototype.clear=function(){this.head=this.tail=null,this._len=0},t}(),Ae=function(){function t(t){this._list=new De,this._maxSize=10,this._map={},this._maxSize=t}return t.prototype.put=function(t,e){var n=this._list,i=this._map,r=null;if(null==i[t]){var o=n.len(),a=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var s=n.head;n.remove(s),delete i[s.key],r=s.value,this._lastRemovedEntry=s}a?a.value=e:a=new Ce(e),a.key=t,n.insertEntry(a),i[t]=a}return r},t.prototype.get=function(t){var e=this._map[t],n=this._list;if(null!=e)return e!==n.tail&&(n.remove(e),n.insertEntry(e)),e.value},t.prototype.clear=function(){this._list.clear(),this._map={}},t.prototype.len=function(){return this._list.len()},t}(),Le={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function ke(t){return(t=Math.round(t))<0?0:t>255?255:t}function Pe(t){return t<0?0:t>1?1:t}function Oe(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?ke(parseFloat(e)/100*255):ke(parseInt(e,10))}function Re(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?Pe(parseFloat(e)/100):Pe(parseFloat(e))}function Ne(t,e,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?t+(e-t)*n*6:2*n<1?e:3*n<2?t+(e-t)*(2/3-n)*6:t}function ze(t,e,n){return t+(e-t)*n}function Ee(t,e,n,i,r){return t[0]=e,t[1]=n,t[2]=i,t[3]=r,t}function Ve(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}var Be=new Ae(20),Fe=null;function Ge(t,e){Fe&&Ve(Fe,e),Fe=Be.put(t,Fe||e.slice())}function He(t,e){if(t){e=e||[];var n=Be.get(t);if(n)return Ve(e,n);var i=(t+="").replace(/ /g,"").toLowerCase();if(i in Le)return Ve(e,Le[i]),Ge(t,e),e;var r,o=i.length;if("#"===i.charAt(0))return 4===o||5===o?(r=parseInt(i.slice(1,4),16))>=0&&r<=4095?(Ee(e,(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,5===o?parseInt(i.slice(4),16)/15:1),Ge(t,e),e):void Ee(e,0,0,0,1):7===o||9===o?(r=parseInt(i.slice(1,7),16))>=0&&r<=16777215?(Ee(e,(16711680&r)>>16,(65280&r)>>8,255&r,9===o?parseInt(i.slice(7),16)/255:1),Ge(t,e),e):void Ee(e,0,0,0,1):void 0;var a=i.indexOf("("),s=i.indexOf(")");if(-1!==a&&s+1===o){var l=i.substr(0,a),u=i.substr(a+1,s-(a+1)).split(","),h=1;switch(l){case"rgba":if(4!==u.length)return 3===u.length?Ee(e,+u[0],+u[1],+u[2],1):Ee(e,0,0,0,1);h=Re(u.pop());case"rgb":return 3!==u.length?void Ee(e,0,0,0,1):(Ee(e,Oe(u[0]),Oe(u[1]),Oe(u[2]),h),Ge(t,e),e);case"hsla":return 4!==u.length?void Ee(e,0,0,0,1):(u[3]=Re(u[3]),We(u,e),Ge(t,e),e);case"hsl":return 3!==u.length?void Ee(e,0,0,0,1):(We(u,e),Ge(t,e),e);default:return}}Ee(e,0,0,0,1)}}function We(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=Re(t[1]),r=Re(t[2]),o=r<=.5?r*(i+1):r+i-r*i,a=2*r-o;return Ee(e=e||[],ke(255*Ne(a,o,n+1/3)),ke(255*Ne(a,o,n)),ke(255*Ne(a,o,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Ue(t,e){var n=He(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,n[i]>255?n[i]=255:n[i]<0&&(n[i]=0);return Je(n,4===n.length?"rgba":"rgb")}}function Xe(t){var e=He(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)}function Ye(t,e,n){if(e&&e.length&&t>=0&&t<=1){n=n||[];var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=e[r],s=e[o],l=i-r;return n[0]=ke(ze(a[0],s[0],l)),n[1]=ke(ze(a[1],s[1],l)),n[2]=ke(ze(a[2],s[2],l)),n[3]=Pe(ze(a[3],s[3],l)),n}}var Ze=Ye;function je(t,e,n){if(e&&e.length&&t>=0&&t<=1){var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=He(e[r]),s=He(e[o]),l=i-r,u=Je([ke(ze(a[0],s[0],l)),ke(ze(a[1],s[1],l)),ke(ze(a[2],s[2],l)),Pe(ze(a[3],s[3],l))],"rgba");return n?{color:u,leftIndex:r,rightIndex:o,value:i}:u}}var qe=je;function Ke(t,e,n,i){var r=He(t);if(t)return r=function(t){if(t){var e,n,i=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(i,r,o),s=Math.max(i,r,o),l=s-a,u=(s+a)/2;if(0===l)e=0,n=0;else{n=u<.5?l/(s+a):l/(2-s-a);var h=((s-i)/6+l/2)/l,c=((s-r)/6+l/2)/l,p=((s-o)/6+l/2)/l;i===s?e=p-c:r===s?e=1/3+h-p:o===s&&(e=2/3+c-h),e<0&&(e+=1),e>1&&(e-=1)}var d=[360*e,n,u];return null!=t[3]&&d.push(t[3]),d}}(r),null!=e&&(r[0]=function(t){return(t=Math.round(t))<0?0:t>360?360:t}(e)),null!=n&&(r[1]=Re(n)),null!=i&&(r[2]=Re(i)),Je(We(r),"rgba")}function $e(t,e){var n=He(t);if(n&&null!=e)return n[3]=Pe(e),Je(n,"rgba")}function Je(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(n+=","+t[3]),e+"("+n+")"}}function Qe(t,e){var n=He(t);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*e:0}var tn=Object.freeze({__proto__:null,parse:He,lift:Ue,toHex:Xe,fastLerp:Ye,fastMapToColor:Ze,lerp:je,mapToColor:qe,modifyHSL:Ke,modifyAlpha:$e,stringify:Je,lum:Qe,random:function(){return"rgb("+Math.round(255*Math.random())+","+Math.round(255*Math.random())+","+Math.round(255*Math.random())+")"}}),en=Array.prototype.slice;function nn(t,e,n){return(e-t)*n+t}function rn(t,e,n,i){for(var r=e.length,o=0;oa)i.length=a;else for(var s=o;s=2&&this.interpolable},t.prototype.getAdditiveTrack=function(){return this._additiveTrack},t.prototype.addKeyframe=function(t,e){t>=this.maxTime?this.maxTime=t:this._needsSort=!0;var n=this.keyframes,i=n.length;if(this.interpolable)if(k(e)){var r=function(t){return k(t&&t[0])?2:1}(e);if(i>0&&this.arrDim!==r)return void(this.interpolable=!1);if(1===r&&"number"!=typeof e[0]||2===r&&"number"!=typeof e[0][0])return void(this.interpolable=!1);if(i>0){var o=n[i-1];this._isAllValueEqual&&(1===r&&ln(e,o.value)||(this._isAllValueEqual=!1))}this.arrDim=r}else{if(this.arrDim>0)return void(this.interpolable=!1);if("string"==typeof e){var a=He(e);a?(e=a,this.isValueColor=!0):this.interpolable=!1}else if("number"!=typeof e||isNaN(e))return void(this.interpolable=!1);if(this._isAllValueEqual&&i>0){o=n[i-1];(this.isValueColor&&!ln(o.value,e)||o.value!==e)&&(this._isAllValueEqual=!1)}}var s={time:t,value:e,percent:0};return this.keyframes.push(s),s},t.prototype.prepare=function(t){var e=this.keyframes;this._needsSort&&e.sort((function(t,e){return t.time-e.time}));for(var n=this.arrDim,i=e.length,r=e[i-1],o=0;o0&&o!==i-1&&sn(e[o].value,r.value,n);if(t&&this.needsAnimate()&&t.needsAnimate()&&n===t.arrDim&&this.isValueColor===t.isValueColor&&!t._finished){this._additiveTrack=t;var a=e[0].value;for(o=0;o=0&&!(o[n].percent<=e);n--);n=Math.min(n,a-2)}else{for(n=this._lastFrame;ne);n++);n=Math.min(n-1,a-2)}var h=o[n+1],c=o[n];if(c&&h){this._lastFrame=n,this._lastFramePercent=e;var p=h.percent-c.percent;if(0!==p){var d=(e-c.percent)/p,f=i?this._additiveValue:u?gn:t[s];if((l>0||u)&&!f&&(f=this._additiveValue=[]),this.useSpline){var g=o[n][r],y=o[0===n?n:n-1][r],v=o[n>a-2?a-1:n+1][r],m=o[n>a-3?a-1:n+2][r];if(l>0)1===l?hn(f,y,g,v,m,d,d*d,d*d*d):function(t,e,n,i,r,o,a,s){for(var l=e.length,u=e[0].length,h=0;h0)1===l?rn(f,c[r],h[r],d):function(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;a.5?e:t}(c[r],h[r],d),i?this._additiveValue=_:t[s]=_}i&&this._addToTarget(t)}}}},t.prototype._addToTarget=function(t){var e=this.arrDim,n=this.propName,i=this._additiveValue;0===e?this.isValueColor?(He(t[n],gn),on(gn,gn,i,1),t[n]=pn(gn)):t[n]=t[n]+i:1===e?on(t[n],t[n],i,1):2===e&&an(t[n],t[n],i,1)},t}(),vn=function(){function t(t,e,n){this._tracks={},this._trackKeys=[],this._delay=0,this._maxTime=0,this._paused=!1,this._started=0,this._clip=null,this._target=t,this._loop=e,e&&n?b("Can' use additive animation on looped animation."):this._additiveAnimators=n}return t.prototype.getTarget=function(){return this._target},t.prototype.changeTarget=function(t){this._target=t},t.prototype.when=function(t,e){return this.whenWithKeys(t,e,E(e))},t.prototype.whenWithKeys=function(t,e,n){for(var i=this._tracks,r=0;r0)){this._started=1;for(var n=this,i=[],r=0;r1){var a=o.pop();r.addKeyframe(a.time,t[i]),r.prepare(r.getAdditiveTrack())}}}},t}(),mn=function(t){function e(e){var n=t.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,e=e||{},n.stage=e.stage||{},n.onframe=e.onframe||function(){},n}return n(e,t),e.prototype.addClip=function(t){t.animation&&this.removeClip(t),this._clipsHead?(this._clipsTail.next=t,t.prev=this._clipsTail,t.next=null,this._clipsTail=t):this._clipsHead=this._clipsTail=t,t.animation=this},e.prototype.addAnimator=function(t){t.animation=this;var e=t.getClip();e&&this.addClip(e)},e.prototype.removeClip=function(t){if(t.animation){var e=t.prev,n=t.next;e?e.next=n:this._clipsHead=n,n?n.prev=e:this._clipsTail=e,t.next=t.prev=t.animation=null}},e.prototype.removeAnimator=function(t){var e=t.getClip();e&&this.removeClip(e),t.animation=null},e.prototype.update=function(t){for(var e=(new Date).getTime()-this._pausedTime,n=e-this._time,i=this._clipsHead;i;){var r=i.next;i.step(e,n)?(i.ondestroy&&i.ondestroy(),this.removeClip(i),i=r):i=r}this._time=e,t||(this.onframe(n),this.trigger("frame",n),this.stage.update&&this.stage.update())},e.prototype._startLoop=function(){var t=this;this._running=!0,Me((function e(){t._running&&(Me(e),!t._paused&&t.update())}))},e.prototype.start=function(){this._running||(this._time=(new Date).getTime(),this._pausedTime=0,this._startLoop())},e.prototype.stop=function(){this._running=!1},e.prototype.pause=function(){this._paused||(this._pauseStart=(new Date).getTime(),this._paused=!0)},e.prototype.resume=function(){this._paused&&(this._pausedTime+=(new Date).getTime()-this._pauseStart,this._paused=!1)},e.prototype.clear=function(){for(var t=this._clipsHead;t;){var e=t.next;t.prev=t.next=t.animation=null,t=e}this._clipsHead=this._clipsTail=null},e.prototype.isFinished=function(){return null==this._clipsHead},e.prototype.animate=function(t,e){e=e||{},this.start();var n=new vn(t,e.loop);return this.addAnimator(n),n},e}(Ft),_n=a.domSupported,xn=(fn={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},{mouse:dn=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],touch:["touchstart","touchend","touchmove"],pointer:O(dn,(function(t){var e=t.replace("mouse","pointer");return fn.hasOwnProperty(e)?e:t}))}),bn=["mousemove","mouseup"],wn=["pointermove","pointerup"],Sn=!1;function Mn(t){var e=t.pointerType;return"pen"===e||"touch"===e}function In(t){t&&(t.zrByTouch=!0)}function Tn(t,e){for(var n=e,i=!1;n&&9!==n.nodeType&&!(i=n.domBelongToZr||n!==e&&n===t.painterRoot);)n=n.parentNode;return i}var Cn=function(t,e){this.stopPropagation=ft,this.stopImmediatePropagation=ft,this.preventDefault=ft,this.type=e.type,this.target=this.currentTarget=t.dom,this.pointerType=e.pointerType,this.clientX=e.clientX,this.clientY=e.clientY},Dn={mousedown:function(t){t=Qt(this.dom,t),this.__mayPointerCapture=[t.zrX,t.zrY],this.trigger("mousedown",t)},mousemove:function(t){t=Qt(this.dom,t);var e=this.__mayPointerCapture;!e||t.zrX===e[0]&&t.zrY===e[1]||this.__togglePointerCapture(!0),this.trigger("mousemove",t)},mouseup:function(t){t=Qt(this.dom,t),this.__togglePointerCapture(!1),this.trigger("mouseup",t)},mouseout:function(t){Tn(this,(t=Qt(this.dom,t)).toElement||t.relatedTarget)||(this.__pointerCapturing&&(t.zrEventControl="no_globalout"),this.trigger("mouseout",t))},wheel:function(t){Sn=!0,t=Qt(this.dom,t),this.trigger("mousewheel",t)},mousewheel:function(t){Sn||(t=Qt(this.dom,t),this.trigger("mousewheel",t))},touchstart:function(t){In(t=Qt(this.dom,t)),this.__lastTouchMoment=new Date,this.handler.processGesture(t,"start"),Dn.mousemove.call(this,t),Dn.mousedown.call(this,t)},touchmove:function(t){In(t=Qt(this.dom,t)),this.handler.processGesture(t,"change"),Dn.mousemove.call(this,t)},touchend:function(t){In(t=Qt(this.dom,t)),this.handler.processGesture(t,"end"),Dn.mouseup.call(this,t),+new Date-+this.__lastTouchMoment<300&&Dn.click.call(this,t)},pointerdown:function(t){Dn.mousedown.call(this,t)},pointermove:function(t){Mn(t)||Dn.mousemove.call(this,t)},pointerup:function(t){Dn.mouseup.call(this,t)},pointerout:function(t){Mn(t)||Dn.mouseout.call(this,t)}};P(["click","dblclick","contextmenu"],(function(t){Dn[t]=function(e){e=Qt(this.dom,e),this.trigger(t,e)}}));var An={pointermove:function(t){Mn(t)||An.mousemove.call(this,t)},pointerup:function(t){An.mouseup.call(this,t)},mousemove:function(t){this.trigger("mousemove",t)},mouseup:function(t){var e=this.__pointerCapturing;this.__togglePointerCapture(!1),this.trigger("mouseup",t),e&&(t.zrEventControl="only_globalout",this.trigger("mouseout",t))}};function Ln(t,e){var n=e.domHandlers;a.pointerEventsSupported?P(xn.pointer,(function(i){Pn(e,i,(function(e){n[i].call(t,e)}))})):(a.touchEventsSupported&&P(xn.touch,(function(i){Pn(e,i,(function(r){n[i].call(t,r),function(t){t.touching=!0,null!=t.touchTimer&&(clearTimeout(t.touchTimer),t.touchTimer=null),t.touchTimer=setTimeout((function(){t.touching=!1,t.touchTimer=null}),700)}(e)}))})),P(xn.mouse,(function(i){Pn(e,i,(function(r){r=Jt(r),e.touching||n[i].call(t,r)}))})))}function kn(t,e){function n(n){Pn(e,n,(function(i){i=Jt(i),Tn(t,i.target)||(i=function(t,e){return Qt(t.dom,new Cn(t,e),!0)}(t,i),e.domHandlers[n].call(t,i))}),{capture:!0})}a.pointerEventsSupported?P(wn,n):a.touchEventsSupported||P(bn,n)}function Pn(t,e,n,i){t.mounted[e]=n,t.listenerOpts[e]=i,te(t.domTarget,e,n,i)}function On(t){var e,n,i,r,o=t.mounted;for(var a in o)o.hasOwnProperty(a)&&(e=t.domTarget,n=a,i=o[a],r=t.listenerOpts[a],Zt?e.removeEventListener(n,i,r):e.detachEvent("on"+n,i));t.mounted={}}var Rn=function(t,e){this.mounted={},this.listenerOpts={},this.touching=!1,this.domTarget=t,this.domHandlers=e},Nn=function(t){function e(e,n){var i=t.call(this)||this;return i.__pointerCapturing=!1,i.dom=e,i.painterRoot=n,i._localHandlerScope=new Rn(e,Dn),_n&&(i._globalHandlerScope=new Rn(document,An)),Ln(i,i._localHandlerScope),i}return n(e,t),e.prototype.dispose=function(){On(this._localHandlerScope),_n&&On(this._globalHandlerScope)},e.prototype.setCursor=function(t){this.dom.style&&(this.dom.style.cursor=t||"default")},e.prototype.__togglePointerCapture=function(t){if(this.__mayPointerCapture=null,_n&&+this.__pointerCapturing^+t){this.__pointerCapturing=t;var e=this._globalHandlerScope;t?kn(this,e):On(e)}},e}(Ft),zn=1;"undefined"!=typeof window&&(zn=Math.max(window.devicePixelRatio||window.screen&&window.screen.deviceXDPI/window.screen.logicalXDPI||1,1));var En=zn,Vn="#333",Bn="#ccc";function Fn(){return[1,0,0,1,0,0]}function Gn(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function Hn(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function Wn(t,e,n){var i=e[0]*n[0]+e[2]*n[1],r=e[1]*n[0]+e[3]*n[1],o=e[0]*n[2]+e[2]*n[3],a=e[1]*n[2]+e[3]*n[3],s=e[0]*n[4]+e[2]*n[5]+e[4],l=e[1]*n[4]+e[3]*n[5]+e[5];return t[0]=i,t[1]=r,t[2]=o,t[3]=a,t[4]=s,t[5]=l,t}function Un(t,e,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+n[0],t[5]=e[5]+n[1],t}function Xn(t,e,n){var i=e[0],r=e[2],o=e[4],a=e[1],s=e[3],l=e[5],u=Math.sin(n),h=Math.cos(n);return t[0]=i*h+a*u,t[1]=-i*u+a*h,t[2]=r*h+s*u,t[3]=-r*u+h*s,t[4]=h*o+u*l,t[5]=h*l-u*o,t}function Yn(t,e,n){var i=n[0],r=n[1];return t[0]=e[0]*i,t[1]=e[1]*r,t[2]=e[2]*i,t[3]=e[3]*r,t[4]=e[4]*i,t[5]=e[5]*r,t}function Zn(t,e){var n=e[0],i=e[2],r=e[4],o=e[1],a=e[3],s=e[5],l=n*a-o*i;return l?(l=1/l,t[0]=a*l,t[1]=-o*l,t[2]=-i*l,t[3]=n*l,t[4]=(i*s-a*r)*l,t[5]=(o*r-n*s)*l,t):null}function jn(t){var e=[1,0,0,1,0,0];return Hn(e,t),e}var qn=Object.freeze({__proto__:null,create:Fn,identity:Gn,copy:Hn,mul:Wn,translate:Un,rotate:Xn,scale:Yn,invert:Zn,clone:jn}),Kn=Gn,$n=5e-5;function Jn(t){return t>$n||t<-5e-5}var Qn,ti,ei=[],ni=[],ii=[1,0,0,1,0,0],ri=Math.abs,oi=function(){function t(){}return t.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},t.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},t.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},t.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},t.prototype.needLocalTransform=function(){return Jn(this.rotation)||Jn(this.x)||Jn(this.y)||Jn(this.scaleX-1)||Jn(this.scaleY-1)},t.prototype.updateTransform=function(){var t=this.parent,e=t&&t.transform,n=this.needLocalTransform(),i=this.transform;n||e?(i=i||[1,0,0,1,0,0],n?this.getLocalTransform(i):Kn(i),e&&(n?Wn(i,t.transform,i):Hn(i,t.transform)),this.transform=i,this._resolveGlobalScaleRatio(i)):i&&Kn(i)},t.prototype._resolveGlobalScaleRatio=function(t){var e=this.globalScaleRatio;if(null!=e&&1!==e){this.getGlobalScale(ei);var n=ei[0]<0?-1:1,i=ei[1]<0?-1:1,r=((ei[0]-n)*e+n)/ei[0]||0,o=((ei[1]-i)*e+i)/ei[1]||0;t[0]*=r,t[1]*=r,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||[1,0,0,1,0,0],Zn(this.invTransform,t)},t.prototype.getLocalTransform=function(e){return t.getLocalTransform(this,e)},t.prototype.getComputedTransform=function(){for(var t=this,e=[];t;)e.push(t),t=t.parent;for(;t=e.pop();)t.updateTransform();return this.transform},t.prototype.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),r=Math.PI/2+i-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(r),e=Math.sqrt(e),this.skewX=r,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=e,this.scaleY=n,this.originX=0,this.originY=0}},t.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(Wn(ni,t.invTransform,e),e=ni);var n=this.originX,i=this.originY;(n||i)&&(ii[4]=n,ii[5]=i,Wn(ni,e,ii),ni[4]-=n,ni[5]-=i,e=ni),this.setLocalTransform(e)}},t.prototype.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},t.prototype.transformCoordToLocal=function(t,e){var n=[t,e],i=this.invTransform;return i&&Rt(n,n,i),n},t.prototype.transformCoordToGlobal=function(t,e){var n=[t,e],i=this.transform;return i&&Rt(n,n,i),n},t.prototype.getLineScale=function(){var t=this.transform;return t&&ri(t[0]-1)>1e-10&&ri(t[3]-1)>1e-10?Math.sqrt(ri(t[0]*t[3]-t[2]*t[1])):1},t.getLocalTransform=function(t,e){e=e||[];var n=t.originX||0,i=t.originY||0,r=t.scaleX,o=t.scaleY,a=t.rotation||0,s=t.x,l=t.y,u=t.skewX?Math.tan(t.skewX):0,h=t.skewY?Math.tan(-t.skewY):0;return n||i?(e[4]=-n*r-u*i*o,e[5]=-i*o-h*n*r):e[4]=e[5]=0,e[0]=r,e[3]=o,e[1]=h*r,e[2]=u*o,a&&Xn(e,e,a),e[4]+=n+s,e[5]+=i+l,e},t.initDefaultProps=function(){var e=t.prototype;e.x=0,e.y=0,e.scaleX=1,e.scaleY=1,e.originX=0,e.originY=0,e.skewX=0,e.skewY=0,e.rotation=0,e.globalScaleRatio=1}(),t}(),ai=function(){function t(t,e){this.x=t||0,this.y=e||0}return t.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.set=function(t,e){return this.x=t,this.y=e,this},t.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},t.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},t.prototype.scale=function(t){this.x*=t,this.y*=t},t.prototype.scaleAndAdd=function(t,e){this.x+=t.x*e,this.y+=t.y*e},t.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},t.prototype.dot=function(t){return this.x*t.x+this.y*t.y},t.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},t.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},t.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},t.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)},t.prototype.distanceSquare=function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n},t.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},t.prototype.transform=function(t){if(t){var e=this.x,n=this.y;return this.x=t[0]*e+t[2]*n+t[4],this.y=t[1]*e+t[3]*n+t[5],this}},t.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},t.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},t.set=function(t,e,n){t.x=e,t.y=n},t.copy=function(t,e){t.x=e.x,t.y=e.y},t.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},t.lenSquare=function(t){return t.x*t.x+t.y*t.y},t.dot=function(t,e){return t.x*e.x+t.y*e.y},t.add=function(t,e,n){t.x=e.x+n.x,t.y=e.y+n.y},t.sub=function(t,e,n){t.x=e.x-n.x,t.y=e.y-n.y},t.scale=function(t,e,n){t.x=e.x*n,t.y=e.y*n},t.scaleAndAdd=function(t,e,n,i){t.x=e.x+n.x*i,t.y=e.y+n.y*i},t.lerp=function(t,e,n,i){var r=1-i;t.x=r*e.x+i*n.x,t.y=r*e.y+i*n.y},t}(),si=Math.min,li=Math.max,ui=new ai,hi=new ai,ci=new ai,pi=new ai,di=new ai,fi=new ai,gi=function(){function t(t,e,n,i){n<0&&(t+=n,n=-n),i<0&&(e+=i,i=-i),this.x=t,this.y=e,this.width=n,this.height=i}return t.prototype.union=function(t){var e=si(t.x,this.x),n=si(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=li(t.x+t.width,this.x+this.width)-e:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=li(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=e,this.y=n},t.prototype.applyTransform=function(e){t.applyTransform(this,this,e)},t.prototype.calculateTransform=function(t){var e=this,n=t.width/e.width,i=t.height/e.height,r=[1,0,0,1,0,0];return Un(r,r,[-e.x,-e.y]),Yn(r,r,[n,i]),Un(r,r,[t.x,t.y]),r},t.prototype.intersect=function(e,n){if(!e)return!1;e instanceof t||(e=t.create(e));var i=this,r=i.x,o=i.x+i.width,a=i.y,s=i.y+i.height,l=e.x,u=e.x+e.width,h=e.y,c=e.y+e.height,p=!(of&&(f=_,gf&&(f=x,v=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.copy=function(e){t.copy(this,e)},t.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},t.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},t.prototype.isZero=function(){return 0===this.width||0===this.height},t.create=function(e){return new t(e.x,e.y,e.width,e.height)},t.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},t.applyTransform=function(e,n,i){if(i){if(i[1]<1e-5&&i[1]>-1e-5&&i[2]<1e-5&&i[2]>-1e-5){var r=i[0],o=i[3],a=i[4],s=i[5];return e.x=n.x*r+a,e.y=n.y*o+s,e.width=n.width*r,e.height=n.height*o,e.width<0&&(e.x+=e.width,e.width=-e.width),void(e.height<0&&(e.y+=e.height,e.height=-e.height))}ui.x=ci.x=n.x,ui.y=pi.y=n.y,hi.x=pi.x=n.x+n.width,hi.y=ci.y=n.y+n.height,ui.transform(i),pi.transform(i),hi.transform(i),ci.transform(i),e.x=si(ui.x,hi.x,ci.x,pi.x),e.y=si(ui.y,hi.y,ci.y,pi.y);var l=li(ui.x,hi.x,ci.x,pi.x),u=li(ui.y,hi.y,ci.y,pi.y);e.width=l-e.x,e.height=u-e.y}else e!==n&&t.copy(e,n)},t}(),yi={},vi="12px sans-serif";var mi={measureText:function(t,e){return Qn||(Qn=C().getContext("2d")),ti!==e&&(ti=Qn.font=e||vi),Qn.measureText(t)}};function _i(t,e){var n=yi[e=e||vi];n||(n=yi[e]=new Ae(500));var i=n.get(t);return null==i&&(i=mi.measureText(t,e).width,n.put(t,i)),i}function xi(t,e,n,i){var r=_i(t,e),o=Mi(e),a=wi(0,r,n),s=Si(0,o,i);return new gi(a,s,r,o)}function bi(t,e,n,i){var r=((t||"")+"").split("\n");if(1===r.length)return xi(r[0],e,n,i);for(var o=new gi(0,0,0,0),a=0;a=0?parseFloat(t)/100*e:parseFloat(t):t}function Ti(t,e,n){var i=e.position||"inside",r=null!=e.distance?e.distance:5,o=n.height,a=n.width,s=o/2,l=n.x,u=n.y,h="left",c="top";if(i instanceof Array)l+=Ii(i[0],n.width),u+=Ii(i[1],n.height),h=null,c=null;else switch(i){case"left":l-=r,u+=s,h="right",c="middle";break;case"right":l+=r+a,u+=s,c="middle";break;case"top":l+=a/2,u-=r,h="center",c="bottom";break;case"bottom":l+=a/2,u+=o+r,h="center";break;case"inside":l+=a/2,u+=s,h="center",c="middle";break;case"insideLeft":l+=r,u+=s,c="middle";break;case"insideRight":l+=a-r,u+=s,h="right",c="middle";break;case"insideTop":l+=a/2,u+=r,h="center";break;case"insideBottom":l+=a/2,u+=o-r,h="center",c="bottom";break;case"insideTopLeft":l+=r,u+=r;break;case"insideTopRight":l+=a-r,u+=r,h="right";break;case"insideBottomLeft":l+=r,u+=o-r,c="bottom";break;case"insideBottomRight":l+=a-r,u+=o-r,h="right",c="bottom"}return(t=t||{}).x=l,t.y=u,t.align=h,t.verticalAlign=c,t}var Ci="__zr_normal__",Di=["x","y","scaleX","scaleY","originX","originY","rotation","ignore"],Ai={x:!0,y:!0,scaleX:!0,scaleY:!0,originX:!0,originY:!0,rotation:!0,ignore:!1},Li={},ki=new gi(0,0,0,0),Pi=function(){function t(t){this.id=x(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return t.prototype._init=function(t){this.attr(t)},t.prototype.drift=function(t,e,n){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.markRedraw()},t.prototype.beforeUpdate=function(){},t.prototype.afterUpdate=function(){},t.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},t.prototype.updateInnerText=function(t){var e=this._textContent;if(e&&(!e.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,r=e.attachedTransform,o=void 0,a=void 0,s=!1;r.parent=i?this:null;var l=!1;if(r.x=e.x,r.y=e.y,r.originX=e.originX,r.originY=e.originY,r.rotation=e.rotation,r.scaleX=e.scaleX,r.scaleY=e.scaleY,null!=n.position){var u=ki;n.layoutRect?u.copy(n.layoutRect):u.copy(this.getBoundingRect()),i||u.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(Li,n,u):Ti(Li,n,u),r.x=Li.x,r.y=Li.y,o=Li.align,a=Li.verticalAlign;var h=n.origin;if(h&&null!=n.rotation){var c=void 0,p=void 0;"center"===h?(c=.5*u.width,p=.5*u.height):(c=Ii(h[0],u.width),p=Ii(h[1],u.height)),l=!0,r.originX=-r.x+c+(i?0:u.x),r.originY=-r.y+p+(i?0:u.y)}}null!=n.rotation&&(r.rotation=n.rotation);var d=n.offset;d&&(r.x+=d[0],r.y+=d[1],l||(r.originX=-d[0],r.originY=-d[1]));var f=null==n.inside?"string"==typeof n.position&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),y=void 0,v=void 0,m=void 0;f&&this.canBeInsideText()?(y=n.insideFill,v=n.insideStroke,null!=y&&"auto"!==y||(y=this.getInsideTextFill()),null!=v&&"auto"!==v||(v=this.getInsideTextStroke(y),m=!0)):(y=n.outsideFill,v=n.outsideStroke,null!=y&&"auto"!==y||(y=this.getOutsideFill()),null!=v&&"auto"!==v||(v=this.getOutsideStroke(y),m=!0)),(y=y||"#000")===g.fill&&v===g.stroke&&m===g.autoStroke&&o===g.align&&a===g.verticalAlign||(s=!0,g.fill=y,g.stroke=v,g.autoStroke=m,g.align=o,g.verticalAlign=a,e.setDefaultTextStyle(g)),e.__dirty|=1,s&&e.dirtyStyle(!0)}},t.prototype.canBeInsideText=function(){return!0},t.prototype.getInsideTextFill=function(){return"#fff"},t.prototype.getInsideTextStroke=function(t){return"#000"},t.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Bn:Vn},t.prototype.getOutsideStroke=function(t){var e=this.__zr&&this.__zr.getBackgroundColor(),n="string"==typeof e&&He(e);n||(n=[255,255,255,1]);for(var i=n[3],r=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(r?0:255)*(1-i);return n[3]=1,Je(n,"rgba")},t.prototype.traverse=function(t,e){},t.prototype.attrKV=function(t,e){"textConfig"===t?this.setTextConfig(e):"textContent"===t?this.setTextContent(e):"clipPath"===t?this.setClipPath(e):"extra"===t?(this.extra=this.extra||{},I(this.extra,e)):this[t]=e},t.prototype.hide=function(){this.ignore=!0,this.markRedraw()},t.prototype.show=function(){this.ignore=!1,this.markRedraw()},t.prototype.attr=function(t,e){if("string"==typeof t)this.attrKV(t,e);else if(X(t))for(var n=E(t),i=0;i0},t.prototype.getState=function(t){return this.states[t]},t.prototype.ensureState=function(t){var e=this.states;return e[t]||(e[t]={}),e[t]},t.prototype.clearStates=function(t){this.useState(Ci,!1,t)},t.prototype.useState=function(t,e,n,i){var r=t===Ci;if(this.hasState()||!r){var o=this.currentStates,a=this.stateTransition;if(!(D(o,t)>=0)||!e&&1!==o.length){var s;if(this.stateProxy&&!r&&(s=this.stateProxy(t)),s||(s=this.states&&this.states[t]),s||r){r||this.saveCurrentToNormalState(s);var l=!!(s&&s.hoverLayer||i);l&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,s,this._normalState,e,!n&&!this.__inHover&&a&&a.duration>0,a);var u=this._textContent,h=this._textGuide;return u&&u.useState(t,e,n,l),h&&h.useState(t,e,n,l),r?(this.currentStates=[],this._normalState={}):e?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!l&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=-2),s}b("State "+t+" not exists.")}}},t.prototype.useStates=function(t,e,n){if(t.length){var i=[],r=this.currentStates,o=t.length,a=o===r.length;if(a)for(var s=0;s0,d);var f=this._textContent,g=this._textGuide;f&&f.useStates(t,e,c),g&&g.useStates(t,e,c),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!c&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=-2)}else this.clearStates()},t.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var n=this.currentStates.slice();n.splice(e,1),this.useStates(n)}},t.prototype.replaceState=function(t,e,n){var i=this.currentStates.slice(),r=D(i,t),o=D(i,e)>=0;r>=0?o?i.splice(r,1):i[r]=e:n&&!o&&i.push(e),this.useStates(i)},t.prototype.toggleState=function(t,e){e?this.useState(t,!0):this.removeState(t)},t.prototype._mergeStates=function(t){for(var e,n={},i=0;i=0&&e.splice(n,1)})),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},t.prototype.updateDuringAnimation=function(t){this.markRedraw()},t.prototype.stopAnimation=function(t,e){for(var n=this.animators,i=n.length,r=[],o=0;o8)&&(r("position","_legacyPos","x","y"),r("scale","_legacyScale","scaleX","scaleY"),r("origin","_legacyOrigin","originX","originY"))}(),t}();function Oi(t,e,n,i,r){var o=[];zi(t,"",t,e,n=n||{},i,o,r);var a=o.length,s=!1,l=n.done,u=n.aborted,h=function(){s=!0,--a<=0&&(s?l&&l():u&&u())},c=function(){--a<=0&&(s?l&&l():u&&u())};a||l&&l(),o.length>0&&n.during&&o[0].during((function(t,e){n.during(e)}));for(var p=0;p0||r.force&&!a.length){for(var m=t.animators,_=[],x=0;x=0&&(n.splice(i,0,t),this._doAdd(t))}return this},e.prototype.replaceAt=function(t,e){var n=this._children,i=n[e];if(t&&t!==this&&t.parent!==this&&t!==i){n[e]=t,i.parent=null;var r=this.__zr;r&&i.removeSelfFromZr(r),this._doAdd(t)}return this},e.prototype._doAdd=function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__zr;e&&e!==t.__zr&&t.addSelfToZr(e),e&&e.refresh()},e.prototype.remove=function(t){var e=this.__zr,n=this._children,i=D(n,t);return i<0||(n.splice(i,1),t.parent=null,e&&t.removeSelfFromZr(e),e&&e.refresh()),this},e.prototype.removeAll=function(){for(var t=this._children,e=this.__zr,n=0;n0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},t.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},t.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},t.prototype.addHover=function(t){},t.prototype.removeHover=function(t){},t.prototype.clearHover=function(){},t.prototype.refreshHover=function(){this._needsRefreshHover=!0},t.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&"canvas"===this.painter.getType()&&this.painter.refreshHover()},t.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},t.prototype.clearAnimation=function(){this.animation.clear()},t.prototype.getWidth=function(){return this.painter.getWidth()},t.prototype.getHeight=function(){return this.painter.getHeight()},t.prototype.pathToImage=function(t,e){if(this.painter.pathToImage)return this.painter.pathToImage(t,e)},t.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},t.prototype.findHover=function(t,e){return this.handler.findHover(t,e)},t.prototype.on=function(t,e,n){return this.handler.on(t,e,n),this},t.prototype.off=function(t,e){this.handler.off(t,e)},t.prototype.trigger=function(t,e){this.handler.trigger(t,e)},t.prototype.clear=function(){for(var t=this.storage.getRoots(),e=0;e0){if(t<=r)return a;if(t>=o)return s}else{if(t>=r)return a;if(t<=o)return s}else{if(t===r)return a;if(t===o)return s}return(t-r)/l*u+a}function Zi(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?(n=t,n.replace(/^\s+|\s+$/g,"")).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t;var n}function ji(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function qi(t){return t.sort((function(t,e){return t-e})),t}function Ki(t){if(t=+t,isNaN(t))return 0;if(t>1e-14)for(var e=1,n=0;n<15;n++,e*=10)if(Math.round(t*e)/e===t)return n;return $i(t)}function $i(t){var e=t.toString().toLowerCase(),n=e.indexOf("e"),i=n>0?+e.slice(n+1):0,r=n>0?n:e.length,o=e.indexOf("."),a=o<0?0:r-1-o;return Math.max(0,a-i)}function Ji(t,e){var n=Math.log,i=Math.LN10,r=Math.floor(n(t[1]-t[0])/i),o=Math.round(n(Math.abs(e[1]-e[0]))/i),a=Math.min(Math.max(-r+o,0),20);return isFinite(a)?a:20}function Qi(t,e,n){if(!t[e])return 0;var i=R(t,(function(t,e){return t+(isNaN(e)?0:e)}),0);if(0===i)return 0;for(var r=Math.pow(10,n),o=O(t,(function(t){return(isNaN(t)?0:t)/i*r*100})),a=100*r,s=O(o,(function(t){return Math.floor(t)})),l=R(s,(function(t,e){return t+e}),0),u=O(o,(function(t,e){return t-s[e]}));lh&&(h=u[p],c=p);++s[c],u[c]=0,++l}return s[e]/r}function tr(t,e){var n=Math.max(Ki(t),Ki(e)),i=t+e;return n>20?i:ji(i,n)}var er=9007199254740991;function nr(t){var e=2*Math.PI;return(t%e+e)%e}function ir(t){return t>-1e-4&&t=10&&e++,e}function lr(t,e){var n=sr(t),i=Math.pow(10,n),r=t/i;return t=(e?r<1.5?1:r<2.5?2:r<4?3:r<7?5:10:r<1?1:r<2?2:r<3?3:r<5?5:10)*i,n>=-20?+t.toFixed(n<0?-n:0):t}function ur(t,e){var n=(t.length-1)*e+1,i=Math.floor(n),r=+t[i-1],o=n-i;return o?r+o*(t[i]-r):r}function hr(t){t.sort((function(t,e){return s(t,e,0)?-1:1}));for(var e=-1/0,n=1,i=0;i=0||r&&D(r,s)<0)){var l=n.getShallow(s,e);null!=l&&(o[t[a][0]]=l)}}return o}}var Jr=$r([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),Qr=function(){function t(){}return t.prototype.getAreaStyle=function(t,e){return Jr(this,t,e)},t}(),to=new Ae(50);function eo(t){if("string"==typeof t){var e=to.get(t);return e&&e.image}return t}function no(t,e,n,i,r){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!n)return e;var o=to.get(t),a={hostEl:n,cb:i,cbPayload:r};return o?!ro(e=o.image)&&o.pending.push(a):((e=new Image).onload=e.onerror=io,to.put(t,e.__cachedImgObj={image:e,pending:[a]}),e.src=e.__zrImageSrc=t),e}return t}return e}function io(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;e=a;l++)s-=a;var u=_i(n,e);return u>s&&(n="",u=0),s=t-u,r.ellipsis=n,r.ellipsisWidth=u,r.contentWidth=s,r.containerWidth=t,r}function lo(t,e){var n=e.containerWidth,i=e.font,r=e.contentWidth;if(!n)return"";var o=_i(t,i);if(o<=n)return t;for(var a=0;;a++){if(o<=r||a>=e.maxIterations){t+=e.ellipsis;break}var s=0===a?uo(t,r,e.ascCharWidth,e.cnCharWidth):o>0?Math.floor(t.length*r/o):0;o=_i(t=t.substr(0,s),i)}return""===t&&(t=e.placeholder),t}function uo(t,e,n,i){for(var r=0,o=0,a=t.length;o0&&f+i.accumWidth>i.width&&(o=e.split("\n"),c=!0),i.accumWidth=f}else{var g=vo(e,h,i.width,i.breakAll,i.accumWidth);i.accumWidth=g.accumWidth+d,a=g.linesWidths,o=g.lines}}else o=e.split("\n");for(var y=0;y=33&&e<=255}(t)||!!go[t]}function vo(t,e,n,i,r){for(var o=[],a=[],s="",l="",u=0,h=0,c=0;cn:r+h+d>n)?h?(s||l)&&(f?(s||(s=l,l="",h=u=0),o.push(s),a.push(h-u),l+=p,s="",h=u+=d):(l&&(s+=l,h+=u,l="",u=0),o.push(s),a.push(h),s=p,h=d)):f?(o.push(l),a.push(u),l=p,u=d):(o.push(p),a.push(d)):(h+=d,f?(l+=p,u+=d):(l&&(s+=l,l="",u=0),s+=p))}else l&&(s+=l,h+=u),o.push(s),a.push(h),s="",l="",u=0,h=0}return o.length||s||(s=t,l="",u=0),l&&(s+=l),s&&(o.push(s),a.push(h)),1===o.length&&(h+=r),{accumWidth:h,lines:o,linesWidths:a}}var mo="__zr_style_"+Math.round(10*Math.random()),_o={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},xo={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};_o[mo]=!0;var bo=["z","z2","invisible"],wo=["invisible"],So=function(t){function e(e){return t.call(this,e)||this}var i;return n(e,t),e.prototype._init=function(e){for(var n=E(e),i=0;i-1e-8&&tDo||t<-1e-8}function Eo(t,e,n,i,r){var o=1-r;return o*o*(o*t+3*r*e)+r*r*(r*i+3*o*n)}function Vo(t,e,n,i,r){var o=1-r;return 3*(((e-t)*o+2*(n-e)*r)*o+(i-n)*r*r)}function Bo(t,e,n,i,r,o){var a=i+3*(e-n)-t,s=3*(n-2*e+t),l=3*(e-t),u=t-r,h=s*s-3*a*l,c=s*l-9*a*u,p=l*l-3*s*u,d=0;if(No(h)&&No(c)){if(No(s))o[0]=0;else(M=-l/s)>=0&&M<=1&&(o[d++]=M)}else{var f=c*c-4*h*p;if(No(f)){var g=c/h,y=-g/2;(M=-s/a+g)>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y)}else if(f>0){var v=Co(f),m=h*s+1.5*a*(-c+v),_=h*s+1.5*a*(-c-v);(M=(-s-((m=m<0?-To(-m,ko):To(m,ko))+(_=_<0?-To(-_,ko):To(_,ko))))/(3*a))>=0&&M<=1&&(o[d++]=M)}else{var x=(2*h*s-3*a*c)/(2*Co(h*h*h)),b=Math.acos(x)/3,w=Co(h),S=Math.cos(b),M=(-s-2*w*S)/(3*a),I=(y=(-s+w*(S+Lo*Math.sin(b)))/(3*a),(-s+w*(S-Lo*Math.sin(b)))/(3*a));M>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y),I>=0&&I<=1&&(o[d++]=I)}}return d}function Fo(t,e,n,i,r){var o=6*n-12*e+6*t,a=9*e+3*i-3*t-9*n,s=3*e-3*t,l=0;if(No(a)){if(zo(o))(h=-s/o)>=0&&h<=1&&(r[l++]=h)}else{var u=o*o-4*a*s;if(No(u))r[0]=-o/(2*a);else if(u>0){var h,c=Co(u),p=(-o-c)/(2*a);(h=(-o+c)/(2*a))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}function Go(t,e,n,i,r,o){var a=(e-t)*r+t,s=(n-e)*r+e,l=(i-n)*r+n,u=(s-a)*r+a,h=(l-s)*r+s,c=(h-u)*r+u;o[0]=t,o[1]=a,o[2]=u,o[3]=c,o[4]=c,o[5]=h,o[6]=l,o[7]=i}function Ho(t,e,n,i,r,o,a,s,l,u,h){var c,p,d,f,g,y=.005,v=1/0;Po[0]=l,Po[1]=u;for(var m=0;m<1;m+=.05)Oo[0]=Eo(t,n,r,a,m),Oo[1]=Eo(e,i,o,s,m),(f=Pt(Po,Oo))=0&&f=0&&y1e-4)return s[0]=t-n,s[1]=e-i,l[0]=t+n,void(l[1]=e+i);if(ea[0]=Qo(r)*n+t,ea[1]=Jo(r)*i+e,na[0]=Qo(o)*n+t,na[1]=Jo(o)*i+e,u(s,ea,na),h(l,ea,na),(r%=ta)<0&&(r+=ta),(o%=ta)<0&&(o+=ta),r>o&&!a?o+=ta:rr&&(ia[0]=Qo(d)*n+t,ia[1]=Jo(d)*i+e,u(s,ia,s),h(l,ia,l))}var ca={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},pa=[],da=[],fa=[],ga=[],ya=[],va=[],ma=Math.min,_a=Math.max,xa=Math.cos,ba=Math.sin,wa=Math.sqrt,Sa=Math.abs,Ma=Math.PI,Ia=2*Ma,Ta="undefined"!=typeof Float32Array,Ca=[];function Da(t){return Math.round(t/Ma*1e8)/1e8%2*Ma}function Aa(t,e){var n=Da(t[0]);n<0&&(n+=Ia);var i=n-t[0],r=t[1];r+=i,!e&&r-n>=Ia?r=n+Ia:e&&n-r>=Ia?r=n-Ia:!e&&n>r?r=n+(Ia-Da(n-r)):e&&n0&&(this._ux=Sa(n/En/t)||0,this._uy=Sa(n/En/e)||0)},t.prototype.setDPR=function(t){this.dpr=t},t.prototype.setContext=function(t){this._ctx=t},t.prototype.getContext=function(){return this._ctx},t.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},t.prototype.reset=function(){this._saveData&&(this._len=0),this._lineDash&&(this._lineDash=null,this._dashOffset=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},t.prototype.moveTo=function(t,e){return this._drawPendingPt(),this.addData(ca.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},t.prototype.lineTo=function(t,e){var n=Sa(t-this._xi),i=Sa(e-this._yi),r=n>this._ux||i>this._uy;if(this.addData(ca.L,t,e),this._ctx&&r&&(this._needsDash?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),r)this._xi=t,this._yi=e,this._pendingPtDist=0;else{var o=n*n+i*i;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=e,this._pendingPtDist=o)}return this},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){return this.addData(ca.C,t,e,n,i,r,o),this._ctx&&(this._needsDash?this._dashedBezierTo(t,e,n,i,r,o):this._ctx.bezierCurveTo(t,e,n,i,r,o)),this._xi=r,this._yi=o,this},t.prototype.quadraticCurveTo=function(t,e,n,i){return this.addData(ca.Q,t,e,n,i),this._ctx&&(this._needsDash?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},t.prototype.arc=function(t,e,n,i,r,o){Ca[0]=i,Ca[1]=r,Aa(Ca,o),i=Ca[0];var a=(r=Ca[1])-i;return this.addData(ca.A,t,e,n,n,i,a,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=xa(r)*n+t,this._yi=ba(r)*n+e,this},t.prototype.arcTo=function(t,e,n,i,r){return this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},t.prototype.rect=function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData(ca.R,t,e,n,i),this},t.prototype.closePath=function(){this._drawPendingPt(),this.addData(ca.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&(this._needsDash&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,this},t.prototype.fill=function(t){t&&t.fill(),this.toStatic()},t.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},t.prototype.setLineDash=function(t){if(t instanceof Array){this._lineDash=t,this._dashIdx=0;for(var e=0,n=0;nu.length&&(this._expandData(),u=this.data);for(var h=0;h0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},t.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],e=0;e0&&d<=t||h<0&&d>=t||0===h&&(c>0&&f<=e||c<0&&f>=e);)d+=h*(n=o[i=this._dashIdx]),f+=c*n,this._dashIdx=(i+1)%g,h>0&&dl||c>0&&fu||a[i%2?"moveTo":"lineTo"](h>=0?ma(d,t):_a(d,t),c>=0?ma(f,e):_a(f,e));h=d-t,c=f-e,this._dashOffset=-wa(h*h+c*c)},t.prototype._dashedBezierTo=function(t,e,n,i,r,o){var a,s,l,u,h,c=this._ctx,p=this._dashSum,d=this._dashOffset,f=this._lineDash,g=this._xi,y=this._yi,v=0,m=this._dashIdx,_=f.length,x=0;for(d<0&&(d=p+d),d%=p,a=0;a<1;a+=.1)s=Eo(g,t,n,r,a+.1)-Eo(g,t,n,r,a),l=Eo(y,e,i,o,a+.1)-Eo(y,e,i,o,a),v+=wa(s*s+l*l);for(;m<_&&!((x+=f[m])>d);m++);for(a=(x-d)/v;a<=1;)u=Eo(g,t,n,r,a),h=Eo(y,e,i,o,a),m%2?c.moveTo(u,h):c.lineTo(u,h),a+=f[m]/v,m=(m+1)%_;m%2!=0&&c.lineTo(r,o),s=r-u,l=o-h,this._dashOffset=-wa(s*s+l*l)},t.prototype._dashedQuadraticTo=function(t,e,n,i){var r=n,o=i;n=(n+2*t)/3,i=(i+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,n,i,r,o)},t.prototype.toStatic=function(){if(this._saveData){this._drawPendingPt();var t=this.data;t instanceof Array&&(t.length=this._len,Ta&&this._len>11&&(this.data=new Float32Array(t)))}},t.prototype.getBoundingRect=function(){fa[0]=fa[1]=ya[0]=ya[1]=Number.MAX_VALUE,ga[0]=ga[1]=va[0]=va[1]=-Number.MAX_VALUE;var t,e=this.data,n=0,i=0,r=0,o=0;for(t=0;tn||Sa(y)>i||c===e-1)&&(f=Math.sqrt(A*A+y*y),r=g,o=_);break;case ca.C:var v=t[c++],m=t[c++],_=(g=t[c++],t[c++]),x=t[c++],b=t[c++];f=Wo(r,o,v,m,g,_,x,b,10),r=x,o=b;break;case ca.Q:f=qo(r,o,v=t[c++],m=t[c++],g=t[c++],_=t[c++],10),r=g,o=_;break;case ca.A:var w=t[c++],S=t[c++],M=t[c++],I=t[c++],T=t[c++],C=t[c++],D=C+T;c+=1;t[c++];d&&(a=xa(T)*M+w,s=ba(T)*I+S),f=_a(M,I)*ma(Ia,Math.abs(C)),r=xa(D)*M+w,o=ba(D)*I+S;break;case ca.R:a=r=t[c++],s=o=t[c++],f=2*t[c++]+2*t[c++];break;case ca.Z:var A=a-r;y=s-o;f=Math.sqrt(A*A+y*y),r=a,o=s}f>=0&&(l[h++]=f,u+=f)}return this._pathLen=u,u},t.prototype.rebuildPath=function(t,e){var n,i,r,o,a,s,l,u,h,c,p=this.data,d=this._ux,f=this._uy,g=this._len,y=e<1,v=0,m=0,_=0;if(!y||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=e*this._pathLen))t:for(var x=0;x0&&(t.lineTo(h,c),_=0),n=r=p[x++],i=o=p[x++],t.moveTo(r,o);break;case ca.L:a=p[x++],s=p[x++];var S=Sa(a-r),M=Sa(s-o);if(S>d||M>f){if(y){if(v+(j=l[m++])>u){var I=(u-v)/j;t.lineTo(r*(1-I)+a*I,o*(1-I)+s*I);break t}v+=j}t.lineTo(a,s),r=a,o=s,_=0}else{var T=S*S+M*M;T>_&&(h=a,c=s,_=T)}break;case ca.C:var C=p[x++],D=p[x++],A=p[x++],L=p[x++],k=p[x++],P=p[x++];if(y){if(v+(j=l[m++])>u){Go(r,C,A,k,I=(u-v)/j,pa),Go(o,D,L,P,I,da),t.bezierCurveTo(pa[1],da[1],pa[2],da[2],pa[3],da[3]);break t}v+=j}t.bezierCurveTo(C,D,A,L,k,P),r=k,o=P;break;case ca.Q:C=p[x++],D=p[x++],A=p[x++],L=p[x++];if(y){if(v+(j=l[m++])>u){Zo(r,C,A,I=(u-v)/j,pa),Zo(o,D,L,I,da),t.quadraticCurveTo(pa[1],da[1],pa[2],da[2]);break t}v+=j}t.quadraticCurveTo(C,D,A,L),r=A,o=L;break;case ca.A:var O=p[x++],R=p[x++],N=p[x++],z=p[x++],E=p[x++],V=p[x++],B=p[x++],F=!p[x++],G=N>z?N:z,H=Sa(N-z)>.001,W=E+V,U=!1;if(y)v+(j=l[m++])>u&&(W=E+V*(u-v)/j,U=!0),v+=j;if(H&&t.ellipse?t.ellipse(O,R,N,z,B,E,W,F):t.arc(O,R,G,E,W,F),U)break t;w&&(n=xa(E)*N+O,i=ba(E)*z+R),r=xa(W)*N+O,o=ba(W)*z+R;break;case ca.R:n=r=p[x],i=o=p[x+1],a=p[x++],s=p[x++];var X=p[x++],Y=p[x++];if(y){if(v+(j=l[m++])>u){var Z=u-v;t.moveTo(a,s),t.lineTo(a+ma(Z,X),s),(Z-=X)>0&&t.lineTo(a+X,s+ma(Z,Y)),(Z-=Y)>0&&t.lineTo(a+_a(X-Z,0),s+Y),(Z-=X)>0&&t.lineTo(a,s+_a(Y-Z,0));break t}v+=j}t.rect(a,s,X,Y);break;case ca.Z:if(_>0&&(t.lineTo(h,c),_=0),y){var j;if(v+(j=l[m++])>u){I=(u-v)/j;t.lineTo(r*(1-I)+n*I,o*(1-I)+i*I);break t}v+=j}t.closePath(),r=n,o=i}}},t.CMD=ca,t.initDefaultProps=function(){var e=t.prototype;e._saveData=!0,e._needsDash=!1,e._dashOffset=0,e._dashIdx=0,e._dashSum=0,e._ux=0,e._uy=0,e._pendingPtDist=0,e._version=0}(),t}();function ka(t,e,n,i,r,o,a){if(0===r)return!1;var s=r,l=0;if(a>e+s&&a>i+s||at+s&&o>n+s||oe+c&&h>i+c&&h>o+c&&h>s+c||ht+c&&u>n+c&&u>r+c&&u>a+c||ue+u&&l>i+u&&l>o+u||lt+u&&s>n+u&&s>r+u||sn||h+ur&&(r+=za);var p=Math.atan2(l,s);return p<0&&(p+=za),p>=i&&p<=r||p+za>=i&&p+za<=r}function Va(t,e,n,i,r,o){if(o>e&&o>i||or?s:0}var Ba=La.CMD,Fa=2*Math.PI;var Ga=[-1,-1,-1],Ha=[-1,-1];function Wa(t,e,n,i,r,o,a,s,l,u){if(u>e&&u>i&&u>o&&u>s||u1&&(h=void 0,h=Ha[0],Ha[0]=Ha[1],Ha[1]=h),f=Eo(e,i,o,s,Ha[0]),d>1&&(g=Eo(e,i,o,s,Ha[1]))),2===d?ve&&s>i&&s>o||s=0&&h<=1&&(r[l++]=h);else{var u=a*a-4*o*s;if(No(u))(h=-a/(2*o))>=0&&h<=1&&(r[l++]=h);else if(u>0){var h,c=Co(u),p=(-a-c)/(2*o);(h=(-a+c)/(2*o))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}(e,i,o,s,Ga);if(0===l)return 0;var u=Yo(e,i,o);if(u>=0&&u<=1){for(var h=0,c=Uo(e,i,o,u),p=0;pn||s<-n)return 0;var l=Math.sqrt(n*n-s*s);Ga[0]=-l,Ga[1]=l;var u=Math.abs(i-r);if(u<1e-4)return 0;if(u>=Fa-1e-4){i=0,r=Fa;var h=o?1:-1;return a>=Ga[0]+t&&a<=Ga[1]+t?h:0}if(i>r){var c=i;i=r,r=c}i<0&&(i+=Fa,r+=Fa);for(var p=0,d=0;d<2;d++){var f=Ga[d];if(f+t>a){var g=Math.atan2(s,f);h=o?1:-1;g<0&&(g=Fa+g),(g>=i&&g<=r||g+Fa>=i&&g+Fa<=r)&&(g>Math.PI/2&&g<1.5*Math.PI&&(h=-h),p+=h)}}return p}function Ya(t,e,n,i,r){for(var o,a,s,l,u=t.data,h=t.len(),c=0,p=0,d=0,f=0,g=0,y=0;y1&&(n||(c+=Va(p,d,f,g,i,r))),m&&(f=p=u[y],g=d=u[y+1]),v){case Ba.M:p=f=u[y++],d=g=u[y++];break;case Ba.L:if(n){if(ka(p,d,u[y],u[y+1],e,i,r))return!0}else c+=Va(p,d,u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ba.C:if(n){if(Pa(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=Wa(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ba.Q:if(n){if(Oa(p,d,u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=Ua(p,d,u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ba.A:var _=u[y++],x=u[y++],b=u[y++],w=u[y++],S=u[y++],M=u[y++];y+=1;var I=!!(1-u[y++]);o=Math.cos(S)*b+_,a=Math.sin(S)*w+x,m?(f=o,g=a):c+=Va(p,d,o,a,i,r);var T=(i-_)*w/b+_;if(n){if(Ea(_,x,w,S,S+M,I,e,T,r))return!0}else c+=Xa(_,x,w,S,S+M,I,T,r);p=Math.cos(S+M)*b+_,d=Math.sin(S+M)*w+x;break;case Ba.R:if(f=p=u[y++],g=d=u[y++],o=f+u[y++],a=g+u[y++],n){if(ka(f,g,o,g,e,i,r)||ka(o,g,o,a,e,i,r)||ka(o,a,f,a,e,i,r)||ka(f,a,f,g,e,i,r))return!0}else c+=Va(o,g,o,a,i,r),c+=Va(f,a,f,g,i,r);break;case Ba.Z:if(n){if(ka(p,d,f,g,e,i,r))return!0}else c+=Va(p,d,f,g,i,r);p=f,d=g}}return n||(s=d,l=g,Math.abs(s-l)<1e-4)||(c+=Va(p,d,f,g,i,r)||0),0!==c}var Za=T({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},_o),ja={style:T({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},xo.style)},qa=["x","y","rotation","scaleX","scaleY","originX","originY","invisible","culling","z","z2","zlevel","parent"],Ka=function(t){function e(e){return t.call(this,e)||this}var i;return n(e,t),e.prototype.update=function(){var n=this;t.prototype.update.call(this);var i=this.style;if(i.decal){var r=this._decalEl=this._decalEl||new e;r.buildPath===e.prototype.buildPath&&(r.buildPath=function(t){n.buildPath(t,n.shape)}),r.silent=!0;var o=r.style;for(var a in i)o[a]!==i[a]&&(o[a]=i[a]);o.fill=i.fill?i.decal:null,o.decal=null,o.shadowColor=null,i.strokeFirst&&(o.stroke=null);for(var s=0;s.5?Vn:e>.2?"#eee":Bn}if(t)return Bn}return Vn},e.prototype.getInsideTextStroke=function(t){var e=this.style.fill;if(H(e)){var n=this.__zr;if(!(!n||!n.isDarkMode())===Qe(t,0)<.4)return e}},e.prototype.buildPath=function(t,e,n){},e.prototype.pathUpdated=function(){this.__dirty&=-5},e.prototype.createPathProxy=function(){this.path=new La(!1)},e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.getBoundingRect=function(){var t=this._rect,e=this.style,n=!t;if(n){var i=!1;this.path||(i=!0,this.createPathProxy());var r=this.path;(i||4&this.__dirty)&&(r.beginPath(),this.buildPath(r,this.shape,!1),this.pathUpdated()),t=r.getBoundingRect()}if(this._rect=t,this.hasStroke()&&this.path&&this.path.len()>0){var o=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||n){o.copy(t);var a=e.strokeNoScale?this.getLineScale():1,s=e.lineWidth;if(!this.hasFill()){var l=this.strokeContainThreshold;s=Math.max(s,null==l?4:l)}a>1e-10&&(o.width+=s/a,o.height+=s/a,o.x-=s/a/2,o.y-=s/a/2)}return o}return t},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect(),r=this.style;if(t=n[0],e=n[1],i.contain(t,e)){var o=this.path;if(this.hasStroke()){var a=r.lineWidth,s=r.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(this.hasFill()||(a=Math.max(a,this.strokeContainThreshold)),function(t,e,n,i){return Ya(t,e,!0,n,i)}(o,a/s,t,e)))return!0}if(this.hasFill())return function(t,e,n){return Ya(t,0,!1,e,n)}(o,t,e)}return!1},e.prototype.dirtyShape=function(){this.__dirty|=4,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},e.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},e.prototype.animateShape=function(t){return this.animate("shape",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():"shape"===t?this.dirtyShape():this.markRedraw()},e.prototype.attrKV=function(e,n){"shape"===e?this.setShape(n):t.prototype.attrKV.call(this,e,n)},e.prototype.setShape=function(t,e){var n=this.shape;return n||(n=this.shape={}),"string"==typeof t?n[t]=e:I(n,t),this.dirtyShape(),this},e.prototype.shapeChanged=function(){return!!(4&this.__dirty)},e.prototype.createStyle=function(t){return pt(Za,t)},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.shape&&!n.shape&&(n.shape=I({},this.shape))},e.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,l=!(n&&r);if(n&&n.shape?o?r?s=n.shape:(s=I({},i.shape),I(s,n.shape)):(s=I({},r?this.shape:i.shape),I(s,n.shape)):l&&(s=i.shape),s)if(o){this.shape=I({},this.shape);for(var u={},h=E(s),c=0;c0},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.createStyle=function(t){return pt($a,t)},e.prototype.setBoundingRect=function(t){this._rect=t},e.prototype.getBoundingRect=function(){var t=this.style;if(!this._rect){var e=t.text;null!=e?e+="":e="";var n=bi(e,t.font,t.textAlign,t.textBaseline);if(n.x+=t.x||0,n.y+=t.y||0,this.hasStroke()){var i=t.lineWidth;n.x-=i/2,n.y-=i/2,n.width+=i,n.height+=i}this._rect=n}return this._rect},e.initDefaultProps=void(e.prototype.dirtyRectTolerance=10),e}(So);Ja.prototype.type="tspan";var Qa=T({x:0,y:0},_o),ts={style:T({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},xo.style)};var es=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.createStyle=function(t){return pt(Qa,t)},e.prototype._getSize=function(t){var e=this.style,n=e[t];if(null!=n)return n;var i,r=(i=e.image)&&"string"!=typeof i&&i.width&&i.height?e.image:this.__image;if(!r)return 0;var o="width"===t?"height":"width",a=e[o];return null==a?r[t]:r[t]/r[o]*a},e.prototype.getWidth=function(){return this._getSize("width")},e.prototype.getHeight=function(){return this._getSize("height")},e.prototype.getAnimationStyleProps=function(){return ts},e.prototype.getBoundingRect=function(){var t=this.style;return this._rect||(this._rect=new gi(t.x||0,t.y||0,this.getWidth(),this.getHeight())),this._rect},e}(So);es.prototype.type="image";var ns=Math.round;function is(t,e,n){if(e){var i=e.x1,r=e.x2,o=e.y1,a=e.y2;t.x1=i,t.x2=r,t.y1=o,t.y2=a;var s=n&&n.lineWidth;return s?(ns(2*i)===ns(2*r)&&(t.x1=t.x2=os(i,s,!0)),ns(2*o)===ns(2*a)&&(t.y1=t.y2=os(o,s,!0)),t):t}}function rs(t,e,n){if(e){var i=e.x,r=e.y,o=e.width,a=e.height;t.x=i,t.y=r,t.width=o,t.height=a;var s=n&&n.lineWidth;return s?(t.x=os(i,s,!0),t.y=os(r,s,!0),t.width=Math.max(os(i+o,s,!1)-t.x,0===o?0:1),t.height=Math.max(os(r+a,s,!1)-t.y,0===a?0:1),t):t}}function os(t,e,n){if(!e)return t;var i=ns(2*t);return(i+ns(e))%2==0?i/2:(i+(n?1:-1))/2}var as=function(){this.x=0,this.y=0,this.width=0,this.height=0},ss={},ls=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new as},e.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=rs(ss,e,this.style);n=a.x,i=a.y,r=a.width,o=a.height,a.r=e.r,e=a}else n=e.x,i=e.y,r=e.width,o=e.height;e.r?function(t,e){var n,i,r,o,a,s=e.x,l=e.y,u=e.width,h=e.height,c=e.r;u<0&&(s+=u,u=-u),h<0&&(l+=h,h=-h),"number"==typeof c?n=i=r=o=c:c instanceof Array?1===c.length?n=i=r=o=c[0]:2===c.length?(n=r=c[0],i=o=c[1]):3===c.length?(n=c[0],i=o=c[1],r=c[2]):(n=c[0],i=c[1],r=c[2],o=c[3]):n=i=r=o=0,n+i>u&&(n*=u/(a=n+i),i*=u/a),r+o>u&&(r*=u/(a=r+o),o*=u/a),i+r>h&&(i*=h/(a=i+r),r*=h/a),n+o>h&&(n*=h/(a=n+o),o*=h/a),t.moveTo(s+n,l),t.lineTo(s+u-i,l),0!==i&&t.arc(s+u-i,l+i,i,-Math.PI/2,0),t.lineTo(s+u,l+h-r),0!==r&&t.arc(s+u-r,l+h-r,r,0,Math.PI/2),t.lineTo(s+o,l+h),0!==o&&t.arc(s+o,l+h-o,o,Math.PI/2,Math.PI),t.lineTo(s,l+n),0!==n&&t.arc(s+n,l+n,n,Math.PI,1.5*Math.PI)}(t,e):t.rect(n,i,r,o)},e.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},e}(Ka);ls.prototype.type="rect";var us={fill:"#000"},hs={style:T({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},xo.style)},cs=function(t){function e(e){var n=t.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=us,n.attr(e),n}return n(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.update=function(){this.styleChanged()&&this._updateSubTexts();for(var e=0;ep&&u){var d=Math.floor(p/l);n=n.slice(0,d)}var f=p,g=h;if(r&&(f+=r[0]+r[2],null!=g&&(g+=r[1]+r[3])),t&&a&&null!=g)for(var y=so(h,o,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),v=0;v0,I=null!=t.width&&("truncate"===t.overflow||"break"===t.overflow||"breakAll"===t.overflow),T=i.calculatedLineHeight,C=0;Cl&&fo(n,t.substring(l,u),e,s),fo(n,i[2],e,s,i[1]),l=oo.lastIndex}lo){b>0?(m.tokens=m.tokens.slice(0,b),y(m,x,_),n.lines=n.lines.slice(0,v+1)):n.lines=n.lines.slice(0,v);break t}var C=w.width,D=null==C||"auto"===C;if("string"==typeof C&&"%"===C.charAt(C.length-1))P.percentWidth=C,h.push(P),P.contentWidth=_i(P.text,I);else{if(D){var A=w.backgroundColor,L=A&&A.image;L&&ro(L=eo(L))&&(P.width=Math.max(P.width,L.width*T/L.height))}var k=f&&null!=r?r-x:null;null!=k&&k=0&&"right"===(C=_[T]).align;)this._placeToken(C,t,b,f,I,"right",y),w-=C.width,I-=C.width,T--;for(M+=(n-(M-d)-(g-I)-w)/2;S<=T;)C=_[S],this._placeToken(C,t,b,f,M+C.width/2,"center",y),M+=C.width,S++;f+=b}},e.prototype._placeToken=function(t,e,n,i,r,o,a){var s=e.rich[t.styleName]||{};s.text=t.text;var l=t.verticalAlign,u=i+n/2;"top"===l?u=i+t.height/2:"bottom"===l&&(u=i+n-t.height/2),!t.isLineHolder&&ms(s)&&this._renderBackground(s,e,"right"===o?r-t.width:"center"===o?r-t.width/2:r,u-t.height/2,t.width,t.height);var h=!!s.backgroundColor,c=t.textPadding;c&&(r=ys(r,o,c),u-=t.height/2-c[0]-t.innerHeight/2);var p=this._getOrCreateChild(Ja),d=p.createStyle();p.useStyle(d);var f=this._defaultStyle,g=!1,y=0,v=gs("fill"in s?s.fill:"fill"in e?e.fill:(g=!0,f.fill)),m=gs("stroke"in s?s.stroke:"stroke"in e?e.stroke:h||a||f.autoStroke&&!g?null:(y=2,f.stroke)),_=s.textShadowBlur>0||e.textShadowBlur>0;d.text=t.text,d.x=r,d.y=u,_&&(d.shadowBlur=s.textShadowBlur||e.textShadowBlur||0,d.shadowColor=s.textShadowColor||e.textShadowColor||"transparent",d.shadowOffsetX=s.textShadowOffsetX||e.textShadowOffsetX||0,d.shadowOffsetY=s.textShadowOffsetY||e.textShadowOffsetY||0),d.textAlign=o,d.textBaseline="middle",d.font=t.font||vi,d.opacity=et(s.opacity,e.opacity,1),m&&(d.lineWidth=et(s.lineWidth,e.lineWidth,y),d.lineDash=tt(s.lineDash,e.lineDash),d.lineDashOffset=e.lineDashOffset||0,d.stroke=m),v&&(d.fill=v);var x=t.contentWidth,b=t.contentHeight;p.setBoundingRect(new gi(wi(d.x,x,d.textAlign),Si(d.y,b,d.textBaseline),x,b))},e.prototype._renderBackground=function(t,e,n,i,r,o){var a,s,l,u=t.backgroundColor,h=t.borderWidth,c=t.borderColor,p=u&&u.image,d=u&&!p,f=t.borderRadius,g=this;if(d||h&&c){(a=this._getOrCreateChild(ls)).useStyle(a.createStyle()),a.style.fill=null;var y=a.shape;y.x=n,y.y=i,y.width=r,y.height=o,y.r=f,a.dirtyShape()}if(d)(l=a.style).fill=u||null,l.fillOpacity=tt(t.fillOpacity,1);else if(p){(s=this._getOrCreateChild(es)).onload=function(){g.dirtyStyle()};var v=s.style;v.image=u.image,v.x=n,v.y=i,v.width=r,v.height=o}h&&c&&((l=a.style).lineWidth=h,l.stroke=c,l.strokeOpacity=tt(t.strokeOpacity,1),l.lineDash=t.borderDash,l.lineDashOffset=t.borderDashOffset||0,a.strokeContainThreshold=0,a.hasFill()&&a.hasStroke()&&(l.strokeFirst=!0,l.lineWidth*=2));var m=(a||s).style;m.shadowBlur=t.shadowBlur||0,m.shadowColor=t.shadowColor||"transparent",m.shadowOffsetX=t.shadowOffsetX||0,m.shadowOffsetY=t.shadowOffsetY||0,m.opacity=et(t.opacity,e.opacity,1)},e.makeFont=function(t){var e="";if(t.fontSize||t.fontFamily||t.fontWeight){var n="";n="string"!=typeof t.fontSize||-1===t.fontSize.indexOf("px")&&-1===t.fontSize.indexOf("rem")&&-1===t.fontSize.indexOf("em")?isNaN(+t.fontSize)?"12px":t.fontSize+"px":t.fontSize,e=[t.fontStyle,t.fontWeight,n,t.fontFamily||"sans-serif"].join(" ")}return e&&ot(e)||t.textFont||t.font},e}(So),ps={left:!0,right:1,center:1},ds={top:1,bottom:1,middle:1};function fs(t){if(t){t.font=cs.makeFont(t);var e=t.align;"middle"===e&&(e="center"),t.align=null==e||ps[e]?e:"left";var n=t.verticalAlign;"center"===n&&(n="middle"),t.verticalAlign=null==n||ds[n]?n:"top",t.padding&&(t.padding=it(t.padding))}}function gs(t,e){return null==t||e<=0||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function ys(t,e,n){return"right"===e?t-n[1]:"center"===e?t+n[3]/2-n[1]/2:t+n[3]}function vs(t){var e=t.text;return null!=e&&(e+=""),e}function ms(t){return!!(t.backgroundColor||t.borderWidth&&t.borderColor)}var _s=kr(),xs=1,bs={},ws=kr(),Ss=["emphasis","blur","select"],Ms=["normal","emphasis","blur","select"],Is=10,Ts="highlight",Cs="downplay",Ds="select",As="unselect",Ls="toggleSelect";function ks(t){return null!=t&&"none"!==t}var Ps=new Ae(100);function Os(t){if("string"!=typeof t)return t;var e=Ps.get(t);return e||(e=Ue(t,-.1),Ps.put(t,e)),e}function Rs(t,e,n){t.onHoverStateChange&&(t.hoverState||0)!==n&&t.onHoverStateChange(e),t.hoverState=n}function Ns(t){Rs(t,"emphasis",2)}function zs(t){2===t.hoverState&&Rs(t,"normal",0)}function Es(t){Rs(t,"blur",1)}function Vs(t){1===t.hoverState&&Rs(t,"normal",0)}function Bs(t){t.selected=!0}function Fs(t){t.selected=!1}function Gs(t,e,n){e(t,n)}function Hs(t,e,n){Gs(t,e,n),t.isGroup&&t.traverse((function(t){Gs(t,e,n)}))}function Ws(t,e){switch(e){case"emphasis":t.hoverState=2;break;case"normal":t.hoverState=0;break;case"blur":t.hoverState=1;break;case"select":t.selected=!0}}function Us(t,e){var n=this.states[t];if(this.style){if("emphasis"===t)return function(t,e,n,i){var r=n&&D(n,"select")>=0,o=!1;if(t instanceof Ka){var a=ws(t),s=r&&a.selectFill||a.normalFill,l=r&&a.selectStroke||a.normalStroke;if(ks(s)||ks(l)){var u=(i=i||{}).style||{};!ks(u.fill)&&ks(s)?(o=!0,i=I({},i),(u=I({},u)).fill=Os(s)):!ks(u.stroke)&&ks(l)&&(o||(i=I({},i),u=I({},u)),u.stroke=Os(l)),i.style=u}}if(i&&null==i.z2){o||(i=I({},i));var h=t.z2EmphasisLift;i.z2=t.z2+(null!=h?h:Is)}return i}(this,0,e,n);if("blur"===t)return function(t,e,n){var i=D(t.currentStates,e)>=0,r=t.style.opacity,o=i?null:function(t,e,n,i){for(var r=t.style,o={},a=0;a0){var o={dataIndex:r,seriesIndex:t.seriesIndex};null!=i&&(o.dataType=i),e.push(o)}}))})),e}function sl(t,e,n){pl(t,!0),Hs(t,Xs),ll(t,e,n)}function ll(t,e,n){var i=_s(t);null!=e?(i.focus=e,i.blurScope=n):i.focus&&(i.focus=null)}var ul=["emphasis","blur","select"],hl={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function cl(t,e,n,i){n=n||"itemStyle";for(var r=0;r1&&(a*=xl(f),s*=xl(f));var g=(r===o?-1:1)*xl((a*a*(s*s)-a*a*(d*d)-s*s*(p*p))/(a*a*(d*d)+s*s*(p*p)))||0,y=g*a*d/s,v=g*-s*p/a,m=(t+n)/2+wl(c)*y-bl(c)*v,_=(e+i)/2+bl(c)*y+wl(c)*v,x=Tl([1,0],[(p-y)/a,(d-v)/s]),b=[(p-y)/a,(d-v)/s],w=[(-1*p-y)/a,(-1*d-v)/s],S=Tl(b,w);if(Il(b,w)<=-1&&(S=Sl),Il(b,w)>=1&&(S=0),S<0){var M=Math.round(S/Sl*1e6)/1e6;S=2*Sl+M%2*Sl}h.addData(u,m,_,a,s,x,S,c,o)}var Dl=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,Al=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;var Ll=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.applyTransform=function(t){},e}(Ka);function kl(t){return null!=t.setData}function Pl(t,e){var n=function(t){var e=new La;if(!t)return e;var n,i=0,r=0,o=i,a=r,s=La.CMD,l=t.match(Dl);if(!l)return e;for(var u=0;uL*L+k*k&&(M=T,I=C),{cx:M,cy:I,x01:-h,y01:-c,x11:M*(r/b-1),y11:I*(r/b-1)}}function Kl(t,e){var n=Yl(e.r,0),i=Yl(e.r0||0,0),r=n>0;if(r||i>0){if(r||(n=i,i=0),i>n){var o=n;n=i,i=o}var a,s=!!e.clockwise,l=e.startAngle,u=e.endAngle;if(l===u)a=0;else{var h=[l,u];Aa(h,!s),a=Ul(h[0]-h[1])}var c=e.cx,p=e.cy,d=e.cornerRadius||0,f=e.innerCornerRadius||0;if(n>jl)if(a>Bl-jl)t.moveTo(c+n*Gl(l),p+n*Fl(l)),t.arc(c,p,n,l,u,!s),i>jl&&(t.moveTo(c+i*Gl(u),p+i*Fl(u)),t.arc(c,p,i,u,l,s));else{var g=Ul(n-i)/2,y=Zl(g,d),v=Zl(g,f),m=v,_=y,x=n*Gl(l),b=n*Fl(l),w=i*Gl(u),S=i*Fl(u),M=void 0,I=void 0,T=void 0,C=void 0;if((y>jl||v>jl)&&(M=n*Gl(u),I=n*Fl(u),T=i*Gl(l),C=i*Fl(l),ajl)if(_>jl){var N=ql(T,C,x,b,n,_,s),z=ql(M,I,w,S,n,_,s);t.moveTo(c+N.cx+N.x01,p+N.cy+N.y01),_jl&&a>jl)if(m>jl){N=ql(w,S,M,I,i,-m,s),z=ql(x,b,T,C,i,-m,s);t.lineTo(c+N.cx+N.x01,p+N.cy+N.y01),m=2){if(i&&"spline"!==i){var o=function(t,e,n,i){var r,o,a,s,l=[],u=[],h=[],c=[];if(i){a=[1/0,1/0],s=[-1/0,-1/0];for(var p=0,d=t.length;pn-2?n-1:l+1],d=t[l>n-3?n-1:l+2]);var f=u*u,g=u*f;i.push([eu(h[0],c[0],p[0],d[0],u,f,g),eu(h[1],c[1],p[1],d[1],u,f,g)])}return i}(r,n)),t.moveTo(r[0][0],r[0][1]);s=1;for(var c=r.length;sbu[1]){if(a=!1,r)return a;var u=Math.abs(bu[0]-xu[1]),h=Math.abs(xu[0]-bu[1]);Math.min(u,h)>i.len()&&(u0?l?e.animateFrom(n,{duration:f,delay:y||0,easing:g,done:o,force:!!o||!!a,scope:t,during:a}):e.animateTo(n,{duration:f,delay:y||0,easing:g,done:o,force:!!o||!!a,setToFinal:!0,scope:t,during:a}):(e.stopAnimation(),!l&&e.attr(n),o&&o())}else e.stopAnimation(),!l&&e.attr(n),a&&a(1),o&&o()}function Hu(t,e,n,i,r,o){Gu("update",t,e,n,i,r,o)}function Wu(t,e,n,i,r,o){Gu("init",t,e,n,i,r,o)}function Uu(t,e,n,i,r,o){Zu(t)||Gu("remove",t,e,n,i,r,o)}function Xu(t,e,n,i){t.removeTextContent(),t.removeTextGuideLine(),Uu(t,{style:{opacity:0}},e,n,i)}function Yu(t,e,n){function i(){t.parent&&t.parent.remove(t)}t.isGroup?t.traverse((function(t){t.isGroup||Xu(t,e,n,i)})):Xu(t,e,n,i)}function Zu(t){if(!t.__zr)return!0;for(var e=0;eMath.abs(o[1])?o[0]>0?"right":"left":o[1]>0?"bottom":"top"}function $u(t){return!t.isGroup}function Ju(t,e,n){if(t&&e){var i,r=(i={},t.traverse((function(t){$u(t)&&t.anid&&(i[t.anid]=t)})),i);e.traverse((function(t){if($u(t)&&t.anid){var e=r[t.anid];if(e){var i=o(t);t.attr(o(e)),Hu(t,i,n,_s(t).dataIndex)}}}))}function o(t){var e={x:t.x,y:t.y,rotation:t.rotation};return function(t){return null!=t.shape}(t)&&(e.shape=I({},t.shape)),e}}function Qu(t,e){return O(t,(function(t){var n=t[0];n=Cu(n,e.x),n=Du(n,e.x+e.width);var i=t[1];return i=Cu(i,e.y),[n,i=Du(i,e.y+e.height)]}))}function th(t,e){var n=Cu(t.x,e.x),i=Du(t.x+t.width,e.x+e.width),r=Cu(t.y,e.y),o=Du(t.y+t.height,e.y+e.height);if(i>=n&&o>=r)return{x:n,y:r,width:i-n,height:o-r}}function eh(t,e,n){var i=I({rectHover:!0},e),r=i.style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(r.image=t.slice(8),T(r,n),new es(i)):Nu(t.replace("path://",""),i,n,"center")}function nh(t,e,n,i,r){for(var o=0,a=r[r.length-1];o=-1e-6)return!1;var f=t-r,g=e-o,y=rh(f,g,u,h)/d;if(y<0||y>1)return!1;var v=rh(f,g,c,p)/d;return!(v<0||v>1)}function rh(t,e,n,i){return t*i-n*e}function oh(t){var e=t.itemTooltipOption,n=t.componentModel,i=t.itemName,r=H(e)?{formatter:e}:e,o=n.mainType,a=n.componentIndex,s={componentType:o,name:i,$vars:["name"]};s[o+"Index"]=a;var l=t.formatterParamsExtra;l&&P(E(l),(function(t){dt(s,t)||(s[t]=l[t],s.$vars.push(t))}));var u=_s(t.el);u.componentMainType=o,u.componentIndex=a,u.tooltipConfig={name:i,option:T({content:i,formatterParams:s},r)}}Ou("circle",Nl),Ou("ellipse",El),Ou("sector",Jl),Ou("ring",tu),Ou("polygon",ru),Ou("polyline",au),Ou("rect",ls),Ou("line",uu),Ou("bezierCurve",du),Ou("arc",gu);var ah=Object.freeze({__proto__:null,extendShape:Lu,extendPath:Pu,registerShape:Ou,getShapeClass:Ru,makePath:Nu,makeImage:zu,mergePath:Vu,resizePath:Bu,subPixelOptimizeLine:function(t){return is(t.shape,t.shape,t.style),t},subPixelOptimizeRect:function(t){return rs(t.shape,t.shape,t.style),t},subPixelOptimize:Fu,updateProps:Hu,initProps:Wu,removeElement:Uu,removeElementWithFadeOut:Yu,isElementRemoved:Zu,getTransform:ju,applyTransform:qu,transformDirection:Ku,groupTransition:Ju,clipPointsByRect:Qu,clipRectByRect:th,createIcon:eh,linePolygonIntersect:nh,lineLineIntersect:ih,setTooltipConfig:oh,Group:Ei,Image:es,Text:cs,Circle:Nl,Ellipse:El,Sector:Jl,Ring:tu,Polygon:ru,Polyline:au,Rect:ls,Line:uu,BezierCurve:du,Arc:gu,IncrementalDisplayable:Tu,CompoundPath:yu,LinearGradient:mu,RadialGradient:_u,BoundingRect:gi,OrientedBoundingRect:Mu,Point:ai,Path:Ka}),sh={};function lh(t,e){for(var n=0;n-1?Eh:Bh;function Wh(t,e){t=t.toUpperCase(),Gh[t]=new Oh(e),Fh[t]=e}Wh(Vh,{time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}}),Wh(Eh,{time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}});var Uh=1e3,Xh=6e4,Yh=36e5,Zh=864e5,jh=31536e6,qh={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{hh}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}"},Kh="{yyyy}-{MM}-{dd}",$h={year:"{yyyy}",month:"{yyyy}-{MM}",day:Kh,hour:"{yyyy}-{MM}-{dd} "+qh.hour,minute:"{yyyy}-{MM}-{dd} "+qh.minute,second:"{yyyy}-{MM}-{dd} "+qh.second,millisecond:qh.none},Jh=["year","month","day","hour","minute","second","millisecond"],Qh=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function tc(t,e){return"0000".substr(0,e-(t+="").length)+t}function ec(t){switch(t){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return t}}function nc(t){return t===ec(t)}function ic(t,e,n,i){var r=or(t),o=r[ac(n)](),a=r[sc(n)]()+1,s=Math.floor((a-1)/4)+1,l=r[lc(n)](),u=r["get"+(n?"UTC":"")+"Day"](),h=r[uc(n)](),c=(h-1)%12+1,p=r[hc(n)](),d=r[cc(n)](),f=r[pc(n)](),g=(i instanceof Oh?i:function(t){return Gh[t]}(i||Hh)||Gh.EN).getModel("time"),y=g.get("month"),v=g.get("monthAbbr"),m=g.get("dayOfWeek"),_=g.get("dayOfWeekAbbr");return(e||"").replace(/{yyyy}/g,o+"").replace(/{yy}/g,o%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,y[a-1]).replace(/{MMM}/g,v[a-1]).replace(/{MM}/g,tc(a,2)).replace(/{M}/g,a+"").replace(/{dd}/g,tc(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,m[u]).replace(/{ee}/g,_[u]).replace(/{e}/g,u+"").replace(/{HH}/g,tc(h,2)).replace(/{H}/g,h+"").replace(/{hh}/g,tc(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,tc(p,2)).replace(/{m}/g,p+"").replace(/{ss}/g,tc(d,2)).replace(/{s}/g,d+"").replace(/{SSS}/g,tc(f,3)).replace(/{S}/g,f+"")}function rc(t,e){var n=or(t),i=n[sc(e)]()+1,r=n[lc(e)](),o=n[uc(e)](),a=n[hc(e)](),s=n[cc(e)](),l=0===n[pc(e)](),u=l&&0===s,h=u&&0===a,c=h&&0===o,p=c&&1===r;return p&&1===i?"year":p?"month":c?"day":h?"hour":u?"minute":l?"second":"millisecond"}function oc(t,e,n){var i="number"==typeof t?or(t):t;switch(e=e||rc(t,n)){case"year":return i[ac(n)]();case"half-year":return i[sc(n)]()>=6?1:0;case"quarter":return Math.floor((i[sc(n)]()+1)/4);case"month":return i[sc(n)]();case"day":return i[lc(n)]();case"half-day":return i[uc(n)]()/24;case"hour":return i[uc(n)]();case"minute":return i[hc(n)]();case"second":return i[cc(n)]();case"millisecond":return i[pc(n)]()}}function ac(t){return t?"getUTCFullYear":"getFullYear"}function sc(t){return t?"getUTCMonth":"getMonth"}function lc(t){return t?"getUTCDate":"getDate"}function uc(t){return t?"getUTCHours":"getHours"}function hc(t){return t?"getUTCMinutes":"getMinutes"}function cc(t){return t?"getUTCSeconds":"getSeconds"}function pc(t){return t?"getUTCSeconds":"getSeconds"}function dc(t){return t?"setUTCFullYear":"setFullYear"}function fc(t){return t?"setUTCMonth":"setMonth"}function gc(t){return t?"setUTCDate":"setDate"}function yc(t){return t?"setUTCHours":"setHours"}function vc(t){return t?"setUTCMinutes":"setMinutes"}function mc(t){return t?"setUTCSeconds":"setSeconds"}function _c(t){return t?"setUTCSeconds":"setSeconds"}function xc(t){if(!pr(t))return H(t)?t:"-";var e=(t+"").split(".");return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")}function bc(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,(function(t,e){return e.toUpperCase()})),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t}var wc=it,Sc=/([&<>"'])/g,Mc={"&":"&","<":"<",">":">",'"':""","'":"'"};function Ic(t){return null==t?"":(t+"").replace(Sc,(function(t,e){return Mc[e]}))}function Tc(t,e,n){function i(t){return t&&ot(t)?t:"-"}function r(t){return!(null==t||isNaN(t)||!isFinite(t))}var o="time"===e,a=t instanceof Date;if(o||a){var s=o?or(t):t;if(!isNaN(+s))return ic(s,"{yyyy}-{MM}-{dd} {hh}:{mm}:{ss}",n);if(a)return"-"}if("ordinal"===e)return W(t)?i(t):U(t)&&r(t)?t+"":"-";var l=cr(t);return r(l)?xc(l):W(t)?i(t):"-"}var Cc=["a","b","c","d","e","f","g"],Dc=function(t,e){return"{"+t+(null==e?"":e)+"}"};function Ac(t,e,n){F(e)||(e=[e]);var i=e.length;if(!i)return"";for(var r=e[0].$vars||[],o=0;o':'':{renderMode:o,content:"{"+(n.markerId||"markerX")+"|} ",style:"subItem"===r?{width:4,height:4,borderRadius:2,backgroundColor:i}:{width:10,height:10,borderRadius:5,backgroundColor:i}}:""}function kc(t,e){return e=e||"transparent",H(t)?t:X(t)&&t.colorStops&&(t.colorStops[0]||{}).color||e}function Pc(t,e){if("_blank"===e||"blank"===e){var n=window.open();n.opener=null,n.location.href=t}else window.open(t,e)}var Oc=P,Rc=["left","right","top","bottom","width","height"],Nc=[["width","left","right"],["height","top","bottom"]];function zc(t,e,n,i,r){var o=0,a=0;null==i&&(i=1/0),null==r&&(r=1/0);var s=0;e.eachChild((function(l,u){var h,c,p=l.getBoundingRect(),d=e.childAt(u+1),f=d&&d.getBoundingRect();if("horizontal"===t){var g=p.width+(f?-f.x+p.x:0);(h=o+g)>i||l.newline?(o=0,h=g,a+=s+n,s=p.height):s=Math.max(s,p.height)}else{var y=p.height+(f?-f.y+p.y:0);(c=a+y)>r||l.newline?(o+=s+n,a=0,c=y,s=p.width):s=Math.max(s,p.width)}l.newline||(l.x=o,l.y=a,l.markRedraw(),"horizontal"===t?o=h+n:a=c+n)}))}var Ec=zc;B(zc,"vertical"),B(zc,"horizontal");function Vc(t,e,n){n=wc(n||0);var i=e.width,r=e.height,o=Zi(t.left,i),a=Zi(t.top,r),s=Zi(t.right,i),l=Zi(t.bottom,r),u=Zi(t.width,i),h=Zi(t.height,r),c=n[2]+n[0],p=n[1]+n[3],d=t.aspect;switch(isNaN(u)&&(u=i-s-p-o),isNaN(h)&&(h=r-l-c-a),null!=d&&(isNaN(u)&&isNaN(h)&&(d>i/r?u=.8*i:h=.8*r),isNaN(u)&&(u=d*h),isNaN(h)&&(h=u/d)),isNaN(o)&&(o=i-s-u-p),isNaN(a)&&(a=r-l-h-c),t.left||t.right){case"center":o=i/2-u/2-n[3];break;case"right":o=i-u-p}switch(t.top||t.bottom){case"middle":case"center":a=r/2-h/2-n[0];break;case"bottom":a=r-h-c}o=o||0,a=a||0,isNaN(u)&&(u=i-p-o-(s||0)),isNaN(h)&&(h=r-c-a-(l||0));var f=new gi(o+n[3],a+n[0],u,h);return f.margin=n,f}function Bc(t,e,n,i,r){var o=!r||!r.hv||r.hv[0],a=!r||!r.hv||r.hv[1],s=r&&r.boundingMode||"all";if(o||a){var l;if("raw"===s)l="group"===t.type?new gi(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(l=t.getBoundingRect(),t.needLocalTransform()){var u=t.getLocalTransform();(l=l.clone()).applyTransform(u)}var h=Vc(T({width:l.width,height:l.height},e),n,i),c=o?h.x-l.x:0,p=a?h.y-l.y:0;"raw"===s?(t.x=c,t.y=p):(t.x+=c,t.y+=p),t.markRedraw()}}function Fc(t){var e=t.layoutMode||t.constructor.layoutMode;return X(e)?e:e?{type:e}:null}function Gc(t,e,n){var i=n&&n.ignoreSize;!F(i)&&(i=[i,i]);var r=a(Nc[0],0),o=a(Nc[1],1);function a(n,r){var o={},a=0,u={},h=0;if(Oc(n,(function(e){u[e]=t[e]})),Oc(n,(function(t){s(e,t)&&(o[t]=u[t]=e[t]),l(o,t)&&a++,l(u,t)&&h++})),i[r])return l(e,n[1])?u[n[2]]=null:l(e,n[2])&&(u[n[1]]=null),u;if(2!==h&&a){if(a>=2)return o;for(var c=0;c=0;a--)o=S(o,n[a],!0);e.defaultOption=o}return e.defaultOption},e.prototype.getReferringComponents=function(t,e){var n=t+"Index",i=t+"Id";return Er(this.ecModel,t,{index:this.get(n,!0),id:this.get(i,!0)},e)},e.prototype.getBoxLayoutParams=function(){var t=this;return{left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")}},e.protoInitialize=function(){var t=e.prototype;t.type="component",t.id="",t.name="",t.mainType="",t.subType="",t.componentIndex=0}(),e}(Oh);Yr(Xc,Oh),Kr(Xc),function(t){var e={};t.registerSubTypeDefaulter=function(t,n){var i=Wr(t);e[i.main]=n},t.determineSubType=function(n,i){var r=i.type;if(!r){var o=Wr(n).main;t.hasSubTypes(n)&&e[o]&&(r=e[o](i))}return r}}(Xc),function(t,e){function n(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}t.topologicalTravel=function(t,i,r,o){if(t.length){var a=function(t){var i={},r=[];return P(t,(function(o){var a=n(i,o),s=function(t,e){var n=[];return P(t,(function(t){D(e,t)>=0&&n.push(t)})),n}(a.originalDeps=e(o),t);a.entryCount=s.length,0===a.entryCount&&r.push(o),P(s,(function(t){D(a.predecessor,t)<0&&a.predecessor.push(t);var e=n(i,t);D(e.successor,t)<0&&e.successor.push(o)}))})),{graph:i,noEntryList:r}}(i),s=a.graph,l=a.noEntryList,u={};for(P(t,(function(t){u[t]=!0}));l.length;){var h=l.pop(),c=s[h],p=!!u[h];p&&(r.call(o,h,c.originalDeps.slice()),delete u[h]),P(c.successor,p?f:d)}P(u,(function(){var t="";throw new Error(t)}))}function d(t){s[t].entryCount--,0===s[t].entryCount&&l.push(t)}function f(t){u[t]=!0,d(t)}}}(Xc,(function(t){var e=[];P(Xc.getClassesByMainType(t),(function(t){e=e.concat(t.dependencies||t.prototype.dependencies||[])})),e=O(e,(function(t){return Wr(t).main})),"dataset"!==t&&D(e,"dataset")<=0&&e.unshift("dataset");return e}));var Yc="";"undefined"!=typeof navigator&&(Yc=navigator.platform||"");var Zc="rgba(0, 0, 0, 0.2)",jc={darkMode:"auto",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:Zc,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:Zc,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:Zc,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:Zc,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:Zc,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:Zc,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:Yc.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},qc=ht(["tooltip","label","itemName","itemId","seriesName"]),Kc="original",$c="arrayRows",Jc="objectRows",Qc="keyedColumns",tp="typedArray",ep="unknown",np="column",ip="row",rp=1,op=2,ap=3,sp=kr();function lp(t,e,n){var i={},r=hp(e);if(!r||!t)return i;var o,a,s=[],l=[],u=e.ecModel,h=sp(u).datasetMap,c=r.uid+"_"+n.seriesLayoutBy;P(t=t.slice(),(function(e,n){var r=X(e)?e:t[n]={name:e};"ordinal"===r.type&&null==o&&(o=n,a=f(r)),i[r.name]=[]}));var p=h.get(c)||h.set(c,{categoryWayDim:a,valueWayDim:0});function d(t,e,n){for(var i=0;ie)return t[i];return t[n-1]}(i,a):n;if((h=h||n)&&h.length){var c=h[l];return r&&(u[r]=c),s.paletteIdx=(l+1)%h.length,c}}var wp=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(t,e,n,i,r,o){i=i||{},this.option=null,this._theme=new Oh(i),this._locale=new Oh(r),this._optionManager=o},e.prototype.setOption=function(t,e,n){var i=Ip(e);this._optionManager.setOption(t,n,i),this._resetOption(null,i)},e.prototype.resetOption=function(t,e){return this._resetOption(t,Ip(e))},e.prototype._resetOption=function(t,e){var n=!1,i=this._optionManager;if(!t||"recreate"===t){var r=i.mountOption("recreate"===t);0,this.option&&"recreate"!==t?(this.restoreData(),this._mergeOption(r,e)):yp(this,r),n=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var o=i.getTimelineOption(this);o&&(n=!0,this._mergeOption(o,e))}if(!t||"recreate"===t||"media"===t){var a=i.getMediaOption(this);a.length&&P(a,(function(t){n=!0,this._mergeOption(t,e)}),this)}return n},e.prototype.mergeOption=function(t){this._mergeOption(t,null)},e.prototype._mergeOption=function(t,e){var n=this.option,i=this._componentsMap,r=this._componentsCount,o=[],a=ht(),s=e&&e.replaceMergeMainTypeMap;sp(this).datasetMap=ht(),P(t,(function(t,e){null!=t&&(Xc.hasClass(e)?e&&(o.push(e),a.set(e,!0)):n[e]=null==n[e]?w(t):S(n[e],t,!0))})),s&&s.each((function(t,e){Xc.hasClass(e)&&!a.get(e)&&(o.push(e),a.set(e,!0))})),Xc.topologicalTravel(o,Xc.getAllClassMainTypes(),(function(e){var o=function(t,e,n){var i=dp.get(e);if(!i)return n;var r=i(t);return r?n.concat(r):n}(this,e,xr(t[e])),a=i.get(e),l=a?s&&s.get(e)?"replaceMerge":"normalMerge":"replaceAll",u=Mr(a,o,l);(function(t,e,n){P(t,(function(t){var i=t.newOption;X(i)&&(t.keyInfo.mainType=e,t.keyInfo.subType=function(t,e,n,i){return e.type?e.type:n?n.subType:i.determineSubType(t,e)}(e,i,t.existing,n))}))})(u,e,Xc),n[e]=null,i.set(e,null),r.set(e,0);var h=[],c=[],p=0;P(u,(function(t,n){var i=t.existing,r=t.newOption;if(r){var o="series"===e,a=Xc.getClass(e,t.keyInfo.subType,!o);if(!a)return;if(i&&i.constructor===a)i.name=t.keyInfo.name,i.mergeOption(r,this),i.optionUpdated(r,!1);else{var s=I({componentIndex:n},t.keyInfo);I(i=new a(r,this,this,s),s),t.brandNew&&(i.__requireNewView=!0),i.init(r,this,this),i.optionUpdated(null,!0)}}else i&&(i.mergeOption({},this),i.optionUpdated({},!1));i?(h.push(i.option),c.push(i),p++):(h.push(void 0),c.push(void 0))}),this),n[e]=h,i.set(e,c),r.set(e,p),"series"===e&&fp(this)}),this),this._seriesIndices||fp(this)},e.prototype.getOption=function(){var t=w(this.option);return P(t,(function(e,n){if(Xc.hasClass(n)){for(var i=xr(e),r=i.length,o=!1,a=r-1;a>=0;a--)i[a]&&!Ar(i[a])?o=!0:(i[a]=null,!o&&r--);i.length=r,t[n]=i}})),delete t["\0_ec_inner"],t},e.prototype.getTheme=function(){return this._theme},e.prototype.getLocaleModel=function(){return this._locale},e.prototype.getLocale=function(t){return this.getLocaleModel().get(t)},e.prototype.setUpdatePayload=function(t){this._payload=t},e.prototype.getUpdatePayload=function(){return this._payload},e.prototype.getComponent=function(t,e){var n=this._componentsMap.get(t);if(n){var i=n[e||0];if(i)return i;if(null==e)for(var r=0;r=e:"max"===n?t<=e:t===e})(i[a],t,o)||(r=!1)}})),r}var Op=P,Rp=X,Np=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function zp(t){var e=t&&t.itemStyle;if(e)for(var n=0,i=Np.length;n=0;f--){var g=t[f];if(s||(c=g.data.rawIndexOf(g.stackedByDimension,h)),c>=0){var y=g.data.getByRawIndex(g.stackResultDimension,c);if(p>=0&&y>0||p<=0&&y<0){p=tr(p,y),d=y;break}}}return i[0]=p,i[1]=d,i}));a.hostModel.setData(l),e.data=l}))}var td,ed,nd,id,rd,od=function(t){this.data=t.data||(t.sourceFormat===Qc?{}:[]),this.sourceFormat=t.sourceFormat||ep,this.seriesLayoutBy=t.seriesLayoutBy||np,this.startIndex=t.startIndex||0,this.dimensionsDefine=t.dimensionsDefine,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.encodeDefine=t.encodeDefine,this.metaRawOption=t.metaRawOption};function ad(t){return t instanceof od}function sd(t,e,n,i){n=n||hd(t);var r=e.seriesLayoutBy,o=function(t,e,n,i,r){var o,a;if(!t)return{dimensionsDefine:cd(r),startIndex:a,dimensionsDetectedCount:o};if(e===$c){var s=t;"auto"===i||null==i?pd((function(t){null!=t&&"-"!==t&&(H(t)?null==a&&(a=1):a=0)}),n,s,10):a=U(i)?i:i?1:0,r||1!==a||(r=[],pd((function(t,e){r[e]=null!=t?t+"":""}),n,s,1/0)),o=r?r.length:n===ip?s.length:s[0]?s[0].length:null}else if(e===Jc)r||(r=function(t){var e,n=0;for(;nu&&(u=d)}s[0]=l,s[1]=u}},i=function(){return this._data?this._data.length/this._dimSize:0};function r(t){for(var e=0;e=1)&&(t=1),t}a===l&&s===u||(e="reset"),(this._dirty||"reset"===e)&&(this._dirty=!1,o=this._doReset(i)),this._modBy=l,this._modDataCount=u;var c=t&&t.step;if(this._dueEnd=n?n._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var p=this._dueIndex,d=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!i&&(o||p1&&i>0?s:a}};return o;function a(){return e=t?null:oe},gte:function(t,e){return t>=e}},Nd=function(){function t(t,e){if("number"!=typeof e){var n="";0,vr(n)}this._opFn=Rd[t],this._rvalFloat=cr(e)}return t.prototype.evaluate=function(t){return"number"==typeof t?this._opFn(t,this._rvalFloat):this._opFn(cr(t),this._rvalFloat)},t}(),zd=function(){function t(t,e){var n="desc"===t;this._resultLT=n?1:-1,null==e&&(e=n?"min":"max"),this._incomparable="min"===e?-1/0:1/0}return t.prototype.evaluate=function(t,e){var n=typeof t,i=typeof e,r="number"===n?t:cr(t),o="number"===i?e:cr(e),a=isNaN(r),s=isNaN(o);if(a&&(r=this._incomparable),s&&(o=this._incomparable),a&&s){var l="string"===n,u="string"===i;l&&(r=u?t:0),u&&(o=l?e:0)}return ro?-this._resultLT:0},t}(),Ed=function(){function t(t,e){this._rval=e,this._isEQ=t,this._rvalTypeof=typeof e,this._rvalFloat=cr(e)}return t.prototype.evaluate=function(t){var e=t===this._rval;if(!e){var n=typeof t;n===this._rvalTypeof||"number"!==n&&"number"!==this._rvalTypeof||(e=cr(t)===this._rvalFloat)}return this._isEQ?e:!e},t}();function Vd(t,e){return"eq"===t||"ne"===t?new Ed("eq"===t,e):dt(Rd,t)?new Nd(t,e):null}var Bd=function(){function t(){}return t.prototype.getRawData=function(){throw new Error("not supported")},t.prototype.getRawDataItem=function(t){throw new Error("not supported")},t.prototype.cloneRawData=function(){},t.prototype.getDimensionInfo=function(t){},t.prototype.cloneAllDimensionInfo=function(){},t.prototype.count=function(){},t.prototype.retrieveValue=function(t,e){},t.prototype.retrieveValueFromItem=function(t,e){},t.prototype.convertValue=function(t,e){return kd(t,e)},t}();function Fd(t){var e=t.sourceFormat;if(!Yd(e)){var n="";0,vr(n)}return t.data}function Gd(t){var e=t.sourceFormat,n=t.data;if(!Yd(e)){var i="";0,vr(i)}if(e===$c){for(var r=[],o=0,a=n.length;o9e10&&(this._versionSignBase=0)},t.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},t.prototype.prepareSource=function(){this._isDirty()&&this._createSource()},t.prototype._createSource=function(){this._setLocalSource([],[]);var t,e,n=this._sourceHost,i=this._getUpstreamSourceManagers(),r=!!i.length;if(qd(n)){var o=n,a=void 0,s=void 0,l=void 0;if(r){var u=i[0];u.prepareSource(),a=(l=u.getSource()).data,s=l.sourceFormat,e=[u._getVersionSign()]}else s=Z(a=o.get("data",!0))?tp:Kc,e=[];var h=this._getSourceMetaRawOption(),c=l?l.metaRawOption:null;t=[sd(a,{seriesLayoutBy:tt(h.seriesLayoutBy,c?c.seriesLayoutBy:null),sourceHeader:tt(h.sourceHeader,c?c.sourceHeader:null),dimensions:tt(h.dimensions,c?c.dimensions:null)},s,o.get("encode",!0))]}else{var p=n;if(r){var d=this._applyTransform(i);t=d.sourceList,e=d.upstreamSignList}else{t=[sd(p.get("source",!0),this._getSourceMetaRawOption(),null,null)],e=[]}}this._setLocalSource(t,e)},t.prototype._applyTransform=function(t){var e,n=this._sourceHost,i=n.get("transform",!0),r=n.get("fromTransformResult",!0);if(null!=r){var o="";1!==t.length&&Kd(o)}var a,s=[],l=[];return P(t,(function(t){t.prepareSource();var e=t.getSource(r||0),n="";null==r||e||Kd(n),s.push(e),l.push(t._getVersionSign())})),i?e=function(t,e,n){var i=xr(t),r=i.length,o="";r||vr(o);for(var a=0,s=r;a1||e>0&&!t.noHeader,i=0;P(t.blocks,(function(t){ef(t).planLayout(t);var e=t.__gapLevelBetweenSubBlocks;e>=i&&(i=e+(!n||e&&("section"!==t.type||t.noHeader)?0:1))})),t.__gapLevelBetweenSubBlocks=i},build:function(t,e,n,i){var r=e.noHeader,o=of(e),a=function(t,e,n,i){var r=[],o=e.blocks||[];rt(!o||F(o)),o=o||[];var a=t.orderMode;if(e.sortBlocks&&a){o=o.slice();var s={valueAsc:"asc",valueDesc:"desc"};if(dt(s,a)){var l=new zd(s[a],null);o.sort((function(t,e){return l.evaluate(t.sortParam,e.sortParam)}))}else"seriesDesc"===a&&o.reverse()}var u=of(e);if(P(o,(function(e,n){var o=ef(e).build(t,e,n>0?u.html:0,i);null!=o&&r.push(o)})),!r.length)return;return"richText"===t.renderMode?r.join(u.richText):af(r.join(""),n)}(t,e,r?n:o.html,i);if(r)return a;var s=Tc(e.header,"ordinal",t.useUTC),l=$d(i,t.renderMode).nameStyle;return"richText"===t.renderMode?sf(t,s,l)+o.richText+a:af('
'+Ic(s)+"
"+a,n)}},nameValue:{planLayout:function(t){t.__gapLevelBetweenSubBlocks=0},build:function(t,e,n,i){var r=t.renderMode,o=e.noName,a=e.noValue,s=!e.markerType,l=e.name,u=e.value,h=t.useUTC;if(!o||!a){var c=s?"":t.markupStyleCreator.makeTooltipMarker(e.markerType,e.markerColor||"#333",r),p=o?"":Tc(l,"ordinal",h),d=e.valueType,f=a?[]:F(u)?O(u,(function(t,e){return Tc(t,F(d)?d[e]:d,h)})):[Tc(u,F(d)?d[0]:d,h)],g=!s||!o,y=!s&&o,v=$d(i,r),m=v.nameStyle,_=v.valueStyle;return"richText"===r?(s?"":c)+(o?"":sf(t,p,m))+(a?"":function(t,e,n,i,r){var o=[r],a=i?10:20;return n&&o.push({padding:[0,0,0,a],align:"right"}),t.markupStyleCreator.wrapRichTextStyle(e.join(" "),o)}(t,f,g,y,_)):af((s?"":c)+(o?"":function(t,e,n){return''+Ic(t)+""}(p,!s,m))+(a?"":function(t,e,n,i){var r=n?"10px":"20px";return''+O(t,(function(t){return Ic(t)})).join("  ")+""}(f,g,y,_)),n)}}}};function rf(t,e,n,i,r,o){if(t){var a=ef(t);a.planLayout(t);var s={useUTC:r,renderMode:n,orderMode:i,markupStyleCreator:e};return a.build(s,t,0,o)}}function of(t){var e=t.__gapLevelBetweenSubBlocks;return{html:Jd[e],richText:Qd[e]}}function af(t,e){return'
'+t+'
'}function sf(t,e,n){return t.markupStyleCreator.wrapRichTextStyle(e,n)}function lf(t,e){return kc(t.getData().getItemVisual(e,"style")[t.visualDrawType])}function uf(t,e){var n=t.get("padding");return null!=n?n:"richText"===e?[8,10]:10}var hf=function(){function t(){this.richTextStyles={},this._nextStyleNameId=dr()}return t.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},t.prototype.makeTooltipMarker=function(t,e,n){var i="richText"===n?this._generateStyleName():null,r=Lc({color:e,type:t,renderMode:n,markerId:i});return H(r)?r:(this.richTextStyles[i]=r.style,r.content)},t.prototype.wrapRichTextStyle=function(t,e){var n={};F(e)?P(e,(function(t){return I(n,t)})):I(n,e);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},t}();function cf(t){var e,n,i,r,o=t.series,a=t.dataIndex,s=t.multipleSeries,l=o.getData(),u=l.mapDimensionsAll("defaultedTooltip"),h=u.length,c=o.getRawValue(a),p=F(c),d=lf(o,a);if(h>1||p&&!h){var f=function(t,e,n,i,r){var o=e.getData(),a=R(t,(function(t,e,n){var i=o.getDimensionInfo(n);return t||i&&!1!==i.tooltip&&null!=i.displayName}),!1),s=[],l=[],u=[];function h(t,e){var n=o.getDimensionInfo(e);n&&!1!==n.otherDims.tooltip&&(a?u.push(tf("nameValue",{markerType:"subItem",markerColor:r,name:n.displayName,value:t,valueType:n.type})):(s.push(t),l.push(n.type)))}return i.length?P(i,(function(t){h(Md(o,n,t),t)})):P(t,h),{inlineValues:s,inlineValueTypes:l,blocks:u}}(c,o,a,u,d);e=f.inlineValues,n=f.inlineValueTypes,i=f.blocks,r=f.inlineValues[0]}else if(h){var g=l.getDimensionInfo(u[0]);r=e=Md(l,a,u[0]),n=g.type}else r=e=p?c[0]:c;var y=Dr(o),v=y&&o.name||"",m=l.getName(a),_=s?v:m;return tf("section",{header:v,noHeader:s||!y,sortParam:r,blocks:[tf("nameValue",{markerType:"item",markerColor:d,name:_,noName:!ot(_),value:e,valueType:n})].concat(i||[])})}var pf=kr();function df(t,e){return t.getName(e)||t.getId(e)}var ff=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._selectedDataIndicesMap={},e}return n(e,t),e.prototype.init=function(t,e,n){this.seriesIndex=this.componentIndex,this.dataTask=Dd({count:yf,reset:vf}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(t,n),(pf(this).sourceManager=new Zd(this)).prepareSource();var i=this.getInitialData(t,n);_f(i,this),this.dataTask.context.data=i,pf(this).dataBeforeProcessed=i,gf(this),this._initSelectedMapFromData(i)},e.prototype.mergeDefaultAndTheme=function(t,e){var n=Fc(this),i=n?Hc(t):{},r=this.subType;Xc.hasClass(r)&&(r+="Series"),S(t,e.getTheme().get(this.subType)),S(t,this.getDefaultOption()),br(t,"label",["show"]),this.fillDataTextStyle(t.data),n&&Gc(t,i,n)},e.prototype.mergeOption=function(t,e){t=S(this.option,t,!0),this.fillDataTextStyle(t.data);var n=Fc(this);n&&Gc(this.option,t,n);var i=pf(this).sourceManager;i.dirty(),i.prepareSource();var r=this.getInitialData(t,e);_f(r,this),this.dataTask.dirty(),this.dataTask.context.data=r,pf(this).dataBeforeProcessed=r,gf(this),this._initSelectedMapFromData(r)},e.prototype.fillDataTextStyle=function(t){if(t&&!Z(t))for(var e=["show"],n=0;nthis.getShallow("animationThreshold")&&(t=!1),!!t},e.prototype.restoreData=function(){this.dataTask.dirty()},e.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel,r=_p.prototype.getColorFromPalette.call(this,t,e,n);return r||(r=i.getColorFromPalette(t,e,n)),r},e.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},e.prototype.getProgressive=function(){return this.get("progressive")},e.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},e.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},e.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n)for(var i=this.getData(e),r=0;r=0&&n.push(r)}return n},e.prototype.isSelected=function(t,e){var n=this.option.selectedMap;return n&&n[df(this.getData(e),t)]||!1},e.prototype._innerSelect=function(t,e){var n,i,r=this.option.selectedMode,o=e.length;if(r&&o)if("multiple"===r)for(var a=this.option.selectedMap||(this.option.selectedMap={}),s=0;s0&&this._innerSelect(t,e)}},e.registerClass=function(t){return Xc.registerClass(t)},e.protoInitialize=function(){var t=e.prototype;t.type="series.__base__",t.seriesIndex=0,t.useColorPaletteOnData=!1,t.ignoreStyleOnData=!1,t.hasSymbolVisual=!1,t.defaultSymbol="circle",t.visualStyleAccessPath="itemStyle",t.visualDrawType="fill"}(),e}(Xc);function gf(t){var e=t.name;Dr(t)||(t.name=function(t){var e=t.getRawData(),n=e.mapDimensionsAll("seriesName"),i=[];return P(n,(function(t){var n=e.getDimensionInfo(t);n.displayName&&i.push(n.displayName)})),i.join(" ")}(t)||e)}function yf(t){return t.model.getRawData().count()}function vf(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),mf}function mf(t,e){e.outputData&&t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function _f(t,e){P(r(t.CHANGABLE_METHODS,t.DOWNSAMPLE_METHODS),(function(n){t.wrapMethod(n,B(xf,e))}))}function xf(t,e){var n=bf(t);return n&&n.setOutputEnd((e||this).count()),e}function bf(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i=n.currentTask;if(i){var r=i.agentStubMap;r&&(i=r.get(t.uid))}return i}}L(ff,Td),L(ff,_p),Yr(ff,Xc);var wf=function(){function t(){this.group=new Ei,this.uid=Nh("viewComponent")}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){},t.prototype.updateLayout=function(t,e,n,i){},t.prototype.updateVisual=function(t,e,n,i){},t.prototype.blurSeries=function(t,e){},t}();function Sf(){var t=kr();return function(e){var n=t(e),i=e.pipelineContext,r=!!n.large,o=!!n.progressiveRender,a=n.large=!(!i||!i.large),s=n.progressiveRender=!(!i||!i.progressiveRender);return!(r===a&&o===s)&&"reset"}}Ur(wf),Kr(wf);var Mf=kr(),If=Sf(),Tf=function(){function t(){this.group=new Ei,this.uid=Nh("viewChart"),this.renderTask=Dd({plan:Af,reset:Lf}),this.renderTask.context={view:this}}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.highlight=function(t,e,n,i){Df(t.getData(),i,"emphasis")},t.prototype.downplay=function(t,e,n,i){Df(t.getData(),i,"normal")},t.prototype.remove=function(t,e){this.group.removeAll()},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},t.markUpdateMethod=function(t,e){Mf(t).updateMethod=e},t.protoInitialize=void(t.prototype.type="chart"),t}();function Cf(t,e,n){t&&("emphasis"===e?js:qs)(t,n)}function Df(t,e,n){var i=Lr(t,e),r=e&&null!=e.highlightKey?function(t){var e=bs[t];return null==e&&xs<=32&&(e=bs[t]=xs++),e}(e.highlightKey):null;null!=i?P(xr(i),(function(e){Cf(t.getItemGraphicEl(e),n,r)})):t.eachItemGraphicEl((function(t){Cf(t,n,r)}))}function Af(t){return If(t.model)}function Lf(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,a=t.view,s=r&&Mf(r).updateMethod,l=o?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,r),kf[l]}Ur(Tf),Kr(Tf);var kf={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},Pf="\0__throttleOriginMethod",Of="\0__throttleRate",Rf="\0__throttleType";function Nf(t,e,n){var i,r,o,a,s,l=0,u=0,h=null;function c(){u=(new Date).getTime(),h=null,t.apply(o,a||[])}e=e||0;var p=function(){for(var t=[],p=0;p=0?c():h=setTimeout(c,-r),l=i};return p.clear=function(){h&&(clearTimeout(h),h=null)},p.debounceNextCall=function(t){s=t},p}function zf(t,e,n,i){var r=t[e];if(r){var o=r[Pf]||r,a=r[Rf];if(r[Of]!==n||a!==i){if(null==n||!i)return t[e]=o;(r=t[e]=Nf(o,n,"debounce"===i))[Pf]=o,r[Rf]=i,r[Of]=n}return r}}var Ef=kr(),Vf={itemStyle:$r(Lh,!0),lineStyle:$r(Ch,!0)},Bf={lineStyle:"stroke",itemStyle:"fill"};function Ff(t,e){var n=t.visualStyleMapper||Vf[e];return n||(console.warn("Unkown style type '"+e+"'."),Vf.itemStyle)}function Gf(t,e){var n=t.visualDrawType||Bf[e];return n||(console.warn("Unkown style type '"+e+"'."),"fill")}var Hf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=t.getModel(i),o=Ff(t,i)(r),a=r.getShallow("decal");a&&(n.setVisual("decal",a),a.dirty=!0);var s=Gf(t,i),l=o[s],u=G(l)?l:null,h="auto"===o.fill||"auto"===o.stroke;if(!o[s]||u||h){var c=t.getColorFromPalette(t.name,null,e.getSeriesCount());o[s]||(o[s]=c,n.setVisual("colorFromPalette",!0)),o.fill="auto"===o.fill||"function"==typeof o.fill?c:o.fill,o.stroke="auto"===o.stroke||"function"==typeof o.stroke?c:o.stroke}if(n.setVisual("style",o),n.setVisual("drawType",s),!e.isSeriesFiltered(t)&&u)return n.setVisual("colorFromPalette",!1),{dataEach:function(e,n){var i=t.getDataParams(n),r=I({},o);r[s]=u(i),e.setItemVisual(n,"style",r)}}}},Wf=new Oh,Uf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(!t.ignoreStyleOnData&&!e.isSeriesFiltered(t)){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=Ff(t,i),o=n.getVisual("drawType");return{dataEach:n.hasItemOption?function(t,e){var n=t.getRawDataItem(e);if(n&&n[i]){Wf.option=n[i];var a=r(Wf);I(t.ensureUniqueItemVisual(e,"style"),a),Wf.option.decal&&(t.setItemVisual(e,"decal",Wf.option.decal),Wf.option.decal.dirty=!0),o in a&&t.setItemVisual(e,"colorFromPalette",!1)}}:null}}}},Xf={performRawSeries:!0,overallReset:function(t){var e=ht();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),Ef(t).scope=n}})),t.eachSeries((function(e){if(e.useColorPaletteOnData&&!t.isSeriesFiltered(e)){var n=e.getRawData(),i={},r=e.getData(),o=Ef(e).scope,a=e.visualStyleAccessPath||"itemStyle",s=Gf(e,a);r.each((function(t){var e=r.getRawIndex(t);i[e]=t})),n.each((function(t){var a=i[t];if(r.getItemVisual(a,"colorFromPalette")){var l=r.ensureUniqueItemVisual(a,"style"),u=n.getName(t)||t+"",h=n.count();l[s]=e.getColorFromPalette(u,o,h)}}))}}))}},Yf=Math.PI;var Zf=function(){function t(t,e,n,i){this._stageTaskMap=ht(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return t.prototype.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each((function(t){var e=t.overallTask;e&&e.dirty()}))},t.prototype.getPerformArgs=function(t,e){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,r=!e&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex?n.step:null,o=i&&i.modDataCount;return{step:r,modBy:null!=o?Math.ceil(o/r):null,modDataCount:o}}},t.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},t.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),r=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,o=t.get("large")&&i>=t.get("largeThreshold"),a="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:r,modDataCount:a,large:o}},t.prototype.restorePipelines=function(t){var e=this,n=e._pipelineMap=ht();t.eachSeries((function(t){var i=t.getProgressive(),r=t.uid;n.set(r,{id:r,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:i&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),e._pipe(t,t.dataTask)}))},t.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.api.getModel(),n=this.api;P(this._allHandlers,(function(i){var r=t.get(i.uid)||t.set(i.uid,{}),o="";rt(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,r,e,n),i.overallReset&&this._createOverallStageTask(i,r,e,n)}),this)},t.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},t.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},t.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},t.prototype._performStageTasks=function(t,e,n,i){i=i||{};var r=!1,o=this;function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}P(t,(function(t,s){if(!i.visualType||i.visualType===t.visualType){var l=o._stageTaskMap.get(t.uid),u=l.seriesTaskMap,h=l.overallTask;if(h){var c,p=h.agentStubMap;p.each((function(t){a(i,t)&&(t.dirty(),c=!0)})),c&&h.dirty(),o.updatePayload(h,n);var d=o.getPerformArgs(h,i.block);p.each((function(t){t.perform(d)})),h.perform(d)&&(r=!0)}else u&&u.each((function(s,l){a(i,s)&&s.dirty();var u=o.getPerformArgs(s,i.block);u.skip=!t.performRawSeries&&e.isSeriesFiltered(s.context.model),o.updatePayload(s,n),s.perform(u)&&(r=!0)}))}})),this.unfinished=r||this.unfinished},t.prototype.performSeriesTasks=function(t){var e;t.eachSeries((function(t){e=t.dataTask.perform()||e})),this.unfinished=e||this.unfinished},t.prototype.plan=function(){this._pipelineMap.each((function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)}))},t.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},t.prototype._createSeriesStageTask=function(t,e,n,i){var r=this,o=e.seriesTaskMap,a=e.seriesTaskMap=ht(),s=t.seriesType,l=t.getTargetSeries;function u(e){var s=e.uid,l=a.set(s,o&&o.get(s)||Dd({plan:Jf,reset:Qf,count:ng}));l.context={model:e,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:r},r._pipe(e,l)}t.createOnAllSeries?n.eachRawSeries(u):s?n.eachRawSeriesByType(s,u):l&&l(n,i).each(u)},t.prototype._createOverallStageTask=function(t,e,n,i){var r=this,o=e.overallTask=e.overallTask||Dd({reset:jf});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r};var a=o.agentStubMap,s=o.agentStubMap=ht(),l=t.seriesType,u=t.getTargetSeries,h=!0,c=!1,p="";function d(t){var e=t.uid,n=s.set(e,a&&a.get(e)||(c=!0,Dd({reset:qf,onDirty:$f})));n.context={model:t,overallProgress:h},n.agent=o,n.__block=h,r._pipe(t,n)}rt(!t.createOnAllSeries,p),l?n.eachRawSeriesByType(l,d):u?u(n,i).each(d):(h=!1,P(n.getSeries(),d)),c&&o.dirty()},t.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=e),i.tail&&i.tail.pipe(e),i.tail=e,e.__idxInPipeline=i.count++,e.__pipeline=i},t.wrapStageHandler=function(t,e){return G(t)&&(t={overallReset:t,seriesType:ig(t)}),t.uid=Nh("stageHandler"),e&&(t.visualType=e),t},t}();function jf(t){t.overallReset(t.ecModel,t.api,t.payload)}function qf(t){return t.overallProgress&&Kf}function Kf(){this.agent.dirty(),this.getDownstream().dirty()}function $f(){this.agent&&this.agent.dirty()}function Jf(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function Qf(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=xr(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?O(e,(function(t,e){return eg(e)})):tg}var tg=eg(0);function eg(t){return function(e,n){var i=n.data,r=n.resetDefines[t];if(r&&r.dataEach)for(var o=e.start;o0&&h===r.length-u.length){var c=r.slice(0,h);"data"!==c&&(e.mainType=c,e[u.toLowerCase()]=t,s=!0)}}a.hasOwnProperty(r)&&(n[r]=t,s=!0),s||(i[r]=t)}))}return{cptQuery:e,dataQuery:n,otherQuery:i}},t.prototype.filter=function(t,e){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,r=n.packedEvent,o=n.model,a=n.view;if(!o||!a)return!0;var s=e.cptQuery,l=e.dataQuery;return u(s,o,"mainType")&&u(s,o,"subType")&&u(s,o,"index","componentIndex")&&u(s,o,"name")&&u(s,o,"id")&&u(l,r,"name")&&u(l,r,"dataIndex")&&u(l,r,"dataType")&&(!a.filterForExposedEvent||a.filterForExposedEvent(t,e.otherQuery,i,r));function u(t,e,n,i){return null==t[n]||e[i||n]===t[n]}},t.prototype.afterTrigger=function(){this.eventInfo=null},t}(),yg={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData();if(t.legendIcon&&n.setVisual("legendIcon",t.legendIcon),t.hasSymbolVisual){var i=t.get("symbol"),r=t.get("symbolSize"),o=t.get("symbolKeepAspect"),a=t.get("symbolRotate"),s=t.get("symbolOffset"),l=G(i),u=G(r),h=G(a),c=G(s),p=l||u||h||c,d=!l&&i?i:t.defaultSymbol,f=u?null:r,g=h?null:a,y=c?null:s;if(n.setVisual({legendIcon:t.legendIcon||d,symbol:d,symbolSize:f,symbolKeepAspect:o,symbolRotate:g,symbolOffset:y}),!e.isSeriesFiltered(t))return{dataEach:p?function(e,n){var o=t.getRawValue(n),p=t.getDataParams(n);l&&e.setItemVisual(n,"symbol",i(o,p)),u&&e.setItemVisual(n,"symbolSize",r(o,p)),h&&e.setItemVisual(n,"symbolRotate",a(o,p)),c&&e.setItemVisual(n,"symbolOffset",s(o,p))}:null}}}};function vg(t,e,n){switch(n){case"color":return t.getItemVisual(e,"style")[t.getVisual("drawType")];case"opacity":return t.getItemVisual(e,"style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getItemVisual(e,n);default:0}}function mg(t,e){switch(e){case"color":return t.getVisual("style")[t.getVisual("drawType")];case"opacity":return t.getVisual("style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getVisual(e);default:0}}function _g(t,e,n,i){switch(n){case"color":t.ensureUniqueItemVisual(e,"style")[t.getVisual("drawType")]=i,t.setItemVisual(e,"colorFromPalette",!1);break;case"opacity":t.ensureUniqueItemVisual(e,"style").opacity=i;break;case"symbol":case"symbolSize":case"liftZ":t.setItemVisual(e,n,i);break;default:0}}var xg=2*Math.PI,bg=La.CMD,wg=["top","right","bottom","left"];function Sg(t,e,n,i,r){var o=n.width,a=n.height;switch(t){case"top":i.set(n.x+o/2,n.y-e),r.set(0,-1);break;case"bottom":i.set(n.x+o/2,n.y+a+e),r.set(0,1);break;case"left":i.set(n.x-e,n.y+a/2),r.set(-1,0);break;case"right":i.set(n.x+o+e,n.y+a/2),r.set(1,0)}}function Mg(t,e,n,i,r,o,a,s,l){a-=t,s-=e;var u=Math.sqrt(a*a+s*s),h=(a/=u)*n+t,c=(s/=u)*n+e;if(Math.abs(i-r)%xg<1e-4)return l[0]=h,l[1]=c,u-n;if(o){var p=i;i=Na(r),r=Na(p)}else i=Na(i),r=Na(r);i>r&&(r+=xg);var d=Math.atan2(s,a);if(d<0&&(d+=xg),d>=i&&d<=r||d+xg>=i&&d+xg<=r)return l[0]=h,l[1]=c,u-n;var f=n*Math.cos(i)+t,g=n*Math.sin(i)+e,y=n*Math.cos(r)+t,v=n*Math.sin(r)+e,m=(f-a)*(f-a)+(g-s)*(g-s),_=(y-a)*(y-a)+(v-s)*(v-s);return m<_?(l[0]=f,l[1]=g,Math.sqrt(m)):(l[0]=y,l[1]=v,Math.sqrt(_))}function Ig(t,e,n,i,r,o,a,s){var l=r-t,u=o-e,h=n-t,c=i-e,p=Math.sqrt(h*h+c*c),d=(l*(h/=p)+u*(c/=p))/p;s&&(d=Math.min(Math.max(d,0),1)),d*=p;var f=a[0]=t+d*h,g=a[1]=e+d*c;return Math.sqrt((f-r)*(f-r)+(g-o)*(g-o))}function Tg(t,e,n,i,r,o,a){n<0&&(t+=n,n=-n),i<0&&(e+=i,i=-i);var s=t+n,l=e+i,u=a[0]=Math.min(Math.max(r,t),s),h=a[1]=Math.min(Math.max(o,e),l);return Math.sqrt((u-r)*(u-r)+(h-o)*(h-o))}var Cg=[];function Dg(t,e,n){var i=Tg(e.x,e.y,e.width,e.height,t.x,t.y,Cg);return n.set(Cg[0],Cg[1]),i}function Ag(t,e,n){for(var i,r,o=0,a=0,s=0,l=0,u=1/0,h=e.data,c=t.x,p=t.y,d=0;d0){e=e/180*Math.PI,Lg.fromArray(t[0]),kg.fromArray(t[1]),Pg.fromArray(t[2]),ai.sub(Og,Lg,kg),ai.sub(Rg,Pg,kg);var n=Og.len(),i=Rg.len();if(!(n<.001||i<.001)){Og.scale(1/n),Rg.scale(1/i);var r=Og.dot(Rg);if(Math.cos(e)1&&ai.copy(Eg,Pg),Eg.toArray(t[1])}}}}function Bg(t,e,n){if(n<=180&&n>0){n=n/180*Math.PI,Lg.fromArray(t[0]),kg.fromArray(t[1]),Pg.fromArray(t[2]),ai.sub(Og,kg,Lg),ai.sub(Rg,Pg,kg);var i=Og.len(),r=Rg.len();if(!(i<.001||r<.001))if(Og.scale(1/i),Rg.scale(1/r),Og.dot(e)=a)ai.copy(Eg,Pg);else{Eg.scaleAndAdd(Rg,o/Math.tan(Math.PI/2-s));var l=Pg.x!==kg.x?(Eg.x-kg.x)/(Pg.x-kg.x):(Eg.y-kg.y)/(Pg.y-kg.y);if(isNaN(l))return;l<0?ai.copy(Eg,kg):l>1&&ai.copy(Eg,Pg)}Eg.toArray(t[1])}}}function Fg(t,e,n,i){var r="normal"===n,o=r?t:t.ensureState(n);o.ignore=e;var a=i.get("smooth");a&&!0===a&&(a=.3),o.shape=o.shape||{},a>0&&(o.shape.smooth=a);var s=i.getModel("lineStyle").getLineStyle();r?t.useStyle(s):o.style=s}function Gg(t,e){var n=e.smooth,i=e.points;if(i)if(t.moveTo(i[0][0],i[0][1]),n>0&&i.length>=3){var r=Lt(i[0],i[1]),o=Lt(i[1],i[2]);if(!r||!o)return t.lineTo(i[1][0],i[1][1]),void t.lineTo(i[2][0],i[2][1]);var a=Math.min(r,o)*n,s=Ot([],i[1],i[0],a/r),l=Ot([],i[1],i[2],a/o),u=Ot([],s,l,.5);t.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),t.bezierCurveTo(l[0],l[1],l[0],l[1],i[2][0],i[2][1])}else for(var h=1;h0&&o&&x(-h/a,0,a);var f,g,y=t[0],v=t[a-1];return m(),f<0&&b(-f,.8),g<0&&b(g,.8),m(),_(f,g,1),_(g,f,-1),m(),f<0&&w(-f),g<0&&w(g),u}function m(){f=y.rect[e]-i,g=r-v.rect[e]-v.rect[n]}function _(t,e,n){if(t<0){var i=Math.min(e,-t);if(i>0){x(i*n,0,a);var r=i+t;r<0&&b(-r*n,1)}else b(-t*n,1)}}function x(n,i,r){0!==n&&(u=!0);for(var o=i;o0)for(l=0;l0;l--){x(-(o[l-1]*c),l,a)}}}function w(t){var e=t<0?-1:1;t=Math.abs(t);for(var n=Math.ceil(t/(a-1)),i=0;i0?x(n,0,i+1):x(-n,a-i-1,a),(t-=n)<=0)return}}function Xg(t,e,n,i){return Ug(t,"y","height",e,n,i)}function Yg(t){if(t){for(var e=[],n=0;n=0&&n.attr(d.oldLayoutSelect),D(u,"emphasis")>=0&&n.attr(d.oldLayoutEmphasis)),Hu(n,s,e,a)}else if(n.attr(s),!_h(n).valueAnimation){var h=tt(n.style.opacity,1);n.style.opacity=0,Wu(n,{style:{opacity:h}},e,a)}if(d.oldLayout=s,n.states.select){var c=d.oldLayoutSelect={};Jg(c,s,Qg),Jg(c,n.states.select,Qg)}if(n.states.emphasis){var p=d.oldLayoutEmphasis={};Jg(p,s,Qg),Jg(p,n.states.emphasis,Qg)}bh(n,a,l,e,e)}if(i&&!i.ignore&&!i.invisible){r=(d=$g(i)).oldLayout;var d,f={points:i.shape.points};r?(i.attr({shape:r}),Hu(i,{shape:f},e)):(i.setShape(f),i.style.strokePercent=0,Wu(i,{style:{strokePercent:1}},e)),d.oldLayout=f}},t}();function ey(t,e){function n(e,n){var i=[];return e.eachComponent({mainType:"series",subType:t,query:n},(function(t){i.push(t.seriesIndex)})),i}P([[t+"ToggleSelect","toggleSelect"],[t+"Select","select"],[t+"UnSelect","unselect"]],(function(t){e(t[0],(function(e,i,r){e=I({},e),r.dispatchAction(I(e,{type:t[1],seriesIndex:n(i,e)}))}))}))}function ny(t,e,n,i,r){var o=t+e;n.isSilent(o)||i.eachComponent({mainType:"series",subType:"pie"},(function(t){for(var e=t.seriesIndex,i=r.selected,a=0;a0?(e=e||1,"dashed"===t?[4*e,2*e]:"dotted"===t?[e]:U(t)?[t]:F(t)?t:null):null}var my=new La(!0);function _y(t){var e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))}function xy(t){var e=t.fill;return null!=e&&"none"!==e}function by(t,e){if(null!=e.fillOpacity&&1!==e.fillOpacity){var n=t.globalAlpha;t.globalAlpha=e.fillOpacity*e.opacity,t.fill(),t.globalAlpha=n}else t.fill()}function wy(t,e){if(null!=e.strokeOpacity&&1!==e.strokeOpacity){var n=t.globalAlpha;t.globalAlpha=e.strokeOpacity*e.opacity,t.stroke(),t.globalAlpha=n}else t.stroke()}function Sy(t,e,n){var i=no(e.image,e.__image,n);if(ro(i)){var r=t.createPattern(i,e.repeat||"repeat");if("function"==typeof DOMMatrix&&r.setTransform){var o=new DOMMatrix;o.rotateSelf(0,0,(e.rotation||0)/Math.PI*180),o.scaleSelf(e.scaleX||1,e.scaleY||1),o.translateSelf(e.x||0,e.y||0),r.setTransform(o)}return r}}var My=["shadowBlur","shadowOffsetX","shadowOffsetY"],Iy=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function Ty(t,e,n,i,r){var o=!1;if(!i&&e===(n=n||{}))return!1;if(i||e.opacity!==n.opacity){o||(Ay(t,r),o=!0);var a=Math.max(Math.min(e.opacity,1),0);t.globalAlpha=isNaN(a)?_o.opacity:a}(i||e.blend!==n.blend)&&(o||(Ay(t,r),o=!0),t.globalCompositeOperation=e.blend||_o.blend);for(var s=0;s0&&vy(n.lineDash,n.lineWidth),w=n.lineDashOffset,S=!!t.setLineDash,M=e.getGlobalScale();if(u.setScale(M[0],M[1],e.segmentIgnoreThreshold),b){var I=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;I&&1!==I&&(b=O(b,(function(t){return t/I})),w/=I)}var T=!0;(l||4&e.__dirty||b&&!S&&r)&&(u.setDPR(t.dpr),s?u.setContext(null):(u.setContext(t),T=!1),u.reset(),b&&!S&&(u.setLineDash(b),u.setLineDashOffset(w)),e.buildPath(u,e.shape,i),u.toStatic(),e.pathUpdated()),T&&u.rebuildPath(t,s?a:1),b&&S&&(t.setLineDash(b),t.lineDashOffset=w),i||(n.strokeFirst?(r&&wy(t,n),o&&by(t,n)):(o&&by(t,n),r&&wy(t,n))),b&&S&&t.setLineDash([])}(t,e,d,p),p&&(n.batchFill=d.fill||"",n.batchStroke=d.stroke||"")):e instanceof Ja?(3!==n.lastDrawType&&(l=!0,n.lastDrawType=3),Cy(t,e,u,l,n),function(t,e,n){var i=n.text;if(null!=i&&(i+=""),i){t.font=n.font||vi,t.textAlign=n.textAlign,t.textBaseline=n.textBaseline;var r=void 0;if(t.setLineDash){var o=n.lineDash&&n.lineWidth>0&&vy(n.lineDash,n.lineWidth),a=n.lineDashOffset;if(o){var s=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;s&&1!==s&&(o=O(o,(function(t){return t/s})),a/=s),t.setLineDash(o),t.lineDashOffset=a,r=!0}}n.strokeFirst?(_y(n)&&t.strokeText(i,n.x,n.y),xy(n)&&t.fillText(i,n.x,n.y)):(xy(n)&&t.fillText(i,n.x,n.y),_y(n)&&t.strokeText(i,n.x,n.y)),r&&t.setLineDash([])}}(t,e,d)):e instanceof es?(2!==n.lastDrawType&&(l=!0,n.lastDrawType=2),function(t,e,n,i,r){Ty(t,Ly(e,r.inHover),n&&Ly(n,r.inHover),i,r)}(t,e,u,l,n),function(t,e,n){var i=e.__image=no(n.image,e.__image,e,e.onload);if(i&&ro(i)){var r=n.x||0,o=n.y||0,a=e.getWidth(),s=e.getHeight(),l=i.width/i.height;if(null==a&&null!=s?a=s*l:null==s&&null!=a?s=a/l:null==a&&null==s&&(a=i.width,s=i.height),n.sWidth&&n.sHeight){var u=n.sx||0,h=n.sy||0;t.drawImage(i,u,h,n.sWidth,n.sHeight,r,o,a,s)}else if(n.sx&&n.sy){var c=a-(u=n.sx),p=s-(h=n.sy);t.drawImage(i,u,h,c,p,r,o,a,s)}else t.drawImage(i,r,o,a,s)}}(t,e,d)):e instanceof Tu&&(4!==n.lastDrawType&&(l=!0,n.lastDrawType=4),function(t,e,n){var i=e.getDisplayables(),r=e.getTemporalDisplayables();t.save();var o,a,s={prevElClipPaths:null,prevEl:null,allClipped:!1,viewWidth:n.viewWidth,viewHeight:n.viewHeight,inHover:n.inHover};for(o=e.getCursor(),a=i.length;o=4&&(l={x:parseFloat(c[0]||0),y:parseFloat(c[1]||0),width:parseFloat(c[2]),height:parseFloat(c[3])})}if(l&&null!=a&&null!=s&&(u=sv(l,{x:0,y:0,width:a,height:s}),!e.ignoreViewBox)){var p=i;(i=new Ei).add(p),p.scaleX=p.scaleY=u.scale,p.x=u.x,p.y=u.y}return e.ignoreRootClip||null==a||null==s||i.setClipPath(new ls({shape:{x:0,y:0,width:a,height:s}})),{root:i,width:a,height:s,viewBoxRect:l,viewBoxTransform:u,named:r}},t.prototype._parseNode=function(t,e,n,i,r,o){var a,s=t.nodeName.toLowerCase(),l=i;if("defs"===s&&(r=!0),"text"===s&&(o=!0),"defs"===s||"switch"===s)a=e;else{if(!r){var u=Oy[s];if(u&&dt(Oy,s)){a=u.call(this,t,e);var h=t.getAttribute("name");if(h){var c={name:h,namedFrom:null,svgNodeTagLower:s,el:a};n.push(c),"g"===s&&(l=c)}else i&&n.push({name:i.name,namedFrom:i,svgNodeTagLower:s,el:a});e.add(a)}}var p=Zy[s];if(p&&dt(Zy,s)){var d=p.call(this,t),f=t.getAttribute("id");f&&(this._defs[f]=d)}}if(a&&a.isGroup)for(var g=t.firstChild;g;)1===g.nodeType?this._parseNode(g,a,n,l,r,o):3===g.nodeType&&o&&this._parseText(g,a),g=g.nextSibling},t.prototype._parseText=function(t,e){var n=new Ja({style:{text:t.textContent},silent:!0,x:this._textX||0,y:this._textY||0});Ky(e,n),Jy(t,n,this._defsUsePending,!1,!1),function(t,e){var n=e.__selfStyle;if(n){var i=n.textBaseline,r=i;i&&"auto"!==i?"baseline"===i?r="alphabetic":"before-edge"===i||"text-before-edge"===i?r="top":"after-edge"===i||"text-after-edge"===i?r="bottom":"central"!==i&&"mathematical"!==i||(r="middle"):r="alphabetic",t.style.textBaseline=r}var o=e.__inheritedStyle;if(o){var a=o.textAlign,s=a;a&&("middle"===a&&(s="center"),t.style.textAlign=s)}}(n,e);var i=n.style,r=i.fontSize;r&&r<9&&(i.fontSize=9,n.scaleX*=r/9,n.scaleY*=r/9);var o=(i.fontSize||i.fontFamily)&&[i.fontStyle,i.fontWeight,(i.fontSize||12)+"px",i.fontFamily||"sans-serif"].join(" ");i.font=o;var a=n.getBoundingRect();return this._textX+=a.width,e.add(n),n},t.internalField=void(Oy={g:function(t,e){var n=new Ei;return Ky(e,n),Jy(t,n,this._defsUsePending,!1,!1),n},rect:function(t,e){var n=new ls;return Ky(e,n),Jy(t,n,this._defsUsePending,!1,!1),n.setShape({x:parseFloat(t.getAttribute("x")||"0"),y:parseFloat(t.getAttribute("y")||"0"),width:parseFloat(t.getAttribute("width")||"0"),height:parseFloat(t.getAttribute("height")||"0")}),n.silent=!0,n},circle:function(t,e){var n=new Nl;return Ky(e,n),Jy(t,n,this._defsUsePending,!1,!1),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),r:parseFloat(t.getAttribute("r")||"0")}),n.silent=!0,n},line:function(t,e){var n=new uu;return Ky(e,n),Jy(t,n,this._defsUsePending,!1,!1),n.setShape({x1:parseFloat(t.getAttribute("x1")||"0"),y1:parseFloat(t.getAttribute("y1")||"0"),x2:parseFloat(t.getAttribute("x2")||"0"),y2:parseFloat(t.getAttribute("y2")||"0")}),n.silent=!0,n},ellipse:function(t,e){var n=new El;return Ky(e,n),Jy(t,n,this._defsUsePending,!1,!1),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),rx:parseFloat(t.getAttribute("rx")||"0"),ry:parseFloat(t.getAttribute("ry")||"0")}),n.silent=!0,n},polygon:function(t,e){var n,i=t.getAttribute("points");i&&(n=$y(i));var r=new ru({shape:{points:n||[]},silent:!0});return Ky(e,r),Jy(t,r,this._defsUsePending,!1,!1),r},polyline:function(t,e){var n,i=t.getAttribute("points");i&&(n=$y(i));var r=new au({shape:{points:n||[]},silent:!0});return Ky(e,r),Jy(t,r,this._defsUsePending,!1,!1),r},image:function(t,e){var n=new es;return Ky(e,n),Jy(t,n,this._defsUsePending,!1,!1),n.setStyle({image:t.getAttribute("xlink:href"),x:+t.getAttribute("x"),y:+t.getAttribute("y"),width:+t.getAttribute("width"),height:+t.getAttribute("height")}),n.silent=!0,n},text:function(t,e){var n=t.getAttribute("x")||"0",i=t.getAttribute("y")||"0",r=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0";this._textX=parseFloat(n)+parseFloat(r),this._textY=parseFloat(i)+parseFloat(o);var a=new Ei;return Ky(e,a),Jy(t,a,this._defsUsePending,!1,!0),a},tspan:function(t,e){var n=t.getAttribute("x"),i=t.getAttribute("y");null!=n&&(this._textX=parseFloat(n)),null!=i&&(this._textY=parseFloat(i));var r=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0",a=new Ei;return Ky(e,a),Jy(t,a,this._defsUsePending,!1,!0),this._textX+=parseFloat(r),this._textY+=parseFloat(o),a},path:function(t,e){var n=Ol(t.getAttribute("d")||"");return Ky(e,n),Jy(t,n,this._defsUsePending,!1,!1),n.silent=!0,n}}),t}(),Zy={lineargradient:function(t){var e=parseInt(t.getAttribute("x1")||"0",10),n=parseInt(t.getAttribute("y1")||"0",10),i=parseInt(t.getAttribute("x2")||"10",10),r=parseInt(t.getAttribute("y2")||"0",10),o=new mu(e,n,i,r);return jy(t,o),qy(t,o),o},radialgradient:function(t){var e=parseInt(t.getAttribute("cx")||"0",10),n=parseInt(t.getAttribute("cy")||"0",10),i=parseInt(t.getAttribute("r")||"0",10),r=new _u(e,n,i);return jy(t,r),qy(t,r),r}};function jy(t,e){"userSpaceOnUse"===t.getAttribute("gradientUnits")&&(e.global=!0)}function qy(t,e){for(var n=t.firstChild;n;){if(1===n.nodeType&&"stop"===n.nodeName.toLocaleLowerCase()){var i=n.getAttribute("offset"),r=void 0;r=i&&i.indexOf("%")>0?parseInt(i,10)/100:i?parseFloat(i):0;var o={};av(n,o,o);var a=o.stopColor||n.getAttribute("stop-color")||"#000000";e.colorStops.push({offset:r,color:a})}n=n.nextSibling}}function Ky(t,e){t&&t.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),T(e.__inheritedStyle,t.__inheritedStyle))}function $y(t){for(var e=nv(t),n=[],i=0;i0;o-=2){var a=i[o],s=i[o-1],l=nv(a);switch(r=r||[1,0,0,1,0,0],s){case"translate":Un(r,r,[parseFloat(l[0]),parseFloat(l[1]||"0")]);break;case"scale":Yn(r,r,[parseFloat(l[0]),parseFloat(l[1]||l[0])]);break;case"rotate":Xn(r,r,-parseFloat(l[0])*rv);break;case"skewX":Wn(r,[1,0,Math.tan(parseFloat(l[0])*rv),1,0,0],r);break;case"skewY":Wn(r,[1,Math.tan(parseFloat(l[0])*rv),0,1,0,0],r);break;case"matrix":r[0]=parseFloat(l[0]),r[1]=parseFloat(l[1]),r[2]=parseFloat(l[2]),r[3]=parseFloat(l[3]),r[4]=parseFloat(l[4]),r[5]=parseFloat(l[5])}}e.setLocalTransform(r)}}(t,e),av(t,a,s),i||function(t,e,n){for(var i=0;i>1^-(1&s),l=l>>1^-(1&l),r=s+=r,o=l+=o,i.push([s/n,l/n])}return i}function vv(t,e){return O(N((t=function(t){if(!t.UTF8Encoding)return t;var e=t,n=e.UTF8Scale;null==n&&(n=1024);for(var i=e.features,r=0;r0})),(function(t){var n=t.properties,i=t.geometry,r=[];if("Polygon"===i.type){var o=i.coordinates;r.push({type:"polygon",exterior:o[0],interiors:o.slice(1)})}"MultiPolygon"===i.type&&P(o=i.coordinates,(function(t){t[0]&&r.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})}));var a=new pv(n[e||"name"],r,n.cp);return a.properties=n,a}))}for(var mv=[126,25],_v="南海诸岛",xv=[[[0,3.5],[7,11.2],[15,11.9],[30,7],[42,.7],[52,.7],[56,7.7],[59,.7],[64,.7],[64,0],[5,0],[0,3.5]],[[13,16.1],[19,14.7],[16,21.7],[11,23.1],[13,16.1]],[[12,32.2],[14,38.5],[15,38.5],[13,32.2],[12,32.2]],[[16,47.6],[12,53.2],[13,53.2],[18,47.6],[16,47.6]],[[6,64.4],[8,70],[9,70],[8,64.4],[6,64.4]],[[23,82.6],[29,79.8],[30,79.8],[25,82.6],[23,82.6]],[[37,70.7],[43,62.3],[44,62.3],[39,70.7],[37,70.7]],[[48,51.1],[51,45.5],[53,45.5],[50,51.1],[48,51.1]],[[51,35],[51,28.7],[53,28.7],[53,35],[51,35]],[[52,22.4],[55,17.5],[56,17.5],[53,22.4],[52,22.4]],[[58,12.6],[62,7],[63,7],[60,12.6],[58,12.6]],[[0,3.5],[0,93.1],[64,93.1],[64,0],[63,0],[63,92.4],[1,92.4],[1,3.5],[0,3.5]]],bv=0;bv0&&t.unfinished);t.unfinished||this._zr.flush()}}},e.prototype.getDom=function(){return this._dom},e.prototype.getId=function(){return this.id},e.prototype.getZr=function(){return this._zr},e.prototype.setOption=function(t,e,n){if(this._disposed)_m(this.id);else{var i,r,o;if(zv(e)&&(n=e.lazyUpdate,i=e.silent,r=e.replaceMerge,o=e.transition,e=e.notMerge),this.__flagInMainProcess=!0,!this._model||e){var a=new kp(this._api),s=this._theme,l=this._model=new wp;l.scheduler=this._scheduler,l.init(null,null,null,s,this._locale,a)}this._model.setOption(t,{replaceMerge:r},Sm),cm(this,o),n?(this.__optionUpdated={silent:i},this.__flagInMainProcess=!1,this.getZr().wakeUp()):(Zv(this),Kv.update.call(this),this._zr.flush(),this.__optionUpdated=!1,this.__flagInMainProcess=!1,tm.call(this,i),em.call(this,i))}},e.prototype.setTheme=function(){console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},e.prototype.getModel=function(){return this._model},e.prototype.getOption=function(){return this._model&&this._model.getOption()},e.prototype.getWidth=function(){return this._zr.getWidth()},e.prototype.getHeight=function(){return this._zr.getHeight()},e.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||Vv&&window.devicePixelRatio||1},e.prototype.getRenderedCanvas=function(t){if(a.canvasSupported)return t=t||{},this._zr.painter.getRenderedCanvas({backgroundColor:t.backgroundColor||this._model.get("backgroundColor"),pixelRatio:t.pixelRatio||this.getDevicePixelRatio()})},e.prototype.getSvgDataURL=function(){if(a.svgSupported){var t=this._zr;return P(t.storage.getDisplayList(),(function(t){t.stopAnimation(null,!0)})),t.painter.toDataURL()}},e.prototype.getDataURL=function(t){if(!this._disposed){var e=(t=t||{}).excludeComponents,n=this._model,i=[],r=this;Rv(e,(function(t){n.eachComponent({mainType:t},(function(t){var e=r._componentsMap[t.__viewId];e.group.ignore||(i.push(e),e.group.ignore=!0)}))}));var o="svg"===this._zr.painter.getType()?this.getSvgDataURL():this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return Rv(i,(function(t){t.group.ignore=!1})),o}_m(this.id)},e.prototype.getConnectedDataURL=function(t){if(this._disposed)_m(this.id);else if(a.canvasSupported){var e="svg"===t.type,n=this.group,i=Math.min,r=Math.max,o=1/0;if(Lm[n]){var s=o,l=o,u=-1/0,h=-1/0,c=[],p=t&&t.pixelRatio||this.getDevicePixelRatio();P(Am,(function(o,a){if(o.group===n){var p=e?o.getZr().painter.getSvgDom().innerHTML:o.getRenderedCanvas(w(t)),d=o.getDom().getBoundingClientRect();s=i(d.left,s),l=i(d.top,l),u=r(d.right,u),h=r(d.bottom,h),c.push({dom:p,left:d.left,top:d.top})}}));var d=(u*=p)-(s*=p),f=(h*=p)-(l*=p),g=C(),y=Hi(g,{renderer:e?"svg":"canvas"});if(y.resize({width:d,height:f}),e){var v="";return Rv(c,(function(t){var e=t.left-s,n=t.top-l;v+=''+t.dom+""})),y.painter.getSvgRoot().innerHTML=v,t.connectedBackgroundColor&&y.painter.setBackgroundColor(t.connectedBackgroundColor),y.refreshImmediately(),y.painter.toDataURL()}return t.connectedBackgroundColor&&y.add(new ls({shape:{x:0,y:0,width:d,height:f},style:{fill:t.connectedBackgroundColor}})),Rv(c,(function(t){var e=new es({style:{x:t.left*p-s,y:t.top*p-l,image:t.dom}});y.add(e)})),y.refreshImmediately(),g.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},e.prototype.convertToPixel=function(t,e){return $v(this,"convertToPixel",t,e)},e.prototype.convertFromPixel=function(t,e){return $v(this,"convertFromPixel",t,e)},e.prototype.containPixel=function(t,e){var n;if(!this._disposed)return P(Or(this._model,t),(function(t,i){i.indexOf("Models")>=0&&P(t,(function(t){var r=t.coordinateSystem;if(r&&r.containPoint)n=n||!!r.containPoint(e);else if("seriesModels"===i){var o=this._chartsMap[t.__viewId];o&&o.containPoint&&(n=n||o.containPoint(e,t))}else 0}),this)}),this),!!n;_m(this.id)},e.prototype.getVisual=function(t,e){var n=Or(this._model,t,{defaultMainType:"series"}),i=n.seriesModel;var r=i.getData(),o=n.hasOwnProperty("dataIndexInside")?n.dataIndexInside:n.hasOwnProperty("dataIndex")?r.indexOfRawIndex(n.dataIndex):null;return null!=o?vg(r,o,e):mg(r,e)},e.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},e.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},e.prototype._initEvents=function(){var t,e,n,i=this;Rv(mm,(function(t){var e=function(e){var n,r=i.getModel(),o=e.target,a="globalout"===t;if(a?n={}:o&&iy(o,(function(t){var e=_s(t);if(e&&null!=e.dataIndex){var i=e.dataModel||r.getSeriesByIndex(e.seriesIndex);return n=i&&i.getDataParams(e.dataIndex,e.dataType)||{},!0}if(e.eventData)return n=I({},e.eventData),!0}),!0),n){var s=n.componentType,l=n.componentIndex;"markLine"!==s&&"markPoint"!==s&&"markArea"!==s||(s="series",l=n.seriesIndex);var u=s&&null!=l&&r.getComponent(s,l),h=u&&i["series"===u.mainType?"_chartsMap":"_componentsMap"][u.__viewId];0,n.event=e,n.type=t,i._$eventProcessor.eventInfo={targetEl:o,packedEvent:n,model:u,view:h},i.trigger(t,n)}};e.zrEventfulCallAtLast=!0,i._zr.on(t,e,i)})),Rv(bm,(function(t,e){i._messageCenter.on(e,(function(t){this.trigger(e,t)}),i)})),Rv(["selectchanged"],(function(t){i._messageCenter.on(t,(function(e){this.trigger(t,e)}),i)})),t=this._messageCenter,e=this,n=this._api,t.on("selectchanged",(function(t){var i=n.getModel();t.isFromClick?(ny("map","selectchanged",e,i,t),ny("pie","selectchanged",e,i,t)):"select"===t.fromAction?(ny("map","selected",e,i,t),ny("pie","selected",e,i,t)):"unselect"===t.fromAction&&(ny("map","unselected",e,i,t),ny("pie","unselected",e,i,t))}))},e.prototype.isDisposed=function(){return this._disposed},e.prototype.clear=function(){this._disposed?_m(this.id):this.setOption({series:[]},!0)},e.prototype.dispose=function(){if(this._disposed)_m(this.id);else{this._disposed=!0,Vr(this.getDom(),Om,"");var t=this._api,e=this._model;Rv(this._componentsViews,(function(n){n.dispose(e,t)})),Rv(this._chartsViews,(function(n){n.dispose(e,t)})),this._zr.dispose(),delete Am[this.id]}},e.prototype.resize=function(t){if(this._disposed)_m(this.id);else{this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var n=e.resetOption("media"),i=t&&t.silent;this.__optionUpdated&&(null==i&&(i=this.__optionUpdated.silent),n=!0,this.__optionUpdated=!1),this.__flagInMainProcess=!0,n&&Zv(this),Kv.update.call(this,{type:"resize",animation:I({duration:0},t&&t.animation)}),this.__flagInMainProcess=!1,tm.call(this,i),em.call(this,i)}}},e.prototype.showLoading=function(t,e){if(this._disposed)_m(this.id);else if(zv(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),Dm[t]){var n=Dm[t](this._api,e),i=this._zr;this._loadingFX=n,i.add(n)}},e.prototype.hideLoading=function(){this._disposed?_m(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},e.prototype.makeActionFromEvent=function(t){var e=I({},t);return e.type=bm[t.type],e},e.prototype.dispatchAction=function(t,e){if(this._disposed)_m(this.id);else if(zv(e)||(e={silent:!!e}),xm[t.type]&&this._model)if(this.__flagInMainProcess)this._pendingActions.push(t);else{var n=e.silent;Qv.call(this,t,n);var i=e.flush;i?this._zr.flush():!1!==i&&a.browser.weChat&&this._throttledZrFlush(),tm.call(this,n),em.call(this,n)}},e.prototype.updateLabelLayout=function(){var t=this._labelManager;t.updateLayoutConfig(this._api),t.layout(this._api),t.processLabelsOverall()},e.prototype.appendData=function(t){if(this._disposed)_m(this.id);else{var e=t.seriesIndex,n=this.getModel().getSeriesByIndex(e);0,n.appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp()}},e.internalField=function(){function t(t){for(var e=[],n=t.currentStates,i=0;i0?{duration:o,delay:i.get("delay"),easing:i.get("easing")}:null;n.group.traverse((function(e){if(e.states&&e.states.emphasis){if(Zu(e))return;if(e instanceof Ka&&function(t){var e=ws(t);e.normalFill=t.style.fill,e.normalStroke=t.style.stroke;var n=t.states.select||{};e.selectFill=n.style&&n.style.fill||null,e.selectStroke=n.style&&n.style.stroke||null}(e),e.__dirty){var n=e.prevStates;n&&e.useStates(n)}if(r){e.stateTransition=a;var i=e.getTextContent(),o=e.getTextGuideLine();i&&(i.stateTransition=a),o&&(o.stateTransition=a)}e.__dirty&&t(e)}}))}Zv=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),jv(t,!0),jv(t,!1),e.plan()},jv=function(t,e){for(var n=t._model,i=t._scheduler,r=e?t._componentsViews:t._chartsViews,o=e?t._componentsMap:t._chartsMap,a=t._zr,s=t._api,l=0;le.get("hoverLayerThreshold")&&!a.node&&!a.worker&&e.eachSeries((function(e){if(!e.preventUsingHoverLayer){var n=t._chartsMap[e.__viewId];n.__alive&&n.group.traverse((function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)}))}}))}(t,n)},lm=function(t,e){Rv(Im,(function(n){n(t,e)}))},pm=function(t){t.__needsUpdateStatus=!0,t.getZr().wakeUp()},dm=function(e){e.__needsUpdateStatus&&(e.getZr().storage.traverse((function(e){Zu(e)||t(e)})),e.__needsUpdateStatus=!1)},um=function(t){return new(function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return n(i,e),i.prototype.getCoordinateSystems=function(){return t._coordSysMgr.getCoordinateSystems()},i.prototype.getComponentByElement=function(e){for(;e;){var n=e.__ecComponentInfo;if(null!=n)return t._model.getComponent(n.mainType,n.index);e=e.parent}},i.prototype.enterEmphasis=function(e,n){js(e,n),pm(t)},i.prototype.leaveEmphasis=function(e,n){qs(e,n),pm(t)},i.prototype.enterBlur=function(e){Ks(e),pm(t)},i.prototype.leaveBlur=function(e){$s(e),pm(t)},i.prototype.enterSelect=function(e){Js(e),pm(t)},i.prototype.leaveSelect=function(e){Qs(e),pm(t)},i.prototype.getModel=function(){return t.getModel()},i.prototype.getViewOfComponentModel=function(e){return t.getViewOfComponentModel(e)},i.prototype.getViewOfSeriesModel=function(e){return t.getViewOfSeriesModel(e)},i}(Cp))(t)},hm=function(t){function e(t,e){for(var n=0;n=0)){Ym.push(n);var o=Zf.wrapStageHandler(n,r);o.__prio=e,o.__raw=n,t.push(o)}}function jm(t,e){Dm[t]=e}function qm(t,e,n){Av(t,e,n)}var Km=function(t){var e=(t=w(t)).type,n="";e||vr(n);var i=e.split(":");2!==i.length&&vr(n);var r=!1;"echarts"===i[0]&&(e=i[1],r=!0),t.__isBuiltIn=r,Ud.set(e,t)};Xm(Bv,Hf),Xm(Fv,Uf),Xm(Fv,Xf),Xm(Bv,yg),Xm(Fv,{createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(t.hasSymbolVisual&&!e.isSeriesFiltered(t))return{dataEach:t.getData().hasItemOption?function(t,e){var n=t.getItemModel(e),i=n.getShallow("symbol",!0),r=n.getShallow("symbolSize",!0),o=n.getShallow("symbolRotate",!0),a=n.getShallow("symbolOffset",!0),s=n.getShallow("symbolKeepAspect",!0);null!=i&&t.setItemVisual(e,"symbol",i),null!=r&&t.setItemVisual(e,"symbolSize",r),null!=o&&t.setItemVisual(e,"symbolRotate",o),null!=a&&t.setItemVisual(e,"symbolOffset",a),null!=s&&t.setItemVisual(e,"symbolKeepAspect",s)}:null}}}),Xm(7e3,(function(t,e){t.eachRawSeries((function(n){if(!t.isSeriesFiltered(n)){var i=n.getData();i.hasItemVisual()&&i.each((function(t){var n=i.getItemVisual(t,"decal");n&&(i.ensureUniqueItemVisual(t,"style").decal=Ey(n,e))}));var r=i.getVisual("decal");if(r)i.getVisual("style").decal=Ey(r,e)}}))})),Vm(Jp),Bm(900,(function(t){var e=ht();t.eachSeries((function(t){var n=t.get("stack");if(n){var i=e.get(n)||e.set(n,[]),r=t.getData(),o={stackResultDimension:r.getCalculationInfo("stackResultDimension"),stackedOverDimension:r.getCalculationInfo("stackedOverDimension"),stackedDimension:r.getCalculationInfo("stackedDimension"),stackedByDimension:r.getCalculationInfo("stackedByDimension"),isStackedByIndex:r.getCalculationInfo("isStackedByIndex"),data:r,seriesModel:t};if(!o.stackedDimension||!o.isStackedByIndex&&!o.stackedByDimension)return;i.length&&r.setCalculationInfo("stackedOnSeries",i[i.length-1].seriesModel),i.push(o)}})),e.each(Qp)})),jm("default",(function(t,e){T(e=e||{},{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var n=new Ei,i=new ls({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});n.add(i);var r,o=new cs({style:{text:e.text,fill:e.textColor,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:e.fontFamily},zlevel:e.zlevel,z:10001}),a=new ls({style:{fill:"none"},textContent:o,textConfig:{position:"right",distance:10},zlevel:e.zlevel,z:10001});return n.add(a),e.showSpinner&&((r=new gu({shape:{startAngle:-Yf/2,endAngle:-Yf/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001})).animateShape(!0).when(1e3,{endAngle:3*Yf/2}).start("circularInOut"),r.animateShape(!0).when(1e3,{startAngle:3*Yf/2}).delay(300).start("circularInOut"),n.add(r)),n.resize=function(){var n=o.getBoundingRect().width,s=e.showSpinner?e.spinnerRadius:0,l=(t.getWidth()-2*s-(e.showSpinner&&n?10:0)-n)/2-(e.showSpinner&&n?0:5+n/2)+(e.showSpinner?0:n/2)+(n?0:s),u=t.getHeight()/2;e.showSpinner&&r.setShape({cx:l,cy:u}),a.setShape({x:l-s,y:u-s,width:2*s,height:2*s}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},n.resize(),n})),Hm({type:Ts,event:Ts,update:Ts},ft),Hm({type:Cs,event:Cs,update:Cs},ft),Hm({type:Ds,event:Ds,update:Ds},ft),Hm({type:As,event:As,update:As},ft),Hm({type:Ls,event:Ls,update:Ls},ft),Em("light",ug),Em("dark",fg);var $m=[],Jm={registerPreprocessor:Vm,registerProcessor:Bm,registerPostInit:Fm,registerPostUpdate:Gm,registerAction:Hm,registerCoordinateSystem:Wm,registerLayout:Um,registerVisual:Xm,registerTransform:Km,registerLoading:jm,registerMap:qm,PRIORITY:Gv,ComponentModel:Xc,ComponentView:wf,SeriesModel:ff,ChartView:Tf,registerComponentModel:function(t){Xc.registerClass(t)},registerComponentView:function(t){wf.registerClass(t)},registerSeriesModel:function(t){ff.registerClass(t)},registerChartView:function(t){Tf.registerClass(t)},registerSubTypeDefaulter:function(t,e){Xc.registerSubTypeDefaulter(t,e)},registerPainter:function(t,e){Wi(t,e)}};function Qm(t){F(t)?P(t,(function(t){Qm(t)})):D($m,t)>=0||($m.push(t),G(t)&&(t={install:t}),t.install(Jm))}function t_(t){return null==t?0:t.length||1}function e_(t){return t}var n_=function(){function t(t,e,n,i,r,o){this._old=t,this._new=e,this._oldKeyGetter=n||e_,this._newKeyGetter=i||e_,this.context=r,this._diffModeMultiple="multiple"===o}return t.prototype.add=function(t){return this._add=t,this},t.prototype.update=function(t){return this._update=t,this},t.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},t.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},t.prototype.remove=function(t){return this._remove=t,this},t.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},t.prototype._executeOneToOne=function(){var t=this._old,e=this._new,n={},i=new Array(t.length),r=new Array(e.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(e,n,r,"_newKeyGetter");for(var o=0;o1){var u=s.shift();1===s.length&&(n[a]=s[0]),this._update&&this._update(u,o)}else 1===l?(n[a]=null,this._update&&this._update(s,o)):this._remove&&this._remove(o)}this._performRestAdd(r,n)},t.prototype._executeMultiple=function(){var t=this._old,e=this._new,n={},i={},r=[],o=[];this._initIndexMap(t,n,r,"_oldKeyGetter"),this._initIndexMap(e,i,o,"_newKeyGetter");for(var a=0;a1&&1===c)this._updateManyToOne&&this._updateManyToOne(u,l),i[s]=null;else if(1===h&&c>1)this._updateOneToMany&&this._updateOneToMany(u,l),i[s]=null;else if(1===h&&1===c)this._update&&this._update(u,l),i[s]=null;else if(h>1)for(var p=0;p1)for(var a=0;av[1]&&(v[1]=y)}e&&(this._nameList[d]=e[f],this._dontMakeIdFromName||d_(this,d))}this._rawCount=this._count=s,this._extent={},a_(this)},t.prototype._initDataFromProvider=function(t,e,n){if(!(t>=e)){for(var i=this._rawData,r=this._storage,o=this.dimensions,a=o.length,s=this._dimensionInfos,l=this._nameList,u=this._idList,h=this._rawExtent,c=i.getSource().sourceFormat===Kc,p=0;pb[1]&&(b[1]=x)}if(c&&!i.pure&&y){var w=y.name;null==l[v]&&null!=w&&(l[v]=Cr(w,null));var S=y.id;null==u[v]&&null!=S&&(u[v]=Cr(S,null))}this._dontMakeIdFromName||d_(this,v)}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=e,this._extent={},a_(this)}},t.prototype.count=function(){return this._count},t.prototype.getIndices=function(){var t,e=this._indices;if(e){var n=e.constructor,i=this._count;if(n===Array){t=new n(i);for(var r=0;r=0&&e=0&&e=0&&ea&&(a=l)}return i=[o,a],this._extent[t]=i,i},t.prototype.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},t.prototype.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},t.prototype.getCalculationInfo=function(t){return this._calculationInfo[t]},t.prototype.setCalculationInfo=function(t,e){b_(t)?I(this._calculationInfo,t):this._calculationInfo[t]=e},t.prototype.getSum=function(t){var e=0;if(this._storage[t])for(var n=0,i=this.count();n=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&nt))return o;r=o-1}}return-1},t.prototype.indicesOfNearest=function(t,e,n){var i=this._storage[t],r=[];if(!i)return r;null==n&&(n=1/0);for(var o=1/0,a=-1,s=0,l=0,u=this.count();l=0&&a<0)&&(o=c,a=h,s=0),h===a&&(r[s++]=l))}return r.length=s,r},t.prototype.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],n=0;n=c&&b<=p||isNaN(b))&&(s[l++]=g),g++}f=!0}else if(2===o){y=d[h[0]];var m=d[h[1]],_=t[i[1]][0],x=t[i[1]][1];for(v=0;v=c&&b<=p||isNaN(b))&&(w>=_&&w<=x||isNaN(w))&&(s[l++]=g),g++}f=!0}}if(!f)if(1===o)for(v=0;v=c&&b<=p||isNaN(b))&&(s[l++]=S)}else for(v=0;vt[T][1])&&(M=!1)}M&&(s[l++]=this.getRawIndex(v))}return lx[1]&&(x[1]=_)}}}return a},t.prototype.downSample=function(t,e,n,i){for(var r=g_(this,[t]),o=r._storage,a=[],s=x_(1/e),l=o[t],u=this.count(),h=r._rawExtent[t],c=new(s_(this))(u),p=0,d=0;du-d&&(s=u-d,a.length=s);for(var f=0;fh[1]&&(h[1]=y),c[p++]=v}return r._count=p,r._indices=c,r.getRawIndex=h_,r},t.prototype.lttbDownSample=function(t,e){var n,i,r,o=g_(this,[]),a=o._storage[t],s=this.count(),l=new(s_(this))(s),u=0,h=x_(1/e),c=this.getRawIndex(0);l[u++]=c;for(var p=1;pn&&(n=i,r=S)}l[u++]=r,c=r}return l[u++]=this.getRawIndex(s-1),o._count=u,o._indices=l,o.getRawIndex=h_,o},t.prototype.getItemModel=function(t){var e=this.hostModel,n=this.getRawDataItem(t);return new Oh(n,e,e&&e.ecModel)},t.prototype.diff=function(t){var e=this;return new n_(t?t.getIndices():[],this.getIndices(),(function(e){return c_(t,e)}),(function(t){return c_(e,t)}))},t.prototype.getVisual=function(t){var e=this._visual;return e&&e[t]},t.prototype.setVisual=function(t,e){this._visual=this._visual||{},b_(t)?I(this._visual,t):this._visual[t]=e},t.prototype.getItemVisual=function(t,e){var n=this._itemVisuals[t],i=n&&n[e];return null==i?this.getVisual(e):i},t.prototype.hasItemVisual=function(){return this._itemVisuals.length>0},t.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var r=i[e];return null==r&&(F(r=this.getVisual(e))?r=r.slice():b_(r)&&(r=I({},r)),i[e]=r),r},t.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,b_(e)?I(i,e):i[e]=n},t.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},t.prototype.setLayout=function(t,e){if(b_(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},t.prototype.getLayout=function(t){return this._layout[t]},t.prototype.getItemLayout=function(t){return this._itemLayouts[t]},t.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?I(this._itemLayouts[t]||{},e):e},t.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},t.prototype.setItemGraphicEl=function(t,e){var n=this.hostModel;if(e){var i=_s(e);i.dataIndex=t,i.dataType=this.dataType,i.seriesIndex=n&&n.seriesIndex,"group"===e.type&&e.traverse(v_,e)}this._graphicEls[t]=e},t.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},t.prototype.eachItemGraphicEl=function(t,e){P(this._graphicEls,(function(n,i){n&&t&&t.call(e,n,i)}))},t.prototype.cloneShallow=function(e){e||(e=new t(w_(this.dimensions,this.getDimensionInfo,this),this.hostModel));if(e._storage=this._storage,e._storageArr=this._storageArr,m_(e,this),this._indices){var n=this._indices.constructor;if(n===Array){var i=this._indices.length;e._indices=new n(i);for(var r=0;r65535?I_:C_},l_=function(t,e,n,i){var r=M_[e.type],o=e.name;if(i){var a=t[o],s=a&&a.length;if(s!==n){for(var l=new r(n),u=0;u=0?this._indices[t]:-1},c_=function(t,e){var n=t._idList[e];return null==n&&null!=t._idDimIdx&&(n=p_(t,t._idDimIdx,t._idOrdinalMeta,e)),null==n&&(n="e\0\0"+e),n},f_=function(t){return F(t)||(t=null!=t?[t]:[]),t},function(t,e){for(var n=0;n=0?(s[c]=(o=l[c],a=void 0,(a=o.constructor)===Array?o.slice():new a(o)),r._rawExtent[c]=y_(),r._extent[c]=null):s[c]=l[c],u.push(s[c]))}return r},y_=function(){return[1/0,-1/0]},v_=function(t){var e=_s(t),n=_s(this);e.seriesIndex=n.seriesIndex,e.dataIndex=n.dataIndex,e.dataType=n.dataType},m_=function(t,e){P(D_.concat(e.__wrappedMethods||[]),(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t.__wrappedMethods=e.__wrappedMethods,P(A_,(function(n){t[n]=w(e[n])})),t._calculationInfo=I({},e._calculationInfo)},d_=function(t,e){var n=t._nameList,i=t._idList,r=t._nameDimIdx,o=t._idDimIdx,a=n[e],s=i[e];if(null==a&&null!=r&&(n[e]=a=p_(t,r,t._nameOrdinalMeta,e)),null==s&&null!=o&&(i[e]=s=p_(t,o,t._idOrdinalMeta,e)),null==s&&null!=a){var l=t._nameRepeatCount,u=l[a]=(l[a]||0)+1;s=a,u>1&&(s+="__ec__"+u),i[e]=s}}}(),t}();function k_(t,e,n){ad(e)||(e=ld(e)),n=n||{},t=(t||[]).slice();for(var i=(n.dimsDef||[]).slice(),r=ht(),o=ht(),a=[],s=function(t,e,n,i){var r=Math.max(t.dimensionsDetectedCount||1,e.length,n.length,i||0);return P(e,(function(t){var e;X(t)&&(e=t.dimsDef)&&(r=Math.max(r,e.length))})),r}(e,t,i,n.dimCount),l=0;le[1]&&(e[1]=t[1])},t.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},t.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},t.prototype.isBlank=function(){return this._isBlank},t.prototype.setBlank=function(t){this._isBlank=t},t}();Kr(G_);var H_=function(){function t(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication}return t.createByAxisModel=function(e){var n=e.option,i=n.data,r=i&&O(i,W_);return new t({categories:r,needCollect:!r,deduplication:!1!==n.dedplication})},t.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},t.prototype.parseAndCollect=function(t){var e,n=this._needCollect;if("string"!=typeof t&&!n)return t;if(n&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var i=this._getOrCreateMap();return null==(e=i.get(t))&&(n?(e=this.categories.length,this.categories[e]=t,i.set(t,e)):e=NaN),e},t.prototype._getOrCreateMap=function(){return this._map||(this._map=ht(this.categories))},t}();function W_(t){return X(t)&&null!=t.value?t.value:t+""}var U_=ji;function X_(t,e,n,i){var r={},o=t[1]-t[0],a=r.interval=lr(o/e,!0);null!=n&&ai&&(a=r.interval=i);var s=r.intervalPrecision=Y_(a);return function(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),Z_(t,0,e),Z_(t,1,e),t[0]>t[1]&&(t[0]=t[1])}(r.niceTickExtent=[U_(Math.ceil(t[0]/a)*a,s),U_(Math.floor(t[1]/a)*a,s)],t),r}function Y_(t){return Ki(t)+2}function Z_(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function j_(t,e){return t>=e[0]&&t<=e[1]}function q_(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function K_(t,e){return t*(e[1]-e[0])+e[0]}var $_=function(t){function e(e){var n=t.call(this,e)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new H_({})),F(i)&&(i=new H_({categories:O(i,(function(t){return X(t)?t.value:t}))})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return n(e,t),e.prototype.parse=function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},e.prototype.contain=function(t){return j_(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},e.prototype.normalize=function(t){return q_(t=this._getTickNumber(this.parse(t)),this._extent)},e.prototype.scale=function(t){return t=Math.round(K_(t,this._extent)),this.getRawOrdinalNumber(t)},e.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:n}),n++;return t},e.prototype.getMinorTicks=function(t){},e.prototype.setSortInfo=function(t){if(null!=t){for(var e=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],r=0,o=this._ordinalMeta.categories.length,a=Math.min(o,e.length);r=0&&t=0&&t=t},e.prototype.getOrdinalMeta=function(){return this._ordinalMeta},e.prototype.niceTicks=function(){},e.prototype.niceExtent=function(){},e.type="ordinal",e}(G_);G_.registerClass($_);var J_=ji,Q_=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="interval",e._interval=0,e._intervalPrecision=2,e}return n(e,t),e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return j_(t,this._extent)},e.prototype.normalize=function(t){return q_(t,this._extent)},e.prototype.scale=function(t){return K_(t,this._extent)},e.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},e.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},e.prototype.getInterval=function(){return this._interval},e.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=Y_(t)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(!e)return o;n[0]1e4)return[];var s=o.length?o[o.length-1].value:i[1];return n[1]>s&&(t?o.push({value:J_(s+e,r)}):o.push({value:n[1]})),o},e.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;ri[0]&&h0&&(o=null===o?s:Math.min(o,s))}n[i]=o}}return n}(t),n=[];return P(t,(function(t){var i,r=t.coordinateSystem.getBaseAxis(),o=r.getExtent();if("category"===r.type)i=r.getBandWidth();else if("value"===r.type||"time"===r.type){var a=r.dim+"_"+r.index,s=e[a],l=Math.abs(o[1]-o[0]),u=r.scale.getExtent(),h=Math.abs(u[1]-u[0]);i=s?l/h*s:l}else{var c=t.getData();i=Math.abs(o[1]-o[0])/c.count()}var p=Zi(t.get("barWidth"),i),d=Zi(t.get("barMaxWidth"),i),f=Zi(t.get("barMinWidth")||1,i),g=t.get("barGap"),y=t.get("barCategoryGap");n.push({bandWidth:i,barWidth:p,barMaxWidth:d,barMinWidth:f,barGap:g,barCategoryGap:y,axisKey:ix(r),stackId:nx(t)})})),ax(n)}function ax(t){var e={};P(t,(function(t,n){var i=t.axisKey,r=t.bandWidth,o=e[i]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},a=o.stacks;e[i]=o;var s=t.stackId;a[s]||o.autoWidthCount++,a[s]=a[s]||{width:0,maxWidth:0};var l=t.barWidth;l&&!a[s].width&&(a[s].width=l,l=Math.min(o.remainedWidth,l),o.remainedWidth-=l);var u=t.barMaxWidth;u&&(a[s].maxWidth=u);var h=t.barMinWidth;h&&(a[s].minWidth=h);var c=t.barGap;null!=c&&(o.gap=c);var p=t.barCategoryGap;null!=p&&(o.categoryGap=p)}));var n={};return P(e,(function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=t.categoryGap;if(null==o){var a=E(i).length;o=Math.max(35-4*a,15)+"%"}var s=Zi(o,r),l=Zi(t.gap,1),u=t.remainedWidth,h=t.autoWidthCount,c=(u-s)/(h+(h-1)*l);c=Math.max(c,0),P(i,(function(t){var e=t.maxWidth,n=t.minWidth;if(t.width){i=t.width;e&&(i=Math.min(i,e)),n&&(i=Math.max(i,n)),t.width=i,u-=i+l*i,h--}else{var i=c;e&&ei&&(i=n),i!==c&&(t.width=i,u-=i+l*i,h--)}})),c=(u-s)/(h+(h-1)*l),c=Math.max(c,0);var p,d=0;P(i,(function(t,e){t.width||(t.width=c),p=t,d+=t.width*(1+l)})),p&&(d-=p.width*l);var f=-d/2;P(i,(function(t,i){n[e][i]=n[e][i]||{bandWidth:r,offset:f,width:t.width},f+=t.width*(1+l)}))})),n}function sx(t,e,n){if(t&&e){var i=t[ix(e)];return null!=i&&null!=n?i[nx(n)]:i}}function lx(t,e){var n=rx(t,e),i=ox(n),r={};P(n,(function(t){var e=t.getData(),n=t.coordinateSystem,o=n.getBaseAxis(),a=nx(t),s=i[ix(o)][a],l=s.offset,u=s.width,h=n.getOtherAxis(o),c=t.get("barMinHeight")||0;r[a]=r[a]||[],e.setLayout({bandWidth:s.bandWidth,offset:l,size:u});for(var p=e.mapDimension(h.dim),d=e.mapDimension(o.dim),f=V_(e,p),g=h.isHorizontal(),y=px(o,h),v=0,m=e.count();v=0?"p":"n",w=y;f&&(r[a][x]||(r[a][x]={p:y,n:y}),w=r[a][x][b]);var S,M=void 0,I=void 0,T=void 0,C=void 0;if(g)M=w,I=(S=n.dataToPoint([_,x]))[1]+l,T=S[0]-y,C=u,Math.abs(T).5||(h=.5),{progress:function(t,e){for(var c,p=t.count,d=new ex(2*p),f=new ex(2*p),g=new ex(p),y=[],v=[],m=0,_=0;null!=(c=t.next());)v[u]=e.get(a,c),v[1-u]=e.get(s,c),y=n.dataToPoint(v,null),f[m]=l?i.x+i.width:y[0],d[m++]=y[0],f[m]=l?y[1]:i.y+i.height,d[m++]=y[1],g[_++]=c;e.setLayout({largePoints:d,largeDataIndices:g,largeBackgroundPoints:f,barWidth:h,valueAxisStart:px(r,o),backgroundStart:l?i.x:i.y,valueAxisHorizontal:l})}}}}};function hx(t){return t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type}function cx(t){return t.pipelineContext&&t.pipelineContext.large}function px(t,e,n){return e.toGlobalCoord(e.dataToCoord("log"===e.type?1:0))}var dx=function(t){function e(e){var n=t.call(this,e)||this;return n.type="time",n}return n(e,t),e.prototype.getLabel=function(t){var e=this.getSetting("useUTC");return ic(t.value,$h[function(t){switch(t){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}(ec(this._minLevelUnit))]||$h.second,e,this.getSetting("locale"))},e.prototype.getFormattedLabel=function(t,e,n){var i=this.getSetting("useUTC");return function(t,e,n,i,r){var o=null;if("string"==typeof n)o=n;else if("function"==typeof n)o=n(t.value,e,{level:t.level});else{var a=I({},qh);if(t.level>0)for(var s=0;s=0;--s)if(l[u]){o=l[u];break}o=o||a.none}if(F(o)){var h=null==t.level?0:t.level>=0?t.level:o.length+t.level;o=o[h=Math.min(h,o.length-1)]}}return ic(new Date(t.value),o,r,i)}(t,e,n,this.getSetting("locale"),i)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=[];if(!e)return i;i.push({value:n[0],level:0});var r=this.getSetting("useUTC"),o=function(t,e,n,i){var r=1e4,o=Qh,a=0;function s(t,e,n,r,o,a,s){for(var l=new Date(e),u=e,h=l[r]();u1&&0===u&&o.unshift({value:o[0].value-p})}}for(u=0;u=i[0]&&v<=i[1]&&c++)}var m=(i[1]-i[0])/e;if(c>1.5*m&&p>m/1.5)break;if(u.push(g),c>m||t===o[d])break}h=[]}}0;var _=N(O(u,(function(t){return N(t,(function(t){return t.value>=i[0]&&t.value<=i[1]&&!t.notAdd}))})),(function(t){return t.length>0})),x=[],b=_.length-1;for(d=0;d<_.length;++d)for(var w=_[d],S=0;Sn&&(this._approxInterval=n);var o=fx.length,a=Math.min(function(t,e,n,i){for(;n>>1;t[r][1]16?16:t>7.5?7:t>3.5?4:t>1.5?2:1}function yx(t){return(t/=2592e6)>6?6:t>3?3:t>2?2:1}function vx(t){return(t/=Yh)>12?12:t>6?6:t>3.5?4:t>2?2:1}function mx(t,e){return(t/=e?Xh:Uh)>30?30:t>20?20:t>15?15:t>10?10:t>5?5:t>2?2:1}function _x(t){return lr(t,!0)}function xx(t,e,n){var i=new Date(t);switch(ec(e)){case"year":case"month":i[fc(n)](0);case"day":i[gc(n)](1);case"hour":i[yc(n)](0);case"minute":i[vc(n)](0);case"second":i[mc(n)](0),i[_c(n)](0)}return i.getTime()}G_.registerClass(dx);var bx=G_.prototype,Sx=Q_.prototype,Mx=ji,Ix=Math.floor,Tx=Math.ceil,Cx=Math.pow,Dx=Math.log,Ax=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="log",e.base=10,e._originalScale=new Q_,e._interval=0,e}return n(e,t),e.prototype.getTicks=function(t){var e=this._originalScale,n=this._extent,i=e.getExtent();return O(Sx.getTicks.call(this,t),(function(t){var e=t.value,r=ji(Cx(this.base,e));return r=e===n[0]&&this._fixMin?kx(r,i[0]):r,{value:r=e===n[1]&&this._fixMax?kx(r,i[1]):r}}),this)},e.prototype.setExtent=function(t,e){var n=this.base;t=Dx(t)/Dx(n),e=Dx(e)/Dx(n),Sx.setExtent.call(this,t,e)},e.prototype.getExtent=function(){var t=this.base,e=bx.getExtent.call(this);e[0]=Cx(t,e[0]),e[1]=Cx(t,e[1]);var n=this._originalScale.getExtent();return this._fixMin&&(e[0]=kx(e[0],n[0])),this._fixMax&&(e[1]=kx(e[1],n[1])),e},e.prototype.unionExtent=function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=Dx(t[0])/Dx(e),t[1]=Dx(t[1])/Dx(e),bx.unionExtent.call(this,t)},e.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},e.prototype.niceTicks=function(t){t=t||10;var e=this._extent,n=e[1]-e[0];if(!(n===1/0||n<=0)){var i=ar(n);for(t/n*i<=.5&&(i*=10);!isNaN(i)&&Math.abs(i)<1&&Math.abs(i)>0;)i*=10;var r=[ji(Tx(e[0]/i)*i),ji(Ix(e[1]/i)*i)];this._interval=i,this._niceExtent=r}},e.prototype.niceExtent=function(t){Sx.niceExtent.call(this,t),this._fixMin=t.fixMin,this._fixMax=t.fixMax},e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return j_(t=Dx(t)/Dx(this.base),this._extent)},e.prototype.normalize=function(t){return q_(t=Dx(t)/Dx(this.base),this._extent)},e.prototype.scale=function(t){return t=K_(t,this._extent),Cx(this.base,t)},e.type="log",e}(G_),Lx=Ax.prototype;function kx(t,e){return Mx(t,Ki(e))}Lx.getMinorTicks=Sx.getMinorTicks,Lx.getLabel=Sx.getLabel,G_.registerClass(Ax);var Px=function(){function t(t,e,n){this._prepareParams(t,e,n)}return t.prototype._prepareParams=function(t,e,n){n[1]s&&(a=NaN,s=NaN);var h=J(a)||J(s)||t&&!i;this._needCrossZero&&(a>0&&s>0&&!l&&(a=0),a<0&&s<0&&!u&&(s=0));var c=this._determinedMin,p=this._determinedMax;return null!=c&&(a=c,l=!0),null!=p&&(s=p,u=!0),{min:a,max:s,minFixed:l,maxFixed:u,isBlank:h}},t.prototype.modifyDataMinMax=function(t,e){this[Rx[t]]=e},t.prototype.setDeterminedMinMax=function(t,e){var n=Ox[t];this[n]=e},t.prototype.freeze=function(){this.frozen=!0},t}(),Ox={min:"_determinedMin",max:"_determinedMax"},Rx={min:"_dataMin",max:"_dataMax"};function Nx(t,e,n){var i=t.rawExtentInfo;return i||(i=new Px(t,e,n),t.rawExtentInfo=i,i)}function zx(t,e){return null==e?null:J(e)?NaN:t.parse(e)}function Ex(t,e){var n=t.type,i=Nx(t,e,t.getExtent()).calculate();t.setBlank(i.isBlank);var r=i.min,o=i.max,a=e.ecModel;if(a&&"time"===n){var s=rx("bar",a),l=!1;if(P(s,(function(t){l=l||t.getBaseAxis()===e.axis})),l){var u=ox(s),h=function(t,e,n,i){var r=n.axis.getExtent(),o=r[1]-r[0],a=sx(i,n.axis);if(void 0===a)return{min:t,max:e};var s=1/0;P(a,(function(t){s=Math.min(t.offset,s)}));var l=-1/0;P(a,(function(t){l=Math.max(t.offset+t.width,l)})),s=Math.abs(s),l=Math.abs(l);var u=s+l,h=e-t,c=h/(1-(s+l)/o)-h;return{min:t-=c*(s/u),max:e+=c*(l/u)}}(r,o,e,u);r=h.min,o=h.max}}return{extent:[r,o],fixMin:i.minFixed,fixMax:i.maxFixed}}function Vx(t,e){var n=Ex(t,e),i=n.extent,r=e.get("splitNumber");t instanceof Ax&&(t.base=e.get("logBase"));var o=t.type;t.setExtent(i[0],i[1]),t.niceExtent({splitNumber:r,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:"interval"===o||"time"===o?e.get("minInterval"):null,maxInterval:"interval"===o||"time"===o?e.get("maxInterval"):null});var a=e.get("interval");null!=a&&t.setInterval&&t.setInterval(a)}function Bx(t,e){if(e=e||t.get("type"))switch(e){case"category":return new $_({ordinalMeta:t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),extent:[1/0,-1/0]});case"time":return new dx({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new(G_.getClass(e)||Q_)}}function Fx(t){var e,n,i=t.getLabelModel().get("formatter"),r="category"===t.type?t.scale.getExtent()[0]:null;return"time"===t.scale.type?(n=i,function(e,i){return t.scale.getFormattedLabel(e,i,n)}):"string"==typeof i?function(e){return function(n){var i=t.scale.getLabel(n);return e.replace("{value}",null!=i?i:"")}}(i):"function"==typeof i?(e=i,function(n,i){return null!=r&&(i=n.value-r),e(Gx(t,n),i,null!=n.level?{level:n.level}:null)}):function(e){return t.scale.getLabel(e)}}function Gx(t,e){return"category"===t.type?t.scale.getLabel(e):e.value}function Hx(t,e){var n=e*Math.PI/180,i=t.width,r=t.height,o=i*Math.abs(Math.cos(n))+Math.abs(r*Math.sin(n)),a=i*Math.abs(Math.sin(n))+Math.abs(r*Math.cos(n));return new gi(t.x,t.y,o,a)}function Wx(t){var e=t.get("interval");return null==e?"auto":e}function Ux(t){return"category"===t.type&&0===Wx(t.getLabelModel())}function Xx(t,e){var n={};return P(t.mapDimensionsAll(e),(function(e){n[B_(t,e)]=!0})),E(n)}var Yx=function(){function t(){}return t.prototype.getNeedCrossZero=function(){return!this.option.scale},t.prototype.getCoordSysModel=function(){},t}();var Zx={isDimensionStacked:V_,enableDataStack:E_,getStackedDimension:B_};var jx=Object.freeze({__proto__:null,createList:function(t){return F_(t.getSource(),t)},getLayoutRect:Vc,dataStack:Zx,createScale:function(t,e){var n=e;e instanceof Oh||(n=new Oh(e));var i=Bx(n);return i.setExtent(t[0],t[1]),Vx(i,n),i},mixinAxisModelCommonMethods:function(t){L(t,Yx)},getECData:_s,createTextStyle:function(t,e){return ph(t,null,null,"normal"!==(e=e||{}).state)},createDimensions:O_,createSymbol:fy,enableHoverEmphasis:sl}),qx=Object.freeze({__proto__:null,linearMap:Yi,round:ji,asc:qi,getPrecision:Ki,getPrecisionSafe:$i,getPixelPrecision:Ji,getPercentWithPrecision:Qi,MAX_SAFE_INTEGER:er,remRadian:nr,isRadianAroundZero:ir,parseDate:or,quantity:ar,quantityExponent:sr,nice:lr,quantile:ur,reformIntervals:hr,isNumeric:pr,numericToNumber:cr}),Kx=Object.freeze({__proto__:null,parse:or,format:ic}),$x=Object.freeze({__proto__:null,extendShape:Lu,extendPath:Pu,makePath:Nu,makeImage:zu,mergePath:Vu,resizePath:Bu,createIcon:eh,updateProps:Hu,initProps:Wu,getTransform:ju,clipPointsByRect:Qu,clipRectByRect:th,registerShape:Ou,getShapeClass:Ru,Group:Ei,Image:es,Text:cs,Circle:Nl,Ellipse:El,Sector:Jl,Ring:tu,Polygon:ru,Polyline:au,Rect:ls,Line:uu,BezierCurve:du,Arc:gu,IncrementalDisplayable:Tu,CompoundPath:yu,LinearGradient:mu,RadialGradient:_u,BoundingRect:gi}),Jx=Object.freeze({__proto__:null,addCommas:xc,toCamelCase:bc,normalizeCssArray:wc,encodeHTML:Ic,formatTpl:Ac,getTooltipMarker:Lc,formatTime:function(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=or(e),r=n?"UTC":"",o=i["get"+r+"FullYear"](),a=i["get"+r+"Month"]()+1,s=i["get"+r+"Date"](),l=i["get"+r+"Hours"](),u=i["get"+r+"Minutes"](),h=i["get"+r+"Seconds"](),c=i["get"+r+"Milliseconds"]();return t=t.replace("MM",tc(a,2)).replace("M",a).replace("yyyy",o).replace("yy",o%100+"").replace("dd",tc(s,2)).replace("d",s).replace("hh",tc(l,2)).replace("h",l).replace("mm",tc(u,2)).replace("m",u).replace("ss",tc(h,2)).replace("s",h).replace("SSS",tc(c,3))},capitalFirst:function(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t},truncateText:ao,getTextRect:function(t,e,n,i,r,o,a,s){return yr(),new cs({style:{text:t,font:e,align:n,verticalAlign:i,padding:r,rich:o,overflow:a?"truncate":null,lineHeight:s}}).getBoundingRect()}}),Qx=Object.freeze({__proto__:null,map:O,each:P,indexOf:D,inherits:A,reduce:R,filter:N,bind:V,curry:B,isArray:F,isString:H,isObject:X,isFunction:G,extend:I,defaults:T,clone:w,merge:S}),tb=kr();function eb(t){return"category"===t.type?function(t){var e=t.getLabelModel(),n=ib(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:n.labelCategoryInterval}:n}(t):function(t){var e=t.scale.getTicks(),n=Fx(t);return{labels:O(e,(function(e,i){return{formattedLabel:n(e,i),rawLabel:t.scale.getLabel(e),tickValue:e.value}}))}}(t)}function nb(t,e){return"category"===t.type?function(t,e){var n,i,r=rb(t,"ticks"),o=Wx(e),a=ob(r,o);if(a)return a;e.get("show")&&!t.scale.isBlank()||(n=[]);if(G(o))n=lb(t,o,!0);else if("auto"===o){var s=ib(t,t.getLabelModel());i=s.labelCategoryInterval,n=O(s.labels,(function(t){return t.tickValue}))}else n=sb(t,i=o,!0);return ab(r,o,{ticks:n,tickCategoryInterval:i})}(t,e):{ticks:O(t.scale.getTicks(),(function(t){return t.value}))}}function ib(t,e){var n,i,r=rb(t,"labels"),o=Wx(e),a=ob(r,o);return a||(G(o)?n=lb(t,o):(i="auto"===o?function(t){var e=tb(t).autoInterval;return null!=e?e:tb(t).autoInterval=t.calculateCategoryInterval()}(t):o,n=sb(t,i)),ab(r,o,{labels:n,labelCategoryInterval:i}))}function rb(t,e){return tb(t)[e]||(tb(t)[e]=[])}function ob(t,e){for(var n=0;n1&&h/l>2&&(u=Math.round(Math.ceil(u/l)*l));var c=Ux(t),p=a.get("showMinLabel")||c,d=a.get("showMaxLabel")||c;p&&u!==o[0]&&g(o[0]);for(var f=u;f<=o[1];f+=l)g(f);function g(t){var e={value:t};s.push(n?t:{formattedLabel:i(e),rawLabel:r.getLabel(e),tickValue:t})}return d&&f-l!==o[1]&&g(o[1]),s}function lb(t,e,n){var i=t.scale,r=Fx(t),o=[];return P(i.getTicks(),(function(t){var a=i.getLabel(t),s=t.value;e(t.value,a)&&o.push(n?s:{formattedLabel:r(t),rawLabel:a,tickValue:s})})),o}var ub=[0,1],hb=function(){function t(t,e,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=e,this._extent=n||[0,0]}return t.prototype.contain=function(t){var e=this._extent,n=Math.min(e[0],e[1]),i=Math.max(e[0],e[1]);return t>=n&&t<=i},t.prototype.containData=function(t){return this.scale.contain(t)},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.getPixelPrecision=function(t){return Ji(t||this.scale.getExtent(),this._extent)},t.prototype.setExtent=function(t,e){var n=this._extent;n[0]=t,n[1]=e},t.prototype.dataToCoord=function(t,e){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&"ordinal"===i.type&&cb(n=n.slice(),i.count()),Yi(t,ub,n,e)},t.prototype.coordToData=function(t,e){var n=this._extent,i=this.scale;this.onBand&&"ordinal"===i.type&&cb(n=n.slice(),i.count());var r=Yi(t,n,ub,e);return this.scale.scale(r)},t.prototype.pointToData=function(t,e){},t.prototype.getTicksCoords=function(t){var e=(t=t||{}).tickModel||this.getTickModel(),n=O(nb(this,e).ticks,(function(t){return{coord:this.dataToCoord("ordinal"===this.scale.type?this.scale.getRawOrdinalNumber(t):t),tickValue:t}}),this);return function(t,e,n,i){var r=e.length;if(!t.onBand||n||!r)return;var o,a,s=t.getExtent();if(1===r)e[0].coord=s[0],o=e[1]={coord:s[0]};else{var l=e[r-1].tickValue-e[0].tickValue,u=(e[r-1].coord-e[0].coord)/l;P(e,(function(t){t.coord-=u/2})),a=1+t.scale.getExtent()[1]-e[r-1].tickValue,o={coord:e[r-1].coord+u*a},e.push(o)}var h=s[0]>s[1];c(e[0].coord,s[0])&&(i?e[0].coord=s[0]:e.shift());i&&c(s[0],e[0].coord)&&e.unshift({coord:s[0]});c(s[1],o.coord)&&(i?o.coord=s[1]:e.pop());i&&c(o.coord,s[1])&&e.push({coord:s[1]});function c(t,e){return t=ji(t),e=ji(e),h?t>e:t0&&t<100||(t=5),O(this.scale.getMinorTicks(t),(function(t){return O(t,(function(t){return{coord:this.dataToCoord(t),tickValue:t}}),this)}),this)},t.prototype.getViewLabels=function(){return eb(this).labels},t.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},t.prototype.getTickModel=function(){return this.model.getModel("axisTick")},t.prototype.getBandWidth=function(){var t=this._extent,e=this.scale.getExtent(),n=e[1]-e[0]+(this.onBand?1:0);0===n&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},t.prototype.calculateCategoryInterval=function(){return function(t){var e=function(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}(t),n=Fx(t),i=(e.axisRotate-e.labelRotate)/180*Math.PI,r=t.scale,o=r.getExtent(),a=r.count();if(o[1]-o[0]<1)return 0;var s=1;a>40&&(s=Math.max(1,Math.floor(a/40)));for(var l=o[0],u=t.dataToCoord(l+1)-t.dataToCoord(l),h=Math.abs(u*Math.cos(i)),c=Math.abs(u*Math.sin(i)),p=0,d=0;l<=o[1];l+=s){var f,g,y=bi(n({value:l}),e.font,"center","top");f=1.3*y.width,g=1.3*y.height,p=Math.max(p,f,7),d=Math.max(d,g,7)}var v=p/h,m=d/c;isNaN(v)&&(v=1/0),isNaN(m)&&(m=1/0);var _=Math.max(0,Math.floor(Math.min(v,m))),x=tb(t.model),b=t.getExtent(),w=x.lastAutoInterval,S=x.lastTickCount;return null!=w&&null!=S&&Math.abs(w-_)<=1&&Math.abs(S-a)<=1&&w>_&&x.axisExtent0===b[0]&&x.axisExtent1===b[1]?_=w:(x.lastTickCount=a,x.lastAutoInterval=_,x.axisExtent0=b[0],x.axisExtent1=b[1]),_}(this)},t}();function cb(t,e){var n=(t[1]-t[0])/e/2;t[0]+=n,t[1]-=n}function pb(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function db(t,e,n,i,r){for(var o=e.length,a=n.length,s=t.newPos,l=s-i,u=0;s+1=i&&l+1>=r){for(var u=[],h=0;h=i&&c+1>=r)return gb(l.components);s[a]=l}else s[a]=void 0}var f;o++}for(;o<=a;){var p=c();if(p)return p}}(t,e,n)}var vb="none",mb=Math.round,_b=Math.sin,xb=Math.cos,bb=Math.PI,wb=2*Math.PI,Sb=180/bb,Mb=1e-4;function Ib(t){return mb(1e3*t)/1e3}function Tb(t){return mb(1e4*t)/1e4}function Cb(t){return t-1e-4}function Db(t,e){e&&Ab(t,"transform","matrix("+Ib(e[0])+","+Ib(e[1])+","+Ib(e[2])+","+Ib(e[3])+","+Tb(e[4])+","+Tb(e[5])+")")}function Ab(t,e,n){(!n||"linear"!==n.type&&"radial"!==n.type)&&t.setAttribute(e,n)}function Lb(t,e,n){var i=null==e.opacity?1:e.opacity;if(n instanceof es)t.style.opacity=i+"";else{if(function(t){var e=t.fill;return null!=e&&e!==vb}(e)){var r=e.fill;Ab(t,"fill",r="transparent"===r?vb:r),Ab(t,"fill-opacity",(null!=e.fillOpacity?e.fillOpacity*i:i)+"")}else Ab(t,"fill",vb);if(function(t){var e=t.stroke;return null!=e&&e!==vb}(e)){var o=e.stroke;Ab(t,"stroke",o="transparent"===o?vb:o);var a=e.lineWidth,s=e.strokeNoScale?n.getLineScale():1;Ab(t,"stroke-width",(s?a/s:0)+""),Ab(t,"paint-order",e.strokeFirst?"stroke":"fill"),Ab(t,"stroke-opacity",(null!=e.strokeOpacity?e.strokeOpacity*i:i)+"");var l=e.lineDash&&a>0&&vy(e.lineDash,a);if(l){var u=e.lineDashOffset;s&&1!==s&&(l=O(l,(function(t){return t/s})),u&&(u=mb(u/=s))),Ab(t,"stroke-dasharray",l.join(",")),Ab(t,"stroke-dashoffset",(u||0)+"")}else Ab(t,"stroke-dasharray","");e.lineCap&&Ab(t,"stroke-linecap",e.lineCap),e.lineJoin&&Ab(t,"stroke-linejoin",e.lineJoin),e.miterLimit&&Ab(t,"stroke-miterlimit",e.miterLimit+"")}else Ab(t,"stroke",vb)}}var kb=function(){function t(){}return t.prototype.reset=function(){this._d=[],this._str=""},t.prototype.moveTo=function(t,e){this._add("M",t,e)},t.prototype.lineTo=function(t,e){this._add("L",t,e)},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){this._add("C",t,e,n,i,r,o)},t.prototype.quadraticCurveTo=function(t,e,n,i){this._add("Q",t,e,n,i)},t.prototype.arc=function(t,e,n,i,r,o){this.ellipse(t,e,n,n,0,i,r,o)},t.prototype.ellipse=function(t,e,n,i,r,o,a,s){var l=0===this._d.length,u=a-o,h=!s,c=Math.abs(u),p=Cb(c-wb)||(h?u>=wb:-u>=wb),d=u>0?u%wb:u%wb+wb,f=!1;f=!!p||!Cb(c)&&d>=bb==!!h;var g=Tb(t+n*xb(o)),y=Tb(e+i*_b(o));p&&(u=h?wb-1e-4:1e-4-wb,f=!0,l&&this._d.push("M",g,y));var v=Tb(t+n*xb(o+u)),m=Tb(e+i*_b(o+u));if(isNaN(g)||isNaN(y)||isNaN(n)||isNaN(i)||isNaN(r)||isNaN(Sb)||isNaN(v)||isNaN(m))return"";this._d.push("A",Tb(n),Tb(i),mb(r*Sb),+f,+h,v,m)},t.prototype.rect=function(t,e,n,i){this._add("M",t,e),this._add("L",t+n,e),this._add("L",t+n,e+i),this._add("L",t,e+i),this._add("L",t,e)},t.prototype.closePath=function(){this._d.length>0&&this._add("Z")},t.prototype._add=function(t,e,n,i,r,o,a,s,l){this._d.push(t);for(var u=1;u=0;--n)if(e[n]===t)return!0;return!1}),i}return null}return n[0]},t.prototype.doUpdate=function(t,e){if(t){var n=this.getDefs(!1);if(t[this._domName]&&n.contains(t[this._domName]))"function"==typeof e&&e(t);else{var i=this.add(t);i&&(t[this._domName]=i)}}},t.prototype.add=function(t){return null},t.prototype.addDom=function(t){var e=this.getDefs(!0);t.parentNode!==e&&e.appendChild(t)},t.prototype.removeDom=function(t){var e=this.getDefs(!1);e&&t[this._domName]&&(e.removeChild(t[this._domName]),t[this._domName]=null)},t.prototype.getDoms=function(){var t=this.getDefs(!1);if(!t)return[];var e=[];return P(this._tagNames,(function(n){for(var i=t.getElementsByTagName(n),r=0;r-1){var s=He(a)[3],l=Xe(a);o.setAttribute("stop-color","#"+l),o.setAttribute("stop-opacity",s+"")}else o.setAttribute("stop-color",n[i].color);e.appendChild(o)}t.__dom=e},e.prototype.markUsed=function(e){if(e.style){var n=e.style.fill;n&&n.__dom&&t.prototype.markDomUsed.call(this,n.__dom),(n=e.style.stroke)&&n.__dom&&t.prototype.markDomUsed.call(this,n.__dom)}},e}(zb);function Gb(t){return t&&(!!t.image||!!t.svgElement)}var Hb=new oy,Wb=function(t){function e(e,n){return t.call(this,e,n,["pattern"],"__pattern_in_use__")||this}return n(e,t),e.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var n=this;P(["fill","stroke"],(function(i){var r=e.style[i];if(Gb(r)){var o=n.getDefs(!0),a=Hb.get(r);a?o.contains(a)||n.addDom(a):a=n.add(r),n.markUsed(e);var s=a.getAttribute("id");t.setAttribute(i,"url(#"+s+")")}}))}},e.prototype.add=function(t){if(Gb(t)){var e=this.createElement("pattern");return t.id=null==t.id?this.nextId++:t.id,e.setAttribute("id","zr"+this._zrId+"-pattern-"+t.id),e.setAttribute("x","0"),e.setAttribute("y","0"),e.setAttribute("patternUnits","userSpaceOnUse"),this.updateDom(t,e),this.addDom(e),e}},e.prototype.update=function(t){if(Gb(t)){var e=this;this.doUpdate(t,(function(){var n=Hb.get(t);e.updateDom(t,n)}))}},e.prototype.updateDom=function(t,e){var n=t.svgElement;if(n instanceof SVGElement)n.parentNode!==e&&(e.innerHTML="",e.appendChild(n),e.setAttribute("width",t.svgWidth+""),e.setAttribute("height",t.svgHeight+""));else{var i=void 0,r=e.getElementsByTagName("image");if(r.length){if(!t.image)return void e.removeChild(r[0]);i=r[0]}else t.image&&(i=this.createElement("image"));if(i){var o=void 0,a=t.image;if("string"==typeof a?o=a:a instanceof HTMLImageElement?o=a.src:a instanceof HTMLCanvasElement&&(o=a.toDataURL()),o){i.setAttribute("href",o),i.setAttribute("x","0"),i.setAttribute("y","0");var s=no(o,i,{dirty:function(){}},(function(t){e.setAttribute("width",t.width+""),e.setAttribute("height",t.height+"")}));s&&s.width&&s.height&&(e.setAttribute("width",s.width+""),e.setAttribute("height",s.height+"")),e.appendChild(i)}}}var l="translate("+(t.x||0)+", "+(t.y||0)+") rotate("+(t.rotation||0)/Math.PI*180+") scale("+(t.scaleX||1)+", "+(t.scaleY||1)+")";e.setAttribute("patternTransform",l),Hb.set(t,e)},e.prototype.markUsed=function(e){e.style&&(Gb(e.style.fill)&&t.prototype.markDomUsed.call(this,Hb.get(e.style.fill)),Gb(e.style.stroke)&&t.prototype.markDomUsed.call(this,Hb.get(e.style.stroke)))},e}(zb);function Ub(t){var e=t.__clipPaths;return e&&e.length>0}var Xb=function(t){function e(e,n){var i=t.call(this,e,n,"clipPath","__clippath_in_use__")||this;return i._refGroups={},i._keyDuplicateCount={},i}return n(e,t),e.prototype.markAllUnused=function(){for(var e in t.prototype.markAllUnused.call(this),this._refGroups)this.markDomUnused(this._refGroups[e]);this._keyDuplicateCount={}},e.prototype._getClipPathGroup=function(t,e){if(Ub(t)){var n=t.__clipPaths,i=this._keyDuplicateCount,r=function(t){var e=[];if(t)for(var n=0;n0){var n=this.getDefs(!0),i=e[0],r=void 0,o=void 0;i._dom?(o=i._dom.getAttribute("id"),r=i._dom,n.contains(r)||n.appendChild(r)):(o="zr"+this._zrId+"-clip-"+this.nextId,++this.nextId,(r=this.createElement("clipPath")).setAttribute("id",o),n.appendChild(r),i._dom=r),this.getSvgProxy(i).brush(i);var a=this.getSvgElement(i);r.innerHTML="",r.appendChild(a),t.setAttribute("clip-path","url(#"+o+")"),e.length>1&&this.updateDom(r,e.slice(1))}else t&&t.setAttribute("clip-path","none")},e.prototype.markUsed=function(e){var n=this;e.__clipPaths&&P(e.__clipPaths,(function(e){e._dom&&t.prototype.markDomUsed.call(n,e._dom)}))},e.prototype.removeUnused=function(){t.prototype.removeUnused.call(this);var e={};for(var n in this._refGroups){var i=this._refGroups[n];this.isDomUnused(i)?i.parentNode&&i.parentNode.removeChild(i):e[n]=i}this._refGroups=e},e}(zb),Yb=function(t){function e(e,n){var i=t.call(this,e,n,["filter"],"__filter_in_use__","_shadowDom")||this;return i._shadowDomMap={},i._shadowDomPool=[],i}return n(e,t),e.prototype._getFromPool=function(){var t=this._shadowDomPool.pop();if(!t){(t=this.createElement("filter")).setAttribute("id","zr"+this._zrId+"-shadow-"+this.nextId++);var e=this.createElement("feDropShadow");t.appendChild(e),this.addDom(t)}return t},e.prototype.update=function(t,e){if(function(t){return t&&(t.shadowBlur||t.shadowOffsetX||t.shadowOffsetY)}(e.style)){var n=function(t){var e=t.style,n=t.getGlobalScale();return[e.shadowColor,(e.shadowBlur||0).toFixed(2),(e.shadowOffsetX||0).toFixed(2),(e.shadowOffsetY||0).toFixed(2),n[0],n[1]].join(",")}(e),i=e._shadowDom=this._shadowDomMap[n];i||(i=this._getFromPool(),this._shadowDomMap[n]=i),this.updateDom(t,e,i)}else this.remove(t,e)},e.prototype.remove=function(t,e){null!=e._shadowDom&&(e._shadowDom=null,t.style.filter="")},e.prototype.updateDom=function(t,e,n){var i=n.children[0],r=e.style,o=e.getGlobalScale(),a=o[0],s=o[1];if(a&&s){var l=r.shadowOffsetX||0,u=r.shadowOffsetY||0,h=r.shadowBlur,c=r.shadowColor;i.setAttribute("dx",l/a+""),i.setAttribute("dy",u/s+""),i.setAttribute("flood-color",c);var p=h/2/a+" "+h/2/s;i.setAttribute("stdDeviation",p),n.setAttribute("x","-100%"),n.setAttribute("y","-100%"),n.setAttribute("width","300%"),n.setAttribute("height","300%"),e._shadowDom=n;var d=n.getAttribute("id");t.style.filter="url(#"+d+")"}},e.prototype.removeUnused=function(){if(this.getDefs(!1)){var t=this._shadowDomPool;for(var e in this._shadowDomMap){var n=this._shadowDomMap[e];t.push(n)}this._shadowDomMap={}}},e}(zb);function Zb(t){return parseInt(t,10)}function jb(t){return t instanceof Ka?Pb:t instanceof es?Ob:t instanceof Ja?Nb:Pb}function qb(t,e){return e&&t&&e.parentNode!==t}function Kb(t,e,n){if(qb(t,e)&&n){var i=n.nextSibling;i?t.insertBefore(e,i):t.appendChild(e)}}function $b(t,e){if(qb(t,e)){var n=t.firstChild;n?t.insertBefore(e,n):t.appendChild(e)}}function Jb(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)}function Qb(t){return t.__svgEl}var tw=function(){function t(t,e,n,i){this.type="svg",this.refreshHover=ew("refreshHover"),this.pathToImage=ew("pathToImage"),this.configLayer=ew("configLayer"),this.root=t,this.storage=e,this._opts=n=I({},n||{});var r=pb("svg");r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns","http://www.w3.org/2000/svg"),r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),r.setAttribute("version","1.1"),r.setAttribute("baseProfile","full"),r.style.cssText="user-select:none;position:absolute;left:0;top:0;";var o=pb("g");r.appendChild(o);var a=pb("g");r.appendChild(a),this._gradientManager=new Fb(i,a),this._patternManager=new Wb(i,a),this._clipPathManager=new Xb(i,a),this._shadowManager=new Yb(i,a);var s=document.createElement("div");s.style.cssText="overflow:hidden;position:relative",this._svgDom=r,this._svgRoot=a,this._backgroundRoot=o,this._viewport=s,t.appendChild(s),s.appendChild(r),this.resize(n.width,n.height),this._visibleList=[]}return t.prototype.getType=function(){return"svg"},t.prototype.getViewportRoot=function(){return this._viewport},t.prototype.getSvgDom=function(){return this._svgDom},t.prototype.getSvgRoot=function(){return this._svgRoot},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.refresh=function(){var t=this.storage.getDisplayList(!0);this._paintList(t)},t.prototype.setBackgroundColor=function(t){this._backgroundRoot&&this._backgroundNode&&this._backgroundRoot.removeChild(this._backgroundNode);var e=pb("rect");e.setAttribute("width",this.getWidth()),e.setAttribute("height",this.getHeight()),e.setAttribute("x",0),e.setAttribute("y",0),e.setAttribute("id",0),e.style.fill=t,this._backgroundRoot.appendChild(e),this._backgroundNode=e},t.prototype.createSVGElement=function(t){return pb(t)},t.prototype.paintOne=function(t){var e=jb(t);return e&&e.brush(t),Qb(t)},t.prototype._paintList=function(t){var e=this._gradientManager,n=this._patternManager,i=this._clipPathManager,r=this._shadowManager;e.markAllUnused(),n.markAllUnused(),i.markAllUnused(),r.markAllUnused();for(var o=this._svgRoot,a=this._visibleList,s=t.length,l=[],u=0;u\n\r<"))},t}();function ew(t){return function(){b('In SVG mode painter not support method "'+t+'"')}}function nw(){return!1}function iw(t,e,n){var i=C(),r=e.getWidth(),o=e.getHeight(),a=i.style;return a&&(a.position="absolute",a.left="0",a.top="0",a.width=r+"px",a.height=o+"px",i.setAttribute("data-zr-dom-id",t)),i.width=r*n,i.height=o*n,i}var rw=function(t){function e(e,n,i){var r,o=t.call(this)||this;o.motionBlur=!1,o.lastFrameAlpha=.7,o.dpr=1,o.virtual=!1,o.config={},o.incremental=!1,o.zlevel=0,o.maxRepaintRectCount=5,o.__dirty=!0,o.__firstTimePaint=!0,o.__used=!1,o.__drawIndex=0,o.__startIndex=0,o.__endIndex=0,o.__prevStartIndex=null,o.__prevEndIndex=null,i=i||En,"string"==typeof e?r=iw(e,n,i):X(e)&&(e=(r=e).id),o.id=e,o.dom=r;var a=r.style;return a&&(r.onselectstart=nw,a.webkitUserSelect="none",a.userSelect="none",a.webkitTapHighlightColor="rgba(0,0,0,0)",a["-webkit-touch-callout"]="none",a.padding="0",a.margin="0",a.borderWidth="0"),o.domBack=null,o.ctxBack=null,o.painter=n,o.config=null,o.dpr=i,o}return n(e,t),e.prototype.getElementCount=function(){return this.__endIndex-this.__startIndex},e.prototype.afterBrush=function(){this.__prevStartIndex=this.__startIndex,this.__prevEndIndex=this.__endIndex},e.prototype.initContext=function(){this.ctx=this.dom.getContext("2d"),this.ctx.dpr=this.dpr},e.prototype.setUnpainted=function(){this.__firstTimePaint=!0},e.prototype.createBackBuffer=function(){var t=this.dpr;this.domBack=iw("back-"+this.id,this.painter,t),this.ctxBack=this.domBack.getContext("2d"),1!==t&&this.ctxBack.scale(t,t)},e.prototype.createRepaintRects=function(t,e,n,i){if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;var r,o=[],a=this.maxRepaintRectCount,s=!1,l=new gi(0,0,0,0);function u(t){if(t.isFinite()&&!t.isZero())if(0===o.length){(e=new gi(0,0,0,0)).copy(t),o.push(e)}else{for(var e,n=!1,i=1/0,r=0,u=0;u=a)}}for(var h=this.__startIndex;h15)break}n.prevElClipPaths&&u.restore()};if(p)if(0===p.length)s=l.__endIndex;else for(var x=d.dpr,b=0;b0&&t>i[0]){for(s=0;st);s++);a=n[i[s]]}if(i.splice(s+1,0,t),n[t]=e,!e.virtual)if(a){var l=a.dom;l.nextSibling?o.insertBefore(e.dom,l.nextSibling):o.appendChild(e.dom)}else o.firstChild?o.insertBefore(e.dom,o.firstChild):o.appendChild(e.dom);e.__painter=this}else b("Layer of zlevel "+t+" is not valid")},t.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i0?sw:0),this._needsManuallyCompositing),u.__builtin__||b("ZLevel "+l+" has been used by unkown layer "+u.id),u!==o&&(u.__used=!0,u.__startIndex!==r&&(u.__dirty=!0),u.__startIndex=r,u.incremental?u.__drawIndex=-1:u.__drawIndex=r,e(r),o=u),1&s.__dirty&&!s.__inHover&&(u.__dirty=!0,u.incremental&&u.__drawIndex<0&&(u.__drawIndex=r))}e(r),this.eachBuiltinLayer((function(t,e){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)}))},t.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},t.prototype._clearLayer=function(t){t.clear()},t.prototype.setBackgroundColor=function(t){this._backgroundColor=t,P(this._layers,(function(t){t.setUnpainted()}))},t.prototype.configLayer=function(t,e){if(e){var n=this._layerConfig;n[t]?S(n[t],e,!0):n[t]=e;for(var i=0;i-1&&(s.style.stroke=s.style.fill,s.style.fill="#fff",s.style.lineWidth=2),e},e.type="series.line",e.dependencies=["grid","polar"],e.defaultOption={zlevel:0,z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0,lineStyle:{width:"bolder"}},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0},e}(ff);function cw(t,e){var n=t.mapDimensionsAll("defaultedLabel"),i=n.length;if(1===i){var r=Md(t,e,n[0]);return null!=r?r+"":null}if(i){for(var o=[],a=0;a0?n=i[0]:i[1]<0&&(n=i[1]);return n}(r,n),a=i.dim,s=r.dim,l=e.mapDimension(s),u=e.mapDimension(a),h="x"===s||"radius"===s?1:0,c=O(t.dimensions,(function(t){return e.mapDimension(t)})),p=!1,d=e.getCalculationInfo("stackResultDimension");return V_(e,c[0])&&(p=!0,c[0]=d),V_(e,c[1])&&(p=!0,c[1]=d),{dataDimsForPoint:c,valueStart:o,valueAxisDim:s,baseAxisDim:a,stacked:!!p,valueDim:l,baseDim:u,baseDataOffset:h,stackedOverDimension:e.getCalculationInfo("stackedOverDimension")}}function xw(t,e,n,i){var r=NaN;t.stacked&&(r=n.get(n.getCalculationInfo("stackedOverDimension"),i)),isNaN(r)&&(r=t.valueStart);var o=t.baseDataOffset,a=[];return a[o]=n.get(t.baseDim,i),a[1-o]=r,e.dataToPoint(a)}var bw="undefined"!=typeof Float32Array,ww=bw?Float32Array:Array;function Sw(t){return F(t)?bw?new Float32Array(t):t:new ww(t)}var Mw=Math.min,Iw=Math.max;function Tw(t,e){return isNaN(t)||isNaN(e)}function Cw(t,e,n,i,r,o,a,s,l){for(var u,h,c,p,d,f,g=n,y=0;y=r||g<0)break;if(Tw(v,m)){if(l){g+=o;continue}break}if(g===n)t[o>0?"moveTo":"lineTo"](v,m),c=v,p=m;else{var _=v-u,x=m-h;if(_*_+x*x<.5){g+=o;continue}if(a>0){var b=g+o,w=e[2*b],S=e[2*b+1],M=y+1;if(l)for(;Tw(w,S)&&M=i||Tw(w,S))d=v,f=m;else{T=w-u,C=S-h;var L=v-u,k=w-v,P=m-h,O=S-m,R=void 0,N=void 0;"x"===s?(R=Math.abs(L),N=Math.abs(k),d=v-R*a,f=m,D=v+R*a,A=m):"y"===s?(R=Math.abs(P),N=Math.abs(O),d=v,f=m-R*a,D=v,A=m+R*a):(R=Math.sqrt(L*L+P*P),d=v-T*a*(1-(I=(N=Math.sqrt(k*k+O*O))/(N+R))),f=m-C*a*(1-I),A=m+C*a*I,D=Mw(D=v+T*a*I,Iw(w,v)),A=Mw(A,Iw(S,m)),D=Iw(D,Mw(w,v)),f=m-(C=(A=Iw(A,Mw(S,m)))-m)*R/N,d=Mw(d=v-(T=D-v)*R/N,Iw(u,v)),f=Mw(f,Iw(h,m)),D=v+(T=v-(d=Iw(d,Mw(u,v))))*N/R,A=m+(C=m-(f=Iw(f,Mw(h,m))))*N/R)}t.bezierCurveTo(c,p,d,f,v,m),c=D,p=A}else t.lineTo(v,m)}u=v,h=m,g+=o}return y}var Dw=function(){this.smooth=0,this.smoothConstraint=!0},Aw=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polyline",n}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Dw},e.prototype.buildPath=function(t,e){var n=e.points,i=0,r=n.length/2;if(e.connectNulls){for(;r>0&&Tw(n[2*r-2],n[2*r-1]);r--);for(;i=0){var y=a?(h-i)*g+i:(u-n)*g+n;return a?[t,y]:[y,t]}n=u,i=h;break;case o.C:u=r[l++],h=r[l++],c=r[l++],p=r[l++],d=r[l++],f=r[l++];var v=a?Bo(n,u,c,d,t,s):Bo(i,h,p,f,t,s);if(v>0)for(var m=0;m=0){y=a?Eo(i,h,p,f,_):Eo(n,u,c,d,_);return a?[t,y]:[y,t]}}n=d,i=f}}},e}(Ka),Lw=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e}(Dw),kw=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polygon",n}return n(e,t),e.prototype.getDefaultShape=function(){return new Lw},e.prototype.buildPath=function(t,e){var n=e.points,i=e.stackedOnPoints,r=0,o=n.length/2,a=e.smoothMonotone;if(e.connectNulls){for(;o>0&&Tw(n[2*o-2],n[2*o-1]);o--);for(;ri)return!1;return!0}(o,e))){var a=e.mapDimension(o.dim),s={};return P(o.getViewLabels(),(function(t){var e=o.scale.getRawOrdinalNumber(t.tickValue);s[e]=1})),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function Hw(t,e){return[t[2*e],t[2*e+1]]}function Ww(t,e,n,i){if(Nw(e,"cartesian2d")){var r=i.getModel("endLabel"),o=r.get("show"),a=r.get("valueAnimation"),s=i.getData(),l={lastFrameIndex:0},u=o?function(n,i){t._endLabelOnDuring(n,i,s,l,a,r,e)}:null,h=e.getBaseAxis().isHorizontal(),c=Pw(e,n,i,(function(){var e=t._endLabel;e&&n&&null!=l.originalX&&e.attr({x:l.originalX,y:l.originalY})}),u);if(!i.get("clip",!0)){var p=c.shape,d=Math.max(p.width,p.height);h?(p.y-=d,p.height+=2*d):(p.x-=d,p.width+=2*d)}return u&&u(1,c),c}return Ow(e,n,i)}var Uw=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(){var t=new Ei,e=new mw;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},e.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem,o=this.group,a=t.getData(),s=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=a.getLayout("points")||[],h="polar"===r.type,c=this._coordSys,p=this._symbolDraw,d=this._polyline,f=this._polygon,g=this._lineGroup,y=t.get("animation"),v=!l.isEmpty(),m=l.get("origin"),_=_w(r,a,m),x=v&&function(t,e,n){if(!n.valueDim)return[];for(var i=e.count(),r=Sw(2*i),o=0;o=0;o--){var a=n[o].dimension,s=t.dimensions[a],l=t.getDimensionInfo(s);if("x"===(i=l&&l.coordDim)||"y"===i){r=n[o];break}}if(r){var u=e.getAxis(i),h=O(r.stops,(function(t){return{offset:0,coord:u.toGlobalCoord(u.dataToCoord(t.value,!0)),color:t.color}})),c=h.length,p=r.outerColors.slice();c&&h[0].coord>h[c-1].coord&&(h.reverse(),p.reverse());var d=h[0].coord-10,f=h[c-1].coord+10,g=f-d;if(g<.001)return"transparent";P(h,(function(t){t.offset=(t.coord-d)/g})),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new mu(0,0,0,0,h,!0);return y[i]=d,y[i+"2"]=f,y}}}(a,r)||a.getVisual("style")[a.getVisual("drawType")];d&&c.type===r.type&&I===this._step?(v&&!f?f=this._newPolygon(u,x):f&&!v&&(g.remove(f),f=this._polygon=null),h||this._initOrUpdateEndLabel(t,r,kc(C)),g.setClipPath(Ww(this,r,!1,t)),b&&p.updateData(a,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),zw(this._stackedOnPoints,x)&&zw(this._points,u)||(y?this._doUpdateAnimation(a,x,r,n,I,m):(I&&(u=Fw(u,r,I),x&&(x=Fw(x,r,I))),d.setShape({points:u}),f&&f.setShape({points:u,stackedOnPoints:x})))):(b&&p.updateData(a,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),y&&this._initSymbolLabelAnimation(a,r,M),I&&(u=Fw(u,r,I),x&&(x=Fw(x,r,I))),d=this._newPolyline(u),v&&(f=this._newPolygon(u,x)),h||this._initOrUpdateEndLabel(t,r,kc(C)),g.setClipPath(Ww(this,r,!0,t)));var D=t.get(["emphasis","focus"]),A=t.get(["emphasis","blurScope"]);(d.useStyle(T(s.getLineStyle(),{fill:"none",stroke:C,lineJoin:"bevel"})),cl(d,t,"lineStyle"),d.style.lineWidth>0&&"bolder"===t.get(["emphasis","lineStyle","width"]))&&(d.getState("emphasis").style.lineWidth=+d.style.lineWidth+1);_s(d).seriesIndex=t.seriesIndex,sl(d,D,A);var L=Bw(t.get("smooth")),k=t.get("smoothMonotone"),R=t.get("connectNulls");if(d.setShape({smooth:L,smoothMonotone:k,connectNulls:R}),f){var N=a.getCalculationInfo("stackedOnSeries"),z=0;f.useStyle(T(l.getAreaStyle(),{fill:C,opacity:.7,lineJoin:"bevel",decal:a.getVisual("style").decal})),N&&(z=Bw(N.get("smooth"))),f.setShape({smooth:L,stackedOnSmooth:z,smoothMonotone:k,connectNulls:R}),cl(f,t,"areaStyle"),_s(f).seriesIndex=t.seriesIndex,sl(f,D,A)}var E=function(t){i._changePolyState(t)};a.eachItemGraphicEl((function(t){t&&(t.onHoverStateChange=E)})),this._polyline.onHoverStateChange=E,this._data=a,this._coordSys=r,this._stackedOnPoints=x,this._points=u,this._step=I,this._valueOrigin=m},e.prototype.dispose=function(){},e.prototype.highlight=function(t,e,n,i){var r=t.getData(),o=Lr(r,i);if(this._changePolyState("emphasis"),!(o instanceof Array)&&null!=o&&o>=0){var a=r.getLayout("points"),s=r.getItemGraphicEl(o);if(!s){var l=a[2*o],u=a[2*o+1];if(isNaN(l)||isNaN(u))return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(l,u))return;var h=t.get("zlevel"),c=t.get("z");(s=new dw(r,o)).x=l,s.y=u,s.setZ(h,c);var p=s.getSymbolPath().getTextContent();p&&(p.zlevel=h,p.z=c,p.z2=this._polyline.z2+1),s.__temp=!0,r.setItemGraphicEl(o,s),s.stopSymbolAnimation(!0),this.group.add(s)}s.highlight()}else Tf.prototype.highlight.call(this,t,e,n,i)},e.prototype.downplay=function(t,e,n,i){var r=t.getData(),o=Lr(r,i);if(this._changePolyState("normal"),null!=o&&o>=0){var a=r.getItemGraphicEl(o);a&&(a.__temp?(r.setItemGraphicEl(o,null),this.group.remove(a)):a.downplay())}else Tf.prototype.downplay.call(this,t,e,n,i)},e.prototype._changePolyState=function(t){var e=this._polygon;Ws(this._polyline,t),e&&Ws(e,t)},e.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new Aw({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e,e},e.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new kw({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},e.prototype._initSymbolLabelAnimation=function(t,e,n){var i,r,o=e.getBaseAxis(),a=o.inverse;"cartesian2d"===e.type?(i=o.isHorizontal(),r=!1):"polar"===e.type&&(i="angle"===o.dim,r=!0);var s=t.hostModel,l=s.get("animationDuration");"function"==typeof l&&(l=l(null));var u=s.get("animationDelay")||0,h="function"==typeof u?u(null):u;t.eachItemGraphicEl((function(t,o){var s=t;if(s){var c=[t.x,t.y],p=void 0,d=void 0,f=void 0;if(n)if(r){var g=n,y=e.pointToCoord(c);i?(p=g.startAngle,d=g.endAngle,f=-y[1]/180*Math.PI):(p=g.r0,d=g.r,f=y[0])}else{var v=n;i?(p=v.x,d=v.x+v.width,f=t.x):(p=v.y+v.height,d=v.y,f=t.y)}var m=d===p?0:(f-p)/(d-p);a&&(m=1-m);var _="function"==typeof u?u(o):l*m+h,x=s.getSymbolPath(),b=x.getTextContent();s.attr({scaleX:0,scaleY:0}),s.animateTo({scaleX:1,scaleY:1},{duration:200,delay:_}),b&&b.animateFrom({style:{opacity:0}},{duration:300,delay:_}),x.disableLabelAnimation=!0}}))},e.prototype._initOrUpdateEndLabel=function(t,e,n){var i=t.getModel("endLabel");if(i.get("show")){var r=t.getData(),o=this._polyline,a=this._endLabel;a||((a=this._endLabel=new cs({z2:200})).ignoreClip=!0,o.setTextContent(this._endLabel),o.disableLabelAnimation=!0);var s=function(t){for(var e,n,i=t.length/2;i>0&&(e=t[2*i-2],n=t[2*i-1],isNaN(e)||isNaN(n));i--);return i-1}(r.getLayout("points"));s>=0&&(hh(o,ch(t,"endLabel"),{inheritColor:n,labelFetcher:t,labelDataIndex:s,defaultText:function(t,e,n){return null!=n?pw(r,n):cw(r,t)},enableTextSetter:!0},function(t,e){var n=e.getBaseAxis(),i=n.isHorizontal(),r=n.inverse,o=i?r?"right":"left":"center",a=i?"middle":r?"top":"bottom";return{normal:{align:t.get("align")||o,verticalAlign:t.get("verticalAlign")||a}}}(i,e)),o.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},e.prototype._endLabelOnDuring=function(t,e,n,i,r,o,a){var s=this._endLabel,l=this._polyline;if(s){t<1&&null==i.originalX&&(i.originalX=s.x,i.originalY=s.y);var u=n.getLayout("points"),h=n.hostModel,c=h.get("connectNulls"),p=o.get("precision"),d=o.get("distance")||0,f=a.getBaseAxis(),g=f.isHorizontal(),y=f.inverse,v=e.shape,m=y?g?v.x:v.y+v.height:g?v.x+v.width:v.y,_=(g?d:0)*(y?-1:1),x=(g?0:-d)*(y?-1:1),b=g?"x":"y",w=function(t,e,n){for(var i,r,o=t.length/2,a="x"===n?0:1,s=0,l=-1,u=0;u=e||i>=e&&r<=e){l=u;break}s=u,i=r}else i=r;return{range:[s,l],t:(e-i)/(r-i)}}(u,m,b),S=w.range,M=S[1]-S[0],I=void 0;if(M>=1){if(M>1&&!c){var T=Hw(u,S[0]);s.attr({x:T[0]+_,y:T[1]+x}),r&&(I=h.getRawValue(S[0]))}else{(T=l.getPointOn(m,b))&&s.attr({x:T[0]+_,y:T[1]+x});var C=h.getRawValue(S[0]),D=h.getRawValue(S[1]);r&&(I=Fr(n,p,C,D,w.t))}i.lastFrameIndex=S[0]}else{var A=1===t||i.lastFrameIndex>0?S[0]:0;T=Hw(u,A);r&&(I=h.getRawValue(A)),s.attr({x:T[0]+_,y:T[1]+x})}r&&_h(s).setLabelText(I)}},e.prototype._doUpdateAnimation=function(t,e,n,i,r,o){var a=this._polyline,s=this._polygon,l=t.hostModel,u=function(t,e,n,i,r,o,a,s){for(var l=function(t,e){var n=[];return e.diff(t).add((function(t){n.push({cmd:"+",idx:t})})).update((function(t,e){n.push({cmd:"=",idx:e,idx1:t})})).remove((function(t){n.push({cmd:"-",idx:t})})).execute(),n}(t,e),u=[],h=[],c=[],p=[],d=[],f=[],g=[],y=_w(r,e,a),v=t.getLayout("points")||[],m=e.getLayout("points")||[],_=0;_3e3||s&&Vw(c,d)>3e3)return a.setShape({points:p}),void(s&&s.setShape({points:p,stackedOnPoints:d}));a.shape.__points=u.current,a.shape.points=h;var f={shape:{points:p}};u.current!==h&&(f.shape.__points=u.next),a.stopAnimation(),Hu(a,f,l),s&&(s.setShape({points:h,stackedOnPoints:c}),s.stopAnimation(),Hu(s,{shape:{stackedOnPoints:d}},l),a.shape.points!==s.shape.points&&(s.shape.points=a.shape.points));for(var g=[],y=u.status,v=0;ve&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;n10&&"cartesian2d"===o.type&&r){var s=o.getBaseAxis(),l=o.getOtherAxis(s),u=s.getExtent(),h=n.getDevicePixelRatio(),c=Math.abs(u[1]-u[0])*(h||1),p=Math.round(a/c);if(p>1){"lttb"===r&&t.setData(i.lttbDownSample(i.mapDimension(l.dim),1/p));var d=void 0;"string"==typeof r?d=Yw[r]:"function"==typeof r&&(d=r),d&&t.setData(i.downSample(i.mapDimension(l.dim),1/p,d,Zw))}}}}}var qw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(t,e){return F_(this.getSource(),this,{useEncodeDefaulter:!0})},e.prototype.getMarkerPosition=function(t){var e=this.coordinateSystem;if(e){var n=e.dataToPoint(e.clampData(t)),i=this.getData(),r=i.getLayout("offset"),o=i.getLayout("size");return n[e.getBaseAxis().isHorizontal()?0:1]+=r+o/2,n}return[NaN,NaN]},e.type="series.__base_bar__",e.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},e}(ff);ff.registerClass(qw);var Kw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(){return F_(this.getSource(),this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},e.prototype.getProgressive=function(){return!!this.get("large")&&this.get("progressive")},e.prototype.getProgressiveThreshold=function(){var t=this.get("progressiveThreshold"),e=this.get("largeThreshold");return e>t&&(t=e),t},e.prototype.brushSelector=function(t,e,n){return n.rect(e.getItemLayout(t))},e.type="series.bar",e.dependencies=["grid","polar"],e.defaultOption=zh(qw.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),e}(qw),$w=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},Jw=function(t){function e(e){var n=t.call(this,e)||this;return n.type="sausage",n}return n(e,t),e.prototype.getDefaultShape=function(){return new $w},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r0||0,0),o=Math.max(e.r,0),a=.5*(o-r),s=r+a,l=e.startAngle,u=e.endAngle,h=e.clockwise,c=Math.cos(l),p=Math.sin(l),d=Math.cos(u),f=Math.sin(u);(h?u-l<2*Math.PI:l-u<2*Math.PI)&&(t.moveTo(c*r+n,p*r+i),t.arc(c*s+n,p*s+i,a,-Math.PI+l,l,!h)),t.arc(n,i,o,l,u,!h),t.moveTo(d*o+n,f*o+i),t.arc(d*s+n,f*s+i,a,u-2*Math.PI,u-Math.PI,!h),0!==r&&(t.arc(n,i,r,u,l,h),t.moveTo(c*r+n,f*r+i)),t.closePath()},e}(Ka),Qw=[0,0],tS=Math.max,eS=Math.min;var nS=function(t){function e(){var n=t.call(this)||this;return n.type=e.type,n._isFirstFrame=!0,n}return n(e,t),e.prototype.render=function(t,e,n,i){this._model=t,this._removeOnRenderedListener(n),this._updateDrawMode(t);var r=t.get("coordinateSystem");("cartesian2d"===r||"polar"===r)&&(this._isLargeDraw?this._renderLarge(t,e,n):this._renderNormal(t,e,n,i))},e.prototype.incrementalPrepareRender=function(t){this._clear(),this._updateDrawMode(t),this._updateLargeClip(t)},e.prototype.incrementalRender=function(t,e){this._incrementalRenderLarge(t,e)},e.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},e.prototype._renderNormal=function(t,e,n,i){var r,o=this.group,a=t.getData(),s=this._data,l=t.coordinateSystem,u=l.getBaseAxis();"cartesian2d"===l.type?r=u.isHorizontal():"polar"===l.type&&(r="angle"===u.dim);var h=t.isAnimationEnabled()?t:null,c=function(t,e){var n=t.get("realtimeSort",!0),i=e.getBaseAxis();0;if(n&&"category"===i.type&&"cartesian2d"===e.type)return{baseAxis:i,otherAxis:e.getOtherAxis(i)}}(t,l);c&&this._enableRealtimeSort(c,a,n);var p=t.get("clip",!0)||c,d=function(t,e){var n=t.getArea&&t.getArea();if(Nw(t,"cartesian2d")){var i=t.getBaseAxis();if("category"!==i.type||!i.onBand){var r=e.getLayout("bandWidth");i.isHorizontal()?(n.x-=r,n.width+=2*r):(n.y-=r,n.height+=2*r)}}return n}(l,a);o.removeClipPath();var f=t.get("roundCap",!0),g=t.get("showBackground",!0),y=t.getModel("backgroundStyle"),v=y.get("borderRadius")||0,m=[],_=this._backgroundEls,x=i&&i.isInitSort,b=i&&"changeAxisOrder"===i.type;function w(t){var e=aS[l.type](a,t),n=function(t,e,n){return new("polar"===t.type?Jl:ls)({shape:pS(e,n,t),silent:!0,z2:0})}(l,r,e);return n.useStyle(y.getItemStyle()),"cartesian2d"===l.type&&n.setShape("r",v),m[t]=n,n}a.diff(s).add((function(e){var n=a.getItemModel(e),i=aS[l.type](a,e,n);if(g&&w(e),a.hasValue(e)){var s=!1;p&&(s=iS[l.type](d,i));var y=rS[l.type](t,a,e,i,r,h,u.model,!1,f);sS(y,a,e,n,i,t,r,"polar"===l.type),x?y.attr({shape:i}):c?oS(c,h,y,i,e,r,!1,!1):Wu(y,{shape:i},t,e),a.setItemGraphicEl(e,y),o.add(y),y.ignore=s}})).update((function(e,n){var i=a.getItemModel(e),S=aS[l.type](a,e,i);if(g){var M=void 0;0===_.length?M=w(n):((M=_[n]).useStyle(y.getItemStyle()),"cartesian2d"===l.type&&M.setShape("r",v),m[e]=M);var I=aS[l.type](a,e);Hu(M,{shape:pS(r,I,l)},h,e)}var T=s.getItemGraphicEl(n);if(!a.hasValue(e))return o.remove(T),void(T=null);var C=!1;p&&(C=iS[l.type](d,S))&&o.remove(T),T||(T=rS[l.type](t,a,e,S,r,h,u.model,!!T,f)),b||sS(T,a,e,i,S,t,r,"polar"===l.type),x?T.attr({shape:S}):c?oS(c,h,T,S,e,r,!0,b):Hu(T,{shape:S},t,e,null),a.setItemGraphicEl(e,T),T.ignore=C,o.add(T)})).remove((function(e){var n=s.getItemGraphicEl(e);n&&Yu(n,t,e)})).execute();var S=this._backgroundGroup||(this._backgroundGroup=new Ei);S.removeAll();for(var M=0;Mo)return!0;o=u}return!1},e.prototype._isOrderDifferentInView=function(t,e){for(var n=e.scale,i=n.getExtent(),r=Math.max(0,i[0]),o=Math.min(i[1],n.getOrdinalMeta().categories.length-1);r<=o;++r)if(t.ordinalNumbers[r]!==n.getRawOrdinalNumber(r))return!0},e.prototype._updateSortWithinSameData=function(t,e,n,i){if(this._isOrderChangedWithinSameData(t,e,n)){var r=this._dataSort(t,n,e);this._isOrderDifferentInView(r,n)&&(this._removeOnRenderedListener(i),i.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:r}))}},e.prototype._dispatchInitSort=function(t,e,n){var i=e.baseAxis,r=this._dataSort(t,i,(function(n){return t.get(t.mapDimension(e.otherAxis.dim),n)}));n.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",isInitSort:!0,axisId:i.index,sortInfo:r,animation:{duration:0}})},e.prototype.remove=function(t,e){this._clear(this._model),this._removeOnRenderedListener(e)},e.prototype.dispose=function(t,e){this._removeOnRenderedListener(e)},e.prototype._removeOnRenderedListener=function(t){this._onRendered&&(t.getZr().off("rendered",this._onRendered),this._onRendered=null)},e.prototype._clear=function(t){var e=this.group,n=this._data;t&&t.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl((function(e){Yu(e,t,_s(e).dataIndex)}))):e.removeAll(),this._data=null,this._isFirstFrame=!0},e.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},e.type="bar",e}(Tf),iS={cartesian2d:function(t,e){var n=e.width<0?-1:1,i=e.height<0?-1:1;n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height);var r=t.x+t.width,o=t.y+t.height,a=tS(e.x,t.x),s=eS(e.x+e.width,r),l=tS(e.y,t.y),u=eS(e.y+e.height,o),h=sr?s:a,e.y=c&&l>o?u:l,e.width=h?0:s-a,e.height=c?0:u-l,n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height),h||c},polar:function(t,e){var n=e.r0<=e.r?1:-1;if(n<0){var i=e.r;e.r=e.r0,e.r0=i}var r=eS(e.r,t.r),o=tS(e.r0,t.r0);e.r=r,e.r0=o;var a=r-o<0;if(n<0){i=e.r;e.r=e.r0,e.r0=i}return a}},rS={cartesian2d:function(t,e,n,i,r,o,a,s,l){var u=new ls({shape:I({},i),z2:1});(u.__dataIndex=n,u.name="item",o)&&(u.shape[r?"height":"width"]=0);return u},polar:function(t,e,n,i,r,o,a,s,l){var u=i.startAngle0?1:-1,a=i.height>0?1:-1;return{x:i.x+o*r/2,y:i.y+a*r/2,width:i.width-o*r,height:i.height-a*r}},polar:function(t,e,n){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle}}};function sS(t,e,n,i,r,o,a,s){var l=e.getItemVisual(n,"style");s||t.setShape("r",i.get(["itemStyle","borderRadius"])||0),t.useStyle(l);var u=i.getShallow("cursor");if(u&&t.attr("cursor",u),!s){var h=a?r.height>0?"bottom":"top":r.width>0?"left":"right",c=ch(i);hh(t,c,{labelFetcher:o,labelDataIndex:n,defaultText:cw(o.getData(),n),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:h}),xh(t.getTextContent(),c,o.getRawValue(n),(function(t){return pw(e,t)}))}var p=i.getModel(["emphasis"]);sl(t,p.get("focus"),p.get("blurScope")),cl(t,i),function(t){return null!=t.startAngle&&null!=t.endAngle&&t.startAngle===t.endAngle}(r)&&(t.style.fill="none",t.style.stroke="none",P(t.states,(function(t){t.style&&(t.style.fill=t.style.stroke="none")})))}var lS=function(){},uS=function(t){function e(e){var n=t.call(this,e)||this;return n.type="largeBar",n}return n(e,t),e.prototype.getDefaultShape=function(){return new lS},e.prototype.buildPath=function(t,e){for(var n=e.points,i=this.__startPoint,r=this.__baseDimIdx,o=0;o=c&&y<=p&&(l<=v?h>=l&&h<=v:h>=v&&h<=l))return a[d]}return-1}(this,t.offsetX,t.offsetY);_s(this).dataIndex=e>=0?e:null}),30,!1);function pS(t,e,n){if(Nw(n,"cartesian2d")){var i=e,r=n.getArea();return{x:t?i.x:r.x,y:t?r.y:i.y,width:t?i.width:r.width,height:t?r.height:i.height}}var o=e;return{cx:(r=n.getArea()).cx,cy:r.cy,r0:t?r.r0:o.r0,r:t?r.r:o.r,startAngle:t?o.startAngle:0,endAngle:t?o.endAngle:2*Math.PI}}var dS=2*Math.PI,fS=Math.PI/180;function gS(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.getData(),i=e.mapDimension("value"),r=function(t,e){return Vc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,n),o=t.get("center"),a=t.get("radius");F(a)||(a=[0,a]),F(o)||(o=[o,o]);var s=Zi(r.width,n.getWidth()),l=Zi(r.height,n.getHeight()),u=Math.min(s,l),h=Zi(o[0],s)+r.x,c=Zi(o[1],l)+r.y,p=Zi(a[0],u/2),d=Zi(a[1],u/2),f=-t.get("startAngle")*fS,g=t.get("minAngle")*fS,y=0;e.each(i,(function(t){!isNaN(t)&&y++}));var v=e.getSum(i),m=Math.PI/(v||y)*2,_=t.get("clockwise"),x=t.get("roseType"),b=t.get("stillShowZeroSum"),w=e.getDataExtent(i);w[0]=0;var S=dS,M=0,I=f,T=_?1:-1;if(e.setLayout({viewRect:r,r:d}),e.each(i,(function(t,n){var i;if(isNaN(t))e.setItemLayout(n,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:_,cx:h,cy:c,r0:p,r:x?NaN:d});else{(i="area"!==x?0===v&&b?m:t*m:dS/y)n?a:o,h=Math.abs(l.label.y-n);if(h>u.maxY){var c=l.label.x-e-l.len2*r,p=i+l.len,f=Math.abs(c)0?"right":"left":L>0?"left":"right"}var F=y.get("rotate");if(O="number"==typeof F?F*(Math.PI/180):F?L<0?-A+Math.PI:-A:0,o=!!O,p.x=I,p.y=T,p.rotation=O,p.setStyle({verticalAlign:"middle"}),R){p.setStyle({align:D});var G=p.states.select;G&&(G.x+=p.x,G.y+=p.y)}else{var H=p.getBoundingRect().clone();H.applyTransform(p.getComputedTransform());var W=(p.style.margin||0)+2.1;H.y-=W/2,H.height+=W,r.push({label:p,labelLine:f,position:v,len:S,len2:M,minTurnAngle:w.get("minTurnAngle"),maxSurfaceAngle:w.get("maxSurfaceAngle"),surfaceNormal:new ai(L,k),linePoints:C,textAlign:D,labelDistance:m,labelAlignTo:_,edgeDistance:x,bleedMargin:b,rect:H})}s.setTextConfig({inside:R})}})),!o&&t.get("avoidLabelOverlap")&&function(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=Number.MAX_VALUE,c=-Number.MAX_VALUE,p=0;p0){for(var l=o.getItemLayout(0),u=1;isNaN(l&&l.startAngle)&&u=n.r0}},e.type="pie",e}(Tf);function MS(t,e,n){e=F(e)&&{coordDimensions:e}||I({},e);var i=t.getSource(),r=O_(i,e),o=new L_(r,t);return o.initData(i,n),o}var IS=function(){function t(t,e){this._getDataWithEncodedVisual=t,this._getRawData=e}return t.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},t.prototype.containName=function(t){return this._getRawData().indexOfName(t)>=0},t.prototype.indexOfName=function(t){return this._getDataWithEncodedVisual().indexOfName(t)},t.prototype.getItemVisual=function(t,e){return this._getDataWithEncodedVisual().getItemVisual(t,e)},t}(),TS=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.useColorPaletteOnData=!0,e}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new IS(V(this.getData,this),V(this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.mergeOption=function(){t.prototype.mergeOption.apply(this,arguments)},e.prototype.getInitialData=function(){return MS(this,{coordDimensions:["value"],encodeDefaulter:B(up,this)})},e.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=[];return n.each(n.mapDimension("value"),(function(t){r.push(t)})),i.percent=Qi(r,e,n.hostModel.get("percentPrecision")),i.$vars.push("percent"),i},e.prototype._defaultLabelLine=function(t){br(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.type="series.pie",e.defaultOption={zlevel:0,z:2,legendHoverLink:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},e}(ff);var CS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){return F_(this.getSource(),this,{useEncodeDefaulter:!0})},e.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?5e3:this.get("progressive"):t},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?1e4:this.get("progressiveThreshold"):t},e.prototype.brushSelector=function(t,e,n){return n.point(e.getItemLayout(t))},e.type="series.scatter",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8},emphasis:{scale:!0},clip:!0,select:{itemStyle:{borderColor:"#212121"}}},e}(ff),DS=function(){},AS=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new DS},e.prototype.buildPath=function(t,e){var n=e.points,i=e.size,r=this.symbolProxy,o=r.shape,a=t.getContext?t.getContext():t;if(a&&i[0]<4)this._ctx=a;else{this._ctx=null;for(var s=0;s=0;s--){var l=2*s,u=i[l]-o/2,h=i[l+1]-a/2;if(t>=u&&e>=h&&t<=u+o&&e<=h+a)return s}return-1},e}(Ka),LS=function(){function t(){this.group=new Ei}return t.prototype.isPersistent=function(){return!this._incremental},t.prototype.updateData=function(t,e){this.group.removeAll();var n=new AS({rectHover:!0,cursor:"default"});n.setShape({points:t.getLayout("points")}),this._setCommon(n,t,!1,e),this.group.add(n),this._incremental=null},t.prototype.updateLayout=function(t){if(!this._incremental){var e=t.getLayout("points");this.group.eachChild((function(t){if(null!=t.startIndex){var n=2*(t.endIndex-t.startIndex),i=4*t.startIndex*2;e=new Float32Array(e.buffer,i,n)}t.setShape("points",e)}))}},t.prototype.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>2e6?(this._incremental||(this._incremental=new Tu({silent:!0})),this.group.add(this._incremental)):this._incremental=null},t.prototype.incrementalUpdate=function(t,e,n){var i;this._incremental?(i=new AS,this._incremental.addDisplayable(i,!0)):((i=new AS({rectHover:!0,cursor:"default",startIndex:t.start,endIndex:t.end})).incremental=!0,this.group.add(i)),i.setShape({points:e.getLayout("points")}),this._setCommon(i,e,!!this._incremental,n)},t.prototype._setCommon=function(t,e,n,i){var r=e.hostModel;i=i||{};var o=e.getVisual("symbolSize");t.setShape("size",o instanceof Array?o:[o,o]),t.softClipShape=i.clipShape||null,t.symbolProxy=fy(e.getVisual("symbol"),0,0,0,0),t.setColor=t.symbolProxy.setColor;var a=t.shape.size[0]<4;t.useStyle(r.getModel("itemStyle").getItemStyle(a?["color","shadowBlur","shadowColor"]:["color"]));var s=e.getVisual("style"),l=s&&s.fill;if(l&&t.setColor(l),!n){var u=_s(t);u.seriesIndex=r.seriesIndex,t.on("mousemove",(function(e){u.dataIndex=null;var n=t.findDataIndex(e.offsetX,e.offsetY);n>=0&&(u.dataIndex=n+(t.startIndex||0))}))}},t.prototype.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},t.prototype._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},t}(),kS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).updateData(i,{clipShape:this._getClipShape(t)}),this._finished=!0},e.prototype.incrementalPrepareRender=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).incrementalPrepareUpdate(i),this._finished=!1},e.prototype.incrementalRender=function(t,e,n){this._symbolDraw.incrementalUpdate(t,e.getData(),{clipShape:this._getClipShape(e)}),this._finished=t.end===e.getData().count()},e.prototype.updateTransform=function(t,e,n){var i=t.getData();if(this.group.dirty(),!this._finished||i.count()>1e4||!this._symbolDraw.isPersistent())return{update:!0};var r=Xw("").reset(t,e,n);r.progress&&r.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout(i)},e.prototype._getClipShape=function(t){var e=t.coordinateSystem,n=e&&e.getArea&&e.getArea();return t.get("clip",!0)?n:null},e.prototype._updateSymbolDraw=function(t,e){var n=this._symbolDraw,i=e.pipelineContext.large;return n&&i===this._isLargeDraw||(n&&n.remove(),n=this._symbolDraw=i?new LS:new mw,this._isLargeDraw=i,this.group.removeAll()),this.group.add(n.group),n},e.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},e.prototype.dispose=function(){},e.type="scatter",e}(Tf),PS=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.type="grid",e.dependencies=["xAxis","yAxis"],e.layoutMode="box",e.defaultOption={show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},e}(Xc),OS=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Nr).models[0]},e.type="cartesian2dAxis",e}(Xc);L(OS,Yx);var RS={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},NS=S({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},RS),zS=S({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},RS),ES={category:NS,value:zS,time:S({scale:!0,splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},zS),log:T({scale:!0,logBase:10},zS)},VS={value:1,category:1,time:1,log:1};function BS(t,e,i,r){P(VS,(function(o,a){var s=S(S({},ES[a],!0),r,!0),l=function(t){function i(){for(var n=[],i=0;ie[1]&&e.reverse(),e},e.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},e.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setSortInfo(t)},e}(hb);function YS(t,e,n){n=n||{};var i=t.coordinateSystem,r=e.axis,o={},a=r.getAxesOnZeroOf()[0],s=r.position,l=a?"onZero":s,u=r.dim,h=i.getRect(),c=[h.x,h.x+h.width,h.y,h.y+h.height],p={left:0,right:1,top:0,bottom:1,onZero:2},d=e.get("offset")||0,f="x"===u?[c[2]-d,c[3]+d]:[c[0]-d,c[1]+d];if(a){var g=a.toGlobalCoord(a.dataToCoord(0));f[p.onZero]=Math.max(Math.min(g,f[1]),f[0])}o.position=["y"===u?f[p[l]]:c[0],"x"===u?f[p[l]]:c[3]],o.rotation=Math.PI/2*("x"===u?0:1);o.labelDirection=o.tickDirection=o.nameDirection={top:-1,bottom:1,left:-1,right:1}[s],o.labelOffset=a?f[p[s]]-f[p.onZero]:0,e.get(["axisTick","inside"])&&(o.tickDirection=-o.tickDirection),Q(n.labelInside,e.get(["axisLabel","inside"]))&&(o.labelDirection=-o.labelDirection);var y=e.get(["axisLabel","rotate"]);return o.labelRotate="top"===l?-y:y,o.z2=1,o}function ZS(t){return"cartesian2d"===t.get("coordinateSystem")}function jS(t){var e={xAxisModel:null,yAxisModel:null};return P(e,(function(n,i){var r=i.replace(/Model$/,""),o=t.getReferringComponents(r,Nr).models[0];e[i]=o})),e}var qS=function(){function t(t,e,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=HS,this._initCartesian(t,e,n),this.model=t}return t.prototype.getRect=function(){return this._rect},t.prototype.update=function(t,e){var n=this._axesMap;this._updateScale(t,this.model),P(n.x,(function(t){Vx(t.scale,t.model)})),P(n.y,(function(t){Vx(t.scale,t.model)}));var i={};P(n.x,(function(t){$S(n,"y",t,i)})),P(n.y,(function(t){$S(n,"x",t,i)})),this.resize(this.model,e)},t.prototype.resize=function(t,e,n){var i=t.getBoxLayoutParams(),r=!n&&t.get("containLabel"),o=Vc(i,{width:e.getWidth(),height:e.getHeight()});this._rect=o;var a=this._axesList;function s(){P(a,(function(t){var e=t.isHorizontal(),n=e?[0,o.width]:[0,o.height],i=t.inverse?1:0;t.setExtent(n[i],n[1-i]),function(t,e){var n=t.getExtent(),i=n[0]+n[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return i-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return i-t+e}}(t,e?o.x:o.y)}))}s(),r&&(P(a,(function(t){if(!t.model.get(["axisLabel","inside"])){var e=function(t){var e=t.model,n=t.scale;if(e.get(["axisLabel","show"])&&!n.isBlank()){var i,r,o=n.getExtent();r=n instanceof $_?n.count():(i=n.getTicks()).length;var a,s=t.getLabelModel(),l=Fx(t),u=1;r>40&&(u=Math.ceil(r/40));for(var h=0;h0&&i>0||n<0&&i<0)}(t)}var QS=Math.PI,tM=function(){function t(t,e){this.group=new Ei,this.opt=e,this.axisModel=t,T(e,{labelOffset:0,nameDirection:1,tickDirection:1,labelDirection:1,silent:!0,handleAutoShown:function(){return!0}});var n=new Ei({x:e.position[0],y:e.position[1],rotation:e.rotation});n.updateTransform(),this._transformGroup=n}return t.prototype.hasBuilder=function(t){return!!eM[t]},t.prototype.add=function(t){eM[t](this.opt,this.axisModel,this.group,this._transformGroup)},t.prototype.getGroup=function(){return this.group},t.innerTextLayout=function(t,e,n){var i,r,o=nr(e-t);return ir(o)?(r=n>0?"top":"bottom",i="center"):ir(o-QS)?(r=n>0?"bottom":"top",i="center"):(r="middle",i=o>0&&o0?"right":"left":n>0?"left":"right"),{rotation:o,textAlign:i,textVerticalAlign:r}},t.makeAxisEventDataBase=function(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e},t.isLabelSilent=function(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)},t}(),eM={axisLine:function(t,e,n,i){var r=e.get(["axisLine","show"]);if("auto"===r&&t.handleAutoShown&&(r=t.handleAutoShown("axisLine")),r){var o=e.axis.getExtent(),a=i.transform,s=[o[0],0],l=[o[1],0];a&&(Rt(s,s,a),Rt(l,l,a));var u=I({lineCap:"round"},e.getModel(["axisLine","lineStyle"]).getLineStyle()),h=new uu({subPixelOptimize:!0,shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:u,strokeContainThreshold:t.strokeContainThreshold||5,silent:!0,z2:1});h.anid="line",n.add(h);var c=e.get(["axisLine","symbol"]),p=e.get(["axisLine","symbolSize"]),d=e.get(["axisLine","symbolOffset"])||0;if("number"==typeof d&&(d=[d,d]),null!=c){"string"==typeof c&&(c=[c,c]),"string"!=typeof p&&"number"!=typeof p||(p=[p,p]);var f=p[0],g=p[1];P([{rotate:t.rotation+Math.PI/2,offset:d[0],r:0},{rotate:t.rotation-Math.PI/2,offset:d[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],(function(e,i){if("none"!==c[i]&&null!=c[i]){var r=fy(c[i],-f/2,-g/2,f,g,u.stroke,!0),o=e.r+e.offset;r.attr({rotation:e.rotate,x:s[0]+o*Math.cos(t.rotation),y:s[1]-o*Math.sin(t.rotation),silent:!0,z2:11}),n.add(r)}}))}}},axisTickLabel:function(t,e,n,i){var r=function(t,e,n,i){var r=n.axis,o=n.getModel("axisTick"),a=o.get("show");"auto"===a&&i.handleAutoShown&&(a=i.handleAutoShown("axisTick"));if(!a||r.scale.isBlank())return;for(var s=o.getModel("lineStyle"),l=i.tickDirection*o.get("length"),u=oM(r.getTicksCoords(),e.transform,l,T(s.getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])}),"ticks"),h=0;hc[1]?-1:1,d=["start"===s?c[0]-p*h:"end"===s?c[1]+p*h:(c[0]+c[1])/2,rM(s)?t.labelOffset+l*h:0],f=e.get("nameRotate");null!=f&&(f=f*QS/180),rM(s)?o=tM.innerTextLayout(t.rotation,null!=f?f:t.rotation,l):(o=function(t,e,n,i){var r,o,a=nr(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;ir(a-QS/2)?(o=l?"bottom":"top",r="center"):ir(a-1.5*QS)?(o=l?"top":"bottom",r="center"):(o="middle",r=a<1.5*QS&&a>QS/2?l?"left":"right":l?"right":"left");return{rotation:a,textAlign:r,textVerticalAlign:o}}(t.rotation,s,f||0,c),null!=(a=t.axisNameAvailableWidth)&&(a=Math.abs(a/Math.sin(o.rotation)),!isFinite(a)&&(a=null)));var g=u.getFont(),y=e.get("nameTruncate",!0)||{},v=y.ellipsis,m=Q(t.nameTruncateMaxWidth,y.maxWidth,a),_=new cs({x:d[0],y:d[1],rotation:o.rotation,silent:tM.isLabelSilent(e),style:ph(u,{text:r,font:g,overflow:"truncate",width:m,ellipsis:v,fill:u.getTextColor()||e.get(["axisLine","lineStyle","color"]),align:u.get("align")||o.textAlign,verticalAlign:u.get("verticalAlign")||o.textVerticalAlign}),z2:1});if(oh({el:_,componentModel:e,itemName:r}),_.__fullText=r,_.anid="name",e.get("triggerEvent")){var x=tM.makeAxisEventDataBase(e);x.targetType="axisName",x.name=r,_s(_).eventData=x}i.add(_),_.updateTransform(),n.add(_),_.decomposeTransform()}}};function nM(t){t&&(t.ignore=!0)}function iM(t,e){var n=t&&t.getBoundingRect().clone(),i=e&&e.getBoundingRect().clone();if(n&&i){var r=Gn([]);return Xn(r,r,-t.rotation),n.applyTransform(Wn([],r,t.getLocalTransform())),i.applyTransform(Wn([],r,e.getLocalTransform())),n.intersect(i)}}function rM(t){return"middle"===t||"center"===t}function oM(t,e,n,i,r){for(var o=[],a=[],s=[],l=0;l=0||t===e}function lM(t){var e=uM(t);if(e){var n=e.axisPointerModel,i=e.axis.scale,r=n.option,o=n.get("status"),a=n.get("value");null!=a&&(a=i.parse(a));var s=hM(n);null==o&&(r.status=s?"show":"hide");var l=i.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==a||a>l[1])&&(a=l[1]),a0&&!c.min?c.min=0:null!=c.min&&c.min<0&&!c.max&&(c.max=0);var p=a;null!=c.color&&(p=T({color:c.color},a));var d=S(w(c),{boundaryGap:t,splitNumber:e,scale:n,axisLine:i,axisTick:r,axisLabel:o,name:c.text,nameLocation:"end",nameGap:u,nameTextStyle:p,triggerEvent:h},!1);if(s||(d.name=""),"string"==typeof l){var f=d.name;d.name=l.replace("{value}",null!=f?f:"")}else"function"==typeof l&&(d.name=l(d.name,d));var g=new Oh(d,null,this.ecModel);return L(g,Yx.prototype),g.mainType="radar",g.componentIndex=this.componentIndex,g}),this);this._indicatorModels=c},e.prototype.getIndicatorModels=function(){return this._indicatorModels},e.type="radar",e.defaultOption={zlevel:0,z:0,center:["50%","50%"],radius:"75%",startAngle:90,axisName:{show:!0},boundaryGap:[0,0],splitNumber:5,axisNameGap:15,scale:!1,shape:"polygon",axisLine:S({lineStyle:{color:"#bbb"}},PM.axisLine),axisLabel:OM(PM.axisLabel,!1),axisTick:OM(PM.axisTick,!1),splitLine:OM(PM.splitLine,!0),splitArea:OM(PM.splitArea,!0),indicator:[]},e}(Xc),NM=["axisLine","axisTickLabel","axisName"],zM=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){this.group.removeAll(),this._buildAxes(t),this._buildSplitLineAndArea(t)},e.prototype._buildAxes=function(t){var e=t.coordinateSystem;P(O(e.getIndicatorAxes(),(function(t){return new tM(t.model,{position:[e.cx,e.cy],rotation:t.angle,labelDirection:-1,tickDirection:-1,nameDirection:1})})),(function(t){P(NM,t.add,t),this.group.add(t.getGroup())}),this)},e.prototype._buildSplitLineAndArea=function(t){var e=t.coordinateSystem,n=e.getIndicatorAxes();if(n.length){var i=t.get("shape"),r=t.getModel("splitLine"),o=t.getModel("splitArea"),a=r.getModel("lineStyle"),s=o.getModel("areaStyle"),l=r.get("show"),u=o.get("show"),h=a.get("color"),c=s.get("color"),p=F(h)?h:[h],d=F(c)?c:[c],f=[],g=[];if("circle"===i)for(var y=n[0].getTicksCoords(),v=e.cx,m=e.cy,_=0;_n[0]&&isFinite(c)&&isFinite(n[0]))}else{a.getTicks().length-1>r&&(u=o(u));c=ji((h=Math.ceil(n[1]/u)*u)-u*r);a.setExtent(c,h),a.setInterval(u)}}))},t.prototype.convertToPixel=function(t,e,n){return console.warn("Not implemented."),null},t.prototype.convertFromPixel=function(t,e,n){return console.warn("Not implemented."),null},t.prototype.containPoint=function(t){return console.warn("Not implemented."),!1},t.create=function(e,n){var i=[];return e.eachComponent("radar",(function(r){var o=new t(r,e,n);i.push(o),r.coordinateSystem=o})),e.eachSeriesByType("radar",(function(t){"radar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("radarIndex")||0])})),i},t.dimensions=[],t}();function BM(t){t.registerCoordinateSystem("radar",VM),t.registerComponentModel(RM),t.registerComponentView(zM),t.registerVisual({seriesType:"radar",reset:function(t){var e=t.getData();e.each((function(t){e.setItemVisual(t,"legendIcon","roundRect")})),e.setVisual("legendIcon","roundRect")}})}var FM="\0_ec_interaction_mutex";function GM(t,e){return!!HM(t)[e]}function HM(t){return t[FM]||(t[FM]={})}Hm({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},(function(){}));var WM=function(t){function e(e){var n=t.call(this)||this;n._zr=e;var i=V(n._mousedownHandler,n),r=V(n._mousemoveHandler,n),o=V(n._mouseupHandler,n),a=V(n._mousewheelHandler,n),s=V(n._pinchHandler,n);return n.enable=function(t,n){this.disable(),this._opt=T(w(n)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),null==t&&(t=!0),!0!==t&&"move"!==t&&"pan"!==t||(e.on("mousedown",i),e.on("mousemove",r),e.on("mouseup",o)),!0!==t&&"scale"!==t&&"zoom"!==t||(e.on("mousewheel",a),e.on("pinch",s))},n.disable=function(){e.off("mousedown",i),e.off("mousemove",r),e.off("mouseup",o),e.off("mousewheel",a),e.off("pinch",s)},n}return n(e,t),e.prototype.isDragging=function(){return this._dragging},e.prototype.isPinching=function(){return this._pinching},e.prototype.setPointerChecker=function(t){this.pointerChecker=t},e.prototype.dispose=function(){this.disable()},e.prototype._mousedownHandler=function(t){if(!(ne(t)||t.target&&t.target.draggable)){var e=t.offsetX,n=t.offsetY;this.pointerChecker&&this.pointerChecker(t,e,n)&&(this._x=e,this._y=n,this._dragging=!0)}},e.prototype._mousemoveHandler=function(t){if(this._dragging&&YM("moveOnMouseMove",t,this._opt)&&"pinch"!==t.gestureEvent&&!GM(this._zr,"globalPan")){var e=t.offsetX,n=t.offsetY,i=this._x,r=this._y,o=e-i,a=n-r;this._x=e,this._y=n,this._opt.preventDefaultMouseMove&&ee(t.event),XM(this,"pan","moveOnMouseMove",t,{dx:o,dy:a,oldX:i,oldY:r,newX:e,newY:n,isAvailableBehavior:null})}},e.prototype._mouseupHandler=function(t){ne(t)||(this._dragging=!1)},e.prototype._mousewheelHandler=function(t){var e=YM("zoomOnMouseWheel",t,this._opt),n=YM("moveOnMouseWheel",t,this._opt),i=t.wheelDelta,r=Math.abs(i),o=t.offsetX,a=t.offsetY;if(0!==i&&(e||n)){if(e){var s=r>3?1.4:r>1?1.2:1.1;UM(this,"zoom","zoomOnMouseWheel",t,{scale:i>0?s:1/s,originX:o,originY:a,isAvailableBehavior:null})}if(n){var l=Math.abs(i);UM(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:(i>0?1:-1)*(l>3?.4:l>1?.15:.05),originX:o,originY:a,isAvailableBehavior:null})}}},e.prototype._pinchHandler=function(t){GM(this._zr,"globalPan")||UM(this,"zoom",null,t,{scale:t.pinchScale>1?1.1:1/1.1,originX:t.pinchX,originY:t.pinchY,isAvailableBehavior:null})},e}(Ft);function UM(t,e,n,i,r){t.pointerChecker&&t.pointerChecker(i,r.originX,r.originY)&&(ee(i.event),XM(t,e,n,i,r))}function XM(t,e,n,i,r){r.isAvailableBehavior=V(YM,null,n,i),t.trigger(e,r)}function YM(t,e,n){var i=n[t];return!t||i&&(!H(i)||e.event[i+"Key"])}function ZM(t,e,n){var i=t.target;i.x+=e,i.y+=n,i.dirty()}function jM(t,e,n,i){var r=t.target,o=t.zoomLimit,a=t.zoom=t.zoom||1;if(a*=e,o){var s=o.min||0,l=o.max||1/0;a=Math.max(Math.min(l,a),s)}var u=a/t.zoom;t.zoom=a,r.x-=(n-r.x)*(u-1),r.y-=(i-r.y)*(u-1),r.scaleX*=u,r.scaleY*=u,r.dirty()}var qM={axisPointer:1,tooltip:1,brush:1};function KM(t,e,n){var i=e.getComponentByElement(t.topTarget),r=i&&i.coordinateSystem;return i&&i!==n&&!qM.hasOwnProperty(i.mainType)&&r&&r.model!==n}var $M=["rect","circle","line","ellipse","polygon","polyline","path"],JM=ht($M),QM=ht($M.concat(["g"])),tI=ht($M.concat(["g"])),eI=kr();function nI(t){var e=t.getItemStyle(),n=t.get("areaColor");return null!=n&&(e.fill=n),e}var iI=function(){function t(t){var e=new Ei;this.uid=Nh("ec_map_draw"),this._controller=new WM(t.getZr()),this._controllerHost={target:e},this.group=e,e.add(this._regionsGroup=new Ei),e.add(this._svgGroup=new Ei)}return t.prototype.draw=function(t,e,n,i,r){var o="geo"===t.mainType,a=t.getData&&t.getData();o&&e.eachComponent({mainType:"series",subType:"map"},(function(e){a||e.getHostGeoModel()!==t||(a=e.getData())}));var s=t.coordinateSystem,l=this._regionsGroup,u=this.group,h=s.getTransformInfo(),c=h.raw,p=h.roam;!l.childAt(0)||r?(u.x=p.x,u.y=p.y,u.scaleX=p.scaleX,u.scaleY=p.scaleY,u.dirty()):Hu(u,p,t);var d=a&&a.getVisual("visualMeta")&&a.getVisual("visualMeta").length>0,f={api:n,geo:s,mapOrGeoModel:t,data:a,isVisualEncodedByVisualMap:d,isGeo:o,transformInfoRaw:c};"geoJSON"===s.resourceType?this._buildGeoJSON(f):"geoSVG"===s.resourceType&&this._buildSVG(f),this._updateController(t,e,n),this._updateMapSelectHandler(t,l,n,i)},t.prototype._buildGeoJSON=function(t){var e=this._regionsGroupByName=ht(),n=ht(),i=this._regionsGroup,r=t.transformInfoRaw,o=t.mapOrGeoModel,a=t.data,s=function(t){return[t[0]*r.scaleX+r.x,t[1]*r.scaleY+r.y]};i.removeAll(),P(t.geo.regions,(function(r){var l=r.name,u=e.get(l),h=n.get(l)||{},c=h.dataIdx,p=h.regionModel;u||(u=e.set(l,new Ei),i.add(u),c=a?a.indexOfName(l):null,p=t.isGeo?o.getRegionModel(l):a?a.getItemModel(c):null,n.set(l,{dataIdx:c,regionModel:p}));var d=new yu({segmentIgnoreThreshold:1,shape:{paths:[]}});u.add(d),P(r.geometries,(function(t){if("polygon"===t.type){for(var e=[],n=0;n=0)&&(p=r);var d=a?{normal:{align:"center",verticalAlign:"middle"}}:null;hh(e,ch(i),{labelFetcher:p,labelDataIndex:c,defaultText:n},d);var f=e.getTextContent();if(f&&(eI(f).ignore=f.ignore,e.textConfig&&a)){var g=e.getBoundingRect().clone();e.textConfig.layoutRect=g,e.textConfig.position=[(a[0]-g.x)/g.width*100+"%",(a[1]-g.y)/g.height*100+"%"]}e.disableLabelAnimation=!0}else e.removeTextContent(),e.removeTextConfig(),e.disableLabelAnimation=null}function aI(t,e,n,i,r,o){t.data?t.data.setItemGraphicEl(o,e):_s(e).eventData={componentType:"geo",componentIndex:r.componentIndex,geoIndex:r.componentIndex,name:n,region:i&&i.option||{}}}function sI(t,e,n,i,r){t.data||oh({el:e,componentModel:r,itemName:n,itemTooltipOption:i.get("tooltip")})}function lI(t,e,n,i,r){e.highDownSilentOnTouch=!!r.get("selectedMode");var o=i.getModel("emphasis"),a=o.get("focus");return sl(e,a,o.get("blurScope")),t.isGeo&&function(t,e,n){var i=_s(t);i.componentMainType=e.mainType,i.componentIndex=e.componentIndex,i.componentHighDownName=n}(e,r,n),a}var uI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n,i){if(!i||"mapToggleSelect"!==i.type||i.from!==this.uid){var r=this.group;if(r.removeAll(),!t.getHostGeoModel()){if(this._mapDraw&&i&&"geoRoam"===i.type&&this._mapDraw.resetForLabelLayout(),i&&"geoRoam"===i.type&&"series"===i.componentType&&i.seriesId===t.id)(o=this._mapDraw)&&r.add(o.group);else if(t.needsDrawMap){var o=this._mapDraw||new iI(n);r.add(o.group),o.draw(t,e,n,this,i),this._mapDraw=o}else this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null;t.get("showLegendSymbol")&&e.getComponent("legend")&&this._renderSymbols(t,e,n)}}},e.prototype.remove=function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null,this.group.removeAll()},e.prototype.dispose=function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null},e.prototype._renderSymbols=function(t,e,n){var i=t.originalData,r=this.group;i.each(i.mapDimension("value"),(function(e,n){if(!isNaN(e)){var o=i.getItemLayout(n);if(o&&o.point){var a=o.point,s=o.offset,l=new Nl({style:{fill:t.getData().getVisual("style").fill},shape:{cx:a[0]+9*s,cy:a[1],r:3},silent:!0,z2:8+(s?0:11)});if(!s){var u=t.mainSeries.getData(),h=i.getName(n),c=u.indexOfName(h),p=i.getItemModel(n),d=p.getModel("label"),f=u.getItemGraphicEl(c);hh(l,ch(p),{labelFetcher:{getFormattedLabel:function(e,n){return t.getFormattedLabel(c,n)}}}),l.disableLabelAnimation=!0,d.get("position")||l.setTextConfig({position:"bottom"}),f.onHoverStateChange=function(t){Ws(l,t)}}r.add(l)}}}))},e.type="map",e}(Tf),hI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.needsDrawMap=!1,n.seriesGroup=[],n.getTooltipPosition=function(t){if(null!=t){var e=this.getData().getName(t),n=this.coordinateSystem,i=n.getRegion(e);return i&&n.dataToPoint(i.getCenter())}},n}return n(e,t),e.prototype.getInitialData=function(t){for(var e=MS(this,{coordDimensions:["value"],encodeDefaulter:B(up,this)}),n=ht(),i=[],r=0,o=e.count();r-1&&(n.style.stroke=n.style.fill,n.style.fill="#fff",n.style.lineWidth=2),n},e.type="series.map",e.dependencies=["geo"],e.layoutMode="box",e.defaultOption={zlevel:0,z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:null,showLegendSymbol:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,selectedMode:!0,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},nameProperty:"name"},e}(ff);function cI(t){var e={};t.eachSeriesByType("map",(function(t){var n=t.getHostGeoModel(),i=n?"o"+n.id:"i"+t.getMapType();(e[i]=e[i]||[]).push(t)})),P(e,(function(t,e){for(var n,i,r,o=(n=O(t,(function(t){return t.getData()})),i=t[0].get("mapValueCalculation"),r={},P(n,(function(t){t.each(t.mapDimension("value"),(function(e,n){var i="ec-"+t.getName(n);r[i]=r[i]||[],isNaN(e)||r[i].push(e)}))})),n[0].map(n[0].mapDimension("value"),(function(t,e){for(var o="ec-"+n[0].getName(e),a=0,s=1/0,l=-1/0,u=r[o].length,h=0;h1?(s.width=a,s.height=a/d):(s.height=a,s.width=a*d),s.y=o[1]-s.height/2,s.x=o[0]-s.width/2;else{var g=t.getBoxLayoutParams();g.aspect=d,s=Vc(g,{width:c,height:p})}this.setViewRect(s.x,s.y,s.width,s.height),this.setCenter(t.get("center")),this.setZoom(t.get("zoom"))}L(vI,fI);var xI=new(function(){function t(){this.dimensions=vI.prototype.dimensions}return t.prototype.create=function(t,e){var n=[];t.eachComponent("geo",(function(t,i){var r=t.get("map"),o=new vI(r+i,r,{nameMap:t.get("nameMap"),nameProperty:t.get("nameProperty"),aspectScale:t.get("aspectScale")});o.zoomLimit=t.get("scaleLimit"),n.push(o),t.coordinateSystem=o,o.model=t,o.resize=_I,o.resize(t,e)})),t.eachSeries((function(t){if("geo"===t.get("coordinateSystem")){var e=t.get("geoIndex")||0;t.coordinateSystem=n[e]}}));var i={};return t.eachSeriesByType("map",(function(t){if(!t.getHostGeoModel()){var e=t.getMapType();i[e]=i[e]||[],i[e].push(t)}})),P(i,(function(t,i){var r=O(t,(function(t){return t.get("nameMap")})),o=new vI(i,i,{nameMap:M(r),nameProperty:t[0].get("nameProperty"),aspectScale:t[0].get("aspectScale")});o.zoomLimit=Q.apply(null,O(t,(function(t){return t.get("scaleLimit")}))),n.push(o),o.resize=_I,o.resize(t[0],e),P(t,(function(t){t.coordinateSystem=o,function(t,e){P(e.get("geoCoord"),(function(e,n){t.addGeoCoord(n,e)}))}(o,t)}))})),n},t.prototype.getFilledRegions=function(t,e,n,i){for(var r=(t||[]).slice(),o=ht(),a=0;a=0;){var o=e[n];o.hierNode.prelim+=i,o.hierNode.modifier+=i,r+=o.hierNode.change,i+=o.hierNode.shift+r}}(t);var o=(n[0].hierNode.prelim+n[n.length-1].hierNode.prelim)/2;r?(t.hierNode.prelim=r.hierNode.prelim+e(t,r),t.hierNode.modifier=t.hierNode.prelim-o):t.hierNode.prelim=o}else r&&(t.hierNode.prelim=r.hierNode.prelim+e(t,r));t.parentNode.hierNode.defaultAncestor=function(t,e,n,i){if(e){for(var r=t,o=t,a=o.parentNode.children[0],s=e,l=r.hierNode.modifier,u=o.hierNode.modifier,h=a.hierNode.modifier,c=s.hierNode.modifier;s=AI(s),o=LI(o),s&&o;){r=AI(r),a=LI(a),r.hierNode.ancestor=t;var p=s.hierNode.prelim+c-o.hierNode.prelim-u+i(s,o);p>0&&(PI(kI(s,t,n),t,p),u+=p,l+=p),c+=s.hierNode.modifier,u+=o.hierNode.modifier,l+=r.hierNode.modifier,h+=a.hierNode.modifier}s&&!AI(r)&&(r.hierNode.thread=s,r.hierNode.modifier+=c-l),o&&!LI(a)&&(a.hierNode.thread=o,a.hierNode.modifier+=u-h,n=t)}return n}(t,r,t.parentNode.hierNode.defaultAncestor||i[0],e)}function TI(t){var e=t.hierNode.prelim+t.parentNode.hierNode.modifier;t.setLayout({x:e},!0),t.hierNode.modifier+=t.parentNode.hierNode.modifier}function CI(t){return arguments.length?t:OI}function DI(t,e){return t-=Math.PI/2,{x:e*Math.cos(t),y:e*Math.sin(t)}}function AI(t){var e=t.children;return e.length&&t.isExpand?e[e.length-1]:t.hierNode.thread}function LI(t){var e=t.children;return e.length&&t.isExpand?e[0]:t.hierNode.thread}function kI(t,e,n){return t.hierNode.ancestor.parentNode===e.parentNode?t.hierNode.ancestor:n}function PI(t,e,n){var i=n/(e.hierNode.i-t.hierNode.i);e.hierNode.change-=i,e.hierNode.shift+=n,e.hierNode.modifier+=n,e.hierNode.prelim+=n,t.hierNode.change+=i}function OI(t,e){return t.parentNode===e.parentNode?1:2}var RI=function(){this.parentPoint=[],this.childPoints=[]},NI=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new RI},e.prototype.buildPath=function(t,e){var n=e.childPoints,i=n.length,r=e.parentPoint,o=n[0],a=n[i-1];if(1===i)return t.moveTo(r[0],r[1]),void t.lineTo(o[0],o[1]);var s=e.orient,l="TB"===s||"BT"===s?0:1,u=1-l,h=Zi(e.forkPosition,1),c=[];c[l]=r[l],c[u]=r[u]+(a[u]-r[u])*h,t.moveTo(r[0],r[1]),t.lineTo(c[0],c[1]),t.moveTo(o[0],o[1]),c[l]=o[l],t.lineTo(c[0],c[1]),c[l]=a[l],t.lineTo(c[0],c[1]),t.lineTo(a[0],a[1]);for(var p=1;pm.x)||(x-=Math.PI);var S=b?"left":"right",M=s.getModel("label"),I=M.get("rotate"),C=I*(Math.PI/180),D=y.getTextContent();D&&(y.setTextConfig({position:M.get("position")||S,rotation:null==I?-x:C,origin:"center"}),D.setStyle("verticalAlign","middle"))}var A=s.get(["emphasis","focus"]),L="ancestor"===A?a.getAncestorsIndices():"descendant"===A?a.getDescendantIndices():null;L&&(_s(n).focus=L),function(t,e,n,i,r,o,a,s){var l=e.getModel(),u=t.get("edgeShape"),h=t.get("layout"),c=t.getOrient(),p=t.get(["lineStyle","curveness"]),d=t.get("edgeForkPosition"),f=l.getModel("lineStyle").getLineStyle(),g=i.__edge;if("curve"===u)e.parentNode&&e.parentNode!==n&&(g||(g=i.__edge=new du({shape:FI(h,c,p,r,r)})),Hu(g,{shape:FI(h,c,p,o,a)},t));else if("polyline"===u)if("orthogonal"===h){if(e!==n&&e.children&&0!==e.children.length&&!0===e.isExpand){for(var y=e.children,v=[],m=0;me&&(e=i.height)}this.height=e+1},t.prototype.getNodeById=function(t){if(this.getId()===t)return this;for(var e=0,n=this.children,i=n.length;e=0&&this.hostTree.data.setItemLayout(this.dataIndex,t,e)},t.prototype.getLayout=function(){return this.hostTree.data.getItemLayout(this.dataIndex)},t.prototype.getModel=function(t){if(!(this.dataIndex<0))return this.hostTree.data.getItemModel(this.dataIndex).getModel(t)},t.prototype.getLevelModel=function(){return(this.hostTree.levelModels||[])[this.depth]},t.prototype.setVisual=function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,t,e)},t.prototype.getVisual=function(t){return this.hostTree.data.getItemVisual(this.dataIndex,t)},t.prototype.getRawIndex=function(){return this.hostTree.data.getRawIndex(this.dataIndex)},t.prototype.getId=function(){return this.hostTree.data.getId(this.dataIndex)},t.prototype.isAncestorOf=function(t){for(var e=t.parentNode;e;){if(e===this)return!0;e=e.parentNode}return!1},t.prototype.isDescendantOf=function(t){return t!==this&&t.isAncestorOf(this)},t}(),$I=function(){function t(t){this.type="tree",this._nodes=[],this.hostModel=t}return t.prototype.eachNode=function(t,e,n){this.root.eachNode(t,e,n)},t.prototype.getNodeByDataIndex=function(t){var e=this.data.getRawIndex(t);return this._nodes[e]},t.prototype.getNodeById=function(t){return this.root.getNodeById(t)},t.prototype.update=function(){for(var t=this.data,e=this._nodes,n=0,i=e.length;n=0){var i=n.getData().tree.root,r=t.targetNode;if("string"==typeof r&&(r=i.getNodeById(r)),r&&i.contains(r))return{node:r};var o=t.targetNodeId;if(null!=o&&(r=i.getNodeById(o)))return{node:r}}}function QI(t){for(var e=[];t;)(t=t.parentNode)&&e.push(t);return e.reverse()}function tT(t,e){return D(QI(t),e)>=0}function eT(t,e){for(var n=[];t;){var i=t.dataIndex;n.push({name:t.name,dataIndex:i,value:e.getRawValue(i)}),t=t.parentNode}return n.reverse(),n}var nT=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.hasSymbolVisual=!0,e.ignoreStyleOnData=!0,e}return n(e,t),e.prototype.getInitialData=function(t){var e={name:t.name,children:t.data},n=t.leaves||{},i=new Oh(n,this,this.ecModel),r=$I.createTree(e,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=r.getNodeByDataIndex(e);return n&&n.children.length&&n.isExpand||(t.parentModel=i),t}))}));var o=0;r.eachNode("preorder",(function(t){t.depth>o&&(o=t.depth)}));var a=t.expandAndCollapse&&t.initialTreeDepth>=0?t.initialTreeDepth:o;return r.root.eachNode("preorder",(function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=a})),r.data},e.prototype.getOrient=function(){var t=this.get("orient");return"horizontal"===t?t="LR":"vertical"===t&&(t="TB"),t},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.formatTooltip=function(t,e,n){for(var i=this.getData().tree,r=i.root.children[0],o=i.getNodeByDataIndex(t),a=o.getValue(),s=o.name;o&&o!==r;)s=o.parentNode.name+"."+s,o=o.parentNode;return tf("nameValue",{name:s,value:a,noValue:isNaN(a)||null==a})},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treeAncestors=eT(i,this),n},e.type="series.tree",e.layoutMode="box",e.defaultOption={zlevel:0,z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",edgeShape:"curve",edgeForkPosition:"50%",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderWidth:1.5},label:{show:!0},animationEasing:"linear",animationDuration:700,animationDurationUpdate:500},e}(ff);function iT(t,e){for(var n,i=[t];n=i.pop();)if(e(n),n.isExpand){var r=n.children;if(r.length)for(var o=r.length-1;o>=0;o--)i.push(r[o])}}function rT(t,e){t.eachSeriesByType("tree",(function(t){!function(t,e){var n=function(t,e){return Vc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e);t.layoutInfo=n;var i=t.get("layout"),r=0,o=0,a=null;"radial"===i?(r=2*Math.PI,o=Math.min(n.height,n.width)/2,a=CI((function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth}))):(r=n.width,o=n.height,a=CI());var s=t.getData().tree.root,l=s.children[0];if(l){!function(t){var e=t;e.hierNode={defaultAncestor:null,ancestor:e,prelim:0,modifier:0,change:0,shift:0,i:0,thread:null};for(var n,i,r=[e];n=r.pop();)if(i=n.children,n.isExpand&&i.length)for(var o=i.length-1;o>=0;o--){var a=i[o];a.hierNode={defaultAncestor:null,ancestor:a,prelim:0,modifier:0,change:0,shift:0,i:o,thread:null},r.push(a)}}(s),function(t,e,n){for(var i,r=[t],o=[];i=r.pop();)if(o.push(i),i.isExpand){var a=i.children;if(a.length)for(var s=0;sh.getLayout().x&&(h=t),t.depth>c.depth&&(c=t)}));var p=u===h?1:a(u,h)/2,d=p-u.getLayout().x,f=0,g=0,y=0,v=0;if("radial"===i)f=r/(h.getLayout().x+p+d),g=o/(c.depth-1||1),iT(l,(function(t){y=(t.getLayout().x+d)*f,v=(t.depth-1)*g;var e=DI(y,v);t.setLayout({x:e.x,y:e.y,rawX:y,rawY:v},!0)}));else{var m=t.getOrient();"RL"===m||"LR"===m?(g=o/(h.getLayout().x+p+d),f=r/(c.depth-1||1),iT(l,(function(t){v=(t.getLayout().x+d)*g,y="LR"===m?(t.depth-1)*f:r-(t.depth-1)*f,t.setLayout({x:y,y:v},!0)}))):"TB"!==m&&"BT"!==m||(f=r/(h.getLayout().x+p+d),g=o/(c.depth-1||1),iT(l,(function(t){y=(t.getLayout().x+d)*f,v="TB"===m?(t.depth-1)*g:o-(t.depth-1)*g,t.setLayout({x:y,y:v},!0)})))}}}(t,e)}))}function oT(t){t.eachSeriesByType("tree",(function(t){var e=t.getData();e.tree.eachNode((function(t){var n=t.getModel().getModel("itemStyle").getItemStyle();I(e.ensureUniqueItemVisual(t.dataIndex,"style"),n)}))}))}var aT=function(){},sT=["treemapZoomToNode","treemapRender","treemapMove"];function lT(t){var e=t.getData().tree,n={};e.eachNode((function(e){for(var i=e;i&&i.depth>1;)i=i.parentNode;var r=xp(t.ecModel,i.name||i.dataIndex+"",n);e.setVisual("decal",r)}))}var uT=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.preventUsingHoverLayer=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};hT(n);var i=t.levels||[],r=this.designatedVisualItemStyle={},o=new Oh({itemStyle:r},this,e),a=O((i=t.levels=function(t,e){var n,i,r=xr(e.get("color")),o=xr(e.get(["aria","decal","decals"]));if(!r)return;P(t=t||[],(function(t){var e=new Oh(t),r=e.get("color"),o=e.get("decal");(e.get(["itemStyle","color"])||r&&"none"!==r)&&(n=!0),(e.get(["itemStyle","decal"])||o&&"none"!==o)&&(i=!0)}));var a=t[0]||(t[0]={});n||(a.color=r.slice());!i&&o&&(a.decal=o.slice());return t}(i,e))||[],(function(t){return new Oh(t,o,e)}),this),s=$I.createTree(n,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=s.getNodeByDataIndex(e),i=n?a[n.depth]:null;return t.parentModel=i||o,t}))}));return s.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.getRawValue(t);return tf("nameValue",{name:i.getName(t),value:r})},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treePathInfo=eT(i,this),n},e.prototype.setLayoutInfo=function(t){this.layoutInfo=this.layoutInfo||{},I(this.layoutInfo,t)},e.prototype.mapIdToIndex=function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=ht(),this._idIndexMapCount=0);var n=e.get(t);return null==n&&e.set(t,n=this._idIndexMapCount++),n},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},e.prototype.enableAriaDecal=function(){lT(this)},e.type="series.treemap",e.layoutMode="box",e.defaultOption={progressive:0,left:"center",top:"middle",width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",textStyle:{color:"#fff"}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",overflow:"truncate"},upperLabel:{show:!1,position:[0,"50%"],height:20,overflow:"truncate",verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],ellipsis:!0,verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},e}(ff);function hT(t){var e=0;P(t.children,(function(t){hT(t);var n=t.value;F(n)&&(n=n[0]),e+=n}));var n=t.value;F(n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),F(t.value)?t.value[0]=n:t.value=n}var cT=function(){function t(t){this.group=new Ei,t.add(this.group)}return t.prototype.render=function(t,e,n,i){var r=t.getModel("breadcrumb"),o=this.group;if(o.removeAll(),r.get("show")&&n){var a=r.getModel("itemStyle"),s=a.getModel("textStyle"),l={pos:{left:r.get("left"),right:r.get("right"),top:r.get("top"),bottom:r.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:r.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(n,l,s),this._renderContent(t,l,a,s,i),Bc(o,l.pos,l.box)}},t.prototype._prepare=function(t,e,n){for(var i=t;i;i=i.parentNode){var r=Cr(i.getModel().get("name"),""),o=n.getTextRect(r),a=Math.max(o.width+16,e.emptyItemWidth);e.totalWidth+=a+8,e.renderList.push({node:i,text:r,width:a})}},t.prototype._renderContent=function(t,e,n,i,r){for(var o,a,s,l,u,h,c,p,d,f=0,g=e.emptyItemWidth,y=t.get(["breadcrumb","height"]),v=(o=e.pos,a=e.box,l=a.width,u=a.height,h=Zi(o.left,l),c=Zi(o.top,u),p=Zi(o.right,l),d=Zi(o.bottom,u),(isNaN(h)||isNaN(parseFloat(o.left)))&&(h=0),(isNaN(p)||isNaN(parseFloat(o.right)))&&(p=l),(isNaN(c)||isNaN(parseFloat(o.top)))&&(c=0),(isNaN(d)||isNaN(parseFloat(o.bottom)))&&(d=u),s=wc(s||0),{width:Math.max(p-h-s[1]-s[3],0),height:Math.max(d-c-s[0]-s[2],0)}),m=e.totalWidth,_=e.renderList,x=_.length-1;x>=0;x--){var b=_[x],w=b.node,S=b.width,M=b.text;m>v.width&&(m-=S-g,S=g,M=null);var I=new ru({shape:{points:pT(f,0,S,y,x===_.length-1,0===x)},style:T(n.getItemStyle(),{lineJoin:"bevel"}),textContent:new cs({style:{text:M,fill:i.getTextColor(),font:i.getFont()}}),textConfig:{position:"inside"},z2:1e5,onclick:B(r,w)});I.disableLabelAnimation=!0,this.group.add(I),dT(I,t,w),f+=S+8}},t.prototype.remove=function(){this.group.removeAll()},t}();function pT(t,e,n,i,r,o){var a=[[r?t:t-5,e],[t+n,e],[t+n,e+i],[r?t:t-5,e+i]];return!o&&a.splice(2,0,[t+n+5,e+i/2]),!r&&a.push([t,e+i/2]),a}function dT(t,e,n){_s(t).eventData={componentType:"series",componentSubType:"treemap",componentIndex:e.componentIndex,seriesIndex:e.componentIndex,seriesName:e.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:n&&n.dataIndex,name:n&&n.name},treePathInfo:n&&eT(n,e)}}var fT=function(){function t(){this._storage=[],this._elExistsMap={}}return t.prototype.add=function(t,e,n,i,r){return!this._elExistsMap[t.id]&&(this._elExistsMap[t.id]=!0,this._storage.push({el:t,target:e,duration:n,delay:i,easing:r}),!0)},t.prototype.finished=function(t){return this._finishedCallback=t,this},t.prototype.start=function(){for(var t=this,e=this._storage.length,n=function(){--e<=0&&(t._storage.length=0,t._elExistsMap={},t._finishedCallback&&t._finishedCallback())},i=0,r=this._storage.length;i3||Math.abs(t.dy)>3)){var e=this.seriesModel.getData().tree.root;if(!e)return;var n=e.getLayout();if(!n)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:n.x+t.dx,y:n.y+t.dy,width:n.width,height:n.height}})}},e.prototype._onZoom=function(t){var e=t.originX,n=t.originY;if("animating"!==this._state){var i=this.seriesModel.getData().tree.root;if(!i)return;var r=i.getLayout();if(!r)return;var o=new gi(r.x,r.y,r.width,r.height),a=this.seriesModel.layoutInfo,s=[1,0,0,1,0,0];Un(s,s,[-(e-=a.x),-(n-=a.y)]),Yn(s,s,[t.scale,t.scale]),Un(s,s,[e,n]),o.applyTransform(s),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:o.x,y:o.y,width:o.width,height:o.height}})}},e.prototype._initEvents=function(t){var e=this;t.on("click",(function(t){if("ready"===e._state){var n=e.seriesModel.get("nodeClick",!0);if(n){var i=e.findTarget(t.offsetX,t.offsetY);if(i){var r=i.node;if(r.getLayout().isLeafRoot)e._rootToNode(i);else if("zoomToNode"===n)e._zoomToNode(i);else if("link"===n){var o=r.hostTree.data.getItemModel(r.dataIndex),a=o.get("link",!0),s=o.get("target",!0)||"blank";a&&Pc(a,s)}}}}}),this)},e.prototype._renderBreadcrumb=function(t,e,n){var i=this;n||(n=null!=t.get("leafDepth",!0)?{node:t.getViewRoot()}:this.findTarget(e.getWidth()/2,e.getHeight()/2))||(n={node:t.getData().tree.root}),(this._breadcrumb||(this._breadcrumb=new cT(this.group))).render(t,e,n.node,(function(e){"animating"!==i._state&&(tT(t.getViewRoot(),e)?i._rootToNode({node:e}):i._zoomToNode({node:e}))}))},e.prototype.remove=function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage={nodeGroup:[],background:[],content:[]},this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},e.prototype.dispose=function(){this._clearController()},e.prototype._zoomToNode=function(t){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype._rootToNode=function(t){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype.findTarget=function(t,e){var n;return this.seriesModel.getViewRoot().eachNode({attr:"viewChildren",order:"preorder"},(function(i){var r=this._storage.background[i.getRawIndex()];if(r){var o=r.transformCoordToLocal(t,e),a=r.shape;if(!(a.x<=o[0]&&o[0]<=a.x+a.width&&a.y<=o[1]&&o[1]<=a.y+a.height))return!1;n={node:i,offsetX:o[0],offsetY:o[1]}}}),this),n},e.type="treemap",e}(Tf);var ST=P,MT=X,IT=-1,TT=function(){function t(e){var n=e.mappingMethod,i=e.type,r=this.option=w(e);this.type=i,this.mappingMethod=n,this._normalizeData=zT[n];var o=t.visualHandlers[i];this.applyVisual=o.applyVisual,this.getColorMapper=o.getColorMapper,this._normalizedToVisual=o._normalizedToVisual[n],"piecewise"===n?(CT(r),function(t){var e=t.pieceList;t.hasSpecialVisual=!1,P(e,(function(e,n){e.originIndex=n,null!=e.visual&&(t.hasSpecialVisual=!0)}))}(r)):"category"===n?r.categories?function(t){var e=t.categories,n=t.categoryMap={},i=t.visual;if(ST(e,(function(t,e){n[t]=e})),!F(i)){var r=[];X(i)?ST(i,(function(t,e){var i=n[e];r[null!=i?i:IT]=t})):r[-1]=i,i=NT(t,r)}for(var o=e.length-1;o>=0;o--)null==i[o]&&(delete n[e[o]],e.pop())}(r):CT(r,!0):(rt("linear"!==n||r.dataExtent),CT(r))}return t.prototype.mapValueToVisual=function(t){var e=this._normalizeData(t);return this._normalizedToVisual(e,t)},t.prototype.getNormalizer=function(){return V(this._normalizeData,this)},t.listVisualTypes=function(){return E(t.visualHandlers)},t.isValidType=function(e){return t.visualHandlers.hasOwnProperty(e)},t.eachVisual=function(t,e,n){X(t)?P(t,e,n):e.call(n,t)},t.mapVisual=function(e,n,i){var r,o=F(e)?[]:X(e)?{}:(r=!0,null);return t.eachVisual(e,(function(t,e){var a=n.call(i,t,e);r?o=a:o[e]=a})),o},t.retrieveVisuals=function(e){var n,i={};return e&&ST(t.visualHandlers,(function(t,r){e.hasOwnProperty(r)&&(i[r]=e[r],n=!0)})),n?i:null},t.prepareVisualTypes=function(t){if(F(t))t=t.slice();else{if(!MT(t))return[];var e=[];ST(t,(function(t,n){e.push(n)})),t=e}return t.sort((function(t,e){return"color"===e&&"color"!==t&&0===t.indexOf("color")?1:-1})),t},t.dependsOn=function(t,e){return"color"===e?!(!t||0!==t.indexOf(e)):t===e},t.findPieceIndex=function(t,e,n){for(var i,r=1/0,o=0,a=e.length;ou[1]&&(u[1]=l);var h=e.get("colorMappingBy"),c={type:a.name,dataExtent:u,visual:a.range};"color"!==c.type||"index"!==h&&"id"!==h?c.mappingMethod="linear":(c.mappingMethod="category",c.loop=!0);var p=new TT(c);return VT(p).drColorMappingBy=h,p}(0,r,o,0,u,d);P(d,(function(t,e){if(t.depth>=n.length||t===n[t.depth]){var o=function(t,e,n,i,r,o){var a=I({},e);if(r){var s=r.type,l="color"===s&&VT(r).drColorMappingBy,u="index"===l?i:"id"===l?o.mapIdToIndex(n.getId()):n.getValue(t.get("visualDimension"));a[s]=r.mapValueToVisual(u)}return a}(r,u,t,e,f,i);FT(t,o,n,i)}}))}else s=GT(u),h.fill=s}}function GT(t){var e=HT(t,"color");if(e){var n=HT(t,"colorAlpha"),i=HT(t,"colorSaturation");return i&&(e=Ke(e,null,null,i)),n&&(e=$e(e,n)),e}}function HT(t,e){var n=t[e];if(null!=n&&"none"!==n)return n}function WT(t,e){var n=t.get(e);return F(n)&&n.length?{name:e,range:n}:null}var UT=Math.max,XT=Math.min,YT=Q,ZT=P,jT=["itemStyle","borderWidth"],qT=["itemStyle","gapWidth"],KT=["upperLabel","show"],$T=["upperLabel","height"],JT={seriesType:"treemap",reset:function(t,e,n,i){var r=n.getWidth(),o=n.getHeight(),a=t.option,s=Vc(t.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()}),l=a.size||[],u=Zi(YT(s.width,l[0]),r),h=Zi(YT(s.height,l[1]),o),c=i&&i.type,p=JI(i,["treemapZoomToNode","treemapRootToNode"],t),d="treemapRender"===c||"treemapMove"===c?i.rootRect:null,f=t.getViewRoot(),g=QI(f);if("treemapMove"!==c){var y="treemapZoomToNode"===c?function(t,e,n,i,r){var o,a=(e||{}).node,s=[i,r];if(!a||a===n)return s;var l=i*r,u=l*t.option.zoomToNodeRatio;for(;o=a.parentNode;){for(var h=0,c=o.children,p=0,d=c.length;per&&(u=er),a=o}ua[1]&&(a[1]=e)}))):a=[NaN,NaN];return{sum:i,dataExtent:a}}(e,a,s);if(0===u.sum)return t.viewChildren=[];if(u.sum=function(t,e,n,i,r){if(!i)return n;for(var o=t.get("visibleMin"),a=r.length,s=a,l=a-1;l>=0;l--){var u=r["asc"===i?a-l-1:l].getValue();u/n*ei&&(i=a));var l=t.area*t.area,u=e*e*n;return l?UT(u*i/l,l/(u*r)):1/0}function eC(t,e,n,i,r){var o=e===n.width?0:1,a=1-o,s=["x","y"],l=["width","height"],u=n[s[o]],h=e?t.area/e:0;(r||h>n[l[a]])&&(h=n[l[a]]);for(var c=0,p=t.length;ci&&(i=e);var o=i%2?i+2:i+3;r=[];for(var a=0;a0&&(m[0]=-m[0],m[1]=-m[1]);var x=v[0]<0?-1:1;if("start"!==i.__position&&"end"!==i.__position){var b=-Math.atan2(v[1],v[0]);u[0].8?"left":h[0]<-.8?"right":"center",p=h[1]>.8?"top":h[1]<-.8?"bottom":"middle";break;case"start":i.x=-h[0]*f+l[0],i.y=-h[1]*g+l[1],c=h[0]>.8?"right":h[0]<-.8?"left":"center",p=h[1]>.8?"bottom":h[1]<-.8?"top":"middle";break;case"insideStartTop":case"insideStart":case"insideStartBottom":i.x=f*x+l[0],i.y=l[1]+w,c=v[0]<0?"right":"left",i.originX=-f*x,i.originY=-w;break;case"insideMiddleTop":case"insideMiddle":case"insideMiddleBottom":case"middle":i.x=_[0],i.y=_[1]+w,c="center",i.originY=-w;break;case"insideEndTop":case"insideEnd":case"insideEndBottom":i.x=-f*x+u[0],i.y=u[1]+w,c=v[0]>=0?"right":"left",i.originX=f*x,i.originY=-w}i.scaleX=i.scaleY=r,i.setStyle({verticalAlign:i.__verticalAlign||p,align:i.__align||c})}}}function S(t,e){var n=t.__specifiedRotation;if(null==n){var i=a.tangentAt(e);t.attr("rotation",(1===e?-1:1)*Math.PI/2-Math.atan2(i[1],i[0]))}else t.attr("rotation",n)}},e}(Ei),VC=function(){function t(t){this.group=new Ei,this._LineCtor=t||EC}return t.prototype.isPersistent=function(){return!0},t.prototype.updateData=function(t){var e=this,n=this,i=n.group,r=n._lineData;n._lineData=t,r||i.removeAll();var o=BC(t);t.diff(r).add((function(n){e._doAdd(t,n,o)})).update((function(n,i){e._doUpdate(r,t,i,n,o)})).remove((function(t){i.remove(r.getItemGraphicEl(t))})).execute()},t.prototype.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl((function(e,n){e.updateLayout(t,n)}),this)},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=BC(t),this._lineData=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e){function n(t){t.isGroup||function(t){return t.animators&&t.animators.length>0}(t)||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}for(var i=t.start;i=0?i+=u:i-=u:f>=0?i-=u:i+=u}return i}function qC(t,e){var n=[],i=Zo,r=[[],[],[]],o=[[],[]],a=[];e/=2,t.eachEdge((function(t,s){var l=t.getLayout(),u=t.getVisual("fromSymbol"),h=t.getVisual("toSymbol");l.__original||(l.__original=[mt(l[0]),mt(l[1])],l[2]&&l.__original.push(mt(l[2])));var c=l.__original;if(null!=l[2]){if(vt(r[0],c[0]),vt(r[1],c[2]),vt(r[2],c[1]),u&&"none"!==u){var p=_C(t.node1),d=jC(r,c[0],p*e);i(r[0][0],r[1][0],r[2][0],d,n),r[0][0]=n[3],r[1][0]=n[4],i(r[0][1],r[1][1],r[2][1],d,n),r[0][1]=n[3],r[1][1]=n[4]}if(h&&"none"!==h){p=_C(t.node2),d=jC(r,c[1],p*e);i(r[0][0],r[1][0],r[2][0],d,n),r[1][0]=n[1],r[2][0]=n[2],i(r[0][1],r[1][1],r[2][1],d,n),r[1][1]=n[1],r[2][1]=n[2]}vt(l[0],r[0]),vt(l[1],r[2]),vt(l[2],r[1])}else{if(vt(o[0],c[0]),vt(o[1],c[1]),wt(a,o[1],o[0]),Dt(a,a),u&&"none"!==u){p=_C(t.node1);bt(o[0],o[0],a,p*e)}if(h&&"none"!==h){p=_C(t.node2);bt(o[1],o[1],a,-p*e)}vt(l[0],o[0]),vt(l[1],o[1])}}))}function KC(t){return"view"===t.type}var $C=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){var n=new mw,i=new VC,r=this.group;this._controller=new WM(e.getZr()),this._controllerHost={target:r},r.add(n.group),r.add(i.group),this._symbolDraw=n,this._lineDraw=i,this._firstRender=!0},e.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem;this._model=t;var o=this._symbolDraw,a=this._lineDraw,s=this.group;if(KC(r)){var l={x:r.x,y:r.y,scaleX:r.scaleX,scaleY:r.scaleY};this._firstRender?s.attr(l):Hu(s,l,t)}qC(t.getGraph(),mC(t));var u=t.getData();o.updateData(u);var h=t.getEdgeData();a.updateData(h),this._updateNodeAndLinkScale(),this._updateController(t,e,n),clearTimeout(this._layoutTimeout);var c=t.forceLayout,p=t.get(["force","layoutAnimation"]);c&&this._startForceLayoutIteration(c,p),u.graph.eachNode((function(t){var e=t.dataIndex,n=t.getGraphicEl(),r=t.getModel();n.off("drag").off("dragend");var o=r.get("draggable");o&&n.on("drag",(function(){c&&(c.warmUp(),!i._layouting&&i._startForceLayoutIteration(c,p),c.setFixed(e),u.setItemLayout(e,[n.x,n.y]))})).on("dragend",(function(){c&&c.setUnfixed(e)})),n.setDraggable(o&&!!c),"adjacency"===r.get(["emphasis","focus"])&&(_s(n).focus=t.getAdjacentDataIndices())})),u.graph.eachEdge((function(t){var e=t.getGraphicEl();"adjacency"===t.getModel().get(["emphasis","focus"])&&(_s(e).focus={edge:[t.dataIndex],node:[t.node1.dataIndex,t.node2.dataIndex]})}));var d="circular"===t.get("layout")&&t.get(["circular","rotateLabel"]),f=u.getLayout("cx"),g=u.getLayout("cy");u.eachItemGraphicEl((function(t,e){var n=u.getItemModel(e).get(["label","rotate"])||0,i=t.getSymbolPath();if(d){var r=u.getItemLayout(e),o=Math.atan2(r[1]-g,r[0]-f);o<0&&(o=2*Math.PI+o);var a=r[0]=0&&t.call(e,n[r],r)},t.prototype.eachEdge=function(t,e){for(var n=this.edges,i=n.length,r=0;r=0&&n[r].node1.dataIndex>=0&&n[r].node2.dataIndex>=0&&t.call(e,n[r],r)},t.prototype.breadthFirstTraverse=function(t,e,n,i){if(e instanceof tD||(e=this._nodesMap[JC(e)]),e){for(var r="out"===n?"outEdges":"in"===n?"inEdges":"edges",o=0;o=0&&n.node2.dataIndex>=0}));for(r=0,o=i.length;r=0&&this[t][e].setItemVisual(this.dataIndex,n,i)},getVisual:function(n){return this[t][e].getItemVisual(this.dataIndex,n)},setLayout:function(n,i){this.dataIndex>=0&&this[t][e].setItemLayout(this.dataIndex,n,i)},getLayout:function(){return this[t][e].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[t][e].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[t][e].getRawIndex(this.dataIndex)}}}function iD(t,e,n,i,r){for(var o=new QC(i),a=0;a "+p)),u++)}var d,f=n.get("coordinateSystem");if("cartesian2d"===f||"polar"===f)d=F_(t,n);else{var g=Ap.get(f),y=g&&g.dimensions||[];D(y,"value")<0&&y.concat(["value"]);var v=O_(t,{coordDimensions:y});(d=new L_(v,n)).initData(t)}var m=new L_(["value"],n);return m.initData(l,s),r&&r(d,m),HI({mainData:d,struct:o,structAttr:"graph",datas:{node:d,edge:m},datasAttr:{node:"data",edge:"edgeData"}}),o.update(),o}L(tD,nD("hostGraph","data")),L(eD,nD("hostGraph","edgeData"));var rD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments);var n=this;function i(){return n._categoriesData}this.legendVisualProvider=new IS(i,i),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},e.prototype.mergeDefaultAndTheme=function(e){t.prototype.mergeDefaultAndTheme.apply(this,arguments),br(e,"edgeLabel",["show"])},e.prototype.getInitialData=function(t,e){var n,i=t.edges||t.links||[],r=t.data||t.nodes||[],o=this;if(r&&i){uC(n=this)&&(n.__curvenessList=[],n.__edgeMap={},hC(n));var a=iD(r,i,this,!0,(function(t,e){t.wrapMethod("getItemModel",(function(t){var e=o._categoriesModels[t.getShallow("category")];return e&&(e.parentModel=t.parentModel,t.parentModel=e),t}));var n=Oh.prototype.getModel;function i(t,e){var i=n.call(this,t,e);return i.resolveParentPath=r,i}function r(t){if(t&&("label"===t[0]||"label"===t[1])){var e=t.slice();return"label"===t[0]?e[0]="edgeLabel":"label"===t[1]&&(e[1]="edgeLabel"),e}return t}e.wrapMethod("getItemModel",(function(t){return t.resolveParentPath=r,t.getModel=i,t}))}));return P(a.edges,(function(t){!function(t,e,n,i){if(uC(n)){var r=cC(t,e,n),o=n.__edgeMap,a=o[pC(r)];o[r]&&!a?o[r].isForward=!0:a&&o[r]&&(a.isForward=!0,o[r].isForward=!1),o[r]=o[r]||[],o[r].push(i)}}(t.node1,t.node2,this,t.dataIndex)}),this),a.data}},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.getCategoriesData=function(){return this._categoriesData},e.prototype.formatTooltip=function(t,e,n){if("edge"===n){var i=this.getData(),r=this.getDataParams(t,n),o=i.graph.getEdgeByIndex(t),a=i.getName(o.node1.dataIndex),s=i.getName(o.node2.dataIndex),l=[];return null!=a&&l.push(a),null!=s&&l.push(s),tf("nameValue",{name:l.join(" > "),value:r.value,noValue:null==r.value})}return cf({series:this,dataIndex:t,multipleSeries:e})},e.prototype._updateCategoriesData=function(){var t=O(this.option.categories||[],(function(t){return null!=t.value?t:I({value:0},t)})),e=new L_(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray((function(t){return e.getItemModel(t)}))},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.isAnimationEnabled=function(){return t.prototype.isAnimationEnabled.call(this)&&!("force"===this.get("layout")&&this.get(["force","layoutAnimation"]))},e.type="series.graph",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={zlevel:0,z:2,coordinateSystem:"view",legendHoverLink:!0,layout:null,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,friction:.6,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle",distance:5},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,opacity:.5},emphasis:{scale:!0,label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(ff),oD={type:"graphRoam",event:"graphRoam",update:"none"};var aD=function(){this.angle=0,this.width=10,this.r=10,this.x=0,this.y=0},sD=function(t){function e(e){var n=t.call(this,e)||this;return n.type="pointer",n}return n(e,t),e.prototype.getDefaultShape=function(){return new aD},e.prototype.buildPath=function(t,e){var n=Math.cos,i=Math.sin,r=e.r,o=e.width,a=e.angle,s=e.x-n(a)*o*(o>=r/3?1:2),l=e.y-i(a)*o*(o>=r/3?1:2);a=e.angle-Math.PI/2,t.moveTo(s,l),t.lineTo(e.x+n(a)*o,e.y+i(a)*o),t.lineTo(e.x+n(e.angle)*r,e.y+i(e.angle)*r),t.lineTo(e.x-n(a)*o,e.y-i(a)*o),t.lineTo(s,l)},e}(Ka);function lD(t,e){var n=null==t?"":t+"";return e&&("string"==typeof e?n=e.replace("{value}",n):"function"==typeof e&&(n=e(t))),n}var uD=2*Math.PI,hD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){this.group.removeAll();var i=t.get(["axisLine","lineStyle","color"]),r=function(t,e){var n=t.get("center"),i=e.getWidth(),r=e.getHeight(),o=Math.min(i,r);return{cx:Zi(n[0],e.getWidth()),cy:Zi(n[1],e.getHeight()),r:Zi(t.get("radius"),o/2)}}(t,n);this._renderMain(t,e,n,i,r),this._data=t.getData()},e.prototype.dispose=function(){},e.prototype._renderMain=function(t,e,n,i,r){for(var o=this.group,a=t.get("clockwise"),s=-t.get("startAngle")/180*Math.PI,l=-t.get("endAngle")/180*Math.PI,u=t.getModel("axisLine"),h=u.get("roundCap")?Jw:Jl,c=u.get("show"),p=u.getModel("lineStyle"),d=p.get("width"),f=(l-s)%uD||l===s?(l-s)%uD:uD,g=s,y=0;c&&y=t&&(0===e?0:i[e-1][0]).8?"bottom":"middle",align:u<-.4?"left":u>.4?"right":"center"},{inheritColor:R}),silent:!0}))}if(m.get("show")&&L!==x){P=(P=m.get("distance"))?P+l:l;for(var N=0;N<=b;N++){u=Math.cos(M),h=Math.sin(M);var z=new uu({shape:{x1:u*(f-P)+p,y1:h*(f-P)+d,x2:u*(f-S-P)+p,y2:h*(f-S-P)+d},silent:!0,style:D});"auto"===D.stroke&&z.setStyle({stroke:i((L+N/b)/x)}),c.add(z),M+=T}M-=T}else M+=I}},e.prototype._renderPointer=function(t,e,n,i,r,o,a,s,l){var u=this.group,h=this._data,c=this._progressEls,p=[],d=t.get(["pointer","show"]),f=t.getModel("progress"),g=f.get("show"),y=t.getData(),v=y.mapDimension("value"),m=+t.get("min"),_=+t.get("max"),x=[m,_],b=[o,a];function w(e,n){var i,o=y.getItemModel(e).getModel("pointer"),a=Zi(o.get("width"),r.r),s=Zi(o.get("length"),r.r),l=t.get(["pointer","icon"]),u=o.get("offsetCenter"),h=Zi(u[0],r.r),c=Zi(u[1],r.r),p=o.get("keepAspect");return(i=l?fy(l,h-a/2,c-s,a,s,null,p):new sD({shape:{angle:-Math.PI/2,width:a,r:s,x:h,y:c}})).rotation=-(n+Math.PI/2),i.x=r.cx,i.y=r.cy,i}function S(t,e){var n=f.get("roundCap")?Jw:Jl,i=f.get("overlap"),a=i?f.get("width"):l/y.count(),u=i?r.r-a:r.r-(t+1)*a,h=i?r.r:r.r-t*a,c=new n({shape:{startAngle:o,endAngle:e,cx:r.cx,cy:r.cy,clockwise:s,r0:u,r:h}});return i&&(c.z2=_-y.get(v,t)%_),c}(g||d)&&(y.diff(h).add((function(e){if(d){var n=w(e,o);Wu(n,{rotation:-(Yi(y.get(v,e),x,b,!0)+Math.PI/2)},t),u.add(n),y.setItemGraphicEl(e,n)}if(g){var i=S(e,o),r=f.get("clip");Wu(i,{shape:{endAngle:Yi(y.get(v,e),x,b,r)}},t),u.add(i),p[e]=i}})).update((function(e,n){if(d){var i=h.getItemGraphicEl(n),r=i?i.rotation:o,a=w(e,r);a.rotation=r,Hu(a,{rotation:-(Yi(y.get(v,e),x,b,!0)+Math.PI/2)},t),u.add(a),y.setItemGraphicEl(e,a)}if(g){var s=c[n],l=S(e,s?s.shape.endAngle:o),m=f.get("clip");Hu(l,{shape:{endAngle:Yi(y.get(v,e),x,b,m)}},t),u.add(l),p[e]=l}})).execute(),y.each((function(t){var e=y.getItemModel(t),n=e.getModel("emphasis");if(d){var r=y.getItemGraphicEl(t),o=y.getItemVisual(t,"style"),a=o.fill;if(r instanceof es){var s=r.style;r.useStyle(I({image:s.image,x:s.x,y:s.y,width:s.width,height:s.height},o))}else r.useStyle(o),"pointer"!==r.type&&r.setColor(a);r.setStyle(e.getModel(["pointer","itemStyle"]).getItemStyle()),"auto"===r.style.fill&&r.setStyle("fill",i(Yi(y.get(v,t),x,[0,1],!0))),r.z2EmphasisLift=0,cl(r,e),sl(r,n.get("focus"),n.get("blurScope"))}if(g){var l=p[t];l.useStyle(y.getItemVisual(t,"style")),l.setStyle(e.getModel(["progress","itemStyle"]).getItemStyle()),l.z2EmphasisLift=0,cl(l,e),sl(l,n.get("focus"),n.get("blurScope"))}})),this._progressEls=p)},e.prototype._renderAnchor=function(t,e){var n=t.getModel("anchor");if(n.get("show")){var i=n.get("size"),r=n.get("icon"),o=n.get("offsetCenter"),a=n.get("keepAspect"),s=fy(r,e.cx-i/2+Zi(o[0],e.r),e.cy-i/2+Zi(o[1],e.r),i,i,null,a);s.z2=n.get("showAbove")?1:0,s.setStyle(n.getModel("itemStyle").getItemStyle()),this.group.add(s)}},e.prototype._renderTitleAndDetail=function(t,e,n,i,r){var o=this,a=t.getData(),s=a.mapDimension("value"),l=+t.get("min"),u=+t.get("max"),h=new Ei,c=[],p=[],d=t.isAnimationEnabled();a.diff(this._data).add((function(t){c[t]=new cs({silent:!0}),p[t]=new cs({silent:!0})})).update((function(t,e){c[t]=o._titleEls[e],p[t]=o._detailEls[e]})).execute(),a.each((function(e){var n=a.getItemModel(e),o=a.get(s,e),f=new Ei,g=i(Yi(o,[l,u],[0,1],!0)),y=n.getModel("title");if(y.get("show")){var v=y.get("offsetCenter"),m=r.cx+Zi(v[0],r.r),_=r.cy+Zi(v[1],r.r);(C=c[e]).attr({style:ph(y,{x:m,y:_,text:a.getName(e),align:"center",verticalAlign:"middle"},{inheritColor:g})}),f.add(C)}var x=n.getModel("detail");if(x.get("show")){var b=x.get("offsetCenter"),w=r.cx+Zi(b[0],r.r),S=r.cy+Zi(b[1],r.r),M=Zi(x.get("width"),r.r),I=Zi(x.get("height"),r.r),T=t.get(["progress","show"])?a.getItemVisual(e,"style").fill:g,C=p[e],D=x.get("formatter");C.attr({style:ph(x,{x:w,y:S,text:lD(o,D),width:isNaN(M)?null:M,height:isNaN(I)?null:I,align:"center",verticalAlign:"middle"},{inheritColor:T})}),xh(C,{normal:x},o,(function(t){return lD(t,D)})),d&&bh(C,e,a,t,{getFormattedLabel:function(t,e,n,i,r,a){return lD(a?a.interpolatedValue:o,D)}}),f.add(C)}h.add(f)})),this.group.add(h),this._titleEls=c,this._detailEls=p},e.type="gauge",e}(Tf),cD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.visualStyleAccessPath="itemStyle",n.useColorPaletteOnData=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){return MS(this,["value"])},e.type="series.gauge",e.defaultOption={zlevel:0,z:2,center:["50%","50%"],legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,clockwise:!0,min:0,max:100,splitNumber:10,axisLine:{show:!0,roundCap:!1,lineStyle:{color:[[1,"#E6EBF8"]],width:10}},progress:{show:!1,overlap:!0,width:10,roundCap:!1,clip:!0},splitLine:{show:!0,length:10,distance:10,lineStyle:{color:"#63677A",width:3,type:"solid"}},axisTick:{show:!0,splitNumber:5,length:6,distance:10,lineStyle:{color:"#63677A",width:1,type:"solid"}},axisLabel:{show:!0,distance:15,color:"#464646",fontSize:12},pointer:{icon:null,offsetCenter:[0,0],show:!0,length:"60%",width:6,keepAspect:!1},anchor:{show:!1,showAbove:!1,size:6,icon:"circle",offsetCenter:[0,0],keepAspect:!1,itemStyle:{color:"#fff",borderWidth:0,borderColor:"#5470c6"}},title:{show:!0,offsetCenter:[0,"20%"],color:"#464646",fontSize:16,valueAnimation:!1},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:null,padding:[5,10],offsetCenter:[0,"40%"],color:"#464646",fontSize:30,fontWeight:"bold",lineHeight:30,valueAnimation:!1}},e}(ff);var pD=["itemStyle","opacity"],dD=function(t){function e(e,n){var i=t.call(this)||this,r=i,o=new au,a=new cs;return r.setTextContent(a),i.setTextGuideLine(o),i.updateData(e,n,!0),i}return n(e,t),e.prototype.updateData=function(t,e,n){var i=this,r=t.hostModel,o=t.getItemModel(e),a=t.getItemLayout(e),s=o.getModel("emphasis"),l=o.get(pD);l=null==l?1:l,i.useStyle(t.getItemVisual(e,"style")),i.style.lineJoin="round",n?(i.setShape({points:a.points}),i.style.opacity=0,Wu(i,{style:{opacity:l}},r,e)):Hu(i,{style:{opacity:l},shape:{points:a.points}},r,e),cl(i,o),this._updateLabel(t,e),sl(this,s.get("focus"),s.get("blurScope"))},e.prototype._updateLabel=function(t,e){var n=this,i=this.getTextGuideLine(),r=n.getTextContent(),o=t.hostModel,a=t.getItemModel(e),s=t.getItemLayout(e).label,l=t.getItemVisual(e,"style"),u=l.fill;hh(r,ch(a),{labelFetcher:t.hostModel,labelDataIndex:e,defaultOpacity:l.opacity,defaultText:t.getName(e)},{normal:{align:s.textAlign,verticalAlign:s.verticalAlign}}),n.setTextConfig({local:!0,inside:!!s.inside,insideStroke:u,outsideFill:u});var h=s.linePoints;i.setShape({points:h}),n.textGuideLineConfig={anchor:h?new ai(h[0][0],h[0][1]):null},Hu(r,{style:{x:s.x,y:s.y}},o,e),r.attr({rotation:s.rotation,originX:s.x,originY:s.y,z2:10}),Hg(n,Wg(a),{stroke:u})},e}(ru),fD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.ignoreLabelLineUpdate=!0,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this._data,o=this.group;i.diff(r).add((function(t){var e=new dD(i,t);i.setItemGraphicEl(t,e),o.add(e)})).update((function(t,e){var n=r.getItemGraphicEl(e);n.updateData(i,t),o.add(n),i.setItemGraphicEl(t,n)})).remove((function(e){Yu(r.getItemGraphicEl(e),t,e)})).execute(),this._data=i},e.prototype.remove=function(){this.group.removeAll(),this._data=null},e.prototype.dispose=function(){},e.type="funnel",e}(Tf),gD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.useColorPaletteOnData=!0,n}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new IS(V(this.getData,this),V(this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.getInitialData=function(t,e){return MS(this,{coordDimensions:["value"],encodeDefaulter:B(up,this)})},e.prototype._defaultLabelLine=function(t){br(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=n.mapDimension("value"),o=n.getSum(r);return i.percent=o?+(n.get(r,e)/o*100).toFixed(2):0,i.$vars.push("percent"),i},e.type="series.funnel",e.defaultOption={zlevel:0,z:2,legendHoverLink:!0,left:80,top:60,right:80,bottom:60,minSize:"0%",maxSize:"100%",sort:"descending",orient:"vertical",gap:0,funnelAlign:"center",label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1}},itemStyle:{borderColor:"#fff",borderWidth:1},emphasis:{label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(ff);function yD(t,e){t.eachSeriesByType("funnel",(function(t){var n=t.getData(),i=n.mapDimension("value"),r=t.get("sort"),o=function(t,e){return Vc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e),a=t.get("orient"),s=o.width,l=o.height,u=function(t,e){for(var n=t.mapDimension("value"),i=t.mapArray(n,(function(t){return t})),r=[],o="ascending"===e,a=0,s=t.count();a5)return;var i=this._model.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]);"none"!==i.behavior&&this._dispatchExpand({axisExpandWindow:i.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(t){if(!this._mouseDownPoint&&AD(this,"mousemove")){var e=this._model,n=e.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]),i=n.behavior;"jump"===i&&this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")),this._throttledDispatchExpand("none"===i?null:{axisExpandWindow:n.axisExpandWindow,animation:"jump"===i?null:{duration:0}})}}};function AD(t,e){var n=t._model;return n.get("axisExpandable")&&n.get("axisExpandTriggerOn")===e}var LD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){t.prototype.init.apply(this,arguments),this.mergeOption({})},e.prototype.mergeOption=function(t){var e=this.option;t&&S(e,t,!0),this._initDimensions()},e.prototype.contains=function(t,e){var n=t.get("parallelIndex");return null!=n&&e.getComponent("parallel",n)===this},e.prototype.setAxisExpand=function(t){P(["axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandWindow"],(function(e){t.hasOwnProperty(e)&&(this.option[e]=t[e])}),this)},e.prototype._initDimensions=function(){var t=this.dimensions=[],e=this.parallelAxisIndex=[];P(N(this.ecModel.queryComponents({mainType:"parallelAxis"}),(function(t){return(t.get("parallelIndex")||0)===this.componentIndex}),this),(function(n){t.push("dim"+n.get("dim")),e.push(n.componentIndex)}))},e.type="parallel",e.dependencies=["parallelAxis"],e.layoutMode="box",e.defaultOption={zlevel:0,z:0,left:80,top:60,right:80,bottom:60,layout:"horizontal",axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:"click",parallelAxisDefault:null},e}(Xc),kD=function(t){function e(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.type=r||"value",a.axisIndex=o,a}return n(e,t),e.prototype.isHorizontal=function(){return"horizontal"!==this.coordinateSystem.getModel().get("layout")},e}(hb);function PD(t,e,n,i,r,o){t=t||0;var a=n[1]-n[0];if(null!=r&&(r=RD(r,[0,a])),null!=o&&(o=Math.max(o,null!=r?r:0)),"all"===i){var s=Math.abs(e[1]-e[0]);s=RD(s,[0,a]),r=o=RD(s,[r,o]),i=0}e[0]=RD(e[0],n),e[1]=RD(e[1],n);var l=OD(e,i);e[i]+=t;var u,h=r||0,c=n.slice();return l.sign<0?c[0]+=h:c[1]-=h,e[i]=RD(e[i],c),u=OD(e,i),null!=r&&(u.sign!==l.sign||u.spano&&(e[1-i]=e[i]+u.sign*o),e}function OD(t,e){var n=t[e]-t[1-e];return{span:Math.abs(n),sign:n>0?-1:n<0?1:e?-1:1}}function RD(t,e){return Math.min(null!=e[1]?e[1]:1/0,Math.max(null!=e[0]?e[0]:-1/0,t))}var ND=P,zD=Math.min,ED=Math.max,VD=Math.floor,BD=Math.ceil,FD=ji,GD=Math.PI,HD=function(){function t(t,e,n){this.type="parallel",this._axesMap=ht(),this._axesLayout={},this.dimensions=t.dimensions,this._model=t,this._init(t,e,n)}return t.prototype._init=function(t,e,n){var i=t.dimensions,r=t.parallelAxisIndex;ND(i,(function(t,n){var i=r[n],o=e.getComponent("parallelAxis",i),a=this._axesMap.set(t,new kD(t,Bx(o),[0,0],o.get("type"),i)),s="category"===a.type;a.onBand=s&&o.get("boundaryGap"),a.inverse=o.get("inverse"),o.axis=a,a.model=o,a.coordinateSystem=o.coordinateSystem=this}),this)},t.prototype.update=function(t,e){this._updateAxesFromSeries(this._model,t)},t.prototype.containPoint=function(t){var e=this._makeLayoutInfo(),n=e.axisBase,i=e.layoutBase,r=e.pixelDimIndex,o=t[1-r],a=t[r];return o>=n&&o<=n+e.axisLength&&a>=i&&a<=i+e.layoutLength},t.prototype.getModel=function(){return this._model},t.prototype._updateAxesFromSeries=function(t,e){e.eachSeries((function(n){if(t.contains(n,e)){var i=n.getData();ND(this.dimensions,(function(t){var e=this._axesMap.get(t);e.scale.unionExtentFromData(i,i.mapDimension(t)),Vx(e.scale,e.model)}),this)}}),this)},t.prototype.resize=function(t,e){this._rect=Vc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()}),this._layoutAxes()},t.prototype.getRect=function(){return this._rect},t.prototype._makeLayoutInfo=function(){var t,e=this._model,n=this._rect,i=["x","y"],r=["width","height"],o=e.get("layout"),a="horizontal"===o?0:1,s=n[r[a]],l=[0,s],u=this.dimensions.length,h=WD(e.get("axisExpandWidth"),l),c=WD(e.get("axisExpandCount")||0,[0,u]),p=e.get("axisExpandable")&&u>3&&u>c&&c>1&&h>0&&s>0,d=e.get("axisExpandWindow");d?(t=WD(d[1]-d[0],l),d[1]=d[0]+t):(t=WD(h*(c-1),l),(d=[h*(e.get("axisExpandCenter")||VD(u/2))-t/2])[1]=d[0]+t);var f=(s-t)/(u-c);f<3&&(f=0);var g=[VD(FD(d[0]/h,1))+1,BD(FD(d[1]/h,1))-1],y=f/h*d[0];return{layout:o,pixelDimIndex:a,layoutBase:n[i[a]],layoutLength:s,axisBase:n[i[1-a]],axisLength:n[r[1-a]],axisExpandable:p,axisExpandWidth:h,axisCollapseWidth:f,axisExpandWindow:d,axisCount:u,winInnerIndices:g,axisExpandWindow0Pos:y}},t.prototype._layoutAxes=function(){var t=this._rect,e=this._axesMap,n=this.dimensions,i=this._makeLayoutInfo(),r=i.layout;e.each((function(t){var e=[0,i.axisLength],n=t.inverse?1:0;t.setExtent(e[n],e[1-n])})),ND(n,(function(e,n){var o=(i.axisExpandable?XD:UD)(n,i),a={horizontal:{x:o.position,y:i.axisLength},vertical:{x:0,y:o.position}},s={horizontal:GD/2,vertical:0},l=[a[r].x+t.x,a[r].y+t.y],u=s[r],h=[1,0,0,1,0,0];Xn(h,h,u),Un(h,h,l),this._axesLayout[e]={position:l,rotation:u,transform:h,axisNameAvailableWidth:o.axisNameAvailableWidth,axisLabelShow:o.axisLabelShow,nameTruncateMaxWidth:o.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}}),this)},t.prototype.getAxis=function(t){return this._axesMap.get(t)},t.prototype.dataToPoint=function(t,e){return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t),e)},t.prototype.eachActiveState=function(t,e,n,i){null==n&&(n=0),null==i&&(i=t.count());var r=this._axesMap,o=this.dimensions,a=[],s=[];P(o,(function(e){a.push(t.mapDimension(e)),s.push(r.get(e).model)}));for(var l=this.hasAxisBrushed(),u=n;ur*(1-h[0])?(l="jump",a=s-r*(1-h[2])):(a=s-r*h[1])>=0&&(a=s-r*(1-h[1]))<=0&&(a=0),(a*=e.axisExpandWidth/u)?PD(a,i,o,"all"):l="none";else{var p=i[1]-i[0];(i=[ED(0,o[1]*s/p-p/2)])[1]=zD(o[1],i[0]+p),i[0]=i[1]-p}return{axisExpandWindow:i,behavior:l}},t}();function WD(t,e){return zD(ED(t,e[0]),e[1])}function UD(t,e){var n=e.layoutLength/(e.axisCount-1);return{position:n*t,axisNameAvailableWidth:n,axisLabelShow:!0}}function XD(t,e){var n,i,r=e.layoutLength,o=e.axisExpandWidth,a=e.axisCount,s=e.axisCollapseWidth,l=e.winInnerIndices,u=s,h=!1;return t=0;n--)qi(e[n])},e.prototype.getActiveState=function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t||isNaN(+t))return"inactive";if(1===e.length){var n=e[0];if(n[0]<=t&&t<=n[1])return"active"}else for(var i=0,r=e.length;i6}(t)||o){if(a&&!o){"single"===s.brushMode&&pA(t);var l=w(s);l.brushType=AA(l.brushType,a),l.panelId=a===jD?null:a.panelId,o=t._creatingCover=rA(t,l),t._covers.push(o)}if(o){var u=PA[AA(t._brushType,a)];o.__brushOption.range=u.getCreatingRange(IA(t,o,t._track)),i&&(oA(t,o),u.updateCommon(t,o)),aA(t,o),r={isEnd:i}}}else i&&"single"===s.brushMode&&s.removeOnClick&&hA(t,e,n)&&pA(t)&&(r={isEnd:i,removeOnClick:!0});return r}function AA(t,e){return"auto"===t?e.defaultBrushType:t}var LA={mousedown:function(t){if(this._dragging)kA(this,t);else if(!t.target||!t.target.draggable){TA(t);var e=this.group.transformCoordToLocal(t.offsetX,t.offsetY);this._creatingCover=null,(this._creatingPanel=hA(this,t,e))&&(this._dragging=!0,this._track=[e.slice()])}},mousemove:function(t){var e=t.offsetX,n=t.offsetY,i=this.group.transformCoordToLocal(e,n);if(function(t,e,n){if(t._brushType&&!function(t,e,n){var i=t._zr;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}(t,e.offsetX,e.offsetY)){var i=t._zr,r=t._covers,o=hA(t,e,n);if(!t._dragging)for(var a=0;a=0&&(o[r[a].depth]=new Oh(r[a],this,e));if(i&&n)return iD(i,n,this,!0,(function(t,e){t.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,i=n.getData().getItemLayout(e);if(i){var r=i.depth,o=n.levelModels[r];o&&(t.parentModel=o)}return t})),e.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,i=n.getGraph().getEdgeByIndex(e).node1.getLayout();if(i){var r=i.depth,o=n.levelModels[r];o&&(t.parentModel=o)}return t}))})).data},e.prototype.setNodePosition=function(t,e){var n=this.option.data[t];n.localX=e[0],n.localY=e[1]},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.formatTooltip=function(t,e,n){function i(t){return isNaN(t)||null==t}if("edge"===n){var r=this.getDataParams(t,n),o=r.data,a=r.value;return tf("nameValue",{name:o.source+" -- "+o.target,value:a,noValue:i(a)})}var s=this.getGraph().getNodeByIndex(t).getLayout().value,l=this.getDataParams(t,n).data.name;return tf("nameValue",{name:null!=l?l+"":null,value:s,noValue:i(s)})},e.prototype.optionUpdated=function(){},e.prototype.getDataParams=function(e,n){var i=t.prototype.getDataParams.call(this,e,n);if(null==i.value&&"node"===n){var r=this.getGraph().getNodeByIndex(e).getLayout().value;i.value=r}return i},e.type="series.sankey",e.defaultOption={zlevel:0,z:2,coordinateSystem:"view",left:"5%",top:"5%",right:"20%",bottom:"5%",orient:"horizontal",nodeWidth:20,nodeGap:8,draggable:!0,layoutIterations:32,label:{show:!0,position:"right",fontSize:12},levels:[],nodeAlign:"justify",lineStyle:{color:"#314656",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},select:{itemStyle:{borderColor:"#212121"}},animationEasing:"linear",animationDuration:1e3},e}(ff);function ZA(t,e){t.eachSeriesByType("sankey",(function(t){var n=t.get("nodeWidth"),i=t.get("nodeGap"),r=function(t,e){return Vc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e);t.layoutInfo=r;var o=r.width,a=r.height,s=t.getGraph(),l=s.nodes,u=s.edges;!function(t){P(t,(function(t){var e=iL(t.outEdges,nL),n=iL(t.inEdges,nL),i=t.getValue()||0,r=Math.max(e,n,i);t.setLayout({value:r},!0)}))}(l),function(t,e,n,i,r,o,a,s,l){(function(t,e,n,i,r,o,a){for(var s=[],l=[],u=[],h=[],c=0,p=0;p=0;v&&y.depth>d&&(d=y.depth),g.setLayout({depth:v?y.depth:c},!0),"vertical"===o?g.setLayout({dy:n},!0):g.setLayout({dx:n},!0);for(var m=0;mc-1?d:c-1;a&&"left"!==a&&function(t,e,n,i){if("right"===e){for(var r=[],o=t,a=0;o.length;){for(var s=0;s0;o--)KA(s,l*=.99,a),qA(s,r,n,i,a),rL(s,l,a),qA(s,r,n,i,a)}(t,e,o,r,i,a,s),function(t,e){var n="vertical"===e?"x":"y";P(t,(function(t){t.outEdges.sort((function(t,e){return t.node2.getLayout()[n]-e.node2.getLayout()[n]})),t.inEdges.sort((function(t,e){return t.node1.getLayout()[n]-e.node1.getLayout()[n]}))})),P(t,(function(t){var e=0,n=0;P(t.outEdges,(function(t){t.setLayout({sy:e},!0),e+=t.getLayout().dy})),P(t.inEdges,(function(t){t.setLayout({ty:n},!0),n+=t.getLayout().dy}))}))}(t,s)}(l,u,n,i,o,a,0!==N(l,(function(t){return 0===t.getLayout().value})).length?0:t.get("layoutIterations"),t.get("orient"),t.get("nodeAlign"))}))}function jA(t){var e=t.hostGraph.data.getRawDataItem(t.dataIndex);return null!=e.depth&&e.depth>=0}function qA(t,e,n,i,r){var o="vertical"===r?"x":"y";P(t,(function(t){var a,s,l;t.sort((function(t,e){return t.getLayout()[o]-e.getLayout()[o]}));for(var u=0,h=t.length,c="vertical"===r?"dx":"dy",p=0;p0&&(a=s.getLayout()[o]+l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),u=s.getLayout()[o]+s.getLayout()[c]+e;if((l=u-e-("vertical"===r?i:n))>0){a=s.getLayout()[o]-l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0),u=a;for(p=h-2;p>=0;--p)(l=(s=t[p]).getLayout()[o]+s.getLayout()[c]+e-u)>0&&(a=s.getLayout()[o]-l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),u=s.getLayout()[o]}}))}function KA(t,e,n){P(t.slice().reverse(),(function(t){P(t,(function(t){if(t.outEdges.length){var i=iL(t.outEdges,$A,n)/iL(t.outEdges,nL);if(isNaN(i)){var r=t.outEdges.length;i=r?iL(t.outEdges,JA,n)/r:0}if("vertical"===n){var o=t.getLayout().x+(i-eL(t,n))*e;t.setLayout({x:o},!0)}else{var a=t.getLayout().y+(i-eL(t,n))*e;t.setLayout({y:a},!0)}}}))}))}function $A(t,e){return eL(t.node2,e)*t.getValue()}function JA(t,e){return eL(t.node2,e)}function QA(t,e){return eL(t.node1,e)*t.getValue()}function tL(t,e){return eL(t.node1,e)}function eL(t,e){return"vertical"===e?t.getLayout().x+t.getLayout().dx/2:t.getLayout().y+t.getLayout().dy/2}function nL(t){return t.getValue()}function iL(t,e,n){for(var i=0,r=t.length,o=-1;++oi&&(i=e)})),P(e,(function(e){var r=new TT({type:"color",mappingMethod:"linear",dataExtent:[n,i],visual:t.get("color")}).mapValueToVisual(e.getLayout().value),o=e.getModel().get(["itemStyle","color"]);null!=o?(e.setVisual("color",o),e.setVisual("style",{fill:o})):(e.setVisual("color",r),e.setVisual("style",{fill:r}))}))}}))}var aL=function(){function t(){}return t.prototype.getInitialData=function(t,e){var n,i,r=e.getComponent("xAxis",this.get("xAxisIndex")),o=e.getComponent("yAxis",this.get("yAxisIndex")),a=r.get("type"),s=o.get("type");"category"===a?(t.layout="horizontal",n=r.getOrdinalMeta(),i=!0):"category"===s?(t.layout="vertical",n=o.getOrdinalMeta(),i=!0):t.layout=t.layout||"horizontal";var l=["x","y"],u="horizontal"===t.layout?0:1,h=this._baseAxisDim=l[u],c=l[1-u],p=[r,o],d=p[u].get("type"),f=p[1-u].get("type"),g=t.data;if(g&&i){var y=[];P(g,(function(t,e){var n;F(t)?(n=t.slice(),t.unshift(e)):F(t.value)?(n=t.value.slice(),t.value.unshift(e)):n=t,y.push(n)})),t.data=y}var v=this.defaultValueDimensions,m=[{name:h,type:r_(d),ordinalMeta:n,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:c,type:r_(f),dimsDef:v.slice()}];return MS(this,{coordDimensions:m,dimensionsCount:v.length+1,encodeDefaulter:B(lp,m,this)})},t.prototype.getBaseAxis=function(){var t=this._baseAxisDim;return this.ecModel.getComponent(t+"Axis",this.get(t+"AxisIndex")).axis},t}(),sL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.defaultValueDimensions=[{name:"min",defaultTooltip:!0},{name:"Q1",defaultTooltip:!0},{name:"median",defaultTooltip:!0},{name:"Q3",defaultTooltip:!0},{name:"max",defaultTooltip:!0}],n.visualDrawType="stroke",n}return n(e,t),e.type="series.boxplot",e.dependencies=["xAxis","yAxis","grid"],e.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,boxWidth:[7,50],itemStyle:{color:"#fff",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2,shadowBlur:5,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0,0,0,0.2)"}},animationDuration:800},e}(ff);L(sL,aL,!0);var lL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this.group,o=this._data;this._data||r.removeAll();var a="horizontal"===t.get("layout")?1:0;i.diff(o).add((function(t){if(i.hasValue(t)){var e=cL(i.getItemLayout(t),i,t,a,!0);i.setItemGraphicEl(t,e),r.add(e)}})).update((function(t,e){var n=o.getItemGraphicEl(e);if(i.hasValue(t)){var s=i.getItemLayout(t);n?pL(s,n,i,t):n=cL(s,i,t,a),r.add(n),i.setItemGraphicEl(t,n)}else r.remove(n)})).remove((function(t){var e=o.getItemGraphicEl(t);e&&r.remove(e)})).execute(),this._data=i},e.prototype.remove=function(t){var e=this.group,n=this._data;this._data=null,n&&n.eachItemGraphicEl((function(t){t&&e.remove(t)}))},e.type="boxplot",e}(Tf),uL=function(){},hL=function(t){function e(e){var n=t.call(this,e)||this;return n.type="boxplotBoxPath",n}return n(e,t),e.prototype.getDefaultShape=function(){return new uL},e.prototype.buildPath=function(t,e){var n=e.points,i=0;for(t.moveTo(n[i][0],n[i][1]),i++;i<4;i++)t.lineTo(n[i][0],n[i][1]);for(t.closePath();ig){var x=[v,_];i.push(x)}}}return{boxData:n,outliers:i}}(e.getRawData(),t.config);return[{dimensions:["ItemName","Low","Q1","Q2","Q3","High"],data:i.boxData},{data:i.outliers}]}};var mL=["color","borderColor"],_L=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){this.group.removeClipPath(),this._updateDrawMode(t),this._isLargeDraw?this._renderLarge(t):this._renderNormal(t)},e.prototype.incrementalPrepareRender=function(t,e,n){this._clear(),this._updateDrawMode(t)},e.prototype.incrementalRender=function(t,e,n,i){this._isLargeDraw?this._incrementalRenderLarge(t,e):this._incrementalRenderNormal(t,e)},e.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},e.prototype._renderNormal=function(t){var e=t.getData(),n=this._data,i=this.group,r=e.getLayout("isSimpleBox"),o=t.get("clip",!0),a=t.coordinateSystem,s=a.getArea&&a.getArea();this._data||i.removeAll(),e.diff(n).add((function(n){if(e.hasValue(n)){var a=e.getItemLayout(n);if(o&&SL(s,a))return;var l=wL(a,n,!0);Wu(l,{shape:{points:a.ends}},t,n),ML(l,e,n,r),i.add(l),e.setItemGraphicEl(n,l)}})).update((function(a,l){var u=n.getItemGraphicEl(l);if(e.hasValue(a)){var h=e.getItemLayout(a);o&&SL(s,h)?i.remove(u):(u?Hu(u,{shape:{points:h.ends}},t,a):u=wL(h),ML(u,e,a,r),i.add(u),e.setItemGraphicEl(a,u))}else i.remove(u)})).remove((function(t){var e=n.getItemGraphicEl(t);e&&i.remove(e)})).execute(),this._data=e},e.prototype._renderLarge=function(t){this._clear(),DL(t,this.group);var e=t.get("clip",!0)?Rw(t.coordinateSystem,!1,t):null;e?this.group.setClipPath(e):this.group.removeClipPath()},e.prototype._incrementalRenderNormal=function(t,e){for(var n,i=e.getData(),r=i.getLayout("isSimpleBox");null!=(n=t.next());){var o=wL(i.getItemLayout(n));ML(o,i,n,r),o.incremental=!0,this.group.add(o)}},e.prototype._incrementalRenderLarge=function(t,e){DL(e,this.group,!0)},e.prototype.remove=function(t){this._clear()},e.prototype._clear=function(){this.group.removeAll(),this._data=null},e.type="candlestick",e}(Tf),xL=function(){},bL=function(t){function e(e){var n=t.call(this,e)||this;return n.type="normalCandlestickBox",n}return n(e,t),e.prototype.getDefaultShape=function(){return new xL},e.prototype.buildPath=function(t,e){var n=e.points;this.__simpleBox?(t.moveTo(n[4][0],n[4][1]),t.lineTo(n[6][0],n[6][1])):(t.moveTo(n[0][0],n[0][1]),t.lineTo(n[1][0],n[1][1]),t.lineTo(n[2][0],n[2][1]),t.lineTo(n[3][0],n[3][1]),t.closePath(),t.moveTo(n[4][0],n[4][1]),t.lineTo(n[5][0],n[5][1]),t.moveTo(n[6][0],n[6][1]),t.lineTo(n[7][0],n[7][1]))},e}(Ka);function wL(t,e,n){var i=t.ends;return new bL({shape:{points:n?IL(i,t):i},z2:100})}function SL(t,e){for(var n=!0,i=0;i0?"borderColor":"borderColor0"])||n.get(["itemStyle",t>0?"color":"color0"]),o=n.getModel("itemStyle").getItemStyle(mL);e.useStyle(o),e.style.fill=null,e.style.stroke=r}var LL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.defaultValueDimensions=[{name:"open",defaultTooltip:!0},{name:"close",defaultTooltip:!0},{name:"lowest",defaultTooltip:!0},{name:"highest",defaultTooltip:!0}],n}return n(e,t),e.prototype.getShadowDim=function(){return"open"},e.prototype.brushSelector=function(t,e,n){var i=e.getItemLayout(t);return i&&n.rect(i.brushRect)},e.type="series.candlestick",e.dependencies=["xAxis","yAxis","grid"],e.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,clip:!0,itemStyle:{color:"#eb5454",color0:"#47b262",borderColor:"#eb5454",borderColor0:"#47b262",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2}},barMaxWidth:null,barMinWidth:null,barWidth:null,large:!0,largeThreshold:600,progressive:3e3,progressiveThreshold:1e4,progressiveChunkMode:"mod",animationEasing:"linear",animationDuration:300},e}(ff);function kL(t){t&&F(t.series)&&P(t.series,(function(t){X(t)&&"k"===t.type&&(t.type="candlestick")}))}L(LL,aL,!0);var PL=["itemStyle","borderColor"],OL=["itemStyle","borderColor0"],RL=["itemStyle","color"],NL=["itemStyle","color0"],zL={seriesType:"candlestick",plan:Sf(),performRawSeries:!0,reset:function(t,e){function n(t,e){return e.get(t>0?RL:NL)}function i(t,e){return e.get(t>0?PL:OL)}if(!e.isSeriesFiltered(t))return!t.pipelineContext.large&&{progress:function(t,e){for(var r;null!=(r=t.next());){var o=e.getItemModel(r),a=e.getItemLayout(r).sign,s=o.getItemStyle();s.fill=n(a,o),s.stroke=i(a,o)||s.fill,I(e.ensureUniqueItemVisual(r,"style"),s)}}}}},EL="undefined"!=typeof Float32Array?Float32Array:Array,VL={seriesType:"candlestick",plan:Sf(),reset:function(t){var e=t.coordinateSystem,n=t.getData(),i=function(t,e){var n,i=t.getBaseAxis(),r="category"===i.type?i.getBandWidth():(n=i.getExtent(),Math.abs(n[1]-n[0])/e.count()),o=Zi(tt(t.get("barMaxWidth"),r),r),a=Zi(tt(t.get("barMinWidth"),1),r),s=t.get("barWidth");return null!=s?Zi(s,r):Math.max(Math.min(r/2,o),a)}(t,n),r=["x","y"],o=n.mapDimension(r[0]),a=n.mapDimensionsAll(r[1]),s=a[0],l=a[1],u=a[2],h=a[3];if(n.setLayout({candleWidth:i,isSimpleBox:i<=1.3}),!(null==o||a.length<4))return{progress:t.pipelineContext.large?function(t,n){var i,r,a=new EL(4*t.count),c=0,p=[],d=[];for(;null!=(r=t.next());){var f=n.get(o,r),g=n.get(s,r),y=n.get(l,r),v=n.get(u,r),m=n.get(h,r);isNaN(f)||isNaN(v)||isNaN(m)?(a[c++]=NaN,c+=3):(a[c++]=BL(n,r,g,y,l),p[0]=f,p[1]=v,i=e.dataToPoint(p,null,d),a[c++]=i?i[0]:NaN,a[c++]=i?i[1]:NaN,p[1]=m,i=e.dataToPoint(p,null,d),a[c++]=i?i[1]:NaN)}n.setLayout("largePoints",a)}:function(t,n){var r;for(;null!=(r=t.next());){var a=n.get(o,r),c=n.get(s,r),p=n.get(l,r),d=n.get(u,r),f=n.get(h,r),g=Math.min(c,p),y=Math.max(c,p),v=w(g,a),m=w(y,a),_=w(d,a),x=w(f,a),b=[];S(b,m,0),S(b,v,1),b.push(I(x),I(m),I(_),I(v)),n.setItemLayout(r,{sign:BL(n,r,c,p,l),initBaseline:c>p?m[1]:v[1],ends:b,brushRect:M(d,f,a)})}function w(t,n){var i=[];return i[0]=n,i[1]=t,isNaN(n)||isNaN(t)?[NaN,NaN]:e.dataToPoint(i)}function S(t,e,n){var r=e.slice(),o=e.slice();r[0]=Fu(r[0]+i/2,1,!1),o[0]=Fu(o[0]-i/2,1,!0),n?t.push(r,o):t.push(o,r)}function M(t,e,n){var r=w(t,n),o=w(e,n);return r[0]-=i/2,o[0]-=i/2,{x:r[0],y:r[1],width:i,height:o[1]-r[1]}}function I(t){return t[0]=Fu(t[0],1),t}}}}};function BL(t,e,n,i,r){return n>i?-1:n0?t.get(r,e-1)<=i?1:-1:1}function FL(t,e){var n=e.rippleEffectColor||e.color;t.eachChild((function(t){t.attr({z:e.z,zlevel:e.zlevel,style:{stroke:"stroke"===e.brushType?n:null,fill:"fill"===e.brushType?n:null}})}))}var GL=function(t){function e(e,n){var i=t.call(this)||this,r=new dw(e,n),o=new Ei;return i.add(r),i.add(o),i.updateData(e,n),i}return n(e,t),e.prototype.stopEffectAnimation=function(){this.childAt(1).removeAll()},e.prototype.startEffectAnimation=function(t){for(var e=t.symbolType,n=t.color,i=this.childAt(1),r=0;r<3;r++){var o=fy(e,-1,-1,2,2,n);o.attr({style:{strokeNoScale:!0},z2:99,silent:!0,scaleX:.5,scaleY:.5});var a=-r/3*t.period+t.effectOffset;o.animate("",!0).when(t.period,{scaleX:t.rippleScale/2,scaleY:t.rippleScale/2}).delay(a).start(),o.animateStyle(!0).when(t.period,{opacity:0}).delay(a).start(),i.add(o)}FL(i,t)},e.prototype.updateEffectAnimation=function(t){for(var e=this._effectCfg,n=this.childAt(1),i=["symbolType","period","rippleScale"],r=0;r0&&(a=this._getLineLength(i)/l*1e3),(a!==this._period||s!==this._loop)&&(i.stopAnimation(),a>0)){var h=void 0;h="function"==typeof u?u(n):u,i.__t>0&&(h=-a*i.__t),i.__t=0;var c=i.animate("",s).when(a,{__t:1}).delay(h).during((function(){r._updateSymbolPosition(i)}));s||c.done((function(){r.remove(i)})),c.start()}this._period=a,this._loop=s}},e.prototype._getLineLength=function(t){return Lt(t.__p1,t.__cp1)+Lt(t.__cp1,t.__p2)},e.prototype._updateAnimationPoints=function(t,e){t.__p1=e[0],t.__p2=e[1],t.__cp1=e[2]||[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2]},e.prototype.updateData=function(t,e,n){this.childAt(0).updateData(t,e,n),this._updateEffectSymbol(t,e)},e.prototype._updateSymbolPosition=function(t){var e=t.__p1,n=t.__p2,i=t.__cp1,r=t.__t,o=[t.x,t.y],a=o.slice(),s=Uo,l=Xo;o[0]=s(e[0],i[0],n[0],r),o[1]=s(e[1],i[1],n[1],r);var u=l(e[0],i[0],n[0],r),h=l(e[1],i[1],n[1],r);t.rotation=-Math.atan2(h,u)-Math.PI/2,"line"!==this._symbolType&&"rect"!==this._symbolType&&"roundRect"!==this._symbolType||(void 0!==t.__lastT&&t.__lastT=0&&!(i[o]<=e);o--);o=Math.min(o,r-2)}else{for(o=a;oe);o++);o=Math.min(o-1,r-2)}var s=(e-i[o])/(i[o+1]-i[o]),l=n[o],u=n[o+1];t.x=l[0]*(1-s)+s*u[0],t.y=l[1]*(1-s)+s*u[1];var h=u[0]-l[0],c=u[1]-l[1];t.rotation=-Math.atan2(c,h)-Math.PI/2,this._lastFrame=o,this._lastFramePercent=e,t.ignore=!1}},e}(UL),ZL=function(){this.polyline=!1,this.curveness=0,this.segs=[]},jL=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new ZL},e.prototype.buildPath=function(t,e){var n=e.segs,i=e.curveness;if(e.polyline)for(var r=0;r0){t.moveTo(n[r++],n[r++]);for(var a=1;a0){var c=(s+u)/2-(l-h)*i,p=(l+h)/2-(u-s)*i;t.quadraticCurveTo(c,p,u,h)}else t.lineTo(u,h)}},e.prototype.findDataIndex=function(t,e){var n=this.shape,i=n.segs,r=n.curveness,o=this.style.lineWidth;if(n.polyline)for(var a=0,s=0;s0)for(var u=i[s++],h=i[s++],c=1;c0){if(Oa(u,h,(u+p)/2-(h-d)*r,(h+d)/2-(p-u)*r,p,d,o,t,e))return a}else if(ka(u,h,p,d,o,t,e))return a;a++}return-1},e}(Ka),qL=function(){function t(){this.group=new Ei}return t.prototype.isPersistent=function(){return!this._incremental},t.prototype.updateData=function(t){this.group.removeAll();var e=new jL({rectHover:!0,cursor:"default"});e.setShape({segs:t.getLayout("linesPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},t.prototype.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>5e5?(this._incremental||(this._incremental=new Tu({silent:!0})),this.group.add(this._incremental)):this._incremental=null},t.prototype.incrementalUpdate=function(t,e){var n=new jL;n.setShape({segs:e.getLayout("linesPoints")}),this._setCommon(n,e,!!this._incremental),this._incremental?this._incremental.addDisplayable(n,!0):(n.rectHover=!0,n.cursor="default",n.__startIndex=t.start,this.group.add(n))},t.prototype.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},t.prototype._setCommon=function(t,e,n){var i=e.hostModel;t.setShape({polyline:i.get("polyline"),curveness:i.get(["lineStyle","curveness"])}),t.useStyle(i.getModel("lineStyle").getLineStyle()),t.style.strokeNoScale=!0;var r=e.getVisual("style");if(r&&r.stroke&&t.setStyle("stroke",r.stroke),t.setStyle("fill",null),!n){var o=_s(t);o.seriesIndex=i.seriesIndex,t.on("mousemove",(function(e){o.dataIndex=null;var n=t.findDataIndex(e.offsetX,e.offsetY);n>0&&(o.dataIndex=n+t.__startIndex)}))}},t.prototype._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},t}(),KL={seriesType:"lines",plan:Sf(),reset:function(t){var e=t.coordinateSystem,n=t.get("polyline"),i=t.pipelineContext.large;return{progress:function(r,o){var a=[];if(i){var s=void 0,l=r.end-r.start;if(n){for(var u=0,h=r.start;h ")})},e.prototype.preventIncremental=function(){return!!this.get(["effect","show"])},e.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?1e4:this.get("progressive"):t},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?2e4:this.get("progressiveThreshold"):t},e.type="series.lines",e.dependencies=["grid","polar","geo","calendar"],e.defaultOption={coordinateSystem:"geo",zlevel:0,z:2,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}},e}(ff);function nk(t){return t instanceof Array||(t=[t,t]),t}var ik={seriesType:"lines",reset:function(t){var e=nk(t.get("symbol")),n=nk(t.get("symbolSize")),i=t.getData();return i.setVisual("fromSymbol",e&&e[0]),i.setVisual("toSymbol",e&&e[1]),i.setVisual("fromSymbolSize",n&&n[0]),i.setVisual("toSymbolSize",n&&n[1]),{dataEach:i.hasItemOption?function(t,e){var n=t.getItemModel(e),i=nk(n.getShallow("symbol",!0)),r=nk(n.getShallow("symbolSize",!0));i[0]&&t.setItemVisual(e,"fromSymbol",i[0]),i[1]&&t.setItemVisual(e,"toSymbol",i[1]),r[0]&&t.setItemVisual(e,"fromSymbolSize",r[0]),r[1]&&t.setItemVisual(e,"toSymbolSize",r[1])}:null}}};var rk=function(){function t(){this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={inRange:null,outOfRange:null};var t=C();this.canvas=t}return t.prototype.update=function(t,e,n,i,r,o){var a=this._getBrush(),s=this._getGradient(r,"inRange"),l=this._getGradient(r,"outOfRange"),u=this.pointSize+this.blurSize,h=this.canvas,c=h.getContext("2d"),p=t.length;h.width=e,h.height=n;for(var d=0;d0){var I=o(v)?s:l;v>0&&(v=v*S+w),_[x++]=I[M],_[x++]=I[M+1],_[x++]=I[M+2],_[x++]=I[M+3]*v*256}else x+=4}return c.putImageData(m,0,0),h},t.prototype._getBrush=function(){var t=this._brushCanvas||(this._brushCanvas=C()),e=this.pointSize+this.blurSize,n=2*e;t.width=n,t.height=n;var i=t.getContext("2d");return i.clearRect(0,0,n,n),i.shadowOffsetX=n,i.shadowBlur=this.blurSize,i.shadowColor="#000",i.beginPath(),i.arc(-e,e,this.pointSize,0,2*Math.PI,!0),i.closePath(),i.fill(),t},t.prototype._getGradient=function(t,e){for(var n=this._gradientPixels,i=n[e]||(n[e]=new Uint8ClampedArray(1024)),r=[0,0,0,0],o=0,a=0;a<256;a++)t[e](a/255,!0,r),i[o++]=r[0],i[o++]=r[1],i[o++]=r[2],i[o++]=r[3];return i},t}();function ok(t){var e=t.dimensions;return"lng"===e[0]&&"lat"===e[1]}var ak=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i;e.eachComponent("visualMap",(function(e){e.eachTargetSeries((function(n){n===t&&(i=e)}))})),this.group.removeAll(),this._incrementalDisplayable=null;var r=t.coordinateSystem;"cartesian2d"===r.type||"calendar"===r.type?this._renderOnCartesianAndCalendar(t,n,0,t.getData().count()):ok(r)&&this._renderOnGeo(r,t,i,n)},e.prototype.incrementalPrepareRender=function(t,e,n){this.group.removeAll()},e.prototype.incrementalRender=function(t,e,n,i){var r=e.coordinateSystem;r&&(ok(r)?this.render(e,n,i):this._renderOnCartesianAndCalendar(e,i,t.start,t.end,!0))},e.prototype._renderOnCartesianAndCalendar=function(t,e,n,i,r){var o,a,s,l,u=t.coordinateSystem;if(Nw(u,"cartesian2d")){var h=u.getAxis("x"),c=u.getAxis("y");0,o=h.getBandWidth(),a=c.getBandWidth(),s=h.scale.getExtent(),l=c.scale.getExtent()}for(var p=this.group,d=t.getData(),f=t.getModel(["emphasis","itemStyle"]).getItemStyle(),g=t.getModel(["blur","itemStyle"]).getItemStyle(),y=t.getModel(["select","itemStyle"]).getItemStyle(),v=ch(t),m=t.get(["emphasis","focus"]),_=t.get(["emphasis","blurScope"]),x=Nw(u,"cartesian2d")?[d.mapDimension("x"),d.mapDimension("y"),d.mapDimension("value")]:[d.mapDimension("time"),d.mapDimension("value")],b=n;bs[1]||Il[1])continue;var T=u.dataToPoint([M,I]);w=new ls({shape:{x:Math.floor(Math.round(T[0])-o/2),y:Math.floor(Math.round(T[1])-a/2),width:Math.ceil(o),height:Math.ceil(a)},style:S})}else{if(isNaN(d.get(x[1],b)))continue;w=new ls({z2:1,shape:u.dataToRect([d.get(x[0],b)]).contentShape,style:S})}var C=d.getItemModel(b);if(d.hasItemOption){var D=C.getModel("emphasis");f=D.getModel("itemStyle").getItemStyle(),g=C.getModel(["blur","itemStyle"]).getItemStyle(),y=C.getModel(["select","itemStyle"]).getItemStyle(),m=D.get("focus"),_=D.get("blurScope"),v=ch(C)}var A=t.getRawValue(b),L="-";A&&null!=A[2]&&(L=A[2]+""),hh(w,v,{labelFetcher:t,labelDataIndex:b,defaultOpacity:S.opacity,defaultText:L}),w.ensureState("emphasis").style=f,w.ensureState("blur").style=g,w.ensureState("select").style=y,sl(w,m,_),w.incremental=r,r&&(w.states.emphasis.hoverLayer=!0),p.add(w),d.setItemGraphicEl(b,w)}},e.prototype._renderOnGeo=function(t,e,n,i){var r=n.targetVisuals.inRange,o=n.targetVisuals.outOfRange,a=e.getData(),s=this._hmLayer||this._hmLayer||new rk;s.blurSize=e.get("blurSize"),s.pointSize=e.get("pointSize"),s.minOpacity=e.get("minOpacity"),s.maxOpacity=e.get("maxOpacity");var l=t.getViewRect().clone(),u=t.getRoamTransform();l.applyTransform(u);var h=Math.max(l.x,0),c=Math.max(l.y,0),p=Math.min(l.width+l.x,i.getWidth()),d=Math.min(l.height+l.y,i.getHeight()),f=p-h,g=d-c,y=[a.mapDimension("lng"),a.mapDimension("lat"),a.mapDimension("value")],v=a.mapArray(y,(function(e,n,i){var r=t.dataToPoint([e,n]);return r[0]-=h,r[1]-=c,r.push(i),r})),m=n.getExtent(),_="visualMap.continuous"===n.type?function(t,e){var n=t[1]-t[0];return e=[(e[0]-t[0])/n,(e[1]-t[0])/n],function(t){return t>=e[0]&&t<=e[1]}}(m,n.option.range):function(t,e,n){var i=t[1]-t[0],r=(e=O(e,(function(e){return{interval:[(e.interval[0]-t[0])/i,(e.interval[1]-t[0])/i]}}))).length,o=0;return function(t){var i;for(i=o;i=0;i--){var a;if((a=e[i].interval)[0]<=t&&t<=a[1]){o=i;break}}return i>=0&&i0?1:o<0?-1:0}(n,o,r,i,c),function(t,e,n,i,r,o,a,s,l,u){var h,c=l.valueDim,p=l.categoryDim,d=Math.abs(n[p.wh]),f=t.getItemVisual(e,"symbolSize");h=F(f)?f.slice():null==f?["100%","100%"]:[f,f];h[p.index]=Zi(h[p.index],d),h[c.index]=Zi(h[c.index],i?d:Math.abs(o)),u.symbolSize=h,(u.symbolScale=[h[0]/s,h[1]/s])[c.index]*=(l.isHorizontal?-1:1)*a}(t,e,r,o,0,c.boundingLength,c.pxSign,u,i,c),function(t,e,n,i,r){var o=t.get(lk)||0;o&&(hk.attr({scaleX:e[0],scaleY:e[1],rotation:n}),hk.updateTransform(),o/=hk.getLineScale(),o*=e[i.valueDim.index]);r.valueLineWidth=o}(n,c.symbolScale,l,i,c);var p=c.symbolSize,d=n.get("symbolOffset");return F(d)&&(d=[Zi(d[0],p[0]),Zi(d[1],p[1])]),function(t,e,n,i,r,o,a,s,l,u,h,c){var p=h.categoryDim,d=h.valueDim,f=c.pxSign,g=Math.max(e[d.index]+s,0),y=g;if(i){var v=Math.abs(l),m=Q(t.get("symbolMargin"),"15%")+"",_=!1;m.lastIndexOf("!")===m.length-1&&(_=!0,m=m.slice(0,m.length-1));var x=Zi(m,e[d.index]),b=Math.max(g+2*x,0),w=_?0:2*x,S=pr(i),M=S?i:Dk((v+w)/b);b=g+2*(x=(v-M*g)/2/(_?M:M-1)),w=_?0:2*x,S||"fixed"===i||(M=u?Dk((Math.abs(u)+w)/b):0),y=M*b-w,c.repeatTimes=M,c.symbolMargin=x}var T=f*(y/2),C=c.pathPosition=[];C[p.index]=n[p.wh]/2,C[d.index]="start"===a?T:"end"===a?l-T:l/2,o&&(C[0]+=o[0],C[1]+=o[1]);var D=c.bundlePosition=[];D[p.index]=n[p.xy],D[d.index]=n[d.xy];var A=c.barRectShape=I({},n);A[d.wh]=f*Math.max(Math.abs(n[d.wh]),Math.abs(C[d.index]+T)),A[p.wh]=n[p.wh];var L=c.clipShape={};L[p.xy]=-n[p.xy],L[p.wh]=h.ecSize[p.wh],L[d.xy]=0,L[d.wh]=n[d.wh]}(n,p,r,o,0,d,s,c.valueLineWidth,c.boundingLength,c.repeatCutLength,i,c),c}function dk(t,e){return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e)))}function fk(t){var e=t.symbolPatternSize,n=fy(t.symbolType,-e/2,-e/2,e,e);return n.attr({culling:!0}),"image"!==n.type&&n.setStyle({strokeNoScale:!0}),n}function gk(t,e,n,i){var r=t.__pictorialBundle,o=n.symbolSize,a=n.valueLineWidth,s=n.pathPosition,l=e.valueDim,u=n.repeatTimes||0,h=0,c=o[e.valueDim.index]+a+2*n.symbolMargin;for(Ik(t,(function(t){t.__pictorialAnimationIndex=h,t.__pictorialRepeatTimes=u,h0:i<0)&&(r=u-1-t),e[l.index]=c*(r-u/2+.5)+s[l.index],{x:e[0],y:e[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation}}}function yk(t,e,n,i){var r=t.__pictorialBundle,o=t.__pictorialMainPath;o?Tk(o,null,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation},n,i):(o=t.__pictorialMainPath=fk(n),r.add(o),Tk(o,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:0,scaleY:0,rotation:n.rotation},{scaleX:n.symbolScale[0],scaleY:n.symbolScale[1]},n,i))}function vk(t,e,n){var i=I({},e.barRectShape),r=t.__pictorialBarRect;r?Tk(r,null,{shape:i},e,n):(r=t.__pictorialBarRect=new ls({z2:2,shape:i,silent:!0,style:{stroke:"transparent",fill:"transparent",lineWidth:0}}),t.add(r))}function mk(t,e,n,i){if(n.symbolClip){var r=t.__pictorialClipPath,o=I({},n.clipShape),a=e.valueDim,s=n.animationModel,l=n.dataIndex;if(r)Hu(r,{shape:o},s,l);else{o[a.wh]=0,r=new ls({shape:o}),t.__pictorialBundle.setClipPath(r),t.__pictorialClipPath=r;var u={};u[a.wh]=n.clipShape[a.wh],ah[i?"updateProps":"initProps"](r,{shape:u},s,l)}}}function _k(t,e){var n=t.getItemModel(e);return n.getAnimationDelayParams=xk,n.isAnimationEnabled=bk,n}function xk(t){return{index:t.__pictorialAnimationIndex,count:t.__pictorialRepeatTimes}}function bk(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow("animation")}function wk(t,e,n,i){var r=new Ei,o=new Ei;return r.add(o),r.__pictorialBundle=o,o.x=n.bundlePosition[0],o.y=n.bundlePosition[1],n.symbolRepeat?gk(r,e,n):yk(r,0,n),vk(r,n,i),mk(r,e,n,i),r.__pictorialShapeStr=Mk(t,n),r.__pictorialSymbolMeta=n,r}function Sk(t,e,n,i){var r=i.__pictorialBarRect;r&&r.removeTextContent();var o=[];Ik(i,(function(t){o.push(t)})),i.__pictorialMainPath&&o.push(i.__pictorialMainPath),i.__pictorialClipPath&&(n=null),P(o,(function(t){Uu(t,{scaleX:0,scaleY:0},n,e,(function(){i.parent&&i.parent.remove(i)}))})),t.setItemGraphicEl(e,null)}function Mk(t,e){return[t.getItemVisual(e.dataIndex,"symbol")||"none",!!e.symbolRepeat,!!e.symbolClip].join(":")}function Ik(t,e,n){P(t.__pictorialBundle.children(),(function(i){i!==t.__pictorialBarRect&&e.call(n,i)}))}function Tk(t,e,n,i,r,o){e&&t.attr(e),i.symbolClip&&!r?n&&t.attr(n):n&&ah[r?"updateProps":"initProps"](t,n,i.animationModel,i.dataIndex,o)}function Ck(t,e,n){var i=n.dataIndex,r=n.itemModel,o=r.getModel("emphasis"),a=o.getModel("itemStyle").getItemStyle(),s=r.getModel(["blur","itemStyle"]).getItemStyle(),l=r.getModel(["select","itemStyle"]).getItemStyle(),u=r.getShallow("cursor"),h=o.get("focus"),c=o.get("blurScope"),p=o.get("scale");Ik(t,(function(t){if(t instanceof es){var e=t.style;t.useStyle(I({image:e.image,x:e.x,y:e.y,width:e.width,height:e.height},n.style))}else t.useStyle(n.style);var i=t.ensureState("emphasis");i.style=a,p&&(i.scaleX=1.1*t.scaleX,i.scaleY=1.1*t.scaleY),t.ensureState("blur").style=s,t.ensureState("select").style=l,u&&(t.cursor=u),t.z2=n.z2}));var d=e.valueDim.posDesc[+(n.boundingLength>0)];hh(t.__pictorialBarRect,ch(r),{labelFetcher:e.seriesModel,labelDataIndex:i,defaultText:cw(e.seriesModel.getData(),i),inheritColor:n.style.fill,defaultOpacity:n.style.opacity,defaultOutsidePosition:d}),sl(t,h,c)}function Dk(t){var e=Math.round(t);return Math.abs(t-e)<1e-4?e:Math.ceil(t)}var Ak=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n.defaultSymbol="roundRect",n}return n(e,t),e.prototype.getInitialData=function(e){return e.stack=null,t.prototype.getInitialData.apply(this,arguments)},e.type="series.pictorialBar",e.dependencies=["grid"],e.defaultOption=zh(qw.defaultOption,{symbol:"circle",symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:"end",symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:"-100%",progressive:0,emphasis:{scale:!1},select:{itemStyle:{borderColor:"#212121"}}}),e}(qw);var Lk=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._layers=[],n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this,o=this.group,a=t.getLayerSeries(),s=i.getLayout("layoutInfo"),l=s.rect,u=s.boundaryGap;function h(t){return t.name}o.x=0,o.y=l.y+u[0];var c=new n_(this._layersSeries||[],a,h,h),p=[];function d(e,n,s){var l=r._layers;if("remove"!==e){for(var u,h,c=[],d=[],f=a[n].indices,g=0;go&&(o=s),i.push(s)}for(var u=0;uo&&(o=c)}return{y0:r,max:o}}(l),h=u.y0,c=n/u.max,p=o.length,d=o[0].indices.length,f=0;fMath.PI/2?"right":"left"):w&&"center"!==w?"left"===w?(v=r.r0+b,a>Math.PI/2&&(w="right")):"right"===w&&(v=r.r-b,a>Math.PI/2&&(w="left")):(v=(r.r+r.r0)/2,w="center"),d.style.align=w,d.style.verticalAlign=f(o,"verticalAlign")||"middle",d.x=v*s+r.cx,d.y=v*l+r.cy;var S=f(o,"rotate"),M=0;"radial"===S?(M=-a)<-Math.PI/2&&(M+=Math.PI):"tangential"===S?(M=Math.PI/2-a)>Math.PI/2?M-=Math.PI:M<-Math.PI/2&&(M+=Math.PI):"number"==typeof S&&(M=S*Math.PI/180),d.rotation=M})),h.dirtyStyle()},e}(Jl),Nk="sunburstRootToNode",zk="sunburstHighlight";var Ek=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n,i){var r=this;this.seriesModel=t,this.api=n,this.ecModel=e;var o=t.getData(),a=o.tree.root,s=t.getViewRoot(),l=this.group,u=t.get("renderLabelForZeroData"),h=[];s.eachNode((function(t){h.push(t)}));var c=this._oldChildren||[];!function(i,r){if(0===i.length&&0===r.length)return;function s(t){return t.getId()}function h(s,h){!function(i,r){u||!i||i.getValue()||(i=null);if(i!==a&&r!==a)if(r&&r.piece)i?(r.piece.updateData(!1,i,t,e,n),o.setItemGraphicEl(i.dataIndex,r.piece)):function(t){if(!t)return;t.piece&&(l.remove(t.piece),t.piece=null)}(r);else if(i){var s=new Rk(i,t,e,n);l.add(s),o.setItemGraphicEl(i.dataIndex,s)}}(null==s?null:i[s],null==h?null:r[h])}new n_(r,i,s,s).add(h).update(h).remove(B(h,null)).execute()}(h,c),function(i,o){o.depth>0?(r.virtualPiece?r.virtualPiece.updateData(!1,i,t,e,n):(r.virtualPiece=new Rk(i,t,e,n),l.add(r.virtualPiece)),o.piece.off("click"),r.virtualPiece.on("click",(function(t){r._rootToNode(o.parentNode)}))):r.virtualPiece&&(l.remove(r.virtualPiece),r.virtualPiece=null)}(a,s),this._initEvents(),this._oldChildren=h},e.prototype._initEvents=function(){var t=this;this.group.off("click"),this.group.on("click",(function(e){var n=!1;t.seriesModel.getViewRoot().eachNode((function(i){if(!n&&i.piece&&i.piece===e.target){var r=i.getModel().get("nodeClick");if("rootToNode"===r)t._rootToNode(i);else if("link"===r){var o=i.getModel(),a=o.get("link");if(a)Pc(a,o.get("target",!0)||"_blank")}n=!0}}))}))},e.prototype._rootToNode=function(t){t!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:Nk,from:this.uid,seriesId:this.seriesModel.id,targetNode:t})},e.prototype.containPoint=function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,r=t[1]-n.cy,o=Math.sqrt(i*i+r*r);return o<=n.r&&o>=n.r0}},e.type="sunburst",e}(Tf),Vk=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.ignoreStyleOnData=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};Bk(n);var i=O(t.levels||[],(function(t){return new Oh(t,this,e)}),this),r=$I.createTree(n,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=r.getNodeByDataIndex(e),o=i[n.depth];return o&&(t.parentModel=o),t}))}));return r.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treePathInfo=eT(i,this),n},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},e.prototype.enableAriaDecal=function(){lT(this)},e.type="series.sunburst",e.defaultOption={zlevel:0,z:2,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,stillShowZeroSum:!0,nodeClick:"rootToNode",renderLabelForZeroData:!1,label:{rotate:"radial",show:!0,opacity:1,align:"center",position:"inside",distance:5,silent:!0},itemStyle:{borderWidth:1,borderColor:"white",borderType:"solid",shadowBlur:0,shadowColor:"rgba(0, 0, 0, 0.2)",shadowOffsetX:0,shadowOffsetY:0,opacity:1},emphasis:{focus:"descendant"},blur:{itemStyle:{opacity:.2},label:{opacity:.1}},animationType:"expansion",animationDuration:1e3,animationDurationUpdate:500,data:[],levels:[],sort:"desc"},e}(ff);function Bk(t){var e=0;P(t.children,(function(t){Bk(t);var n=t.value;F(n)&&(n=n[0]),e+=n}));var n=t.value;F(n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),F(t.value)?t.value[0]=n:t.value=n}var Fk=Math.PI/180;function Gk(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.get("center"),i=t.get("radius");F(i)||(i=[0,i]),F(e)||(e=[e,e]);var r=n.getWidth(),o=n.getHeight(),a=Math.min(r,o),s=Zi(e[0],r),l=Zi(e[1],o),u=Zi(i[0],a/2),h=Zi(i[1],a/2),c=-t.get("startAngle")*Fk,p=t.get("minAngle")*Fk,d=t.getData().tree.root,f=t.getViewRoot(),g=f.depth,y=t.get("sort");null!=y&&Hk(f,y);var v=0;P(f.children,(function(t){!isNaN(t.getValue())&&v++}));var m=f.getValue(),_=Math.PI/(m||v)*2,x=f.depth>0,b=f.height-(x?-1:1),w=(h-u)/(b||1),S=t.get("clockwise"),M=t.get("stillShowZeroSum"),I=S?1:-1,T=function(t,e){if(t){var n=e;if(t!==d){var i=t.getValue(),r=0===m&&M?_:i*_;r1;)r=r.parentNode;var o=n.getColorFromPalette(r.name||r.dataIndex+"",e);return t.depth>1&&"string"==typeof o&&(o=Ue(o,(t.depth-1)/(i-1)*.5)),o}(r,t,i.root.height)),I(n.ensureUniqueItemVisual(r.dataIndex,"style"),o)}))}))}function Uk(t,e){return e=e||[0,0],O(["x","y"],(function(n,i){var r=this.getAxis(n),o=e[i],a=t[i]/2;return"category"===r.type?r.getBandWidth():Math.abs(r.dataToCoord(o-a)-r.dataToCoord(o+a))}),this)}function Xk(t,e){return e=e||[0,0],O([0,1],(function(n){var i=e[n],r=t[n]/2,o=[],a=[];return o[n]=i-r,a[n]=i+r,o[1-n]=a[1-n]=e[1-n],Math.abs(this.dataToPoint(o)[n]-this.dataToPoint(a)[n])}),this)}function Yk(t,e){var n=this.getAxis(),i=e instanceof Array?e[0]:e,r=(t instanceof Array?t[0]:t)/2;return"category"===n.type?n.getBandWidth():Math.abs(n.dataToCoord(i-r)-n.dataToCoord(i+r))}function Zk(t,e){return e=e||[0,0],O(["Radius","Angle"],(function(n,i){var r=this["get"+n+"Axis"](),o=e[i],a=t[i]/2,s="category"===r.type?r.getBandWidth():Math.abs(r.dataToCoord(o-a)-r.dataToCoord(o+a));return"Angle"===n&&(s=s*Math.PI/180),s}),this)}function jk(t,e,n,i){return t&&(t.legacy||!1!==t.legacy&&!n&&!i&&"tspan"!==e&&("text"===e||dt(t,"text")))}function qk(t,e,n){var i,r,o,a=t;if("text"===e)o=a;else{o={},dt(a,"text")&&(o.text=a.text),dt(a,"rich")&&(o.rich=a.rich),dt(a,"textFill")&&(o.fill=a.textFill),dt(a,"textStroke")&&(o.stroke=a.textStroke),r={type:"text",style:o,silent:!0},i={};var s=dt(a,"textPosition");n?i.position=s?a.textPosition:"inside":s&&(i.position=a.textPosition),dt(a,"textPosition")&&(i.position=a.textPosition),dt(a,"textOffset")&&(i.offset=a.textOffset),dt(a,"textRotation")&&(i.rotation=a.textRotation),dt(a,"textDistance")&&(i.distance=a.textDistance)}return Kk(o,t),P(o.rich,(function(t){Kk(t,t)})),{textConfig:i,textContent:r}}function Kk(t,e){e&&(e.font=e.textFont||e.font,dt(e,"textStrokeWidth")&&(t.lineWidth=e.textStrokeWidth),dt(e,"textAlign")&&(t.align=e.textAlign),dt(e,"textVerticalAlign")&&(t.verticalAlign=e.textVerticalAlign),dt(e,"textLineHeight")&&(t.lineHeight=e.textLineHeight),dt(e,"textWidth")&&(t.width=e.textWidth),dt(e,"textHeight")&&(t.height=e.textHeight),dt(e,"textBackgroundColor")&&(t.backgroundColor=e.textBackgroundColor),dt(e,"textPadding")&&(t.padding=e.textPadding),dt(e,"textBorderColor")&&(t.borderColor=e.textBorderColor),dt(e,"textBorderWidth")&&(t.borderWidth=e.textBorderWidth),dt(e,"textBorderRadius")&&(t.borderRadius=e.textBorderRadius),dt(e,"textBoxShadowColor")&&(t.shadowColor=e.textBoxShadowColor),dt(e,"textBoxShadowBlur")&&(t.shadowBlur=e.textBoxShadowBlur),dt(e,"textBoxShadowOffsetX")&&(t.shadowOffsetX=e.textBoxShadowOffsetX),dt(e,"textBoxShadowOffsetY")&&(t.shadowOffsetY=e.textBoxShadowOffsetY))}function $k(t,e,n){var i=t;i.textPosition=i.textPosition||n.position||"inside",null!=n.offset&&(i.textOffset=n.offset),null!=n.rotation&&(i.textRotation=n.rotation),null!=n.distance&&(i.textDistance=n.distance);var r=i.textPosition.indexOf("inside")>=0,o=t.fill||"#000";Jk(i,e);var a=null==i.textFill;return r?a&&(i.textFill=n.insideFill||"#fff",!i.textStroke&&n.insideStroke&&(i.textStroke=n.insideStroke),!i.textStroke&&(i.textStroke=o),null==i.textStrokeWidth&&(i.textStrokeWidth=2)):(a&&(i.textFill=t.fill||n.outsideFill||"#000"),!i.textStroke&&n.outsideStroke&&(i.textStroke=n.outsideStroke)),i.text=e.text,i.rich=e.rich,P(e.rich,(function(t){Jk(t,t)})),i}function Jk(t,e){e&&(dt(e,"fill")&&(t.textFill=e.fill),dt(e,"stroke")&&(t.textStroke=e.fill),dt(e,"lineWidth")&&(t.textStrokeWidth=e.lineWidth),dt(e,"font")&&(t.font=e.font),dt(e,"fontStyle")&&(t.fontStyle=e.fontStyle),dt(e,"fontWeight")&&(t.fontWeight=e.fontWeight),dt(e,"fontSize")&&(t.fontSize=e.fontSize),dt(e,"fontFamily")&&(t.fontFamily=e.fontFamily),dt(e,"align")&&(t.textAlign=e.align),dt(e,"verticalAlign")&&(t.textVerticalAlign=e.verticalAlign),dt(e,"lineHeight")&&(t.textLineHeight=e.lineHeight),dt(e,"width")&&(t.textWidth=e.width),dt(e,"height")&&(t.textHeight=e.height),dt(e,"backgroundColor")&&(t.textBackgroundColor=e.backgroundColor),dt(e,"padding")&&(t.textPadding=e.padding),dt(e,"borderColor")&&(t.textBorderColor=e.borderColor),dt(e,"borderWidth")&&(t.textBorderWidth=e.borderWidth),dt(e,"borderRadius")&&(t.textBorderRadius=e.borderRadius),dt(e,"shadowColor")&&(t.textBoxShadowColor=e.shadowColor),dt(e,"shadowBlur")&&(t.textBoxShadowBlur=e.shadowBlur),dt(e,"shadowOffsetX")&&(t.textBoxShadowOffsetX=e.shadowOffsetX),dt(e,"shadowOffsetY")&&(t.textBoxShadowOffsetY=e.shadowOffsetY),dt(e,"textShadowColor")&&(t.textShadowColor=e.textShadowColor),dt(e,"textShadowBlur")&&(t.textShadowBlur=e.textShadowBlur),dt(e,"textShadowOffsetX")&&(t.textShadowOffsetX=e.textShadowOffsetX),dt(e,"textShadowOffsetY")&&(t.textShadowOffsetY=e.textShadowOffsetY))}var Qk=La.CMD,tP=2*Math.PI,eP=["x","y"],nP=["width","height"],iP=[];function rP(t,e){return Math.abs(t-e)<1e-5}function oP(t){var e,n,i,r,o,a=t.data,s=t.len(),l=[],u=0,h=0,c=0,p=0;function d(t,n){e&&e.length>2&&l.push(e),e=[t,n]}function f(t,n,i,r){rP(t,i)&&rP(n,r)||e.push(t,n,i,r,i,r)}function g(t,n,i,r,o,a){var s=Math.abs(n-t),l=4*Math.tan(s/4)/3,u=nM:C2&&l.push(e),l}function aP(t,e){var n=t.length,i=e.length;if(n===i)return[t,e];for(var r=n0)for(var b=i/n,w=-i/2;w<=i/2;w+=b){var S=Math.sin(w),M=Math.cos(w),I=0;for(_=0;_c.width?1:0,r=nP[i],o=eP[i],a=c[r]/e,s=c[o],l=0;li[1]&&i.reverse(),{coordSys:{type:"polar",cx:t.cx,cy:t.cy,r:i[1],r0:i[0]},api:{coord:function(i){var r=e.dataToRadius(i[0]),o=n.dataToAngle(i[1]),a=t.coordToPoint([r,o]);return a.push(r,o*Math.PI/180),a},size:V(Zk,t)}}},calendar:function(t){var e=t.getRect(),n=t.getRangeInfo();return{coordSys:{type:"calendar",x:e.x,y:e.y,width:e.width,height:e.height,cellWidth:t.getCellWidth(),cellHeight:t.getCellHeight(),rangeInfo:{start:n.start,end:n.end,weeks:n.weeks,dayCount:n.allDay}},api:{coord:function(e,n){return t.dataToPoint(e,n)}}}}},BP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(){this.currentZLevel=this.get("zlevel",!0),this.currentZ=this.get("z",!0)},e.prototype.getInitialData=function(t,e){return F_(this.getSource(),this)},e.prototype.getDataParams=function(e,n,i){var r=t.prototype.getDataParams.call(this,e,n);return i&&(r.info=MP(i).info),r},e.type="series.custom",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,clip:!1},e}(ff),FP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n,i){var r=this._data,o=t.getData(),a=this.group,s=aO(t,o,e,n);r||a.removeAll();var l=t.__transientTransitionOpt;if(!l||null!=l.from&&null!=l.to){var u=new bO(t,l),h=l?"multiple":"oneToOne";new n_(r?r.getIndices():[],o.getIndices(),GP(r,h,l&&l.from),GP(o,h,l&&l.to),null,h).add((function(e){lO(n,null,e,s(e,i),t,a,o,null)})).remove((function(e){vO(r.getItemGraphicEl(e),t,a)})).update((function(e,l){u.reset("oneToOne");var h=r.getItemGraphicEl(l);u.findAndAddFrom(h),u.hasFrom()&&(xO(h,a),h=null),lO(n,h,e,s(e,i),t,a,o,u),u.applyMorphing()})).updateManyToOne((function(e,l){u.reset("manyToOne");for(var h=0;h=0){!s&&(s=r[t]={});var f=E(l);for(c=0;c=0){var d=t.getAnimationStyleProps(),f=d?d.style:null;if(f){!a&&(a=r.style={});var g=E(i);for(h=0;h=p;d--)vO(e.childAt(d),r,e)}(t,e,n,i,r,s),l>=0?o.replaceAt(e,l):o.add(e),e}function hO(t,e){var n,i=MP(t),r=e.type,o=e.shape,a=e.style;return null!=r&&r!==i.customGraphicType||"path"===r&&((n=o)&&(dt(n,"pathData")||dt(n,"d")))&&mO(o)!==i.customPathData||"image"===r&&dt(a,"image")&&a.image!==i.customImagePath}function cO(t,e,n){var i=e?pO(t,e):t,r=e?dO(t,i,DP):t.style,o=t.type,a=i?i.textConfig:null,s=t.textContent,l=s?e?pO(s,e):s:null;if(r&&(n.isLegacy||jk(r,o,!!a,!!l))){n.isLegacy=!0;var u=qk(r,o,!e);!a&&u.textConfig&&(a=u.textConfig),!l&&u.textContent&&(l=u.textContent)}if(!e&&l){var h=l;!h.type&&(h.type="text")}var c=e?n[e]:n.normal;c.cfg=a,c.conOpt=l}function pO(t,e){return e?t?t[e]:null:t}function dO(t,e,n){var i=e&&e.style;return null==i&&n===DP&&t&&(i=t.styleEmphasis),i}function fO(t,e){var n=t&&t.name;return null!=n?n:"e\0\0"+e}function gO(t,e){var n=this.context,i=null!=t?n.newChildren[t]:null,r=null!=e?n.oldChildren[e]:null;uO(n.api,r,n.dataIndex,i,n.seriesModel,n.group,0,n.morphPreparation)}function yO(t){var e=this.context;vO(e.oldChildren[t],e.seriesModel,e.group)}function vO(t,e,n){if(t){var i=MP(t).leaveToProps;i?Hu(t,i,e,{cb:function(){n.remove(t)}}):n.remove(t)}}function mO(t){return t&&(t.pathData||t.d)}function _O(t){return t&&t instanceof Ka}function xO(t,e){t&&e.remove(t)}var bO=function(){function t(t,e){this._fromList=[],this._toList=[],this._toElOptionList=[],this._allPropsFinalList=[],this._toDataIndices=[],this._morphConfigList=[],this._seriesModel=t,this._transOpt=e}return t.prototype.hasFrom=function(){return!!this._fromList.length},t.prototype.findAndAddFrom=function(t){if(t&&(MP(t).canMorph&&this._fromList.push(t),t.isGroup))for(var e=t.childrenRef(),n=0;n=n?i-a:o;this._manyToOneForSingleTo(r,a>=i?null:a,s)}else if("oneToMany"===t)for(var l=Math.max(1,Math.floor(n/i)),u=0,h=0;u=n?n-u:l;this._oneToManyForSingleFrom(u,c,h>=i?null:h)}},t.prototype._oneToOneForSingleTo=function(t,e){var n,i=this._toList[t],r=this._toElOptionList[t],o=this._toDataIndices[t],a=this._allPropsFinalList[t],s=this._fromList[e],l=this._getOrCreateMorphConfig(o),u=l.duration;if(s&&gP(s)){if(UP(i,a,r.style),u){var h=yP([s],i,l,wO);this._processResultIndividuals(h,t,null)}}else{var c=u&&s&&(s!==i||(fP(n=s)||gP(n)))?s:null,p={};YP("shape",i,c,r,p,!1),YP("extra",i,c,r,p,!1),jP(i,c,r,p,!1),qP(i,c,r,r.style,p,!1),UP(i,a,r.style),c&&cP(c,i,l),XP(i,o,r,this._seriesModel,p,!1)}},t.prototype._manyToOneForSingleTo=function(t,e,n){var i=this._toList[t],r=this._toElOptionList[t];UP(i,this._allPropsFinalList[t],r.style);var o=this._getOrCreateMorphConfig(this._toDataIndices[t]);if(o.duration&&null!=e){for(var a=[],s=e;sa)return!0;if(o){var s=uM(t).seriesDataCount,l=i.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1}return!0===n},t.prototype.makeElOption=function(t,e,n,i,r){},t.prototype.createPointerEl=function(t,e,n,i){var r=e.pointer;if(r){var o=SO(t).pointerEl=new ah[r.type](MO(e.pointer));t.add(o)}},t.prototype.createLabelEl=function(t,e,n,i){if(e.label){var r=SO(t).labelEl=new cs(MO(e.label));t.add(r),AO(r,i)}},t.prototype.updatePointerEl=function(t,e,n){var i=SO(t).pointerEl;i&&e.pointer&&(i.setStyle(e.pointer.style),n(i,{shape:e.pointer.shape}))},t.prototype.updateLabelEl=function(t,e,n,i){var r=SO(t).labelEl;r&&(r.setStyle(e.label.style),n(r,{x:e.label.x,y:e.label.y}),AO(r,i))},t.prototype._renderHandle=function(t){if(!this._dragging&&this.updateHandleTransform){var e,n=this._axisPointerModel,i=this._api.getZr(),r=this._handle,o=n.getModel("handle"),a=n.get("status");if(!o.get("show")||!a||"hide"===a)return r&&i.remove(r),void(this._handle=null);this._handle||(e=!0,r=this._handle=eh(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){ee(t.event)},onmousedown:IO(this._onHandleDragMove,this,0,0),drift:IO(this._onHandleDragMove,this),ondragend:IO(this._onHandleDragEnd,this)}),i.add(r)),kO(r,n,!1),r.setStyle(o.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=o.get("size");F(s)||(s=[s,s]),r.scaleX=s[0]/2,r.scaleY=s[1]/2,zf(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},t.prototype._moveHandleToValue=function(t,e){CO(this._axisPointerModel,!e&&this._moveAnimation,this._handle,LO(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},t.prototype._onHandleDragMove=function(t,e){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(LO(n),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(LO(i)),SO(n).lastProp=null,this._doDispatchAxisPointer()}},t.prototype._doDispatchAxisPointer=function(){if(this._handle){var t=this._payloadInfo,e=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]})}},t.prototype._onHandleDragEnd=function(){if(this._dragging=!1,this._handle){var t=this._axisPointerModel.get("value");this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"})}},t.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),n=this._group,i=this._handle;e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),i&&e.remove(i),this._group=null,this._handle=null,this._payloadInfo=null)},t.prototype.doClear=function(){},t.prototype.buildLabel=function(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}},t}();function CO(t,e,n,i){DO(SO(n).lastProp,i)||(SO(n).lastProp=i,e?Hu(n,i,t):(n.stopAnimation(),n.attr(i)))}function DO(t,e){if(X(t)&&X(e)){var n=!0;return P(e,(function(e,i){n=n&&DO(t[i],e)})),!!n}return t===e}function AO(t,e){t[e.get(["label","show"])?"show":"hide"]()}function LO(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function kO(t,e,n){var i=e.get("z"),r=e.get("zlevel");t&&t.traverse((function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=r&&(t.zlevel=r),t.silent=n)}))}function PO(t){var e,n=t.get("type"),i=t.getModel(n+"Style");return"line"===n?(e=i.getLineStyle()).fill=null:"shadow"===n&&((e=i.getAreaStyle()).stroke=null),e}function OO(t,e,n,i,r){var o=RO(n.get("value"),e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),a=n.getModel("label"),s=wc(a.get("padding")||0),l=a.getFont(),u=bi(o,l),h=r.position,c=u.width+s[1]+s[3],p=u.height+s[0]+s[2],d=r.align;"right"===d&&(h[0]-=c),"center"===d&&(h[0]-=c/2);var f=r.verticalAlign;"bottom"===f&&(h[1]-=p),"middle"===f&&(h[1]-=p/2),function(t,e,n,i){var r=i.getWidth(),o=i.getHeight();t[0]=Math.min(t[0]+e,r)-e,t[1]=Math.min(t[1]+n,o)-n,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}(h,c,p,i);var g=a.get("backgroundColor");g&&"auto"!==g||(g=e.get(["axisLine","lineStyle","color"])),t.label={x:h[0],y:h[1],style:ph(a,{text:o,font:l,fill:a.getTextColor(),padding:s,backgroundColor:g}),z2:10}}function RO(t,e,n,i,r){t=e.scale.parse(t);var o=e.scale.getLabel({value:t},{precision:r.precision}),a=r.formatter;if(a){var s={value:Gx(e,{value:t}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]};P(i,(function(t){var e=n.getSeriesByIndex(t.seriesIndex),i=t.dataIndexInside,r=e&&e.getDataParams(i);r&&s.seriesData.push(r)})),H(a)?o=a.replace("{value}",o):G(a)&&(o=a(s))}return o}function NO(t,e,n){var i=[1,0,0,1,0,0];return Xn(i,i,n.rotation),Un(i,i,n.position),qu([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}function zO(t,e,n,i,r,o){var a=tM.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=r.get(["label","margin"]),OO(e,i,r,o,{position:NO(i.axis,t,n),align:a.textAlign,verticalAlign:a.textVerticalAlign})}function EO(t,e,n){return{x1:t[n=n||0],y1:t[1-n],x2:e[n],y2:e[1-n]}}function VO(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}}function BO(t,e,n,i,r,o){return{cx:t,cy:e,r0:n,r:i,startAngle:r,endAngle:o,clockwise:!0}}var FO=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.grid,s=i.get("type"),l=GO(a,o).getOtherAxis(o).getGlobalExtent(),u=o.toGlobalCoord(o.dataToCoord(e,!0));if(s&&"none"!==s){var h=PO(i),c=HO[s](o,u,l);c.style=h,t.graphicKey=c.type,t.pointer=c}zO(e,t,YS(a.model,n),n,i,r)},e.prototype.getHandleTransform=function(t,e,n){var i=YS(e.axis.grid.model,e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=NO(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.grid,a=r.getGlobalExtent(!0),s=GO(o,r).getOtherAxis(r).getGlobalExtent(),l="x"===r.dim?0:1,u=[t.x,t.y];u[l]+=e[l],u[l]=Math.min(a[1],u[l]),u[l]=Math.max(a[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];c[l]=u[l];return{x:u[0],y:u[1],rotation:t.rotation,cursorPoint:c,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}},e}(TO);function GO(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}var HO={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:EO([e,n[0]],[e,n[1]],WO(t))}},shadow:function(t,e,n){var i=Math.max(1,t.getBandWidth()),r=n[1]-n[0];return{type:"Rect",shape:VO([e-i/2,n[0]],[i,r],WO(t))}}};function WO(t){return"x"===t.dim?0:1}var UO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="axisPointer",e.defaultOption={show:"auto",zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},e}(Xc),XO=kr(),YO=P;function ZO(t,e,n){if(!a.node){var i=e.getZr();XO(i).records||(XO(i).records={}),function(t,e){if(XO(t).initialized)return;function n(n,i){t.on(n,(function(n){var r=function(t){var e={showTip:[],hideTip:[]},n=function(i){var r=e[i.type];r?r.push(i):(i.dispatchAction=n,t.dispatchAction(i))};return{dispatchAction:n,pendings:e}}(e);YO(XO(t).records,(function(t){t&&i(t,n,r.dispatchAction)})),function(t,e){var n,i=t.showTip.length,r=t.hideTip.length;i?n=t.showTip[i-1]:r&&(n=t.hideTip[r-1]);n&&(n.dispatchAction=null,e.dispatchAction(n))}(r.pendings,e)}))}XO(t).initialized=!0,n("click",B(qO,"click")),n("mousemove",B(qO,"mousemove")),n("globalout",jO)}(i,e),(XO(i).records[t]||(XO(i).records[t]={})).handler=n}}function jO(t,e,n){t.handler("leave",null,n)}function qO(t,e,n,i){e.handler(t,n,i)}function KO(t,e){if(!a.node){var n=e.getZr();(XO(n).records||{})[t]&&(XO(n).records[t]=null)}}var $O=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=e.getComponent("tooltip"),r=t.get("triggerOn")||i&&i.get("triggerOn")||"mousemove|click";ZO("axisPointer",n,(function(t,e,n){"none"!==r&&("leave"===t||r.indexOf(t)>=0)&&n({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})}))},e.prototype.remove=function(t,e){KO("axisPointer",e)},e.prototype.dispose=function(t,e){KO("axisPointer",e)},e.type="axisPointer",e}(wf);function JO(t,e){var n,i=[],r=t.seriesIndex;if(null==r||!(n=e.getSeriesByIndex(r)))return{point:[]};var o=n.getData(),a=Lr(o,t);if(null==a||a<0||F(a))return{point:[]};var s=o.getItemGraphicEl(a),l=n.coordinateSystem;if(n.getTooltipPosition)i=n.getTooltipPosition(a)||[];else if(l&&l.dataToPoint)if(t.isStacked){var u=l.getBaseAxis(),h=l.getOtherAxis(u).dim,c=u.dim,p="x"===h||"radius"===h?1:0,d=o.mapDimension(c),f=[];f[p]=o.get(d,a),f[1-p]=o.get(o.getCalculationInfo("stackResultDimension"),a),i=l.dataToPoint(f)||[]}else i=l.dataToPoint(o.getValues(O(l.dimensions,(function(t){return o.mapDimension(t)})),a))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),i=[g.x+g.width/2,g.y+g.height/2]}return{point:i,el:s}}var QO=kr();function tR(t,e,n){var i=t.currTrigger,r=[t.x,t.y],o=t,a=t.dispatchAction||V(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){oR(r)&&(r=JO({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var l=oR(r),u=o.axesInfo,h=s.axesInfo,c="leave"===i||oR(r),p={},d={},f={list:[],map:{}},g={showPointer:B(nR,d),showTooltip:B(iR,f)};P(s.coordSysMap,(function(t,e){var n=l||t.containPoint(r);P(s.coordSysAxesInfo[e],(function(t,e){var i=t.axis,o=function(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}(u,t);if(!c&&n&&(!u||o)){var a=o&&o.value;null!=a||l||(a=i.pointToData(r)),null!=a&&eR(t,a,g,!1,p)}}))}));var y={};return P(h,(function(t,e){var n=t.linkGroup;n&&!d[e]&&P(n.axesInfo,(function(e,i){var r=d[i];if(e!==t&&r){var o=r.value;n.mapper&&(o=t.axis.scale.parse(n.mapper(o,rR(e),rR(t)))),y[t.key]=o}}))})),P(y,(function(t,e){eR(h[e],t,g,!0,p)})),function(t,e,n){var i=n.axesInfo=[];P(e,(function(e,n){var r=e.axisPointerModel.option,o=t[n];o?(!e.useHandle&&(r.status="show"),r.value=o.value,r.seriesDataIndices=(o.payloadBatch||[]).slice()):!e.useHandle&&(r.status="hide"),"show"===r.status&&i.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:r.value})}))}(d,h,p),function(t,e,n,i){if(oR(e)||!t.list.length)return void i({type:"hideTip"});var r=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};i({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:t.list})}(f,r,t,a),function(t,e,n){var i=n.getZr(),r="axisPointerLastHighlights",o=QO(i)[r]||{},a=QO(i)[r]={};P(t,(function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&P(n.seriesDataIndices,(function(t){var e=t.seriesIndex+" | "+t.dataIndex;a[e]=t}))}));var s=[],l=[];P(o,(function(t,e){!a[e]&&l.push(t)})),P(a,(function(t,e){!o[e]&&s.push(t)})),l.length&&n.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&n.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}(h,0,n),p}}function eR(t,e,n,i,r){var o=t.axis;if(!o.scale.isBlank()&&o.containData(e))if(t.involveSeries){var a=function(t,e){var n=e.axis,i=n.dim,r=t,o=[],a=Number.MAX_VALUE,s=-1;return P(e.seriesModels,(function(e,l){var u,h,c=e.getData().mapDimensionsAll(i);if(e.getAxisTooltipData){var p=e.getAxisTooltipData(c,t,n);h=p.dataIndices,u=p.nestestValue}else{if(!(h=e.getData().indicesOfNearest(c[0],t,"category"===n.type?.5:null)).length)return;u=e.getData().get(c[0],h[0])}if(null!=u&&isFinite(u)){var d=t-u,f=Math.abs(d);f<=a&&((f=0&&s<0)&&(a=f,s=d,r=u,o.length=0),P(h,(function(t){o.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})})))}})),{payloadBatch:o,snapToValue:r}}(e,t),s=a.payloadBatch,l=a.snapToValue;s[0]&&null==r.seriesIndex&&I(r,s[0]),!i&&t.snap&&o.containData(l)&&null!=l&&(e=l),n.showPointer(t,e,s),n.showTooltip(t,a,l)}else n.showPointer(t,e)}function nR(t,e,n,i){t[e.key]={value:n,payloadBatch:i}}function iR(t,e,n,i){var r=n.payloadBatch,o=e.axis,a=o.model,s=e.axisPointerModel;if(e.triggerTooltip&&r.length){var l=e.coordSys.model,u=cM(l),h=t.map[u];h||(h=t.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(h)),h.dataByAxis.push({axisDim:o.dim,axisIndex:a.componentIndex,axisType:a.type,axisId:a.id,value:i,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:r.slice()})}}function rR(t){var e=t.axis.model,n={},i=n.axisDim=t.axis.dim;return n.axisIndex=n[i+"AxisIndex"]=e.componentIndex,n.axisName=n[i+"AxisName"]=e.name,n.axisId=n[i+"AxisId"]=e.id,n}function oR(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function aR(t){dM.registerAxisPointerClass("CartesianAxisPointer",FO),t.registerComponentModel(UO),t.registerComponentView($O),t.registerPreprocessor((function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!F(e)&&(t.axisPointer.link=[e])}})),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,(function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=aM(t,e)})),t.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},tR)}var sR=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis;"angle"===o.dim&&(this.animationThreshold=Math.PI/18);var a=o.polar,s=a.getOtherAxis(o).getExtent(),l=o.dataToCoord(e),u=i.get("type");if(u&&"none"!==u){var h=PO(i),c=lR[u](o,a,l,s);c.style=h,t.graphicKey=c.type,t.pointer=c}var p=function(t,e,n,i,r){var o=e.axis,a=o.dataToCoord(t),s=i.getAngleAxis().getExtent()[0];s=s/180*Math.PI;var l,u,h,c=i.getRadiusAxis().getExtent();if("radius"===o.dim){var p=[1,0,0,1,0,0];Xn(p,p,s),Un(p,p,[i.cx,i.cy]),l=qu([a,-r],p);var d=e.getModel("axisLabel").get("rotate")||0,f=tM.innerTextLayout(s,d*Math.PI/180,-1);u=f.textAlign,h=f.textVerticalAlign}else{var g=c[1];l=i.coordToPoint([g+r,a]);var y=i.cx,v=i.cy;u=Math.abs(l[0]-y)/g<.3?"center":l[0]>y?"left":"right",h=Math.abs(l[1]-v)/g<.3?"middle":l[1]>v?"top":"bottom"}return{position:l,align:u,verticalAlign:h}}(e,n,0,a,i.get(["label","margin"]));OO(t,n,i,r,p)},e}(TO);var lR={line:function(t,e,n,i){return"angle"===t.dim?{type:"Line",shape:EO(e.coordToPoint([i[0],n]),e.coordToPoint([i[1],n]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:n}}},shadow:function(t,e,n,i){var r=Math.max(1,t.getBandWidth()),o=Math.PI/180;return"angle"===t.dim?{type:"Sector",shape:BO(e.cx,e.cy,i[0],i[1],(-n-r/2)*o,(r/2-n)*o)}:{type:"Sector",shape:BO(e.cx,e.cy,n-r/2,n+r/2,0,2*Math.PI)}}},uR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.findAxisModel=function(t){var e;return this.ecModel.eachComponent(t,(function(t){t.getCoordSysModel()===this&&(e=t)}),this),e},e.type="polar",e.dependencies=["radiusAxis","angleAxis"],e.defaultOption={zlevel:0,z:0,center:["50%","50%"],radius:"80%"},e}(Xc),hR=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponents("polar",Nr).models[0]},e.type="polarAxis",e}(Xc);L(hR,Yx);var cR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="angleAxis",e}(hR),pR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="radiusAxis",e}(hR),dR=function(t){function e(e,n){return t.call(this,"radius",e,n)||this}return n(e,t),e.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},e}(hb);dR.prototype.dataToRadius=hb.prototype.dataToCoord,dR.prototype.radiusToData=hb.prototype.coordToData;var fR=kr(),gR=function(t){function e(e,n){return t.call(this,"angle",e,n||[0,360])||this}return n(e,t),e.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},e.prototype.calculateCategoryInterval=function(){var t=this,e=t.getLabelModel(),n=t.scale,i=n.getExtent(),r=n.count();if(i[1]-i[0]<1)return 0;var o=i[0],a=t.dataToCoord(o+1)-t.dataToCoord(o),s=Math.abs(a),l=bi(null==o?"":o+"",e.getFont(),"center","top"),u=Math.max(l.height,7)/s;isNaN(u)&&(u=1/0);var h=Math.max(0,Math.floor(u)),c=fR(t.model),p=c.lastAutoInterval,d=c.lastTickCount;return null!=p&&null!=d&&Math.abs(p-h)<=1&&Math.abs(d-r)<=1&&p>h?h=p:(c.lastTickCount=r,c.lastAutoInterval=h),h},e}(hb);gR.prototype.dataToAngle=hb.prototype.dataToCoord,gR.prototype.angleToData=hb.prototype.coordToData;var yR=function(){function t(t){this.dimensions=["radius","angle"],this.type="polar",this.cx=0,this.cy=0,this._radiusAxis=new dR,this._angleAxis=new gR,this.axisPointerEnabled=!0,this.name=t||"",this._radiusAxis.polar=this._angleAxis.polar=this}return t.prototype.containPoint=function(t){var e=this.pointToCoord(t);return this._radiusAxis.contain(e[0])&&this._angleAxis.contain(e[1])},t.prototype.containData=function(t){return this._radiusAxis.containData(t[0])&&this._angleAxis.containData(t[1])},t.prototype.getAxis=function(t){return this["_"+t+"Axis"]},t.prototype.getAxes=function(){return[this._radiusAxis,this._angleAxis]},t.prototype.getAxesByScale=function(t){var e=[],n=this._angleAxis,i=this._radiusAxis;return n.scale.type===t&&e.push(n),i.scale.type===t&&e.push(i),e},t.prototype.getAngleAxis=function(){return this._angleAxis},t.prototype.getRadiusAxis=function(){return this._radiusAxis},t.prototype.getOtherAxis=function(t){var e=this._angleAxis;return t===e?this._radiusAxis:e},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},t.prototype.getTooltipAxes=function(t){var e=null!=t&&"auto"!==t?this.getAxis(t):this.getBaseAxis();return{baseAxes:[e],otherAxes:[this.getOtherAxis(e)]}},t.prototype.dataToPoint=function(t,e){return this.coordToPoint([this._radiusAxis.dataToRadius(t[0],e),this._angleAxis.dataToAngle(t[1],e)])},t.prototype.pointToData=function(t,e){var n=this.pointToCoord(t);return[this._radiusAxis.radiusToData(n[0],e),this._angleAxis.angleToData(n[1],e)]},t.prototype.pointToCoord=function(t){var e=t[0]-this.cx,n=t[1]-this.cy,i=this.getAngleAxis(),r=i.getExtent(),o=Math.min(r[0],r[1]),a=Math.max(r[0],r[1]);i.inverse?o=a-360:a=o+360;var s=Math.sqrt(e*e+n*n);e/=s,n/=s;for(var l=Math.atan2(-n,e)/Math.PI*180,u=la;)l+=360*u;return[s,l]},t.prototype.coordToPoint=function(t){var e=t[0],n=t[1]/180*Math.PI;return[Math.cos(n)*e+this.cx,-Math.sin(n)*e+this.cy]},t.prototype.getArea=function(){var t=this.getAngleAxis(),e=this.getRadiusAxis().getExtent().slice();e[0]>e[1]&&e.reverse();var n=t.getExtent(),i=Math.PI/180;return{cx:this.cx,cy:this.cy,r0:e[0],r:e[1],startAngle:-n[0]*i,endAngle:-n[1]*i,clockwise:t.inverse,contain:function(t,e){var n=t-this.cx,i=e-this.cy,r=n*n+i*i,o=this.r,a=this.r0;return r<=o*o&&r>=a*a}}},t.prototype.convertToPixel=function(t,e,n){return vR(e)===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){return vR(e)===this?this.pointToData(n):null},t}();function vR(t){var e=t.seriesModel,n=t.polarModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}function mR(t,e){var n=this,i=n.getAngleAxis(),r=n.getRadiusAxis();if(i.scale.setExtent(1/0,-1/0),r.scale.setExtent(1/0,-1/0),t.eachSeries((function(t){if(t.coordinateSystem===n){var e=t.getData();P(Xx(e,"radius"),(function(t){r.scale.unionExtentFromData(e,t)})),P(Xx(e,"angle"),(function(t){i.scale.unionExtentFromData(e,t)}))}})),Vx(i.scale,i.model),Vx(r.scale,r.model),"category"===i.type&&!i.onBand){var o=i.getExtent(),a=360/i.scale.count();i.inverse?o[1]+=a:o[1]-=a,i.setExtent(o[0],o[1])}}function _R(t,e){if(t.type=e.get("type"),t.scale=Bx(e),t.onBand=e.get("boundaryGap")&&"category"===t.type,t.inverse=e.get("inverse"),function(t){return"angleAxis"===t.mainType}(e)){t.inverse=t.inverse!==e.get("clockwise");var n=e.get("startAngle");t.setExtent(n,n+(t.inverse?-360:360))}e.axis=t,t.model=e}var xR={dimensions:yR.prototype.dimensions,create:function(t,e){var n=[];return t.eachComponent("polar",(function(t,i){var r=new yR(i+"");r.update=mR;var o=r.getRadiusAxis(),a=r.getAngleAxis(),s=t.findAxisModel("radiusAxis"),l=t.findAxisModel("angleAxis");_R(o,s),_R(a,l),function(t,e,n){var i=e.get("center"),r=n.getWidth(),o=n.getHeight();t.cx=Zi(i[0],r),t.cy=Zi(i[1],o);var a=t.getRadiusAxis(),s=Math.min(r,o)/2,l=e.get("radius");null==l?l=[0,"100%"]:F(l)||(l=[0,l]);var u=[Zi(l[0],s),Zi(l[1],s)];a.inverse?a.setExtent(u[1],u[0]):a.setExtent(u[0],u[1])}(r,t,e),n.push(r),t.coordinateSystem=r,r.model=t})),t.eachSeries((function(t){if("polar"===t.get("coordinateSystem")){var e=t.getReferringComponents("polar",Nr).models[0];0,t.coordinateSystem=e.coordinateSystem}})),n}},bR=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function wR(t,e,n){e[1]>e[0]&&(e=e.slice().reverse());var i=t.coordToPoint([e[0],n]),r=t.coordToPoint([e[1],n]);return{x1:i[0],y1:i[1],x2:r[0],y2:r[1]}}function SR(t){return t.getRadiusAxis().inverse?0:1}function MR(t){var e=t[0],n=t[t.length-1];e&&n&&Math.abs(Math.abs(e.coord-n.coord)-360)<1e-4&&t.pop()}var IR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="PolarAxisPointer",n}return n(e,t),e.prototype.render=function(t,e){if(this.group.removeAll(),t.get("show")){var n=t.axis,i=n.polar,r=i.getRadiusAxis().getExtent(),o=n.getTicksCoords(),a=n.getMinorTicksCoords(),s=O(n.getViewLabels(),(function(t){t=w(t);var e=n.scale,i="ordinal"===e.type?e.getRawOrdinalNumber(t.tickValue):t.tickValue;return t.coord=n.dataToCoord(i),t}));MR(s),MR(o),P(bR,(function(e){!t.get([e,"show"])||n.scale.isBlank()&&"axisLine"!==e||TR[e](this.group,t,i,o,a,r,s)}),this)}},e.type="angleAxis",e}(dM),TR={axisLine:function(t,e,n,i,r,o){var a,s=e.getModel(["axisLine","lineStyle"]),l=SR(n),u=l?0:1;(a=0===o[u]?new Nl({shape:{cx:n.cx,cy:n.cy,r:o[l]},style:s.getLineStyle(),z2:1,silent:!0}):new tu({shape:{cx:n.cx,cy:n.cy,r:o[l],r0:o[u]},style:s.getLineStyle(),z2:1,silent:!0})).style.fill=null,t.add(a)},axisTick:function(t,e,n,i,r,o){var a=e.getModel("axisTick"),s=(a.get("inside")?-1:1)*a.get("length"),l=o[SR(n)],u=O(i,(function(t){return new uu({shape:wR(n,[l,l+s],t.coord)})}));t.add(Vu(u,{style:T(a.getModel("lineStyle").getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])})}))},minorTick:function(t,e,n,i,r,o){if(r.length){for(var a=e.getModel("axisTick"),s=e.getModel("minorTick"),l=(a.get("inside")?-1:1)*s.get("length"),u=o[SR(n)],h=[],c=0;cf?"left":"right",v=Math.abs(d[1]-g)/p<.3?"middle":d[1]>g?"top":"bottom";if(s&&s[c]){var m=s[c];X(m)&&m.textStyle&&(a=new Oh(m.textStyle,l,l.ecModel))}var _=new cs({silent:tM.isLabelSilent(e),style:ph(a,{x:d[0],y:d[1],fill:a.getTextColor()||e.get(["axisLine","lineStyle","color"]),text:i.formattedLabel,align:y,verticalAlign:v})});if(t.add(_),h){var x=tM.makeAxisEventDataBase(e);x.targetType="axisLabel",x.value=i.rawLabel,_s(_).eventData=x}}),this)},splitLine:function(t,e,n,i,r,o){var a=e.getModel("splitLine").getModel("lineStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=0;h=0?"p":"n",T=x;m&&(i[s][M]||(i[s][M]={p:x,n:x}),T=i[s][M][I]);var C=void 0,D=void 0,A=void 0,L=void 0;if("radius"===c.dim){var k=c.dataToCoord(S)-x,P=o.dataToCoord(M);Math.abs(k)=e.y&&t[1]<=e.y+e.height:n.contain(n.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},t.prototype.pointToData=function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},t.prototype.dataToPoint=function(t){var e=this.getAxis(),n=this.getRect(),i=[],r="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),i[r]=e.toGlobalCoord(e.dataToCoord(+t)),i[1-r]=0===r?n.y+n.height/2:n.x+n.width/2,i},t.prototype.convertToPixel=function(t,e,n){return XR(e)===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){return XR(e)===this?this.pointToData(n):null},t}();function XR(t){var e=t.seriesModel,n=t.singleAxisModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}var YR={create:function(t,e){var n=[];return t.eachComponent("singleAxis",(function(i,r){var o=new UR(i,t,e);o.name="single_"+r,o.resize(i,e),i.coordinateSystem=o,n.push(o)})),t.eachSeries((function(t){if("singleAxis"===t.get("coordinateSystem")){var e=t.getReferringComponents("singleAxis",Nr).models[0];t.coordinateSystem=e&&e.coordinateSystem}})),n},dimensions:UR.prototype.dimensions},ZR=["x","y"],jR=["width","height"],qR=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.coordinateSystem,s=JR(a,1-$R(o)),l=a.dataToPoint(e)[0],u=i.get("type");if(u&&"none"!==u){var h=PO(i),c=KR[u](o,l,s);c.style=h,t.graphicKey=c.type,t.pointer=c}zO(e,t,ER(n),n,i,r)},e.prototype.getHandleTransform=function(t,e,n){var i=ER(e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=NO(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.coordinateSystem,a=$R(r),s=JR(o,a),l=[t.x,t.y];l[a]+=e[a],l[a]=Math.min(s[1],l[a]),l[a]=Math.max(s[0],l[a]);var u=JR(o,1-a),h=(u[1]+u[0])/2,c=[h,h];return c[a]=l[a],{x:l[0],y:l[1],rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}},e}(TO),KR={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:EO([e,n[0]],[e,n[1]],$R(t))}},shadow:function(t,e,n){var i=t.getBandWidth(),r=n[1]-n[0];return{type:"Rect",shape:VO([e-i/2,n[0]],[i,r],$R(t))}}};function $R(t){return t.isHorizontal()?0:1}function JR(t,e){var n=t.getRect();return[n[ZR[e]],n[ZR[e]]+n[jR[e]]]}var QR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="single",e}(wf);var tN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(e,n,i){var r=Hc(e);t.prototype.init.apply(this,arguments),eN(e,r)},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),eN(this.option,e)},e.prototype.getCellSize=function(){return this.option.cellSize},e.type="calendar",e.defaultOption={zlevel:0,z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",nameMap:"en",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",nameMap:"en",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},e}(Xc);function eN(t,e){var n,i=t.cellSize;1===(n=F(i)?i:t.cellSize=[i,i]).length&&(n[1]=n[0]);var r=O([0,1],(function(t){return function(t,e){return null!=t[Nc[e][0]]||null!=t[Nc[e][1]]&&null!=t[Nc[e][2]]}(e,t)&&(n[t]="auto"),null!=n[t]&&"auto"!==n[t]}));Gc(t,e,{type:"box",ignoreSize:r})}var nN={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},iN={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]},rN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=this.group;i.removeAll();var r=t.coordinateSystem,o=r.getRangeInfo(),a=r.getOrient();this._renderDayRect(t,o,i),this._renderLines(t,o,a,i),this._renderYearText(t,o,a,i),this._renderMonthText(t,a,i),this._renderWeekText(t,o,a,i)},e.prototype._renderDayRect=function(t,e,n){for(var i=t.coordinateSystem,r=t.getModel("itemStyle").getItemStyle(),o=i.getCellWidth(),a=i.getCellHeight(),s=e.start.time;s<=e.end.time;s=i.getNextNDay(s,1).time){var l=i.dataToRect([s],!1).tl,u=new ls({shape:{x:l[0],y:l[1],width:o,height:a},cursor:"default",style:r});n.add(u)}},e.prototype._renderLines=function(t,e,n,i){var r=this,o=t.coordinateSystem,a=t.getModel(["splitLine","lineStyle"]).getLineStyle(),s=t.get(["splitLine","show"]),l=a.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var u=e.start,h=0;u.time<=e.end.time;h++){p(u.formatedDate),0===h&&(u=o.getDateInfo(e.start.y+"-"+e.start.m));var c=u.date;c.setMonth(c.getMonth()+1),u=o.getDateInfo(c)}function p(e){r._firstDayOfMonth.push(o.getDateInfo(e)),r._firstDayPoints.push(o.dataToRect([e],!1).tl);var l=r._getLinePointsOfOneWeek(t,e,n);r._tlpoints.push(l[0]),r._blpoints.push(l[l.length-1]),s&&r._drawSplitline(l,a,i)}p(o.getNextNDay(e.end.time,1).formatedDate),s&&this._drawSplitline(r._getEdgesPoints(r._tlpoints,l,n),a,i),s&&this._drawSplitline(r._getEdgesPoints(r._blpoints,l,n),a,i)},e.prototype._getEdgesPoints=function(t,e,n){var i=[t[0].slice(),t[t.length-1].slice()],r="horizontal"===n?0:1;return i[0][r]=i[0][r]-e/2,i[1][r]=i[1][r]+e/2,i},e.prototype._drawSplitline=function(t,e,n){var i=new au({z2:20,shape:{points:t},style:e});n.add(i)},e.prototype._getLinePointsOfOneWeek=function(t,e,n){for(var i=t.coordinateSystem,r=i.getDateInfo(e),o=[],a=0;a<7;a++){var s=i.getNextNDay(r.time,a),l=i.dataToRect([s.time],!1);o[2*s.day]=l.tl,o[2*s.day+1]=l["horizontal"===n?"bl":"tr"]}return o},e.prototype._formatterLabel=function(t,e){return"string"==typeof t&&t?(n=t,P(e,(function(t,e){n=n.replace("{"+e+"}",i?Ic(t):t)})),n):"function"==typeof t?t(e):e.nameMap;var n,i},e.prototype._yearTextPositionControl=function(t,e,n,i,r){var o=e[0],a=e[1],s=["center","bottom"];"bottom"===i?(a+=r,s=["center","top"]):"left"===i?o-=r:"right"===i?(o+=r,s=["center","top"]):a-=r;var l=0;return"left"!==i&&"right"!==i||(l=Math.PI/2),{rotation:l,x:o,y:a,style:{align:s[0],verticalAlign:s[1]}}},e.prototype._renderYearText=function(t,e,n,i){var r=t.getModel("yearLabel");if(r.get("show")){var o=r.get("margin"),a=r.get("position");a||(a="horizontal"!==n?"top":"left");var s=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],l=(s[0][0]+s[1][0])/2,u=(s[0][1]+s[1][1])/2,h="horizontal"===n?0:1,c={top:[l,s[h][1]],bottom:[l,s[1-h][1]],left:[s[1-h][0],u],right:[s[h][0],u]},p=e.start.y;+e.end.y>+e.start.y&&(p=p+"-"+e.end.y);var d=r.get("formatter"),f={start:e.start.y,end:e.end.y,nameMap:p},g=this._formatterLabel(d,f),y=new cs({z2:30,style:ph(r,{text:g})});y.attr(this._yearTextPositionControl(y,c[a],n,a,o)),i.add(y)}},e.prototype._monthTextPositionControl=function(t,e,n,i,r){var o="left",a="top",s=t[0],l=t[1];return"horizontal"===n?(l+=r,e&&(o="center"),"start"===i&&(a="bottom")):(s+=r,e&&(a="middle"),"start"===i&&(o="right")),{x:s,y:l,align:o,verticalAlign:a}},e.prototype._renderMonthText=function(t,e,n){var i=t.getModel("monthLabel");if(i.get("show")){var r=i.get("nameMap"),o=i.get("margin"),a=i.get("position"),s=i.get("align"),l=[this._tlpoints,this._blpoints];H(r)&&(r=nN[r.toUpperCase()]||[]);var u="start"===a?0:1,h="horizontal"===e?0:1;o="start"===a?-o:o;for(var c="center"===s,p=0;p=i.start.time&&n.timea.end.time&&t.reverse(),t},t.prototype._getRangeInfo=function(t){var e,n=[this.getDateInfo(t[0]),this.getDateInfo(t[1])];n[0].time>n[1].time&&(e=!0,n.reverse());var i=Math.floor(n[1].time/oN)-Math.floor(n[0].time/oN)+1,r=new Date(n[0].time),o=r.getDate(),a=n[1].date.getDate();r.setDate(o+i-1);var s=r.getDate();if(s!==a)for(var l=r.getTime()-n[1].time>0?1:-1;(s=r.getDate())!==a&&(r.getTime()-n[1].time)*l>0;)i-=l,r.setDate(s-l);var u=Math.floor((i+n[0].day+6)/7),h=e?1-u:u-1;return e&&n.reverse(),{range:[n[0].formatedDate,n[1].formatedDate],start:n[0],end:n[1],allDay:i,weeks:u,nthWeek:h,fweek:n[0].day,lweek:n[1].day}},t.prototype._getDateByWeeksAndDay=function(t,e,n){var i=this._getRangeInfo(n);if(t>i.weeks||0===t&&ei.lweek)return null;var r=7*(t-1)-i.fweek+e,o=new Date(i.start.time);return o.setDate(+i.start.d+r),this.getDateInfo(o)},t.create=function(e,n){var i=[];return e.eachComponent("calendar",(function(r){var o=new t(r,e,n);i.push(o),r.coordinateSystem=o})),e.eachSeries((function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("calendarIndex")||0])})),i},t.dimensions=["time","value"],t}();function sN(t){var e=t.calendarModel,n=t.seriesModel;return e?e.coordinateSystem:n?n.coordinateSystem:null}var lN=kr(),uN={path:null,compoundPath:null,group:Ei,image:es,text:cs},hN=function(t){var e=t.graphic;F(e)?e[0]&&e[0].elements?t.graphic=[t.graphic[0]]:t.graphic=[{elements:e}]:e&&!e.elements&&(t.graphic=[{elements:[e]}])},cN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.preventAutoZ=!0,n}return n(e,t),e.prototype.mergeOption=function(e,n){var i=this.option.elements;this.option.elements=null,t.prototype.mergeOption.call(this,e,n),this.option.elements=i},e.prototype.optionUpdated=function(t,e){var n=this.option,i=(e?n:t).elements,r=n.elements=e?[]:n.elements,o=[];this._flatten(i,o,null);var a=Mr(r,o,"normalMerge"),s=this._elOptionsToUpdate=[];P(a,(function(t,e){var n=t.newOption;n&&(s.push(n),function(t,e){var n=t.existing;if(e.id=t.keyInfo.id,!e.type&&n&&(e.type=n.type),null==e.parentId){var i=e.parentOption;i?e.parentId=i.id:n&&(e.parentId=n.parentId)}e.parentOption=null}(t,n),function(t,e,n){var i=I({},n),r=t[e],o=n.$action||"merge";if("merge"===o){if(r)S(r,i,!0),Gc(r,i,{ignoreSize:!0}),Wc(n,r);else t[e]=i}else"replace"===o?t[e]=i:"remove"===o&&r&&(t[e]=null)}(r,e,n),function(t,e){if(!t)return;if(t.hv=e.hv=[gN(e,["left","right"]),gN(e,["top","bottom"])],"group"===t.type){var n=t,i=e;null==n.width&&(n.width=i.width=0),null==n.height&&(n.height=i.height=0)}}(r[e],n))}),this);for(var l=r.length-1;l>=0;l--)null==r[l]?r.splice(l,1):delete r[l].$action},e.prototype._flatten=function(t,e,n){P(t,(function(t){if(t){n&&(t.parentOption=n),e.push(t);var i=t.children;"group"===t.type&&i&&this._flatten(i,e,t),delete t.children}}),this)},e.prototype.useElOptionsToUpdate=function(){var t=this._elOptionsToUpdate;return this._elOptionsToUpdate=null,t},e.type="graphic",e.defaultOption={elements:[]},e}(Xc),pN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){this._elMap=ht()},e.prototype.render=function(t,e,n){t!==this._lastGraphicModel&&this._clear(),this._lastGraphicModel=t,this._updateElements(t),this._relocate(t,n)},e.prototype._updateElements=function(t){var e=t.useElOptionsToUpdate();if(e){var n=this._elMap,i=this.group;P(e,(function(e){var r=Cr(e.id,null),o=null!=r?n.get(r):null,a=Cr(e.parentId,null),s=null!=a?n.get(a):i,l=e.type,u=e.style;"text"===l&&u&&e.hv&&e.hv[1]&&(u.textVerticalAlign=u.textBaseline=u.verticalAlign=u.align=null);var h=e.textContent,c=e.textConfig;if(u&&jk(u,l,!!c,!!h)){var p=qk(u,l,!0);!c&&p.textConfig&&(c=e.textConfig=p.textConfig),!h&&p.textContent&&(h=p.textContent)}var d=function(t){return t=I({},t),P(["id","parentId","$action","hv","bounding","textContent"].concat(Rc),(function(e){delete t[e]})),t}(e);var f=e.$action||"merge";"merge"===f?o?o.attr(d):dN(r,s,d,n):"replace"===f?(fN(o,n),dN(r,s,d,n)):"remove"===f&&fN(o,n);var g=n.get(r);if(g&&h)if("merge"===f){var y=g.getTextContent();y?y.attr(h):g.setTextContent(new cs(h))}else"replace"===f&&g.setTextContent(new cs(h));if(g){var v=lN(g);v.__ecGraphicWidthOption=e.width,v.__ecGraphicHeightOption=e.height,function(t,e,n){var i=_s(t).eventData;t.silent||t.ignore||i||(i=_s(t).eventData={componentType:"graphic",componentIndex:e.componentIndex,name:t.name});i&&(i.info=n.info)}(g,t,e),oh({el:g,componentModel:t,itemName:g.name,itemTooltipOption:e.tooltip})}}))}},e.prototype._relocate=function(t,e){for(var n=t.option.elements,i=this.group,r=this._elMap,o=e.getWidth(),a=e.getHeight(),s=0;s=0;s--){var c,p,d;if(d=null!=(p=Cr((c=n[s]).id,null))?r.get(p):null){var f=d.parent;h=lN(f);Bc(d,c,f===i?{width:o,height:a}:{width:h.__ecGraphicWidth,height:h.__ecGraphicHeight},null,{hv:c.hv,boundingMode:c.bounding})}}},e.prototype._clear=function(){var t=this._elMap;t.each((function(e){fN(e,t)})),this._elMap=ht()},e.prototype.dispose=function(){this._clear()},e.type="graphic",e}(wf);function dN(t,e,n,i){var r=n.type;var o=dt(uN,r)?uN[r]:Ru(r);var a=new o(n);e.add(a),i.set(t,a),lN(a).__ecGraphicId=t}function fN(t,e){var n=t&&t.parent;n&&("group"===t.type&&t.traverse((function(t){fN(t,e)})),e.removeKey(lN(t).__ecGraphicId),n.remove(t))}function gN(t,e){var n;return P(e,(function(e){null!=t[e]&&"auto"!==t[e]&&(n=!0)})),n}var yN=["x","y","radius","angle","single"],vN=["cartesian2d","polar","singleAxis"];function mN(t){return t+"Axis"}function _N(t,e){var n,i=ht(),r=[],o=ht();t.eachComponent({mainType:"dataZoom",query:e},(function(t){o.get(t.uid)||s(t)}));do{n=!1,t.eachComponent("dataZoom",a)}while(n);function a(t){!o.get(t.uid)&&function(t){var e=!1;return t.eachTargetAxis((function(t,n){var r=i.get(t);r&&r[n]&&(e=!0)})),e}(t)&&(s(t),n=!0)}function s(t){o.set(t.uid,!0),r.push(t),t.eachTargetAxis((function(t,e){(i.get(t)||i.set(t,[]))[e]=!0}))}return r}function xN(t){var e=t.ecModel,n={infoList:[],infoMap:ht()};return t.eachTargetAxis((function(t,i){var r=e.getComponent(mN(t),i);if(r){var o=r.getCoordSysModel();if(o){var a=o.uid,s=n.infoMap.get(a);s||(s={model:o,axisModels:[]},n.infoList.push(s),n.infoMap.set(a,s)),s.axisModels.push(r)}}})),n}var bN=function(){function t(){this.indexList=[],this.indexMap=[]}return t.prototype.add=function(t){this.indexMap[t]||(this.indexList.push(t),this.indexMap[t]=!0)},t}(),wN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._autoThrottle=!0,n._noTarget=!0,n._rangePropMode=["percent","percent"],n}return n(e,t),e.prototype.init=function(t,e,n){var i=SN(t);this.settledOption=i,this.mergeDefaultAndTheme(t,n),this._doInit(i)},e.prototype.mergeOption=function(t){var e=SN(t);S(this.option,t,!0),S(this.settledOption,e,!0),this._doInit(e)},e.prototype._doInit=function(t){var e=this.option;this._setDefaultThrottle(t),this._updateRangeUse(t);var n=this.settledOption;P([["start","startValue"],["end","endValue"]],(function(t,i){"value"===this._rangePropMode[i]&&(e[t[0]]=n[t[0]]=null)}),this),this._resetTarget()},e.prototype._resetTarget=function(){var t=this.get("orient",!0),e=this._targetAxisInfoMap=ht();this._fillSpecifiedTargetAxis(e)?this._orient=t||this._makeAutoOrientByTargetAxis():(this._orient=t||"horizontal",this._fillAutoTargetAxisByOrient(e,this._orient)),this._noTarget=!0,e.each((function(t){t.indexList.length&&(this._noTarget=!1)}),this)},e.prototype._fillSpecifiedTargetAxis=function(t){var e=!1;return P(yN,(function(n){var i=this.getReferringComponents(mN(n),zr);if(i.specified){e=!0;var r=new bN;P(i.models,(function(t){r.add(t.componentIndex)})),t.set(n,r)}}),this),e},e.prototype._fillAutoTargetAxisByOrient=function(t,e){var n=this.ecModel,i=!0;if(i){var r="vertical"===e?"y":"x";o(n.findComponents({mainType:r+"Axis"}),r)}i&&o(n.findComponents({mainType:"singleAxis",filter:function(t){return t.get("orient",!0)===e}}),"single");function o(e,n){var r=e[0];if(r){var o=new bN;if(o.add(r.componentIndex),t.set(n,o),i=!1,"x"===n||"y"===n){var a=r.getReferringComponents("grid",Nr).models[0];a&&P(e,(function(t){r.componentIndex!==t.componentIndex&&a===t.getReferringComponents("grid",Nr).models[0]&&o.add(t.componentIndex)}))}}}i&&P(yN,(function(e){if(i){var r=n.findComponents({mainType:mN(e),filter:function(t){return"category"===t.get("type",!0)}});if(r[0]){var o=new bN;o.add(r[0].componentIndex),t.set(e,o),i=!1}}}),this)},e.prototype._makeAutoOrientByTargetAxis=function(){var t;return this.eachTargetAxis((function(e){!t&&(t=e)}),this),"y"===t?"vertical":"horizontal"},e.prototype._setDefaultThrottle=function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var e=this.ecModel.option;this.option.throttle=e.animation&&e.animationDurationUpdate>0?100:20}},e.prototype._updateRangeUse=function(t){var e=this._rangePropMode,n=this.get("rangeMode");P([["start","startValue"],["end","endValue"]],(function(i,r){var o=null!=t[i[0]],a=null!=t[i[1]];o&&!a?e[r]="percent":!o&&a?e[r]="value":n?e[r]=n[r]:o&&(e[r]="percent")}))},e.prototype.noTarget=function(){return this._noTarget},e.prototype.getFirstTargetAxisModel=function(){var t;return this.eachTargetAxis((function(e,n){null==t&&(t=this.ecModel.getComponent(mN(e),n))}),this),t},e.prototype.eachTargetAxis=function(t,e){this._targetAxisInfoMap.each((function(n,i){P(n.indexList,(function(n){t.call(e,i,n)}))}))},e.prototype.getAxisProxy=function(t,e){var n=this.getAxisModel(t,e);if(n)return n.__dzAxisProxy},e.prototype.getAxisModel=function(t,e){var n=this._targetAxisInfoMap.get(t);if(n&&n.indexMap[e])return this.ecModel.getComponent(mN(t),e)},e.prototype.setRawRange=function(t){var e=this.option,n=this.settledOption;P([["start","startValue"],["end","endValue"]],(function(i){null==t[i[0]]&&null==t[i[1]]||(e[i[0]]=n[i[0]]=t[i[0]],e[i[1]]=n[i[1]]=t[i[1]])}),this),this._updateRangeUse(t)},e.prototype.setCalculatedRange=function(t){var e=this.option;P(["start","startValue","end","endValue"],(function(n){e[n]=t[n]}))},e.prototype.getPercentRange=function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},e.prototype.getValueRange=function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var n=this.findRepresentativeAxisProxy();return n?n.getDataValueWindow():void 0},e.prototype.findRepresentativeAxisProxy=function(t){if(t)return t.__dzAxisProxy;for(var e,n=this._targetAxisInfoMap.keys(),i=0;i=0}(e)){var n=mN(this._dimName),i=e.getReferringComponents(n,Nr).models[0];i&&this._axisIndex===i.componentIndex&&t.push(e)}}),this),t},t.prototype.getAxisModel=function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},t.prototype.getMinMaxSpan=function(){return w(this._minMaxSpan)},t.prototype.calculateDataWindow=function(t){var e,n=this._dataExtent,i=this.getAxisModel().axis.scale,r=this._dataZoomModel.getRangePropMode(),o=[0,100],a=[],s=[];CN(["start","end"],(function(l,u){var h=t[l],c=t[l+"Value"];"percent"===r[u]?(null==h&&(h=o[u]),c=i.parse(Yi(h,o,n))):(e=!0,h=Yi(c=null==c?n[u]:i.parse(c),n,o)),s[u]=c,a[u]=h})),DN(s),DN(a);var l=this._minMaxSpan;function u(t,e,n,r,o){var a=o?"Span":"ValueSpan";PD(0,t,n,"all",l["min"+a],l["max"+a]);for(var s=0;s<2;s++)e[s]=Yi(t[s],n,r,!0),o&&(e[s]=i.parse(e[s]))}return e?u(s,a,n,o,!1):u(a,s,o,n,!0),{valueWindow:s,percentWindow:a}},t.prototype.reset=function(t){if(t===this._dataZoomModel){var e=this.getTargetSeriesModels();this._dataExtent=function(t,e,n){var i=[1/0,-1/0];CN(n,(function(t){!function(t,e,n){e&&P(Xx(e,n),(function(n){var i=e.getApproximateExtent(n);i[0]t[1]&&(t[1]=i[1])}))}(i,t.getData(),e)}));var r=t.getAxisModel(),o=Nx(r.axis.scale,r,i).calculate();return[o.min,o.max]}(this,this._dimName,e),this._updateMinMaxSpan();var n=this.calculateDataWindow(t.settledOption);this._valueWindow=n.valueWindow,this._percentWindow=n.percentWindow,this._setAxisModel()}},t.prototype.filterData=function(t,e){if(t===this._dataZoomModel){var n=this._dimName,i=this.getTargetSeriesModels(),r=t.get("filterMode"),o=this._valueWindow;"none"!==r&&CN(i,(function(t){var e=t.getData(),i=e.mapDimensionsAll(n);i.length&&("weakFilter"===r?e.filterSelf((function(t){for(var n,r,a,s=0;so[1];if(u&&!h&&!c)return!0;u&&(a=!0),h&&(n=!0),c&&(r=!0)}return a&&n&&r})):CN(i,(function(n){if("empty"===r)t.setData(e=e.map(n,(function(t){return function(t){return t>=o[0]&&t<=o[1]}(t)?t:NaN})));else{var i={};i[n]=o,e.selectRange(i)}})),CN(i,(function(t){e.setApproximateExtent(o,t)})))}))}},t.prototype._updateMinMaxSpan=function(){var t=this._minMaxSpan={},e=this._dataZoomModel,n=this._dataExtent;CN(["min","max"],(function(i){var r=e.get(i+"Span"),o=e.get(i+"ValueSpan");null!=o&&(o=this.getAxisModel().axis.scale.parse(o)),null!=o?r=Yi(n[0]+o,n,[0,100],!0):null!=r&&(o=Yi(r,[0,100],n,!0)-n[0]),t[i+"Span"]=r,t[i+"ValueSpan"]=o}),this)},t.prototype._setAxisModel=function(){var t=this.getAxisModel(),e=this._percentWindow,n=this._valueWindow;if(e){var i=Ji(n,[0,500]);i=Math.min(i,20);var r=t.axis.scale.rawExtentInfo;0!==e[0]&&r.setDeterminedMinMax("min",+n[0].toFixed(i)),100!==e[1]&&r.setDeterminedMinMax("max",+n[1].toFixed(i)),r.freeze()}},t}();var LN={getTargetSeries:function(t){function e(e){t.eachComponent("dataZoom",(function(n){n.eachTargetAxis((function(i,r){var o=t.getComponent(mN(i),r);e(i,r,o,n)}))}))}e((function(t,e,n,i){n.__dzAxisProxy=null}));var n=[];e((function(e,i,r,o){r.__dzAxisProxy||(r.__dzAxisProxy=new AN(e,i,o,t),n.push(r.__dzAxisProxy))}));var i=ht();return P(n,(function(t){P(t.getTargetSeriesModels(),(function(t){i.set(t.uid,t)}))})),i},overallReset:function(t,e){t.eachComponent("dataZoom",(function(t){t.eachTargetAxis((function(e,n){t.getAxisProxy(e,n).reset(t)})),t.eachTargetAxis((function(n,i){t.getAxisProxy(n,i).filterData(t,e)}))})),t.eachComponent("dataZoom",(function(t){var e=t.findRepresentativeAxisProxy();if(e){var n=e.getDataPercentWindow(),i=e.getDataValueWindow();t.setCalculatedRange({start:n[0],end:n[1],startValue:i[0],endValue:i[1]})}}))}};var kN=!1;function PN(t){kN||(kN=!0,t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,LN),function(t){t.registerAction("dataZoom",(function(t,e){P(_N(e,t),(function(e){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})}))}))}(t),t.registerSubTypeDefaulter("dataZoom",(function(){return"slider"})))}function ON(t){t.registerComponentModel(MN),t.registerComponentView(TN),PN(t)}var RN=function(){},NN={};function zN(t,e){NN[t]=e}function EN(t){return NN[t]}var VN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(){t.prototype.optionUpdated.apply(this,arguments);var e=this.ecModel;P(this.option.feature,(function(t,n){var i=EN(n);i&&(i.getDefaultOption&&(i.defaultOption=i.getDefaultOption(e)),S(t,i.defaultOption))}))},e.type="toolbox",e.layoutMode={type:"box",ignoreSize:!0},e.defaultOption={show:!0,z:6,zlevel:0,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}},tooltip:{show:!1,position:"bottom"}},e}(Xc);function BN(t,e){var n=wc(e.get("padding")),i=e.getItemStyle(["color","opacity"]);return i.fill=e.get("backgroundColor"),t=new ls({shape:{x:t.x-n[3],y:t.y-n[0],width:t.width+n[1]+n[3],height:t.height+n[0]+n[2],r:e.get("borderRadius")},style:i,silent:!0,z2:-1})}var FN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n,i){var r=this.group;if(r.removeAll(),t.get("show")){var o=+t.get("itemSize"),a=t.get("feature")||{},s=this._features||(this._features={}),l=[];P(a,(function(t,e){l.push(e)})),new n_(this._featureNames||[],l).add(u).update(u).remove(B(u,null)).execute(),this._featureNames=l,function(t,e,n){var i=e.getBoxLayoutParams(),r=e.get("padding"),o={width:n.getWidth(),height:n.getHeight()},a=Vc(i,o,r);Ec(e.get("orient"),t,e.get("itemGap"),a.width,a.height),Bc(t,i,o,r)}(r,t,n),r.add(BN(r.getBoundingRect(),t)),r.eachChild((function(t){var e=t.__title,i=t.ensureState("emphasis"),a=i.textConfig||(i.textConfig={}),s=t.getTextContent(),l=s&&s.states.emphasis;if(l&&!G(l)&&e){var u=l.style||(l.style={}),h=bi(e,cs.makeFont(u)),c=t.x+r.x,p=!1;t.y+r.y+o+h.height>n.getHeight()&&(a.position="top",p=!0);var d=p?-5-h.height:o+8;c+h.width/2>n.getWidth()?(a.position=["100%",d],u.align="right"):c-h.width/2<0&&(a.position=[0,d],u.align="left")}}))}function u(u,h){var c,p=l[u],d=l[h],f=a[p],g=new Oh(f,t,t.ecModel);if(i&&null!=i.newTitle&&i.featureName===p&&(f.title=i.newTitle),p&&!d){if(function(t){return 0===t.indexOf("my")}(p))c={onclick:g.option.onclick,featureName:p};else{var y=EN(p);if(!y)return;c=new y}s[p]=c}else if(!(c=s[d]))return;c.uid=Nh("toolbox-feature"),c.model=g,c.ecModel=e,c.api=n;var v=c instanceof RN;p||!d?!g.get("show")||v&&c.unusable?v&&c.remove&&c.remove(e,n):(!function(i,a,s){var l,u,h=i.getModel("iconStyle"),c=i.getModel(["emphasis","iconStyle"]),p=a instanceof RN&&a.getIcons?a.getIcons():i.get("icon"),d=i.get("title")||{};"string"==typeof p?(l={})[s]=p:l=p;"string"==typeof d?(u={})[s]=d:u=d;var f=i.iconPaths={};P(l,(function(s,l){var p=eh(s,{},{x:-o/2,y:-o/2,width:o,height:o});p.setStyle(h.getItemStyle()),p.ensureState("emphasis").style=c.getItemStyle();var d=new cs({style:{text:u[l],align:c.get("textAlign"),borderRadius:c.get("textBorderRadius"),padding:c.get("textPadding"),fill:null},ignore:!0});p.setTextContent(d),oh({el:p,componentModel:t,itemName:l,formatterParamsExtra:{title:u[l]}}),p.__title=u[l],p.on("mouseover",(function(){var e=c.getItemStyle(),n="vertical"===t.get("orient")?null==t.get("right")?"right":"left":null==t.get("bottom")?"bottom":"top";d.setStyle({fill:c.get("textFill")||e.fill||e.stroke||"#000",backgroundColor:c.get("textBackgroundColor")}),p.setTextConfig({position:c.get("textPosition")||n}),d.ignore=!t.get("showTitle"),js(this)})).on("mouseout",(function(){"emphasis"!==i.get(["iconStatus",l])&&qs(this),d.hide()})),("emphasis"===i.get(["iconStatus",l])?js:qs)(p),r.add(p),p.on("click",V(a.onclick,a,e,n,l)),f[l]=p}))}(g,c,p),g.setIconStatus=function(t,e){var n=this.option,i=this.iconPaths;n.iconStatus=n.iconStatus||{},n.iconStatus[t]=e,i[t]&&("emphasis"===e?js:qs)(i[t])},c instanceof RN&&c.render&&c.render(g,e,n,i)):v&&c.dispose&&c.dispose(e,n)}},e.prototype.updateView=function(t,e,n,i){P(this._features,(function(t){t instanceof RN&&t.updateView&&t.updateView(t.model,e,n,i)}))},e.prototype.remove=function(t,e){P(this._features,(function(n){n instanceof RN&&n.remove&&n.remove(t,e)})),this.group.removeAll()},e.prototype.dispose=function(t,e){P(this._features,(function(n){n instanceof RN&&n.dispose&&n.dispose(t,e)}))},e.type="toolbox",e}(wf);var GN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onclick=function(t,e){var n=this.model,i=n.get("name")||t.get("title.0.text")||"echarts",r="svg"===e.getZr().painter.getType(),o=r?"svg":n.get("type",!0)||"png",s=e.getConnectedDataURL({type:o,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")});if("function"!=typeof MouseEvent||!a.browser.newEdge&&(a.browser.ie||a.browser.edge))if(window.navigator.msSaveOrOpenBlob||r){var l=s.split(","),u=l[0].indexOf("base64")>-1,h=r?decodeURIComponent(l[1]):l[1];u&&(h=window.atob(h));var c=i+"."+o;if(window.navigator.msSaveOrOpenBlob){for(var p=h.length,d=new Uint8Array(p);p--;)d[p]=h.charCodeAt(p);var f=new Blob([d]);window.navigator.msSaveOrOpenBlob(f,c)}else{var g=document.createElement("iframe");document.body.appendChild(g);var y=g.contentWindow,v=y.document;v.open("image/svg+xml","replace"),v.write(h),v.close(),y.focus(),v.execCommand("SaveAs",!0,c),document.body.removeChild(g)}}else{var m=n.get("lang"),_='',x=window.open();x.document.write(_),x.document.title=i}else{var b=document.createElement("a");b.download=i+"."+o,b.target="_blank",b.href=s;var w=new MouseEvent("click",{view:document.defaultView,bubbles:!0,cancelable:!1});b.dispatchEvent(w)}},e.getDefaultOption=function(t){return{show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocale(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],lang:t.getLocale(["toolbox","saveAsImage","lang"])}},e}(RN);GN.prototype.unusable=!a.canvasSupported;var HN="__ec_magicType_stack__",WN=[["line","bar"],["stack"]],UN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getIcons=function(){var t=this.model,e=t.get("icon"),n={};return P(t.get("type"),(function(t){e[t]&&(n[t]=e[t])})),n},e.getDefaultOption=function(t){return{show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocale(["toolbox","magicType","title"]),option:{},seriesIndex:{}}},e.prototype.onclick=function(t,e,n){var i=this.model,r=i.get(["seriesIndex",n]);if(XN[n]){var o,a={series:[]};P(WN,(function(t){D(t,n)>=0&&P(t,(function(t){i.setIconStatus(t,"normal")}))})),i.setIconStatus(n,"emphasis"),t.eachComponent({mainType:"series",query:null==r?null:{seriesIndex:r}},(function(t){var e=t.subType,r=t.id,o=XN[n](e,r,t,i);o&&(T(o,t.option),a.series.push(o));var s=t.coordinateSystem;if(s&&"cartesian2d"===s.type&&("line"===n||"bar"===n)){var l=s.getAxesByScale("ordinal")[0];if(l){var u=l.dim+"Axis",h=t.getReferringComponents(u,Nr).models[0].componentIndex;a[u]=a[u]||[];for(var c=0;c<=h;c++)a[u][h]=a[u][h]||{};a[u][h].boundaryGap="bar"===n}}}));var s=n;"stack"===n&&(o=S({stack:i.option.title.tiled,tiled:i.option.title.stack},i.option.title),"emphasis"!==i.get(["iconStatus",n])&&(s="tiled")),e.dispatchAction({type:"changeMagicType",currentType:s,newOption:a,newTitle:o,featureName:"magicType"})}},e}(RN),XN={line:function(t,e,n,i){if("bar"===t)return S({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","line"])||{},!0)},bar:function(t,e,n,i){if("line"===t)return S({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","bar"])||{},!0)},stack:function(t,e,n,i){var r=n.get("stack")===HN;if("line"===t||"bar"===t)return i.setIconStatus("stack",r?"normal":"emphasis"),S({id:e,stack:r?"":HN},i.get(["option","stack"])||{},!0)}};Hm({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},(function(t,e){e.mergeOption(t.newOption)}));var YN=new Array(60).join("-"),ZN="\t";function jN(t){return t.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}var qN=new RegExp("[\t]+","g");function KN(t,e){var n=t.split(new RegExp("\n*"+YN+"\n*","g")),i={series:[]};return P(n,(function(t,n){if(function(t){if(t.slice(0,t.indexOf("\n")).indexOf(ZN)>=0)return!0}(t)){var r=function(t){for(var e=t.split(/\n+/g),n=[],i=O(jN(e.shift()).split(qN),(function(t){return{name:t,data:[]}})),r=0;r=0)&&t(r,i._targetInfoList)}))}return t.prototype.setOutputRanges=function(t,e){return this.matchOutputRanges(t,e,(function(t,e,n){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var i=hz[t.brushType](0,n,e);t.__rangeOffset={offset:pz[t.brushType](i.values,t.range,[1,1]),xyMinMax:i.xyMinMax}}})),t},t.prototype.matchOutputRanges=function(t,e,n){P(t,(function(t){var i=this.findTargetInfo(t,e);i&&!0!==i&&P(i.coordSyses,(function(i){var r=hz[t.brushType](1,i,t.range,!0);n(t,r.values,i,e)}))}),this)},t.prototype.setInputRanges=function(t,e){P(t,(function(t){var n,i,r,o,a,s=this.findTargetInfo(t,e);if(t.range=t.range||[],s&&!0!==s){t.panelId=s.panelId;var l=hz[t.brushType](0,s.coordSys,t.coordRange),u=t.__rangeOffset;t.range=u?pz[t.brushType](l.values,u.offset,(n=l.xyMinMax,i=u.xyMinMax,r=fz(n),o=fz(i),a=[r[0]/o[0],r[1]/o[1]],isNaN(a[0])&&(a[0]=1),isNaN(a[1])&&(a[1]=1),a)):l.values}}),this)},t.prototype.makePanelOpts=function(t,e){return O(this._targetInfoList,(function(n){var i=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:e?e(n):null,clipPath:RA(i),isTargetByCursor:zA(i,t,n.coordSysModel),getLinearBrushOtherExtent:NA(i)}}))},t.prototype.controlSeries=function(t,e,n){var i=this.findTargetInfo(t,n);return!0===i||i&&D(i.coordSyses,e.coordinateSystem)>=0},t.prototype.findTargetInfo=function(t,e){for(var n=this._targetInfoList,i=az(e,t),r=0;rt[1]&&t.reverse(),t}function az(t,e){return Or(t,e,{includeMainTypes:iz})}var sz={grid:function(t,e){var n=t.xAxisModels,i=t.yAxisModels,r=t.gridModels,o=ht(),a={},s={};(n||i||r)&&(P(n,(function(t){var e=t.axis.grid.model;o.set(e.id,e),a[e.id]=!0})),P(i,(function(t){var e=t.axis.grid.model;o.set(e.id,e),s[e.id]=!0})),P(r,(function(t){o.set(t.id,t),a[t.id]=!0,s[t.id]=!0})),o.each((function(t){var r=t.coordinateSystem,o=[];P(r.getCartesians(),(function(t,e){(D(n,t.getAxis("x").model)>=0||D(i,t.getAxis("y").model)>=0)&&o.push(t)})),e.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:o[0],coordSyses:o,getPanelRect:uz.grid,xAxisDeclared:a[t.id],yAxisDeclared:s[t.id]})})))},geo:function(t,e){P(t.geoModels,(function(t){var n=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:n,coordSyses:[n],getPanelRect:uz.geo})}))}},lz=[function(t,e){var n=t.xAxisModel,i=t.yAxisModel,r=t.gridModel;return!r&&n&&(r=n.axis.grid.model),!r&&i&&(r=i.axis.grid.model),r&&r===e.gridModel},function(t,e){var n=t.geoModel;return n&&n===e.geoModel}],uz={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(ju(t)),e}},hz={lineX:B(cz,0),lineY:B(cz,1),rect:function(t,e,n,i){var r=t?e.pointToData([n[0][0],n[1][0]],i):e.dataToPoint([n[0][0],n[1][0]],i),o=t?e.pointToData([n[0][1],n[1][1]],i):e.dataToPoint([n[0][1],n[1][1]],i),a=[oz([r[0],o[0]]),oz([r[1],o[1]])];return{values:a,xyMinMax:a}},polygon:function(t,e,n,i){var r=[[1/0,-1/0],[1/0,-1/0]];return{values:O(n,(function(n){var o=t?e.pointToData(n,i):e.dataToPoint(n,i);return r[0][0]=Math.min(r[0][0],o[0]),r[1][0]=Math.min(r[1][0],o[1]),r[0][1]=Math.max(r[0][1],o[0]),r[1][1]=Math.max(r[1][1],o[1]),o})),xyMinMax:r}}};function cz(t,e,n,i){var r=n.getAxis(["x","y"][t]),o=oz(O([0,1],(function(t){return e?r.coordToData(r.toLocalCoord(i[t]),!0):r.toGlobalCoord(r.dataToCoord(i[t]))}))),a=[];return a[t]=o,a[1-t]=[NaN,NaN],{values:o,xyMinMax:a}}var pz={lineX:B(dz,0),lineY:B(dz,1),rect:function(t,e,n){return[[t[0][0]-n[0]*e[0][0],t[0][1]-n[0]*e[0][1]],[t[1][0]-n[1]*e[1][0],t[1][1]-n[1]*e[1][1]]]},polygon:function(t,e,n){return O(t,(function(t,i){return[t[0]-n[0]*e[i][0],t[1]-n[1]*e[i][1]]}))}};function dz(t,e,n,i){return[e[0]-i[t]*n[0],e[1]-i[t]*n[1]]}function fz(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}var gz,yz,vz=P,mz=_r+"toolbox-dataZoom_",_z=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n,i){this._brushController||(this._brushController=new iA(n.getZr()),this._brushController.on("brush",V(this._onBrush,this)).mount()),function(t,e,n,i,r){var o=n._isZoomActive;i&&"takeGlobalCursor"===i.type&&(o="dataZoomSelect"===i.key&&i.dataZoomSelectActive);n._isZoomActive=o,t.setIconStatus("zoom",o?"emphasis":"normal");var a=new rz(bz(t),e,{include:["grid"]}).makePanelOpts(r,(function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"}));n._brushController.setPanels(a).enableBrush(!(!o||!a.length)&&{brushType:"auto",brushStyle:t.getModel("brushStyle").getItemStyle()})}(t,e,this,i,n),function(t,e){t.setIconStatus("back",function(t){return ez(t).length}(e)>1?"emphasis":"normal")}(t,e)},e.prototype.onclick=function(t,e,n){xz[n].call(this)},e.prototype.remove=function(t,e){this._brushController&&this._brushController.unmount()},e.prototype.dispose=function(t,e){this._brushController&&this._brushController.dispose()},e.prototype._onBrush=function(t){var e=t.areas;if(t.isEnd&&e.length){var n={},i=this.ecModel;this._brushController.updateCovers([]),new rz(bz(this.model),i,{include:["grid"]}).matchOutputRanges(e,i,(function(t,e,n){if("cartesian2d"===n.type){var i=t.brushType;"rect"===i?(r("x",n,e[0]),r("y",n,e[1])):r({lineX:"x",lineY:"y"}[i],n,e)}})),function(t,e){var n=ez(t);QN(e,(function(e,i){for(var r=n.length-1;r>=0&&!n[r][i];r--);if(r<0){var o=t.queryComponents({mainType:"dataZoom",subType:"select",id:i})[0];if(o){var a=o.getPercentRange();n[0][i]={dataZoomId:i,start:a[0],end:a[1]}}}})),n.push(e)}(i,n),this._dispatchZoomAction(n)}function r(t,e,r){var o=e.getAxis(t),a=o.model,s=function(t,e,n){var i;return n.eachComponent({mainType:"dataZoom",subType:"select"},(function(n){n.getAxisModel(t,e.componentIndex)&&(i=n)})),i}(t,a,i),l=s.findRepresentativeAxisProxy(a).getMinMaxSpan();null==l.minValueSpan&&null==l.maxValueSpan||(r=PD(0,r.slice(),o.scale.getExtent(),0,l.minValueSpan,l.maxValueSpan)),s&&(n[s.id]={dataZoomId:s.id,startValue:r[0],endValue:r[1]})}},e.prototype._dispatchZoomAction=function(t){var e=[];vz(t,(function(t,n){e.push(w(t))})),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},e.getDefaultOption=function(t){return{show:!0,filterMode:"filter",icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:t.getLocale(["toolbox","dataZoom","title"]),brushStyle:{borderWidth:0,color:"rgba(210,219,238,0.2)"}}},e}(RN),xz={zoom:function(){var t=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(function(t){var e=ez(t),n=e[e.length-1];e.length>1&&e.pop();var i={};return QN(n,(function(t,n){for(var r=e.length-1;r>=0;r--)if(t=e[r][n]){i[n]=t;break}})),i}(this.ecModel))}};function bz(t){var e={xAxisIndex:t.get("xAxisIndex",!0),yAxisIndex:t.get("yAxisIndex",!0),xAxisId:t.get("xAxisId",!0),yAxisId:t.get("yAxisId",!0)};return null==e.xAxisIndex&&null==e.xAxisId&&(e.xAxisIndex="all"),null==e.yAxisIndex&&null==e.yAxisId&&(e.yAxisIndex="all"),e}gz="dataZoom",yz=function(t){var e=t.getComponent("toolbox",0),n=["feature","dataZoom"];if(e&&null!=e.get(n)){var i=e.getModel(n),r=[],o=Or(t,bz(i));return vz(o.xAxisModels,(function(t){return a(t,"xAxis","xAxisIndex")})),vz(o.yAxisModels,(function(t){return a(t,"yAxis","yAxisIndex")})),r}function a(t,e,n){var o=t.componentIndex,a={type:"select",$fromToolbox:!0,filterMode:i.get("filterMode",!0)||"filter",id:mz+e+o};a[n]=o,r.push(a)}},rt(null==dp.get(gz)&&yz),dp.set(gz,yz);var wz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="tooltip",e.dependencies=["axisPointer"],e.defaultOption={zlevel:0,z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},e}(Xc);function Sz(t){var e=t.get("confine");return null!=e?!!e:"richText"===t.get("renderMode")}function Mz(t){if(a.domSupported)for(var e=document.documentElement.style,n=0,i=t.length;n-1?(o+="top:50%",a+="translateY(-50%) rotate("+("left"===r?-225:-45)+"deg)"):(o+="left:50%",a+="translateX(-50%) rotate("+("top"===r?225:45)+"deg)");var s=e+" solid 1px;";return'
'}(n.get("backgroundColor"),i,r)),H(t))o.innerHTML=t;else if(t){o.innerHTML="",F(t)||(t=[t]);for(var a=0;a=0?this._tryShow(n,i):"leave"===e&&this._hide(i))}),this))},e.prototype._keepShow=function(){var t=this._tooltipModel,e=this._ecModel,n=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==t.get("triggerOn")){var i=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout((function(){!n.isDisposed()&&i.manuallyShowTip(t,e,n,{x:i._lastX,y:i._lastY,dataByCoordSys:i._lastDataByCoordSys})}))}},e.prototype.manuallyShowTip=function(t,e,n,i){if(i.from!==this.uid&&!a.node){var r=Xz(i,n);this._ticket="";var o=i.dataByCoordSys,s=function(t,e,n){var i=Rr(t).queryOptionMap,r=i.keys()[0];if(!r||"series"===r)return;var o,a=Er(e,r,i.get(r),{useDefault:!1,enableAll:!1,enableNone:!1}).models[0];if(!a)return;if(n.getViewOfComponentModel(a).group.traverse((function(e){var n=_s(e).tooltipConfig;if(n&&n.name===t.name)return o=e,!0})),o)return{componentMainType:r,componentIndex:a.componentIndex,el:o}}(i,e,n);if(s){var l=s.el.getBoundingRect().clone();l.applyTransform(s.el.transform),this._tryShow({offsetX:l.x+l.width/2,offsetY:l.y+l.height/2,target:s.el,position:i.position,positionDefault:"bottom"},r)}else if(i.tooltip&&null!=i.x&&null!=i.y){var u=Hz;u.x=i.x,u.y=i.y,u.update(),_s(u).tooltipConfig={name:null,option:i.tooltip},this._tryShow({offsetX:i.x,offsetY:i.y,target:u},r)}else if(o)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,dataByCoordSys:o,tooltipOption:i.tooltipOption},r);else if(null!=i.seriesIndex){if(this._manuallyAxisShowTip(t,e,n,i))return;var h=JO(i,e),c=h.point[0],p=h.point[1];null!=c&&null!=p&&this._tryShow({offsetX:c,offsetY:p,target:h.el,position:i.position,positionDefault:"bottom"},r)}else null!=i.x&&null!=i.y&&(n.dispatchAction({type:"updateAxisPointer",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:n.getZr().findHover(i.x,i.y).target},r))}},e.prototype.manuallyHideTip=function(t,e,n,i){var r=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&r.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,i.from!==this.uid&&this._hide(Xz(i,n))},e.prototype._manuallyAxisShowTip=function(t,e,n,i){var r=i.seriesIndex,o=i.dataIndex,a=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=o&&null!=a){var s=e.getSeriesByIndex(r);if(s)if("axis"===Uz([s.getData().getItemModel(o),s,(s.coordinateSystem||{}).model],this._tooltipModel).get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:o,position:i.position}),!0}},e.prototype._tryShow=function(t,e){var n=t.target;if(this._tooltipModel){this._lastX=t.offsetX,this._lastY=t.offsetY;var i=t.dataByCoordSys;if(i&&i.length)this._showAxisTooltip(i,t);else if(n){var r,o;this._lastDataByCoordSys=null,iy(n,(function(t){return null!=_s(t).dataIndex?(r=t,!0):null!=_s(t).tooltipConfig?(o=t,!0):void 0}),!0),r?this._showSeriesItemTooltip(t,r,e):o?this._showComponentItemTooltip(t,o,e):this._hide(e)}else this._lastDataByCoordSys=null,this._hide(e)}},e.prototype._showOrMove=function(t,e){var n=t.get("showDelay");e=V(e,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(e,n):e()},e.prototype._showAxisTooltip=function(t,e){var n=this._ecModel,i=this._tooltipModel,r=[e.offsetX,e.offsetY],o=Uz([e.tooltipOption],i),a=this._renderMode,s=[],l=tf("section",{blocks:[],noHeader:!0}),u=[],h=new hf;Fz(t,(function(t){Fz(t.dataByAxis,(function(t){var e=n.getComponent(t.axisDim+"Axis",t.axisIndex),i=t.value;if(e&&null!=i){var r=RO(i,e.axis,n,t.seriesDataIndices,t.valueLabelOpt),o=tf("section",{header:r,noHeader:!ot(r),sortBlocks:!0,blocks:[]});l.blocks.push(o),P(t.seriesDataIndices,(function(l){var c=n.getSeriesByIndex(l.seriesIndex),p=l.dataIndexInside,d=c.getDataParams(p);d.axisDim=t.axisDim,d.axisIndex=t.axisIndex,d.axisType=t.axisType,d.axisId=t.axisId,d.axisValue=Gx(e.axis,{value:i}),d.axisValueLabel=r,d.marker=h.makeTooltipMarker("item",kc(d.color),a);var f=Cd(c.formatTooltip(p,!0,null));f.markupFragment&&o.blocks.push(f.markupFragment),f.markupText&&u.push(f.markupText),s.push(d)}))}}))})),l.blocks.reverse(),u.reverse();var c=e.position,p=o.get("order"),d=rf(l,h,a,p,n.get("useUTC"),o.get("textStyle"));d&&u.unshift(d);var f="richText"===a?"\n\n":"
",g=u.join(f);this._showOrMove(o,(function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(o,c,r[0],r[1],this._tooltipContent,s):this._showTooltipContent(o,g,s,Math.random()+"",r[0],r[1],c,null,h)}))},e.prototype._showSeriesItemTooltip=function(t,e,n){var i=this._ecModel,r=_s(e),o=r.seriesIndex,a=i.getSeriesByIndex(o),s=r.dataModel||a,l=r.dataIndex,u=r.dataType,h=s.getData(u),c=this._renderMode,p=t.positionDefault,d=Uz([h.getItemModel(l),s,a&&(a.coordinateSystem||{}).model],this._tooltipModel,p?{position:p}:null),f=d.get("trigger");if(null==f||"item"===f){var g=s.getDataParams(l,u),y=new hf;g.marker=y.makeTooltipMarker("item",kc(g.color),c);var v=Cd(s.formatTooltip(l,!1,u)),m=d.get("order"),_=v.markupFragment?rf(v.markupFragment,y,c,m,i.get("useUTC"),d.get("textStyle")):v.markupText,x="item_"+s.name+"_"+l;this._showOrMove(d,(function(){this._showTooltipContent(d,_,g,x,t.offsetX,t.offsetY,t.position,t.target,y)})),n({type:"showTip",dataIndexInside:l,dataIndex:h.getRawIndex(l),seriesIndex:o,from:this.uid})}},e.prototype._showComponentItemTooltip=function(t,e,n){var i=_s(e),r=i.tooltipConfig.option||{};if(H(r)){r={content:r,formatter:r}}var o=[r],a=this._ecModel.getComponent(i.componentMainType,i.componentIndex);a&&o.push(a),o.push({formatter:r.content});var s=t.positionDefault,l=Uz(o,this._tooltipModel,s?{position:s}:null),u=l.get("content"),h=Math.random()+"",c=new hf;this._showOrMove(l,(function(){var n=w(l.get("formatterParams")||{});this._showTooltipContent(l,u,n,h,t.offsetX,t.offsetY,t.position,e,c)})),n({type:"showTip",from:this.uid})},e.prototype._showTooltipContent=function(t,e,n,i,r,o,a,s,l){if(this._ticket="",t.get("showContent")&&t.get("show")){var u=this._tooltipContent,h=t.get("formatter");a=a||t.get("position");var c=e,p=this._getNearestPoint([r,o],n,t.get("trigger"),t.get("borderColor")).color;if(h&&H(h)){var d=t.ecModel.get("useUTC"),f=F(n)?n[0]:n;c=h,f&&f.axisType&&f.axisType.indexOf("time")>=0&&(c=ic(f.axisValue,c,d)),c=Ac(c,n,!0)}else if(G(h)){var g=Bz((function(e,i){e===this._ticket&&(u.setContent(i,l,t,p,a),this._updatePosition(t,a,r,o,u,n,s))}),this);this._ticket=i,c=h(n,i,g)}u.setContent(c,l,t,p,a),u.show(t,p),this._updatePosition(t,a,r,o,u,n,s)}},e.prototype._getNearestPoint=function(t,e,n,i){return"axis"===n||F(e)?{color:i||("html"===this._renderMode?"#fff":"none")}:F(e)?void 0:{color:i||e.color||e.borderColor}},e.prototype._updatePosition=function(t,e,n,i,r,o,a){var s=this._api.getWidth(),l=this._api.getHeight();e=e||t.get("position");var u=r.getSize(),h=t.get("align"),c=t.get("verticalAlign"),p=a&&a.getBoundingRect().clone();if(a&&p.applyTransform(a.transform),G(e)&&(e=e([n,i],o,r.el,p,{viewSize:[s,l],contentSize:u.slice()})),F(e))n=Gz(e[0],s),i=Gz(e[1],l);else if(X(e)){var d=e;d.width=u[0],d.height=u[1];var f=Vc(d,{width:s,height:l});n=f.x,i=f.y,h=null,c=null}else if(H(e)&&a){var g=function(t,e,n){var i=n[0],r=n[1],o=10,a=5,s=0,l=0,u=e.width,h=e.height;switch(t){case"inside":s=e.x+u/2-i/2,l=e.y+h/2-r/2;break;case"top":s=e.x+u/2-i/2,l=e.y-r-o;break;case"bottom":s=e.x+u/2-i/2,l=e.y+h+o;break;case"left":s=e.x-i-o-a,l=e.y+h/2-r/2;break;case"right":s=e.x+u+o+a,l=e.y+h/2-r/2}return[s,l]}(e,p,u);n=g[0],i=g[1]}else{g=function(t,e,n,i,r,o,a){var s=n.getOuterSize(),l=s.width,u=s.height;null!=o&&(t+l+o+2>i?t-=l+o:t+=o);null!=a&&(e+u+a>r?e-=u+a:e+=a);return[t,e]}(n,i,r,s,l,h?null:20,c?null:20);n=g[0],i=g[1]}if(h&&(n-=Yz(h)?u[0]/2:"right"===h?u[0]:0),c&&(i-=Yz(c)?u[1]/2:"bottom"===c?u[1]:0),Sz(t)){g=function(t,e,n,i,r){var o=n.getOuterSize(),a=o.width,s=o.height;return t=Math.min(t+a,i)-a,e=Math.min(e+s,r)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}(n,i,r,s,l);n=g[0],i=g[1]}r.moveTo(n,i)},e.prototype._updateContentNotChangedOnAxis=function(t){var e=this._lastDataByCoordSys,n=!!e&&e.length===t.length;return n&&Fz(e,(function(e,i){var r=e.dataByAxis||[],o=(t[i]||{}).dataByAxis||[];(n=n&&r.length===o.length)&&Fz(r,(function(t,e){var i=o[e]||{},r=t.seriesDataIndices||[],a=i.seriesDataIndices||[];(n=n&&t.value===i.value&&t.axisType===i.axisType&&t.axisId===i.axisId&&r.length===a.length)&&Fz(r,(function(t,e){var i=a[e];n=n&&t.seriesIndex===i.seriesIndex&&t.dataIndex===i.dataIndex}))}))})),this._lastDataByCoordSys=t,!!n},e.prototype._hide=function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},e.prototype.dispose=function(t,e){a.node||(this._tooltipContent.dispose(),KO("itemTooltip",e))},e.type="tooltip",e}(wf);function Uz(t,e,n){var i,r=e.ecModel;n?(i=new Oh(n,r,r),i=new Oh(e.option,i,r)):i=e;for(var o=t.length-1;o>=0;o--){var a=t[o];a&&(a instanceof Oh&&(a=a.get("tooltip",!0)),H(a)&&(a={formatter:a}),a&&(i=new Oh(a,i,r)))}return i}function Xz(t,e){return t.dispatchAction||V(e.dispatchAction,e)}function Yz(t){return"center"===t||"middle"===t}var Zz=["rect","polygon","keep","clear"];function jz(t,e){var n=xr(t?t.brush:[]);if(n.length){var i=[];P(n,(function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(i=i.concat(e))}));var r=t&&t.toolbox;F(r)&&(r=r[0]),r||(r={feature:{}},t.toolbox=[r]);var o=r.feature||(r.feature={}),a=o.brush||(o.brush={}),s=a.type||(a.type=[]);s.push.apply(s,i),function(t){var e={};P(t,(function(t){e[t]=1})),t.length=0,P(e,(function(e,n){t.push(n)}))}(s),e&&!s.length&&s.push.apply(s,Zz)}}var qz=P;function Kz(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return!0}function $z(t,e,n){var i={};return qz(e,(function(e){var r,o=i[e]=((r=function(){}).prototype.__hidden=r.prototype,new r);qz(t[e],(function(t,i){if(TT.isValidType(i)){var r={type:i,visual:t};n&&n(r,e),o[i]=new TT(r),"opacity"===i&&((r=w(r)).type="colorAlpha",o.__hidden.__alphaForOpacity=new TT(r))}}))})),i}function Jz(t,e,n){var i;P(n,(function(t){e.hasOwnProperty(t)&&Kz(e[t])&&(i=!0)})),i&&P(n,(function(n){e.hasOwnProperty(n)&&Kz(e[n])?t[n]=w(e[n]):delete t[n]}))}var Qz={lineX:tE(0),lineY:tE(1),rect:{point:function(t,e,n){return t&&n.boundingRect.contain(t[0],t[1])},rect:function(t,e,n){return t&&n.boundingRect.intersect(t)}},polygon:{point:function(t,e,n){return t&&n.boundingRect.contain(t[0],t[1])&&uv(n.range,t[0],t[1])},rect:function(t,e,n){var i=n.range;if(!t||i.length<=1)return!1;var r=t.x,o=t.y,a=t.width,s=t.height,l=i[0];return!!(uv(i,r,o)||uv(i,r+a,o)||uv(i,r,o+s)||uv(i,r+a,o+s)||gi.create(t).contain(l[0],l[1])||nh(r,o,r+a,o,i)||nh(r,o,r,o+s,i)||nh(r+a,o,r+a,o+s,i)||nh(r,o+s,r+a,o+s,i))||void 0}}};function tE(t){var e=["x","y"],n=["width","height"];return{point:function(e,n,i){if(e){var r=i.range;return eE(e[t],r)}},rect:function(i,r,o){if(i){var a=o.range,s=[i[e[t]],i[e[t]]+i[n[t]]];return s[1]e[0][1]&&(e[0][1]=o[0]),o[1]e[1][1]&&(e[1][1]=o[1])}return e&&hE(e)}};function hE(t){return new gi(t[0][0],t[1][0],t[0][1]-t[0][0],t[1][1]-t[1][0])}var cE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new iA(e.getZr())).on("brush",V(this._onBrush,this)).mount()},e.prototype.render=function(t,e,n,i){this.model=t,this._updateController(t,e,n,i)},e.prototype.updateTransform=function(t,e,n,i){oE(e),this._updateController(t,e,n,i)},e.prototype.updateVisual=function(t,e,n,i){this.updateTransform(t,e,n,i)},e.prototype.updateView=function(t,e,n,i){this._updateController(t,e,n,i)},e.prototype._updateController=function(t,e,n,i){(!i||i.$from!==t.id)&&this._brushController.setPanels(t.brushTargetManager.makePanelOpts(n)).enableBrush(t.brushOption).updateCovers(t.areas.slice())},e.prototype.dispose=function(){this._brushController.dispose()},e.prototype._onBrush=function(t){var e=this.model.id,n=this.model.brushTargetManager.setOutputRanges(t.areas,this.ecModel);(!t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:e,areas:w(n),$from:e}),t.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:e,areas:w(n),$from:e})},e.type="brush",e}(wf),pE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.areas=[],n.brushOption={},n}return n(e,t),e.prototype.optionUpdated=function(t,e){var n=this.option;!e&&Jz(n,t,["inBrush","outOfBrush"]);var i=n.inBrush=n.inBrush||{};n.outOfBrush=n.outOfBrush||{color:"#ddd"},i.hasOwnProperty("liftZ")||(i.liftZ=5)},e.prototype.setAreas=function(t){t&&(this.areas=O(t,(function(t){return dE(this.option,t)}),this))},e.prototype.setBrushOption=function(t){this.brushOption=dE(this.option,t),this.brushType=this.brushOption.brushType},e.type="brush",e.dependencies=["geo","grid","xAxis","yAxis","parallel","series"],e.defaultOption={seriesIndex:"all",brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(210,219,238,0.3)",borderColor:"#D2DBEE"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},e}(Xc);function dE(t,e){return S({brushType:t.brushType,brushMode:t.brushMode,transformable:t.transformable,brushStyle:new Oh(t.brushStyle).getItemStyle(),removeOnClick:t.removeOnClick,z:t.z},e,!0)}var fE=["rect","polygon","lineX","lineY","keep","clear"],gE=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n){var i,r,o;e.eachComponent({mainType:"brush"},(function(t){i=t.brushType,r=t.brushOption.brushMode||"single",o=o||!!t.areas.length})),this._brushType=i,this._brushMode=r,P(t.get("type",!0),(function(e){t.setIconStatus(e,("keep"===e?"multiple"===r:"clear"===e?o:e===i)?"emphasis":"normal")}))},e.prototype.updateView=function(t,e,n){this.render(t,e,n)},e.prototype.getIcons=function(){var t=this.model,e=t.get("icon",!0),n={};return P(t.get("type",!0),(function(t){e[t]&&(n[t]=e[t])})),n},e.prototype.onclick=function(t,e,n){var i=this._brushType,r=this._brushMode;"clear"===n?(e.dispatchAction({type:"axisAreaSelect",intervals:[]}),e.dispatchAction({type:"brush",command:"clear",areas:[]})):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===n?i:i!==n&&n,brushMode:"keep"===n?"multiple"===r?"single":"multiple":r}})},e.getDefaultOption=function(t){return{show:!0,type:fE.slice(),icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:t.getLocale(["toolbox","brush","title"])}},e}(RN);var yE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode={type:"box",ignoreSize:!0},n}return n(e,t),e.type="title",e.defaultOption={zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},e}(Xc),vE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){if(this.group.removeAll(),t.get("show")){var i=this.group,r=t.getModel("textStyle"),o=t.getModel("subtextStyle"),a=t.get("textAlign"),s=tt(t.get("textBaseline"),t.get("textVerticalAlign")),l=new cs({style:ph(r,{text:t.get("text"),fill:r.getTextColor()},{disableBox:!0}),z2:10}),u=l.getBoundingRect(),h=t.get("subtext"),c=new cs({style:ph(o,{text:h,fill:o.getTextColor(),y:u.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),p=t.get("link"),d=t.get("sublink"),f=t.get("triggerEvent",!0);l.silent=!p&&!f,c.silent=!d&&!f,p&&l.on("click",(function(){Pc(p,"_"+t.get("target"))})),d&&c.on("click",(function(){Pc(d,"_"+t.get("subtarget"))})),_s(l).eventData=_s(c).eventData=f?{componentType:"title",componentIndex:t.componentIndex}:null,i.add(l),h&&i.add(c);var g=i.getBoundingRect(),y=t.getBoxLayoutParams();y.width=g.width,y.height=g.height;var v=Vc(y,{width:n.getWidth(),height:n.getHeight()},t.get("padding"));a||("middle"===(a=t.get("left")||t.get("right"))&&(a="center"),"right"===a?v.x+=v.width:"center"===a&&(v.x+=v.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?v.y+=v.height:"middle"===s&&(v.y+=v.height/2),s=s||"top"),i.x=v.x,i.y=v.y,i.markRedraw();var m={align:a,verticalAlign:s};l.setStyle(m),c.setStyle(m),g=i.getBoundingRect();var _=v.margin,x=t.getItemStyle(["color","opacity"]);x.fill=t.get("backgroundColor");var b=new ls({shape:{x:g.x-_[3],y:g.y-_[0],width:g.width+_[1]+_[3],height:g.height+_[0]+_[2],r:t.get("borderRadius")},style:x,subPixelOptimize:!0,silent:!0});i.add(b)}},e.type="title",e}(wf);var mE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode="box",n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._initData()},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this._initData()},e.prototype.setCurrentIndex=function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(t>=e&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},e.prototype.getCurrentIndex=function(){return this.option.currentIndex},e.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},e.prototype.setPlayState=function(t){this.option.autoPlay=!!t},e.prototype.getPlayState=function(){return!!this.option.autoPlay},e.prototype._initData=function(){var t,e=this.option,n=e.data||[],i=e.axisType,r=this._names=[];"category"===i?(t=[],P(n,(function(e,n){var i,o=Cr(Sr(e),"");X(e)?(i=w(e)).value=n:i=n,t.push(i),r.push(o)}))):t=n;var o={category:"ordinal",time:"time",value:"number"}[i]||"number";(this._data=new L_([{name:"value",type:o}],this)).initData(t,r)},e.prototype.getData=function(){return this._data},e.prototype.getCategories=function(){if("category"===this.get("axisType"))return this._names.slice()},e.type="timeline",e.defaultOption={zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},e}(Xc),_E=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="timeline.slider",e.defaultOption=zh(mE.defaultOption,{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"circle",symbolSize:12,lineStyle:{show:!0,width:2,color:"#DAE1F5"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#A4B1D7"},itemStyle:{color:"#A4B1D7",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:15,color:"#316bf3",borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0, 0, 0, 0.3)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z",prevIcon:"M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z",prevBtnSize:18,nextBtnSize:18,color:"#A4B1D7",borderColor:"#A4B1D7",borderWidth:1},emphasis:{label:{show:!0,color:"#6f778d"},itemStyle:{color:"#316BF3"},controlStyle:{color:"#316BF3",borderColor:"#316BF3",borderWidth:2}},progress:{lineStyle:{color:"#316BF3"},itemStyle:{color:"#316BF3"},label:{color:"#6f778d"}},data:[]}),e}(mE);L(_E,Td.prototype);var xE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="timeline",e}(wf),bE=function(t){function e(e,n,i,r){var o=t.call(this,e,n,i)||this;return o.type=r||"value",o}return n(e,t),e.prototype.getLabelModel=function(){return this.model.getModel("label")},e.prototype.isHorizontal=function(){return"horizontal"===this.model.get("orient")},e}(hb),wE=Math.PI,SE=kr(),ME=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){this.api=e},e.prototype.render=function(t,e,n){if(this.model=t,this.api=n,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var i=this._layout(t,n),r=this._createGroup("_mainGroup"),o=this._createGroup("_labelGroup"),a=this._axis=this._createAxis(i,t);t.formatTooltip=function(t){return tf("nameValue",{noName:!0,value:a.scale.getLabel({value:t})})},P(["AxisLine","AxisTick","Control","CurrentPointer"],(function(e){this["_render"+e](i,r,a,t)}),this),this._renderAxisLabel(i,o,a,t),this._position(i,t)}this._doPlayStop(),this._updateTicksStatus()},e.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},e.prototype.dispose=function(){this._clearTimer()},e.prototype._layout=function(t,e){var n,i,r,o,a=t.get(["label","position"]),s=t.get("orient"),l=function(t,e){return Vc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()},t.get("padding"))}(t,e),u={horizontal:"center",vertical:(n=null==a||"auto"===a?"horizontal"===s?l.y+l.height/2=0||"+"===n?"left":"right"},h={horizontal:n>=0||"+"===n?"top":"bottom",vertical:"middle"},c={horizontal:0,vertical:wE/2},p="vertical"===s?l.height:l.width,d=t.getModel("controlStyle"),f=d.get("show",!0),g=f?d.get("itemSize"):0,y=f?d.get("itemGap"):0,v=g+y,m=t.get(["label","rotate"])||0;m=m*wE/180;var _=d.get("position",!0),x=f&&d.get("showPlayBtn",!0),b=f&&d.get("showPrevBtn",!0),w=f&&d.get("showNextBtn",!0),S=0,M=p;"left"===_||"bottom"===_?(x&&(i=[0,0],S+=v),b&&(r=[S,0],S+=v),w&&(o=[M-g,0],M-=v)):(x&&(i=[M-g,0],M-=v),b&&(r=[0,0],S+=v),w&&(o=[M-g,0],M-=v));var I=[S,M];return t.get("inverse")&&I.reverse(),{viewRect:l,mainLength:p,orient:s,rotation:c[s],labelRotation:m,labelPosOpt:n,labelAlign:t.get(["label","align"])||u[s],labelBaseline:t.get(["label","verticalAlign"])||t.get(["label","baseline"])||h[s],playPosition:i,prevBtnPosition:r,nextBtnPosition:o,axisExtent:I,controlSize:g,controlGap:y}},e.prototype._position=function(t,e){var n=this._mainGroup,i=this._labelGroup,r=t.viewRect;if("vertical"===t.orient){var o=[1,0,0,1,0,0],a=r.x,s=r.y+r.height;Un(o,o,[-a,-s]),Xn(o,o,-wE/2),Un(o,o,[a,s]),(r=r.clone()).applyTransform(o)}var l=y(r),u=y(n.getBoundingRect()),h=y(i.getBoundingRect()),c=[n.x,n.y],p=[i.x,i.y];p[0]=c[0]=l[0][0];var d,f=t.labelPosOpt;null==f||H(f)?(v(c,u,l,1,d="+"===f?0:1),v(p,h,l,1,1-d)):(v(c,u,l,1,d=f>=0?0:1),p[1]=c[1]+f);function g(t){t.originX=l[0][0]-t.x,t.originY=l[1][0]-t.y}function y(t){return[[t.x,t.x+t.width],[t.y,t.y+t.height]]}function v(t,e,n,i,r){t[i]+=n[i][r]-e[i][r]}n.setPosition(c),i.setPosition(p),n.rotation=i.rotation=t.rotation,g(n),g(i)},e.prototype._createAxis=function(t,e){var n=e.getData(),i=e.get("axisType"),r=function(t,e){if(e=e||t.get("type"))switch(e){case"category":return new $_({ordinalMeta:t.getCategories(),extent:[1/0,-1/0]});case"time":return new dx({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new Q_}}(e,i);r.getTicks=function(){return n.mapArray(["value"],(function(t){return{value:t}}))};var o=n.getDataExtent("value");r.setExtent(o[0],o[1]),r.niceTicks();var a=new bE("value",r,t.axisExtent,i);return a.model=e,a},e.prototype._createGroup=function(t){var e=this[t]=new Ei;return this.group.add(e),e},e.prototype._renderAxisLine=function(t,e,n,i){var r=n.getExtent();if(i.get(["lineStyle","show"])){var o=new uu({shape:{x1:r[0],y1:0,x2:r[1],y2:0},style:I({lineCap:"round"},i.getModel("lineStyle").getLineStyle()),silent:!0,z2:1});e.add(o);var a=this._progressLine=new uu({shape:{x1:r[0],x2:this._currentPointer?this._currentPointer.x:r[0],y1:0,y2:0},style:T({lineCap:"round",lineWidth:o.style.lineWidth},i.getModel(["progress","lineStyle"]).getLineStyle()),silent:!0,z2:1});e.add(a)}},e.prototype._renderAxisTick=function(t,e,n,i){var r=this,o=i.getData(),a=n.scale.getTicks();this._tickSymbols=[],P(a,(function(t){var a=n.dataToCoord(t.value),s=o.getItemModel(t.value),l=s.getModel("itemStyle"),u=s.getModel(["emphasis","itemStyle"]),h=s.getModel(["progress","itemStyle"]),c={x:a,y:0,onclick:V(r._changeTimeline,r,t.value)},p=IE(s,l,e,c);p.ensureState("emphasis").style=u.getItemStyle(),p.ensureState("progress").style=h.getItemStyle(),sl(p);var d=_s(p);s.get("tooltip")?(d.dataIndex=t.value,d.dataModel=i):d.dataIndex=d.dataModel=null,r._tickSymbols.push(p)}))},e.prototype._renderAxisLabel=function(t,e,n,i){var r=this;if(n.getLabelModel().get("show")){var o=i.getData(),a=n.getViewLabels();this._tickLabels=[],P(a,(function(i){var a=i.tickValue,s=o.getItemModel(a),l=s.getModel("label"),u=s.getModel(["emphasis","label"]),h=s.getModel(["progress","label"]),c=n.dataToCoord(i.tickValue),p=new cs({x:c,y:0,rotation:t.labelRotation-t.rotation,onclick:V(r._changeTimeline,r,a),silent:!1,style:ph(l,{text:i.formattedLabel,align:t.labelAlign,verticalAlign:t.labelBaseline})});p.ensureState("emphasis").style=ph(u),p.ensureState("progress").style=ph(h),e.add(p),sl(p),SE(p).dataIndex=a,r._tickLabels.push(p)}))}},e.prototype._renderControl=function(t,e,n,i){var r=t.controlSize,o=t.rotation,a=i.getModel("controlStyle").getItemStyle(),s=i.getModel(["emphasis","controlStyle"]).getItemStyle(),l=i.getPlayState(),u=i.get("inverse",!0);function h(t,n,l,u){if(t){var h=Ii(tt(i.get(["controlStyle",n+"BtnSize"]),r),r),c=function(t,e,n,i){var r=i.style,o=eh(t.get(["controlStyle",e]),i||{},new gi(n[0],n[1],n[2],n[3]));r&&o.setStyle(r);return o}(i,n+"Icon",[0,-h/2,h,h],{x:t[0],y:t[1],originX:r/2,originY:0,rotation:u?-o:0,rectHover:!0,style:a,onclick:l});c.ensureState("emphasis").style=s,e.add(c),sl(c)}}h(t.nextBtnPosition,"next",V(this._changeTimeline,this,u?"-":"+")),h(t.prevBtnPosition,"prev",V(this._changeTimeline,this,u?"+":"-")),h(t.playPosition,l?"stop":"play",V(this._handlePlayClick,this,!l),!0)},e.prototype._renderCurrentPointer=function(t,e,n,i){var r=i.getData(),o=i.getCurrentIndex(),a=r.getItemModel(o).getModel("checkpointStyle"),s=this,l={onCreate:function(t){t.draggable=!0,t.drift=V(s._handlePointerDrag,s),t.ondragend=V(s._handlePointerDragend,s),TE(t,s._progressLine,o,n,i,!0)},onUpdate:function(t){TE(t,s._progressLine,o,n,i)}};this._currentPointer=IE(a,a,this._mainGroup,{},this._currentPointer,l)},e.prototype._handlePlayClick=function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},e.prototype._handlePointerDrag=function(t,e,n){this._clearTimer(),this._pointerChangeTimeline([n.offsetX,n.offsetY])},e.prototype._handlePointerDragend=function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},e.prototype._pointerChangeTimeline=function(t,e){var n=this._toAxisCoord(t)[0],i=qi(this._axis.getExtent().slice());n>i[1]&&(n=i[1]),n=0&&(a[o]=+a[o].toFixed(c)),[a,h]}var zE={min:B(NE,"min"),max:B(NE,"max"),average:B(NE,"average"),median:B(NE,"median")};function EE(t,e){var n=t.getData(),i=t.coordinateSystem;if(e&&!function(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}(e)&&!F(e.coord)&&i){var r=i.dimensions,o=VE(e,n,i,t);if((e=w(e)).type&&zE[e.type]&&o.baseAxis&&o.valueAxis){var a=D(r,o.baseAxis.dim),s=D(r,o.valueAxis.dim),l=zE[e.type](n,o.baseDataDim,o.valueDataDim,a,s);e.coord=l[0],e.value=l[1]}else{for(var u=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],h=0;h<2;h++)zE[u[h]]&&(u[h]=GE(n,n.mapDimension(r[h]),u[h]));e.coord=u}}return e}function VE(t,e,n,i){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=n.getAxis(function(t,e){var n=t.getData(),i=n.dimensions;e=n.getDimension(e);for(var r=0;r=0&&"number"==typeof l&&(l=+l.toFixed(Math.min(f,20))),p.coord[h]=d.coord[h]=l,r=[p,d,{type:a,valueIndex:i.valueIndex,value:l}]}else r=[]}var g=[EE(t,r[0]),EE(t,r[1]),I({},r[2])];return g[2].type=g[2].type||null,S(g[2],g[0]),S(g[2],g[1]),g};function qE(t){return!isNaN(t)&&!isFinite(t)}function KE(t,e,n,i){var r=1-t,o=i.dimensions[t];return qE(e[r])&&qE(n[r])&&e[t]===n[t]&&i.getAxis(o).containData(e[t])}function $E(t,e){if("cartesian2d"===t.type){var n=e[0].coord,i=e[1].coord;if(n&&i&&(KE(1,n,i,t)||KE(0,n,i,t)))return!0}return BE(t,e[0])&&BE(t,e[1])}function JE(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=Zi(s.get("x"),r.getWidth()),u=Zi(s.get("y"),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(t.dimensions,e));else{var h=a.dimensions,c=t.get(h[0],e),p=t.get(h[1],e);o=a.dataToPoint([c,p])}if(Nw(a,"cartesian2d")){var d=a.getAxis("x"),f=a.getAxis("y");h=a.dimensions;qE(t.get(h[0],e))?o[0]=d.toGlobalCoord(d.getExtent()[n?0:1]):qE(t.get(h[1],e))&&(o[1]=f.toGlobalCoord(f.getExtent()[n?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];t.setItemLayout(e,o)}var QE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=OE.getMarkerModelFromSeries(t,"markLine");if(e){var i=e.getData(),r=ZE(e).from,o=ZE(e).to;r.each((function(e){JE(r,e,!0,t,n),JE(o,e,!1,t,n)})),i.each((function(t){i.setItemLayout(t,[r.getItemLayout(t),o.getItemLayout(t)])})),this.markerGroupMap.get(t.id).updateLayout()}}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new VC);this.group.add(l.group);var u=function(t,e,n){var i;i=t?O(t&&t.dimensions,(function(t){return T({name:t},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{})})):[{name:"value",type:"float"}];var r=new L_(i,n),o=new L_(i,n),a=new L_([],n),s=O(n.get("data"),B(jE,e,t,n));t&&(s=N(s,B($E,t)));var l=t?FE:function(t){return t.value};return r.initData(O(s,(function(t){return t[0]})),null,l),o.initData(O(s,(function(t){return t[1]})),null,l),a.initData(O(s,(function(t){return t[2]}))),a.hasItemOption=!0,{from:r,to:o,line:a}}(r,t,e),h=u.from,c=u.to,p=u.line;ZE(e).from=h,ZE(e).to=c,e.setData(p);var d=e.get("symbol"),f=e.get("symbolSize"),g=e.get("symbolRotate"),y=e.get("symbolOffset");function v(e,n,r){var o=e.getItemModel(n);JE(e,n,r,t,i);var s=o.getModel("itemStyle").getItemStyle();null==s.fill&&(s.fill=mg(a,"color")),e.setItemVisual(n,{symbolKeepAspect:o.get("symbolKeepAspect"),symbolOffset:tt(o.get("symbolOffset"),y[r?0:1]),symbolRotate:tt(o.get("symbolRotate",!0),g[r?0:1]),symbolSize:tt(o.get("symbolSize"),f[r?0:1]),symbol:tt(o.get("symbol",!0),d[r?0:1]),style:s})}F(d)||(d=[d,d]),F(f)||(f=[f,f]),F(g)||(g=[g,g]),F(y)||(y=[y,y]),u.from.each((function(t){v(h,t,!0),v(c,t,!1)})),p.each((function(t){var e=p.getItemModel(t).getModel("lineStyle").getLineStyle();p.setItemLayout(t,[h.getItemLayout(t),c.getItemLayout(t)]),null==e.stroke&&(e.stroke=h.getItemVisual(t,"style").fill),p.setItemVisual(t,{fromSymbolKeepAspect:h.getItemVisual(t,"symbolKeepAspect"),fromSymbolOffset:h.getItemVisual(t,"symbolOffset"),fromSymbolRotate:h.getItemVisual(t,"symbolRotate"),fromSymbolSize:h.getItemVisual(t,"symbolSize"),fromSymbol:h.getItemVisual(t,"symbol"),toSymbolKeepAspect:c.getItemVisual(t,"symbolKeepAspect"),toSymbolOffset:c.getItemVisual(t,"symbolOffset"),toSymbolRotate:c.getItemVisual(t,"symbolRotate"),toSymbolSize:c.getItemVisual(t,"symbolSize"),toSymbol:c.getItemVisual(t,"symbol"),style:e})})),l.updateData(p),u.line.eachItemGraphicEl((function(t,n){t.traverse((function(t){_s(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},e.type="markLine",e}(WE);var tV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markArea",e.defaultOption={zlevel:0,z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}},e}(OE),eV=kr(),nV=function(t,e,n,i){var r=EE(t,i[0]),o=EE(t,i[1]),a=r.coord,s=o.coord;a[0]=Q(a[0],-1/0),a[1]=Q(a[1],-1/0),s[0]=Q(s[0],1/0),s[1]=Q(s[1],1/0);var l=M([{},r,o]);return l.coord=[r.coord,o.coord],l.x0=r.x,l.y0=r.y,l.x1=o.x,l.y1=o.y,l};function iV(t){return!isNaN(t)&&!isFinite(t)}function rV(t,e,n,i){var r=1-t;return iV(e[r])&&iV(n[r])}function oV(t,e){var n=e.coord[0],i=e.coord[1];return!!(Nw(t,"cartesian2d")&&n&&i&&(rV(1,n,i)||rV(0,n,i)))||(BE(t,{coord:n,x:e.x0,y:e.y0})||BE(t,{coord:i,x:e.x1,y:e.y1}))}function aV(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=Zi(s.get(n[0]),r.getWidth()),u=Zi(s.get(n[1]),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(n,e));else{var h=[d=t.get(n[0],e),f=t.get(n[1],e)];a.clampData&&a.clampData(h,h),o=a.dataToPoint(h,!0)}if(Nw(a,"cartesian2d")){var c=a.getAxis("x"),p=a.getAxis("y"),d=t.get(n[0],e),f=t.get(n[1],e);iV(d)?o[0]=c.toGlobalCoord(c.getExtent()["x0"===n[0]?0:1]):iV(f)&&(o[1]=p.toGlobalCoord(p.getExtent()["y0"===n[1]?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];return o}var sV=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]],lV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=OE.getMarkerModelFromSeries(t,"markArea");if(e){var i=e.getData();i.each((function(e){var r=O(sV,(function(r){return aV(i,e,r,t,n)}));i.setItemLayout(e,r),i.getItemGraphicEl(e).setShape("points",r)}))}}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,{group:new Ei});this.group.add(l.group),this.markKeep(l);var u=function(t,e,n){var i,r,o=["x0","y0","x1","y1"];t?(i=O(t&&t.dimensions,(function(t){var n=e.getData();return T({name:t},n.getDimensionInfo(n.mapDimension(t))||{})})),r=new L_(O(o,(function(t,e){return{name:t,type:i[e%2].type}})),n)):r=new L_(i=[{name:"value",type:"float"}],n);var a=O(n.get("data"),B(nV,e,t,n));t&&(a=N(a,B(oV,t)));var s=t?function(t,e,n,i){return t.coord[Math.floor(i/2)][i%2]}:function(t){return t.value};return r.initData(a,null,s),r.hasItemOption=!0,r}(r,t,e);e.setData(u),u.each((function(e){var n=O(sV,(function(n){return aV(u,e,n,t,i)})),o=r.getAxis("x").scale,s=r.getAxis("y").scale,l=o.getExtent(),h=s.getExtent(),c=[o.parse(u.get("x0",e)),o.parse(u.get("x1",e))],p=[s.parse(u.get("y0",e)),s.parse(u.get("y1",e))];qi(c),qi(p);var d=!!(l[0]>c[1]||l[1]p[1]||h[1]=0},e.prototype.getOrient=function(){return"vertical"===this.get("orient")?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},e.type="legend.plain",e.dependencies=["series"],e.defaultOption={zlevel:0,z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:"inherit",inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",decal:"inherit",shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit",shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:" sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},e}(Xc),hV=B,cV=P,pV=Ei,dV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.newlineDisabled=!1,n}return n(e,t),e.prototype.init=function(){this.group.add(this._contentGroup=new pV),this.group.add(this._selectorGroup=new pV),this._isFirstRender=!0},e.prototype.getContentGroup=function(){return this._contentGroup},e.prototype.getSelectorGroup=function(){return this._selectorGroup},e.prototype.render=function(t,e,n){var i=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),t.get("show",!0)){var r=t.get("align"),o=t.get("orient");r&&"auto"!==r||(r="right"===t.get("left")&&"vertical"===o?"right":"left");var a=t.get("selector",!0),s=t.get("selectorPosition",!0);!a||s&&"auto"!==s||(s="horizontal"===o?"end":"start"),this.renderInner(r,t,e,n,a,o,s);var l=t.getBoxLayoutParams(),u={width:n.getWidth(),height:n.getHeight()},h=t.get("padding"),c=Vc(l,u,h),p=this.layoutInner(t,r,c,i,a,s),d=Vc(T({width:p.width,height:p.height},l),u,h);this.group.x=d.x-p.x,this.group.y=d.y-p.y,this.group.markRedraw(),this.group.add(this._backgroundEl=BN(p,t))}},e.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},e.prototype.renderInner=function(t,e,n,i,r,o,a){var s=this.getContentGroup(),l=ht(),u=e.get("selectedMode"),h=[];n.eachRawSeries((function(t){!t.get("legendHoverLink")&&h.push(t.id)})),cV(e.getData(),(function(r,o){var a=r.get("name");if(!this.newlineDisabled&&(""===a||"\n"===a)){var c=new pV;return c.newline=!0,void s.add(c)}var p=n.getSeriesByName(a)[0];if(!l.get(a)){if(p){var d=p.getData(),f=d.getVisual("legendLineStyle")||{},g=d.getVisual("legendIcon"),y=d.getVisual("style");this._createItem(p,a,o,r,e,t,f,y,g,u).on("click",hV(fV,a,null,i,h)).on("mouseover",hV(yV,p.name,null,i,h)).on("mouseout",hV(vV,p.name,null,i,h)),l.set(a,!0)}else n.eachRawSeries((function(n){if(!l.get(a)&&n.legendVisualProvider){var s=n.legendVisualProvider;if(!s.containName(a))return;var c=s.indexOfName(a),p=s.getItemVisual(c,"style"),d=s.getItemVisual(c,"legendIcon"),f=He(p.fill);f&&0===f[3]&&(f[3]=.2,p.fill=Je(f,"rgba")),this._createItem(n,a,o,r,e,t,{},p,d,u).on("click",hV(fV,null,a,i,h)).on("mouseover",hV(yV,null,a,i,h)).on("mouseout",hV(vV,null,a,i,h)),l.set(a,!0)}}),this);0}}),this),r&&this._createSelector(r,e,i,o,a)},e.prototype._createSelector=function(t,e,n,i,r){var o=this.getSelectorGroup();cV(t,(function(t){var i=t.type,r=new cs({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){n.dispatchAction({type:"all"===i?"legendAllSelect":"legendInverseSelect"})}});o.add(r),hh(r,{normal:e.getModel("selectorLabel"),emphasis:e.getModel(["emphasis","selectorLabel"])},{defaultText:t.title}),sl(r)}))},e.prototype._createItem=function(t,e,n,i,r,o,a,s,l,u){var h=t.visualDrawType,c=r.get("itemWidth"),p=r.get("itemHeight"),d=r.isSelected(e),f=i.get("symbolRotate"),g=i.get("icon"),y=function(t,e,n,i,r,o,a){for(var s=e.getModel("itemStyle"),l=Lh.concat([["decal"]]),u={},h=0;h0?2:0:u[p]=y}var d=e.getModel("lineStyle"),f=Ch.concat([["inactiveColor"],["inactiveWidth"]]),g={};for(h=0;h0?2:0:g[p]=y}if("auto"===u.fill&&(u.fill=r.fill),"auto"===u.stroke&&(u.stroke=r.fill),"auto"===g.stroke&&(g.stroke=r.fill),!a){var v=e.get("inactiveBorderWidth"),m=u[t.indexOf("empty")>-1?"fill":"stroke"];u.lineWidth="auto"===v?r.lineWidth>0&&m?2:0:u.lineWidth,u.fill=e.get("inactiveColor"),u.stroke=e.get("inactiveBorderColor"),g.stroke=n.get("inactiveColor"),g.lineWidth=n.get("inactiveWidth")}return{itemStyle:u,lineStyle:g}}(l=g||l||"roundRect",i,r.getModel("lineStyle"),a,s,h,d),v=new pV,m=i.getModel("textStyle");if("function"!=typeof t.getLegendIcon||g&&"inherit"!==g){var _="inherit"===g&&t.getData().getVisual("symbol")?"inherit"===f?t.getData().getVisual("symbolRotate"):f:0;v.add(function(t){var e=t.icon||"roundRect",n=fy(e,0,0,t.itemWidth,t.itemHeight,t.itemStyle.fill);n.setStyle(t.itemStyle),n.rotation=(t.iconRotate||0)*Math.PI/180,n.setOrigin([t.itemWidth/2,t.itemHeight/2]),e.indexOf("empty")>-1&&(n.style.stroke=n.style.fill,n.style.fill="#fff",n.style.lineWidth=2);return n}({itemWidth:c,itemHeight:p,icon:l,iconRotate:_,itemStyle:y.itemStyle,lineStyle:y.lineStyle}))}else v.add(t.getLegendIcon({itemWidth:c,itemHeight:p,icon:l,iconRotate:f,itemStyle:y.itemStyle,lineStyle:y.lineStyle}));var x="left"===o?c+5:-5,b=o,w=r.get("formatter"),S=e;"string"==typeof w&&w?S=w.replace("{name}",null!=e?e:""):"function"==typeof w&&(S=w(e));var M=i.get("inactiveColor");v.add(new cs({style:ph(m,{text:S,x:x,y:p/2,fill:d?m.getTextColor():M,align:b,verticalAlign:"middle"})}));var I=new ls({shape:v.getBoundingRect(),invisible:!0}),T=i.getModel("tooltip");return T.get("show")&&oh({el:I,componentModel:r,itemName:e,itemTooltipOption:T.option}),v.add(I),v.eachChild((function(t){t.silent=!0})),I.silent=!u,this.getContentGroup().add(v),sl(v),v.__legendDataIndex=n,v},e.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getContentGroup(),s=this.getSelectorGroup();Ec(t.get("orient"),a,t.get("itemGap"),n.width,n.height);var l=a.getBoundingRect(),u=[-l.x,-l.y];if(s.markRedraw(),a.markRedraw(),r){Ec("horizontal",s,t.get("selectorItemGap",!0));var h=s.getBoundingRect(),c=[-h.x,-h.y],p=t.get("selectorButtonGap",!0),d=t.getOrient().index,f=0===d?"width":"height",g=0===d?"height":"width",y=0===d?"y":"x";"end"===o?c[d]+=l[f]+p:u[d]+=h[f]+p,c[1-d]+=l[g]/2-h[g]/2,s.x=c[0],s.y=c[1],a.x=u[0],a.y=u[1];var v={x:0,y:0};return v[f]=l[f]+p+h[f],v[g]=Math.max(l[g],h[g]),v[y]=Math.min(0,h[y]+c[1-d]),v}return a.x=u[0],a.y=u[1],this.group.getBoundingRect()},e.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},e.type="legend.plain",e}(wf);function fV(t,e,n,i){vV(t,e,n,i),n.dispatchAction({type:"legendToggleSelect",name:null!=t?t:e}),yV(t,e,n,i)}function gV(t){for(var e,n=t.getZr().storage.getDisplayList(),i=0,r=n.length;in[r],f=[-c.x,-c.y];e||(f[i]=l[s]);var g=[0,0],y=[-p.x,-p.y],v=tt(t.get("pageButtonGap",!0),t.get("itemGap",!0));d&&("end"===t.get("pageButtonPosition",!0)?y[i]+=n[r]-p[r]:g[i]+=p[r]+v);y[1-i]+=c[o]/2-p[o]/2,l.setPosition(f),u.setPosition(g),h.setPosition(y);var m={x:0,y:0};if(m[r]=d?n[r]:c[r],m[o]=Math.max(c[o],p[o]),m[a]=Math.min(0,p[a]+y[1-i]),u.__rectSize=n[r],d){var _={x:0,y:0};_[r]=Math.max(n[r]-p[r]-v,0),_[o]=m[o],u.setClipPath(new ls({shape:_})),u.__rectSize=_[r]}else h.eachChild((function(t){t.attr({invisible:!0,silent:!0})}));var x=this._getPageInfo(t);return null!=x.pageIndex&&Hu(l,{x:x.contentPosition[0],y:x.contentPosition[1]},d?t:null),this._updatePageInfoView(t,x),m},e.prototype._pageGo=function(t,e,n){var i=this._getPageInfo(e)[t];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:e.id})},e.prototype._updatePageInfoView=function(t,e){var n=this._controllerGroup;P(["pagePrev","pageNext"],(function(i){var r=null!=e[i+"DataIndex"],o=n.childOfName(i);o&&(o.setStyle("fill",r?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),o.cursor=r?"pointer":"default")}));var i=n.childOfName("pageText"),r=t.get("pageFormatter"),o=e.pageIndex,a=null!=o?o+1:0,s=e.pageCount;i&&r&&i.setStyle("text",H(r)?r.replace("{current}",null==a?"":a+"").replace("{total}",null==s?"":s+""):r({current:a,total:s}))},e.prototype._getPageInfo=function(t){var e=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,r=t.getOrient().index,o=MV[r],a=IV[r],s=this._findTargetItemIndex(e),l=n.children(),u=l[s],h=l.length,c=h?1:0,p={contentPosition:[n.x,n.y],pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return p;var d=m(u);p.contentPosition[r]=-d.s;for(var f=s+1,g=d,y=d,v=null;f<=h;++f)(!(v=m(l[f]))&&y.e>g.s+i||v&&!_(v,g.s))&&(g=y.i>g.i?y:v)&&(null==p.pageNextDataIndex&&(p.pageNextDataIndex=g.i),++p.pageCount),y=v;for(f=s-1,g=d,y=d,v=null;f>=-1;--f)(v=m(l[f]))&&_(y,v.s)||!(g.i=e&&t.s<=e+i}},e.prototype._findTargetItemIndex=function(t){return this._showController?(this.getContentGroup().eachChild((function(i,r){var o=i.__legendDataIndex;null==n&&null!=o&&(n=r),o===t&&(e=r)})),null!=e?e:n):0;var e,n},e.type="legend.scroll",e}(dV);function CV(t){Qm(xV),t.registerComponentModel(bV),t.registerComponentView(TV),function(t){t.registerAction("legendScroll","legendscroll",(function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},(function(t){t.setScrollDataIndex(n)}))}))}(t)}var DV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.inside",e.defaultOption=zh(wN.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),e}(wN),AV=kr();function LV(t,e,n){AV(t).coordSysRecordMap.each((function(t){var i=t.dataZoomInfoMap.get(e.uid);i&&(i.getRange=n)}))}function kV(t,e){if(e){t.removeKey(e.model.uid);var n=e.controller;n&&n.dispose()}}function PV(t,e){t.dispatchAction({type:"dataZoom",animation:{easing:"cubicOut",duration:100},batch:e})}function OV(t,e,n,i){return t.coordinateSystem.containPoint([n,i])}function RV(t){t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,(function(t,e){var n=AV(e),i=n.coordSysRecordMap||(n.coordSysRecordMap=ht());i.each((function(t){t.dataZoomInfoMap=null})),t.eachComponent({mainType:"dataZoom",subType:"inside"},(function(t){P(xN(t).infoList,(function(n){var r=n.model.uid,o=i.get(r)||i.set(r,function(t,e){var n={model:e,containsPoint:B(OV,e),dispatchAction:B(PV,t),dataZoomInfoMap:null,controller:null},i=n.controller=new WM(t.getZr());return P(["pan","zoom","scrollMove"],(function(t){i.on(t,(function(e){var i=[];n.dataZoomInfoMap.each((function(r){if(e.isAvailableBehavior(r.model.option)){var o=(r.getRange||{})[t],a=o&&o(r.dzReferCoordSysInfo,n.model.mainType,n.controller,e);!r.model.get("disabled",!0)&&a&&i.push({dataZoomId:r.model.id,start:a[0],end:a[1]})}})),i.length&&n.dispatchAction(i)}))})),n}(e,n.model));(o.dataZoomInfoMap||(o.dataZoomInfoMap=ht())).set(t.uid,{dzReferCoordSysInfo:n,model:t,getRange:null})}))})),i.each((function(t){var e,n=t.controller,r=t.dataZoomInfoMap;if(r){var o=r.keys()[0];null!=o&&(e=r.get(o))}if(e){var a=function(t){var e,n="type_",i={type_true:2,type_move:1,type_false:0,type_undefined:-1},r=!0;return t.each((function(t){var o=t.model,a=!o.get("disabled",!0)&&(!o.get("zoomLock",!0)||"move");i[n+a]>i[n+e]&&(e=a),r=r&&o.get("preventDefaultMouseMove",!0)})),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!r}}}(r);n.enable(a.controlType,a.opt),n.setPointerChecker(t.containsPoint),zf(t,"dispatchAction",e.model.get("throttle",!0),"fixRate")}else kV(i,t)}))}))}var NV=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataZoom.inside",e}return n(e,t),e.prototype.render=function(e,n,i){t.prototype.render.apply(this,arguments),e.noTarget()?this._clear():(this.range=e.getPercentRange(),LV(i,e,{pan:V(zV.pan,this),zoom:V(zV.zoom,this),scrollMove:V(zV.scrollMove,this)}))},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){!function(t,e){for(var n=AV(t).coordSysRecordMap,i=n.keys(),r=0;r0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(o[1]-o[0])+o[0],u=Math.max(1/i.scale,0);o[0]=(o[0]-l)*u+l,o[1]=(o[1]-l)*u+l;var h=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return PD(0,o,[0,100],0,h.minSpan,h.maxSpan),this.range=o,r[0]!==o[0]||r[1]!==o[1]?o:void 0}},pan:EV((function(t,e,n,i,r,o){var a=VV[i]([o.oldX,o.oldY],[o.newX,o.newY],e,r,n);return a.signal*(t[1]-t[0])*a.pixel/a.pixelLength})),scrollMove:EV((function(t,e,n,i,r,o){return VV[i]([0,0],[o.scrollDelta,o.scrollDelta],e,r,n).signal*(t[1]-t[0])*o.scrollDelta}))};function EV(t){return function(e,n,i,r){var o=this.range,a=o.slice(),s=e.axisModels[0];if(s)return PD(t(a,s,e,n,i,r),a,[0,100],"all"),this.range=a,o[0]!==a[0]||o[1]!==a[1]?a:void 0}}var VV={grid:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem.getRect();return t=t||[0,0],"x"===o.dim?(a.pixel=e[0]-t[0],a.pixelLength=s.width,a.pixelStart=s.x,a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=s.height,a.pixelStart=s.y,a.signal=o.inverse?-1:1),a},polar:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===n.mainType?(a.pixel=e[0]-t[0],a.pixelLength=l[1]-l[0],a.pixelStart=l[0],a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=u[1]-u[0],a.pixelStart=u[0],a.signal=o.inverse?-1:1),a},singleAxis:function(t,e,n,i,r){var o=n.axis,a=r.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===o.orient?(s.pixel=e[0]-t[0],s.pixelLength=a.width,s.pixelStart=a.x,s.signal=o.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=a.height,s.pixelStart=a.y,s.signal=o.inverse?-1:1),s}};function BV(t){PN(t),t.registerComponentModel(DV),t.registerComponentView(NV),RV(t)}var FV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.slider",e.layoutMode="box",e.defaultOption=zh(wN.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),e}(wN),GV=ls,HV="horizontal",WV="vertical",UV=["line","bar","candlestick","scatter"],XV={easing:"cubicOut",duration:100},YV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._displayables={},n}return n(e,t),e.prototype.init=function(t,e){this.api=e,this._onBrush=V(this._onBrush,this),this._onBrushEnd=V(this._onBrushEnd,this)},e.prototype.render=function(e,n,i,r){if(t.prototype.render.apply(this,arguments),zf(this,"_dispatchZoomAction",e.get("throttle"),"fixRate"),this._orient=e.getOrient(),!1!==e.get("show")){if(e.noTarget())return this._clear(),void this.group.removeAll();r&&"dataZoom"===r.type&&r.from===this.uid||this._buildView(),this._updateView()}else this.group.removeAll()},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){var t,e,n;(n=(t=this)[e="_dispatchZoomAction"])&&n[Pf]&&(t[e]=n[Pf]);var i=this.api.getZr();i.off("mousemove",this._onBrush),i.off("mouseup",this._onBrushEnd)},e.prototype._buildView=function(){var t=this.group;t.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var e=this._displayables.sliderGroup=new Ei;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},e.prototype._resetLocation=function(){var t=this.dataZoomModel,e=this.api,n=t.get("brushSelect")?7:0,i=this._findCoordRect(),r={width:e.getWidth(),height:e.getHeight()},o=this._orient===HV?{right:r.width-i.x-i.width,top:r.height-30-7-n,width:i.width,height:30}:{right:7,top:i.y,width:30,height:i.height},a=Hc(t.option);P(["right","top","width","height"],(function(t){"ph"===a[t]&&(a[t]=o[t])}));var s=Vc(a,r);this._location={x:s.x,y:s.y},this._size=[s.width,s.height],this._orient===WV&&this._size.reverse()},e.prototype._positionGroup=function(){var t=this.group,e=this._location,n=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),r=i&&i.get("inverse"),o=this._displayables.sliderGroup,a=(this._dataShadowInfo||{}).otherAxisInverse;o.attr(n!==HV||r?n===HV&&r?{scaleY:a?1:-1,scaleX:-1}:n!==WV||r?{scaleY:a?-1:1,scaleX:-1,rotation:Math.PI/2}:{scaleY:a?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:a?1:-1,scaleX:1});var s=t.getBoundingRect([o]);t.x=e.x-s.x,t.y=e.y-s.y,t.markRedraw()},e.prototype._getViewExtent=function(){return[0,this._size[0]]},e.prototype._renderBackground=function(){var t=this.dataZoomModel,e=this._size,n=this._displayables.sliderGroup,i=t.get("brushSelect");n.add(new GV({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40}));var r=new GV({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:V(this._onClickPanel,this)}),o=this.api.getZr();i?(r.on("mousedown",this._onBrushStart,this),r.cursor="crosshair",o.on("mousemove",this._onBrush),o.on("mouseup",this._onBrushEnd)):(o.off("mousemove",this._onBrush),o.off("mouseup",this._onBrushEnd)),n.add(r)},e.prototype._renderDataShadow=function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],t){var e=this._size,n=t.series,i=n.getRawData(),r=n.getShadowDim?n.getShadowDim():t.otherDim;if(null!=r){var o=i.getDataExtent(r),a=.3*(o[1]-o[0]);o=[o[0]-a,o[1]+a];var s,l=[0,e[1]],u=[0,e[0]],h=[[e[0],0],[0,0]],c=[],p=u[1]/(i.count()-1),d=0,f=Math.round(i.count()/e[0]);i.each([r],(function(t,e){if(f>0&&e%f)d+=p;else{var n=null==t||isNaN(t)||""===t,i=n?0:Yi(t,o,l,!0);n&&!s&&e?(h.push([h[h.length-1][0],0]),c.push([c[c.length-1][0],0])):!n&&s&&(h.push([d,0]),c.push([d,0])),h.push([d,i]),c.push([d,i]),d+=p,s=n}}));for(var g=this.dataZoomModel,y=0;y<3;y++){var v=m(1===y);this._displayables.sliderGroup.add(v),this._displayables.dataShadowSegs.push(v)}}}function m(t){var e=g.getModel(t?"selectedDataBackground":"dataBackground"),n=new Ei,i=new ru({shape:{points:h},segmentIgnoreThreshold:1,style:e.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),r=new au({shape:{points:c},segmentIgnoreThreshold:1,style:e.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return n.add(i),n.add(r),n}},e.prototype._prepareDataShadowInfo=function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(!1!==e){var n,i=this.ecModel;return t.eachTargetAxis((function(r,o){P(t.getAxisProxy(r,o).getTargetSeriesModels(),(function(t){if(!(n||!0!==e&&D(UV,t.get("type"))<0)){var a,s=i.getComponent(mN(r),o).axis,l={x:"y",y:"x",radius:"angle",angle:"radius"}[r],u=t.coordinateSystem;null!=l&&u.getOtherAxis&&(a=u.getOtherAxis(s).inverse),l=t.getData().mapDimension(l),n={thisAxis:s,series:t,thisDim:r,otherDim:l,otherAxisInverse:a}}}),this)}),this),n}},e.prototype._renderHandle=function(){var t=this.group,e=this._displayables,n=e.handles=[null,null],i=e.handleLabels=[null,null],r=this._displayables.sliderGroup,o=this._size,a=this.dataZoomModel,s=this.api,l=a.get("borderRadius")||0,u=a.get("brushSelect"),h=e.filler=new GV({silent:u,style:{fill:a.get("fillerColor")},textConfig:{position:"inside"}});r.add(h),r.add(new GV({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:o[0],height:o[1],r:l},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:1,fill:"rgba(0,0,0,0)"}})),P([0,1],(function(e){var o=a.get("handleIcon");!cy[o]&&o.indexOf("path://")<0&&o.indexOf("image://")<0&&(o="path://"+o);var s=fy(o,-1,0,2,2,null,!0);s.attr({cursor:ZV(this._orient),draggable:!0,drift:V(this._onDragMove,this,e),ondragend:V(this._onDragEnd,this),onmouseover:V(this._showDataInfo,this,!0),onmouseout:V(this._showDataInfo,this,!1),z2:5});var l=s.getBoundingRect(),u=a.get("handleSize");this._handleHeight=Zi(u,this._size[1]),this._handleWidth=l.width/l.height*this._handleHeight,s.setStyle(a.getModel("handleStyle").getItemStyle()),s.style.strokeNoScale=!0,s.rectHover=!0,s.ensureState("emphasis").style=a.getModel(["emphasis","handleStyle"]).getItemStyle(),sl(s);var h=a.get("handleColor");null!=h&&(s.style.fill=h),r.add(n[e]=s);var c=a.getModel("textStyle");t.add(i[e]=new cs({silent:!0,invisible:!0,style:ph(c,{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:c.getTextColor(),font:c.getFont()}),z2:10}))}),this);var c=h;if(u){var p=Zi(a.get("moveHandleSize"),o[1]),d=e.moveHandle=new ls({style:a.getModel("moveHandleStyle").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:o[1]-.5,height:p}}),f=.8*p,g=e.moveHandleIcon=fy(a.get("moveHandleIcon"),-f/2,-f/2,f,f,"#fff",!0);g.silent=!0,g.y=o[1]+p/2-.5,d.ensureState("emphasis").style=a.getModel(["emphasis","moveHandleStyle"]).getItemStyle();var y=Math.min(o[1]/2,Math.max(p,10));(c=e.moveZone=new ls({invisible:!0,shape:{y:o[1]-y,height:p+y}})).on("mouseover",(function(){s.enterEmphasis(d)})).on("mouseout",(function(){s.leaveEmphasis(d)})),r.add(d),r.add(g),r.add(c)}c.attr({draggable:!0,cursor:ZV(this._orient),drift:V(this._onDragMove,this,"all"),ondragstart:V(this._showDataInfo,this,!0),ondragend:V(this._onDragEnd,this),onmouseover:V(this._showDataInfo,this,!0),onmouseout:V(this._showDataInfo,this,!1)})},e.prototype._resetInterval=function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[Yi(t[0],[0,100],e,!0),Yi(t[1],[0,100],e,!0)]},e.prototype._updateInterval=function(t,e){var n=this.dataZoomModel,i=this._handleEnds,r=this._getViewExtent(),o=n.findRepresentativeAxisProxy().getMinMaxSpan(),a=[0,100];PD(e,i,r,n.get("zoomLock")?"all":t,null!=o.minSpan?Yi(o.minSpan,a,r,!0):null,null!=o.maxSpan?Yi(o.maxSpan,a,r,!0):null);var s=this._range,l=this._range=qi([Yi(i[0],r,a,!0),Yi(i[1],r,a,!0)]);return!s||s[0]!==l[0]||s[1]!==l[1]},e.prototype._updateView=function(t){var e=this._displayables,n=this._handleEnds,i=qi(n.slice()),r=this._size;P([0,1],(function(t){var i=e.handles[t],o=this._handleHeight;i.attr({scaleX:o/2,scaleY:o/2,x:n[t]+(t?-1:1),y:r[1]/2-o/2})}),this),e.filler.setShape({x:i[0],y:0,width:i[1]-i[0],height:r[1]});var o={x:i[0],width:i[1]-i[0]};e.moveHandle&&(e.moveHandle.setShape(o),e.moveZone.setShape(o),e.moveZone.getBoundingRect(),e.moveHandleIcon&&e.moveHandleIcon.attr("x",o.x+o.width/2));for(var a=e.dataShadowSegs,s=[0,i[0],i[1],r[0]],l=0;le[0]||n[1]<0||n[1]>e[1])){var i=this._handleEnds,r=(i[0]+i[1])/2,o=this._updateInterval("all",n[0]-r);this._updateView(),o&&this._dispatchZoomAction(!1)}},e.prototype._onBrushStart=function(t){var e=t.offsetX,n=t.offsetY;this._brushStart=new ai(e,n),this._brushing=!0,this._brushStartTime=+new Date},e.prototype._onBrushEnd=function(t){if(this._brushing){var e=this._displayables.brushRect;if(this._brushing=!1,e){e.attr("ignore",!0);var n=e.shape;if(!(+new Date-this._brushStartTime<200&&Math.abs(n.width)<5)){var i=this._getViewExtent(),r=[0,100];this._range=qi([Yi(n.x,i,r,!0),Yi(n.x+n.width,i,r,!0)]),this._handleEnds=[n.x,n.x+n.width],this._updateView(),this._dispatchZoomAction(!1)}}}},e.prototype._onBrush=function(t){this._brushing&&(ee(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},e.prototype._updateBrushRect=function(t,e){var n=this._displayables,i=this.dataZoomModel,r=n.brushRect;r||(r=n.brushRect=new GV({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(r)),r.attr("ignore",!1);var o=this._brushStart,a=this._displayables.sliderGroup,s=a.transformCoordToLocal(t,e),l=a.transformCoordToLocal(o.x,o.y),u=this._size;s[0]=Math.max(Math.min(u[0],s[0]),0),r.setShape({x:l[0],y:0,width:s[0]-l[0],height:u[1]})},e.prototype._dispatchZoomAction=function(t){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?XV:null,start:e[0],end:e[1]})},e.prototype._findCoordRect=function(){var t,e=xN(this.dataZoomModel).infoList;if(!t&&e.length){var n=e[0].model.coordinateSystem;t=n.getRect&&n.getRect()}if(!t){var i=this.api.getWidth(),r=this.api.getHeight();t={x:.2*i,y:.2*r,width:.6*i,height:.6*r}}return t},e.type="dataZoom.slider",e}(IN);function ZV(t){return"vertical"===t?"ns-resize":"ew-resize"}function jV(t){t.registerComponentModel(FV),t.registerComponentView(YV),PN(t)}var qV=function(t,e,n){var i=w((KV[t]||{})[e]);return n&&F(i)?i[i.length-1]:i},KV={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}},$V=TT.mapVisual,JV=TT.eachVisual,QV=F,tB=P,eB=qi,nB=Yi,iB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.stateList=["inRange","outOfRange"],n.replacableOptionKeys=["inRange","outOfRange","target","controller","color"],n.layoutMode={type:"box",ignoreSize:!0},n.dataBound=[-1/0,1/0],n.targetVisuals={},n.controllerVisuals={},n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},e.prototype.optionUpdated=function(t,e){var n=this.option;a.canvasSupported||(n.realtime=!1),!e&&Jz(n,t,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},e.prototype.resetVisual=function(t){var e=this.stateList;t=V(t,this),this.controllerVisuals=$z(this.option.controller,e,t),this.targetVisuals=$z(this.option.target,e,t)},e.prototype.getItemSymbol=function(){return null},e.prototype.getTargetSeriesIndices=function(){var t=this.option.seriesIndex,e=[];return null==t||"all"===t?this.ecModel.eachSeries((function(t,n){e.push(n)})):e=xr(t),e},e.prototype.eachTargetSeries=function(t,e){P(this.getTargetSeriesIndices(),(function(n){var i=this.ecModel.getSeriesByIndex(n);i&&t.call(e,i)}),this)},e.prototype.isTargetSeries=function(t){var e=!1;return this.eachTargetSeries((function(n){n===t&&(e=!0)})),e},e.prototype.formatValueText=function(t,e,n){var i,r=this.option,o=r.precision,a=this.dataBound,s=r.formatter;n=n||["<",">"],F(t)&&(t=t.slice(),i=!0);var l=e?t:i?[u(t[0]),u(t[1])]:u(t);return H(s)?s.replace("{value}",i?l[0]:l).replace("{value2}",i?l[1]:l):G(s)?i?s(t[0],t[1]):s(t):i?t[0]===a[0]?n[0]+" "+l[1]:t[1]===a[1]?n[1]+" "+l[0]:l[0]+" - "+l[1]:l;function u(t){return t===a[0]?"min":t===a[1]?"max":(+t).toFixed(Math.min(o,20))}},e.prototype.resetExtent=function(){var t=this.option,e=eB([t.min,t.max]);this._dataExtent=e},e.prototype.getDataDimension=function(t){var e=this.option.dimension,n=t.dimensions;if(null!=e||n.length){if(null!=e)return t.getDimension(e);for(var i=t.dimensions,r=i.length-1;r>=0;r--){var o=i[r];if(!t.getDimensionInfo(o).isCalculationCoord)return o}}},e.prototype.getExtent=function(){return this._dataExtent.slice()},e.prototype.completeVisualOption=function(){var t=this.ecModel,e=this.option,n={inRange:e.inRange,outOfRange:e.outOfRange},i=e.target||(e.target={}),r=e.controller||(e.controller={});S(i,n),S(r,n);var o=this.isCategory();function a(n){QV(e.color)&&!n.inRange&&(n.inRange={color:e.color.slice().reverse()}),n.inRange=n.inRange||{color:t.get("gradientColor")}}a.call(this,i),a.call(this,r),function(t,e,n){var i=t[e],r=t[n];i&&!r&&(r=t[n]={},tB(i,(function(t,e){if(TT.isValidType(e)){var n=qV(e,"inactive",o);null!=n&&(r[e]=n,"color"!==e||r.hasOwnProperty("opacity")||r.hasOwnProperty("colorAlpha")||(r.opacity=[0,0]))}})))}.call(this,i,"inRange","outOfRange"),function(t){var e=(t.inRange||{}).symbol||(t.outOfRange||{}).symbol,n=(t.inRange||{}).symbolSize||(t.outOfRange||{}).symbolSize,i=this.get("inactiveColor"),r=this.getItemSymbol()||"roundRect";tB(this.stateList,(function(a){var s=this.itemSize,l=t[a];l||(l=t[a]={color:o?i:[i]}),null==l.symbol&&(l.symbol=e&&w(e)||(o?r:[r])),null==l.symbolSize&&(l.symbolSize=n&&w(n)||(o?s[0]:[s[0],s[0]])),l.symbol=$V(l.symbol,(function(t){return"none"===t?r:t}));var u=l.symbolSize;if(null!=u){var h=-1/0;JV(u,(function(t){t>h&&(h=t)})),l.symbolSize=$V(u,(function(t){return nB(t,[0,h],[0,s[0]],!0)}))}}),this)}.call(this,r)},e.prototype.resetItemSize=function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},e.prototype.isCategory=function(){return!!this.option.categories},e.prototype.setSelected=function(t){},e.prototype.getSelected=function(){return null},e.prototype.getValueState=function(t){return null},e.prototype.getVisualMeta=function(t){return null},e.type="visualMap",e.dependencies=["series"],e.defaultOption={show:!0,zlevel:0,z:4,seriesIndex:"all",min:0,max:200,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,textStyle:{color:"#333"}},e}(Xc),rB=[20,140],oB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent(),this.resetVisual((function(t){t.mappingMethod="linear",t.dataExtent=this.getExtent()})),this._resetRange()},e.prototype.resetItemSize=function(){t.prototype.resetItemSize.apply(this,arguments);var e=this.itemSize;(null==e[0]||isNaN(e[0]))&&(e[0]=rB[0]),(null==e[1]||isNaN(e[1]))&&(e[1]=rB[1])},e.prototype._resetRange=function(){var t=this.getExtent(),e=this.option.range;!e||e.auto?(t.auto=1,this.option.range=t):F(e)&&(e[0]>e[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},e.prototype.completeVisualOption=function(){t.prototype.completeVisualOption.apply(this,arguments),P(this.stateList,(function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=e[1]/3)}),this)},e.prototype.setSelected=function(t){this.option.range=t.slice(),this._resetRange()},e.prototype.getSelected=function(){var t=this.getExtent(),e=qi((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]=n[1]||t<=e[1])?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var e=[];return this.eachTargetSeries((function(n){var i=[],r=n.getData();r.each(this.getDataDimension(r),(function(e,n){t[0]<=e&&e<=t[1]&&i.push(n)}),this),e.push({seriesId:n.id,dataIndex:i})}),this),e},e.prototype.getVisualMeta=function(t){var e=aB(this,"outOfRange",this.getExtent()),n=aB(this,"inRange",this.option.range.slice()),i=[];function r(e,n){i.push({value:e,color:t(e,n)})}for(var o=0,a=0,s=n.length,l=e.length;at[1])break;n.push({color:this.getControllerVisual(o,"color",e),offset:r/100})}return n.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),n},e.prototype._createBarPoints=function(t,e){var n=this.visualMapModel.itemSize;return[[n[0]-e[0],t[0]],[n[0],t[0]],[n[0],t[1]],[n[0]-e[1],t[1]]]},e.prototype._createBarGroup=function(t){var e=this._orient,n=this.visualMapModel.get("inverse");return new Ei("horizontal"!==e||n?"horizontal"===e&&n?{scaleX:"bottom"===t?-1:1,rotation:-Math.PI/2}:"vertical"!==e||n?{scaleX:"left"===t?1:-1}:{scaleX:"left"===t?1:-1,scaleY:-1}:{scaleX:"bottom"===t?1:-1,rotation:Math.PI/2})},e.prototype._updateHandle=function(t,e){if(this._useHandle){var n=this._shapes,i=this.visualMapModel,r=n.handleThumbs,o=n.handleLabels,a=i.itemSize,s=i.getExtent();pB([0,1],(function(l){var u=r[l];u.setStyle("fill",e.handlesColor[l]),u.y=t[l];var h=cB(t[l],[0,a[1]],s,!0),c=this.getControllerVisual(h,"symbolSize");u.scaleX=u.scaleY=c/a[0],u.x=a[0]-c/2;var p=qu(n.handleLabelPoints[l],ju(u,this.group));o[l].setStyle({x:p[0],y:p[1],text:i.formatValueText(this._dataInterval[l]),verticalAlign:"middle",align:"vertical"===this._orient?this._applyTransform("left",n.mainGroup):"center"})}),this)}},e.prototype._showIndicator=function(t,e,n,i){var r=this.visualMapModel,o=r.getExtent(),a=r.itemSize,s=[0,a[1]],l=this._shapes,u=l.indicator;if(u){u.attr("invisible",!1);var h=this.getControllerVisual(t,"color",{convertOpacityToAlpha:!0}),c=this.getControllerVisual(t,"symbolSize"),p=cB(t,o,s,!0),d=a[0]-c/2,f={x:u.x,y:u.y};u.y=p,u.x=d;var g=qu(l.indicatorLabelPoint,ju(u,this.group)),y=l.indicatorLabel;y.attr("invisible",!1);var v=this._applyTransform("left",l.mainGroup),m="horizontal"===this._orient;y.setStyle({text:(n||"")+r.formatValueText(e),verticalAlign:m?v:"middle",align:m?"center":v});var _={x:d,y:p,style:{fill:h}},x={style:{x:g[0],y:g[1]}};if(r.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var b={duration:100,easing:"cubicInOut",additive:!0};u.x=f.x,u.y=f.y,u.animateTo(_,b),y.animateTo(x,b)}else u.attr(_),y.attr(x);this._firstShowIndicator=!1;var w=this._shapes.handleLabels;if(w)for(var S=0;Sr[1]&&(u[1]=1/0),e&&(u[0]===-1/0?this._showIndicator(l,u[1],"< ",a):u[1]===1/0?this._showIndicator(l,u[0],"> ",a):this._showIndicator(l,l,"≈ ",a));var h=this._hoverLinkDataIndices,c=[];(e||vB(n))&&(c=this._hoverLinkDataIndices=n.findTargetDataIndices(u));var p=function(t,e){var n={},i={};return r(t||[],n),r(e||[],i,n),[o(n),o(i)];function r(t,e,n){for(var i=0,r=t.length;i0:t.splitNumber>0)&&!t.calculable?"piecewise":"continuous"})),t.registerAction(_B,xB),P(bB,(function(e){t.registerVisual(t.PRIORITY.VISUAL.COMPONENT,e)})),t.registerPreprocessor(MB))}function DB(t){t.registerComponentModel(oB),t.registerComponentView(gB),CB(t)}var AB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._pieceList=[],n}return n(e,t),e.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent();var i=this._mode=this._determineMode();this._pieceList=[],LB[this._mode].call(this,this._pieceList),this._resetSelected(e,n);var r=this.option.categories;this.resetVisual((function(t,e){"categories"===i?(t.mappingMethod="category",t.categories=w(r)):(t.dataExtent=this.getExtent(),t.mappingMethod="piecewise",t.pieceList=O(this._pieceList,(function(t){return t=w(t),"inRange"!==e&&(t.visual=null),t})))}))},e.prototype.completeVisualOption=function(){var e=this.option,n={},i=TT.listVisualTypes(),r=this.isCategory();function o(t,e,n){return t&&t[e]&&t[e].hasOwnProperty(n)}P(e.pieces,(function(t){P(i,(function(e){t.hasOwnProperty(e)&&(n[e]=1)}))})),P(n,(function(t,n){var i=!1;P(this.stateList,(function(t){i=i||o(e,t,n)||o(e.target,t,n)}),this),!i&&P(this.stateList,(function(t){(e[t]||(e[t]={}))[n]=qV(n,"inRange"===t?"active":"inactive",r)}))}),this),t.prototype.completeVisualOption.apply(this,arguments)},e.prototype._resetSelected=function(t,e){var n=this.option,i=this._pieceList,r=(e?n:t).selected||{};if(n.selected=r,P(i,(function(t,e){var n=this.getSelectedMapKey(t);r.hasOwnProperty(n)||(r[n]=!0)}),this),"single"===n.selectedMode){var o=!1;P(i,(function(t,e){var n=this.getSelectedMapKey(t);r[n]&&(o?r[n]=!1:o=!0)}),this)}},e.prototype.getItemSymbol=function(){return this.get("itemSymbol")},e.prototype.getSelectedMapKey=function(t){return"categories"===this._mode?t.value+"":t.index+""},e.prototype.getPieceList=function(){return this._pieceList},e.prototype._determineMode=function(){var t=this.option;return t.pieces&&t.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},e.prototype.setSelected=function(t){this.option.selected=w(t)},e.prototype.getValueState=function(t){var e=TT.findPieceIndex(t,this._pieceList);return null!=e&&this.option.selected[this.getSelectedMapKey(this._pieceList[e])]?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var e=[],n=this._pieceList;return this.eachTargetSeries((function(i){var r=[],o=i.getData();o.each(this.getDataDimension(o),(function(e,i){TT.findPieceIndex(e,n)===t&&r.push(i)}),this),e.push({seriesId:i.id,dataIndex:r})}),this),e},e.prototype.getRepresentValue=function(t){var e;if(this.isCategory())e=t.value;else if(null!=t.value)e=t.value;else{var n=t.interval||[];e=n[0]===-1/0&&n[1]===1/0?0:(n[0]+n[1])/2}return e},e.prototype.getVisualMeta=function(t){if(!this.isCategory()){var e=[],n=["",""],i=this,r=this._pieceList.slice();if(r.length){var o=r[0].interval[0];o!==-1/0&&r.unshift({interval:[-1/0,o]}),(o=r[r.length-1].interval[1])!==1/0&&r.push({interval:[o,1/0]})}else r.push({interval:[-1/0,1/0]});var a=-1/0;return P(r,(function(t){var e=t.interval;e&&(e[0]>a&&s([a,e[0]],"outOfRange"),s(e.slice()),a=e[1])}),this),{stops:e,outerColors:n}}function s(r,o){var a=i.getRepresentValue({interval:r});o||(o=i.getValueState(a));var s=t(a,o);r[0]===-1/0?n[0]=s:r[1]===1/0?n[1]=s:e.push({value:r[0],color:s},{value:r[1],color:s})}},e.type="visualMap.piecewise",e.defaultOption=zh(iB.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieces:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0}),e}(iB),LB={splitNumber:function(t){var e=this.option,n=Math.min(e.precision,20),i=this.getExtent(),r=e.splitNumber;r=Math.max(parseInt(r,10),1),e.splitNumber=r;for(var o=(i[1]-i[0])/r;+o.toFixed(n)!==o&&n<5;)n++;e.precision=n,o=+o.toFixed(n),e.minOpen&&t.push({interval:[-1/0,i[0]],close:[0,0]});for(var a=0,s=i[0];a","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,n)}),this)}};function kB(t,e){var n=t.inverse;("vertical"===t.orient?!n:n)&&e.reverse()}var PB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.doRender=function(){var t=this.group;t.removeAll();var e=this.visualMapModel,n=e.get("textGap"),i=e.textStyleModel,r=i.getFont(),o=i.getTextColor(),a=this._getItemAlign(),s=e.itemSize,l=this._getViewData(),u=l.endsText,h=Q(e.get("showLabel",!0),!u);u&&this._renderEndsText(t,u[0],s,h,a),P(l.viewPieceList,(function(i){var l=i.piece,u=new Ei;u.onclick=V(this._onItemClick,this,l),this._enableHoverLink(u,i.indexInModelPieceList);var c=e.getRepresentValue(l);if(this._createItemSymbol(u,c,[0,0,s[0],s[1]]),h){var p=this.visualMapModel.getValueState(c);u.add(new cs({style:{x:"right"===a?-n:s[0]+n,y:s[1]/2,text:l.text,verticalAlign:"middle",align:a,font:r,fill:o,opacity:"outOfRange"===p?.5:1}}))}t.add(u)}),this),u&&this._renderEndsText(t,u[1],s,h,a),Ec(e.get("orient"),t,e.get("itemGap")),this.renderBackground(t),this.positionGroup(t)},e.prototype._enableHoverLink=function(t,e){var n=this;t.on("mouseover",(function(){return i("highlight")})).on("mouseout",(function(){return i("downplay")}));var i=function(t){var i=n.visualMapModel;i.option.hoverLink&&n.api.dispatchAction({type:t,batch:hB(i.findTargetDataIndices(e),i)})}},e.prototype._getItemAlign=function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return uB(t,this.api,t.itemSize);var n=e.align;return n&&"auto"!==n||(n="left"),n},e.prototype._renderEndsText=function(t,e,n,i,r){if(e){var o=new Ei,a=this.visualMapModel.textStyleModel;o.add(new cs({style:{x:i?"right"===r?n[0]:0:n[0]/2,y:n[1]/2,verticalAlign:"middle",align:i?r:"center",text:e,font:a.getFont(),fill:a.getTextColor()}})),t.add(o)}},e.prototype._getViewData=function(){var t=this.visualMapModel,e=O(t.getPieceList(),(function(t,e){return{piece:t,indexInModelPieceList:e}})),n=t.get("text"),i=t.get("orient"),r=t.get("inverse");return("horizontal"===i?r:!r)?e.reverse():n&&(n=n.slice().reverse()),{viewPieceList:e,endsText:n}},e.prototype._createItemSymbol=function(t,e,n){t.add(fy(this.getControllerVisual(e,"symbol"),n[0],n[1],n[2],n[3],this.getControllerVisual(e,"color")))},e.prototype._onItemClick=function(t){var e=this.visualMapModel,n=e.option,i=w(n.selected),r=e.getSelectedMapKey(t);"single"===n.selectedMode?(i[r]=!0,P(i,(function(t,e){i[e]=e===r}))):i[r]=!i[r],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:i})},e.type="visualMap.piecewise",e}(sB);function OB(t){t.registerComponentModel(AB),t.registerComponentView(PB),CB(t)}var RB={label:{enabled:!0},decal:{show:!1}},NB=kr(),zB={};function EB(t,e){var n=t.getModel("aria");if(n.get("enabled")){var i=w(RB);S(i.label,t.getLocaleModel().get("aria"),!1),S(n.option,i,!1),function(){if(n.getModel("decal").get("show")){var e=ht();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),NB(t).scope=n}})),t.eachRawSeries((function(e){if(!t.isSeriesFiltered(e))if("function"!=typeof e.enableAriaDecal){var n=e.getData();if(e.useColorPaletteOnData){var i=e.getRawData(),r={},o=NB(e).scope;n.each((function(t){var e=n.getRawIndex(t);r[e]=t}));var a=i.count();i.each((function(t){var s=r[t],l=i.getName(t)||t+"",h=xp(e.ecModel,l,o,a),c=n.getItemVisual(s,"decal");n.setItemVisual(s,"decal",u(c,h))}))}else{var s=xp(e.ecModel,e.name,zB,t.getSeriesCount()),l=n.getVisual("decal");n.setVisual("decal",u(l,s))}}else e.enableAriaDecal();function u(t,e){var n=t?I(I({},e),t):e;return n.dirty=!0,n}}))}}(),function(){var i=t.getLocaleModel().get("aria"),o=n.getModel("label");if(o.option=T(o.option,i),!o.get("enabled"))return;var a=e.getZr().dom;if(o.get("description"))return void a.setAttribute("aria-label",o.get("description"));var s,l=t.getSeriesCount(),u=o.get(["data","maxCount"])||10,h=o.get(["series","maxCount"])||10,c=Math.min(l,h);if(l<1)return;var p=function(){var e=t.get("title");e&&e.length&&(e=e[0]);return e&&e.text}();if(p){var d=o.get(["general","withTitle"]);s=r(d,{title:p})}else s=o.get(["general","withoutTitle"]);var f=[],g=l>1?o.get(["series","multiple","prefix"]):o.get(["series","single","prefix"]);s+=r(g,{seriesCount:l}),t.eachSeries((function(e,n){if(n1?o.get(["series","multiple",a]):o.get(["series","single",a]),{seriesId:e.seriesIndex,seriesName:e.get("name"),seriesType:(_=e.subType,t.getLocaleModel().get(["series","typeNames"])[_]||"自定义图")});var s=e.getData();if(s.count()>u)i+=r(o.get(["data","partialData"]),{displayCnt:u});else i+=o.get(["data","allData"]);for(var h=[],p=0;p":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},FB=function(){function t(t){if(null==(this._condVal=H(t)?new RegExp(t):$(t)?t:null)){var e="";0,vr(e)}}return t.prototype.evaluate=function(t){var e=typeof t;return"string"===e?this._condVal.test(t):"number"===e&&this._condVal.test(t+"")},t}(),GB=function(){function t(){}return t.prototype.evaluate=function(){return this.value},t}(),HB=function(){function t(){}return t.prototype.evaluate=function(){for(var t=this.children,e=0;e