Skip to content

Commit

Permalink
test: add test for tooltip.appendTo
Browse files Browse the repository at this point in the history
  • Loading branch information
危翰 committed Apr 3, 2023
1 parent a1b9d0f commit b624276
Show file tree
Hide file tree
Showing 10 changed files with 529 additions and 47 deletions.
49 changes: 32 additions & 17 deletions dist/echarts.common.js
Expand Up @@ -15226,13 +15226,14 @@
var labelFetcher = opt.labelFetcher;
var labelDataIndex = opt.labelDataIndex;
var labelDimIndex = opt.labelDimIndex;
var labelValue = opt.labelValue;
var normalModel = stateModels.normal;
var baseText;

if (labelFetcher) {
baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), interpolatedValue != null ? {
interpolatedValue: interpolatedValue
} : null);
baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), {
interpolatedValue: retrieve2(interpolatedValue, labelValue)
});
}

if (baseText == null) {
Expand Down Expand Up @@ -28502,7 +28503,7 @@

if (ecData && ecData.dataIndex != null) {
var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);
params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {};
params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType, el) || {};
return true;
} // If element has custom eventData of components
else if (ecData.eventData) {
Expand Down Expand Up @@ -55386,15 +55387,15 @@
} // If not able to make, do not modify the input `out`.


