yxl
2025-02-07 cea709ad1c7bd45aa45972174bd528b15bf4ae6b
最新代码提交
已添加1个文件
已修改8个文件
396 ■■■■ 文件已修改
package-lock.json 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/config/config.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/api.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Chat/chatList.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/serviceRag.js 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/chartView/index.vue 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yarn.lock 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package-lock.json
@@ -18,7 +18,7 @@
        "jsencrypt": "^3.3.2",
        "json2md": "^2.0.1",
        "jwchat": "^0.2.3",
        "marked": "^14.1.2",
        "marked": "^5.0.0",
        "nanoid": "^5.0.7",
        "vue": "^2.6.11",
        "vue-markdown": "^2.2.4",
@@ -13550,14 +13550,14 @@
      }
    },
    "node_modules/marked": {
      "version": "14.1.2",
      "resolved": "https://registry.npmjs.org/marked/-/marked-14.1.2.tgz",
      "integrity": "sha512-f3r0yqpz31VXiDB/wj9GaOB0a2PRLQl6vJmXiFrniNwjkKdvakqJRULhjFKJpxOchlCRiG5fcacoUZY5Xa6PEQ==",
      "version": "5.1.2",
      "resolved": "https://registry.npmmirror.com/marked/-/marked-5.1.2.tgz",
      "integrity": "sha512-ahRPGXJpjMjwSOlBoTMZAK7ATXkli5qCPxZ21TG44rx1KEo44bii4ekgTDQPNRQ4Kh7JMb9Ub1PVk1NxRSsorg==",
      "bin": {
        "marked": "bin/marked.js"
      },
      "engines": {
        "node": ">= 18"
        "node": ">= 16"
      }
    },
    "node_modules/match-at": {
package.json
@@ -26,9 +26,9 @@
    "jsencrypt": "^3.3.2",
    "json2md": "^2.0.1",
    "jwchat": "^0.2.3",
    "marked": "^14.1.2",
    "nanoid": "^5.0.7",
    "vue": "^2.6.11",
    "marked": "^5.0.0",
    "vue-markdown": "^2.2.4",
    "vue-resource": "^1.5.3",
    "vue-router": "^3.6.5",
public/config/config.js
@@ -16,8 +16,9 @@
  // apiUrl: "http://103.135.160.14:5381/",0
  // apiUrl: location.origin,
  // apiUrl: "http://192.168.11.194",
  // apiUrl:"http://103.135.160.14:7800",
  apiUrl:"http://103.135.160.14:7800",
  apiUrl:"/dev-api",
  apiRagUrl:"/rag-api",
  imgUrl: webHost + "/image/",
  reportMd: "/Data/Report.md",
  reportDocx: "/Data/Report.docx",
src/api/api.js
@@ -1,4 +1,5 @@
import service from "../utils/service.js";
import serviceRag from '../utils/serviceRag.js'
export function getAIMessage(params) {
  //请求地址
  // return service.get("/v1/chat?message=" + params);
@@ -23,6 +24,10 @@
  return service.post("/api/agent/intention2" ,params);
}
export function getRagAgentIntention(params){
  return serviceRag.get("/rag" ,{params:params});
}
export function getAgentLayerList(params){
  return service.get("/api/agent/layerList" ,{params:params});
}
src/components/Chat/chatList.vue
@@ -111,6 +111,12 @@
                      >
                    </div>
                  </div>
                  <div v-else-if="res.type == 'stream'">
                    <div
                      v-html="res.val"
                      class="markdown-container"
                    ></div>
                  </div>
                  <div v-else-if="res.type == 'table'">
                    <table class="contTable">
                      <thead>
@@ -190,7 +196,7 @@
  arr: [],
  components: {
    VueMarkdown,
    affairs
    affairs,
  },
  filters: {
    setWidth(value) {
@@ -202,19 +208,19 @@
        return "99vh";
      }
      return width;
    }
    },
  },
  props: {
    pageConfig: {
      type: Object,
      default: () => ({
        width: "100vw"
      })
        width: "100vw",
      }),
    },
    list: {
      type: Array,
      default: () => []
    }
      default: () => [],
    },
  },
  data() {
    return {
@@ -223,7 +229,7 @@
      imgSrc: "",
      videoSrc: "",
      audioSrc: "",
      isDisabled: true
      isDisabled: true,
    };
  },
  watch: {
@@ -234,7 +240,7 @@
          this.load = false;
        });
      }
    }
    },
  },
  mounted() {
    setTimeout(() => {
@@ -256,7 +262,7 @@
    setDownLoadFile(res) {
      // ä½¿ç”¨marked将Markdown转换为HTML
      const blob = new Blob([res.val], {
        type: "text/markdown"
        type: "text/markdown",
      });
      // ä½¿ç”¨HTML5的Blob生成链接,让用户可以下载生成的Word文档
      const link = URL.createObjectURL(blob);
@@ -374,8 +380,8 @@
      this.videoSrc = undefined;
      this.audioSrc = undefined;
      done();
    }
  }
    },
  },
};
</script>
<style scoped>
@@ -421,6 +427,10 @@
  text-align: center;
  font-size: 14px;
}
.markdown-container {
  padding: 10px;
  white-space: pre-wrap;
}
</style>
<style scoped>
.webBody {
src/utils/serviceRag.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
import axios from 'axios';
// arcgis æœåŠ¡è¯·æ±‚
// åˆ›å»ºaxios实例
const service = axios.create({
  baseURL: config.apiRagUrl, // api的base_url
  timeout: -1 // è¯·æ±‚è¶…æ—¶æ—¶é—´
});
// è¯·æ±‚拦截器
service.interceptors.request.use(
  config => {
    // å¯ä»¥åœ¨è¿™é‡Œæ·»åŠ è¯·æ±‚å¤´ç­‰ä¿¡æ¯
    config.responseType = 'stream'; // è®¾ç½®æµå¼å“åº”
    return config;
  },
  error => {
    // è¯·æ±‚错误处理
    console.log(error); // for debug
    Promise.reject(error);
  }
);
// å“åº”拦截器
service.interceptors.response.use(
  response => {
    // å¯¹å“åº”数据做处理,例如只返回data部分
    const res = response.data;
    // æ ¹æ®è¿”回的状态码做相应处理,例如401未授权等
    return res;
  },
  error => {
    // å“åº”错误处理
    // console.log('err' + error.response.status); // for debug
    return Promise.reject(error);
  }
);
export default service;
src/views/chartView/index.vue
@@ -22,12 +22,14 @@
  getAgentIntention,
  getAgentLayerList,
  getAgentThistorySave,
  getRagAgentIntention,
} from "../../api/api.js";
import mapSetFunc from "../../assets/js/mapSetFunc.js";
import { nanoid } from "nanoid";
import mapServer from "../../assets/js/map/mapServer.js";
import mapImg from "../../assets/js/map/mapImg.js";
import mapModel from "../../assets/js/map/mapModel.js";
import { marked } from "marked";
export default {
  name: "jwChat",
@@ -260,6 +262,7 @@
        session_id: this.uuid.toString(),
      };
      if (formData.message.indexOf("@map") > -1) {
      var obj = {
        ai: "",
        create_time: msgData.getDate1(),
@@ -268,18 +271,36 @@
        update_time: "",
        userid: 0,
      };
      getAgentThistorySave(obj).then((response) => {
        if (response.code == 200) {
          obj.id = response.id;
          this.obj = obj;
        }
        this.setAgentIntention(obj, formData);
      });
      } else {
        this.setRagAgentIntention(formData);
      }
      // var obj = {
      //   ai: "",
      //   create_time: msgData.getDate1(),
      //   human: res,
      //   sessionid: this.uuid,
      //   update_time: "",
      //   userid: 0,
      // };
      // getAgentThistorySave(obj).then((response) => {
      //   if (response.code == 200) {
      //     obj.id = response.id;
      //     this.obj = obj;
      //   }
      //   this.setAgentIntention(obj, formData);
      // });
    },
    async setAgentIntention(obj, formData) {
      console.log("obj", formData);
      if (formData.message.indexOf("@map") > -1) {
      getAgentIntention(formData)
        .then((response) => {
          if (response.code != 200) {
@@ -294,7 +315,6 @@
            }
            return;
          }
          const type = response.type;
          //普通对话信息查询
          if (type == "message" || type == "Rag") {
@@ -321,11 +341,131 @@
          var rolMsg = [
            {
              type: "text",
              val: "抱歉,服务器似乎出了点问题,我们正在修复中。",
                val: "未查询到相关信息。",
            },
          ];
          this.refashMsg(rolMsg);
        });
      } else {
        getRagAgentIntention(formData).then((res) => {});
      }
      // getAgentIntention(formData)
      //   .then((response) => {
      //     if (response.code != 200) {
      //       if (formData.message != "@map") {
      //         var rolMsg = [
      //           {
      //             type: "text",
      //             val: "未查询到相关信息。",
      //           },
      //         ];
      //         this.refashMsg(rolMsg);
      //       }
      //       return;
      //     }
      //     const type = response.type;
      //     //普通对话信息查询
      //     if (type == "message" || type == "Rag") {
      //       //关闭地图
      //       if (!this.closeMap) {
      //         this.$store.state.setScreenFlag = false;
      //       }
      //       var rolMsg = [
      //         {
      //           type: "text",
      //           val: type == "Rag" ? response.content : response.msg,
      //         },
      //       ];
      //       this.refashMsg(rolMsg);
      //     }
      //     //地图查询
      //     else {
      //       //打开地图
      //       this.$store.state.setScreenFlag = true;
      //       this.setMapfunc(response.content, obj);
      //     }
      //   })
      //   .catch((error) => {
      //     var rolMsg = [
      //       {
      //         type: "text",
      //         val: "抱歉,服务器似乎出了点问题,我们正在修复中。",
      //       },
      //     ];
      //     this.refashMsg(rolMsg);
      //   });
    },
    //普通对话问答
    async setRagAgentIntention(formData) {
      try {
        // å‘送请求
        const params = new URLSearchParams(formData);
        const url = `/rag-api/rag?${params.toString()}`;
        let response = await fetch(url, {
          method: "get",
          responseType: "stream",
          headers: {
            "Content-Type": "application/json",
          },
        });
        // ok字段判断是否成功获取到数据流
        if (!response.ok) {
          var rolMsg = [
            {
              type: "text",
              val: "未查询到相关信息。",
            },
          ];
          this.refashMsg(rolMsg);
          return;
        }
        // ç”¨æ¥èŽ·å–ä¸€ä¸ªå¯è¯»çš„æµçš„è¯»å–å™¨ï¼ˆReader)以流的方式处理响应体数据
        const reader = response.body.getReader();
        // å°†æµä¸­çš„字节数据解码为文本字符串
        const textDecoder = new TextDecoder();
        let result = true;
        let sqlValue = "";
        while (result) {
          // done表示流是否已经完成读取  value包含读取到的数据块
          const { done, value } = await reader.read();
          if (done) {
            result = false;
            break;
          }
          console.log(textDecoder.decode(value), "分段返回的数据");
          sqlValue += textDecoder.decode(value);
          var rolMsg = [
            {
              type: "stream",
              val: marked(sqlValue),
            },
          ];
          this.refashMsg(rolMsg);
        }
        // console.log(sqlValue, "输出所有返回数据");
      } catch (err) {
        var rolMsg = [
          {
            type: "text",
            val: "未查询到相关信息。",
          },
        ];
        this.refashMsg(rolMsg);
      }
    },
    async streamChatResponse(formData) {
      try {
        const response = await getRagAgentIntention(formData);
        return response; // è¿”回流响应
      } catch (error) {
        var rolMsg = [
          {
            type: "text",
            val: "未查询到相关信息。",
          },
        ];
        this.refashMsg(rolMsg);
      }
    },
    setMapfunc(res, obj) {
      this.$store.state.showLenged = false;
vue.config.js
@@ -24,6 +24,13 @@
          '^/data-api': ''
        }
      },
      "/rag-api": {
        target: 'http://103.135.160.14:6367/',
        changeOrigin: true,
        pathRewrite: {
          '^/rag-api': ''
        }
      },
    },
  },
