tdesign-mobile-vue
Version:
tdesign-mobile-vue
57 lines (53 loc) • 2.33 kB
JavaScript
/**
* tdesign v1.7.0
* (c) 2024 TDesign Group
* @license MIT
*/
import _typeof from '@babel/runtime/helpers/typeof';
import { h, setBlockTracking } from 'vue';
import camelCase from 'lodash/camelCase';
var renderTNode = function renderTNode(instance, name, options) {
var _instance$slots$name3;
if (instance === null) {
return h("", null);
}
var params = _typeof(options) === "object" && "params" in options ? options.params : null;
var defaultNode = _typeof(options) === "object" && "defaultNode" in options ? options.defaultNode : options;
var propsNode;
if (name in instance.props || camelCase(name) in instance.props) {
propsNode = instance.props[name] || instance.props[camelCase(name)];
}
if (instance.slots[name]) {
var _instance$slots$name;
return (_instance$slots$name = instance.slots[name]) === null || _instance$slots$name === void 0 ? void 0 : _instance$slots$name.call(params);
}
if (propsNode === true && defaultNode) {
var _instance$slots$name2;
return instance.slots[name] ? (_instance$slots$name2 = instance.slots[name]) === null || _instance$slots$name2 === void 0 ? void 0 : _instance$slots$name2.call(params) : defaultNode;
}
if (typeof propsNode === "function") {
setBlockTracking(-1);
var vnode = propsNode(h, params);
setBlockTracking(1);
return vnode;
}
var isPropsEmpty = [void 0, params, ""].includes(propsNode);
if (isPropsEmpty && instance.slots[name]) return (_instance$slots$name3 = instance.slots[name]) === null || _instance$slots$name3 === void 0 ? void 0 : _instance$slots$name3.call(params);
return propsNode;
};
var renderContent = function renderContent(instance, name1, name2, options) {
if (instance === null) {
return h("", null);
}
var params = _typeof(options) === "object" && "params" in options ? options.params : null;
var defaultNode = _typeof(options) === "object" && "defaultNode" in options ? options.defaultNode : options;
var toParams = params ? {
params: params
} : void 0;
var node1 = renderTNode(instance, name1, toParams);
var node2 = renderTNode(instance, name2, toParams);
var r = [void 0, null, ""].includes(node1) ? node2 : node1;
return [void 0, null, ""].includes(r) ? defaultNode : r;
};
export { renderContent, renderTNode };
//# sourceMappingURL=render.js.map