tdesign-vue-next
Version:
TDesign Component for vue-next
67 lines (63 loc) • 2.09 kB
JavaScript
/**
* tdesign v1.11.5
* (c) 2025 tdesign
* @license MIT
*/
import { defineComponent, inject, computed, createVNode, isVNode } from 'vue';
import props from './col-props.js';
import { useRowSize } from './hooks/index.js';
import { getColClasses, parseFlex, calcColPadding } from './utils/index.js';
import { usePrefixClass } from '../hooks/useConfig.js';
import { u as useTNodeJSX } from '../_chunks/dep-7c56a7f5.js';
import '../hooks/useListener.js';
import '../utils/dom.js';
import '../_chunks/dep-caecb55d.js';
import 'lodash-es';
import '@babel/runtime/helpers/defineProperty';
import '../config-provider/hooks/useConfig.js';
import '../config-provider/utils/context.js';
import '../_chunks/dep-c75b9b8e.js';
import '@babel/runtime/helpers/typeof';
import 'dayjs';
import '../utils/render-tnode.js';
function _isSlot(s) {
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
}
var _Col = defineComponent({
name: "TCol",
inject: ["rowContext"],
props: props,
setup: function setup(props2) {
var COMPONENT_NAME = usePrefixClass("col");
var renderTNodeJSX = useTNodeJSX();
var rowContext = inject("rowContext", /* @__PURE__ */Object.create(null));
var size = useRowSize();
var colClasses = computed(function () {
return getColClasses(COMPONENT_NAME.value, props2);
});
var colStyle = computed(function () {
var colStyle2 = {};
var flex = props2.flex;
flex && (colStyle2.flex = parseFlex(flex));
if (rowContext) {
var rowGutter = rowContext.gutter;
Object.assign(colStyle2, calcColPadding(rowGutter, size.value));
}
return colStyle2;
});
return function () {
var _slot;
var TAG = props2.tag;
return createVNode(TAG, {
"class": colClasses.value,
"style": colStyle.value
}, _isSlot(_slot = renderTNodeJSX("default")) ? _slot : {
"default": function _default() {
return [_slot];
}
});
};
}
});
export { _Col as default };
//# sourceMappingURL=col.js.map