yarn.lock
@@ -3080,28 +3080,43 @@
    semver "^6.1.0"
    strip-ansi "^6.0.0"
"@vue/compiler-core@3.5.2":
  version "3.5.2"
  resolved "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.2.tgz"
  integrity sha512-1aP7FL2GkqfcskHWGg3lfWQpJnrmewKc+rNJ/hq9WNaAw4BEyJ5QbNChnqmbw+tJ409zdy1XWmUeXXMrCKJcQQ==
"@vue/compiler-core@3.5.13":
  version "3.5.13"
  resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz"
  integrity sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==
  dependencies:
    "@babel/parser" "^7.25.3"
    "@vue/shared" "3.5.2"
    "@vue/shared" "3.5.13"
    entities "^4.5.0"
    estree-walker "^2.0.2"
    source-map-js "^1.2.0"
"@vue/compiler-dom@3.5.2":
  version "3.5.2"
  resolved "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.2.tgz"
  integrity sha512-QY4DpT8ZIUyu/ZA5gErpSEDocGNEbHmpkZIC/d5jbp/rUF0iOJNigAy3HCCKc0PMMhDlrcysO3ufQ6Ab4MpEcQ==
"@vue/compiler-dom@3.5.13":
  version "3.5.13"
  resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz"
  integrity sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==
  dependencies:
    "@vue/compiler-core" "3.5.2"
    "@vue/shared" "3.5.2"
    "@vue/compiler-core" "3.5.13"
    "@vue/shared" "3.5.13"
