| <!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/esl.js"></script> |
| <script src="lib/config.js"></script> |
| <script src="lib/jquery.min.js"></script> |
| <script src="lib/facePrint.js"></script> |
| <script src="lib/testHelper.js"></script> |
| <script src="lib/canteen.js"></script> |
| <link rel="stylesheet" href="lib/reset.css" /> |
| </head> |
| <body> |
| <style> |
| </style> |
| |
| |
| <div id="Legacy_compat_test"></div> |
| <div id="insideFill_Stroke_auto_test"></div> |
| <div id="textConfig_other_feature_test"></div> |
| <div id="insideFill_Stroke_hover_test"></div> |
| <div id="z_order_test"></div> |
| <div id="hover_style_disable"></div> |
| <div id="hover_style_remove"></div> |
| |
| |
| <!-- Utils ----------------------------------------------- --> |
| <script> |
| function createMaker(opt) { |
| opt = opt || {}; |
| var xStart = opt.xCurr || 80; |
| var xCurr = xStart; |
| var yStart = opt.yCurr || 20; |
| var yCurr = yStart; |
| var xStep = opt.xStep || 100; |
| var yStep = opt.yStep || 65; |
| var colCount = 0; |
| var yMax = 0; |
| var maxCol = opt.maxCol || Infinity; |
| var children = []; |
| |
| function createRectShape(width, height) { |
| width = width || 20; |
| height = height || 30; |
| return {x: -width / 2, y: 0, width: width, height: height}; |
| } |
| |
| function makeGraphic(text, creators) { |
| var y = yCurr; |
| children.push({ |
| type: 'text', x: xCurr, y: y, |
| style: {text: text, fill: '#900', align: 'center', fontSize: 10} |
| }); |
| y += yStep; |
| for (var i = 0; i < creators.length; i++) { |
| children.push(creators[i](xCurr, y)); |
| y += yStep; |
| } |
| xCurr += xStep; |
| |
| yMax = Math.max(y, yMax); |
| |
| colCount++; |
| if (colCount >= maxCol) { |
| colCount = 0; |
| xCurr = xStart; |
| yCurr = yMax + yStep * 0.7; |
| } |
| } |
| |
| return { |
| makeGraphic: makeGraphic, |
| createRectShape: createRectShape, |
| children: children |
| }; |
| } |
| |
| // opt: {globalColor, backgroundColor} |
| function createOption(renderItem, opt) { |
| return { |
| animation: false, |
| backgroundColor: opt && opt.backgroundColor, |
| color: opt && opt.globalColor, |
| xAxis: {axisLine: {lineStyle: {color: 'rgba(0,0,0,0.2)'}}, axisLabel: {show: false}, splitLine: {show: false}}, |
| yAxis: {axisLine: {lineStyle: {color: 'rgba(0,0,0,0.2)'}}, axisLabel: {show: false}, splitLine: {show: false}}, |
| grid: {left: 30}, |
| series: { |
| type: 'custom', |
| renderItem: renderItem, |
| data: [[1, 1]] |
| } |
| }; |
| } |
| </script> |
| <!-- --------------------------------------------------- --> |
| |
| |
| |
| |
| |
| |
| <script> |
| require(['echarts'], function (echarts) { |
| |
| function renderItem(params, api) { |
| var maker = createMaker({xStep: 120, yStep: 60, maxCol: 5}); |
| var makeGraphic = maker.makeGraphic; |
| var createRectShape = maker.createRectShape; |
| |
| makeGraphic([ |
| 'normal: green rect', 'inside orange' |
| ].join('\n'), [ |
| function (x, y) { |
| return { |
| type: 'rect', position: [x, y], shape: createRectShape(), |
| style: { |
| // textPosition not set but by default 'inside' |
| text: 'legacy1', fill: 'green', textFill: 'orange' |
| } |
| }; |
| }, |
| function (x, y) { |
| return { |
| type: 'rect', x: x, y: y, shape: createRectShape(), |
| style: {fill: 'green'}, |
| textContent: {style: {text: 'ec5_api', fill: 'orange'}}, |
| textConfig: {position: 'inside'} |
| }; |
| } |
| ]); |
| |
| makeGraphic([ |
| 'normal: green rect', 'inside orange', 'text is number 0', 'should be displayed' |
| ].join('\n'), [ |
| function (x, y) { |
| return { |
| type: 'rect', position: [x, y], shape: createRectShape(), |
| style: { |
| // text is number 0, can be displayed |
| text: 0, fill: 'green', textFill: 'orange' |
| } |
| }; |
| }, |
| function (x, y) { |
| return { |
| type: 'rect', x: x, y: y, shape: createRectShape(), |
| style: {fill: 'green'}, |
| textContent: {style: {text: 0, fill: 'orange'}}, |
| textConfig: {position: 'inside'} |
| }; |
| } |
| ]); |
| |
| makeGraphic([ |
| 'normal: green rect', 'inside white/bordered', 'hover: red rect', 'inside white/bordered' |
| ].join('\n'), [ |
| function (x, y) { |
| return { |
| type: 'rect', position: [x, y], shape: createRectShape(), |
| style: api.style({text: 'legacy0'}), |
| styleEmphasis: {fill: 'red'} |
| }; |
| }, |
| function (x, y) { |
| return { |
| type: 'rect', position: [x, y], shape: createRectShape(), |
| style: { |
| text: 'legacy1', fill: 'green', textPosition: 'inside', |
| textFill: '#fff', textStroke: 'green', textStrokeWidth: 2 |
| }, |
| styleEmphasis: {fill: 'red'} |
| }; |
| }, |
| function (x, y) { |
| return { |
| type: 'rect', x: x, y: y, shape: createRectShape(), |
| style: {fill: 'green'}, |
| textContent: {style: {text: 'ec5_api'}}, |
| textConfig: {position: 'inside'}, |
| emphasis: {style: {fill: 'red'}} |
| }; |
| } |
| ]); |
| |
| makeGraphic([ |
| 'normal: green rect', 'bottom green', 'hover: red rect', 'bottom green' |
| ].join('\n'), [ |
| function (x, y) { |
| return { |
| type: 'rect', position: [x, y], shape: createRectShape(), |
| style: api.style({text: 'legacy0', textPosition: 'bottom'}), |
| styleEmphasis: {fill: 'red'} |
| }; |
| }, |
| function (x, y) { |
| return { |
| type: 'rect', x: x, y: y, shape: createRectShape(), |
| style: {fill: 'green'}, |
| textContent: {style: {text: 'ec5_api'}}, |
| textConfig: {position: 'bottom', outsideFill: 'green'}, |
| emphasis: {style: {fill: 'red'}} |
| }; |
| } |
| ]); |
| |
| makeGraphic([ |
| 'green rect', 'normal: inside white/bordered', 'hover: inside red' |
| ].join('\n'), [ |
| function (x, y) { |
| return { |
| type: 'rect', position: [x, y], shape: createRectShape(), |
| style: api.style({text: 'legacy0'}), |
| styleEmphasis: {textFill: 'red'} |
| }; |
| }, |
| function (x, y) { |
| return { |
| type: 'rect', position: [x, y], shape: createRectShape(), |
| style: { |
| text: 'legacy1', fill: 'green', textPosition: 'inside', |
| textFill: '#fff', textStroke: 'green', textStrokeWidth: 2 |
| }, |
| styleEmphasis: {textFill: 'red'} |
| }; |
| }, |
| function (x, y) { |
| return { |
| type: 'rect', x: x, y: y, shape: createRectShape(), |
| style: {fill: 'green'}, |
| textContent: { |
| style: {text: 'ec5_api'}, |
| emphasis: {style: {fill: 'red', stroke: 'green', lineWidth: 2}} |
| }, |
| textConfig: {position: 'inside'} |
| }; |
| } |
| ]); |
| |
| makeGraphic([ |
| 'green rect', 'normal: bottom red', 'hover: bottom blue' |
| ].join('\n'), [ |
| function (x, y) { |
| return { |
| type: 'rect', position: [x, y], shape: createRectShape(), |
| style: api.style({text: 'legacy0', textPosition: 'bottom', textFill: 'red'}), |
| styleEmphasis: {textFill: 'blue'} |
| }; |
| }, |
| function (x, y) { |
| return { |
| type: 'rect', x: x, y: y, shape: createRectShape(), |
| style: {fill: 'green'}, |
| textContent: { |
| style: {text: 'ec5_api', fill: 'red'}, |
| emphasis: {style: {fill: 'blue'}} |
| }, |
| textConfig: {position: 'bottom'} |
| }; |
| } |
| ]); |
| |
| makeGraphic(['green rect', 'normal: inside white/borded', 'hover: bottom'].join('\n'), [ |
| function (x, y) { |
| return { |
| type: 'rect', position: [x, y], shape: createRectShape(), |
| style: api.style({text: 'legacy0'}), |
| // Hover not compat to ec4 (to complicated) |
| styleEmphasis: {textPosition: 'bottom'} |
| }; |
| } |
| ]); |
| |
| makeGraphic(['green rect', 'normal: inside red', 'hover: bottom red'].join('\n'), [ |
| function (x, y) { |
| return { |
| type: 'rect', position: [x, y], shape: createRectShape(), |
| style: api.style({text: 'legacy0', textFill: 'red'}), |
| styleEmphasis: {textPosition: 'bottom'} |
| }; |
| } |
| ]); |
| |
| makeGraphic(['green rect', 'normal: inside white', 'hover: bottom red'].join('\n'), [ |
| function (x, y) { |
| return { |
| type: 'rect', position: [x, y], shape: createRectShape(), |
| style: api.style({text: 'legacy0', textFill: 'white'}), |
| styleEmphasis: {textFill: 'red', textPosition: 'bottom'} |
| }; |
| } |
| ]); |
| |
| makeGraphic(['green rect', 'normal: inside white/bordered', 'hover: auto lift'].join('\n'), [ |
| function (x, y) { |
| return { |
| type: 'rect', position: [x, y], shape: createRectShape(), |
| style: api.style({text: 'legacy0'}) |
| }; |
| }, |
| function (x, y) { |
| return { |
| type: 'rect', x: x, y: y, shape: createRectShape(), |
| style: {fill: 'green'}, |
| textContent: {style: {text: 'ec5_api'}}, |
| textConfig: {position: 'inside'} |
| }; |
| } |
| ]); |
| |
| makeGraphic(['green rect', 'normal: bottom green', 'hover: auto lift'].join('\n'), [ |
| function (x, y) { |
| return { |
| type: 'rect', position: [x, y], shape: createRectShape(), |
| style: api.style({text: 'legacy0', textPosition: 'bottom'}) |
| }; |
| }, |
| function (x, y) { |
| return { |
| type: 'rect', x: x, y: y, shape: createRectShape(), |
| style: {fill: 'green'}, |
| textContent: {style: {text: 'ec5_api', fill: 'green'}}, |
| textConfig: {position: 'bottom'} |
| }; |
| } |
| ]); |
| |
| return { |
| type: 'group', |
| children: maker.children |
| }; |
| } |
| |
| var chart = testHelper.create(echarts, 'Legacy_compat_test', { |
| title: [ |
| 'Legacy compat test', |
| 'Each column rects are the same effect implemented by', |
| 'legacy API and corresponding new API.', |
| 'So **each column** must be **the same result**', |
| '(except text string and some ec5 enhancement).', |
| '**Hover** also needs to be tested' |
| ], |
| height: 550, |
| option: createOption(renderItem, {globalColor: ['green']}) |
| }); |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <script> |
| require(['echarts'], function (echarts) { |
| function renderItem() { |
| var maker = createMaker({maxCol: 5}); |
| var makeGraphic = maker.makeGraphic; |
| var createRectShape = maker.createRectShape; |
| |
| // opt for example: |
| // opt.type |
| // opt.shape |
| // opt.textConfig: {}, |
| // opt.textContent: {}, if rich: textContent.style: {rich: {i: xxx}} |
| // opt.emphasis: {} |
| // opt.extraTitle: string[] |
| function makeTest(opt) { |
| var isRich = opt.textContent.style.rich; |
| var type = opt.type || 'rect'; |
| var shape = opt.shape || createRectShape(40, 120); |
| var title = ['green rect', (isRich ? 'rich text' : 'plain text')]; |
| opt.extraTitle && (title = title.concat(opt.extraTitle)); |
| makeGraphic(title.join('\n'), [ |
| function (x, y) { |
| var result = { |
| type: type, x: x, y: y, shape: shape, style: {fill: 'green'}, |
| textConfig: opt.textConfig, |
| textContent: opt.textContent |
| } |
| if (opt.emphasis) { |
| result.emphasis = opt.emphasis; |
| } |
| return result; |
| } |
| ]); |
| } |
| |
| makeTest({ |
| textConfig: {position: 'insideTop', rotation: -0.5 * Math.PI}, |
| textContent: {style: { |
| text: '90 rotated text align with:\nv: top h: middle\ndefault distance', |
| align: 'left', verticalAlign: 'middle' |
| }} |
| }); |
| |
| makeTest({ |
| textConfig: {position: 'insideTop', rotation: -0.5 * Math.PI, distance: 0}, |
| textContent: {style: { |
| text: '90 rotated text align with:\n v: top h: middle\nno distance', |
| align: 'left', verticalAlign: 'middle' |
| }} |
| }); |
| |
| makeTest({ |
| textConfig: {position: 'insideTop', rotation: -0.5 * Math.PI, distance: 0, offset: [0, -25]}, |
| textContent: {style: { |
| text: '90 rotated text outside right rect\nalign top', |
| fill: '#700', |
| align: 'left', verticalAlign: 'bottom' |
| }} |
| }); |
| |
| makeTest({ |
| textConfig: {position: 'insideTop', rotation: -0.5 * Math.PI}, |
| textContent: {style: { |
| text: '90 rotated text align with:\n{i|v: top h: middle}\n{a|align right}', |
| align: 'left', verticalAlign: 'middle', |
| rich: { |
| i: {fontSize: 20, fill: 'orange'}, |
| a: {align: 'right'} |
| } |
| }} |
| }); |
| |
| makeTest({ |
| extraTitle: ['emphasis:\nalign/verticalAlign rollback'], |
| textConfig: {position: 'left'}, |
| textContent: { |
| style: { |
| text: '--------\nalign\nright\n----', |
| fill: '#700' |
| } |
| }, |
| emphasis: { |
| textConfig: {position: null} |
| } |
| }); |
| |
| makeTest({ |
| type: 'circle', |
| shape: {cx: 0, cy: 20, r: 30}, |
| textConfig: { |
| position: 'right', |
| }, |
| textContent: { |
| rotation: -0.3 * Math.PI, |
| originX: -35, |
| style: { |
| text: 'Rotate, outside, origin is center', |
| fontSize: 20, |
| fill: '#700', |
| align: 'left', |
| verticalAlign: 'middle' |
| } |
| } |
| }); |
| |
| makeTest({ |
| type: 'circle', |
| shape: {cx: 0, cy: 20, r: 30}, |
| textConfig: { |
| position: 'inside', offset: [35, 0] |
| }, |
| textContent: { |
| rotation: -0.3 * Math.PI, |
| style: { |
| text: 'Rotate, outside, origin is center', |
| fontSize: 20, |
| fill: '#700', |
| align: 'left', |
| verticalAlign: 'middle' |
| } |
| } |
| }); |
| |
| return { |
| type: 'group', |
| children: maker.children |
| }; |
| } |
| |
| var chart = testHelper.create(echarts, 'textConfig_other_feature_test', { |
| title: [ |
| 'textConfig other feature test' |
| ], |
| option: createOption(renderItem), |
| // recordCanvas: true, |
| height: 800 |
| }); |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <script> |
| require(['echarts'], function (echarts) { |
| function renderItem() { |
| var maker = createMaker({maxCol: 6}); |
| var makeGraphic = maker.makeGraphic; |
| var createRectShape = maker.createRectShape; |
| |
| // opt for example: |
| // opt.textConfig: {}, |
| // opt.textContentStyle: {}, if rich: textContentStyle: {rich: {i: xxx}} |
| // opt.expect: [ {fill: 'white', stroke: 'green'}, {fill: 'white', stroke: 'green'} ] |
| function makeTest(opt) { |
| var expect0 = opt.expect[0]; |
| var expect1 = opt.expect[1]; |
| var isRich = opt.textContentStyle.rich; |
| makeGraphic(['green rect', (isRich ? 'rich text' : 'plain text')].join('\n'), [ |
| function (x, y) { |
| var text = [ |
| isRich ? '{i|inside}' : 'inside', |
| 'fill: ' + expect0.fill, |
| 'stroke: ' + expect0.stroke |
| ].join('\n'); |
| return { |
| type: 'rect', x: x, y: y, shape: createRectShape(), style: {fill: 'green'}, |
| textConfig: echarts.util.extend({position: 'inside'}, opt.textConfig), |
| textContent: { |
| style: echarts.util.extend({text: text}, opt.textContentStyle) |
| } |
| } |
| }, |
| function (x, y) { |
| var text = [ |
| isRich ? '{i|bottom}' : 'bottom', |
| 'fill: ' + expect1.fill, |
| 'stroke: ' + expect1.stroke |
| ].join('\n'); |
| return { |
| type: 'rect', x: x, y: y, shape: createRectShape(), style: {fill: 'green'}, |
| textConfig: echarts.util.extend({position: 'bottom'}, opt.textConfig), |
| textContent: { |
| style: echarts.util.extend({text: text}, opt.textContentStyle) |
| } |
| } |
| } |
| ]); |
| } |
| |
| makeTest({ |
| textConfig: {}, |
| textContentStyle: {}, |
| expect: [ |
| {fill: 'white', stroke: 'green'}, |
| {fill: 'black', stroke: 'none'} |
| ] |
| }); |
| |
| makeTest({ |
| textConfig: {}, |
| textContentStyle: {backgroundColor: '#aaa'}, |
| expect: [ |
| {fill: 'white', stroke: 'none'}, |
| {fill: 'black', stroke: 'none'} |
| ] |
| }); |
| |
| makeTest({ |
| textConfig: {}, |
| textContentStyle: {borderColor: '#aaa', borderWidth: 2, padding: 5}, |
| expect: [ |
| {fill: 'white', stroke: 'none'}, |
| {fill: 'black', stroke: 'none'} |
| ] |
| }); |
| |
| makeTest({ |
| textConfig: {}, |
| textContentStyle: {rich: {i: {fontSize: 30}}}, |
| expect: [ |
| {fill: 'white', stroke: 'green'}, |
| {fill: 'black', stroke: 'none'} |
| ] |
| }); |
| |
| makeTest({ |
| textConfig: {}, |
| textContentStyle: {rich: {i: {backgroundColor: '#aaa'}}}, |
| expect: [ |
| {fill: 'white', stroke: 'none'}, |
| {fill: 'black', stroke: 'none'} |
| ] |
| }); |
| |
| makeTest({ |
| textConfig: {}, |
| textContentStyle: {rich: {i: {borderColor: '#aaa', borderWidth: 2, fontSize: 20}}}, |
| expect: [ |
| {fill: 'white', stroke: 'none'}, |
| {fill: 'black', stroke: 'green'} |
| ] |
| }); |
| |
| makeTest({ |
| textConfig: {}, |
| textContentStyle: {fill: 'orange'}, |
| expect: [ |
| {fill: 'orange', stroke: 'none'}, |
| {fill: 'orange', stroke: 'none'} |
| ] |
| }); |
| |
| makeTest({ |
| textConfig: {}, |
| textContentStyle: {fill: 'orange', stroke: 'blue', lineWidth: 2}, |
| expect: [ |
| {fill: 'orange', stroke: 'blue'}, |
| {fill: 'orange', stroke: 'blue'} |
| ] |
| }); |
| |
| makeTest({ |
| textConfig: {}, |
| textContentStyle: {stroke: 'blue', lineWidth: 2}, |
| expect: [ |
| {fill: 'white', stroke: 'blue'}, |
| {fill: 'black', stroke: 'blue'} |
| ] |
| }); |
| |
| makeTest({ |
| textConfig: {insideFill: 'yellow'}, |
| textContentStyle: {}, |
| expect: [ |
| {fill: 'yellow', stroke: 'green'}, |
| {fill: 'black', stroke: 'none'} |
| ] |
| }); |
| |
| makeTest({ |
| textConfig: {insideFill: 'yellow'}, |
| textContentStyle: {fill: 'orange'}, |
| expect: [ |
| {fill: 'orange', stroke: 'none'}, |
| {fill: 'orange', stroke: 'none'} |
| ] |
| }); |
| |
| makeTest({ |
| textConfig: {insideFill: 'yellow', insideStroke: 'blue'}, |
| textContentStyle: {}, |
| expect: [ |
| {fill: 'yellow', stroke: 'blue'}, |
| {fill: 'black', stroke: 'none'} |
| ] |
| }); |
| |
| makeTest({ |
| textConfig: {insideFill: 'yellow', insideStroke: 'blue'}, |
| textContentStyle: {fill: 'pink'}, |
| expect: [ |
| {fill: 'pink', stroke: 'blue'}, |
| {fill: 'pink', stroke: 'none'} |
| ] |
| }); |
| |
| makeTest({ |
| textConfig: {insideStroke: 'blue'}, |
| textContentStyle: {}, |
| expect: [ |
| {fill: 'white', stroke: 'blue'}, |
| {fill: 'black', stroke: 'none'} |
| ] |
| }); |
| |
| makeTest({ |
| textConfig: {outsideFill: 'blue', outsideStroke: 'red'}, |
| textContentStyle: {}, |
| expect: [ |
| {fill: 'white', stroke: 'green'}, |
| {fill: 'blue', stroke: 'red'} |
| ] |
| }); |
| makeTest({ |
| textConfig: {outsideFill: 'blue', outsideStroke: 'red'}, |
| textContentStyle: {fill: 'pink'}, |
| expect: [ |
| {fill: 'pink', stroke: 'none'}, |
| {fill: 'pink', stroke: 'red'} |
| ] |
| }); |
| |
| return { |
| type: 'group', |
| children: maker.children |
| }; |
| } |
| |
| var chart = testHelper.create(echarts, 'insideFill_Stroke_auto_test', { |
| title: [ |
| 'insideFill/insideStroke outsideFill/outsideStroke auto rule test' |
| ], |
| option: createOption(renderItem, {backgroundColor: '#ddd'}), |
| height: 800 |
| }); |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <script> |
| require(['echarts'], function (echarts) { |
| |
| function renderItem(params, api) { |
| var maker = createMaker({xCurr: 150, xStep: 150, yStep: 90}); |
| var makeGraphic = maker.makeGraphic; |
| var createRectShape = maker.createRectShape; |
| |
| makeGraphic(['insideFill/Stroke not set', 'normal: white/bordered'].join('\n'), [ |
| function (x, y) { |
| return { |
| type: 'rect', x: x, y: y, shape: createRectShape(), |
| style: {fill: 'green'}, |
| textContent: { |
| type: 'text', silent: true, style: { |
| text: 'if hover,\ntop black' |
| } |
| }, |
| textConfig: {position: 'inside'}, |
| emphasis: { |
| textConfig: {position: 'top'} |
| } |
| }; |
| }, |
| function (x, y) { |
| return { |
| type: 'rect', x: x, y: y, shape: createRectShape(), |
| style: {fill: 'green'}, |
| textContent: {type: 'text', silent: true, style: {text: 'if hover,\nright green'}}, |
| textConfig: { |
| position: 'inside', outsideFill: 'green' |
| }, |
| emphasis: { |
| textConfig: {position: 'right'} |
| } |
| }; |
| }, |
| function (x, y) { |
| return { |
| type: 'rect', x: x, y: y, shape: createRectShape(), |
| style: {fill: 'green'}, |
| textContent: { |
| silent: true, style: {text: 'if hover,\nbottom\nlarge bordered red'}, |
| emphasis: {style: {fontSize: 20}} |
| }, |
| textConfig: { |
| position: 'inside', outsideFill: 'green', outsideStroke: 'red' |
| }, |
| emphasis: { |
| textConfig: {position: 'bottom'} |
| } |
| }; |
| }, |
| function (x, y) { |
| return { |
| type: 'rect', x: x, y: y, shape: createRectShape(), |
| style: {fill: 'green'}, |
| textContent: { |
| silent: true, |
| style: { |
| text: 'rich text\nif hover,\nbottom black\n{r|normal orange\nhover red}', |
| rich: {r: {fontSize: 16, fill: 'orange'}}, |
| }, |
| emphasis: { |
| style: { |
| rich: {r: {fill: 'red'}} |
| } |
| } |
| }, |
| textConfig: {position: 'inside'}, |
| emphasis: { |
| textConfig: {position: 'bottom'} |
| } |
| }; |
| } |
| ]); |
| |
| makeGraphic(['green rect'].join('\n'), [ |
| function (x, y) { |
| return { |
| type: 'rect', x: x, y: y, shape: createRectShape(), |
| style: {fill: 'green'}, |
| textContent: {silent: true, style: { |
| text: 'normal:\ninside yellow/bordered\nhover:\ntop black' |
| }}, |
| textConfig: {position: 'inside', insideFill: 'yellow'}, |
| emphasis: { |
| textConfig: {position: 'top'} |
| } |
| }; |
| }, |
| function (x, y) { |
| return { |
| type: 'rect', x: x, y: y, shape: createRectShape(), |
| style: {fill: 'green'}, |
| textContent: { |
| silent: true, |
| style: {text: 'normal:\ninside white/bordered\nhover:\nright green'} |
| }, |
| textConfig: { |
| position: 'inside', outsideFill: 'green' |
| }, |
| emphasis: { |
| textConfig: {position: 'right'} |
| } |
| }; |
| } |
| ]); |
| |
| return { |
| type: 'group', |
| children: maker.children |
| }; |
| } |
| |
| var chart = testHelper.create(echarts, 'insideFill_Stroke_hover_test', { |
| title: [ |
| 'insideFill/Stroke & hover test. Please **hover any of them**' |
| ], |
| option: createOption(renderItem), |
| height: 600 |
| }); |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <script> |
| require(['echarts'], function (echarts) { |
| |
| function renderItem(params, api) { |
| return { |
| type: 'group', |
| children: [{ |
| type: 'circle', |
| shape: {cx: 100, cy: 100, r: 50}, |
| style: {fill: 'red'}, |
| z2: 100, |
| // textContent do not set z2, but auto follow the circle z2. |
| textContent: { |
| type: 'text', |
| style: { |
| text: 'normal: {red|red} is over {green|green}.\nHover me', |
| // stroke: '#fff', lineWidth: 2, |
| rich: { |
| red: {fill: 'red', stroke: '#fff', lineWidth: 2, fontSize: 20}, |
| green: {fill: 'green', stroke: '#fff', lineWidth: 2, fontSize: 20} |
| }, |
| }, |
| silent: true, |
| emphasis: { |
| style: { |
| text: 'emphasis: {green|green} over {red|red}\nText {below|below} green', |
| rich: { |
| below: {fontSize: 40} |
| } |
| } |
| } |
| }, |
| textConfig: { |
| position: 'inside' |
| } |
| }, { |
| type: 'circle', |
| shape: {cx: 100, cy: 140, r: 40}, |
| style: {fill: 'green'}, |
| // textContent do not set z2, but auto follow the circle z2. |
| textContent: { |
| type: 'text', |
| style: { |
| text: 'text should be always\n{over|over} all circles.', |
| rich: {over: {fontSize: 30}} |
| }, |
| silent: true |
| }, |
| textConfig: { |
| position: 'inside' |
| }, |
| z2: 80, |
| emphasis: { |
| z2: 110 |
| } |
| |
| }, { |
| type: 'circle', |
| shape: {cx: 300, cy: 100, r: 50}, |
| style: {fill: 'red'}, |
| z2: 100, |
| // textContent do not set z2, but auto follow the circle z2. |
| textContent: { |
| type: 'text', |
| style: { |
| text: 'normal: {red|red} is over {green|green}.\nHover me', |
| // stroke: '#fff', lineWidth: 2, |
| rich: { |
| red: {fill: 'red', stroke: '#fff', lineWidth: 2, fontSize: 20}, |
| green: {fill: 'green', stroke: '#fff', lineWidth: 2, fontSize: 20} |
| }, |
| }, |
| silent: true, |
| emphasis: { |
| style: { |
| text: 'emphasis: {red|red} over {green|green}\nText {below|over} green', |
| rich: { |
| below: {fontSize: 40} |
| } |
| } |
| } |
| }, |
| textConfig: { |
| position: 'inside' |
| } |
| }, { |
| type: 'circle', |
| shape: {cx: 300, cy: 140, r: 40}, |
| style: {fill: 'green'}, |
| // textContent do not set z2, but auto follow the circle z2. |
| textContent: { |
| type: 'text', |
| style: { |
| text: 'text should be always\n{over|over} all circles.', |
| rich: {over: {fontSize: 30}} |
| }, |
| silent: true, |
| emphasis: { |
| z2: 110 |
| } |
| }, |
| textConfig: { |
| position: 'inside' |
| }, |
| z2: 80 |
| |
| }] |
| }; |
| } |
| |
| var chart = testHelper.create(echarts, 'z_order_test', { |
| title: [ |
| 'z order test. Please **hover any of them**.' |
| ], |
| option: createOption(renderItem) |
| }); |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| |
| |
| <script> |
| require(['echarts'], function (echarts) { |
| |
| var option = { |
| xAxis: {scale: true, min: 0.75, max: 3}, |
| yAxis: {}, |
| series: [{ |
| type: 'custom', |
| renderItem: function (params, api) { |
| var shape0 = {x: 0, y: 30, width: 100, height: 50}; |
| var shape1 = {x: 30, y: 50, width: 100, height: 50}; |
| var shape2 = {x: 60, y: 70, width: 100, height: 50}; |
| var position = api.coord([api.value(0), api.value(1)]); |
| var name = api.value(2); |
| |
| var map = { |
| legacy: { |
| type: 'group', |
| x: position[0], |
| y: position[1], |
| children: [{ |
| type: 'rect', |
| shape: shape0, |
| style: {fill: '#333'} |
| }, { |
| type: 'rect', |
| shape: shape1, |
| style: { |
| fill: '#555', |
| text: 'has inner text', |
| textFill: 'white', |
| textPostion: 'insideTop' |
| }, |
| styleEmphasis: {textFill: 'yellow'} |
| }, { |
| type: 'rect', |
| shape: shape2, |
| style: {fill: '#500'}, |
| styleEmphasis: false |
| }] |
| }, |
| ec5: { |
| type: 'group', |
| x: position[0], |
| y: position[1], |
| children: [{ |
| type: 'rect', |
| shape: shape0, |
| style: {fill: '#333'}, |
| }, { |
| type: 'rect', |
| shape: shape1, |
| style: {fill: '#555', text: 'has inner text'}, |
| textContent: { |
| style: {fill: 'white'}, |
| emphasis: {style: {fill: 'yellow'}} |
| }, |
| textConfig: {position: 'insideTop'} |
| }, { |
| type: 'rect', |
| shape: shape2, |
| style: {fill: '#500'}, |
| emphasis: { |
| // set false to disable lift color and z2. |
| style: false |
| } |
| }] |
| } |
| }; |
| |
| return map[name]; |
| }, |
| data: [[1, 1, 'legacy'], [2, 1, 'ec5']] |
| }] |
| }; |
| |
| var chart = testHelper.create(echarts, 'hover_style_disable', { |
| title: [ |
| 'Hover style disable: hover each group of elements,', |
| 'all of the elements should lift color and z2 **except the red rect**' |
| ], |
| height: 300, |
| option: option |
| }); |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| |
| |
| <script> |
| require(['echarts'], function (echarts) { |
| |
| var option = { |
| xAxis: {scale: true, min: 0.75, max: 3}, |
| yAxis: {}, |
| series: [{ |
| type: 'custom', |
| renderItem: function (params, api) { |
| var shape0 = {x: 00, y: 30, width: 100, height: 50}; |
| var shape1 = {x: 30, y: 50, width: 100, height: 50}; |
| var shape2 = {x: 60, y: 70, width: 100, height: 50}; |
| var position = api.coord([api.value(0), api.value(1)]); |
| var name = api.value(2); |
| var useHover = !!api.value(3); |
| var map = { |
| legacy: { |
| type: 'group', |
| x: position[0], |
| y: position[1], |
| children: [{ |
| type: 'rect', |
| shape: shape0, |
| style: api.style({fill: '#222', text: 'legacy'}), |
| styleEmphasis: useHover ? {fill: 'red', textFill: 'yellow'} : false |
| }] |
| }, |
| ec5: { |
| type: 'group', |
| x: position[0], |
| y: position[1], |
| children: [{ |
| type: 'rect', |
| shape: shape0, |
| style: {fill: '#222'}, |
| textContent: { |
| style: {text: 'ec5_api'}, |
| emphasis: {style: useHover ? {fill: 'yellow'} : false} |
| }, |
| textConfig: {position: 'inside'}, |
| emphasis: {style: useHover ? {fill: 'red'} : false} |
| }] |
| } |
| }; |
| |
| return map[name]; |
| }, |
| data: [[1, 1, 'legacy', 1], [2, 1, 'ec5', 1]] |
| }] |
| }; |
| |
| var chart = testHelper.create(echarts, 'hover_style_remove', { |
| title: [ |
| 'Hover style remove test: ', |
| '(1) Hover each: become **red rect, yellow text**', |
| '(2) Click "disable hover style", elements should more to right a bit.', |
| '(3) Hover each again: should no hover style', |
| '(4) Click "enable hover style", elements should more to left a bit.', |
| '(5) Check whether resume to (1)', |
| ], |
| height: 300, |
| option: option, |
| buttons: [{ |
| text: 'disable hover style', |
| onclick: function () { |
| chart.setOption({ |
| xAxis: {scale: true, min: 0.75, max: 7}, |
| series: { |
| type: 'custom', |
| data: [[3, 1, 'legacy', 0], [6, 1, 'ec5', 0]] |
| } |
| }) |
| } |
| }, { |
| text: 'enable hover style', |
| onclick: function () { |
| chart.setOption({ |
| xAxis: {scale: true, min: 0.75, max: 3}, |
| series: { |
| type: 'custom', |
| data: [[1, 1, 'legacy', 1], [2, 1, 'ec5', 1]] |
| } |
| }) |
| } |
| }] |
| }); |
| }); |
| </script> |
| |
| |
| |
| |
| </body> |
| </html> |
| |