123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import _extends from 'babel-runtime/helpers/extends';
- import PropTypes from '../_util/vue-types';
- import defaultLocaleData from './default';
- export default {
- name: 'LocaleReceiver',
- props: {
- componentName: PropTypes.string.def('global'),
- defaultLocale: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),
- children: PropTypes.func
- },
- inject: {
- localeData: { 'default': function _default() {
- return {};
- } }
- },
- methods: {
- getLocale: function getLocale() {
- var componentName = this.componentName,
- defaultLocale = this.defaultLocale;
- var locale = defaultLocale || defaultLocaleData[componentName || 'global'];
- var antLocale = this.localeData.antLocale;
- var localeFromContext = componentName && antLocale ? antLocale[componentName] : {};
- return _extends({}, typeof locale === 'function' ? locale() : locale, localeFromContext || {});
- },
- getLocaleCode: function getLocaleCode() {
- var antLocale = this.localeData.antLocale;
- var localeCode = antLocale && antLocale.locale;
- // Had use LocaleProvide but didn't set locale
- if (antLocale && antLocale.exist && !localeCode) {
- return defaultLocaleData.locale;
- }
- return localeCode;
- }
- },
- render: function render() {
- var $scopedSlots = this.$scopedSlots;
- var children = this.children || $scopedSlots['default'];
- var antLocale = this.localeData.antLocale;
- return children(this.getLocale(), this.getLocaleCode(), antLocale);
- }
- };
|