LocaleReceiver.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = void 0;
  7. exports.useLocaleReceiver = useLocaleReceiver;
  8. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  9. var _vue = require("vue");
  10. var _en_US = _interopRequireDefault(require("./en_US"));
  11. var _default = exports.default = (0, _vue.defineComponent)({
  12. compatConfig: {
  13. MODE: 3
  14. },
  15. name: 'LocaleReceiver',
  16. props: {
  17. componentName: String,
  18. defaultLocale: {
  19. type: [Object, Function]
  20. },
  21. children: {
  22. type: Function
  23. }
  24. },
  25. setup(props, _ref) {
  26. let {
  27. slots
  28. } = _ref;
  29. const localeData = (0, _vue.inject)('localeData', {});
  30. const locale = (0, _vue.computed)(() => {
  31. const {
  32. componentName = 'global',
  33. defaultLocale
  34. } = props;
  35. const locale = defaultLocale || _en_US.default[componentName || 'global'];
  36. const {
  37. antLocale
  38. } = localeData;
  39. const localeFromContext = componentName && antLocale ? antLocale[componentName] : {};
  40. return (0, _extends2.default)((0, _extends2.default)({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});
  41. });
  42. const localeCode = (0, _vue.computed)(() => {
  43. const {
  44. antLocale
  45. } = localeData;
  46. const localeCode = antLocale && antLocale.locale;
  47. // Had use LocaleProvide but didn't set locale
  48. if (antLocale && antLocale.exist && !localeCode) {
  49. return _en_US.default.locale;
  50. }
  51. return localeCode;
  52. });
  53. return () => {
  54. const children = props.children || slots.default;
  55. const {
  56. antLocale
  57. } = localeData;
  58. return children === null || children === void 0 ? void 0 : children(locale.value, localeCode.value, antLocale);
  59. };
  60. }
  61. });
  62. function useLocaleReceiver(componentName, defaultLocale, propsLocale) {
  63. const localeData = (0, _vue.inject)('localeData', {});
  64. const componentLocale = (0, _vue.computed)(() => {
  65. const {
  66. antLocale
  67. } = localeData;
  68. const locale = (0, _vue.unref)(defaultLocale) || _en_US.default[componentName || 'global'];
  69. const localeFromContext = componentName && antLocale ? antLocale[componentName] : {};
  70. return (0, _extends2.default)((0, _extends2.default)((0, _extends2.default)({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {}), (0, _vue.unref)(propsLocale) || {});
  71. });
  72. return [componentLocale];
  73. }