function makeStyleCoord(out, zr, appendToBody, zrX, zrY) {
function makeStyleCoord(out, zr, container, zrX, zrY) {
var zrPainter = zr && zr.painter;

if (appendToBody) {
if (container) {
var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();

if (zrViewportRoot) {
// Some APPs might use scale on body, so we support CSS transform here.
transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);
transformLocalCoord(out, zrViewportRoot, container, zrX, zrY);
}
} else {
out[0] = zrX;
Expand All @@ -55417,7 +55418,8 @@
var TooltipHTMLContent =
/** @class */
function () {
function TooltipHTMLContent(container, api, opt) {
function TooltipHTMLContent(api, opt) {
this._container = null;
this._show = false;
this._styleCoord = [0, 0, 0, 0];
this._enterable = true;
Expand All @@ -55434,15 +55436,27 @@
el.domBelongToZr = true;
this.el = el;
var zr = this._zr = api.getZr();
var appendToBody = this._appendToBody = opt && opt.appendToBody;
makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);
var container = null;

if (appendToBody) {
document.body.appendChild(el);
} else {
if (opt && opt.appendTo) {
if (typeof opt.appendTo === 'string') {
container = document.querySelector(opt.appendTo);
} else if (typeof opt.appendTo === 'function') {
container = opt.appendTo(api.getDom());
} else if (opt.appendTo instanceof HTMLElement) {
container = opt.appendTo;
}
}

makeStyleCoord(this._styleCoord, zr, container, api.getWidth() / 2, api.getHeight() / 2);

if (container) {
container.appendChild(el);
} else {
api.getDom().appendChild(el);
}

this._api = api;
this._container = container; // FIXME
// Is it needed to trigger zr event manually if
// the browser do not support `pointer-events: none`.
Expand Down Expand Up @@ -55495,7 +55509,8 @@
TooltipHTMLContent.prototype.update = function (tooltipModel) {
// FIXME
// Move this logic to ec main?
var container = this._container;
var container = this._api.getDom();

var position = getComputedStyle(container, 'position');
var domStyle = container.style;

Expand Down Expand Up @@ -55590,7 +55605,7 @@

TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {
var styleCoord = this._styleCoord;
makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);
makeStyleCoord(styleCoord, this._zr, this._container, zrX, zrY);

if (styleCoord[0] != null && styleCoord[1] != null) {
var style_1 = this.el.style;
Expand Down Expand Up @@ -55871,8 +55886,8 @@

var tooltipModel = ecModel.getComponent('tooltip');
var renderMode = this._renderMode = getTooltipRenderMode(tooltipModel.get('renderMode'));
this._tooltipContent = renderMode === 'richText' ? new TooltipRichContent(api) : new TooltipHTMLContent(api.getDom(), api, {
appendToBody: tooltipModel.get('appendToBody', true)
this._tooltipContent = renderMode === 'richText' ? new TooltipRichContent(api) : new TooltipHTMLContent(api, {
appendTo: tooltipModel.get('appendToBody', true) ? 'body' : tooltipModel.get('appendTo', true)
});
};

Expand Down
2 changes: 1 addition & 1 deletion dist/echarts.common.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions dist/echarts.common.min.js

Large diffs are not rendered by default.

139 changes: 120 additions & 19 deletions dist/echarts.js
Expand Up @@ -15364,13 +15364,14 @@
var labelFetcher = opt.labelFetcher;
var labelDataIndex = opt.labelDataIndex;
var labelDimIndex = opt.labelDimIndex;
var labelValue = opt.labelValue;
var normalModel = stateModels.normal;
var baseText;

if (labelFetcher) {
baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), interpolatedValue != null ? {
interpolatedValue: interpolatedValue
} : null);
baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), {
interpolatedValue: retrieve2(interpolatedValue, labelValue)
});
}

if (baseText == null) {
Expand Down Expand Up @@ -28858,7 +28859,7 @@

if (ecData && ecData.dataIndex != null) {
var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);
params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {};
params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType, el) || {};
return true;
} // If element has custom eventData of components
else if (ecData.eventData) {
Expand Down Expand Up @@ -61482,6 +61483,53 @@
return dataIndices;
};

GraphNode.prototype.getTrajectoryDataIndices = function () {
var connectedEdgesMap = createHashMap();
var connectedNodesMap = createHashMap();

for (var i = 0; i < this.edges.length; i++) {
var adjacentEdge = this.edges[i];

if (adjacentEdge.dataIndex < 0) {
continue;
}

connectedEdgesMap.set(adjacentEdge.dataIndex, true);
var sourceNodesQueue = [adjacentEdge.node1];
var targetNodesQueue = [adjacentEdge.node2];
var nodeIteratorIndex = 0;

while (nodeIteratorIndex < sourceNodesQueue.length) {
var sourceNode = sourceNodesQueue[nodeIteratorIndex];
nodeIteratorIndex++;
connectedNodesMap.set(sourceNode.dataIndex, true);

for (var j = 0; j < sourceNode.inEdges.length; j++) {
connectedEdgesMap.set(sourceNode.inEdges[j].dataIndex, true);
sourceNodesQueue.push(sourceNode.inEdges[j].node1);
}
}

nodeIteratorIndex = 0;

while (nodeIteratorIndex < targetNodesQueue.length) {
var targetNode = targetNodesQueue[nodeIteratorIndex];
nodeIteratorIndex++;
connectedNodesMap.set(targetNode.dataIndex, true);

for (var j = 0; j < targetNode.outEdges.length; j++) {
connectedEdgesMap.set(targetNode.outEdges[j].dataIndex, true);
targetNodesQueue.push(targetNode.outEdges[j].node2);
}
}
}

return {
edge: connectedEdgesMap.keys(),
node: connectedNodesMap.keys()
};
};

return GraphNode;
}();

Expand Down Expand Up @@ -61513,6 +61561,44 @@
};
};

GraphEdge.prototype.getTrajectoryDataIndices = function () {
var connectedEdgesMap = createHashMap();
var connectedNodesMap = createHashMap();
connectedEdgesMap.set(this.dataIndex, true);
var sourceNodes = [this.node1];
var targetNodes = [this.node2];
var nodeIteratorIndex = 0;

while (nodeIteratorIndex < sourceNodes.length) {
var sourceNode = sourceNodes[nodeIteratorIndex];
nodeIteratorIndex++;
connectedNodesMap.set(sourceNode.dataIndex, true);

for (var j = 0; j < sourceNode.inEdges.length; j++) {
connectedEdgesMap.set(sourceNode.inEdges[j].dataIndex, true);
sourceNodes.push(sourceNode.inEdges[j].node1);
}
}

nodeIteratorIndex = 0;

while (nodeIteratorIndex < targetNodes.length) {
var targetNode = targetNodes[nodeIteratorIndex];
nodeIteratorIndex++;
connectedNodesMap.set(targetNode.dataIndex, true);

for (var j = 0; j < targetNode.outEdges.length; j++) {
connectedEdgesMap.set(targetNode.outEdges[j].dataIndex, true);
targetNodes.push(targetNode.outEdges[j].node2);
}
}

return {
edge: connectedEdgesMap.keys(),
node: connectedNodesMap.keys()
};
};

return GraphEdge;
}();

Expand Down Expand Up @@ -65838,7 +65924,7 @@
group.add(curve);
edgeData.setItemGraphicEl(edge.dataIndex, curve);
var focus = emphasisModel.get('focus');
toggleHoverEmphasis(curve, focus === 'adjacency' ? edge.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'), emphasisModel.get('disabled'));
toggleHoverEmphasis(curve, focus === 'adjacency' ? edge.getAdjacentDataIndices() : focus === 'trajectory' ? edge.getTrajectoryDataIndices() : focus, emphasisModel.get('blurScope'), emphasisModel.get('disabled'));
getECData(curve).dataType = 'edge';
}); // Generate a rect for each node

