(function(exports) {
  "use strict";
  const DEFAULT_VERSIONS = {
    "state": "v1.0.11",
    "bootstrap": "v1.0.1",
    "base": "v1.0.7",
    "dataTable": "v1.0.6",
    "kanban": "v1.0.0",
    "mindmap": "v1.0.0",
    "chart": "v1.0.0"
  };
  const Loader = {
    /**
     * 加载指定模块并注入 importmap
     * @param {...string} pkgs 模块名格式: 'name' 或 'name:version'
     */
    load: (...pkgs) => {
      if (typeof document === "undefined") return;
      const currentScript = document.currentScript;
      const currentUrl = currentScript ? currentScript.src : "";
      let tpl = "https://apigo.cc/web/{project}/raw/tag/{tag}/dist/{project}.js";
      if (currentUrl.includes("/loader/")) {
        const match = currentUrl.match(/(.*\/web\/)loader\/raw\/tag\/([^\/]+)\//);
        if (match) {
          const baseUrl = match[1];
          const loaderTag = match[2];
          tpl = `${baseUrl}{project}/raw/tag/{tag}/dist/{project}.js`;
          Object.keys(DEFAULT_VERSIONS).forEach((k) => {
            if (DEFAULT_VERSIONS[k] === "v1.0.0") DEFAULT_VERSIONS[k] = loaderTag;
          });
        }
      }
      const importMap = { imports: {} };
      pkgs.forEach((pkg) => {
        let [name, version] = pkg.split(":");
        version = version || DEFAULT_VERSIONS[name] || "main";
        const url = tpl.replace(/{project}/g, name).replace(/{tag}/g, version);
        importMap.imports[`@web/${name}`] = url;
      });
      const script = document.createElement("script");
      script.type = "importmap";
      script.textContent = JSON.stringify(importMap);
      if (currentScript) {
        currentScript.parentNode.insertBefore(script, currentScript);
      } else {
        document.head.appendChild(script);
      }
    }
  };
  globalThis.Loader = Loader;
  exports.Loader = Loader;
  exports.default = Loader;
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
})(this.Loader = this.Loader || {});
