{"version":3,"file":"collapse-panel.mjs","sources":["../../src/collapse/collapse-panel.tsx"],"sourcesContent":["import { computed, defineComponent, inject, onMounted } from 'vue';\nimport { ChevronDownIcon, ChevronUpIcon } from 'tdesign-icons-vue-next';\nimport TCell from '../cell';\nimport props from './collapse-panel-props';\nimport config from '../config';\nimport { findIndex } from './util';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { CollapseProvide } from './collapse';\n\nconst { prefix } = config;\n\nexport default defineComponent({\n  name: `${prefix}-collapse-panel`,\n  components: { TCell },\n  props,\n  setup(props, { slots }) {\n    const renderTNodeJSX = useTNodeJSX();\n    const renderContent = useContent();\n\n    const collapsePanelClass = usePrefixClass('collapse-panel');\n\n    const parent = inject<CollapseProvide>('collapse');\n    const renderParentTNode: Function = inject('renderParentTNode');\n\n    const disabled = computed(() => parent?.disabled.value || props.disabled);\n    const rootClass = computed(() => ({\n      [`${collapsePanelClass.value}`]: true,\n      [`${collapsePanelClass.value}--${props.placement}`]: true,\n      [`${collapsePanelClass.value}--active`]: isActive.value,\n      [`${collapsePanelClass.value}--disabled`]: disabled.value,\n    }));\n    const isActive = computed(() => findIndex(props.value, parent?.activeValue.value) > -1);\n    const updatePanelValue = (args?: any) => {\n      if (props.value != null) {\n        parent?.onPanelChange(props.value, args);\n      }\n    };\n\n    const handleClick = ({ e }: { e: MouseEvent }) => {\n      e?.stopPropagation();\n      if (disabled.value) {\n        return;\n      }\n      updatePanelValue({ e });\n    };\n\n    onMounted(() => {\n      if (parent?.defaultExpandAll) {\n        updatePanelValue();\n      }\n    });\n\n    const renderDefaultIcon = () => {\n      if (props.placement === 'bottom') {\n        return isActive.value ? <ChevronUpIcon /> : <ChevronDownIcon />;\n      }\n      return isActive.value ? <ChevronDownIcon /> : <ChevronUpIcon />;\n    };\n    const panelExpandIcon = computed(() => slots.expandIcon || props.expandIcon);\n    const renderRightIcon = () => {\n      const tNodeRender = panelExpandIcon.value === undefined ? renderParentTNode : renderTNodeJSX;\n      return (\n        <div class={`${collapsePanelClass.value}__header-icon`}>{tNodeRender('expandIcon', renderDefaultIcon())}</div>\n      );\n    };\n\n    const renderPanelContent = () => {\n      const panelContent = renderContent('default', 'content');\n      if (props.destroyOnCollapse && !isActive.value) {\n        return null;\n      }\n\n      return <div class={`${collapsePanelClass.value}__content`}>{panelContent}</div>;\n    };\n\n    return () => {\n      const headerContent = renderTNodeJSX('header');\n      const noteContent = renderTNodeJSX('headerRightContent');\n      const leftIcon = renderTNodeJSX('headerLeftIcon');\n\n      return (\n        <div class={rootClass.value}>\n          <TCell\n            class={[\n              `${collapsePanelClass.value}__title`,\n              `${collapsePanelClass.value}__header`,\n              `${collapsePanelClass.value}__header--${props.placement}`,\n              { [`${collapsePanelClass.value}__header--expanded`]: isActive.value },\n            ]}\n            v-slots={{\n              leftIcon: () => leftIcon,\n              title: () => headerContent,\n              note: () => noteContent,\n              rightIcon: () => renderRightIcon(),\n            }}\n            onClick={handleClick}\n          ></TCell>\n          <div class={`${collapsePanelClass.value}__body`} style={{ gridTemplateRows: isActive.value ? '1fr' : '0fr' }}>\n            <div class={`${collapsePanelClass.value}__inner`}>{renderPanelContent()}</div>\n          </div>\n        </div>\n      );\n    };\n  },\n});\n"],"names":["prefix","config","defineComponent","name","components","TCell","props","setup","slots","_ref","renderTNodeJSX","useTNodeJSX","renderContent","useContent","collapsePanelClass","usePrefixClass","parent","inject","renderParentTNode","disabled","computed","value","rootClass","_defineProperty","concat","placement","isActive","findIndex","activeValue","updatePanelValue","args","onPanelChange","handleClick","_ref3","e","stopPropagation","onMounted","defaultExpandAll","renderDefaultIcon","_createVNode","ChevronUpIcon","ChevronDownIcon","panelExpandIcon","expandIcon","renderRightIcon","tNodeRender","renderPanelContent","panelContent","destroyOnCollapse","headerContent","noteContent","leftIcon","title","note","rightIcon","gridTemplateRows"],"mappings":"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"}