{"version":3,"file":"options.mjs","names":[],"sources":["../../../../../../packages/components/select/src/options.ts"],"sourcesContent":["import { defineComponent, inject } from 'vue'\nimport { isEqual } from 'lodash-unified'\nimport { isArray, isFunction, isString } from '@element-plus/utils'\nimport { selectKey } from './token'\n\nimport type { Component, VNode, VNodeNormalizedChildren } from 'vue'\nimport type { OptionValue } from './type'\n\nexport default defineComponent({\n  name: 'ElOptions',\n  setup(_, { slots }) {\n    const select = inject(selectKey)\n    let cachedValueList: OptionValue[] = []\n\n    return () => {\n      const children = slots.default?.()!\n      const valueList: OptionValue[] = []\n\n      function filterOptions(children?: VNodeNormalizedChildren) {\n        if (!isArray(children)) return\n        ;(children as VNode[]).forEach((item) => {\n          const name = ((item?.type || {}) as Component)?.name\n\n          if (name === 'ElOptionGroup') {\n            filterOptions(\n              !isString(item.children) &&\n                !isArray(item.children) &&\n                isFunction(item.children?.default)\n                ? item.children?.default()\n                : item.children\n            )\n          } else if (name === 'ElOption') {\n            valueList.push(item.props?.value)\n          } else if (isArray(item.children)) {\n            filterOptions(item.children)\n          }\n        })\n      }\n\n      if (children.length) {\n        filterOptions(children[0]?.children)\n      }\n\n      if (!isEqual(valueList, cachedValueList)) {\n        cachedValueList = valueList\n        if (select) {\n          select.states.optionValues = valueList\n        }\n      }\n\n      return children\n    }\n  },\n})\n"],"mappings":";;;;;;AAQA,sBAAe,gBAAgB;CAC7B,MAAM;CACN,MAAM,GAAG,EAAE,SAAS;EAClB,MAAM,SAAS,OAAO,UAAU;EAChC,IAAI,kBAAiC,EAAE;AAEvC,eAAa;GACX,MAAM,WAAW,MAAM,WAAW;GAClC,MAAM,YAA2B,EAAE;GAEnC,SAAS,cAAc,UAAoC;AACzD,QAAI,CAAC,QAAQ,SAAS,CAAE;AACvB,IAAC,SAAqB,SAAS,SAAS;KACvC,MAAM,QAAS,MAAM,QAAQ,EAAE,GAAiB;AAEhD,SAAI,SAAS,gBACX,eACE,CAAC,SAAS,KAAK,SAAS,IACtB,CAAC,QAAQ,KAAK,SAAS,IACvB,WAAW,KAAK,UAAU,QAAQ,GAChC,KAAK,UAAU,SAAS,GACxB,KAAK,SACV;cACQ,SAAS,WAClB,WAAU,KAAK,KAAK,OAAO,MAAM;cACxB,QAAQ,KAAK,SAAS,CAC/B,eAAc,KAAK,SAAS;MAE9B;;AAGJ,OAAI,SAAS,OACX,eAAc,SAAS,IAAI,SAAS;AAGtC,OAAI,CAAC,QAAQ,WAAW,gBAAgB,EAAE;AACxC,sBAAkB;AAClB,QAAI,OACF,QAAO,OAAO,eAAe;;AAIjC,UAAO;;;CAGZ,CAAC"}