/
githubmirror
/
echarts
Обзор
Документация
Войти
/
githubmirror
/
echarts
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/export/api/helper.ts
127 строк
4 KB
100pah
refactor&feature:
17 фев 2026, 12:59
17 фев 2026, 12:59
fe932a2
Код
Авторство
О чём код?
/* * 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. */ /** * This module exposes helper functions for developing extensions. */ import * as zrUtil from 'zrender/src/core/util'; import createSeriesData from '../../chart/helper/createSeriesData'; // import createGraphFromNodeEdge from './chart/helper/createGraphFromNodeEdge'; import * as axisHelper from '../../coord/axisHelper'; import {AxisModelCommonMixin} from '../../coord/axisModelCommonMixin'; import Model from '../../model/Model'; import {getLayoutRect} from '../../util/layout'; import { enableDataStack, isDimensionStacked, getStackedDimension } from '../../data/helper/dataStackHelper'; import SeriesModel from '../../model/Series'; import { AxisBaseModel } from '../../coord/AxisBaseModel'; import { getECData } from '../../util/innerStore'; import { createTextStyle as innerCreateTextStyle } from '../../label/labelStyle'; import { DisplayState, TextCommonOption } from '../../util/types'; import { scaleCalcNice2 } from '../../coord/axisNiceTicks'; /** * Create a multi dimension List structure from seriesModel. */ export function createList(seriesModel: SeriesModel) { return createSeriesData(null, seriesModel); } // export function createGraph(seriesModel) { // let nodes = seriesModel.get('data'); // let links = seriesModel.get('links'); // return createGraphFromNodeEdge(nodes, links, seriesModel); // } export {getLayoutRect}; export {createDimensions} from '../../data/helper/createDimensions'; export const dataStack = { isDimensionStacked: isDimensionStacked, enableDataStack: enableDataStack, getStackedDimension: getStackedDimension }; /** * Create a symbol element with given symbol configuration: shape, x, y, width, height, color * @param {string} symbolDesc * @param {number} x * @param {number} y * @param {number} w * @param {number} h * @param {string} color */ export {createSymbol} from '../../util/symbol'; /** * Externally used by echarts-gl. * Create scale * @param dataExtent * @param option If `option.type` * is specified, it can only be `'value'` currently. */ export function createScale(dataExtent: number[], option: object | AxisBaseModel) { let axisModel = option; if (!(option instanceof Model)) { axisModel = new Model(option); // FIXME // Currently AxisModelCommonMixin has nothing to do with the // the requirements of `axisHelper.createScaleByModel`. For // example the methods `getCategories` and `getOrdinalMeta` // are required for `'category'` axis, and ecModel is required // for `'time'` axis. But occasionally echarts-gl happened // to only use `'value'` axis. // zrUtil.mixin(axisModel, AxisModelCommonMixin); } const axisType = axisHelper.determineAxisType(axisModel as AxisBaseModel); const scale = axisHelper.createScaleByModel(axisModel as AxisBaseModel, axisType, false); if (dataExtent[1] < dataExtent[0]) { dataExtent = dataExtent.slice().reverse(); } scaleCalcNice2(scale, axisModel as AxisBaseModel, null, null, dataExtent); return scale; } /** * Mixin common methods to axis model */ export function mixinAxisModelCommonMethods(Model: Model) { zrUtil.mixin(Model, AxisModelCommonMixin); } export {getECData}; export {enableHoverEmphasis} from '../../util/states'; export function createTextStyle( textStyleModel: Model<TextCommonOption>, opts?: { // For which state this textStyle is for. state?: DisplayState } ) { opts = opts || {}; return innerCreateTextStyle(textStyleModel, null, null, opts.state !== 'normal'); }