index.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import _extends from 'babel-runtime/helpers/extends';
  2. import PropTypes from '../_util/vue-types';
  3. import * as moment from 'moment';
  4. import interopDefault from '../_util/interopDefault';
  5. import { changeConfirmLocale } from '../modal/locale';
  6. import Base from '../base';
  7. import warning from '../_util/warning';
  8. // export interface Locale {
  9. // locale: string;
  10. // Pagination?: Object;
  11. // DatePicker?: Object;
  12. // TimePicker?: Object;
  13. // Calendar?: Object;
  14. // Table?: Object;
  15. // Modal?: ModalLocale;
  16. // Popconfirm?: Object;
  17. // Transfer?: Object;
  18. // Select?: Object;
  19. // Upload?: Object;
  20. // }
  21. export var ANT_MARK = 'internalMark';
  22. function setMomentLocale(locale) {
  23. if (locale && locale.locale) {
  24. interopDefault(moment).locale(locale.locale);
  25. } else {
  26. interopDefault(moment).locale('en');
  27. }
  28. }
  29. var LocaleProvider = {
  30. name: 'ALocaleProvider',
  31. props: {
  32. locale: PropTypes.object.def(function () {
  33. return {};
  34. }),
  35. _ANT_MARK__: PropTypes.string
  36. },
  37. data: function data() {
  38. warning(this._ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead');
  39. return {
  40. antLocale: _extends({}, this.locale, {
  41. exist: true
  42. })
  43. };
  44. },
  45. provide: function provide() {
  46. return {
  47. localeData: this.$data
  48. };
  49. },
  50. watch: {
  51. locale: function locale(val) {
  52. this.antLocale = _extends({}, this.locale, {
  53. exist: true
  54. });
  55. setMomentLocale(val);
  56. changeConfirmLocale(val && val.Modal);
  57. }
  58. },
  59. created: function created() {
  60. var locale = this.locale;
  61. setMomentLocale(locale);
  62. changeConfirmLocale(locale && locale.Modal);
  63. },
  64. beforeDestroy: function beforeDestroy() {
  65. changeConfirmLocale();
  66. },
  67. render: function render() {
  68. return this.$slots['default'] ? this.$slots['default'][0] : null;
  69. }
  70. };
  71. /* istanbul ignore next */
  72. LocaleProvider.install = function (Vue) {
  73. Vue.use(Base);
  74. Vue.component(LocaleProvider.name, LocaleProvider);
  75. };
  76. export default LocaleProvider;