{"version":3,"file":"registrable.mjs","sources":["../../../../../src/utils/mixins/registrable.ts"],"sourcesContent":["import { createApp } from 'vue';\r\n\r\nfunction generateWarning(child, parent) {\r\n  // eslint-disable-next-line no-console\r\n  return () =>\r\n    console.error(`The ${child} component must be used inside a ${parent}`);\r\n}\r\n\r\n// 注入\r\nexport function inject(\r\n  namespace: string,\r\n  child: Record<string, any>,\r\n  parent: Record<string, any>\r\n): any {\r\n  const defaultImpl =\r\n    child && parent\r\n      ? {\r\n          register: generateWarning(child, parent),\r\n          unregister: generateWarning(child, parent),\r\n        }\r\n      : null;\r\n\r\n  return createApp({\r\n    name: 'registrable-inject',\r\n\r\n    inject: {\r\n      [namespace]: {\r\n        default: defaultImpl,\r\n      },\r\n    },\r\n  });\r\n}\r\n\r\n// 提供\r\nexport function provide(namespace: string): any {\r\n  return createApp({\r\n    name: 'registrable-provide',\r\n\r\n    methods: {\r\n      register: null,\r\n      unregister: null,\r\n    },\r\n    provide() {\r\n      return {\r\n        [namespace]: {\r\n          register: this.register,\r\n          unregister: this.unregister,\r\n        },\r\n      };\r\n    },\r\n  });\r\n}\r\n"],"names":[],"mappings":";;AAEA,SAAS,eAAA,CAAgB,OAAO,MAAQ,EAAA;AAEtC,EAAA,OAAO,MACL,OAAA,CAAQ,KAAM,CAAA,CAAA,IAAA,EAAO,yCAAyC,MAAQ,CAAA,CAAA,CAAA,CAAA;AAC1E,CAAA;AAGgB,SAAA,MAAA,CACd,SACA,EAAA,KAAA,EACA,MACK,EAAA;AACL,EAAM,MAAA,WAAA,GACJ,SAAS,MACL,GAAA;AAAA,IACE,QAAA,EAAU,eAAgB,CAAA,KAAA,EAAO,MAAM,CAAA;AAAA,IACvC,UAAA,EAAY,eAAgB,CAAA,KAAA,EAAO,MAAM,CAAA;AAAA,GAE3C,GAAA,IAAA,CAAA;AAEN,EAAA,OAAO,SAAU,CAAA;AAAA,IACf,IAAM,EAAA,oBAAA;AAAA,IAEN,MAAQ,EAAA;AAAA,MACN,CAAC,SAAY,GAAA;AAAA,QACX,OAAS,EAAA,WAAA;AAAA,OACX;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AACH,CAAA;AAGO,SAAS,QAAQ,SAAwB,EAAA;AAC9C,EAAA,OAAO,SAAU,CAAA;AAAA,IACf,IAAM,EAAA,qBAAA;AAAA,IAEN,OAAS,EAAA;AAAA,MACP,QAAU,EAAA,IAAA;AAAA,MACV,UAAY,EAAA,IAAA;AAAA,KACd;AAAA,IACA,OAAU,GAAA;AACR,MAAO,OAAA;AAAA,QACL,CAAC,SAAY,GAAA;AAAA,UACX,UAAU,IAAK,CAAA,QAAA;AAAA,UACf,YAAY,IAAK,CAAA,UAAA;AAAA,SACnB;AAAA,OACF,CAAA;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AACH;;;;"}