{"version":3,"file":"index.mjs","sources":["../../../../../../package/formily/input/src/index.tsx"],"sourcesContent":["import { composeExport, transformComponent, stylePrefix } from \"../../__builtins__\";\nimport {\n  Field,\n  RecursionField,\n  Schema,\n  connect,\n  mapProps,\n  mapReadPretty,\n  useField,\n  useFieldSchema\n} from \"@formily/vue\";\nimport { PreviewText } from \"../../preview-text\";\nimport { ElIcon, ElInput } from \"element-plus\";\nimport { defineComponent, h } from \"vue\";\nimport { ObjectField } from \"@formily/core\";\nimport { find, map } from \"lodash-es\";\nimport { Loading } from \"@element-plus/icons-vue\";\n\nexport type InputProps = typeof ElInput;\n\nconst RefElInput = defineComponent({\n  name: \"RefElInput\",\n  props: ElInput.props,\n  setup(props, { attrs, slots }) {\n    const field = useField();\n    return () =>\n      h(\n        ElInput,\n        {\n          ...attrs,\n          ...props,\n          ref: (inst) => {\n            field.value.inject({\n              getRef: () => inst\n            });\n          }\n        },\n        slots\n      );\n  }\n});\n\nconst TransformElInput = transformComponent<InputProps>(RefElInput, {\n  change: \"update:modelValue\"\n});\n\nconst InnerInput = connect(\n  TransformElInput,\n  mapProps(\n    {\n      value: \"modelValue\",\n      readOnly: \"readonly\"\n    },\n    (props, field) => {\n      return {\n        ...props,\n        ref: (inst: any) => {\n          field.inject({\n            getInstance: () => inst\n          });\n        },\n        suffixIcon:\n          // @ts-ignore\n          field?.[\"loading\"] || field?.[\"validating\"] ? (\n            <ElIcon class=\"is-loading\">\n              <Loading />\n            </ElIcon>\n          ) : (\n            props.suffixIcon\n          )\n      };\n    }\n  ),\n  mapReadPretty(PreviewText.Input)\n);\n\nconst TextArea = connect(\n  InnerInput,\n  mapProps((props) => {\n    return {\n      ...props,\n      type: \"textarea\"\n    };\n  }),\n  mapReadPretty(PreviewText.Input)\n);\n\nexport const Password = connect(\n  InnerInput,\n  mapProps((props) => ({\n    ...props,\n    showPassword: true\n  }))\n);\n\nexport const Item = defineComponent({\n  name: \"FInputItem\",\n  inheritAttrs: false,\n  setup(_, { attrs }) {\n    const field = useField<ObjectField>();\n    const schema = useFieldSchema();\n    const schemas = (schema.value as any).schema;\n    map(schemas, (value, key) => {\n      value[\"name\"] = key;\n    });\n    const prepend = find(schemas, [\"x-slot\", \"prepend\"]);\n    const append = find(schemas, [\"x-slot\", \"append\"]);\n    const input = find(schemas, (item) => !item[\"x-slot\"] || item[\"x-slot\"] === \"default\");\n\n    const slots: { prepend?: () => any; append?: () => any } = {};\n\n    if (prepend) {\n      slots[\"prepend\"] = () => {\n        return h(RecursionField, {\n          name: prepend.name,\n          schema: prepend,\n          basePath: field.value.address\n        });\n      };\n    }\n\n    if (append) {\n      slots[\"append\"] = () =>\n        h(RecursionField, {\n          name: append.name,\n          schema: append,\n          basePath: field.value.address\n        });\n    }\n    return () => {\n      return h(\n        Field,\n        {\n          ...new Schema(input).toFieldProps(),\n          class: [`${stylePrefix}-select-input`, attrs?.class],\n          style: attrs?.style,\n          basePath: field.value.address\n        },\n        slots\n      );\n    };\n  }\n});\n\nexport const Input = composeExport(InnerInput, {\n  TextArea,\n  Password,\n  Item\n});\n\nexport default Input;\n"],"names":["RefElInput","defineComponent","name","props","ElInput","setup","attrs","slots","field","useField","h","ref","inst","value","inject","getRef","TransformElInput","transformComponent","change","InnerInput","connect","mapProps","readOnly","getInstance","suffixIcon","_createVNode","ElIcon","default","Loading","mapReadPretty","PreviewText","Input","TextArea","type","Password","showPassword","Item","inheritAttrs","_","schema","useFieldSchema","schemas","map","key","prepend","find","append","input","item","RecursionField","basePath","address","Field","Schema","toFieldProps","class","stylePrefix","style","composeExport"],"mappings":"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"}