UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 6.08 kB
{"version":3,"file":"use-collapse-item.mjs","sources":["../../../../../../packages/components/collapse/src/use-collapse-item.ts"],"sourcesContent":["import { computed, inject, ref, unref } from 'vue'\nimport { useIdInjection, useNamespace } from '@element-plus/hooks'\nimport { collapseContextKey } from './constants'\n\nimport type { CollapseItemProps } from './collapse-item'\n\nexport const useCollapseItem = (props: CollapseItemProps) => {\n const collapse = inject(collapseContextKey)\n const { namespace } = useNamespace('collapse')\n\n const focusing = ref(false)\n const isClick = ref(false)\n const idInjection = useIdInjection()\n const id = computed(() => idInjection.current++)\n const name = computed(() => {\n return (\n props.name ?? `${namespace.value}-id-${idInjection.prefix}-${unref(id)}`\n )\n })\n\n const isActive = computed(() =>\n collapse?.activeNames.value.includes(unref(name))\n )\n\n const handleFocus = () => {\n setTimeout(() => {\n if (!isClick.value) {\n focusing.value = true\n } else {\n isClick.value = false\n }\n }, 50)\n }\n\n const handleHeaderClick = (e: MouseEvent) => {\n if (props.disabled) return\n const target = e.target as HTMLElement\n if (target?.closest('input, textarea, select')) return\n collapse?.handleItemClick(unref(name))\n focusing.value = false\n isClick.value = true\n }\n\n const handleEnterClick = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n if (target?.closest('input, textarea, select')) return\n e.preventDefault()\n collapse?.handleItemClick(unref(name))\n }\n\n return {\n focusing,\n id,\n isActive,\n handleFocus,\n handleHeaderClick,\n handleEnterClick,\n }\n}\n\nexport const useCollapseItemDOM = (\n props: CollapseItemProps,\n { focusing, isActive, id }: Partial<ReturnType<typeof useCollapseItem>>\n) => {\n const ns = useNamespace('collapse')\n\n const rootKls = computed(() => [\n ns.b('item'),\n ns.is('active', unref(isActive)),\n ns.is('disabled', props.disabled),\n ])\n const headKls = computed(() => [\n ns.be('item', 'header'),\n ns.is('active', unref(isActive)),\n { focusing: unref(focusing) && !props.disabled },\n ])\n const arrowKls = computed(() => [\n ns.be('item', 'arrow'),\n ns.is('active', unref(isActive)),\n ])\n const itemTitleKls = computed(() => [ns.be('item', 'title')])\n const itemWrapperKls = computed(() => ns.be('item', 'wrap'))\n const itemContentKls = computed(() => ns.be('item', 'content'))\n const scopedContentId = computed(() => ns.b(`content-${unref(id)}`))\n const scopedHeadId = computed(() => ns.b(`head-${unref(id)}`))\n\n return {\n itemTitleKls,\n arrowKls,\n headKls,\n rootKls,\n itemWrapperKls,\n itemContentKls,\n scopedContentId,\n scopedHeadId,\n }\n}\n"],"names":[],"mappings":"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"}