{"version":3,"file":"option.mjs","sources":["../../../../../../packages/components/dsh-select/src/option.vue"],"sourcesContent":["<template>\n  <li\n    v-if=\"visible\"\n    :id=\"id\"\n    :class=\"containerKls\"\n    role=\"option\"\n    :aria-disabled=\"isDisabled || undefined\"\n    :aria-selected=\"itemSelected\"\n    @mouseenter=\"hoverItem\"\n    @click.stop=\"selectOptionClick\"\n  >\n    <slot>\n      <el-checkbox\n        ref=\"checkBoxRef\"\n        :key=\"currentValue\"\n        :label=\"currentValue\"\n        @click.stop=\"selectOptionClick\"\n      >\n        <span>{{ currentLabel }}</span>\n        <span class=\"text-sub\">{{ currentTip }}</span>\n      </el-checkbox>\n      <div v-if=\"onlyThis\" class=\"select-tag\" @click=\"onlyCheck\">\n        <span>仅筛选此项</span>\n      </div>\n    </slot>\n  </li>\n</template>\n\n<script lang=\"ts\">\n// @ts-nocheck\nimport {\n  computed,\n  defineComponent,\n  getCurrentInstance,\n  nextTick,\n  onBeforeUnmount,\n  reactive,\n  toRefs,\n  unref,\n} from 'vue'\nimport { ElCheckbox } from '@code-monkey-ui/components/checkbox'\nimport { useId, useNamespace } from '@code-monkey-ui/hooks'\nimport { useOption } from './useOption'\nimport type { DshSelectOptionProxy } from './token'\n\nexport default defineComponent({\n  name: 'ElDshOption',\n  componentName: 'ElDshOption',\n  components: {\n    ElCheckbox,\n  },\n  props: {\n    /**\n     * @description value of option\n     */\n    value: {\n      required: true,\n      type: [String, Number, Boolean, Object],\n    },\n    /**\n     * @description label of option, same as `value` if omitted\n     */\n    label: [String, Number],\n    created: Boolean,\n    /**\n     * @description whether option is disabled\n     */\n    disabled: Boolean,\n    /**\n     * @description additional description\n     */\n    tip: [String, Number],\n  },\n\n  setup(props) {\n    const ns = useNamespace('dsh-select')\n    const id = useId()\n    const containerKls = computed(() => [\n      ns.be('dropdown', 'item'),\n      ns.is('disabled', unref(isDisabled)),\n      {\n        selected: unref(itemSelected),\n        hover: unref(hover),\n      },\n    ])\n\n    const states = reactive({\n      index: -1,\n      groupDisabled: false,\n      visible: true,\n      hitState: false,\n      hover: false,\n    })\n\n    const {\n      currentLabel,\n      itemSelected,\n      isDisabled,\n      select,\n      currentTip,\n      hoverItem,\n      checkBoxRef,\n      currentValue,\n      onlyThis,\n    } = useOption(props, states)\n\n    const { visible, hover } = toRefs(states)\n\n    const vm = getCurrentInstance().proxy\n\n    select.onOptionCreate(vm as unknown as DshSelectOptionProxy)\n\n    onBeforeUnmount(() => {\n      const key = (vm as unknown as DshSelectOptionProxy).value\n      const { selected } = select\n      const selectedOptions = select.props.multiple ? selected : [selected]\n      const doesSelected = selectedOptions.some((item) => {\n        return item.value === (vm as unknown as DshSelectOptionProxy).value\n      })\n      // if option is not selected, remove it from cache\n      nextTick(() => {\n        if (select.cachedOptions.get(key) === vm && !doesSelected) {\n          select.cachedOptions.delete(key)\n        }\n      })\n      select.onOptionDestroy(key, vm)\n    })\n\n    // 如果是点击选择框无需计算与调用CheckBox组件绑定的相关方法，但需要计算全选后CheckBox的勾选项\n    // 如果是点击外部触发的，则需要根据选择内容计算CheckBox勾选项\n    const selectOptionClick = (value) => {\n      // 全选\n      if (props.value === 'select-all') {\n        select.handleOptionSelect('select-all')\n        nextTick(() => {\n          value.target.className.includes('select-dropdown') &&\n            select.handleCheckAllChange(!select.checkAll)\n          select.resetCheckBoxValues()\n        })\n        return\n      }\n      // 反选\n      if (props.value === 'reverse') {\n        select.handleOptionSelect('reverse')\n        nextTick(() => {\n          select.resetCheckBoxValues()\n        })\n        return\n      }\n      // 选择已被筛选的元素\n      if (props.value === 'select-hidden') {\n        select.handleOptionSelect('select-hidden')\n        nextTick(() => {\n          select.resetCheckBoxValues()\n        })\n        return\n      }\n      if (props.disabled !== true && states.groupDisabled !== true) {\n        select.handleOptionSelect(vm)\n        nextTick(() => {\n          value.target.className.includes('select-dropdown') && [\n            select.resetCheckBoxValues(),\n            select.handleCheckedChange(),\n          ]\n        })\n      }\n    }\n\n    const onlyCheck = (event) => {\n      select.deleteSelected(event)\n      setTimeout(() => {\n        select.handleOptionSelect(vm)\n        nextTick(() => {\n          select.resetCheckBoxValues()\n          select.handleCheckedChange()\n          select.handleConfirm()\n        })\n      })\n    }\n\n    return {\n      ns,\n      id,\n      containerKls,\n      currentLabel,\n      currentValue,\n      currentTip,\n      itemSelected,\n      isDisabled,\n      select,\n      hoverItem,\n      visible,\n      hover,\n      selectOptionClick,\n      states,\n      checkBoxRef,\n      onlyThis,\n      onlyCheck,\n    }\n  },\n})\n</script>\n"],"names":["_createElementVNode","_openBlock","_createElementBlock","_normalizeClass","_renderSlot","_createBlock","_withModifiers","_toDisplayString","_createCommentVNode"],"mappings":"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"}