* @override
(
seriesModel: TreemapSeriesModel,
ecModel: GlobalModel,
api: ExtensionAPI,
payload: TreemapZoomToNodePayload | TreemapRenderPayload | TreemapMovePayload | TreemapRootToNodePayload
)
| 168 | * @override |
| 169 | */ |
| 170 | render( |
| 171 | seriesModel: TreemapSeriesModel, |
| 172 | ecModel: GlobalModel, |
| 173 | api: ExtensionAPI, |
| 174 | payload: TreemapZoomToNodePayload | TreemapRenderPayload | TreemapMovePayload | TreemapRootToNodePayload |
| 175 | ) { |
| 176 | const models = ecModel.findComponents({ |
| 177 | mainType: 'series', subType: 'treemap', query: payload |
| 178 | }); |
| 179 | if (indexOf(models, seriesModel) < 0) { |
| 180 | return; |
| 181 | } |
| 182 | |
| 183 | this.seriesModel = seriesModel; |
| 184 | this.api = api; |
| 185 | this.ecModel = ecModel; |
| 186 | |
| 187 | const types = ['treemapZoomToNode', 'treemapRootToNode']; |
| 188 | const targetInfo = helper |
| 189 | .retrieveTargetInfo(payload, types, seriesModel); |
| 190 | const payloadType = payload && payload.type; |
| 191 | const layoutInfo = seriesModel.layoutInfo; |
| 192 | const isInit = !this._oldTree; |
| 193 | const thisStorage = this._storage; |
| 194 | |
| 195 | // Mark new root when action is treemapRootToNode. |
| 196 | const reRoot = (payloadType === 'treemapRootToNode' && targetInfo && thisStorage) |
| 197 | ? { |
| 198 | rootNodeGroup: thisStorage.nodeGroup[targetInfo.node.getRawIndex()], |
| 199 | direction: (payload as TreemapRootToNodePayload).direction |
| 200 | } |
| 201 | : null; |
| 202 | |
| 203 | const containerGroup = this._giveContainerGroup(layoutInfo); |
| 204 | const hasAnimation = seriesModel.get('animation'); |
| 205 | |
| 206 | const renderResult = this._doRender(containerGroup, seriesModel, reRoot); |
| 207 | ( |
| 208 | hasAnimation && !isInit && ( |
| 209 | !payloadType |
| 210 | || payloadType === 'treemapZoomToNode' |
| 211 | || payloadType === 'treemapRootToNode' |
| 212 | ) |
| 213 | ) |
| 214 | ? this._doAnimation(containerGroup, renderResult, seriesModel, reRoot) |
| 215 | : renderResult.renderFinally(); |
| 216 | |
| 217 | this._resetController(api); |
| 218 | |
| 219 | this._renderBreadcrumb(seriesModel, api, targetInfo); |
| 220 | } |
| 221 | |
| 222 | private _giveContainerGroup(layoutInfo: LayoutRect) { |
| 223 | let containerGroup = this._containerGroup; |
nothing calls this directly
no test coverage detected