UNPKG

tdesign-mobile-vue

Version:
1 lines 3.8 kB
{"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;;;;"}