{"version":3,"file":"options.mjs","sources":["../../../../../../../packages/components/select/src/options.ts"],"sourcesContent":["import { defineComponent, inject } from 'vue'\nimport { isEqual } from 'lodash-unified'\nimport { isArray, isFunction, isString } from '@hd-front-end/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"],"names":["children","_a","_b"],"mappings":";;;;;AAQA,gBAAe,eAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,WAAA;AAAA,EACN,KAAM,CAAA,CAAA,EAAG,EAAE,KAAA,EAAS,EAAA;AAClB,IAAM,MAAA,MAAA,GAAS,OAAO,SAAS,CAAA,CAAA;AAC/B,IAAA,IAAI,kBAAiC,EAAC,CAAA;AAEtC,IAAA,OAAO,MAAM;AAdjB,MAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAeM,MAAM,MAAA,QAAA,GAAA,CAAW,WAAM,OAAN,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA;AACjB,MAAA,MAAM,YAA2B,EAAC,CAAA;AAElC,MAAA,SAAS,cAAcA,SAAoC,EAAA;AACzD,QAAI,IAAA,CAAC,QAAQA,SAAQ,CAAA;AAAG,UAAA,OAAA;AACvB,QAACA,SAAAA,CAAqB,OAAQ,CAAA,CAAC,IAAS,KAAA;AApBjD,UAAA,IAAAC,KAAAC,GAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AAqBU,UAAA,MAAM,QAASD,GAAA,GAAA,CAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,SAAQ,EAAC,KAAf,gBAAAA,GAAiC,CAAA,IAAA,CAAA;AAEhD,UAAA,IAAI,SAAS,eAAiB,EAAA;AAC5B,YAAA,aAAA;AAAA,cACE,CAAC,SAAS,IAAK,CAAA,QAAQ,KACrB,CAAC,OAAA,CAAQ,IAAK,CAAA,QAAQ,CACtB,IAAA,UAAA,CAAA,CAAWC,MAAA,IAAK,CAAA,QAAA,KAAL,gBAAAA,GAAe,CAAA,OAAO,KAC/B,EAAK,GAAA,IAAA,CAAA,QAAA,KAAL,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAA,EAAA,GACf,IAAK,CAAA,QAAA;AAAA,aACX,CAAA;AAAA,WACF,MAAA,IAAW,SAAS,UAAY,EAAA;AAC9B,YAAA,SAAA,CAAU,IAAK,CAAA,CAAA,EAAA,GAAA,IAAA,CAAK,KAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAY,KAAK,CAAA,CAAA;AAAA,WACvB,MAAA,IAAA,OAAA,CAAQ,IAAK,CAAA,QAAQ,CAAG,EAAA;AACjC,YAAA,aAAA,CAAc,KAAK,QAAQ,CAAA,CAAA;AAAA,WAC7B;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAEA,MAAA,IAAI,SAAS,MAAQ,EAAA;AACnB,QAAc,aAAA,CAAA,CAAA,EAAA,GAAA,QAAA,CAAS,CAAT,CAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAa,QAAQ,CAAA,CAAA;AAAA,OACrC;AAEA,MAAA,IAAI,CAAC,OAAA,CAAQ,SAAW,EAAA,eAAe,CAAG,EAAA;AACxC,QAAkB,eAAA,GAAA,SAAA,CAAA;AAClB,QAAA,IAAI,MAAQ,EAAA;AACV,UAAA,MAAA,CAAO,OAAO,YAAe,GAAA,SAAA,CAAA;AAAA,SAC/B;AAAA,OACF;AAEA,MAAO,OAAA,QAAA,CAAA;AAAA,KACT,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}