UNPKG

tdesign-vue

Version:
68 lines (64 loc) 4.99 kB
/** * tdesign v1.11.2 * (c) 2025 tdesign * @license MIT */ import _defineProperty from '@babel/runtime/helpers/defineProperty'; import { get } from 'lodash-es'; import { computed } from '@vue/composition-api'; 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(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(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(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(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(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 computed(function () { if (props.options && props.options.length > 0) return props.options; return _getOptionsFromChildren(menuSlot); }); } export { useDropdownOptions as default, _getOptionsFromChildren as getOptionsFromChildren }; //# sourceMappingURL=useDropdownOptions.js.map