<!DOCTYPE html>
<!--
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.
-->
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <script src="lib/simpleRequire.js"></script>
    <script src="lib/config.js"></script>
    <script src="lib/facePrint.js"></script>
    <script src="lib/testHelper.js"></script>
    <link rel="stylesheet" href="lib/reset.css" />
</head>

<body>
    <div id="main0"></div>
    <div id="main1"></div>
    <script>
        var chart1;

        require([
            'echarts'
        ], function (echarts) {
            var colorList = ['#33ff11', '#aa0088', '#224477', '#00ee44', '#6611ff', '#889911'];
            var option = {
                legend: {
                    left: 'center',
                    bottom: 'bottom'
                },
                xAxis: {
                    type: 'category',
                    data: [100, 200, 20, 30, 60, 89],
                },
                yAxis: {
                    type: 'value',
                },
                grid: {
                    bottom: 120
                },
                series: [
                    {
                        // itemStyle.color is callback, lineStyle.color not set
                        name: 'Symbol color is from callback, line color should be palette color',
                        type: 'line',
                        data: [100, 110, 100, 120, 100, 130],
                        symbolSize: 10,
                        smooth: true,
                        itemStyle: {
                            color: function (param) {
                                return colorList[param.dataIndex]
                            }
                        }
                    },
                    {
                        // itemStyle.color is callback, lineStyle.color is "blue"
                        name: 'Symbol color is from callback, line color should be "blue"',
                        type: 'line',
                        data: [200, 210, 200, 220, 200, 230],
                        symbolSize: 10,
                        smooth: true,
                        itemStyle: {
                            color: function (param) {
                                return colorList[param.dataIndex]
                            }
                        },
                        lineStyle: {
                            color: 'blue'
                        }
                    },
                    {
                        // itemStyle.color is "green", lineStyle.color not set
                        name: 'Both symbol color and line color should be "green"',
                        type: 'line',
                        data: [300, 310, 300, 320, 300, 330],
                        symbolSize: 10,
                        smooth: true,
                        itemStyle: {
                            color: 'green'
                        }
                    },
                    {
                        // itemStyle.color is "green", lineStyle.color is "blue"
                        name: 'Symbol color should be "green", line color should be "blue"',
                        type: 'line',
                        data: [400, 410, 400, 420, 400, 430],
                        symbolSize: 10,
                        smooth: true,
                        itemStyle: {
                            color: 'green'
                        },
                        lineStyle: {
                            color: 'blue'
                        }
                    },
                    {
                        // itemStyle.color not set, lineStyle.color not set
                        name: 'Both symbol color and line color should be palette color',
                        type: 'line',
                        data: [500, 510, 500, 520, 500, 530],
                        symbolSize: 10,
                        smooth: true
                    }
                ]
            };

            chart1 = testHelper.create(echarts, 'main0', {
                title: [
                    'Test itemStyle.color and lineStyle.color',
                    'The colors should follow what the legend described.'
                ],
                option: option
            });
        });

    </script>

    <script>
        var chart2;

        require([
            'echarts'
        ], function (echarts) {
            var option = {
                // textStyle: {
                //     color: 'red',
                //     textBorderWidth: 5,
                //     textBorderColor: 'red',
                //     textBorderType: 'dashed',
                //     textBorderType: [2, 2]
                // },
                title: {
                    text: '这是标题~',
                    borderColor: 'red',
                    borderWidth: 1,
                    borderType: 'dashed',
                    textStyle: {
                        textBorderWidth: 1,
                        textBorderColor: 'red',
                        textBorderType: 'dotted'
                    },
                    subtext: '这是副标题',
                    subtextStyle: {
                        textBorderWidth: 1,
                        textBorderColor: 'cyan',
                        textBorderType: [15, 3, 3]
                    }
                },
                legend: {
                    left: '10%',
                    bottom: '2%',
                    right: '10%',
                    itemWidth: 50,
                    borderWidth: 1,
                    borderColor: 'blue',
                    borderType: 'dotted',
                    textStyle: {
                        textBorderWidth: 1,
                        textBorderColor: 'green',
                        textBorderType: 'dotted'
                    }
                },
                toolbox: {
                    show: true,
                    feature: {
                      dataZoom: {
                        yAxisIndex: "none"
                      },
                      dataView: {
                        readOnly: false
                      },
                      magicType: {
                        type: ["line", "bar"]
                      },
                      restore: {},
                      saveAsImage: {}
                    },
                    iconStyle: {
                        borderType: 'dotted',
                        borderWidth: 1,
                        borderColor: 'cyan'
                    }
                },
                tooltip: {
                    formatter: '{c}'
                },
                axisPointer: {
                    show: false,
                    type: 'line',
                    lineStyle: {
                        type: 'dotted',
                        color: 'cyan',
                        width: 2
                    },
                    label: {
                        //show: false,
                        fontWeight: 'bold',
                        precision: 2,
                        fontSize: '1rem',
                        textShadowBlur: 10,
                        //textShadowOffsetX: 2,
                        //textShadowOffsetY: 2,
                        textShadowColor: 'red',
                        textBorderColor: 'cyan',
                        textBorderWidth: 2,
                        textBorderType: 'dotted',
                        //textBorderType: [5, 5],
                        borderWidth: 1,
                        borderColor: 'black',
                        borderType: [15, 3, 3],
                        borderRadius: 20,
                        backgroundColor: 'yellow',
                        padding: 10,
                        shadowColor: 'green',
                        shadowBlur: 5,
                        //shadowOffsetX: 10,
                        //shadowOffsetY: 10,
                        color: '#fff',
                        fontFamily: 'SimHei',
                        rich: {
                            name: {
                                textBorderColor: 'purple',
                                fontSize: 12,
                                fontFamily: 'Courier New'
                            }
                        },
                        //formatter: '{name|{value}}',
                        //width: 120,
                        //height: 30,
                        //lineHeight: 30
                        //opacity: 0.5
                    }
                },
                xAxis: {
                    type: 'category',
                    data: [100, 200, 20, 30, 60, 89],
                    name: 'X轴',
                    nameTextStyle: {
                        borderWidth: 1,
                        borderColor: 'red',
                        borderType: 'dashed',
                        textBorderWidth: 1,
                        textBorderColor: 'green',
                        //textBorderType: 'dashed'
                    },
                    splitLine: {
                        show: true,
                        lineStyle: {
                            width: 2,
                            type: 'dotted'
                        }
                    }
                },
                yAxis: {
                    type: 'value',
                    name: 'Y轴',
                    nameTextStyle: {
                        borderWidth: 1,
                        borderColor: 'black'
                    },
                    splitLine: {
                        lineStyle: {
                            type: [20, 5, 5]
                        }
                    }
                },
                graphic: {
                    elements: [{
                        type: 'group',
                        left: '10%',
                        top: 'center',
                        children: [
                            {
                                type: 'rect',
                                z: 100,
                                left: 'center',
                                top: 'middle',
                                shape: {
                                    width: 190,
                                    height: 90
                                },
                                style: {
                                    fill: '#fff',
                                    stroke: '#555',
                                    lineWidth: 2,
                                    lineDash: [5, 5],
                                    shadowBlur: 8,
                                    shadowOffsetX: 3,
                                    shadowOffsetY: 3,
                                    shadowColor: 'rgba(0,0,0,0.3)'
                                }
                            },
                            {
                                type: 'text',
                                z: 100,
                                left: 'center',
                                top: 'middle',
                                style: {
                                    fill: '#333',
                                    text: [
                                        '横轴表示温度，单位是°C',
                                        '纵轴表示高度，单位是km',
                                        '右上角有一个图片做的水印',
                                        '这个文本块可以放在图中各',
                                        '种位置'
                                    ].join('\n'),
                                    stroke: 'red',
                                    lineDash: [2],
                                    lineWidth: 1,
                                    borderWidth: 2,
                                    borderColor: 'blue',
                                    borderDash: [5, 5],
                                    font: '14px Microsoft YaHei'
                                }
                            }
                        ]
                    }]
                },
                grid: {
                    bottom: 180
                },
                series: [
                    {
                        name: 'lineStyle.type is [10, 5]',
                        type: 'line',
                        data: [{
                            value: 7200,
                            itemStyle: {
                                color: 'cyan',
                                //borderWidth: 10,
                                borderType: 'solid',
                                borderColor: 'red'
                            },
                            //symbolRotate: 45
                        }, 7210, 7200, 7220, 7200, 7230],
                        symbolSize: 10,
                        smooth: true,
                        lineStyle: {
                            type: [10, 5]
                        },
                        symbol: 'circle',
                        //symbolRotate: 60,
                        itemStyle: {
                            color: 'red',
                            borderType: 'dashed',
                            borderWidth: 1,
                            borderColor: 'purple'
                        },
                        emphasis: {
                            lineStyle: {
                                type: 'dotted'
                            },
                            itemStyle: {
                                borderType: [12, 3, 3],
                                borderWidth: 2,
                                borderColor: '#000'
                            }
                        }
                    },
                    {
                        name: 'lineStyle.type is [12, 3, 3]',
                        type: 'line',
                        data: [6200, 6210, 6200, 6220, 6200, 6230],
                        symbolSize: 10,
                        smooth: true,
                        lineStyle: {
                            type: [12, 3, 3]
                        }
                    },
                    {
                        name: 'lineStyle.type is [20, 3, 3, 3, 3, 3, 3, 3]',
                        type: 'line',
                        data: [5200, 5210, 5200, 5220, 5200, 5230],
                        symbolSize: 10,
                        smooth: true,
                        lineStyle: {
                            type: [20, 3, 3, 3, 3, 3, 3, 3]
                        }
                    },
                    {
                        name: 'lineStyle.type is [20, 3, 3, 3, 3, 3, 3, 3]\nlineStyle.dashOffset is 20',
                        type: 'line',
                        data: [4200, 4210, 4200, 4220, 4200, 4230],
                        symbolSize: 10,
                        smooth: true,
                        lineStyle: {
                            type: [20, 3, 3, 3, 3, 3, 3, 3],
                            dashOffset: 20
                        }
                    },
                    {
                        name: 'lineStyle.type is [2, 6]',
                        type: 'line',
                        data: [3250, 3260, 3250, 3270, 3250, 3280],
                        symbolSize: 10,
                        smooth: true,
                        lineStyle: {
                            type: [2, 6]
                        }
                    },
                    {
                        name: 'lineStyle.type is [2, 2]',
                        type: 'line',
                        data: [2200, 2210, 2200, 2220, 2200, 2230],
                        symbolSize: 10,
                        smooth: true,
                        lineStyle: {
                            type: [2, 2]
                        }
                    },
                    {
                        name: 'lineStyle.cap is butt',
                        type: 'line',
                        data: [1200, 1210, 1200, 1240, 1210, 1230],
                        symbolSize: 4,
                        smooth: true,
                        lineStyle: {
                            width: 8,
                            type: 'solid',
                            cap: 'butt'
                        },
                        smooth: false
                    },
                    {
                        name: 'lineStyle.cap is square',
                        type: 'line',
                        data: [200, 230, 300, 340, 310, 330],
                        symbolSize: 4,
                        smooth: true,
                        lineStyle: {
                            width: 8,
                            type: 'solid',
                            cap: 'square'
                        },
                        smooth: false
                    },
                    {
                        name: 'lineStyle.cap is round',
                        type: 'line',
                        data: [-1000, -970, -900, -860, -890, -870],
                        symbolSize: 4,
                        smooth: true,
                        lineStyle: {
                            width: 8,
                            type: 'solid',
                            cap: 'round'
                        },
                        smooth: false
                    },
                    {
                        name: 'lineStyle.join is bevel',
                        type: 'line',
                        data: [-1800, -3800, -1800, -3800, -1800, -3800],
                        symbolSize: 5,
                        smooth: true,
                        lineStyle: {
                            width: 10,
                            type: 'solid',
                            join: 'bevel'
                        },
                        smooth: false
                    },
                    {
                        name: 'lineStyle.join is round',
                        type: 'line',
                        data: [-2800, -4800, -2800, -4800, -2800, -4800],
                        symbolSize: 5,
                        smooth: true,
                        lineStyle: {
                            width: 10,
                            type: 'solid',
                            join: 'round'
                        },
                        smooth: false
                    }
                ]
            };

            chart2 = testHelper.create(echarts, 'main1', {
                title: [
                    'Test lineStyle.cap, lineStyle.join, lineStyle.dashArray and lineStyle.dashOffset'
                ],
                option: option
            });

            // setTimeout(function() {
            //     option.series[0].symbol = 'emptyCircle';
            //     chart2.setOption(option);
            // }, 2000);
        });
    </script>
</body>

</html>
