123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import _extends from 'babel-runtime/helpers/extends';
- import PropTypes from '../_util/vue-types';
- import * as moment from 'moment';
- import interopDefault from '../_util/interopDefault';
- import { changeConfirmLocale } from '../modal/locale';
- import Base from '../base';
- import warning from '../_util/warning';
- // export interface Locale {
- // locale: string;
- // Pagination?: Object;
- // DatePicker?: Object;
- // TimePicker?: Object;
- // Calendar?: Object;
- // Table?: Object;
- // Modal?: ModalLocale;
- // Popconfirm?: Object;
- // Transfer?: Object;
- // Select?: Object;
- // Upload?: Object;
- // }
- export var ANT_MARK = 'internalMark';
- function setMomentLocale(locale) {
- if (locale && locale.locale) {
- interopDefault(moment).locale(locale.locale);
- } else {
- interopDefault(moment).locale('en');
- }
- }
- var LocaleProvider = {
- name: 'ALocaleProvider',
- props: {
- locale: PropTypes.object.def(function () {
- return {};
- }),
- _ANT_MARK__: PropTypes.string
- },
- data: function data() {
- warning(this._ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead');
- return {
- antLocale: _extends({}, this.locale, {
- exist: true
- })
- };
- },
- provide: function provide() {
- return {
- localeData: this.$data
- };
- },
- watch: {
- locale: function locale(val) {
- this.antLocale = _extends({}, this.locale, {
- exist: true
- });
- setMomentLocale(val);
- changeConfirmLocale(val && val.Modal);
- }
- },
- created: function created() {
- var locale = this.locale;
- setMomentLocale(locale);
- changeConfirmLocale(locale && locale.Modal);
- },
- beforeDestroy: function beforeDestroy() {
- changeConfirmLocale();
- },
- render: function render() {
- return this.$slots['default'] ? this.$slots['default'][0] : null;
- }
- };
- /* istanbul ignore next */
- LocaleProvider.install = function (Vue) {
- Vue.use(Base);
- Vue.component(LocaleProvider.name, LocaleProvider);
- };
- export default LocaleProvider;
|