ant-design-vue
Version:
An enterprise-class UI design language and Vue-based implementation
102 lines (82 loc) • 2.64 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _vueTypes = require('../_util/vue-types');
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _moment = require('moment');
var moment = _interopRequireWildcard(_moment);
var _interopDefault = require('../_util/interopDefault');
var _interopDefault2 = _interopRequireDefault(_interopDefault);
var _locale = require('../modal/locale');
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
// 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;
// }
function setMomentLocale(locale) {
if (locale && locale.locale) {
(0, _interopDefault2['default'])(moment).locale(locale.locale);
} else {
(0, _interopDefault2['default'])(moment).locale('en');
}
}
var LocaleProvider = {
name: 'ALocaleProvider',
props: {
locale: _vueTypes2['default'].object.def({})
},
data: function data() {
return {
antLocale: (0, _extends3['default'])({}, this.locale, {
exist: true
})
};
},
provide: function provide() {
return {
localeData: this.$data
};
},
watch: {
locale: function locale(val) {
this.antLocale = (0, _extends3['default'])({}, this.locale, {
exist: true
});
setMomentLocale(val);
}
},
created: function created() {
var locale = this.locale;
setMomentLocale(locale);
(0, _locale.changeConfirmLocale)(locale && locale.Modal);
},
updated: function updated() {
var locale = this.locale;
(0, _locale.changeConfirmLocale)(locale && locale.Modal);
},
beforeDestroy: function beforeDestroy() {
(0, _locale.changeConfirmLocale)();
},
render: function render() {
return this.$slots['default'] ? this.$slots['default'][0] : null;
}
};
/* istanbul ignore next */
LocaleProvider.install = function (Vue) {
Vue.component(LocaleProvider.name, LocaleProvider);
};
exports['default'] = LocaleProvider;
module.exports = exports['default'];
;