{"version":3,"file":"ComponentErrorBoundary.mjs","sources":["../../../../../pro-components/chat/chat-engine/components/shared/ComponentErrorBoundary.tsx"],"sourcesContent":["import { defineComponent, ref, onErrorCaptured } from 'vue';\n\ninterface Props {\n  /** 组件标识，用于错误日志 */\n  componentName: string;\n  /** 日志前缀，如 'ActivityRenderer' 或 'ToolCallRenderer' */\n  logPrefix?: string;\n}\n\nexport default defineComponent({\n  name: 'ComponentErrorBoundary',\n  props: {\n    componentName: {\n      type: String,\n      required: true,\n    },\n    logPrefix: {\n      type: String,\n      default: 'ComponentRenderer',\n    },\n  },\n  setup(props: Props, { slots }) {\n    const hasError = ref(false);\n    const error = ref<Error | null>(null);\n\n    // 捕获子组件错误\n    onErrorCaptured((err: Error, instance, info) => {\n      hasError.value = true;\n      error.value = err;\n\n      console.error(`[${props.logPrefix}] Error in \"${props.componentName}\":`, err, info);\n\n      // 阻止错误继续向上传播\n      return false;\n    });\n\n    return () => {\n      if (!hasError.value) {\n        return slots.default?.();\n      }\n      return slots.fallback?.();\n    };\n  },\n});\n"],"names":["defineComponent","name","props","componentName","type","String","required","logPrefix","setup","_ref","slots","hasError","ref","error","onErrorCaptured","err","instance","info","value","console","_slots$fallback","_slots$default","call","fallback"],"mappings":";;;;;;;;AASA,6BAAeA,eAAgB,CAAA;AAC7BC,EAAAA,IAAM,EAAA,wBAAA;AACNC,EAAAA,KAAO,EAAA;AACLC,IAAAA,aAAe,EAAA;AACbC,MAAAA,IAAM,EAAAC,MAAA;AACNC,MAAAA,QAAU,EAAA,IAAA;KACZ;AACAC,IAAAA,SAAW,EAAA;AACTH,MAAAA,IAAM,EAAAC,MAAA;MACN,SAAS,EAAA,mBAAA;AACX,KAAA;GACF;AACAG,EAAAA,KAAM,WAANA,KAAMA,CAAAN,KAAA,EAAAO,IAAA,EAAyB;AAAA,IAAA,IAATC,KAAA,GAAAD,IAAA,CAAAC,KAAA,CAAA;AACd,IAAA,IAAAC,QAAA,GAAWC,IAAI,KAAK,CAAA,CAAA;AACpB,IAAA,IAAAC,KAAA,GAAQD,IAAkB,IAAI,CAAA,CAAA;AAGpBE,IAAAA,eAAA,CAAA,UAACC,GAAY,EAAAC,QAAA,EAAUC,IAAS,EAAA;MAC9CN,QAAA,CAASO,KAAQ,GAAA,IAAA,CAAA;MACjBL,KAAA,CAAMK,KAAQ,GAAAH,GAAA,CAAA;AAEdI,MAAAA,OAAA,CAAQN,iBAAUX,KAAA,CAAMK,mCAAwBL,KAAM,CAAAC,aAAA,UAAmBY,KAAKE,IAAI,CAAA,CAAA;AAG3E,MAAA,OAAA,KAAA,CAAA;AACT,KAAC,CAAA,CAAA;AAED,IAAA,OAAO,YAAM;AAAA,MAAA,IAAAG,eAAA,CAAA;AACP,MAAA,IAAA,CAACT,SAASO,KAAO,EAAA;AAAA,QAAA,IAAAG,cAAA,CAAA;AACnB,QAAA,OAAA,CAAAA,cAAA,GAAOX,gBAAgB,MAAAW,IAAAA,IAAAA,cAAA,KAAhBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,cAAA,CAAAC,IAAA,CAAAZ,KAAgB,CAAA,CAAA;AACzB,OAAA;AACA,MAAA,OAAA,CAAAU,eAAA,GAAOV,MAAMa,QAAW,MAAA,IAAA,IAAAH,eAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjBA,eAAA,CAAAE,IAAA,CAAAZ,KAAiB,CAAA,CAAA;KAC1B,CAAA;AACF,GAAA;AACF,CAAC,CAAA;;;;"}