逐步完成前后端服务器
This commit is contained in:
237
frontend/node_modules/echarts/lib/visual/aria.js
generated
vendored
Normal file
237
frontend/node_modules/echarts/lib/visual/aria.js
generated
vendored
Normal file
@ -0,0 +1,237 @@
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* AUTO-GENERATED FILE. DO NOT MODIFY.
|
||||
*/
|
||||
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
import * as zrUtil from 'zrender/lib/core/util.js';
|
||||
import { makeInner } from '../util/model.js';
|
||||
import { getDecalFromPalette } from '../model/mixin/palette.js';
|
||||
var DEFAULT_OPTION = {
|
||||
label: {
|
||||
enabled: true
|
||||
},
|
||||
decal: {
|
||||
show: false
|
||||
}
|
||||
};
|
||||
var inner = makeInner();
|
||||
var decalPaletteScope = {};
|
||||
export default function ariaVisual(ecModel, api) {
|
||||
var ariaModel = ecModel.getModel('aria');
|
||||
// See "area enabled" detection code in `GlobalModel.ts`.
|
||||
if (!ariaModel.get('enabled')) {
|
||||
return;
|
||||
}
|
||||
var defaultOption = zrUtil.clone(DEFAULT_OPTION);
|
||||
zrUtil.merge(defaultOption.label, ecModel.getLocaleModel().get('aria'), false);
|
||||
zrUtil.merge(ariaModel.option, defaultOption, false);
|
||||
setDecal();
|
||||
setLabel();
|
||||
function setDecal() {
|
||||
var decalModel = ariaModel.getModel('decal');
|
||||
var useDecal = decalModel.get('show');
|
||||
if (useDecal) {
|
||||
// Each type of series use one scope.
|
||||
// Pie and funnel are using different scopes.
|
||||
var paletteScopeGroupByType_1 = zrUtil.createHashMap();
|
||||
ecModel.eachSeries(function (seriesModel) {
|
||||
if (seriesModel.isColorBySeries()) {
|
||||
return;
|
||||
}
|
||||
var decalScope = paletteScopeGroupByType_1.get(seriesModel.type);
|
||||
if (!decalScope) {
|
||||
decalScope = {};
|
||||
paletteScopeGroupByType_1.set(seriesModel.type, decalScope);
|
||||
}
|
||||
inner(seriesModel).scope = decalScope;
|
||||
});
|
||||
ecModel.eachRawSeries(function (seriesModel) {
|
||||
if (ecModel.isSeriesFiltered(seriesModel)) {
|
||||
return;
|
||||
}
|
||||
if (zrUtil.isFunction(seriesModel.enableAriaDecal)) {
|
||||
// Let series define how to use decal palette on data
|
||||
seriesModel.enableAriaDecal();
|
||||
return;
|
||||
}
|
||||
var data = seriesModel.getData();
|
||||
if (!seriesModel.isColorBySeries()) {
|
||||
var dataAll_1 = seriesModel.getRawData();
|
||||
var idxMap_1 = {};
|
||||
var decalScope_1 = inner(seriesModel).scope;
|
||||
data.each(function (idx) {
|
||||
var rawIdx = data.getRawIndex(idx);
|
||||
idxMap_1[rawIdx] = idx;
|
||||
});
|
||||
var dataCount_1 = dataAll_1.count();
|
||||
dataAll_1.each(function (rawIdx) {
|
||||
var idx = idxMap_1[rawIdx];
|
||||
var name = dataAll_1.getName(rawIdx) || rawIdx + '';
|
||||
var paletteDecal = getDecalFromPalette(seriesModel.ecModel, name, decalScope_1, dataCount_1);
|
||||
var specifiedDecal = data.getItemVisual(idx, 'decal');
|
||||
data.setItemVisual(idx, 'decal', mergeDecal(specifiedDecal, paletteDecal));
|
||||
});
|
||||
} else {
|
||||
var paletteDecal = getDecalFromPalette(seriesModel.ecModel, seriesModel.name, decalPaletteScope, ecModel.getSeriesCount());
|
||||
var specifiedDecal = data.getVisual('decal');
|
||||
data.setVisual('decal', mergeDecal(specifiedDecal, paletteDecal));
|
||||
}
|
||||
function mergeDecal(specifiedDecal, paletteDecal) {
|
||||
// Merge decal from palette to decal from itemStyle.
|
||||
// User do not need to specify all of the decal props.
|
||||
var resultDecal = specifiedDecal ? zrUtil.extend(zrUtil.extend({}, paletteDecal), specifiedDecal) : paletteDecal;
|
||||
resultDecal.dirty = true;
|
||||
return resultDecal;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
function setLabel() {
|
||||
var dom = api.getZr().dom;
|
||||
// TODO: support for SSR
|
||||
if (!dom) {
|
||||
return;
|
||||
}
|
||||
var labelLocale = ecModel.getLocaleModel().get('aria');
|
||||
var labelModel = ariaModel.getModel('label');
|
||||
labelModel.option = zrUtil.defaults(labelModel.option, labelLocale);
|
||||
if (!labelModel.get('enabled')) {
|
||||
return;
|
||||
}
|
||||
dom.setAttribute('role', 'img');
|
||||
if (labelModel.get('description')) {
|
||||
dom.setAttribute('aria-label', labelModel.get('description'));
|
||||
return;
|
||||
}
|
||||
var seriesCnt = ecModel.getSeriesCount();
|
||||
var maxDataCnt = labelModel.get(['data', 'maxCount']) || 10;
|
||||
var maxSeriesCnt = labelModel.get(['series', 'maxCount']) || 10;
|
||||
var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);
|
||||
var ariaLabel;
|
||||
if (seriesCnt < 1) {
|
||||
// No series, no aria label
|
||||
return;
|
||||
} else {
|
||||
var title = getTitle();
|
||||
if (title) {
|
||||
var withTitle = labelModel.get(['general', 'withTitle']);
|
||||
ariaLabel = replace(withTitle, {
|
||||
title: title
|
||||
});
|
||||
} else {
|
||||
ariaLabel = labelModel.get(['general', 'withoutTitle']);
|
||||
}
|
||||
var seriesLabels_1 = [];
|
||||
var prefix = seriesCnt > 1 ? labelModel.get(['series', 'multiple', 'prefix']) : labelModel.get(['series', 'single', 'prefix']);
|
||||
ariaLabel += replace(prefix, {
|
||||
seriesCount: seriesCnt
|
||||
});
|
||||
ecModel.eachSeries(function (seriesModel, idx) {
|
||||
if (idx < displaySeriesCnt) {
|
||||
var seriesLabel = void 0;
|
||||
var seriesName = seriesModel.get('name');
|
||||
var withName = seriesName ? 'withName' : 'withoutName';
|
||||
seriesLabel = seriesCnt > 1 ? labelModel.get(['series', 'multiple', withName]) : labelModel.get(['series', 'single', withName]);
|
||||
seriesLabel = replace(seriesLabel, {
|
||||
seriesId: seriesModel.seriesIndex,
|
||||
seriesName: seriesModel.get('name'),
|
||||
seriesType: getSeriesTypeName(seriesModel.subType)
|
||||
});
|
||||
var data = seriesModel.getData();
|
||||
if (data.count() > maxDataCnt) {
|
||||
// Show part of data
|
||||
var partialLabel = labelModel.get(['data', 'partialData']);
|
||||
seriesLabel += replace(partialLabel, {
|
||||
displayCnt: maxDataCnt
|
||||
});
|
||||
} else {
|
||||
seriesLabel += labelModel.get(['data', 'allData']);
|
||||
}
|
||||
var middleSeparator_1 = labelModel.get(['data', 'separator', 'middle']);
|
||||
var endSeparator_1 = labelModel.get(['data', 'separator', 'end']);
|
||||
var excludeDimensionId_1 = labelModel.get(['data', 'excludeDimensionId']);
|
||||
var dataLabels = [];
|
||||
for (var i = 0; i < data.count(); i++) {
|
||||
if (i < maxDataCnt) {
|
||||
var name_1 = data.getName(i);
|
||||
var value = !excludeDimensionId_1 ? data.getValues(i) : zrUtil.filter(data.getValues(i), function (v, j) {
|
||||
return zrUtil.indexOf(excludeDimensionId_1, j) === -1;
|
||||
});
|
||||
var dataLabel = labelModel.get(['data', name_1 ? 'withName' : 'withoutName']);
|
||||
dataLabels.push(replace(dataLabel, {
|
||||
name: name_1,
|
||||
value: value.join(middleSeparator_1)
|
||||
}));
|
||||
}
|
||||
}
|
||||
seriesLabel += dataLabels.join(middleSeparator_1) + endSeparator_1;
|
||||
seriesLabels_1.push(seriesLabel);
|
||||
}
|
||||
});
|
||||
var separatorModel = labelModel.getModel(['series', 'multiple', 'separator']);
|
||||
var middleSeparator = separatorModel.get('middle');
|
||||
var endSeparator = separatorModel.get('end');
|
||||
ariaLabel += seriesLabels_1.join(middleSeparator) + endSeparator;
|
||||
dom.setAttribute('aria-label', ariaLabel);
|
||||
}
|
||||
}
|
||||
function replace(str, keyValues) {
|
||||
if (!zrUtil.isString(str)) {
|
||||
return str;
|
||||
}
|
||||
var result = str;
|
||||
zrUtil.each(keyValues, function (value, key) {
|
||||
result = result.replace(new RegExp('\\{\\s*' + key + '\\s*\\}', 'g'), value);
|
||||
});
|
||||
return result;
|
||||
}
|
||||
function getTitle() {
|
||||
var title = ecModel.get('title');
|
||||
if (title && title.length) {
|
||||
title = title[0];
|
||||
}
|
||||
return title && title.text;
|
||||
}
|
||||
function getSeriesTypeName(type) {
|
||||
var typeNames = ecModel.getLocaleModel().get(['series', 'typeNames']);
|
||||
return typeNames[type] || typeNames.chart;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user