{"version":3,"file":"hooks.mjs","sources":["../../../../../../packages/components/config-provider/src/hooks.ts"],"sourcesContent":["import { computed, getCurrentInstance, provide } from 'vue'\r\n\r\nimport { localeContextKey } from '@ll-plus/hooks'\r\nimport { theme } from 'ant-design-vue'\r\n\r\nimport type { MaybeRef } from '@vueuse/core'\r\nimport type { App } from 'vue'\r\n\r\nimport { THEME_ENUM } from './config-provider'\r\n\r\ntype ConfigProviderContext = Partial<any>\r\n\r\nconst { darkAlgorithm, defaultAlgorithm } = theme\r\n\r\nexport const useConfigProvider = () => {\r\n  const provideGlobalConfig = (\r\n    config: MaybeRef<ConfigProviderContext>,\r\n    app?: App\r\n  ) => {\r\n    const inSetup = !!getCurrentInstance()\r\n\r\n    const provideFn = app?.provide ?? ((inSetup ? provide : undefined) as any)\r\n    if (!provideFn) {\r\n      console.warn(\r\n        'provideGlobalConfig',\r\n        'provideGlobalConfig() can only be used inside setup().'\r\n      )\r\n      return\r\n    }\r\n    provideFn(\r\n      localeContextKey,\r\n      computed(() => config.value.locale)\r\n    )\r\n  }\r\n  const getRootVarible = (root: any, name: string) => {\r\n    return root.getPropertyValue(name).trim()\r\n  }\r\n  // 获取主题\r\n  const getTheme = (root: any, name?: THEME_ENUM) => {\r\n    const root_computed = getComputedStyle(root)\r\n    // 1、品牌色\r\n    const colorPrimaryBg = getRootVarible(root_computed, '--color-primary-bg')\r\n    const colorPrimaryBgHover = getRootVarible(\r\n      root_computed,\r\n      '--color-primary-bg-hover'\r\n    )\r\n    const colorPrimaryBorder = getRootVarible(\r\n      root_computed,\r\n      '--color-primary-border'\r\n    )\r\n    const colorPrimaryBorderHover = getRootVarible(\r\n      root_computed,\r\n      '--color-primary-border-hover'\r\n    )\r\n    const colorPrimaryHover = getRootVarible(\r\n      root_computed,\r\n      '--color-primary-hover'\r\n    )\r\n    const colorPrimary = getRootVarible(root_computed, '--color-primary')\r\n    const darkColorPrimary = getRootVarible(\r\n      root_computed,\r\n      '--dark-color-primary'\r\n    )\r\n    const colorPrimaryActive = getRootVarible(\r\n      root_computed,\r\n      '--color-primary-active'\r\n    )\r\n    const colorPrimaryTextHover = getRootVarible(\r\n      root_computed,\r\n      '--color-primary-text-hover'\r\n    )\r\n    const colorPrimaryText = getRootVarible(\r\n      root_computed,\r\n      '--color-primary-text'\r\n    )\r\n    const colorPrimaryTextActive = getRootVarible(\r\n      root_computed,\r\n      '--color-primary-text-active'\r\n    )\r\n    // 2.成功色\r\n    const colorSuccess = getRootVarible(root_computed, '--color-success')\r\n\r\n    // 3.警戒色\r\n    const colorWarning = getRootVarible(root_computed, '--color-warning')\r\n\r\n    // 4.错误色\r\n    const colorError = getRootVarible(root_computed, '--color-error')\r\n\r\n    // 5.信息色\r\n    const colorInfo = getRootVarible(root_computed, '--color-info')\r\n\r\n    //  6.中性色\r\n    //  6.1文本色\r\n    const colorTextBase = getRootVarible(root_computed, '--color-text-base')\r\n    const colorText = getRootVarible(root_computed, '--color-text')\r\n    const colorTextSecondary = getRootVarible(\r\n      root_computed,\r\n      '--color-text-secondary'\r\n    )\r\n    const colorTextTertiary = getRootVarible(\r\n      root_computed,\r\n      '--color-text-tertiary'\r\n    )\r\n    const colorTextQuaternary = getRootVarible(\r\n      root_computed,\r\n      '--color-text-quaternary'\r\n    )\r\n    // 6.2描边\r\n    const colorBorder = getRootVarible(root_computed, '--color-border')\r\n    const colorBorderSecondary = getRootVarible(\r\n      root_computed,\r\n      '--color-border-secondary'\r\n    )\r\n    const colorSplit = getRootVarible(root_computed, '--color-split')\r\n    // 6.3填充\r\n    const colorFill = getRootVarible(root_computed, '--color-fill')\r\n    const colorFillSecondary = getRootVarible(\r\n      root_computed,\r\n      '--color-fill-secondary'\r\n    )\r\n    const colorFillTertiary = getRootVarible(\r\n      root_computed,\r\n      '--color-fill-tertiary'\r\n    )\r\n    const colorFillQuaternary = getRootVarible(\r\n      root_computed,\r\n      '--color-fill-quaternary'\r\n    )\r\n    // 6.4背景\r\n    const colorBgBase = getRootVarible(root_computed, '--color-bg-base')\r\n\r\n    const colorBgContainer = getRootVarible(\r\n      root_computed,\r\n      '--color-bg-container'\r\n    )\r\n    const colorBgElevated = getRootVarible(root_computed, '--color-bg-elevated')\r\n    const colorBgLayout = getRootVarible(root_computed, '--color-bg-layout')\r\n    const colorBgSpotlight = getRootVarible(\r\n      root_computed,\r\n      '--color-bg-spotlight'\r\n    )\r\n    const colorBgMask = getRootVarible(root_computed, '--color-bg-mask')\r\n    // 6.5浮层容器\r\n    const controlItemBgHover = getRootVarible(\r\n      root_computed,\r\n      '--control-item-bg-hover'\r\n    )\r\n    // 7.字体\r\n    const fontFamily = getRootVarible(root_computed, '--font-family')\r\n    return {\r\n      fontFamily,\r\n      colorPrimaryBg,\r\n      colorPrimaryBgHover,\r\n      colorPrimaryBorder,\r\n      colorPrimaryBorderHover,\r\n      colorPrimaryHover,\r\n      colorPrimary:\r\n        name === THEME_ENUM['dark'] ? darkColorPrimary : colorPrimary,\r\n      colorPrimaryActive,\r\n      colorPrimaryTextHover,\r\n      colorPrimaryText,\r\n      colorPrimaryTextActive,\r\n      colorSuccess,\r\n      colorWarning,\r\n      colorError,\r\n      colorInfo,\r\n      colorTextBase,\r\n      colorText,\r\n      colorTextSecondary,\r\n      colorTextTertiary,\r\n      colorTextQuaternary,\r\n      colorBorder,\r\n      colorBorderSecondary,\r\n      colorSplit,\r\n      colorFill,\r\n      colorFillSecondary,\r\n      colorFillTertiary,\r\n      colorFillQuaternary,\r\n      colorBgBase,\r\n      colorBgContainer,\r\n      colorBgElevated,\r\n      colorBgLayout,\r\n      colorBgSpotlight,\r\n      colorBgMask,\r\n      controlItemBgHover,\r\n\r\n      // 尺寸高度配置\r\n      controlHeightSM: 28,\r\n      controlHeight: 36,\r\n      controlHeightLG: 40,\r\n\r\n      // 圆角配置\r\n      borderRadiusSM: 6,\r\n      borderRadius: 6,\r\n      borderRadiusLG: 8,\r\n    }\r\n  }\r\n  // 设置主题\r\n  const setTheme = (name: THEME_ENUM) => {\r\n    // 1.设置color-scheme(系统自动设置作系统会对用户界面进行调整，包括表单控件、滚动条和 CSS 系统颜色的使用值。)\r\n    const root = document.documentElement\r\n    root.style.colorScheme = 'light'\r\n    // 2.如果有设置root类名和存在本地\r\n    if (name) {\r\n      root.className = name\r\n    }\r\n    // 3.从root获取主题色变量\r\n    const theme = getTheme(root, name)\r\n    // 4.设置变量到ant主题中\r\n    return {\r\n      token: theme,\r\n      algorithm:\r\n        name === THEME_ENUM['dark'] ? [darkAlgorithm] : [defaultAlgorithm],\r\n    }\r\n  }\r\n  return {\r\n    provideGlobalConfig,\r\n    getTheme,\r\n    setTheme,\r\n  }\r\n}\r\n"],"names":["theme"],"mappings":"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"}