vuetify
Version:
Vue Material Component Framework
1 lines • 4.54 kB
Source Map (JSON)
{"version":3,"file":"color.mjs","names":["computed","isRef","destructComputed","isCssColor","useColor","colors","classes","styles","value","background","backgroundColor","push","text","color","caretColor","colorClasses","colorStyles","useTextColor","props","name","textColorClasses","textColorStyles","useBackgroundColor","backgroundColorClasses","backgroundColorStyles"],"sources":["../../src/composables/color.ts"],"sourcesContent":["// Utilities\nimport { computed, isRef } from 'vue'\nimport { destructComputed, isCssColor } from '@/util'\n\n// Types\nimport type { CSSProperties, Ref } from 'vue'\n\ntype ColorValue = string | false | null | undefined\n\nexport interface TextColorData {\n textColorClasses: Ref<string[]>\n textColorStyles: Ref<CSSProperties>\n}\n\nexport interface BackgroundColorData {\n backgroundColorClasses: Ref<string[]>\n backgroundColorStyles: Ref<CSSProperties>\n}\n\n// Composables\nexport function useColor (colors: Ref<{ background?: ColorValue, text?: ColorValue }>) {\n return destructComputed(() => {\n const classes: string[] = []\n const styles: CSSProperties = {}\n\n if (colors.value.background) {\n if (isCssColor(colors.value.background)) {\n styles.backgroundColor = colors.value.background\n } else {\n classes.push(`bg-${colors.value.background}`)\n }\n }\n\n if (colors.value.text) {\n if (isCssColor(colors.value.text)) {\n styles.color = colors.value.text\n styles.caretColor = colors.value.text\n } else {\n classes.push(`text-${colors.value.text}`)\n }\n }\n\n return { colorClasses: classes, colorStyles: styles }\n })\n}\n\nexport function useTextColor (color: Ref<ColorValue>): TextColorData\nexport function useTextColor <T extends Record<K, ColorValue>, K extends string> (props: T, name: K): TextColorData\nexport function useTextColor <T extends Record<K, ColorValue>, K extends string> (\n props: T | Ref<ColorValue>,\n name?: K\n): TextColorData {\n const colors = computed(() => ({\n text: isRef(props) ? props.value : (name ? props[name] : null),\n }))\n\n const {\n colorClasses: textColorClasses,\n colorStyles: textColorStyles,\n } = useColor(colors)\n\n return { textColorClasses, textColorStyles }\n}\n\nexport function useBackgroundColor (color: Ref<ColorValue>): BackgroundColorData\nexport function useBackgroundColor <T extends Record<K, ColorValue>, K extends string> (props: T, name: K): BackgroundColorData\nexport function useBackgroundColor <T extends Record<K, ColorValue>, K extends string> (\n props: T | Ref<ColorValue>,\n name?: K\n): BackgroundColorData {\n const colors = computed(() => ({\n background: isRef(props) ? props.value : (name ? props[name] : null),\n }))\n\n const {\n colorClasses: backgroundColorClasses,\n colorStyles: backgroundColorStyles,\n } = useColor(colors)\n\n return { backgroundColorClasses, backgroundColorStyles }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,gBAAgB,EAAEC,UAAU,6BAErC;AAeA;AACA,OAAO,SAASC,QAAQ,CAAEC,MAA2D,EAAE;EACrF,OAAOH,gBAAgB,CAAC,MAAM;IAC5B,MAAMI,OAAiB,GAAG,EAAE;IAC5B,MAAMC,MAAqB,GAAG,CAAC,CAAC;IAEhC,IAAIF,MAAM,CAACG,KAAK,CAACC,UAAU,EAAE;MAC3B,IAAIN,UAAU,CAACE,MAAM,CAACG,KAAK,CAACC,UAAU,CAAC,EAAE;QACvCF,MAAM,CAACG,eAAe,GAAGL,MAAM,CAACG,KAAK,CAACC,UAAU;MAClD,CAAC,MAAM;QACLH,OAAO,CAACK,IAAI,CAAE,MAAKN,MAAM,CAACG,KAAK,CAACC,UAAW,EAAC,CAAC;MAC/C;IACF;IAEA,IAAIJ,MAAM,CAACG,KAAK,CAACI,IAAI,EAAE;MACrB,IAAIT,UAAU,CAACE,MAAM,CAACG,KAAK,CAACI,IAAI,CAAC,EAAE;QACjCL,MAAM,CAACM,KAAK,GAAGR,MAAM,CAACG,KAAK,CAACI,IAAI;QAChCL,MAAM,CAACO,UAAU,GAAGT,MAAM,CAACG,KAAK,CAACI,IAAI;MACvC,CAAC,MAAM;QACLN,OAAO,CAACK,IAAI,CAAE,QAAON,MAAM,CAACG,KAAK,CAACI,IAAK,EAAC,CAAC;MAC3C;IACF;IAEA,OAAO;MAAEG,YAAY,EAAET,OAAO;MAAEU,WAAW,EAAET;IAAO,CAAC;EACvD,CAAC,CAAC;AACJ;AAIA,OAAO,SAASU,YAAY,CAC1BC,KAA0B,EAC1BC,IAAQ,EACO;EACf,MAAMd,MAAM,GAAGL,QAAQ,CAAC,OAAO;IAC7BY,IAAI,EAAEX,KAAK,CAACiB,KAAK,CAAC,GAAGA,KAAK,CAACV,KAAK,GAAIW,IAAI,GAAGD,KAAK,CAACC,IAAI,CAAC,GAAG;EAC3D,CAAC,CAAC,CAAC;EAEH,MAAM;IACJJ,YAAY,EAAEK,gBAAgB;IAC9BJ,WAAW,EAAEK;EACf,CAAC,GAAGjB,QAAQ,CAACC,MAAM,CAAC;EAEpB,OAAO;IAAEe,gBAAgB;IAAEC;EAAgB,CAAC;AAC9C;AAIA,OAAO,SAASC,kBAAkB,CAChCJ,KAA0B,EAC1BC,IAAQ,EACa;EACrB,MAAMd,MAAM,GAAGL,QAAQ,CAAC,OAAO;IAC7BS,UAAU,EAAER,KAAK,CAACiB,KAAK,CAAC,GAAGA,KAAK,CAACV,KAAK,GAAIW,IAAI,GAAGD,KAAK,CAACC,IAAI,CAAC,GAAG;EACjE,CAAC,CAAC,CAAC;EAEH,MAAM;IACJJ,YAAY,EAAEQ,sBAAsB;IACpCP,WAAW,EAAEQ;EACf,CAAC,GAAGpB,QAAQ,CAACC,MAAM,CAAC;EAEpB,OAAO;IAAEkB,sBAAsB;IAAEC;EAAsB,CAAC;AAC1D"}