{"version":3,"file":"transform-component.mjs","sources":["../../../../../../package/formily/__builtins__/shared/transform-component.ts"],"sourcesContent":["import type { Component } from \"vue\";\nimport { defineComponent } from \"vue\";\nimport { merge, each } from \"@formily/shared\";\nimport { h } from \"@formily/vue\";\n\ntype ListenersTransformRules = Record<string, string>;\n\nexport const transformComponent = <T extends Record<string, any>>(\n  tag: any,\n  transformRules?: ListenersTransformRules,\n  defaultProps?: Partial<T>\n): Component<T> | any => {\n  return defineComponent({\n    setup(props, { attrs, slots }) {\n      return () => {\n        let data = {\n          ...attrs\n        };\n        if (transformRules) {\n          const listeners = transformRules;\n          each(listeners, (event, extract) => {\n            data[`on${event[0].toUpperCase()}${event.slice(1)}`] =\n              attrs[`on${extract[0].toUpperCase()}${extract.slice(1)}`];\n          });\n        }\n        if (defaultProps) {\n          data = merge(defaultProps, attrs);\n        }\n        return h(tag, data, slots);\n      };\n    }\n  });\n};\n"],"names":[],"mappings":";;;;AAOO,MAAM,kBAAqB,GAAA,CAChC,GACA,EAAA,cAAA,EACA,YACuB,KAAA;AACvB,EAAA,OAAO,eAAgB,CAAA;AAAA,IACrB,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,OAAS,EAAA;AAC7B,MAAA,OAAO,MAAM;AACX,QAAA,IAAI,IAAO,GAAA;AAAA,UACT,GAAG,KAAA;AAAA,SACL,CAAA;AACA,QAAA,IAAI,cAAgB,EAAA;AAClB,UAAA,MAAM,SAAY,GAAA,cAAA,CAAA;AAClB,UAAK,IAAA,CAAA,SAAA,EAAW,CAAC,KAAA,EAAO,OAAY,KAAA;AAClC,YAAK,IAAA,CAAA,CAAA,EAAA,EAAK,KAAM,CAAA,CAAC,CAAE,CAAA,WAAA,EAAa,CAAG,EAAA,KAAA,CAAM,KAAM,CAAA,CAAC,CAAC,CAAA,CAAE,IACjD,KAAM,CAAA,CAAA,EAAA,EAAK,OAAQ,CAAA,CAAC,CAAE,CAAA,WAAA,EAAa,CAAA,EAAG,OAAQ,CAAA,KAAA,CAAM,CAAC,CAAC,CAAE,CAAA,CAAA,CAAA;AAAA,WAC3D,CAAA,CAAA;AAAA,SACH;AACA,QAAA,IAAI,YAAc,EAAA;AAChB,UAAO,IAAA,GAAA,KAAA,CAAM,cAAc,KAAK,CAAA,CAAA;AAAA,SAClC;AACA,QAAO,OAAA,CAAA,CAAE,GAAK,EAAA,IAAA,EAAM,KAAK,CAAA,CAAA;AAAA,OAC3B,CAAA;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AACH;;;;"}