{"version":3,"file":"collapse-item.mjs","sources":["../../../../../../packages/components/collapse/src/collapse-item.vue"],"sourcesContent":["<template>\r\n  <details\r\n    :class=\"[\r\n      ns.b(),\r\n      ns.is('active', isActive),\r\n      ns.is('disabled', disabled)\r\n    ]\"\r\n    :open=\"isActive\"\r\n  >\r\n    <div v-show=\"collapse!.lineStyle && isActive\" class=\"sg-collapse-item__line\" :style=\"lineStyle\"></div>\r\n    <summary\r\n      class=\"sg-collapse-item__header\"\r\n      :class=\"[`arrow-${collapse!.arrowPosition}`]\"\r\n      :tabindex=\"disabled ? -1 : 0\"\r\n      :style=\"collapse!.headerStyle\"\r\n      @click.prevent.stop=\"handleHeaderClick\"\r\n      @keyup.space.enter.stop=\"handleEnterClick\"\r\n    >\r\n      <slot name=\"title\">{{ title }}</slot>\r\n      <sg-icon v-if=\"showArrow\" class=\"sg-collapse-item__arrow\">\r\n        <ArrowRight />\r\n      </sg-icon>\r\n    </summary>\r\n    <div class=\"sg-collapse-item__content\" :style=\"collapse!.contentStyle\">\r\n      <slot></slot>\r\n    </div>\r\n  </details>\r\n</template>\r\n<script lang=\"ts\">\r\nimport { defineComponent, inject, computed } from 'vue'\r\nimport { useNamespace } from '@sgui-plus/hooks'\r\nimport { generateId } from '@sgui-plus/utils/util'\r\nimport SgIcon from '@sgui-plus/components/icon'\r\nimport { ArrowRight } from '@sgui-plus/icons-vue'\r\nimport { CollapseContextKey } from './collapse.type'\r\n\r\nimport type { PropType } from 'vue'\r\nimport type { CollapseProvider } from './collapse.type'\r\n\r\nexport default defineComponent({\r\n  name: 'SgCollapseItem',\r\n  components: { SgIcon, ArrowRight },\r\n  props: {\r\n    title: {\r\n      type: String,\r\n      default: '',\r\n    },\r\n    name: {\r\n      type: [String, Number] as PropType<string | number>,\r\n      default: () => {\r\n        return generateId()\r\n      },\r\n    },\r\n    disabled: Boolean,\r\n    showArrow: {\r\n      type: Boolean,\r\n      default: true\r\n    }\r\n  },\r\n  setup(props) {\r\n    const collapse = inject<CollapseProvider>(CollapseContextKey)\r\n\r\n    const ns = useNamespace('collapse-item')\r\n\r\n    const isActive = computed(() => {\r\n      return collapse?.activeNames.value.indexOf(props.name) > -1\r\n    })\r\n\r\n    const lineStyle = computed(() => {\r\n      return typeof collapse?.lineStyle === 'boolean' ? {} : collapse?.lineStyle\r\n    })\r\n\r\n    const handleHeaderClick = () => {\r\n      if (props.disabled) return\r\n      collapse?.handleItemClick(props.name)\r\n    }\r\n\r\n    const handleEnterClick = () => {\r\n      if (props.disabled) return\r\n      collapse?.handleItemClick(props.name)\r\n    }\r\n\r\n    return {\r\n      isActive,\r\n      lineStyle,\r\n      handleHeaderClick,\r\n      handleEnterClick,\r\n      collapse,\r\n\r\n      ns\r\n    }\r\n  },\r\n})\r\n</script>\r\n"],"names":["_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_withDirectives","_createElementVNode","_normalizeStyle","_vShow","_withModifiers","_withKeys","_createTextVNode","_toDisplayString","_createBlock","_createCommentVNode"],"mappings":";;;;;;;;6BACEA,gBAyBU,CAAA,SAAA,CAAA,CAAA;SAxBSC,SAAI,EAAA,EAAAC,kBAAA,CAAA,SAAA,EAAA;AAAA,IAAA,KAAA,EAAWC,cAAgB,CAAA;AAAA,MAAkB,QAAG,CAAE,EAAA;AAAA,MAAA,IAAA,CAAA,EAAA,CAAA,EAAA,CAAA,QAAA,EAAA,IAAA,CAAA,QAAA,CAAA;AAKtE,MAAA,IAAA,CAAM,EAAQ,CAAA,EAAA,CAAA,UAAA,EAAA,IAAA,CAAA,QAAA,CAAA;AAAA,KAAA,CAAA;;;AAEoE,IAAAC,cAAA,CAAAC,kBAAA,CAAE,KAAS,EAAA;AAAA,MAAA,KAAA,EAAA,wBAAA;AAAzE,MAAA,KAAA,EAAAC,cAAA,CAAA,IAAA,CAAE,SAAa,CAAA;AAAA,KAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;MACpC,CAYUC,KAAA,EAAA,IAAA,CAAA,QAAA,CAAA,SAAA,IAAA,IAAA,CAAA,QAAA,CAAA;AAAA,KAAA,CAAA;uBATG,SAAQ,EAAA;AAAA,MAClB,KAAA,EAAKJ,eAAE,CAAqB,0BAAA,EAAA,CAAA,CAAA,MAAA,EAAA,IAAA,CAAA,QAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,MAC5B,QAAK,EAAA,IAAA,CAAA,QAAA,GAAA,CAAA,CAAA,GAAA,CAAA;AAAA,MACL,KAAK,EAAAG,cAAA,CAAA,IAAA,CAAA,QAAA,CAAA,WAAA,CAAA;AAAA,MAAA,OAAA,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAAE,aAAA,CAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,iBAAA,IAAA,IAAA,CAAA,iBAAA,CAAA,GAAA,IAAA,CAAA,EAAA,CAAA,SAAA,EAAA,MAAA,CAAA,CAAA,CAAA;MAEN,OAAqC,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAAC,QAAA,CAAAD,aAAA,CAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,gBAAA,IAAA,IAAA,CAAA,gBAAA,CAAA,GAAA,IAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,CAAA,CAAA;AAAA,KAAA,EAAA;;QACtBE,eAAS,CAAAC,eAAA,CAAA,IAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA;AAAA,OAAA,CAAA;mCAAiC,EAAAC,WAAA,CAAA,kBAAA,EAAA;AAAA,QAAA,GAAA,EAAA,CAAA;;;;;;;YAI3DC,kBAEM,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,KAAA,EAFD,EAAiC,EAAA,UAAA,CAAA;AAAA,IAAAR,kBAAA,CAAO,KAAE,EAAA;AAAA,MAAA,KAAA,EAAA,2BAAA;MAC7C,KAAa,EAAAC,cAAA,CAAA,IAAA,CAAA,QAAA,CAAA,YAAA,CAAA;AAAA,KAAA,EAAA;;;;;;;;;"}