{"version":3,"file":"collapse-panel.mjs","sources":["../../../components/collapse/collapse-panel.tsx"],"sourcesContent":["import { defineComponent, ref, computed, inject, Ref, toRefs, Transition } from 'vue';\nimport props from './collapse-panel-props';\nimport FakeArrow from '../common-components/fake-arrow';\nimport { CollapseValue, TdCollapsePanelProps } from './type';\nimport { useContent, useTNodeJSX, usePrefixClass, useCollapseAnimation } from '@tdesign/shared-hooks';\n\nexport default defineComponent({\n  name: 'TCollapsePanel',\n  props,\n  setup(props: TdCollapsePanelProps, { slots }) {\n    const renderTNodeJSX = useTNodeJSX();\n    const renderContent = useContent();\n    const componentName = usePrefixClass('collapse-panel');\n    const disableClass = usePrefixClass('is-disabled');\n    const clickableClass = usePrefixClass('is-clickable');\n    const transitionClass = usePrefixClass('slide-down');\n    const { value, disabled, destroyOnCollapse } = toRefs(props);\n    const collapseValue: Ref<CollapseValue> = inject('collapseValue');\n    const updateCollapseValue: Function = inject('updateCollapseValue');\n    const getUniqId: Function = inject('getUniqId', (): undefined => undefined, false);\n    const {\n      defaultExpandAll,\n      disabled: disableAll,\n      expandIconPlacement,\n      expandOnRowClick,\n    } = inject<any>('collapseProps');\n    const renderParentTNode: Function = inject('renderParentTNode');\n    const innerValue = value.value || getUniqId();\n    if (defaultExpandAll.value) {\n      updateCollapseValue(innerValue);\n    }\n    const { beforeEnter, enter, afterEnter, beforeLeave, leave, afterLeave } = useCollapseAnimation();\n    const iconRef = ref<HTMLElement>();\n    const isDisabled = computed(() => disabled.value || disableAll.value);\n    const isActive = computed(() =>\n      collapseValue.value instanceof Array\n        ? collapseValue.value.includes(innerValue)\n        : collapseValue.value === innerValue,\n    );\n    const classes = computed(() => {\n      return [componentName.value, { [disableClass.value]: isDisabled.value }];\n    });\n    const panelExpandIcon = computed(() => slots.expandIcon || props.expandIcon);\n    const handleClick = (e: MouseEvent) => {\n      const canExpand = expandOnRowClick.value || e.currentTarget === iconRef.value;\n      if (canExpand && !isDisabled.value) {\n        updateCollapseValue(innerValue);\n      }\n      e.stopPropagation();\n    };\n    const handleHeaderRightContentClick = (e: MouseEvent) => {\n      e.stopPropagation();\n    };\n    const renderDefaultIcon = () => {\n      return <FakeArrow overlayClassName={`${componentName.value}__icon--default`} />;\n    };\n    const renderIcon = () => {\n      const tNodeRender = panelExpandIcon.value === undefined ? renderParentTNode : renderTNodeJSX;\n      return (\n        <div\n          ref={iconRef}\n          class={`${componentName.value}__icon ${componentName.value}__icon--${expandIconPlacement.value} ${\n            isActive.value ? `${componentName.value}__icon--active` : ''\n          }`}\n          onClick={handleClick}\n        >\n          {tNodeRender('expandIcon', renderDefaultIcon())}\n        </div>\n      );\n    };\n    const renderBlank = () => {\n      return <div class={`${componentName.value}__header--blank`}></div>;\n    };\n    const renderHeaderRightContent = () => {\n      const headerRightContent = renderTNodeJSX('headerRightContent');\n\n      return headerRightContent ? <div onClick={handleHeaderRightContentClick}>{headerRightContent}</div> : null;\n    };\n    const renderHeader = () => {\n      const cls = [\n        `${componentName.value}__header`,\n        {\n          [clickableClass.value]: expandOnRowClick.value && !isDisabled.value,\n        },\n      ];\n\n      return (\n        <div class={cls} onClick={handleClick}>\n          {expandIconPlacement.value === 'left' && renderIcon()}\n          {renderTNodeJSX('header')}\n          {renderBlank()}\n          {renderHeaderRightContent()}\n          {expandIconPlacement.value === 'right' && renderIcon()}\n        </div>\n      );\n    };\n    const renderBodyByNormal = () => {\n      return (\n        <div v-show={isActive.value} class={`${componentName.value}__body`}>\n          <div class={`${componentName.value}__content`}>{renderContent('default', 'content')}</div>\n        </div>\n      );\n    };\n    const renderBodyDestroyOnCollapse = () => {\n      return isActive.value ? (\n        <div class={`${componentName.value}__body`}>\n          <div class={`${componentName.value}__content`}>{renderContent('default', 'content')}</div>\n        </div>\n      ) : null;\n    };\n    const renderBody = () => {\n      return destroyOnCollapse.value ? renderBodyDestroyOnCollapse() : renderBodyByNormal();\n    };\n    return () => {\n      return (\n        <div class={classes.value}>\n          <div class={`${componentName.value}__wrapper`}>\n            {renderHeader()}\n            <Transition\n              name={transitionClass.value}\n              onBeforeEnter={beforeEnter}\n              onEnter={enter}\n              onAfterEnter={afterEnter}\n              onBeforeLeave={beforeLeave}\n              onLeave={leave}\n              onAfterLeave={afterLeave}\n            >\n              {renderBody()}\n            </Transition>\n          </div>\n        </div>\n      );\n    };\n  },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","props","setup","slots","_ref","renderTNodeJSX","useTNodeJSX","renderContent","useContent","componentName","usePrefixClass","disableClass","clickableClass","transitionClass","_toRefs","toRefs","value","disabled","destroyOnCollapse","collapseValue","inject","updateCollapseValue","getUniqId","_inject","defaultExpandAll","disableAll","expandIconPlacement","expandOnRowClick","renderParentTNode","innerValue","_useCollapseAnimation","useCollapseAnimation","beforeEnter","enter","afterEnter","beforeLeave","leave","afterLeave","iconRef","ref","isDisabled","computed","isActive","Array","includes","classes","_defineProperty","panelExpandIcon","expandIcon","handleClick","e","canExpand","currentTarget","stopPropagation","handleHeaderRightContentClick","renderDefaultIcon","_createVNode","FakeArrow","concat","renderIcon","tNodeRender","renderBlank","renderHeaderRightContent","headerRightContent","renderHeader","cls","renderBodyByNormal","_withDirectives","_vShow","renderBodyDestroyOnCollapse","renderBody","_slot","Transition"],"mappings":"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"}