{"version":3,"file":"index.mjs","sources":["../../../../../packages/formily/select/index.ts"],"sourcesContent":["import { defineComponent, h } from 'vue'\nimport { connect, mapProps, mapReadPretty } from '@formily/vue'\nimport { ElOption, ElSelect } from 'element-plus'\nimport { PreviewText } from '../preview-text'\nimport { resolveComponent } from '../__builtins__'\n\ntype IOption = Pick<typeof ElOption, 'value' | 'label' | 'disabled'> | string\ntype IOptions = IOption[]\n\nexport type SelectProps = typeof ElSelect & {\n  options?: IOptions\n}\n\nconst SelectOption = defineComponent({\n  name: 'FSelect',\n  inheritAttrs: false,\n  props: {\n    options: {\n      type: Array as () => IOptions,\n      default: () => [],\n    },\n  },\n  setup(props, { attrs, slots }) {\n    return () => {\n      const options = props.options || []\n      return h(\n        ElSelect,\n        {\n          ...attrs,\n        },\n        {\n          default: () =>\n            options.map((option: IOption) => {\n              if (typeof option === 'string') {\n                return h(\n                  ElOption,\n                  { key: option, value: option, label: option },\n                  {\n                    default: () => [\n                      resolveComponent(slots?.option, { option }),\n                    ],\n                  }\n                )\n              } else {\n                return h(\n                  ElOption,\n                  {\n                    key: option.value,\n                    ...option,\n                  },\n                  {\n                    default: () => [\n                      resolveComponent(slots?.option, {\n                        option,\n                      }),\n                    ],\n                  }\n                )\n              }\n            }),\n          ...slots,\n        }\n      )\n    }\n  },\n})\n\nexport const Select = connect(\n  SelectOption,\n  mapProps({ dataSource: 'options', value: 'modelValue', loading: true }),\n  mapReadPretty(PreviewText.Select)\n)\n\nexport default Select\n"],"names":[],"mappings":";;;;;;AAaA,MAAM,eAAe,eAAgB,CAAA;AAAA,EACnC,IAAM,EAAA,SAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAO,EAAA;AAAA,IACL,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,KAAA;AAAA,MACN,OAAA,EAAS,MAAM,EAAC;AAAA,KAClB;AAAA,GACF;AAAA,EACA,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,OAAS,EAAA;AAC7B,IAAA,OAAO,MAAM;AACX,MAAM,MAAA,OAAA,GAAU,KAAM,CAAA,OAAA,IAAW,EAAC,CAAA;AAClC,MAAO,OAAA,CAAA;AAAA,QACL,QAAA;AAAA,QACA;AAAA,UACE,GAAG,KAAA;AAAA,SACL;AAAA,QACA;AAAA,UACE,OAAS,EAAA,MACP,OAAQ,CAAA,GAAA,CAAI,CAAC,MAAoB,KAAA;AAC/B,YAAI,IAAA,OAAO,WAAW,QAAU,EAAA;AAC9B,cAAO,OAAA,CAAA;AAAA,gBACL,QAAA;AAAA,gBACA,EAAE,GAAK,EAAA,MAAA,EAAQ,KAAO,EAAA,MAAA,EAAQ,OAAO,MAAO,EAAA;AAAA,gBAC5C;AAAA,kBACE,SAAS,MAAM;AAAA,oBACb,gBAAiB,CAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,MAAQ,EAAA,EAAE,QAAQ,CAAA;AAAA,mBAC5C;AAAA,iBACF;AAAA,eACF,CAAA;AAAA,aACK,MAAA;AACL,cAAO,OAAA,CAAA;AAAA,gBACL,QAAA;AAAA,gBACA;AAAA,kBACE,KAAK,MAAO,CAAA,KAAA;AAAA,kBACZ,GAAG,MAAA;AAAA,iBACL;AAAA,gBACA;AAAA,kBACE,SAAS,MAAM;AAAA,oBACb,gBAAA,CAAiB,+BAAO,MAAQ,EAAA;AAAA,sBAC9B,MAAA;AAAA,qBACD,CAAA;AAAA,mBACH;AAAA,iBACF;AAAA,eACF,CAAA;AAAA,aACF;AAAA,WACD,CAAA;AAAA,UACH,GAAG,KAAA;AAAA,SACL;AAAA,OACF,CAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAC,CAAA,CAAA;AAEM,MAAM,MAAS,GAAA,OAAA;AAAA,EACpB,YAAA;AAAA,EACA,QAAA,CAAS,EAAE,UAAY,EAAA,SAAA,EAAW,OAAO,YAAc,EAAA,OAAA,EAAS,MAAM,CAAA;AAAA,EACtE,aAAA,CAAc,YAAY,MAAM,CAAA;AAClC;;;;"}