{"version":3,"file":"index.mjs","names":["classToHex","isCssColor","parseGradient","colors","setTextColor","el","color","currentTheme","cssColor","style","caretColor","setBackgroundColor","backgroundColor","borderColor","setBorderColor","modifiers","Object","keys","length","top","borderTopColor","right","borderRightColor","bottom","borderBottomColor","left","borderLeftColor","setGradientColor","gradient","backgroundImage","updateColor","binding","node","context","$vuetify","theme","arg","undefined","value","update","oldValue","Color","bind"],"sources":["../../../src/directives/color/index.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n// Utilities\nimport {\n  classToHex,\n  isCssColor,\n  parseGradient,\n} from '../../util/colorUtils'\nimport colors from '../../util/colors'\n\n// Types\nimport { VuetifyThemeVariant } from 'types/services/theme'\nimport { VNode, VNodeDirective } from 'vue'\n\ninterface BorderModifiers {\n  top?: Boolean\n  right?: Boolean\n  bottom?: Boolean\n  left?: Boolean\n}\n\nfunction setTextColor (\n  el: HTMLElement,\n  color: string,\n  currentTheme: Partial<VuetifyThemeVariant>,\n) {\n  const cssColor = !isCssColor(color) ? classToHex(color, colors, currentTheme) : color\n\n  el.style.color = cssColor\n  el.style.caretColor = cssColor\n}\n\nfunction setBackgroundColor (\n  el: HTMLElement,\n  color: string,\n  currentTheme: Partial<VuetifyThemeVariant>,\n) {\n  const cssColor = !isCssColor(color) ? classToHex(color, colors, currentTheme) : color\n\n  el.style.backgroundColor = cssColor\n  el.style.borderColor = cssColor\n}\n\nfunction setBorderColor (\n  el: HTMLElement,\n  color: string,\n  currentTheme: Partial<VuetifyThemeVariant>,\n  modifiers?: BorderModifiers,\n) {\n  const cssColor = !isCssColor(color) ? classToHex(color, colors, currentTheme) : color\n\n  if (!modifiers || !Object.keys(modifiers).length) {\n    el.style.borderColor = cssColor\n    return\n  }\n\n  if (modifiers.top) el.style.borderTopColor = cssColor\n  if (modifiers.right) el.style.borderRightColor = cssColor\n  if (modifiers.bottom) el.style.borderBottomColor = cssColor\n  if (modifiers.left) el.style.borderLeftColor = cssColor\n}\n\nfunction setGradientColor (\n  el: HTMLElement,\n  gradient: string,\n  currentTheme: Partial<VuetifyThemeVariant>,\n) {\n  el.style.backgroundImage = `linear-gradient(${\n    parseGradient(gradient, colors, currentTheme)\n  })`\n}\n\nfunction updateColor (\n  el: HTMLElement,\n  binding: VNodeDirective,\n  node: VNode\n) {\n  const currentTheme = node.context!.$vuetify.theme.currentTheme\n\n  if (binding.arg === undefined) {\n    setBackgroundColor(el, binding.value, currentTheme)\n  } else if (binding.arg === 'text') {\n    setTextColor(el, binding.value, currentTheme)\n  } else if (binding.arg === 'border') {\n    setBorderColor(el, binding.value, currentTheme, binding.modifiers)\n  } else if (binding.arg === 'gradient') {\n    setGradientColor(el, binding.value, currentTheme)\n  }\n}\n\nfunction update (\n  el: HTMLElement,\n  binding: VNodeDirective,\n  node: VNode\n) {\n  if (binding.value === binding.oldValue) return\n\n  updateColor(el, binding, node)\n}\n\nexport const Color = {\n  bind: updateColor,\n  update,\n}\n\nexport default Color\n"],"mappings":"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"}