tdesign-vue
Version:
89 lines (81 loc) • 5.86 kB
JavaScript
/**
* tdesign v1.11.2
* (c) 2025 tdesign
* @license MIT
*/
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
var VueCompositionAPI = require('@vue/composition-api');
var get = require('../../_chunks/dep-f84d1ea5.js');
require('../../_chunks/dep-362bc4d7.js');
require('../../_chunks/dep-fcf0662d.js');
require('@babel/runtime/helpers/typeof');
require('../../_chunks/dep-d3015b4c.js');
require('../../_chunks/dep-a4308f57.js');
require('../../_chunks/dep-e4278c54.js');
require('../../_chunks/dep-a4747856.js');
require('../../_chunks/dep-3d8ab37d.js');
require('../../_chunks/dep-ecccff93.js');
require('../../_chunks/dep-a4cecac4.js');
require('../../_chunks/dep-ab142eaf.js');
require('../../_chunks/dep-201f7798.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var DropdownMenuName = "TDropdownMenu";
var DropdownItemName = "TDropdownItem";
var _getOptionsFromChildren = function getOptionsFromChildren(menuGroup) {
if (!menuGroup || (menuGroup === null || menuGroup === void 0 ? void 0 : menuGroup.length) === 0) return [];
if (get.get(menuGroup, "Ctor.extendOptions.name") === DropdownMenuName) {
var groupChildren = menuGroup.children;
if (Array.isArray(groupChildren)) {
return _getOptionsFromChildren(groupChildren);
}
return [];
}
if (Array.isArray(menuGroup)) {
return menuGroup.map(function (item) {
var _item$componentOption, _groupChildren$filter, _groupChildren$filter2, _item$componentOption2, _item$data, _item$data2, _item$componentOption3;
var groupChildren = item === null || item === void 0 || (_item$componentOption = item.componentOptions) === null || _item$componentOption === void 0 ? void 0 : _item$componentOption.children;
if (!groupChildren) return {};
var contentCtx = groupChildren === null || groupChildren === void 0 || (_groupChildren$filter = groupChildren.filter) === null || _groupChildren$filter === void 0 ? void 0 : _groupChildren$filter.call(groupChildren, function (v) {
return ![DropdownMenuName, DropdownItemName].includes(get.get(v, "componentOptions.Ctor.extendOptions.name"));
});
var childrenCtx = groupChildren === null || groupChildren === void 0 || (_groupChildren$filter2 = groupChildren.filter) === null || _groupChildren$filter2 === void 0 ? void 0 : _groupChildren$filter2.call(groupChildren, function (v) {
return typeof v.text !== "string" && [DropdownMenuName, DropdownItemName].includes(get.get(v, "componentOptions.Ctor.extendOptions.name"));
});
var commonProps = _objectSpread(_objectSpread({}, (_item$componentOption2 = item.componentOptions) === null || _item$componentOption2 === void 0 ? void 0 : _item$componentOption2.propsData), {}, {
style: item === null || item === void 0 || (_item$data = item.data) === null || _item$data === void 0 ? void 0 : _item$data.style,
"class": item === null || item === void 0 || (_item$data2 = item.data) === null || _item$data2 === void 0 ? void 0 : _item$data2.staticClass,
onClick: (_item$componentOption3 = item.componentOptions) === null || _item$componentOption3 === void 0 || (_item$componentOption3 = _item$componentOption3.listeners) === null || _item$componentOption3 === void 0 ? void 0 : _item$componentOption3.click,
content: contentCtx || groupChildren
});
if (childrenCtx.length === 1) {
return _objectSpread(_objectSpread({}, commonProps), {}, {
children: childrenCtx.length > 0 ? _getOptionsFromChildren(childrenCtx[0].componentOptions) : null
});
}
return _objectSpread(_objectSpread({}, commonProps), {}, {
children: childrenCtx.length > 0 ? _getOptionsFromChildren(childrenCtx) : null
});
}).filter(function (v) {
return !!v.content;
});
}
return [];
};
function useDropdownOptions(props, slots) {
var _slots$default, _slots$dropdown;
var menuSlot = (slots === null || slots === void 0 || (_slots$default = slots["default"]) === null || _slots$default === void 0 || (_slots$default = _slots$default.filter(function (v) {
return get.get(v, "componentOptions.Ctor.extendOptions.name") === DropdownMenuName;
})) === null || _slots$default === void 0 || (_slots$default = _slots$default[0]) === null || _slots$default === void 0 ? void 0 : _slots$default.componentOptions) || (slots === null || slots === void 0 || (_slots$dropdown = slots.dropdown) === null || _slots$dropdown === void 0 || (_slots$dropdown = _slots$dropdown[0]) === null || _slots$dropdown === void 0 ? void 0 : _slots$dropdown.componentOptions);
return VueCompositionAPI.computed(function () {
if (props.options && props.options.length > 0) return props.options;
return _getOptionsFromChildren(menuSlot);
});
}
exports["default"] = useDropdownOptions;
exports.getOptionsFromChildren = _getOptionsFromChildren;
//# sourceMappingURL=useDropdownOptions.js.map