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.

0 lines
8.0 KiB

1 month ago
  1. {"ast":null,"code":"import { inject, ref, computed, unref } from 'vue';\nimport { collapseContextKey } from './constants.mjs';\nimport { useIdInjection } from '../../../hooks/use-id/index.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nconst useCollapseItem = props => {\n const collapse = inject(collapseContextKey);\n const {\n namespace\n } = useNamespace(\"collapse\");\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 var _a;\n return (_a = props.name) != null ? _a : `${namespace.value}-id-${idInjection.prefix}-${unref(id)}`;\n });\n const isActive = computed(() => collapse == null ? void 0 : collapse.activeNames.value.includes(unref(name)));\n const handleFocus = () => {\n setTimeout(() => {\n if (!isClick.value) {\n focusing.value = true;\n } else {\n isClick.value = false;\n }\n }, 50);\n };\n const handleHeaderClick = () => {\n if (props.disabled) return;\n collapse == null ? void 0 : collapse.handleItemClick(unref(name));\n focusing.value = false;\n isClick.value = true;\n };\n const handleEnterClick = () => {\n collapse == null ? void 0 : collapse.handleItemClick(unref(name));\n };\n return {\n focusing,\n id,\n isActive,\n handleFocus,\n handleHeaderClick,\n handleEnterClick\n };\n};\nconst useCollapseItemDOM = (props, {\n focusing,\n isActive,\n id\n}) => {\n const ns = useNamespace(\"collapse\");\n const rootKls = computed(() => [ns.b(\"item\"), ns.is(\"active\", unref(isActive)), ns.is(\"disabled\", props.disabled)]);\n const headKls = computed(() => [ns.be(\"item\", \"header\"), ns.is(\"active\", unref(isActive)), {\n focusing: unref(focusing) && !props.disabled\n }]);\n const arrowKls = computed(() => [ns.be(\"item\", \"arrow\"), ns.is(\"active\", unref(isActive))]);\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 return {\n arrowKls,\n headKls,\n rootKls,\n itemWrapperKls,\n itemContentKls,\n scopedContentId,\n scopedHeadId\n };\n};\nexport { useCollapseItem, useCollapseItemDOM };","map":{"version":3,"names":["useCollapseItem","props","collapse","inject","collapseContextKey","namespace","useNamespace","focusing","ref","isClick","idInjection","useIdInjection","id","computed","current","name","_a","value","prefix","unref","isActive","activeNames","includes","handleFocus","setTimeout","handleHeaderClick","disabled","handleItemClick","handleEnterClick","useCollapseItemDOM","ns","rootKls","b","is","headKls","be","arrowKls","itemWrapperKls","itemContentKls","scopedContentId","scopedHeadId"],"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 = () => {\n