Spaces:
Running
Running
<!-- | |
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/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> | |