{"version":3,"file":"use-collapse-item.mjs","names":[],"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"],"mappings":";;;;;AAMA,MAAa,mBAAmB,UAA6B;CAC3D,MAAM,WAAW,OAAO,kBAAkB;CAC1C,MAAM,EAAE,cAAc,aAAa,UAAU;CAE7C,MAAM,WAAW,IAAI,KAAK;CAC1B,MAAM,UAAU,IAAI,KAAK;CACzB,MAAM,cAAc,eAAe;CACnC,MAAM,KAAK,eAAe,YAAY,SAAS;CAC/C,MAAM,OAAO,eAAe;EAC1B,OACE,MAAM,QAAQ,GAAG,UAAU,MAAM,MAAM,YAAY,OAAO,GAAG,MAAM,EAAE;CAEzE,CAAC;CAED,MAAM,WAAW,eACf,UAAU,YAAY,MAAM,SAAS,MAAM,IAAI,CAAC,CAClD;CAEA,MAAM,oBAAoB;EACxB,iBAAiB;GACf,IAAI,CAAC,QAAQ,OACX,SAAS,QAAQ;QAEjB,QAAQ,QAAQ;EAEpB,GAAG,EAAE;CACP;CAEA,MAAM,qBAAqB,MAAkB;EAC3C,IAAI,MAAM,UAAU;EAEpB,IADe,EAAE,QACL,QAAQ,yBAAyB,GAAG;EAChD,UAAU,gBAAgB,MAAM,IAAI,CAAC;EACrC,SAAS,QAAQ;EACjB,QAAQ,QAAQ;CAClB;CAEA,MAAM,oBAAoB,MAAqB;EAE7C,IADe,EAAE,QACL,QAAQ,yBAAyB,GAAG;EAChD,EAAE,eAAe;EACjB,UAAU,gBAAgB,MAAM,IAAI,CAAC;CACvC;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;CACF;AACF;AAEA,MAAa,sBACX,OACA,EAAE,UAAU,UAAU,SACnB;CACH,MAAM,KAAK,aAAa,UAAU;CAElC,MAAM,UAAU,eAAe;EAC7B,GAAG,EAAE,MAAM;EACX,GAAG,GAAG,UAAU,MAAM,QAAQ,CAAC;EAC/B,GAAG,GAAG,YAAY,MAAM,QAAQ;CAClC,CAAC;CACD,MAAM,UAAU,eAAe;EAC7B,GAAG,GAAG,QAAQ,QAAQ;EACtB,GAAG,GAAG,UAAU,MAAM,QAAQ,CAAC;EAC/B,EAAE,UAAU,MAAM,QAAQ,KAAK,CAAC,MAAM,SAAS;CACjD,CAAC;CACD,MAAM,WAAW,eAAe,CAC9B,GAAG,GAAG,QAAQ,OAAO,GACrB,GAAG,GAAG,UAAU,MAAM,QAAQ,CAAC,CACjC,CAAC;CAOD,OAAO;EACL,cAPmB,eAAe,CAAC,GAAG,GAAG,QAAQ,OAAO,CAAC,CAO9C;EACX;EACA;EACA;EACA,gBAVqB,eAAe,GAAG,GAAG,QAAQ,MAAM,CAU3C;EACb,gBAVqB,eAAe,GAAG,GAAG,QAAQ,SAAS,CAU9C;EACb,iBAVsB,eAAe,GAAG,EAAE,WAAW,MAAM,EAAE,GAAG,CAUlD;EACd,cAVmB,eAAe,GAAG,EAAE,QAAQ,MAAM,EAAE,GAAG,CAU/C;CACb;AACF"}