{"version":3,"file":"index.mjs","sources":["../../../../../packages/formily/checkbox/index.ts"],"sourcesContent":["import { defineComponent, h } from 'vue'\nimport { connect, mapProps, mapReadPretty } from '@formily/vue'\nimport { ElCheckbox, ElCheckboxButton, ElCheckboxGroup } 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  CheckboxGroupProps as ElCheckboxGroupProps,\n  CheckboxProps as ElCheckboxProps,\n} from 'element-plus'\n\ntype IOptionData = {\n  value: ElCheckboxProps['value']\n  label: SlotTypes\n  disabled?: boolean\n  border?: boolean\n}\n\ntype IOption = IOptionData | string\n\nexport type CheckboxGroupProps = ElCheckboxGroupProps & {\n  options?: IOption[]\n  optionType: 'default' | 'button'\n}\n\nexport type CheckboxProps = ElCheckboxProps & {\n  optionType: 'default' | 'button'\n}\n\nconst CheckboxOption = defineComponent<CheckboxProps>({\n  name: 'Checkbox',\n  inheritAttrs: false,\n  props: {\n    optionType: {\n      type: String as PropType<CheckboxProps['optionType']>,\n      default: 'default',\n    },\n  },\n  setup(props, { attrs, slots }) {\n    return () => {\n      const option = {\n        label: attrs.label,\n        value: attrs.value,\n      }\n      return h(\n        props.optionType === 'button' ? ElCheckboxButton : ElCheckbox,\n        {\n          ...attrs,\n        },\n        {\n          default: () => [\n            resolveComponent(slots.default ?? (option as IOptionData)?.label, {\n              option,\n            }),\n          ],\n        }\n      )\n    }\n  },\n})\n\nconst CheckboxGroupOption = defineComponent<CheckboxGroupProps>({\n  name: 'CheckboxGroup',\n  props: {\n    options: {\n      type: Array as PropType<CheckboxGroupProps['options']>,\n      default: () => [],\n    },\n    optionType: {\n      type: String as PropType<CheckboxGroupProps['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' ? ElCheckboxButton : ElCheckbox\n      ) as Component\n\n      return h(\n        ElCheckboxGroup,\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 CheckboxGroup = connect(\n  transformComponent(CheckboxGroupOption, {\n    change: 'update:modelValue',\n  }),\n  mapProps({ dataSource: 'options', value: 'modelValue' }),\n  mapReadPretty(PreviewText.Select, { multiple: true })\n)\n\nexport const Checkbox = composeExport(\n  connect(\n    transformComponent(CheckboxOption, {\n      change: 'update:modelValue',\n    }),\n    mapProps({ value: 'modelValue' }),\n    mapReadPretty(PreviewText.Select)\n  ),\n  {\n    Group: CheckboxGroup,\n  }\n)\n\nexport default Checkbox\n"],"names":[],"mappings":"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"}