config-provider.mjs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { defineComponent, watch, renderSlot } from 'vue';
  2. import '../../../utils/index.mjs';
  3. import '../../../hooks/index.mjs';
  4. import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
  5. import { useSizeProp } from '../../../hooks/use-common-props/index.mjs';
  6. import { provideGlobalConfig } from '../../../hooks/use-global-config/index.mjs';
  7. const messageConfig = {};
  8. const configProviderProps = buildProps({
  9. a11y: {
  10. type: Boolean,
  11. default: true
  12. },
  13. locale: {
  14. type: definePropType(Object)
  15. },
  16. size: useSizeProp,
  17. button: {
  18. type: definePropType(Object)
  19. },
  20. experimentalFeatures: {
  21. type: definePropType(Object)
  22. },
  23. keyboardNavigation: {
  24. type: Boolean,
  25. default: true
  26. },
  27. message: {
  28. type: definePropType(Object)
  29. },
  30. zIndex: Number,
  31. namespace: {
  32. type: String,
  33. default: "el"
  34. }
  35. });
  36. const ConfigProvider = defineComponent({
  37. name: "ElConfigProvider",
  38. props: configProviderProps,
  39. setup(props, { slots }) {
  40. watch(() => props.message, (val) => {
  41. Object.assign(messageConfig, val != null ? val : {});
  42. }, { immediate: true, deep: true });
  43. const config = provideGlobalConfig(props);
  44. return () => renderSlot(slots, "default", { config: config == null ? void 0 : config.value });
  45. }
  46. });
  47. export { configProviderProps, ConfigProvider as default, messageConfig };
  48. //# sourceMappingURL=config-provider.mjs.map