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