tdesign-mobile-vue
Version:
tdesign-mobile-vue
76 lines (70 loc) • 2.44 kB
JavaScript
/**
* tdesign v1.7.0
* (c) 2024 TDesign Group
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var config = require('../config.js');
var tabs_tabPanelProps = require('./tab-panel-props.js');
var hooks_tnode = require('../hooks/tnode.js');
var hooks_useClass = require('../hooks/useClass.js');
require('lodash/isFunction');
require('lodash/camelCase');
require('lodash/kebabCase');
require('../hooks/render-tnode.js');
require('lodash/isEmpty');
require('lodash/isString');
require('lodash/isObject');
require('../config-provider/useConfig.js');
require('@babel/runtime/helpers/defineProperty');
require('lodash/cloneDeep');
require('../config-provider/context.js');
require('lodash/mergeWith');
require('lodash/merge');
require('lodash/isArray');
require('../_common/js/global-config/mobile/default-config.js');
require('../_common/js/global-config/mobile/locale/zh_CN.js');
require('../_chunks/dep-8d930798.js');
require('@babel/runtime/helpers/typeof');
require('../_chunks/dep-a20a5149.js');
require('dayjs');
var prefix = config["default"].prefix;
var name = "".concat(prefix, "-tab-panel");
var _TabPanel = vue.defineComponent({
name: name,
props: tabs_tabPanelProps["default"],
setup: function setup(props2) {
var renderTNodeContent = hooks_tnode.useContent();
var tabPanelClass = hooks_useClass.usePrefixClass("tab-panel");
var tabsClass = hooks_useClass.usePrefixClass("tabs");
var currentValue = vue.inject("currentValue");
var isActive = vue.computed(function () {
return currentValue.value === props2.value;
});
var tabPanelClasses = vue.computed(function () {
return ["".concat(tabPanelClass.value), "".concat(tabsClass.value, "__panel")];
});
var isMount = vue.ref(props2.lazy ? isActive.value : true);
vue.watch(isActive, function () {
if (isActive.value) {
if (!isMount.value) {
isMount.value = true;
}
} else if (props2.destroyOnHide) {
isMount.value = false;
}
}, {
immediate: true
});
return function () {
if (!isMount.value) return null;
return vue.withDirectives(vue.createVNode("div", {
"class": tabPanelClasses.value
}, [renderTNodeContent("default", "panel")]), [[vue.vShow, isActive.value]]);
};
}
});
exports["default"] = _TabPanel;
//# sourceMappingURL=tab-panel.js.map