{"version":3,"file":"ConfigProvider.mjs","sources":["../../../../../../packages/components/config-provider/src/ConfigProvider.tsx"],"sourcesContent":["import type { Locale, ValidateMessages } from '@antdv/locale';\n\nimport type { WatchStopHandle } from 'vue';\nimport type { ConfigProviderInnerProps, GlobalConfigProviderProps, RenderEmptyHandler, ThemeColor } from './interface';\nimport type { ConfigProviderProps } from './props';\n\nimport { ANT_MARK } from '@antdv/constants';\nimport { enUS as defaultLocale } from '@antdv/locale';\nimport { createTheme } from '@antdv/theme';\nimport { DesignTokenProvider } from '@antdv/theme/token/internal';\nimport defaultSeedToken from '@antdv/theme/token/themes/seed';\n\nimport { computed, defineComponent, reactive, watch, watchEffect } from 'vue';\n\nimport LocaleProvider from '../../locale-provider';\nimport LocaleReceiver from '../../locale-provider/src/LocaleReceiver';\n\nimport message from '../../message';\nimport { notification } from '../../notification';\nimport useStyle from '../style';\nimport { getGlobalIconPrefixCls, getGlobalPrefixCls, globalConfigForApi } from './config';\nimport {\n  defaultIconPrefixCls,\n  useConfigContextInject,\n  useConfigContextProvider,\n  useProvideGlobalForm,\n  useProviderDisabled,\n  useProviderSize,\n} from './context';\nimport { registerTheme } from './cssVariables';\n\nimport useTheme from './hooks/useTheme';\nimport { configProviderProps } from './props';\n\nimport defaultRenderEmpty from './renderEmpty';\n\nconst globalConfigBySet = reactive<ConfigProviderProps>({}); // 权重最大\n\nexport const configConsumerProps = [\n  'getTargetContainer',\n  'getPopupContainer',\n  'rootPrefixCls',\n  'getPrefixCls',\n  'renderEmpty',\n  'csp',\n  'autoInsertSpaceInButton',\n  'locale',\n  'pageHeader',\n];\n\nwatchEffect(() => {\n  Object.assign(globalConfigForApi, globalConfigBySet);\n  globalConfigForApi.prefixCls = getGlobalPrefixCls();\n  globalConfigForApi.iconPrefixCls = getGlobalIconPrefixCls();\n  globalConfigForApi.getPrefixCls = (suffixCls?: string, customizePrefixCls?: string) => {\n    if (customizePrefixCls) return customizePrefixCls;\n    return suffixCls\n      ? `${globalConfigForApi.prefixCls}-${suffixCls}`\n      : globalConfigForApi.prefixCls;\n  };\n  globalConfigForApi.getRootPrefixCls = () => {\n    // If Global prefixCls provided, use this\n    if (globalConfigForApi.prefixCls)\n      return globalConfigForApi.prefixCls;\n\n    // Fallback to default prefixCls\n    return getGlobalPrefixCls();\n  };\n});\n\nlet stopWatchEffect: WatchStopHandle;\n\nexport function setGlobalConfig(params: GlobalConfigProviderProps & { theme?: ThemeColor }) {\n  if (stopWatchEffect)\n    stopWatchEffect();\n\n  stopWatchEffect = watchEffect(() => {\n    Object.assign(globalConfigBySet, reactive(params));\n    Object.assign(globalConfigForApi, reactive(params));\n  });\n  if (params.theme)\n    registerTheme(getGlobalPrefixCls(), params.theme);\n}\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'AConfigProvider',\n  inheritAttrs: false,\n  props: configProviderProps(),\n  config: setGlobalConfig,\n  setup(props, { slots }) {\n    const parentContext = useConfigContextInject();\n    const getPrefixCls = (suffixCls?: string, customizePrefixCls?: string) => {\n      const { prefixCls = 'ant' } = props;\n      if (customizePrefixCls) return customizePrefixCls;\n      const mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n      return suffixCls ? `${mergedPrefixCls}-${suffixCls}` : mergedPrefixCls;\n    };\n    const iconPrefixCls = computed(\n      () => props.iconPrefixCls || parentContext.iconPrefixCls.value || defaultIconPrefixCls,\n    );\n    const shouldWrapSSR = computed(() => iconPrefixCls.value !== parentContext.iconPrefixCls.value);\n    const csp = computed(() => props.csp || parentContext.csp?.value);\n\n    const wrapSSR = useStyle(iconPrefixCls);\n\n    const mergedTheme = useTheme(\n      computed(() => props.theme),\n      computed(() => parentContext.theme?.value),\n    );\n    const renderEmptyComponent = (name?: string) => {\n      const renderEmpty = (props.renderEmpty\n        || slots.renderEmpty\n        || parentContext.renderEmpty\n        || defaultRenderEmpty) as RenderEmptyHandler;\n      return renderEmpty(name);\n    };\n    const autoInsertSpaceInButton = computed(\n      () => props.autoInsertSpaceInButton ?? parentContext.autoInsertSpaceInButton?.value,\n    );\n    const locale = computed(() => props.locale || parentContext.locale?.value);\n    watch(\n      locale,\n      () => {\n        globalConfigBySet.locale = locale.value;\n      },\n      { immediate: true },\n    );\n    const direction = computed(() => props.direction || parentContext.direction?.value);\n    const space = computed(() => props.space ?? parentContext.space?.value);\n    const virtual = computed(() => props.virtual ?? parentContext.virtual?.value);\n    const dropdownMatchSelectWidth = computed(\n      () => props.dropdownMatchSelectWidth ?? parentContext.dropdownMatchSelectWidth?.value,\n    );\n    const getTargetContainer = computed(() =>\n      props.getTargetContainer !== undefined\n        ? props.getTargetContainer\n        : parentContext.getTargetContainer?.value,\n    );\n    const getPopupContainer = computed(() =>\n      props.getPopupContainer !== undefined\n        ? props.getPopupContainer\n        : parentContext.getPopupContainer?.value,\n    );\n    const pageHeader = computed(() =>\n      props.pageHeader !== undefined ? props.pageHeader : parentContext.pageHeader?.value,\n    );\n    const input = computed(() =>\n      props.input !== undefined ? props.input : parentContext.input?.value,\n    );\n    const pagination = computed(() =>\n      props.pagination !== undefined ? props.pagination : parentContext.pagination?.value,\n    );\n    const form = computed(() =>\n      props.form !== undefined ? props.form : parentContext.form?.value,\n    );\n    const select = computed(() =>\n      props.select !== undefined ? props.select : parentContext.select?.value,\n    );\n    const componentSize = computed(() => props.componentSize);\n    const componentDisabled = computed(() => props.componentDisabled);\n    const wave = computed(() => props.wave ?? parentContext.wave?.value);\n    const configProvider: ConfigProviderInnerProps = {\n      csp,\n      autoInsertSpaceInButton,\n      locale,\n      direction,\n      space,\n      virtual,\n      dropdownMatchSelectWidth,\n      getPrefixCls,\n      iconPrefixCls,\n      theme: computed(() => {\n        return mergedTheme.value ?? parentContext.theme?.value;\n      }),\n      renderEmpty: renderEmptyComponent,\n      getTargetContainer,\n      getPopupContainer,\n      pageHeader,\n      input,\n      pagination,\n      form,\n      select,\n      componentSize,\n      componentDisabled,\n      transformCellText: computed(() => props.transformCellText),\n      wave,\n    };\n\n    // ================================ Dynamic theme ================================\n    const memoTheme = computed(() => {\n      const { algorithm, token, ...rest } = mergedTheme.value || {};\n      const themeObj\n        = algorithm && (!Array.isArray(algorithm) || algorithm.length > 0)\n          ? createTheme(algorithm)\n          : undefined;\n\n      return {\n        ...rest,\n        theme: themeObj,\n\n        token: {\n          ...defaultSeedToken,\n          ...token,\n        },\n      };\n    });\n    const validateMessagesRef = computed(() => {\n      // Additional Form provider\n      let validateMessages: ValidateMessages = {};\n\n      if (locale.value) {\n        validateMessages\n          = locale.value.Form?.defaultValidateMessages\n          || defaultLocale.Form?.defaultValidateMessages\n          || {};\n      }\n      if (props.form && props.form.validateMessages)\n        validateMessages = { ...validateMessages, ...props.form.validateMessages };\n\n      return validateMessages;\n    });\n    useConfigContextProvider(configProvider);\n    useProvideGlobalForm({ validateMessages: validateMessagesRef });\n    useProviderSize(componentSize);\n    useProviderDisabled(componentDisabled);\n\n    const renderProvider = (legacyLocale: Locale) => {\n      let childNode = shouldWrapSSR.value ? wrapSSR(slots.default?.()) : slots.default?.();\n      if (props.theme)\n        childNode = <DesignTokenProvider value={memoTheme.value}>{childNode}</DesignTokenProvider>;\n      return (\n        <LocaleProvider locale={locale.value || legacyLocale} ANT_MARK__={ANT_MARK}>\n          {childNode}\n        </LocaleProvider>\n      );\n    };\n\n    watchEffect(() => {\n      if (direction.value) {\n        message.config({\n          rtl: direction.value === 'rtl',\n        });\n        notification.config({\n          rtl: direction.value === 'rtl',\n        });\n      }\n    });\n\n    return () => (\n      <LocaleReceiver children={(_, __, legacyLocale) => renderProvider(legacyLocale as Locale)} />\n    );\n  },\n});\n"],"names":["globalConfigBySet","reactive","configConsumerProps","watchEffect","Object","assign","globalConfigForApi","prefixCls","getGlobalPrefixCls","iconPrefixCls","getGlobalIconPrefixCls","getPrefixCls","suffixCls","customizePrefixCls","getRootPrefixCls","stopWatchEffect","setGlobalConfig","params","theme","registerTheme","compatConfig","MODE","name","inheritAttrs","props","configProviderProps","config","setup","slots","parentContext","useConfigContextInject","mergedPrefixCls","computed","value","defaultIconPrefixCls","shouldWrapSSR","csp","wrapSSR","useStyle","mergedTheme","useTheme","renderEmptyComponent","renderEmpty","defaultRenderEmpty","autoInsertSpaceInButton","locale","watch","immediate","direction","space","virtual","dropdownMatchSelectWidth","getTargetContainer","undefined","getPopupContainer","pageHeader","input","pagination","form","select","componentSize","componentDisabled","wave","configProvider","transformCellText","memoTheme","algorithm","token","rest","themeObj","Array","isArray","length","createTheme","defaultSeedToken","validateMessagesRef","validateMessages","Form","defaultValidateMessages","defaultLocale","useConfigContextProvider","useProvideGlobalForm","useProviderSize","useProviderDisabled","renderProvider","legacyLocale","childNode","default","_childNode","_createVNode","DesignTokenProvider","LocaleProvider","ANT_MARK","message","rtl","notification","LocaleReceiver","children","_","__"],"mappings":"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"}