PanelContent.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
  2. import { createVNode as _createVNode } from "vue";
  3. import { defineComponent, ref, watchEffect } from 'vue';
  4. import { collapsePanelProps } from './commonProps';
  5. import classNames from '../_util/classNames';
  6. export default defineComponent({
  7. compatConfig: {
  8. MODE: 3
  9. },
  10. name: 'PanelContent',
  11. props: collapsePanelProps(),
  12. setup: function setup(props, _ref) {
  13. var slots = _ref.slots;
  14. var rendered = ref(false);
  15. watchEffect(function () {
  16. if (props.isActive || props.forceRender) {
  17. rendered.value = true;
  18. }
  19. });
  20. return function () {
  21. var _classNames, _slots$default;
  22. if (!rendered.value) return null;
  23. var prefixCls = props.prefixCls,
  24. isActive = props.isActive,
  25. role = props.role;
  26. return _createVNode("div", {
  27. "ref": ref,
  28. "class": classNames("".concat(prefixCls, "-content"), (_classNames = {}, _defineProperty(_classNames, "".concat(prefixCls, "-content-active"), isActive), _defineProperty(_classNames, "".concat(prefixCls, "-content-inactive"), !isActive), _classNames)),
  29. "role": role
  30. }, [_createVNode("div", {
  31. "class": "".concat(prefixCls, "-content-box")
  32. }, [(_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)])]);
  33. };
  34. }
  35. });