{"version":3,"file":"option.vue2.mjs","sources":["../../../../../../packages/components/select/src/option.vue"],"sourcesContent":["<script lang=\"ts\">\n  import {\n    computed,\n    defineComponent,\n    inject,\n    getCurrentInstance,\n    onBeforeUnmount,\n    ref,\n    onMounted\n  } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import { BnIconCheck } from '../../icon'\n  import { selectInjectKey } from './context'\n\n  export default defineComponent({\n    name: getComponentNamespace('Option'),\n    components: {\n      BnIconCheck\n    },\n    props: {\n      value: {\n        required: true,\n        type: [String, Number, Boolean, Object]\n      },\n      label: {\n        type: [String, Number],\n        default: ''\n      },\n      disabled: {\n        type: Boolean,\n        default: false\n      }\n    },\n    setup(props) {\n      const ns = getNamespace('select-menu')\n\n      const selectContext = inject(selectInjectKey)\n\n      // 是否选中\n      const isSelected = ref(false)\n      // 是否hover\n      const isHover = ref(false)\n      // 是否可见（过滤）\n      const visible = ref(true)\n\n      const multiple = computed(() => selectContext?.multiple)\n\n      const cls = computed(() => {\n        return [\n          `${ns}__item`,\n          isHover.value && 'is-hover',\n          props.disabled && `is-disabled`,\n          isSelected.value && 'is-selected'\n        ]\n      })\n\n      const currentLabel = computed(() => {\n        return props.label\n      })\n\n      const currentValue = computed(() => {\n        return props.value\n      })\n\n      const optVmProxy = getCurrentInstance()!.proxy as any\n\n      const optionItemHoverChange = () => {\n        if (!props.disabled) {\n          selectContext?.optionItemHoverChange(optVmProxy)\n        }\n      }\n\n      const optionItemSelect = () => {\n        if (props.disabled) return\n        selectContext?.optionItemSelect(optVmProxy)\n      }\n\n      onMounted(() => {\n        selectContext?.optionItemCreate(optVmProxy)\n      })\n\n      onBeforeUnmount(() => {\n        selectContext?.optionItemDestroy(optVmProxy)\n      })\n\n      return {\n        cls,\n        currentLabel,\n        currentValue,\n        optionItemHoverChange,\n        optionItemSelect,\n        multiple,\n\n        visible,\n        isHover,\n        isSelected\n      }\n    }\n  })\n</script>\n\n<template>\n  <div\n    v-show=\"visible\"\n    :class=\"cls\"\n    @mouseenter.stop=\"optionItemHoverChange\"\n    @click.stop=\"optionItemSelect\"\n  >\n    <slot>\n      <span>{{ currentLabel }}</span>\n    </slot>\n\n    <BnIconCheck v-if=\"multiple && isSelected\" />\n  </div>\n</template>\n"],"names":[],"mappings":"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"}