UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 3.5 kB
{"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 '@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"],"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;;;;"}