"@vue/compiler-sfc@^3.0.0-beta.14", "@vue/compiler-sfc@2.7.16":
"@vue/compiler-sfc@^3.0.0-beta.14", "@vue/compiler-sfc@^3.4.15":
  version "3.5.13"
  resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz"
  integrity sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==
  dependencies:
    "@babel/parser" "^7.25.3"
    "@vue/compiler-core" "3.5.13"
    "@vue/compiler-dom" "3.5.13"
    "@vue/compiler-ssr" "3.5.13"
    "@vue/shared" "3.5.13"
    estree-walker "^2.0.2"
    magic-string "^0.30.11"
    postcss "^8.4.48"
    source-map-js "^1.2.0"
"@vue/compiler-sfc@2.7.16":
  version "2.7.16"
  resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz"
  resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz"
  integrity sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==
  dependencies:
    "@babel/parser" "^7.23.5"
@@ -3110,28 +3125,13 @@
  optionalDependencies:
    prettier "^1.18.2 || ^2.0.0"
"@vue/compiler-sfc@^3.4.15":
  version "3.5.2"
  resolved "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.2.tgz"
  integrity sha512-vErEtybSU290LbMW+ChYllI9tNJEdTW1oU+8cZWINZyjlWeTSa9YqDl4/pZJSnozOI+HmcaC1Vz2eFKmXNSXZA==
