e2428f1796affb99b6f747b6218976956903ff74ec56aee44a3942cdc630fd8ce998c99ee4c22fa1b5fcd09ce7b43694f8ad40ed5396b2e545b694189f6d0e 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. var lodashUnified = require('lodash-unified');
  5. var token = require('./token.js');
  6. var shared = require('@vue/shared');
  7. var ElOptions = vue.defineComponent({
  8. name: "ElOptions",
  9. setup(_, { slots }) {
  10. const select = vue.inject(token.selectKey);
  11. let cachedValueList = [];
  12. return () => {
  13. var _a, _b;
  14. const children = (_a = slots.default) == null ? void 0 : _a.call(slots);
  15. const valueList = [];
  16. function filterOptions(children2) {
  17. if (!shared.isArray(children2))
  18. return;
  19. children2.forEach((item) => {
  20. var _a2, _b2, _c, _d;
  21. const name = (_a2 = (item == null ? void 0 : item.type) || {}) == null ? void 0 : _a2.name;
  22. if (name === "ElOptionGroup") {
  23. filterOptions(!shared.isString(item.children) && !shared.isArray(item.children) && shared.isFunction((_b2 = item.children) == null ? void 0 : _b2.default) ? (_c = item.children) == null ? void 0 : _c.default() : item.children);
  24. } else if (name === "ElOption") {
  25. valueList.push((_d = item.props) == null ? void 0 : _d.value);
  26. } else if (shared.isArray(item.children)) {
  27. filterOptions(item.children);
  28. }
  29. });
  30. }
  31. if (children.length) {
  32. filterOptions((_b = children[0]) == null ? void 0 : _b.children);
  33. }
  34. if (!lodashUnified.isEqual(valueList, cachedValueList)) {
  35. cachedValueList = valueList;
  36. if (select) {
  37. select.states.optionValues = valueList;
  38. }
  39. }
  40. return children;
  41. };
  42. }
  43. });
  44. exports["default"] = ElOptions;
  45. //# sourceMappingURL=options.js.map