UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

64 lines (63 loc) 2.49 kB
import { retrieve, each } from "../../../../zrender/lib/core/util.mjs"; import { SINGLE_REFERRING } from "../../util/model.mjs"; function layout(gridModel, axisModel, opt) { opt = opt || {}; var grid = gridModel.coordinateSystem; var axis = axisModel.axis; var layout2 = {}; var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0]; var rawAxisPosition = axis.position; var axisPosition = otherAxisOnZeroOf ? "onZero" : rawAxisPosition; var axisDim = axis.dim; var rect = grid.getRect(); var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height]; var idx = { left: 0, right: 1, top: 0, bottom: 1, onZero: 2 }; var axisOffset = axisModel.get("offset") || 0; var posBound = axisDim === "x" ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset]; if (otherAxisOnZeroOf) { var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0)); posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]); } layout2.position = [axisDim === "y" ? posBound[idx[axisPosition]] : rectBound[0], axisDim === "x" ? posBound[idx[axisPosition]] : rectBound[3]]; layout2.rotation = Math.PI / 2 * (axisDim === "x" ? 0 : 1); var dirMap = { top: -1, bottom: 1, left: -1, right: 1 }; layout2.labelDirection = layout2.tickDirection = layout2.nameDirection = dirMap[rawAxisPosition]; layout2.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0; if (axisModel.get(["axisTick", "inside"])) { layout2.tickDirection = -layout2.tickDirection; } if (retrieve(opt.labelInside, axisModel.get(["axisLabel", "inside"]))) { layout2.labelDirection = -layout2.labelDirection; } var labelRotate = axisModel.get(["axisLabel", "rotate"]); layout2.labelRotate = axisPosition === "top" ? -labelRotate : labelRotate; layout2.z2 = 1; return layout2; } function isCartesian2DSeries(seriesModel) { return seriesModel.get("coordinateSystem") === "cartesian2d"; } function findAxisModels(seriesModel) { var axisModelMap = { xAxisModel: null, yAxisModel: null }; each(axisModelMap, function(v, key) { var axisType = key.replace(/Model$/, ""); var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0]; axisModelMap[key] = axisModel; }); return axisModelMap; } export { findAxisModels, isCartesian2DSeries, layout };