{"version":3,"file":"color-picker-panel.vue2.mjs","sources":["../../../../../../packages/components/color-picker-panel/src/color-picker-panel.vue"],"sourcesContent":["<template>\n  <div\n    :class=\"[ns.b(), ns.is('disabled', disabled), ns.is('border', border)]\"\n    @focusout=\"handleFocusout\"\n  >\n    <div :class=\"ns.e('wrapper')\">\n      <hue-slider\n        ref=\"hueRef\"\n        class=\"hue-slider\"\n        :color=\"color\"\n        vertical\n        :disabled=\"disabled\"\n      />\n      <sv-panel ref=\"svRef\" :color=\"color\" :disabled=\"disabled\" />\n    </div>\n    <alpha-slider\n      v-if=\"showAlpha\"\n      ref=\"alphaRef\"\n      :color=\"color\"\n      :disabled=\"disabled\"\n    />\n    <predefine\n      v-if=\"predefine\"\n      ref=\"predefine\"\n      :enable-alpha=\"showAlpha\"\n      :color=\"color\"\n      :colors=\"predefine\"\n      :disabled=\"disabled\"\n    />\n    <div :class=\"ns.e('footer')\">\n      <el-input\n        ref=\"inputRef\"\n        v-model=\"customInput\"\n        :validate-event=\"false\"\n        size=\"small\"\n        :disabled=\"disabled\"\n        @change=\"handleConfirm\"\n      />\n      <slot name=\"footer\" />\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, nextTick, onMounted, provide, ref, watch } from 'vue'\nimport { ElInput } from '@element-plus/components/input'\nimport { useFormDisabled, useFormItem } from '@element-plus/components/form'\nimport { useNamespace } from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport AlphaSlider from './components/alpha-slider.vue'\nimport HueSlider from './components/hue-slider.vue'\nimport Predefine from './components/predefine.vue'\nimport SvPanel from './components/sv-panel.vue'\nimport {\n  ROOT_COMMON_COLOR_INJECTION_KEY,\n  colorPickerPanelContextKey,\n  colorPickerPanelEmits,\n} from './color-picker-panel'\nimport { useCommonColor } from './composables/use-common-color'\n\nimport type { ColorPickerPanelProps } from './color-picker-panel'\nimport type { InputInstance } from '@element-plus/components/input'\n\ndefineOptions({\n  name: 'ElColorPickerPanel',\n})\nconst props = withDefaults(defineProps<ColorPickerPanelProps>(), {\n  modelValue: undefined,\n  border: true,\n  validateEvent: true,\n})\nconst emit = defineEmits(colorPickerPanelEmits)\n\nconst ns = useNamespace('color-picker-panel')\nconst { formItem } = useFormItem()\nconst disabled = useFormDisabled()\nconst hueRef = ref<InstanceType<typeof HueSlider>>()\nconst svRef = ref<InstanceType<typeof SvPanel>>()\nconst alphaRef = ref<InstanceType<typeof AlphaSlider>>()\nconst inputRef = ref<InputInstance>()\nconst customInput = ref('')\n\nconst { color } = inject(\n  ROOT_COMMON_COLOR_INJECTION_KEY,\n  () => useCommonColor(props, emit),\n  true\n)\n\nfunction handleConfirm() {\n  color.fromString(customInput.value)\n  if (color.value !== customInput.value) {\n    customInput.value = color.value\n  }\n}\n\nfunction handleFocusout() {\n  if (props.validateEvent) {\n    formItem?.validate?.('blur').catch((err) => debugWarn(err))\n  }\n}\n\nfunction update() {\n  hueRef.value?.update()\n  svRef.value?.update()\n  alphaRef.value?.update()\n}\n\nonMounted(() => {\n  if (props.modelValue) {\n    customInput.value = color.value\n  }\n  nextTick(update)\n})\n\nwatch(\n  () => props.modelValue,\n  (newVal) => {\n    if (newVal !== color.value) {\n      newVal ? color.fromString(newVal) : color.clear()\n    }\n  }\n)\n\nwatch(\n  () => color.value,\n  (val) => {\n    emit(UPDATE_MODEL_EVENT, val)\n    customInput.value = val\n    if (props.validateEvent) {\n      formItem?.validate('change').catch((err) => debugWarn(err))\n    }\n  }\n)\n\nprovide(colorPickerPanelContextKey, {\n  currentColor: computed(() => color.value),\n})\n\ndefineExpose({\n  /**\n   * @description current color object\n   */\n  color,\n  /**\n   * @description custom input ref\n   */\n  inputRef,\n  /**\n   * @description update sub components\n   */\n  update,\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_unref","_createElementVNode","_createVNode","HueSlider","SvPanel","_createBlock","AlphaSlider","Predefine","_renderSlot"],"mappings":"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"}