UNPKG

ant-design-vue

Version:

An enterprise-class UI design language and Vue-based implementation

70 lines (65 loc) 2.16 kB
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } import { provide, defineComponent, reactive } from 'vue'; import PropTypes from '../_util/vue-types'; import moment from 'moment'; import interopDefault from '../_util/interopDefault'; import { changeConfirmLocale } from '../modal/locale'; import warning from '../_util/warning'; import { getSlot } from '../_util/props-util'; import { withInstall } from '../_util/type'; export var ANT_MARK = 'internalMark'; function setMomentLocale(locale) { if (locale && locale.locale) { interopDefault(moment).locale(locale.locale); } else { interopDefault(moment).locale('en'); } } var LocaleProvider = defineComponent({ name: 'ALocaleProvider', props: { locale: { type: Object }, ANT_MARK__: PropTypes.string }, setup: function setup(props) { warning(props.ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead'); var state = reactive({ antLocale: _extends(_extends({}, props.locale), { exist: true }), ANT_MARK__: ANT_MARK }); provide('localeData', state); return { state: state }; }, watch: { locale: function locale(val) { this.state.antLocale = _extends(_extends({}, val), { exist: true }); setMomentLocale(val); changeConfirmLocale(val && val.Modal); } }, created: function created() { var locale = this.locale; setMomentLocale(locale); changeConfirmLocale(locale && locale.Modal); }, beforeUnmount: function beforeUnmount() { changeConfirmLocale(); }, render: function render() { return getSlot(this); } }); /* istanbul ignore next */ LocaleProvider.install = function (app) { app.component(LocaleProvider.name, LocaleProvider); return app; }; export default withInstall(LocaleProvider);