@alicloud/cloud-charts
Version:

81 lines (75 loc) • 4.76 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = exports.ChartContext = void 0;
exports.getLanguage = getLanguage;
exports.getText = void 0;
exports.setLanguage = setLanguage;
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");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
var ChartContext = exports.ChartContext = /*#__PURE__*/_react["default"].createContext({
language: 'zh-cn'
});
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 = exports["default"] = ChartProvider; // 优先级: setLanguage设置的语言 > 图表中的自定义locale > provider的locale > 图表中的language > provider的language
var getText = exports.getText = function getText(value, language, locale, force) {
var _LanguageMap$currentL, _locale4, _LanguageMap2;
if (locale === void 0) {
locale = null;
}
if (force) {
var _LanguageMap;
return _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];
}
// 如果用户自定义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 : (_LanguageMap2 = _locales["default"][language in _locales["default"] ? language : 'zh-cn']) === null || _LanguageMap2 === void 0 ? void 0 : _LanguageMap2[value]);
};