Expand All @@ -65861,6 +65947,7 @@
setLabelStyle(rect, getLabelStatesModels(itemModel), {
labelFetcher: seriesModel,
labelDataIndex: node.dataIndex,
labelValue: layout.value,
defaultText: node.id
});
rect.disableLabelAnimation = true;
Expand All @@ -65871,7 +65958,7 @@
nodeData.setItemGraphicEl(node.dataIndex, rect);
getECData(rect).dataType = 'node';
var focus = emphasisModel.get('focus');
toggleHoverEmphasis(rect, focus === 'adjacency' ? node.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'), emphasisModel.get('disabled'));
toggleHoverEmphasis(rect, focus === 'adjacency' ? node.getAdjacentDataIndices() : focus === 'trajectory' ? node.getTrajectoryDataIndices() : focus, emphasisModel.get('blurScope'), emphasisModel.get('disabled'));
});
nodeData.eachItemGraphicEl(function (el, dataIndex) {
var itemModel = nodeData.getItemModel(dataIndex);
Expand Down Expand Up @@ -82459,15 +82546,15 @@
} // If not able to make, do not modify the input `out`.


function makeStyleCoord(out, zr, appendToBody, zrX, zrY) {
function makeStyleCoord(out, zr, container, zrX, zrY) {
var zrPainter = zr && zr.painter;

if (appendToBody) {
if (container) {
var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();

if (zrViewportRoot) {
// Some APPs might use scale on body, so we support CSS transform here.
transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);
transformLocalCoord(out, zrViewportRoot, container, zrX, zrY);
}
} else {
out[0] = zrX;
Expand All @@ -82490,7 +82577,8 @@
var TooltipHTMLContent =
/** @class */
function () {
function TooltipHTMLContent(container, api, opt) {
function TooltipHTMLContent(api, opt) {
this._container = null;
this._show = false;
this._styleCoord = [0, 0, 0, 0];
this._enterable = true;
Expand All @@ -82507,15 +82595,27 @@
el.domBelongToZr = true;
this.el = el;
var zr = this._zr = api.getZr();
var appendToBody = this._appendToBody = opt && opt.appendToBody;
makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);
var container = null;

if (appendToBody) {
document.body.appendChild(el);
} else {
if (opt && opt.appendTo) {
if (typeof opt.appendTo === 'string') {
container = document.querySelector(opt.appendTo);
} else if (typeof opt.appendTo === 'function') {
container = opt.appendTo(api.getDom());
} else if (opt.appendTo instanceof HTMLElement) {
container = opt.appendTo;
}
}

makeStyleCoord(this._styleCoord, zr, container, api.getWidth() / 2, api.getHeight() / 2);

if (container) {
container.appendChild(el);
} else {
api.getDom().appendChild(el);
}

this._api = api;
this._container = container; // FIXME
// Is it needed to trigger zr event manually if
// the browser do not support `pointer-events: none`.
Expand Down Expand Up @@ -82568,7 +82668,8 @@
TooltipHTMLContent.prototype.update = function (tooltipModel) {
// FIXME
// Move this logic to ec main?
var container = this._container;
var container = this._api.getDom();

var position = getComputedStyle(container, 'position');
var domStyle = container.style;

Expand Down Expand Up @@ -82663,7 +82764,7 @@

TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {
var styleCoord = this._styleCoord;
makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);
makeStyleCoord(styleCoord, this._zr, this._container, zrX, zrY);

if (styleCoord[0] != null && styleCoord[1] != null) {
var style_1 = this.el.style;
Expand Down Expand Up @@ -82944,8 +83045,8 @@

var tooltipModel = ecModel.getComponent('tooltip');
var renderMode = this._renderMode = getTooltipRenderMode(tooltipModel.get('renderMode'));
this._tooltipContent = renderMode === 'richText' ? new TooltipRichContent(api) : new TooltipHTMLContent(api.getDom(), api, {
appendToBody: tooltipModel.get('appendToBody', true)
this._tooltipContent = renderMode === 'richText' ? new TooltipRichContent(api) : new TooltipHTMLContent(api, {
appendTo: tooltipModel.get('appendToBody', true) ? 'body' : tooltipModel.get('appendTo', true)
});
};

Expand Down
2 changes: 1 addition & 1 deletion dist/echarts.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/echarts.min.js

Large diffs are not rendered by default.

9 changes: 5 additions & 4 deletions dist/echarts.simple.js
Expand Up @@ -14895,13 +14895,14 @@
var labelFetcher = opt.labelFetcher;
var labelDataIndex = opt.labelDataIndex;
var labelDimIndex = opt.labelDimIndex;
var labelValue = opt.labelValue;
var normalModel = stateModels.normal;
var baseText;

if (labelFetcher) {
baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), interpolatedValue != null ? {
interpolatedValue: interpolatedValue
} : null);
baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), {
interpolatedValue: retrieve2(interpolatedValue, labelValue)
});
}

if (baseText == null) {
Expand Down Expand Up @@ -27500,7 +27501,7 @@

if (ecData && ecData.dataIndex != null) {
var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);
params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {};
params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType, el) || {};
return true;
} // If element has custom eventData of components
else if (ecData.eventData) {
Expand Down
2 changes: 1 addition & 1 deletion dist/echarts.simple.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/echarts.simple.min.js

Large diffs are not rendered by default.

0 comments on commit b624276

Please sign in to comment.