{"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 '@hd-front-end/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":";;;;;AAMa,MAAA,eAAA,GAAkB,CAAC,KAA6B,KAAA;AAC3D,EAAM,MAAA,QAAA,GAAW,OAAO,kBAAkB,CAAA,CAAA;AAC1C,EAAA,MAAM,EAAE,SAAA,EAAc,GAAA,YAAA,CAAa,UAAU,CAAA,CAAA;AAE7C,EAAM,MAAA,QAAA,GAAW,IAAI,KAAK,CAAA,CAAA;AAC1B,EAAM,MAAA,OAAA,GAAU,IAAI,KAAK,CAAA,CAAA;AACzB,EAAA,MAAM,cAAc,cAAe,EAAA,CAAA;AACnC,EAAA,MAAM,EAAK,GAAA,QAAA,CAAS,MAAM,WAAA,CAAY,OAAS,EAAA,CAAA,CAAA;AAC/C,EAAM,MAAA,IAAA,GAAO,SAAS,MAAM;AAd9B,IAAA,IAAA,EAAA,CAAA;AAeI,IACE,OAAA,CAAA,EAAA,GAAA,KAAA,CAAM,SAAN,IAAc,GAAA,EAAA,GAAA,CAAA,EAAG,UAAU,KAAY,CAAA,IAAA,EAAA,WAAA,CAAY,MAAU,CAAA,CAAA,EAAA,KAAA,CAAM,EAAE,CAAA,CAAA,CAAA,CAAA;AAAA,GAExE,CAAA,CAAA;AAED,EAAA,MAAM,QAAW,GAAA,QAAA;AAAA,IAAS,MACxB,QAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,WAAA,CAAY,KAAM,CAAA,QAAA,CAAS,MAAM,IAAI,CAAA,CAAA;AAAA,GACjD,CAAA;AAEA,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,UAAA,CAAW,MAAM;AACf,MAAI,IAAA,CAAC,QAAQ,KAAO,EAAA;AAClB,QAAA,QAAA,CAAS,KAAQ,GAAA,IAAA,CAAA;AAAA,OACZ,MAAA;AACL,QAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAAA,OAClB;AAAA,OACC,EAAE,CAAA,CAAA;AAAA,GACP,CAAA;AAEA,EAAM,MAAA,iBAAA,GAAoB,CAAC,CAAkB,KAAA;AAC3C,IAAA,IAAI,KAAM,CAAA,QAAA;AAAU,MAAA,OAAA;AACpB,IAAA,MAAM,SAAS,CAAE,CAAA,MAAA,CAAA;AACjB,IAAA,IAAI,iCAAQ,OAAQ,CAAA,yBAAA,CAAA;AAA4B,MAAA,OAAA;AAChD,IAAU,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,eAAA,CAAgB,MAAM,IAAI,CAAA,CAAA,CAAA;AACpC,IAAA,QAAA,CAAS,KAAQ,GAAA,KAAA,CAAA;AACjB,IAAA,OAAA,CAAQ,KAAQ,GAAA,IAAA,CAAA;AAAA,GAClB,CAAA;AAEA,EAAM,MAAA,gBAAA,GAAmB,CAAC,CAAqB,KAAA;AAC7C,IAAA,MAAM,SAAS,CAAE,CAAA,MAAA,CAAA;AACjB,IAAA,IAAI,iCAAQ,OAAQ,CAAA,yBAAA,CAAA;AAA4B,MAAA,OAAA;AAChD,IAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,IAAU,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,eAAA,CAAgB,MAAM,IAAI,CAAA,CAAA,CAAA;AAAA,GACtC,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,QAAA;AAAA,IACA,EAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,iBAAA;AAAA,IACA,gBAAA;AAAA,GACF,CAAA;AACF,EAAA;AAEO,MAAM,qBAAqB,CAChC,KAAA,EACA,EAAE,QAAU,EAAA,QAAA,EAAU,IACnB,KAAA;AACH,EAAM,MAAA,EAAA,GAAK,aAAa,UAAU,CAAA,CAAA;AAElC,EAAM,MAAA,OAAA,GAAU,SAAS,MAAM;AAAA,IAC7B,EAAA,CAAG,EAAE,MAAM,CAAA;AAAA,IACX,EAAG,CAAA,EAAA,CAAG,QAAU,EAAA,KAAA,CAAM,QAAQ,CAAC,CAAA;AAAA,IAC/B,EAAG,CAAA,EAAA,CAAG,UAAY,EAAA,KAAA,CAAM,QAAQ,CAAA;AAAA,GACjC,CAAA,CAAA;AACD,EAAM,MAAA,OAAA,GAAU,SAAS,MAAM;AAAA,IAC7B,EAAA,CAAG,EAAG,CAAA,MAAA,EAAQ,QAAQ,CAAA;AAAA,IACtB,EAAG,CAAA,EAAA,CAAG,QAAU,EAAA,KAAA,CAAM,QAAQ,CAAC,CAAA;AAAA,IAC/B,EAAE,QAAU,EAAA,KAAA,CAAM,QAAQ,CAAK,IAAA,CAAC,MAAM,QAAS,EAAA;AAAA,GAChD,CAAA,CAAA;AACD,EAAM,MAAA,QAAA,GAAW,SAAS,MAAM;AAAA,IAC9B,EAAA,CAAG,EAAG,CAAA,MAAA,EAAQ,OAAO,CAAA;AAAA,IACrB,EAAG,CAAA,EAAA,CAAG,QAAU,EAAA,KAAA,CAAM,QAAQ,CAAC,CAAA;AAAA,GAChC,CAAA,CAAA;AACD,EAAM,MAAA,YAAA,GAAe,SAAS,MAAM,CAAC,GAAG,EAAG,CAAA,MAAA,EAAQ,OAAO,CAAC,CAAC,CAAA,CAAA;AAC5D,EAAA,MAAM,iBAAiB,QAAS,CAAA,MAAM,GAAG,EAAG,CAAA,MAAA,EAAQ,MAAM,CAAC,CAAA,CAAA;AAC3D,EAAA,MAAM,iBAAiB,QAAS,CAAA,MAAM,GAAG,EAAG,CAAA,MAAA,EAAQ,SAAS,CAAC,CAAA,CAAA;AAC9D,EAAM,MAAA,eAAA,GAAkB,SAAS,MAAM,EAAA,CAAG,EAAE,CAAW,QAAA,EAAA,KAAA,CAAM,EAAE,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA;AACnE,EAAM,MAAA,YAAA,GAAe,SAAS,MAAM,EAAA,CAAG,EAAE,CAAQ,KAAA,EAAA,KAAA,CAAM,EAAE,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA;AAE7D,EAAO,OAAA;AAAA,IACL,YAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,cAAA;AAAA,IACA,cAAA;AAAA,IACA,eAAA;AAAA,IACA,YAAA;AAAA,GACF,CAAA;AACF;;;;"}