{"version":3,"file":"index.mjs","sources":["../../../../../packages/formily/radio/index.ts"],"sourcesContent":["import { defineComponent, h } from 'vue'\nimport { connect, mapProps, mapReadPretty } from '@formily/vue'\nimport { ElRadio, ElRadioButton, ElRadioGroup } from 'element-plus'\nimport { PreviewText } from '../preview-text'\nimport {\n  composeExport,\n  resolveComponent,\n  transformComponent,\n} from '../__builtins__/shared'\nimport type { Component, PropType } from 'vue'\nimport type { SlotTypes } from '../__builtins__/shared'\nimport type {\n  RadioGroupProps as ElRadioGroupProps,\n  RadioProps as ElRadioProps,\n} from 'element-plus'\n\ntype IOption =\n  | {\n      value: ElRadioProps['value']\n      label: SlotTypes\n      disabled?: boolean\n      border?: boolean\n    }\n  | string\n\nexport type RadioGroupProps = ElRadioGroupProps & {\n  options?: IOption[]\n  optionType: 'default' | 'button'\n}\n\nexport type RadioProps = ElRadioProps\n\nconst RadioGroupOption = defineComponent<RadioGroupProps>({\n  name: 'FRadioGroup',\n  props: {\n    options: {\n      type: Array as PropType<RadioGroupProps['options']>,\n      default: () => [],\n    },\n    optionType: {\n      type: String as PropType<RadioGroupProps['optionType']>,\n      default: 'default',\n    },\n  },\n  setup(props, { attrs, slots }) {\n    return () => {\n      const options = props.options || []\n      const OptionType = (\n        props.optionType === 'button' ? ElRadioButton : ElRadio\n      ) as Component\n\n      return h(\n        ElRadioGroup,\n        {\n          ...attrs,\n        },\n        {\n          ...slots,\n          default: () =>\n            options.map((option: IOption) => {\n              if (typeof option === 'string') {\n                return h(\n                  OptionType,\n                  { label: option, value: option, key: option },\n                  {\n                    default: () => [\n                      resolveComponent(slots?.option ?? option, { option }),\n                    ],\n                  }\n                )\n              } else {\n                return h(\n                  OptionType,\n                  {\n                    key: String(option.value),\n                    ...option,\n                  },\n                  {\n                    default: () => [\n                      resolveComponent(slots?.option ?? option.label, {\n                        option,\n                      }),\n                    ],\n                  }\n                )\n              }\n            }),\n        }\n      )\n    }\n  },\n})\n\nconst RadioGroup = connect(\n  transformComponent(RadioGroupOption, {\n    change: 'update:modelValue',\n  }),\n  mapProps({ dataSource: 'options', value: 'modelValue' }),\n  mapReadPretty(PreviewText.Select)\n)\nexport const Radio = composeExport(ElRadio, {\n  Group: RadioGroup,\n})\n\nexport default Radio\n"],"names":[],"mappings":";;;;;;;;AAgCA,MAAM,mBAAmB,eAAiC,CAAA;AAAA,EACxD,IAAM,EAAA,aAAA;AAAA,EACN,KAAO,EAAA;AAAA,IACL,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,KAAA;AAAA,MACN,OAAA,EAAS,MAAM,EAAC;AAAA,KAClB;AAAA,IACA,UAAY,EAAA;AAAA,MACV,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,SAAA;AAAA,KACX;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,MAAA,MAAM,UACJ,GAAA,KAAA,CAAM,UAAe,KAAA,QAAA,GAAW,aAAgB,GAAA,OAAA,CAAA;AAGlD,MAAO,OAAA,CAAA;AAAA,QACL,YAAA;AAAA,QACA;AAAA,UACE,GAAG,KAAA;AAAA,SACL;AAAA,QACA;AAAA,UACE,GAAG,KAAA;AAAA,UACH,OAAS,EAAA,MACP,OAAQ,CAAA,GAAA,CAAI,CAAC,MAAoB,KAAA;AAC/B,YAAI,IAAA,OAAO,WAAW,QAAU,EAAA;AAC9B,cAAO,OAAA,CAAA;AAAA,gBACL,UAAA;AAAA,gBACA,EAAE,KAAO,EAAA,MAAA,EAAQ,KAAO,EAAA,MAAA,EAAQ,KAAK,MAAO,EAAA;AAAA,gBAC5C;AAAA,kBACE,SAAS,MAAG;AAjEhC,oBAAA,IAAA,EAAA,CAAA;AAiEmC,oBAAA,OAAA;AAAA,sBACb,kBAAiB,EAAO,GAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAA,MAAA,KAAP,YAAiB,MAAQ,EAAA,EAAE,QAAQ,CAAA;AAAA,qBACtD,CAAA;AAAA,mBAAA;AAAA,iBACF;AAAA,eACF,CAAA;AAAA,aACK,MAAA;AACL,cAAO,OAAA,CAAA;AAAA,gBACL,UAAA;AAAA,gBACA;AAAA,kBACE,GAAA,EAAK,MAAO,CAAA,MAAA,CAAO,KAAK,CAAA;AAAA,kBACxB,GAAG,MAAA;AAAA,iBACL;AAAA,gBACA;AAAA,kBACE,SAAS,MAAG;AA9EhC,oBAAA,IAAA,EAAA,CAAA;AA8EmC,oBAAA,OAAA;AAAA,sBACb,gBAAiB,CAAA,CAAA,EAAA,GAAA,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,CAAO,MAAP,KAAA,IAAA,GAAA,EAAA,GAAiB,OAAO,KAAO,EAAA;AAAA,wBAC9C,MAAA;AAAA,uBACD,CAAA;AAAA,qBACH,CAAA;AAAA,mBAAA;AAAA,iBACF;AAAA,eACF,CAAA;AAAA,aACF;AAAA,WACD,CAAA;AAAA,SACL;AAAA,OACF,CAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAC,CAAA,CAAA;AAED,MAAM,UAAa,GAAA,OAAA;AAAA,EACjB,mBAAmB,gBAAkB,EAAA;AAAA,IACnC,MAAQ,EAAA,mBAAA;AAAA,GACT,CAAA;AAAA,EACD,SAAS,EAAE,UAAA,EAAY,SAAW,EAAA,KAAA,EAAO,cAAc,CAAA;AAAA,EACvD,aAAA,CAAc,YAAY,MAAM,CAAA;AAClC,CAAA,CAAA;AACa,MAAA,KAAA,GAAQ,cAAc,OAAS,EAAA;AAAA,EAC1C,KAAO,EAAA,UAAA;AACT,CAAC;;;;"}