UNPKG

tdesign-mobile-vue

Version:
160 lines (156 loc) 6.26 kB
/** * tdesign v1.9.3 * (c) 2025 TDesign Group * @license MIT */ import { _ as _defineProperty } from '../_chunks/dep-900db0e1.mjs'; import { defineComponent, inject, computed, onMounted, createVNode } from 'vue'; import { ChevronUpIcon, ChevronDownIcon } from 'tdesign-icons-vue-next'; import { Cell } from '../cell/index.mjs'; import props from './collapse-panel-props.mjs'; import config from '../config.mjs'; import { findIndex } from './util.mjs'; import { useTNodeJSX, useContent } from '../hooks/tnode.mjs'; import { usePrefixClass } from '../hooks/useClass.mjs'; import '../_chunks/dep-4915223e.mjs'; import '../cell/cell.mjs'; import '../shared/index.mjs'; import '../shared/functions.mjs'; import '../shared/util.mjs'; import '../_chunks/dep-26b97ced.mjs'; import '../_chunks/dep-a953013f.mjs'; import 'lodash-es'; import '../shared/component.mjs'; import '../shared/render.mjs'; import '../shared/dom.mjs'; import '../shared/render-tnode.mjs'; import '../shared/useCountDown/index.mjs'; import '../_chunks/dep-99e43b7b.mjs'; import '../_chunks/dep-6b2b02fd.mjs'; import '@vueuse/core'; import '../shared/useCountDown/utils.mjs'; import '../shared/useTouch/index.mjs'; import '../shared/useScrollParent/index.mjs'; import '../shared/useTest/index.mjs'; import '../shared/useClickAway/index.mjs'; import '../_chunks/dep-fb4113ef.mjs'; import '../shared/hover.mjs'; import '../config-provider/useConfig.mjs'; import '../config-provider/context.mjs'; import '../_common/js/global-config/mobile/default-config.mjs'; import '../_common/js/global-config/mobile/locale/zh_CN.mjs'; import '../_chunks/dep-bca0f578.mjs'; import '../_chunks/dep-c6f44a15.mjs'; import '../_chunks/dep-c984d53e.mjs'; import '../config-provider/type.mjs'; import '../cell/props.mjs'; import '../form/hooks.mjs'; import '../hooks/render-tnode.mjs'; import '../_common/js/utils/general.mjs'; import '../cell/cell-group.mjs'; import '../cell/cell-group-props.mjs'; import './style/css.mjs'; import '../cell/type.mjs'; var prefix = config.prefix; var _CollapsePanel = defineComponent({ name: "".concat(prefix, "-collapse-panel"), components: { TCell: Cell }, props: props, setup: function setup(props2, _ref) { var slots = _ref.slots; var renderTNodeJSX = useTNodeJSX(); var renderContent = useContent(); var collapsePanelClass = usePrefixClass("collapse-panel"); var parent = inject("collapse"); var renderParentTNode = inject("renderParentTNode"); var disabled = computed(function () { return (parent === null || parent === void 0 ? void 0 : parent.disabled.value) || props2.disabled; }); var rootClass = computed(function () { return _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "".concat(collapsePanelClass.value), true), "".concat(collapsePanelClass.value, "--").concat(props2.placement), true), "".concat(collapsePanelClass.value, "--active"), isActive.value), "".concat(collapsePanelClass.value, "--disabled"), disabled.value); }); var isActive = computed(function () { return findIndex(props2.value, parent === null || parent === void 0 ? void 0 : parent.activeValue.value) > -1; }); var updatePanelValue = function updatePanelValue(args) { if (props2.value != null) { parent === null || parent === void 0 || parent.onPanelChange(props2.value, args); } }; var handleClick = function handleClick(e) { e === null || e === void 0 || e.stopPropagation(); if (disabled.value) { return; } updatePanelValue({ e: e }); }; onMounted(function () { if (parent !== null && parent !== void 0 && parent.defaultExpandAll) { updatePanelValue(); } }); var renderDefaultIcon = function renderDefaultIcon() { if (props2.placement === "bottom") { return isActive.value ? createVNode(ChevronUpIcon, null, null) : createVNode(ChevronDownIcon, null, null); } return isActive.value ? createVNode(ChevronDownIcon, null, null) : createVNode(ChevronUpIcon, null, null); }; var panelExpandIcon = computed(function () { return slots.expandIcon || props2.expandIcon; }); var renderRightIcon = function renderRightIcon() { var tNodeRender = panelExpandIcon.value === void 0 ? renderParentTNode : renderTNodeJSX; return createVNode("div", { "class": "".concat(collapsePanelClass.value, "__header-icon") }, [tNodeRender("expandIcon", renderDefaultIcon())]); }; var renderPanelContent = function renderPanelContent() { var panelContent = renderContent("default", "content"); if (props2.destroyOnCollapse && !isActive.value) { return null; } return createVNode("div", { "class": "".concat(collapsePanelClass.value, "__content") }, [panelContent]); }; return function () { var headerContent = renderTNodeJSX("header"); var noteContent = renderTNodeJSX("headerRightContent"); var _leftIcon = renderTNodeJSX("headerLeftIcon"); return createVNode("div", { "class": rootClass.value }, [createVNode("div", { "class": "".concat(collapsePanelClass.value, "__title"), "onClick": handleClick }, [createVNode(Cell, { "class": ["".concat(collapsePanelClass.value, "__header"), "".concat(collapsePanelClass.value, "__header--").concat(props2.placement), _defineProperty({}, "".concat(collapsePanelClass.value, "__header--expanded"), isActive.value)] }, { leftIcon: function leftIcon() { return _leftIcon; }, title: function title() { return headerContent; }, note: function note() { return noteContent; }, rightIcon: function rightIcon() { return renderRightIcon(); } })]), createVNode("div", { "class": "".concat(collapsePanelClass.value, "__body"), "style": { gridTemplateRows: isActive.value ? "1fr" : "0fr" } }, [createVNode("div", { "class": "".concat(collapsePanelClass.value, "__inner") }, [renderPanelContent()])])]); }; } }); export { _CollapsePanel as default }; //# sourceMappingURL=collapse-panel.mjs.map