{"version":3,"file":"use-predefine.mjs","names":[],"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"],"mappings":";;;;;;AAQA,MAAa,gBAAgB,UAA0B;CACrD,MAAM,EAAE,iBAAiB,OAAO,2BAA2B;CAE3D,MAAM,aAAa,IAAI,YAAY,MAAM,QAAQ,MAAM,MAAM,CAAC;AAE9D,aACQ,aAAa,QAClB,QAAQ;EACP,MAAM,QAAQ,IAAI,MAAM;GACtB,OAAO;GACP,aAAa,MAAM;GACpB,CAAC;AAEF,aAAW,MAAM,SAAS,SAAS;AACjC,QAAK,WAAW,MAAM,QAAQ,KAAK;IACnC;GAEL;AAED,mBAAkB;AAChB,aAAW,QAAQ,YAAY,MAAM,QAAQ,MAAM,MAAM;GACzD;CAEF,SAAS,aAAa,OAAe;AACnC,QAAM,MAAM,WAAW,MAAM,OAAO,OAAO;;CAG7C,SAAS,YAAY,QAAkB,OAAc;AACnD,SAAO,OAAO,KAAK,UAAU;GAC3B,MAAM,IAAI,IAAI,MAAM;IAClB;IACA,aAAa,MAAM;IACpB,CAAC;AACF,KAAE,WAAW,EAAE,QAAQ,MAAM;AAC7B,UAAO;IACP;;AAGJ,QAAO;EACL;EACA;EACD;;AAGH,MAAa,mBAAmB,UAA0B;CACxD,MAAM,KAAK,aAAa,kBAAkB;CAE1C,MAAM,UAAU,eAAe,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,YAAY,MAAM,SAAS,CAAC,CAAC;CAE3E,MAAM,YAAY,eAAe,GAAG,EAAE,SAAS,CAAC;CAEhD,SAAS,iBAAiB,MAAa;AACrC,SAAO;GACL,GAAG,EAAE,iBAAiB;GACtB,GAAG,GAAG,SAAS,KAAK,IAAI,QAAQ,GAAG,IAAI;GACvC,EAAE,UAAU,KAAK,UAAU;GAC5B;;AAGH,QAAO;EACL;EACA;EACA;EACD"}