"@vue/compiler-ssr@3.5.13":
  version "3.5.13"
  resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz"
  integrity sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==
  dependencies:
    "@babel/parser" "^7.25.3"
    "@vue/compiler-core" "3.5.2"
    "@vue/compiler-dom" "3.5.2"
    "@vue/compiler-ssr" "3.5.2"
    "@vue/shared" "3.5.2"
    estree-walker "^2.0.2"
    magic-string "^0.30.11"
    postcss "^8.4.44"
    source-map-js "^1.2.0"
"@vue/compiler-ssr@3.5.2":
  version "3.5.2"
  resolved "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.2.tgz"
  integrity sha512-vMtA4tQK/AM3UAYJsmouQzQpgG+h9TKiD5BV+Zt+ZyAMdicxzSEEFGWf/CykRnDpqj9fMfIHPhOezJVNxiXe2A==
  dependencies:
    "@vue/compiler-dom" "3.5.2"
    "@vue/shared" "3.5.2"
    "@vue/compiler-dom" "3.5.13"
    "@vue/shared" "3.5.13"
"@vue/component-compiler-utils@^3.1.0", "@vue/component-compiler-utils@^3.1.2":
  version "3.3.0"
@@ -3154,10 +3154,10 @@
  resolved "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz"
  integrity sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==
"@vue/shared@3.5.2":
  version "3.5.2"
  resolved "https://registry.npmjs.org/@vue/shared/-/shared-3.5.2.tgz"
  integrity sha512-Ce89WNFBzcDca/AgFTxgX4/K4iAyF7oFIp8Z5aBbFBNbtpwnQr+5pZOoHndxnjE2h+YFcipVMzs9UL11XB6dwA==
"@vue/shared@3.5.13":
  version "3.5.13"
  resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz"
  integrity sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==
