You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 lines
8.9 KiB

{"ast":null,"code":"import { defineComponent, computed, unref, reactive, toRefs, getCurrentInstance, onBeforeUnmount, nextTick, withDirectives, openBlock, createElementBlock, normalizeClass, withModifiers, renderSlot, createElementVNode, toDisplayString, vShow } from 'vue';\nimport { useOption } from './useOption.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { useId } from '../../../hooks/use-id/index.mjs';\nconst _sfc_main = defineComponent({\n name: \"ElOption\",\n componentName: \"ElOption\",\n props: {\n value: {\n required: true,\n type: [String, Number, Boolean, Object]\n },\n label: [String, Number],\n created: Boolean,\n disabled: Boolean\n },\n setup(props) {\n const ns = useNamespace(\"select\");\n const id = useId();\n const containerKls = computed(() => [ns.be(\"dropdown\", \"item\"), ns.is(\"disabled\", unref(isDisabled)), ns.is(\"selected\", unref(itemSelected)), ns.is(\"hovering\", unref(hover))]);\n const states = reactive({\n index: -1,\n groupDisabled: false,\n visible: true,\n hover: false\n });\n const {\n currentLabel,\n itemSelected,\n isDisabled,\n select,\n hoverItem,\n updateOption\n } = useOption(props, states);\n const {\n visible,\n hover\n } = toRefs(states);\n const vm = getCurrentInstance().proxy;\n select.onOptionCreate(vm);\n onBeforeUnmount(() => {\n const key = vm.value;\n const {\n selected: selectedOptions\n } = select.states;\n const doesSelected = selectedOptions.some(item => {\n return item.value === vm.value;\n });\n nextTick(() => {\n if (select.states.cachedOptions.get(key) === vm && !doesSelected) {\n select.states.cachedOptions.delete(key);\n }\n });\n select.onOptionDestroy(key, vm);\n });\n function selectOptionClick() {\n if (!isDisabled.value) {\n select.handleOptionSelect(vm);\n }\n }\n return {\n ns,\n id,\n containerKls,\n currentLabel,\n itemSelected,\n isDisabled,\n select,\n hoverItem,\n updateOption,\n visible,\n hover,\n selectOptionClick,\n states\n };\n }\n});\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return withDirectives((openBlock(), createElementBlock(\"li\", {\n id: _ctx.id,\n class: normalizeClass(_ctx.containerKls),\n role: \"option\",\n \"aria-disabled\": _ctx.isDisabled || void 0,\n \"aria-selected\": _ctx.itemSelected,\n onMousemove: _ctx.hoverItem,\n onClick: withModifiers(_ctx.selectOptionClick, [\"stop\"])\n }, [renderSlot(_ctx.$slots, \"default\", {}, () => [createElementVNode(\"span\", null, toDisplayString(_ctx.currentLabel), 1)])], 42, [\"id\", \"aria-disabled\", \"aria-selected\", \"onMousemove\", \"onClick\"])), [[vShow, _ctx.visible]]);\n}\nvar Option = /* @__PURE__ */_export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__file\", \"option.vue\"]]);\nexport { Option as default };","map":{"version":3,"names":["_sfc_main","defineComponent","name","componentName","props","value","required","type","String","Number","Boolean","Object","label","created","disabled","setup","ns","useNamespace","id","useId","containerKls","computed","be","is","unref","isDisabled","itemSelected","hover","states","reactive","index","groupDisabled","visible","currentLabel","select","hoverItem","updateOption","useOption","toRefs","vm","getCurrentInstance","proxy","onOptionCreate","onBeforeUnmount","key","selected","selectedOptions","doesSelected","some","item","nextTick","cachedOptions","get","delete","onOptionDestroy","selectOptionClick","handleOptionSelect","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","withDirectives","openBlock","createElementBlock","class","normalizeClass","role","onMousemove","createElementVNode","toDisplayString","vShow","Option","_export_sfc"],"sources":["../../../../../../packages/components/select/src/option.vue"],"sourcesContent":["<template>\n <li\n v-show=\"visible\"\n :id=\"id\"\n :class=\"containerKls\"\n role=\"option\"\n :aria-disabled=\"isDisabled || undefined\"\n :aria-selected=\"itemSelected\"\n @mousemove=\"hoverItem\"\n @click.stop=\"selectOptionClick\"\n >\n <slot>\n <span>{{ currentLabel }}</span>\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 { useId, useNamespace } from '@element-plus/hooks'\nimport { useOption } from './useOption'\nimport type { SelectOptionProxy } from './token'\n\nexport default defineComponent({\n name: 'ElOption',\n componentName: 'ElOption',\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\n setup(props) {\n const ns = useNamespace('select')\n const id = useId()\n\n const containerKls = computed(() => [\n ns.be('dropdown', 'item'),\n ns.is('disabled', unref(isDisabled)),\n ns.is('selected', unref(itemSelected)),\n ns.is('hovering', unref(hover)),\n ])\n\n const states = reactive({\n index: -1,\n groupDisabled: false,\n visible: true,\n hover: false,\n })\n\n const {\n currentLabel,\n itemSelected,\n isDisabled,\n select,\n hoverItem,\n updateOption,\n } = useOption(props, states)\n\n const { visible, hover } = toRefs(states)\n\n const vm = getCurrentInstance().proxy as unknown as SelectOptionProxy\n\n select.onOptionCreate(vm)\n\n onBeforeUnmount(() => {\n const key = vm.value\n const { selected: selectedOptions } = select.states\n const doesSelected = selectedOptions.some((item) => {\n return item.value === vm.value\n })\n // if option is not selected, remove it from cache\n nextTick(() => {\n if (select.states.cachedOptions.get(key) === vm && !doesSelected) {\n select.states.cachedOptions.delete(key)\n }\n })\n select.onOptionDestroy(key, vm)\n })\n\n function selectOptionClick() {\n if (!isDisabled.value) {\n select.handleOptionSelect(vm)\n }\n }\n\n return {\n ns,\n id,\n containerKls,\n currentLabel,\n itemSelected,\n isDisabled,\n select,\n hoverItem,\n updateOption,\n visible,\n hover,\n selectOptionClick,\n states,\n }\n },\n})\n</script>\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}