UNPKG

tdesign-mobile-vue

Version:
1 lines 9.38 kB
{"version":3,"file":"collapse-panel.mjs","sources":["../../src/collapse/collapse-panel.tsx"],"sourcesContent":["import { computed, onMounted, inject, defineComponent, getCurrentInstance } 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 { useTNodeJSX, useContent } 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: 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 <div class={`${collapsePanelClass.value}__title`} onClick={handleClick}>\n <TCell\n class={[\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 ></TCell>\n </div>\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","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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"}