{"version":3,"file":"use-predefine.mjs","sources":["../../../../../../../packages/components/color-picker-panel/src/composables/use-predefine.ts"],"sourcesContent":["import { computed, inject, ref, watch, watchEffect } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { PredefineProps } from '../props/predefine'\nimport { colorPickerPanelContextKey } from '../color-picker-panel'\nimport Color from '../utils/color'\n\nimport type { Ref } from 'vue'\n\nexport const usePredefine = (props: PredefineProps) => {\n  const { currentColor } = inject(colorPickerPanelContextKey)!\n\n  const rgbaColors = ref(parseColors(props.colors, props.color)) as Ref<Color[]>\n\n  watch(\n    () => currentColor.value,\n    (val) => {\n      const color = new Color({\n        value: val,\n        enableAlpha: props.enableAlpha,\n      })\n\n      rgbaColors.value.forEach((item) => {\n        item.selected = color.compare(item)\n      })\n    }\n  )\n\n  watchEffect(() => {\n    rgbaColors.value = parseColors(props.colors, props.color)\n  })\n\n  function handleSelect(index: number) {\n    props.color.fromString(props.colors[index])\n  }\n\n  function parseColors(colors: string[], color: Color) {\n    return colors.map((value) => {\n      const c = new Color({\n        value,\n        enableAlpha: props.enableAlpha,\n      })\n      c.selected = c.compare(color)\n      return c\n    })\n  }\n\n  return {\n    rgbaColors,\n    handleSelect,\n  }\n}\n\nexport const usePredefineDOM = (props: PredefineProps) => {\n  const ns = useNamespace('color-predefine')\n\n  const rootKls = computed(() => [ns.b(), ns.is('disabled', props.disabled)])\n\n  const colorsKls = computed(() => ns.e('colors'))\n\n  function colorSelectorKls(item: Color) {\n    return [\n      ns.e('color-selector'),\n      ns.is('alpha', item.get('alpha') < 100),\n      { selected: item.selected },\n    ]\n  }\n\n  return {\n    rootKls,\n    colorsKls,\n    colorSelectorKls,\n  }\n}\n"],"names":[],"mappings":";;;;;AAQO,MAAM,YAAA,GAAe,CAAC,KAAA,KAA0B;AACrD,EAAA,MAAM,EAAE,YAAA,EAAa,GAAI,MAAA,CAAO,0BAA0B,CAAA;AAE1D,EAAA,MAAM,aAAa,GAAA,CAAI,WAAA,CAAY,MAAM,MAAA,EAAQ,KAAA,CAAM,KAAK,CAAC,CAAA;AAE7D,EAAA,KAAA;AAAA,IACE,MAAM,YAAA,CAAa,KAAA;AAAA,IACnB,CAAC,GAAA,KAAQ;AACP,MAAA,MAAM,KAAA,GAAQ,IAAI,KAAA,CAAM;AAAA,QACtB,KAAA,EAAO,GAAA;AAAA,QACP,aAAa,KAAA,CAAM;AAAA,OACpB,CAAA;AAED,MAAA,UAAA,CAAW,KAAA,CAAM,OAAA,CAAQ,CAAC,IAAA,KAAS;AACjC,QAAA,IAAA,CAAK,QAAA,GAAW,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA;AAAA,MACpC,CAAC,CAAA;AAAA,IACH;AAAA,GACF;AAEA,EAAA,WAAA,CAAY,MAAM;AAChB,IAAA,UAAA,CAAW,KAAA,GAAQ,WAAA,CAAY,KAAA,CAAM,MAAA,EAAQ,MAAM,KAAK,CAAA;AAAA,EAC1D,CAAC,CAAA;AAED,EAAA,SAAS,aAAa,KAAA,EAAe;AACnC,IAAA,KAAA,CAAM,KAAA,CAAM,UAAA,CAAW,KAAA,CAAM,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,EAC5C;AAEA,EAAA,SAAS,WAAA,CAAY,QAAkB,KAAA,EAAc;AACnD,IAAA,OAAO,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU;AAC3B,MAAA,MAAM,CAAA,GAAI,IAAI,KAAA,CAAM;AAAA,QAClB,KAAA;AAAA,QACA,aAAa,KAAA,CAAM;AAAA,OACpB,CAAA;AACD,MAAA,CAAA,CAAE,QAAA,GAAW,CAAA,CAAE,OAAA,CAAQ,KAAK,CAAA;AAC5B,MAAA,OAAO,CAAA;AAAA,IACT,CAAC,CAAA;AAAA,EACH;AAEA,EAAA,OAAO;AAAA,IACL,UAAA;AAAA,IACA;AAAA,GACF;AACF;AAEO,MAAM,eAAA,GAAkB,CAAC,KAAA,KAA0B;AACxD,EAAA,MAAM,EAAA,GAAK,aAAa,iBAAiB,CAAA;AAEzC,EAAA,MAAM,OAAA,GAAU,QAAA,CAAS,MAAM,CAAC,EAAA,CAAG,CAAA,EAAE,EAAG,EAAA,CAAG,EAAA,CAAG,UAAA,EAAY,KAAA,CAAM,QAAQ,CAAC,CAAC,CAAA;AAE1E,EAAA,MAAM,YAAY,QAAA,CAAS,MAAM,EAAA,CAAG,CAAA,CAAE,QAAQ,CAAC,CAAA;AAE/C,EAAA,SAAS,iBAAiB,IAAA,EAAa;AACrC,IAAA,OAAO;AAAA,MACL,EAAA,CAAG,EAAE,gBAAgB,CAAA;AAAA,MACrB,GAAG,EAAA,CAAG,OAAA,EAAS,KAAK,GAAA,CAAI,OAAO,IAAI,GAAG,CAAA;AAAA,MACtC,EAAE,QAAA,EAAU,IAAA,CAAK,QAAA;AAAS,KAC5B;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,OAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}