{"version":3,"file":"color-picker.vue2.mjs","sources":["../../../components/color-picker/color-picker.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { Button } from '@/components/button'\r\nimport { Icon } from '@/components/icon'\r\nimport { Input } from '@/components/input'\r\nimport { Popper } from '@/components/popper'\r\nimport { Renderer } from '@/components/renderer'\r\nimport { useFieldStore } from '@/components/form'\r\n\r\nimport { computed, nextTick, ref, toRef, watch } from 'vue'\r\n\r\nimport ColorPalette from './color-palette.vue'\r\nimport ColorHue from './color-hue.vue'\r\nimport ColorAlpha from './color-alpha.vue'\r\nimport { placementWhileList, useClickOutside, useHover, usePopper } from '@vexip-ui/hooks'\r\nimport {\r\n  createIconProp,\r\n  createSizeProp,\r\n  createStateProp,\r\n  emitEvent,\r\n  useIcons,\r\n  useLocale,\r\n  useNameHelper,\r\n  useProps,\r\n} from '@vexip-ui/config'\r\nimport {\r\n  getLast,\r\n  hsvToHsl,\r\n  hsvToRgb,\r\n  isClient,\r\n  isElement,\r\n  parseColorToRgba,\r\n  rgbToHex,\r\n  rgbToHsv,\r\n  rgbaToHex,\r\n  toAttrValue,\r\n  toFixed,\r\n} from '@vexip-ui/utils'\r\nimport { colorPickerProps } from './props'\r\nimport { defaultShortcuts, getDefaultHsv } from './symbol'\r\n\r\nimport type { PopperExposed } from '@/components/popper'\r\nimport type { Color, HSLAColor, HSVAColor, HSVColor, RGBAColor } from '@vexip-ui/utils'\r\nimport type { ColorFormat, ColorPrickerSlots } from './symbol'\r\n\r\ndefineOptions({ name: 'ColorPicker' })\r\n\r\nconst {\r\n  idFor,\r\n  labelId,\r\n  state,\r\n  disabled,\r\n  loading,\r\n  size,\r\n  validateField,\r\n  clearField,\r\n  getFieldValue,\r\n  setFieldValue,\r\n} = useFieldStore<Color | null>(() => reference.value?.focus())\r\n\r\nconst nh = useNameHelper('color-picker')\r\n\r\nconst _props = defineProps(colorPickerProps)\r\nconst props = useProps('colorPicker', _props, {\r\n  size: createSizeProp(size),\r\n  state: createStateProp(state),\r\n  locale: null,\r\n  value: {\r\n    default: () => getFieldValue()!,\r\n    static: true,\r\n  },\r\n  visible: false,\r\n  format: {\r\n    default: 'rgb',\r\n    validator: value => ['rgb', 'hsl', 'hsv', 'hex'].includes(value),\r\n  },\r\n  alpha: false,\r\n  disabled: () => disabled.value,\r\n  transitionName: () => nh.ns('drop'),\r\n  noInput: false,\r\n  shortcut: false,\r\n  placement: {\r\n    default: 'bottom',\r\n    validator: value => placementWhileList.includes(value),\r\n  },\r\n  transfer: false,\r\n  outsideClose: true,\r\n  clearable: false,\r\n  cancelText: null,\r\n  confirmText: null,\r\n  prefix: createIconProp(),\r\n  prefixColor: '',\r\n  suffix: createIconProp(),\r\n  suffixColor: '',\r\n  noSuffix: false,\r\n  staticSuffix: false,\r\n  loading: () => loading.value,\r\n  loadingIcon: createIconProp(),\r\n  loadingLock: false,\r\n  loadingEffect: null,\r\n  popperAlive: null,\r\n  showLabel: false,\r\n  labelFormat: null,\r\n  slots: () => ({}),\r\n})\r\n\r\nconst emit = defineEmits(['update:value', 'update:visible'])\r\n\r\nconst slots = defineSlots<ColorPrickerSlots>()\r\n\r\nconst icons = useIcons()\r\nconst locale = useLocale('colorPicker', toRef(props, 'locale'))\r\n\r\nconst isEmpty = ref(true)\r\nconst currentVisible = ref(props.visible)\r\nconst currentValue = ref<HSVColor>(null!)\r\nconst currentAlpha = ref(1)\r\nconst editing = ref(false)\r\nconst placement = toRef(props, 'placement')\r\nconst transfer = toRef(props, 'transfer')\r\nconst shortcutHitting = ref(0)\r\nconst shortcutsFocused = ref(false)\r\n\r\nparseValue(props.value)\r\n\r\nconst palette = ref(null)\r\nconst hue = ref(null)\r\nconst alphaEl = ref(null)\r\nconst shortcutEl = ref(null)\r\nconst input = ref(null)\r\nconst cancel = ref(null)\r\nconst confirm = ref(null)\r\n\r\nconst wrapper = useClickOutside(handleClickOutside)\r\nconst popper = ref<PopperExposed>()\r\nconst { reference, transferTo, updatePopper } = usePopper({\r\n  placement,\r\n  transfer,\r\n  wrapper,\r\n  popper: computed(() => popper.value?.wrapper),\r\n  isDrop: true,\r\n})\r\nconst { isHover } = useHover(reference)\r\n\r\nconst unitList = computed(() => {\r\n  return [\r\n    palette.value,\r\n    hue.value,\r\n    alphaEl.value,\r\n    shortcutEl.value,\r\n    input.value,\r\n    cancel.value,\r\n    confirm.value,\r\n  ].filter(Boolean) as any[]\r\n})\r\n\r\nconst lastValue = ref<HSVAColor>({\r\n  ...currentValue.value,\r\n  a: currentAlpha.value,\r\n  format: 'hsva',\r\n})\r\n\r\nconst className = computed(() => {\r\n  return {\r\n    [nh.b()]: true,\r\n    [nh.ns('input-vars')]: true,\r\n    [nh.bs('vars')]: true,\r\n    [nh.bm('inherit')]: props.inherit,\r\n    [nh.bm('empty')]: isEmpty.value && !currentVisible.value,\r\n    [nh.bm('focused')]: currentVisible.value,\r\n    [nh.bm('disabled')]: props.disabled,\r\n    [nh.bm('alpha')]: props.alpha,\r\n    [nh.bm(props.size)]: props.size !== 'default',\r\n    [nh.bm(props.state)]: props.state !== 'default',\r\n  }\r\n})\r\nconst readonly = computed(() => props.loading && props.loadingLock)\r\nconst selectorClass = computed(() => {\r\n  const baseCls = nh.be('selector')\r\n\r\n  return {\r\n    [baseCls]: true,\r\n    [`${baseCls}--disabled`]: props.disabled,\r\n    [`${baseCls}--readonly`]: readonly.value,\r\n    [`${baseCls}--loading`]: props.loading,\r\n    [`${baseCls}--${props.size}`]: props.size !== 'default',\r\n    [`${baseCls}--focused`]: currentVisible.value,\r\n    [`${baseCls}--${props.state}`]: props.state !== 'default',\r\n  }\r\n})\r\nconst rgb = computed(() => {\r\n  const { h, s, v } =\r\n    currentValue.value && currentVisible.value\r\n      ? currentValue.value\r\n      : (lastValue.value ?? { h: 0, s: 0, v: 0 })\r\n\r\n  return hsvToRgb(h, s, v)\r\n})\r\nconst hex = computed(() => {\r\n  const { r, g, b } = rgb.value\r\n\r\n  if (props.alpha) {\r\n    return rgbaToHex(r, g, b, currentAlpha.value)\r\n  }\r\n\r\n  return rgbToHex(r, g, b)\r\n})\r\nconst shortcutList = computed(() => {\r\n  if (!props.shortcut) return []\r\n\r\n  if (Array.isArray(props.shortcut)) {\r\n    return props.shortcut\r\n  }\r\n\r\n  return defaultShortcuts\r\n})\r\nconst hasPrefix = computed(() => !!(slots.prefix || props.prefix || props.slots.prefix))\r\nconst showClear = computed(() => {\r\n  return !props.disabled && !readonly.value && props.clearable && isHover.value && !isEmpty.value\r\n})\r\nconst formattedColor = computed(() => getFormattedColor(props.format))\r\nconst labelColor = computed(() => {\r\n  return (\r\n    props.labelFormat ? getFormattedColor(props.labelFormat) : formattedColor.value\r\n  )?.toString()\r\n})\r\n\r\nwatch(\r\n  () => props.visible,\r\n  value => {\r\n    currentVisible.value = value\r\n  },\r\n)\r\nwatch(currentVisible, value => {\r\n  value && updatePopper()\r\n})\r\nwatch(\r\n  () => props.value,\r\n  value => {\r\n    parseValue(value)\r\n    lastValue.value = { ...currentValue.value, a: currentAlpha.value, format: 'hsva' }\r\n  },\r\n)\r\nwatch(\r\n  () => props.disabled,\r\n  value => {\r\n    if (value) {\r\n      setVisible(false)\r\n    }\r\n  },\r\n)\r\n\r\ndefineExpose({\r\n  idFor,\r\n  isEmpty,\r\n  currentVisible,\r\n  currentValue,\r\n  currentAlpha,\r\n  rgb,\r\n  hex,\r\n  labelColor,\r\n  wrapper,\r\n  reference,\r\n  popper,\r\n  toggleVisible,\r\n  focus,\r\n  blur,\r\n})\r\n\r\nfunction parseValue(value: Color | null) {\r\n  if (value) {\r\n    const { r, g, b, a } = parseColorToRgba(value)\r\n\r\n    isEmpty.value = false\r\n    currentValue.value = rgbToHsv(r, g, b)\r\n    currentAlpha.value = a\r\n  } else {\r\n    isEmpty.value = true\r\n    currentValue.value = getDefaultHsv()\r\n    currentAlpha.value = 1\r\n  }\r\n}\r\n\r\nfunction setVisible(visible: boolean) {\r\n  if (currentVisible.value === visible) return\r\n\r\n  currentVisible.value = visible\r\n\r\n  emit('update:visible', visible)\r\n  emitEvent(props.onToggle, visible)\r\n}\r\n\r\nfunction getFormattedColor(format: ColorFormat) {\r\n  let color: Color\r\n\r\n  if (format === 'hex') {\r\n    const { r, g, b } = rgb.value\r\n\r\n    if (props.alpha) {\r\n      color = rgbaToHex(r, g, b, currentAlpha.value)\r\n    } else {\r\n      color = rgbToHex(r, g, b)\r\n    }\r\n  } else {\r\n    switch (format) {\r\n      case 'rgb': {\r\n        color = { ...rgb.value } as RGBAColor\r\n        color.r = Math.round(color.r)\r\n        color.g = Math.round(color.g)\r\n        color.b = Math.round(color.b)\r\n\r\n        break\r\n      }\r\n      case 'hsl': {\r\n        const { h, s, v } = currentValue.value\r\n\r\n        color = hsvToHsl(h, s, v) as HSLAColor\r\n        color.h = Math.round(color.h)\r\n        color.s = toFixed(color.s, 3)\r\n        color.l = toFixed(color.l, 3)\r\n\r\n        break\r\n      }\r\n      default: {\r\n        color = { ...currentValue.value } as HSVAColor\r\n        color.h = Math.round(color.h)\r\n        color.s = toFixed(color.s, 3)\r\n        color.v = toFixed(color.v, 3)\r\n      }\r\n    }\r\n\r\n    color.a = toFixed(currentAlpha.value, 3)\r\n  }\r\n\r\n  return color\r\n}\r\n\r\nfunction handleClickOutside() {\r\n  if (!editing.value) {\r\n    emitEvent(props.onClickOutside)\r\n\r\n    if (props.outsideClose && currentVisible.value) {\r\n      setVisible(false)\r\n      emitEvent(props.onOutsideClose)\r\n    }\r\n  }\r\n}\r\n\r\nfunction toggleVisible() {\r\n  if (props.disabled || readonly.value) return\r\n\r\n  setVisible(!currentVisible.value)\r\n}\r\n\r\nfunction handleClear() {\r\n  if (props.disabled || readonly.value) return\r\n\r\n  if (props.clearable) {\r\n    setVisible(false)\r\n    emit('update:value', '')\r\n    emitEvent(props.onChange, '')\r\n\r\n    nextTick(() => {\r\n      parseValue(null)\r\n      clearField()\r\n      emitEvent(props.onClear)\r\n    })\r\n  }\r\n}\r\n\r\nfunction handleConfirm() {\r\n  if (props.disabled || readonly.value) return\r\n\r\n  lastValue.value = { ...currentValue.value, a: currentAlpha.value, format: 'hsva' }\r\n  isEmpty.value = false\r\n  setVisible(false)\r\n  handleChange()\r\n}\r\n\r\nfunction handleChange() {\r\n  const color = formattedColor.value\r\n\r\n  emit('update:value', color)\r\n  setFieldValue(color)\r\n  emitEvent(props.onChange, color)\r\n  validateField()\r\n}\r\n\r\nfunction handlePaletteChange({ s, v }: HSVColor) {\r\n  currentValue.value.s = s\r\n  currentValue.value.v = v\r\n}\r\n\r\nfunction handleHueChange(hue: number) {\r\n  currentValue.value.h = hue\r\n}\r\n\r\nfunction handleAlphaChange(alpha: number) {\r\n  currentAlpha.value = alpha\r\n}\r\n\r\nfunction handleInputColor(value: string) {\r\n  const { r, g, b, a } = parseColorToRgba(value)\r\n\r\n  currentValue.value = rgbToHsv(r, g, b)\r\n  currentAlpha.value = a\r\n}\r\n\r\nfunction handleShortcutClick(color: string) {\r\n  const { r, g, b, a } = parseColorToRgba(color)\r\n\r\n  currentValue.value = rgbToHsv(r, g, b)\r\n  currentAlpha.value = a\r\n\r\n  emitEvent(props.onShortcut, formattedColor.value)\r\n}\r\n\r\nfunction toggleEditing(able: boolean) {\r\n  if (!able) {\r\n    setTimeout(() => {\r\n      editing.value = false\r\n    }, 0)\r\n  } else {\r\n    editing.value = true\r\n  }\r\n}\r\n\r\nfunction handleTabDown(event: KeyboardEvent) {\r\n  if (isClient && currentVisible.value) {\r\n    const activeEl = document && document.activeElement\r\n\r\n    if (!activeEl) return\r\n\r\n    event.preventDefault()\r\n\r\n    const shift = event.shiftKey\r\n    const elList = Array.from(unitList.value)\r\n    const index = elList.findIndex(unit => {\r\n      const el = isElement(unit) ? unit : unit.$el\r\n\r\n      return el === activeEl || el.contains(activeEl)\r\n    })\r\n\r\n    let maybeEl: any\r\n\r\n    if (!~index) {\r\n      maybeEl = shift ? getLast(elList) : elList[0]\r\n    } else if (shift ? !index : index === elList.length - 1) {\r\n      maybeEl = reference.value\r\n    } else {\r\n      maybeEl = elList[index + (shift ? -1 : 1)]\r\n    }\r\n\r\n    if (maybeEl) {\r\n      if (typeof maybeEl.focus === 'function') {\r\n        maybeEl.focus()\r\n      } else {\r\n        maybeEl.$el?.focus()\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\nfunction handleShortcutsFocus() {\r\n  shortcutHitting.value = 0\r\n  shortcutsFocused.value = true\r\n}\r\n\r\nfunction handleShortcutsKeydown(event: KeyboardEvent) {\r\n  const key = event.code || event.key\r\n  const shortcutCount = shortcutList.value.length\r\n\r\n  switch (key) {\r\n    case 'ArrowUp':\r\n    case 'ArrowLeft': {\r\n      shortcutHitting.value--\r\n      break\r\n    }\r\n    case 'ArrowDown':\r\n    case 'ArrowRight': {\r\n      shortcutHitting.value++\r\n      break\r\n    }\r\n    case 'Enter':\r\n    case 'Space':\r\n    case ' ': {\r\n      const color = shortcutList.value[shortcutHitting.value]\r\n\r\n      color && handleShortcutClick(color)\r\n      break\r\n    }\r\n  }\r\n\r\n  shortcutHitting.value = (shortcutHitting.value + shortcutCount) % shortcutCount\r\n}\r\n\r\nfunction handleSpaceDown(event: KeyboardEvent) {\r\n  if (props.disabled) {\r\n    setVisible(false)\r\n  } else {\r\n    event.preventDefault()\r\n\r\n    if (currentVisible.value) {\r\n      handleConfirm()\r\n      reference.value?.focus()\r\n    } else {\r\n      setVisible(true)\r\n    }\r\n  }\r\n}\r\n\r\nfunction handleEscDown() {\r\n  setVisible(false)\r\n  reference.value?.focus()\r\n}\r\n\r\nfunction focus(options?: FocusOptions) {\r\n  reference.value?.focus(options)\r\n}\r\n\r\nfunction blur() {\r\n  reference.value?.blur()\r\n}\r\n</script>\r\n\r\n<template>\r\n  <div\r\n    :id=\"idFor\"\r\n    ref=\"wrapper\"\r\n    :class=\"className\"\r\n    role=\"group\"\r\n    :aria-disabled=\"toAttrValue(props.disabled)\"\r\n    :aria-expanded=\"toAttrValue(currentVisible)\"\r\n    aria-haspopup=\"listbox\"\r\n    :aria-labelledby=\"labelId\"\r\n    @click=\"toggleVisible\"\r\n    @keydown.tab.stop=\"handleTabDown\"\r\n    @keydown.space=\"handleSpaceDown\"\r\n    @keydown.escape=\"handleEscDown\"\r\n  >\r\n    <div ref=\"reference\" :class=\"selectorClass\" tabindex=\"0\">\r\n      <slot\r\n        name=\"control\"\r\n        :color=\"rgb\"\r\n        :alpha=\"currentAlpha\"\r\n        :empty=\"isEmpty\"\r\n      >\r\n        <Renderer\r\n          :renderer=\"props.slots.control\"\r\n          :data=\"{ color: rgb, alpha: currentAlpha, empty: isEmpty }\"\r\n        >\r\n          <div\r\n            v-if=\"hasPrefix\"\r\n            :class=\"[nh.be('icon'), nh.be('prefix')]\"\r\n            :style=\"{ color: props.prefixColor }\"\r\n          >\r\n            <slot name=\"prefix\">\r\n              <Renderer :renderer=\"props.slots.prefix\">\r\n                <Icon :icon=\"props.prefix\"></Icon>\r\n              </Renderer>\r\n            </slot>\r\n          </div>\r\n          <div :class=\"nh.be('control')\">\r\n            <div :class=\"[nh.be('marker'), showLabel && nh.bem('marker', 'with-label')]\">\r\n              <Icon v-if=\"!currentVisible && isEmpty\" v-bind=\"icons.close\"></Icon>\r\n              <div\r\n                v-else\r\n                :style=\"{\r\n                  width: '100%',\r\n                  height: '100%',\r\n                  backgroundColor: `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${\r\n                    currentVisible ? currentAlpha : lastValue.a\r\n                  })`\r\n                }\"\r\n              ></div>\r\n            </div>\r\n            <div v-if=\"showLabel\" :class=\"nh.be('label')\">\r\n              <slot\r\n                name=\"label\"\r\n                :color=\"rgb\"\r\n                :alpha=\"currentAlpha\"\r\n                :empty=\"isEmpty\"\r\n                :label=\"labelColor\"\r\n              >\r\n                <Renderer\r\n                  :renderer=\"props.slots.label\"\r\n                  :data=\"{ color: rgb, alpha: currentAlpha, empty: isEmpty, label: labelColor }\"\r\n                >\r\n                  {{ labelColor }}\r\n                </Renderer>\r\n              </slot>\r\n            </div>\r\n          </div>\r\n          <div\r\n            v-if=\"!props.noSuffix\"\r\n            :class=\"[nh.be('icon'), nh.be('suffix')]\"\r\n            :style=\"{\r\n              color: props.suffixColor,\r\n              opacity: showClear || props.loading ? '0%' : ''\r\n            }\"\r\n          >\r\n            <slot name=\"suffix\">\r\n              <Renderer :renderer=\"props.slots.suffix\">\r\n                <Icon\r\n                  v-if=\"props.suffix\"\r\n                  :icon=\"props.suffix\"\r\n                  :class=\"{\r\n                    [nh.be('arrow')]: !props.staticSuffix\r\n                  }\"\r\n                ></Icon>\r\n                <Icon v-else v-bind=\"icons.angleDown\" :class=\"nh.be('arrow')\"></Icon>\r\n              </Renderer>\r\n            </slot>\r\n          </div>\r\n          <div\r\n            v-else-if=\"props.clearable || props.loading\"\r\n            :class=\"[nh.be('icon'), nh.bem('icon', 'placeholder'), nh.be('suffix')]\"\r\n          ></div>\r\n          <Transition :name=\"nh.ns('fade')\" appear>\r\n            <button\r\n              v-if=\"showClear\"\r\n              :class=\"[nh.be('icon'), nh.be('clear')]\"\r\n              type=\"button\"\r\n              tabindex=\"-1\"\r\n              :aria-label=\"locale.ariaLabel.clear\"\r\n              @click.stop=\"handleClear\"\r\n            >\r\n              <Icon v-bind=\"icons.clear\"></Icon>\r\n            </button>\r\n            <div v-else-if=\"props.loading\" :class=\"[nh.be('icon'), nh.be('loading')]\">\r\n              <Icon\r\n                v-bind=\"icons.loading\"\r\n                :effect=\"props.loadingEffect || icons.loading.effect\"\r\n                :icon=\"props.loadingIcon || icons.loading.icon\"\r\n              ></Icon>\r\n            </div>\r\n          </Transition>\r\n        </Renderer>\r\n      </slot>\r\n    </div>\r\n    <Popper\r\n      ref=\"popper\"\r\n      :class=\"[nh.be('popper'), nh.bs('vars')]\"\r\n      :visible=\"currentVisible\"\r\n      :to=\"transferTo\"\r\n      :transition=\"props.transitionName\"\r\n      :alive=\"props.popperAlive ?? !transferTo\"\r\n      @click.stop\r\n      @keydown.tab.stop=\"handleTabDown\"\r\n      @keydown.space=\"handleSpaceDown\"\r\n      @keydown.escape=\"handleEscDown\"\r\n    >\r\n      <div :class=\"nh.be('panel')\">\r\n        <div :class=\"nh.be('section')\">\r\n          <ColorPalette\r\n            ref=\"palette\"\r\n            :hue=\"currentValue.h\"\r\n            :saturation=\"currentValue.s\"\r\n            :value=\"currentValue.v\"\r\n            @edit-start=\"toggleEditing(true)\"\r\n            @edit-end=\"toggleEditing(false)\"\r\n            @change=\"handlePaletteChange\"\r\n          ></ColorPalette>\r\n          <ColorHue\r\n            ref=\"hue\"\r\n            :hue=\"currentValue.h\"\r\n            @edit-start=\"toggleEditing(true)\"\r\n            @edit-end=\"toggleEditing(false)\"\r\n            @change=\"handleHueChange\"\r\n          ></ColorHue>\r\n          <ColorAlpha\r\n            v-if=\"props.alpha\"\r\n            ref=\"alphaEl\"\r\n            :rgb=\"rgb\"\r\n            :alpha=\"currentAlpha\"\r\n            @edit-start=\"toggleEditing(true)\"\r\n            @edit-end=\"toggleEditing(false)\"\r\n            @change=\"handleAlphaChange\"\r\n          ></ColorAlpha>\r\n          <div\r\n            v-if=\"props.shortcut\"\r\n            ref=\"shortcutEl\"\r\n            :class=\"nh.be('shortcuts')\"\r\n            tabindex=\"-1\"\r\n            @focus=\"handleShortcutsFocus\"\r\n            @blur=\"shortcutsFocused = false\"\r\n            @keydown=\"handleShortcutsKeydown\"\r\n          >\r\n            <div\r\n              v-for=\"(item, index) in shortcutList\"\r\n              :key=\"index\"\r\n              :class=\"{\r\n                [nh.be('shortcut-item')]: true,\r\n                [nh.bem('shortcut-item', 'hitting')]: shortcutsFocused && shortcutHitting === index\r\n              }\"\r\n              :style=\"{ backgroundColor: item }\"\r\n              @click=\"handleShortcutClick(item)\"\r\n            ></div>\r\n          </div>\r\n        </div>\r\n        <div :class=\"nh.be('action')\">\r\n          <Input\r\n            v-if=\"!props.noInput\"\r\n            ref=\"input\"\r\n            inherit\r\n            :class=\"nh.be('input')\"\r\n            size=\"small\"\r\n            :value=\"hex.toUpperCase()\"\r\n            :respond=\"false\"\r\n            @change=\"handleInputColor\"\r\n          ></Input>\r\n          <Button\r\n            v-if=\"props.clearable\"\r\n            ref=\"cancel\"\r\n            inherit\r\n            text\r\n            size=\"small\"\r\n            @click=\"handleClear\"\r\n          >\r\n            {{ props.cancelText || locale.cancel }}\r\n          </Button>\r\n          <Button\r\n            ref=\"confirm\"\r\n            inherit\r\n            type=\"primary\"\r\n            size=\"small\"\r\n            @click=\"handleConfirm\"\r\n          >\r\n            {{ props.confirmText || locale.confirm }}\r\n          </Button>\r\n        </div>\r\n      </div>\r\n    </Popper>\r\n  </div>\r\n</template>\r\n"],"names":["idFor","labelId","state","disabled","loading","size","validateField","clearField","getFieldValue","setFieldValue","useFieldStore","_a","reference","nh","useNameHelper","props","useProps","__props","createSizeProp","createStateProp","value","placementWhileList","createIconProp","emit","__emit","slots","_useSlots","icons","useIcons","locale","useLocale","toRef","isEmpty","ref","currentVisible","currentValue","currentAlpha","editing","placement","transfer","shortcutHitting","shortcutsFocused","parseValue","palette","hue","alphaEl","shortcutEl","input","cancel","confirm","wrapper","useClickOutside","handleClickOutside","popper","transferTo","updatePopper","usePopper","computed","isHover","useHover","unitList","lastValue","className","readonly","selectorClass","baseCls","rgb","h","s","v","hsvToRgb","hex","r","g","b","rgbaToHex","rgbToHex","shortcutList","defaultShortcuts","hasPrefix","showClear","formattedColor","getFormattedColor","labelColor","watch","setVisible","__expose","toggleVisible","focus","blur","a","parseColorToRgba","rgbToHsv","getDefaultHsv","visible","emitEvent","format","color","hsvToHsl","toFixed","handleClear","nextTick","handleConfirm","handleChange","handlePaletteChange","handleHueChange","handleAlphaChange","alpha","handleInputColor","handleShortcutClick","toggleEditing","able","handleTabDown","event","isClient","activeEl","shift","elList","index","unit","el","isElement","maybeEl","getLast","handleShortcutsFocus","handleShortcutsKeydown","key","shortcutCount","handleSpaceDown","handleEscDown","options","_createElementBlock","_unref","toAttrValue","_createElementVNode","_renderSlot","_ctx","_createVNode","Renderer","_normalizeStyle","Icon","_normalizeClass","showLabel","_createBlock","_normalizeProps","_mergeProps","_openBlock","_Transition","_guardReactiveProps","Popper","ColorPalette","ColorHue","ColorAlpha","_Fragment","_renderList","item","$event","Input","Button","_createTextVNode","_toDisplayString"],"mappings":"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"}