{"version":3,"file":"actions.mjs","sources":["../../../../../packages/formily/json-schema/actions.ts"],"sourcesContent":["import { defineComponent, h } from 'vue'\nimport { useForm } from '@formily/vue'\nimport Submit from '../submit'\nimport Reset from '../reset'\nimport type { Component } from 'vue'\n\nconst isDef = (v: any) => v !== undefined && v !== null && v !== ''\n\nexport default defineComponent({\n  name: 'Actions',\n  props: {\n    onSubmit: Function,\n    onReset: Function,\n    submitProps: {\n      type: Object,\n    },\n    resetProps: {\n      type: Object,\n    },\n    submitText: String,\n    resetText: String,\n    layout: {\n      type: String,\n      default: 'submit,reset',\n    },\n  },\n  setup(props) {\n    const formRef = useForm()\n    const form = formRef.value\n\n    const { onSubmit, onReset } = props\n\n    // 异步是为了让用户拿到form.values时是重置后的数据，然后再执行用户的重置方法\n    const handleReset = () => setTimeout(() => onReset?.({}), 0)\n\n    const handleSubmit = async (values: Record<string, any>) => {\n      values = Object.keys(values).reduce((pre, key) => {\n        const value = values[key]\n        if (isDef(value)) {\n          pre = {\n            ...pre,\n            [key]: value,\n          }\n        }\n        return pre\n      }, {})\n      form.submitting = true\n      await onSubmit?.(values)\n      form.submitting = false\n    }\n\n    return () => {\n      const { submitProps, resetProps, submitText, resetText, layout } = props\n\n      const renderSubmit = () => {\n        return submitText\n          ? h(\n              Submit as Component,\n              { type: 'primary', onSubmit: handleSubmit, ...submitProps },\n              { default: () => submitText }\n            )\n          : ''\n      }\n\n      const renderReset = () => {\n        return resetText\n          ? h(\n              Reset as Component,\n              { onClick: handleReset, ...resetProps },\n              { default: () => resetText }\n            )\n          : ''\n      }\n\n      return h(\n        'div',\n        {\n          class: 'fep-actions',\n        },\n        layout\n          .split(',')\n          .map((item) => {\n            if (item === 'submit') {\n              return renderSubmit()\n            } else if (item === 'reset') {\n              return renderReset()\n            }\n            return null\n          })\n          .filter((vnode) => vnode)\n      )\n    }\n  },\n})\n"],"names":[],"mappings":"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"}