tdesign-mobile-vue
Version:
tdesign-mobile-vue
121 lines (117 loc) • 4.23 kB
JavaScript
/**
* tdesign v1.7.0
* (c) 2024 TDesign Group
* @license MIT
*/
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
import { defineComponent, toRefs, computed, provide, createVNode } from 'vue';
import props from './props.js';
import config from '../config.js';
import { useTNodeJSX } from '../hooks/tnode.js';
import { usePrefixClass } from '../hooks/useClass.js';
import '../shared/index.js';
import { useVModel } from '../shared/useVModel/index.js';
import 'lodash/isFunction';
import 'lodash/camelCase';
import 'lodash/kebabCase';
import '../hooks/render-tnode.js';
import 'lodash/isEmpty';
import 'lodash/isString';
import 'lodash/isObject';
import '../config-provider/useConfig.js';
import '@babel/runtime/helpers/defineProperty';
import 'lodash/cloneDeep';
import '../config-provider/context.js';
import 'lodash/mergeWith';
import 'lodash/merge';
import 'lodash/isArray';
import '../_common/js/global-config/mobile/default-config.js';
import '../_common/js/global-config/mobile/locale/zh_CN.js';
import '../_chunks/dep-6c582337.js';
import '@babel/runtime/helpers/typeof';
import '../_chunks/dep-38637d40.js';
import 'dayjs';
import '../_chunks/dep-959cdc59.js';
import '../config-provider/type.js';
import '../shared/functions.js';
import '../shared/util.js';
import 'lodash/isNumber';
import '../shared/component.js';
import '../shared/constants.js';
import '../shared/render.js';
import '../shared/dom.js';
import '../shared/render-tnode.js';
import '../shared/useToggle/index.js';
import '../shared/useCountDown/index.js';
import '@babel/runtime/helpers/asyncToGenerator';
import '@babel/runtime/regenerator';
import '@vueuse/core';
import '../shared/useCountDown/utils.js';
import '../shared/useDefault/index.js';
import '../shared/useChildSlots/index.js';
import '@babel/runtime/helpers/toConsumableArray';
import '../shared/useTouch/index.js';
import '../shared/useScrollParent/index.js';
import '../shared/useExpose/index.js';
import '../shared/useTest/index.js';
import '../shared/useClickAway/index.js';
import '../shared/useGesture/index.js';
import '@use-gesture/vanilla';
import '../shared/hover.js';
var prefix = config.prefix;
var _Collapse = defineComponent({
name: "".concat(prefix, "-collapse"),
props: props,
setup: function setup(props2, _ref) {
var slots = _ref.slots;
var renderTNodeJSX = useTNodeJSX();
var collapseClass = usePrefixClass("collapse");
var _toRefs = toRefs(props2),
value = _toRefs.value,
modelValue = _toRefs.modelValue;
var _useVModel = useVModel(value, modelValue, props2.defaultValue, props2.onChange),
_useVModel2 = _slicedToArray(_useVModel, 2),
activeValue = _useVModel2[0],
setActiveValue = _useVModel2[1];
var calcActiveValues = function calcActiveValues(activeValues, panelValue, expandMutex) {
var hit = activeValues.indexOf(panelValue);
if (hit > -1) {
return activeValues.filter(function (item) {
return item !== panelValue;
});
}
return expandMutex ? [panelValue] : activeValues.concat(panelValue);
};
var onPanelChange = function onPanelChange(value2, args) {
if (Array.isArray(activeValue.value)) {
var val = calcActiveValues(activeValue.value, value2, props2.expandMutex);
setActiveValue(val, args);
}
};
var disabled = computed(function () {
return props2.disabled;
});
var expandIcon = computed(function () {
return props2.expandIcon;
});
var rootClass = computed(function () {
return [collapseClass.value, "".concat(collapseClass.value, "--").concat(props2.theme)];
});
provide("collapse", {
activeValue: activeValue,
disabled: disabled,
expandIcon: expandIcon,
onPanelChange: onPanelChange,
defaultExpandAll: props2.defaultExpandAll
});
provide("renderParentTNode", renderTNodeJSX);
return function () {
var _slots$default;
return createVNode("div", {
"class": rootClass.value
}, [(_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots)]);
};
}
});
export { _Collapse as default };
//# sourceMappingURL=collapse.js.map