{"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 { colorPickerPanelContextKey } from '../color-picker-panel'\nimport Color from '../utils/color'\n\nimport type { Ref } from 'vue'\nimport type { PredefineProps } from '../props/predefine'\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,0BAA0B;CAE1D,MAAM,aAAa,IAAI,YAAY,MAAM,QAAQ,MAAM,KAAK,CAAC;CAE7D,YACQ,aAAa,QAClB,QAAQ;EACP,MAAM,QAAQ,IAAI,MAAM;GACtB,OAAO;GACP,aAAa,MAAM;EACrB,CAAC;EAED,WAAW,MAAM,SAAS,SAAS;GACjC,KAAK,WAAW,MAAM,QAAQ,IAAI;EACpC,CAAC;CACH,CACF;CAEA,kBAAkB;EAChB,WAAW,QAAQ,YAAY,MAAM,QAAQ,MAAM,KAAK;CAC1D,CAAC;CAED,SAAS,aAAa,OAAe;EACnC,MAAM,MAAM,WAAW,MAAM,OAAO,MAAM;CAC5C;CAEA,SAAS,YAAY,QAAkB,OAAc;EACnD,OAAO,OAAO,KAAK,UAAU;GAC3B,MAAM,IAAI,IAAI,MAAM;IAClB;IACA,aAAa,MAAM;GACrB,CAAC;GACD,EAAE,WAAW,EAAE,QAAQ,KAAK;GAC5B,OAAO;EACT,CAAC;CACH;CAEA,OAAO;EACL;EACA;CACF;AACF;AAEA,MAAa,mBAAmB,UAA0B;CACxD,MAAM,KAAK,aAAa,iBAAiB;CAEzC,MAAM,UAAU,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,YAAY,MAAM,QAAQ,CAAC,CAAC;CAE1E,MAAM,YAAY,eAAe,GAAG,EAAE,QAAQ,CAAC;CAE/C,SAAS,iBAAiB,MAAa;EACrC,OAAO;GACL,GAAG,EAAE,gBAAgB;GACrB,GAAG,GAAG,SAAS,KAAK,IAAI,OAAO,IAAI,GAAG;GACtC,EAAE,UAAU,KAAK,SAAS;EAC5B;CACF;CAEA,OAAO;EACL;EACA;EACA;CACF;AACF"}