@alicloud/cloud-charts
Version:

99 lines (68 loc) • 3.78 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.setLanguage = setLanguage;
exports.getLanguage = getLanguage;
exports.getText = exports["default"] = exports.ChartContext = void 0;
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _react = _interopRequireWildcard(require("react"));
var _locales = _interopRequireDefault(require("../locales"));
var _eventBus = _interopRequireDefault(require("../common/eventBus"));
var _constants = require("../constants");
var ChartContext = /*#__PURE__*/_react["default"].createContext({
language: 'zh-cn'
});
exports.ChartContext = ChartContext;
var currentLanguage; // 函数
function setLanguage(language) {
currentLanguage = language;
_eventBus["default"].emit('setLanguage', {
language: language
});
} // 获取当前语言,仅用于通过setLanguage、事件与全局变量方式设置的语言,不支持图表组件内部设置的语言
function getLanguage() {
return currentLanguage;
} // 全局变量
if (window[_constants.FullLanguageName]) {
setLanguage(window[_constants.FullLanguageName]);
} // 事件
document.addEventListener(_constants.FullLanguageEventName, function (e) {
if (e.detail) {
setLanguage(e.detail);
}
});
var ChartProvider = /*#__PURE__*/function (_Component) {
(0, _inheritsLoose2["default"])(ChartProvider, _Component);
function ChartProvider() {
return _Component.apply(this, arguments) || this;
}
var _proto = ChartProvider.prototype;
_proto.render = function render() {
return /*#__PURE__*/_react["default"].createElement(ChartContext.Provider, {
value: {
language: this.props.language || 'zh-cn',
locale: this.props.locale,
defaultConfig: this.props.defaultConfig,
theme: this.props.theme,
rule: this.props.rule
}
}, this.props.children);
};
return ChartProvider;
}(_react.Component);
var _default = ChartProvider; // 优先级: setLanguage设置的语言 > 图表中的自定义locale > provider的locale > 图表中的language > provider的language
exports["default"] = _default;
var getText = function getText(value, language, locale) {
var _LanguageMap$currentL, _locale4, _LanguageMap;
if (locale === void 0) {
locale = null;
}
// 如果用户自定义locale为Record<string, LocaleItem>
if (locale && (currentLanguage in locale || language in locale || 'zh-cn' in locale)) {
var _locale, _locale$currentLangua, _locale2, _locale3;
return currentLanguage && currentLanguage in locale ? (_locale = locale) === null || _locale === void 0 ? void 0 : (_locale$currentLangua = _locale[currentLanguage]) === null || _locale$currentLangua === void 0 ? void 0 : _locale$currentLangua[value] : (_locale2 = locale) === null || _locale2 === void 0 ? void 0 : (_locale3 = _locale2[language in locale ? language : 'zh-cn']) === null || _locale3 === void 0 ? void 0 : _locale3[value];
}
return currentLanguage && currentLanguage in _locales["default"] ? _locales["default"] === null || _locales["default"] === void 0 ? void 0 : (_LanguageMap$currentL = _locales["default"][currentLanguage]) === null || _LanguageMap$currentL === void 0 ? void 0 : _LanguageMap$currentL[value] : ((_locale4 = locale) === null || _locale4 === void 0 ? void 0 : _locale4[value]) || (_locales["default"] === null || _locales["default"] === void 0 ? void 0 : (_LanguageMap = _locales["default"][language in _locales["default"] ? language : 'zh-cn']) === null || _LanguageMap === void 0 ? void 0 : _LanguageMap[value]);
};
exports.getText = getText;