{"version":3,"file":"useVariables.mjs","sources":["../../src/hooks/useVariables.ts"],"sourcesContent":["import { ref } from 'vue';\nimport type { Ref } from 'vue';\nimport { isString } from 'lodash-es';\nimport { THEME_MODE } from '../_common/js/common';\nimport { getColorTokenColor } from '../_common/js/utils/getColorTokenColor';\nimport useMutationObservable from './useMutationObservable';\n\n/**\n * useVariables\n * @param variable CSS 变量名\n * @example\n *   const { textColor, brandColor } = useVariables({\n *      textColor: '--td-color-primary',\n *      brandColor: '--td-brand-color',\n *   });\n */\nexport function useVariables<T extends Record<string, string>>(variables: T): Record<keyof T, Ref<string>> {\n  const values = {} as Record<keyof T, Ref<string>>;\n  let varsArray: string[] = [];\n\n  varsArray = Object.values(variables);\n  Object.entries(variables).forEach(([key, varName]) => {\n    values[key as keyof T] = ref(getColorTokenColor(varName));\n  });\n\n  varsArray.forEach((varName) => {\n    values[varName as keyof T] = ref(getColorTokenColor(varName));\n  });\n\n  const targetElement = document?.documentElement;\n  useMutationObservable(targetElement, (mutationsList) => {\n    mutationsList.some((mutation) => {\n      if (mutation.type === 'attributes' && mutation.attributeName === THEME_MODE) {\n        if (isString(variables) || Array.isArray(variables)) {\n          varsArray.forEach((varName) => {\n            values[varName].value = getColorTokenColor(varName);\n          });\n        } else {\n          Object.entries(variables).forEach(([key, varName]) => {\n            values[key].value = getColorTokenColor(varName);\n          });\n        }\n        return true;\n      }\n      return false;\n    });\n  });\n\n  return values;\n}\n"],"names":["useVariables","variables","_document","values","varsArray","Object","entries","forEach","_ref","_ref2","_slicedToArray","key","varName","ref","getColorTokenColor","targetElement","document","documentElement","useMutationObservable","mutationsList","some","mutation","type","attributeName","THEME_MODE","isString","Array","isArray","value","_ref3","_ref4"],"mappings":";;;;;;;;;;;;;;;;AAgBO,SAASA,aAA+CC,SAA4C,EAAA;AAAA,EAAA,IAAAC,SAAA,CAAA;EACzG,IAAMC,SAAS,EAAC,CAAA;EAChB,IAAIC,YAAsB,EAAC,CAAA;AAEfA,EAAAA,SAAA,GAAAC,MAAA,CAAOF,OAAOF,SAAS,CAAA,CAAA;EAC5BI,MAAA,CAAAC,OAAA,CAAQL,SAAS,CAAE,CAAAM,OAAA,CAAQ,UAAAC,IAAA,EAAoB;AAAA,IAAA,IAAAC,KAAA,GAAAC,cAAA,CAAAF,IAAA,EAAA,CAAA,CAAA;AAAlBG,MAAAA,GAAA,GAAAF,KAAA,CAAA,CAAA,CAAA;AAAKG,MAAAA,OAAO,GAAAH,KAAA,CAAA,CAAA,CAAA,CAAA;IAC9CN,MAAA,CAAOQ,GAAkB,CAAA,GAAAE,GAAA,CAAIC,kBAAmB,CAAAF,OAAO,CAAC,CAAA,CAAA;AAC1D,GAAC,CAAA,CAAA;AAESR,EAAAA,SAAA,CAAAG,OAAA,CAAQ,UAACK,OAAY,EAAA;IAC7BT,MAAA,CAAOS,OAAsB,CAAA,GAAAC,GAAA,CAAIC,kBAAmB,CAAAF,OAAO,CAAC,CAAA,CAAA;AAC9D,GAAC,CAAA,CAAA;EAED,IAAMG,6BAAgBC,QAAU,cAAAd,SAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,SAAA,CAAUe,eAAA,CAAA;AACVC,EAAAA,qBAAA,CAAAH,aAAA,EAAe,UAACI,aAAkB,EAAA;AACxCA,IAAAA,aAAA,CAAAC,IAAA,CAAK,UAACC,QAAa,EAAA;MAC/B,IAAIA,QAAS,CAAAC,IAAA,KAAS,YAAgB,IAAAD,QAAA,CAASE,kBAAkBC,UAAY,EAAA;QAC3E,IAAIC,SAASxB,SAAS,CAAA,IAAKyB,KAAM,CAAAC,OAAA,CAAQ1B,SAAS,CAAG,EAAA;AACzCG,UAAAA,SAAA,CAAAG,OAAA,CAAQ,UAACK,OAAY,EAAA;YACtBT,MAAA,CAAAS,OAAA,CAAA,CAASgB,KAAQ,GAAAd,kBAAA,CAAmBF,OAAO,CAAA,CAAA;AACpD,WAAC,CAAA,CAAA;AACH,SAAO,MAAA;UACEP,MAAA,CAAAC,OAAA,CAAQL,SAAS,CAAE,CAAAM,OAAA,CAAQ,UAAAsB,KAAA,EAAoB;AAAA,YAAA,IAAAC,KAAA,GAAApB,cAAA,CAAAmB,KAAA,EAAA,CAAA,CAAA;AAAlBlB,cAAAA,GAAA,GAAAmB,KAAA,CAAA,CAAA,CAAA;AAAKlB,cAAAA,OAAO,GAAAkB,KAAA,CAAA,CAAA,CAAA,CAAA;YACvC3B,MAAA,CAAAQ,GAAA,CAAA,CAAKiB,KAAQ,GAAAd,kBAAA,CAAmBF,OAAO,CAAA,CAAA;AAChD,WAAC,CAAA,CAAA;AACH,SAAA;AACO,QAAA,OAAA,IAAA,CAAA;AACT,OAAA;AACO,MAAA,OAAA,KAAA,CAAA;AACT,KAAC,CAAA,CAAA;AACH,GAAC,CAAA,CAAA;AAEM,EAAA,OAAAT,MAAA,CAAA;AACT;;;;"}