"@vue/web-component-wrapper@^1.2.0":
  version "1.3.0"
@@ -5468,6 +5468,14 @@
    jsbn "~0.1.0"
    safer-buffer "^2.1.0"
echarts@^5.6.0:
  version "5.6.0"
  resolved "https://registry.npmmirror.com/echarts/-/echarts-5.6.0.tgz"
  integrity sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==
  dependencies:
    tslib "2.3.0"
    zrender "5.6.1"
ee-first@1.1.1:
  version "1.1.1"
  resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
@@ -5563,7 +5571,7 @@
entities@^4.5.0:
  version "4.5.0"
  resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz"
  resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz"
  integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
entities@~1.1.1:
@@ -6101,6 +6109,11 @@
  version "2.0.5"
  resolved "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz"
  integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==
file-uri-to-path@1.0.0:
  version "1.0.0"
  resolved "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"
  integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
filesize@^3.6.1:
  version "3.6.1"
@@ -8318,10 +8331,10 @@
    mdurl "~1.0.1"
    uc.micro "^1.0.1"
marked@^14.1.2:
  version "14.1.2"
  resolved "https://registry.npmjs.org/marked/-/marked-14.1.2.tgz"
  integrity sha512-f3r0yqpz31VXiDB/wj9GaOB0a2PRLQl6vJmXiFrniNwjkKdvakqJRULhjFKJpxOchlCRiG5fcacoUZY5Xa6PEQ==
marked@^5.0.0:
  version "5.1.2"
  resolved "https://registry.npmmirror.com/marked/-/marked-5.1.2.tgz"
  integrity sha512-ahRPGXJpjMjwSOlBoTMZAK7ATXkli5qCPxZ21TG44rx1KEo44bii4ekgTDQPNRQ4Kh7JMb9Ub1PVk1NxRSsorg==
match-at@^0.1.0:
  version "0.1.1"
@@ -8720,10 +8733,10 @@
  resolved "https://registry.npmjs.org/nan/-/nan-2.20.0.tgz"
  integrity sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==
nanoid@^3.3.7:
  version "3.3.7"
  resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz"
  integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
nanoid@^3.3.8:
  version "3.3.8"
  resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.8.tgz"
  integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==
nanoid@^5.0.7:
  version "5.0.7"
@@ -9388,10 +9401,10 @@
  resolved "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz"
  integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==
picocolors@^1.0.0, picocolors@^1.0.1:
  version "1.1.0"
  resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz"
  integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==
picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.1:
  version "1.1.1"
  resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz"
  integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
  version "2.3.1"
@@ -9878,14 +9891,14 @@
    picocolors "^0.2.1"
    source-map "^0.6.1"
postcss@^8.4.14, postcss@^8.4.44:
  version "8.4.45"
  resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.45.tgz"
  integrity sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==
postcss@^8.4.14, postcss@^8.4.48:
  version "8.5.1"
  resolved "https://registry.npmmirror.com/postcss/-/postcss-8.5.1.tgz"
  integrity sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==
  dependencies:
    nanoid "^3.3.7"
    picocolors "^1.0.1"
    source-map-js "^1.2.0"
    nanoid "^3.3.8"
    picocolors "^1.1.1"
    source-map-js "^1.2.1"
prelude-ls@~1.1.2:
  version "1.1.2"
@@ -10901,10 +10914,10 @@
  resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz"
  integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
source-map-js@^1.2.0:
  version "1.2.0"
  resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz"
  integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
source-map-js@^1.2.0, source-map-js@^1.2.1:
  version "1.2.1"
  resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz"
  integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
source-map-resolve@^0.5.0:
  version "0.5.3"
@@ -11541,6 +11554,11 @@
  version "2.7.0"
  resolved "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz"
  integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==
tslib@2.3.0:
  version "2.3.0"
  resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz"
  integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
tty-browserify@0.0.0:
  version "0.0.0"
@@ -12441,3 +12459,10 @@
    is-ci "^1.0.10"
    normalize-path "^1.0.0"
    strip-indent "^2.0.0"
zrender@5.6.1:
  version "5.6.1"
  resolved "https://registry.npmmirror.com/zrender/-/zrender-5.6.1.tgz"
  integrity sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==
  dependencies:
    tslib "2.3.0"