UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 3.41 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,eAAA,CAAgB;AAAA,EAC7B,IAAA,EAAM,WAAA;AAAA,EACN,KAAA,CAAM,CAAA,EAAG,EAAE,KAAA,EAAM,EAAG;AAClB,IAAA,MAAM,MAAA,GAAS,OAAO,SAAS,CAAA;AAC/B,IAAA,IAAI,kBAAiC,EAAC;AAEtC,IAAA,OAAO,MAAM;AAdjB,MAAA,IAAA,EAAA,EAAA,EAAA;AAeM,MAAA,MAAM,QAAA,GAAA,CAAW,WAAM,OAAA,KAAN,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,KAAA,CAAA;AACjB,MAAA,MAAM,YAA2B,EAAC;AAElC,MAAA,SAAS,cAAcA,SAAAA,EAAoC;AACzD,QAAA,IAAI,CAAC,OAAA,CAAQA,SAAQ,CAAA,EAAG;AACvB,QAACA,SAAAA,CAAqB,OAAA,CAAQ,CAAC,IAAA,KAAS;AApBjD,UAAA,IAAAC,KAAAC,GAAAA,EAAA,EAAA,EAAA,EAAA;AAqBU,UAAA,MAAM,QAASD,GAAAA,GAAAA,CAAA,IAAA,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAM,SAAQ,EAAC,KAAf,gBAAAA,GAAAA,CAAiC,IAAA;AAEhD,UAAA,IAAI,SAAS,eAAA,EAAiB;AAC5B,YAAA,aAAA;AAAA,cACE,CAAC,SAAS,IAAA,CAAK,QAAQ,KACrB,CAAC,OAAA,CAAQ,IAAA,CAAK,QAAQ,CAAA,IACtB,UAAA,CAAA,CAAWC,MAAA,IAAA,CAAK,QAAA,KAAL,gBAAAA,GAAAA,CAAe,OAAO,KAC/B,EAAA,GAAA,IAAA,CAAK,QAAA,KAAL,IAAA,GAAA,MAAA,GAAA,EAAA,CAAe,OAAA,EAAA,GACf,IAAA,CAAK;AAAA,aACX;AAAA,UACF,CAAA,MAAA,IAAW,SAAS,UAAA,EAAY;AAC9B,YAAA,SAAA,CAAU,IAAA,CAAA,CAAK,EAAA,GAAA,IAAA,CAAK,KAAA,KAAL,IAAA,GAAA,MAAA,GAAA,EAAA,CAAY,KAAK,CAAA;AAAA,UAClC,CAAA,MAAA,IAAW,OAAA,CAAQ,IAAA,CAAK,QAAQ,CAAA,EAAG;AACjC,YAAA,aAAA,CAAc,KAAK,QAAQ,CAAA;AAAA,UAC7B;AAAA,QACF,CAAC,CAAA;AAAA,MACH;AAEA,MAAA,IAAI,SAAS,MAAA,EAAQ;AACnB,QAAA,aAAA,CAAA,CAAc,EAAA,GAAA,QAAA,CAAS,CAAC,CAAA,KAAV,IAAA,GAAA,MAAA,GAAA,EAAA,CAAa,QAAQ,CAAA;AAAA,MACrC;AAEA,MAAA,IAAI,CAAC,OAAA,CAAQ,SAAA,EAAW,eAAe,CAAA,EAAG;AACxC,QAAA,eAAA,GAAkB,SAAA;AAClB,QAAA,IAAI,MAAA,EAAQ;AACV,UAAA,MAAA,CAAO,OAAO,YAAA,GAAe,SAAA;AAAA,QAC/B;AAAA,MACF;AAEA,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,EACF;AACF,CAAC,CAAA;;;;"}