From e5645c64668ddf56c6d8791bd92ca64cd19db1ba Mon Sep 17 00:00:00 2001
From: tangwei
Date: Mon, 20 Jul 2026 11:00:49 +0800
Subject: [PATCH 01/23] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E9=80=BB?=
=?UTF-8?q?=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../platform/system/controller/SmsVerifyCodeController.java | 1 +
.../com/yfd/platform/system/service/impl/UserServiceImpl.java | 3 +++
2 files changed, 4 insertions(+)
diff --git a/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java b/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java
index 8854e2fb..5bf84847 100644
--- a/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java
+++ b/backend/src/main/java/com/yfd/platform/system/controller/SmsVerifyCodeController.java
@@ -220,6 +220,7 @@ public class SmsVerifyCodeController {
user.setStatus(0);
user.setOrgid("e90063ced25e3d469860e88d920c082f");
user.setUsertype(1);
+ user.setTenantId(tenantId);
user.setUsername(smsVerifyCodeRequest.getUsername());
user.setGroupCode(smsVerifyCodeRequest.getGroupCode());
user.setCompanyCode(smsVerifyCodeRequest.getCompanyCode());
diff --git a/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java b/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java
index cc11fb14..a50a6d83 100644
--- a/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/system/service/impl/UserServiceImpl.java
@@ -135,6 +135,9 @@ public class UserServiceImpl extends ServiceImpl impleme
List roles = sysRoleMapper.getRoleByUserId(user.getId());
List collect =
roles.stream().map(SysRole::getRolename).collect(Collectors.toList());
+ if(user.getUsertype()==0){
+ collect.add("超级管理员");
+ }
ResponseResult responseResult = new ResponseResult();
responseResult.put("userInfo", userInfo);
responseResult.put("roles", collect);
From 9481dc1c3b1baf1847e1e894f85afa4c05d29c49 Mon Sep 17 00:00:00 2001
From: tangwei
Date: Mon, 20 Jul 2026 13:45:27 +0800
Subject: [PATCH 02/23] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E7=94=B5?=
=?UTF-8?q?=E7=AB=99=E5=9F=BA=E7=A1=80=E4=BF=A1=E6=81=AF=E6=A8=A1=E5=9D=97?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../controller/SdAiboxBHController.java | 55 +++
.../controller/SdArtsgBHController.java | 55 +++
.../qgc_base/controller/SdDwBHController.java | 55 +++
.../qgc_base/controller/SdEqBHController.java | 55 +++
.../controller/SdFbrdBHController.java | 55 +++
.../controller/SdFhbtBHController.java | 55 +++
.../controller/SdOpinfoBHController.java | 55 +++
.../controller/SdOtteBHController.java | 55 +++
.../controller/SdOtweBHController.java | 55 +++
.../controller/SdSonarBHController.java | 55 +++
.../qgc_base/controller/SdTeBHController.java | 55 +++
.../qgc_base/controller/SdVaBHController.java | 55 +++
.../controller/SdVdinfoBController.java | 55 +++
.../qgc_base/controller/SdVpBHController.java | 55 +++
.../qgc_base/controller/SdWeBHController.java | 55 +++
.../qgc_base/controller/SdWqBHController.java | 55 +++
.../qgc_base/controller/SdWtBHController.java | 55 +++
.../platform/qgc_base/domain/SdAiboxBH.java | 247 +++++++++++++
.../platform/qgc_base/domain/SdArtsgBH.java | 223 +++++++++++
.../yfd/platform/qgc_base/domain/SdDwBH.java | 346 ++++++++++++++++++
.../yfd/platform/qgc_base/domain/SdEqBH.java | 301 +++++++++++++++
.../platform/qgc_base/domain/SdFbrdBH.java | 254 +++++++++++++
.../platform/qgc_base/domain/SdFhbtBH.java | 260 +++++++++++++
.../platform/qgc_base/domain/SdOpinfoBH.java | 203 ++++++++++
.../platform/qgc_base/domain/SdOtteBH.java | 104 ++++++
.../platform/qgc_base/domain/SdOtweBH.java | 106 ++++++
.../platform/qgc_base/domain/SdSonarBH.java | 119 ++++++
.../yfd/platform/qgc_base/domain/SdTeBH.java | 102 ++++++
.../yfd/platform/qgc_base/domain/SdVaBH.java | 136 +++++++
.../platform/qgc_base/domain/SdVdinfoB.java | 179 +++++++++
.../yfd/platform/qgc_base/domain/SdVpBH.java | 135 +++++++
.../yfd/platform/qgc_base/domain/SdWeBH.java | 99 +++++
.../yfd/platform/qgc_base/domain/SdWqBH.java | 124 +++++++
.../yfd/platform/qgc_base/domain/SdWtBH.java | 150 ++++++++
.../qgc_base/mapper/SdAiboxBHMapper.java | 13 +
.../qgc_base/mapper/SdArtsgBHMapper.java | 13 +
.../qgc_base/mapper/SdDwBHMapper.java | 13 +
.../qgc_base/mapper/SdEqBHMapper.java | 13 +
.../qgc_base/mapper/SdFbrdBHMapper.java | 13 +
.../qgc_base/mapper/SdFhbtBHMapper.java | 13 +
.../qgc_base/mapper/SdOpinfoBHMapper.java | 7 +
.../qgc_base/mapper/SdOtteBHMapper.java | 7 +
.../qgc_base/mapper/SdOtweBHMapper.java | 7 +
.../qgc_base/mapper/SdSonarBHMapper.java | 7 +
.../qgc_base/mapper/SdTeBHMapper.java | 7 +
.../qgc_base/mapper/SdVaBHMapper.java | 7 +
.../qgc_base/mapper/SdVdinfoBMapper.java | 9 +
.../qgc_base/mapper/SdVpBHMapper.java | 9 +
.../qgc_base/mapper/SdWeBHMapper.java | 9 +
.../qgc_base/mapper/SdWqBHMapper.java | 9 +
.../qgc_base/mapper/SdWtBHMapper.java | 9 +
.../service/IMsOperationLogService.java | 9 +
.../qgc_base/service/ISdAiboxBHService.java | 36 ++
.../qgc_base/service/ISdArtsgBHService.java | 36 ++
.../qgc_base/service/ISdDwBHService.java | 36 ++
.../qgc_base/service/ISdEqBHService.java | 36 ++
.../qgc_base/service/ISdFbrdBHService.java | 36 ++
.../qgc_base/service/ISdFhbtBHService.java | 36 ++
.../qgc_base/service/ISdOpinfoBHService.java | 15 +
.../qgc_base/service/ISdOtteBHService.java | 15 +
.../qgc_base/service/ISdOtweBHService.java | 15 +
.../qgc_base/service/ISdSonarBHService.java | 15 +
.../qgc_base/service/ISdTeBHService.java | 15 +
.../qgc_base/service/ISdVaBHService.java | 15 +
.../qgc_base/service/ISdVdinfoBService.java | 15 +
.../qgc_base/service/ISdVpBHService.java | 15 +
.../qgc_base/service/ISdWeBHService.java | 15 +
.../qgc_base/service/ISdWqBHService.java | 15 +
.../qgc_base/service/ISdWtBHService.java | 15 +
.../impl/MsOperationLogServiceImpl.java | 12 +-
.../service/impl/SdAiboxBHServiceImpl.java | 72 ++++
.../service/impl/SdArtsgBHServiceImpl.java | 64 ++++
.../service/impl/SdDwBHServiceImpl.java | 72 ++++
.../service/impl/SdEqBHServiceImpl.java | 72 ++++
.../service/impl/SdFbrdBHServiceImpl.java | 64 ++++
.../service/impl/SdFhbtBHServiceImpl.java | 72 ++++
.../service/impl/SdOpinfoBHServiceImpl.java | 72 ++++
.../service/impl/SdOtteBHServiceImpl.java | 64 ++++
.../service/impl/SdOtweBHServiceImpl.java | 64 ++++
.../service/impl/SdSonarBHServiceImpl.java | 72 ++++
.../service/impl/SdTeBHServiceImpl.java | 64 ++++
.../service/impl/SdVaBHServiceImpl.java | 72 ++++
.../service/impl/SdVdinfoBServiceImpl.java | 64 ++++
.../service/impl/SdVpBHServiceImpl.java | 72 ++++
.../service/impl/SdWeBHServiceImpl.java | 64 ++++
.../service/impl/SdWqBHServiceImpl.java | 72 ++++
.../service/impl/SdWtBHServiceImpl.java | 72 ++++
87 files changed, 5757 insertions(+), 1 deletion(-)
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdAiboxBHController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdArtsgBHController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdDwBHController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdEqBHController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFbrdBHController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFhbtBHController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOpinfoBHController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOtteBHController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOtweBHController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdSonarBHController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdTeBHController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVaBHController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVdinfoBController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVpBHController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWeBHController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWqBHController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWtBHController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAiboxBH.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/SdArtsgBH.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/SdDwBH.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/SdEqBH.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFbrdBH.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFhbtBH.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOpinfoBH.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtteBH.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtweBH.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/SdSonarBH.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/SdTeBH.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVaBH.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVdinfoB.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVpBH.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWeBH.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWqBH.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWtBH.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdAiboxBHMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdArtsgBHMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdDwBHMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdEqBHMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdFbrdBHMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdFhbtBHMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOpinfoBHMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOtteBHMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOtweBHMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdSonarBHMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdTeBHMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVaBHMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVdinfoBMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVpBHMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWeBHMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWqBHMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWtBHMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/ISdAiboxBHService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/ISdArtsgBHService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/ISdDwBHService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/ISdEqBHService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFbrdBHService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFhbtBHService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOpinfoBHService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOtteBHService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOtweBHService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/ISdSonarBHService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/ISdTeBHService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVaBHService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVdinfoBService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVpBHService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWeBHService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWqBHService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWtBHService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdAiboxBHServiceImpl.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdArtsgBHServiceImpl.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdDwBHServiceImpl.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEqBHServiceImpl.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFbrdBHServiceImpl.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFhbtBHServiceImpl.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOpinfoBHServiceImpl.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtteBHServiceImpl.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtweBHServiceImpl.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdSonarBHServiceImpl.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdTeBHServiceImpl.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVaBHServiceImpl.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVdinfoBServiceImpl.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVpBHServiceImpl.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWeBHServiceImpl.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWqBHServiceImpl.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWtBHServiceImpl.java
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdAiboxBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdAiboxBHController.java
new file mode 100644
index 00000000..8718a421
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdAiboxBHController.java
@@ -0,0 +1,55 @@
+package com.yfd.platform.qgc_base.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_base.domain.SdAiboxBH;
+import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest;
+import com.yfd.platform.qgc_base.service.ISdAiboxBHService;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/base/aibox")
+@Tag(name = "AI智能监测装置管理")
+public class SdAiboxBHController {
+
+ @Resource
+ private ISdAiboxBHService service;
+
+ @Resource
+ private ObjectMapper objectMapper;
+
+ @PostMapping("/page")
+ @Operation(summary = "分页查询")
+ public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
+ Page page = service.queryPageList(request);
+ return ResponseResult.successData(page);
+ }
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdAiboxBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdAiboxBH.class);
+ boolean result = service.add(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @PostMapping("/update")
+ @Operation(summary = "修改")
+ public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdAiboxBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdAiboxBH.class);
+ boolean result = service.update(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @PostMapping("/delete")
+ @Operation(summary = "删除")
+ public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
+ boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource());
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdArtsgBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdArtsgBHController.java
new file mode 100644
index 00000000..a467ed80
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdArtsgBHController.java
@@ -0,0 +1,55 @@
+package com.yfd.platform.qgc_base.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_base.domain.SdArtsgBH;
+import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest;
+import com.yfd.platform.qgc_base.service.ISdArtsgBHService;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/base/artsg")
+@Tag(name = "人工产卵场管理")
+public class SdArtsgBHController {
+
+ @Resource
+ private ISdArtsgBHService service;
+
+ @Resource
+ private ObjectMapper objectMapper;
+
+ @PostMapping("/page")
+ @Operation(summary = "分页查询")
+ public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
+ Page page = service.queryPageList(request);
+ return ResponseResult.successData(page);
+ }
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdArtsgBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdArtsgBH.class);
+ boolean result = service.add(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @PostMapping("/update")
+ @Operation(summary = "修改")
+ public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdArtsgBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdArtsgBH.class);
+ boolean result = service.update(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @PostMapping("/delete")
+ @Operation(summary = "删除")
+ public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
+ boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource());
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdDwBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdDwBHController.java
new file mode 100644
index 00000000..ab2f4f9e
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdDwBHController.java
@@ -0,0 +1,55 @@
+package com.yfd.platform.qgc_base.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_base.domain.SdDwBH;
+import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest;
+import com.yfd.platform.qgc_base.service.ISdDwBHService;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/base/dw")
+@Tag(name = "低温水设施管理")
+public class SdDwBHController {
+
+ @Resource
+ private ISdDwBHService service;
+
+ @Resource
+ private ObjectMapper objectMapper;
+
+ @PostMapping("/page")
+ @Operation(summary = "分页查询")
+ public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
+ Page page = service.queryPageList(request);
+ return ResponseResult.successData(page);
+ }
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdDwBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdDwBH.class);
+ boolean result = service.add(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @PostMapping("/update")
+ @Operation(summary = "修改")
+ public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdDwBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdDwBH.class);
+ boolean result = service.update(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @PostMapping("/delete")
+ @Operation(summary = "删除")
+ public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
+ boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource());
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdEqBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdEqBHController.java
new file mode 100644
index 00000000..c303cab1
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdEqBHController.java
@@ -0,0 +1,55 @@
+package com.yfd.platform.qgc_base.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_base.domain.SdEqBH;
+import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest;
+import com.yfd.platform.qgc_base.service.ISdEqBHService;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/base/eq")
+@Tag(name = "生态流量设施管理")
+public class SdEqBHController {
+
+ @Resource
+ private ISdEqBHService service;
+
+ @Resource
+ private ObjectMapper objectMapper;
+
+ @PostMapping("/page")
+ @Operation(summary = "分页查询")
+ public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
+ Page page = service.queryPageList(request);
+ return ResponseResult.successData(page);
+ }
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdEqBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdEqBH.class);
+ boolean result = service.add(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @PostMapping("/update")
+ @Operation(summary = "修改")
+ public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdEqBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdEqBH.class);
+ boolean result = service.update(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @PostMapping("/delete")
+ @Operation(summary = "删除")
+ public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
+ boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource());
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFbrdBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFbrdBHController.java
new file mode 100644
index 00000000..6bd460f5
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFbrdBHController.java
@@ -0,0 +1,55 @@
+package com.yfd.platform.qgc_base.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_base.domain.SdFbrdBH;
+import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest;
+import com.yfd.platform.qgc_base.service.ISdFbrdBHService;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/base/fbrd")
+@Tag(name = "鱼类增殖站管理")
+public class SdFbrdBHController {
+
+ @Resource
+ private ISdFbrdBHService service;
+
+ @Resource
+ private ObjectMapper objectMapper;
+
+ @PostMapping("/page")
+ @Operation(summary = "分页查询")
+ public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
+ Page page = service.queryPageList(request);
+ return ResponseResult.successData(page);
+ }
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdFbrdBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdFbrdBH.class);
+ boolean result = service.add(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @PostMapping("/update")
+ @Operation(summary = "修改")
+ public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdFbrdBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdFbrdBH.class);
+ boolean result = service.update(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @PostMapping("/delete")
+ @Operation(summary = "删除")
+ public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
+ boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource());
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFhbtBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFhbtBHController.java
new file mode 100644
index 00000000..b5b12836
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdFhbtBHController.java
@@ -0,0 +1,55 @@
+package com.yfd.platform.qgc_base.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_base.domain.SdFhbtBH;
+import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest;
+import com.yfd.platform.qgc_base.service.ISdFhbtBHService;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/base/fhbt")
+@Tag(name = "栖息地保护工程管理")
+public class SdFhbtBHController {
+
+ @Resource
+ private ISdFhbtBHService service;
+
+ @Resource
+ private ObjectMapper objectMapper;
+
+ @PostMapping("/page")
+ @Operation(summary = "分页查询")
+ public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
+ Page page = service.queryPageList(request);
+ return ResponseResult.successData(page);
+ }
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdFhbtBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdFhbtBH.class);
+ boolean result = service.add(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @PostMapping("/update")
+ @Operation(summary = "修改")
+ public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdFhbtBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdFhbtBH.class);
+ boolean result = service.update(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @PostMapping("/delete")
+ @Operation(summary = "删除")
+ public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
+ boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource());
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOpinfoBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOpinfoBHController.java
new file mode 100644
index 00000000..4a0f2cd1
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOpinfoBHController.java
@@ -0,0 +1,55 @@
+package com.yfd.platform.qgc_base.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_base.domain.SdOpinfoBH;
+import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest;
+import com.yfd.platform.qgc_base.service.ISdOpinfoBHService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/base/opinfo")
+@Tag(name = "倾斜摄影管理")
+public class SdOpinfoBHController {
+
+ @Resource
+ private ISdOpinfoBHService service;
+
+ @Resource
+ private ObjectMapper objectMapper;
+
+ @PostMapping("/page")
+ @Operation(summary = "分页查询")
+ public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
+ Page page = service.queryPageList(request);
+ return ResponseResult.successData(page);
+ }
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdOpinfoBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdOpinfoBH.class);
+ boolean result = service.add(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @PostMapping("/update")
+ @Operation(summary = "修改")
+ public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdOpinfoBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdOpinfoBH.class);
+ boolean result = service.update(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @PostMapping("/delete")
+ @Operation(summary = "删除")
+ public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
+ boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource());
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOtteBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOtteBHController.java
new file mode 100644
index 00000000..c425bca7
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOtteBHController.java
@@ -0,0 +1,55 @@
+package com.yfd.platform.qgc_base.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_base.domain.SdOtteBH;
+import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest;
+import com.yfd.platform.qgc_base.service.ISdOtteBHService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/base/otte")
+@Tag(name = "陆生生态保护工程管理")
+public class SdOtteBHController {
+
+ @Resource
+ private ISdOtteBHService service;
+
+ @Resource
+ private ObjectMapper objectMapper;
+
+ @PostMapping("/page")
+ @Operation(summary = "分页查询")
+ public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
+ Page page = service.queryPageList(request);
+ return ResponseResult.successData(page);
+ }
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdOtteBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdOtteBH.class);
+ boolean result = service.add(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @PostMapping("/update")
+ @Operation(summary = "修改")
+ public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdOtteBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdOtteBH.class);
+ boolean result = service.update(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @PostMapping("/delete")
+ @Operation(summary = "删除")
+ public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
+ boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource());
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOtweBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOtweBHController.java
new file mode 100644
index 00000000..5311661f
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdOtweBHController.java
@@ -0,0 +1,55 @@
+package com.yfd.platform.qgc_base.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_base.domain.SdOtweBH;
+import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest;
+import com.yfd.platform.qgc_base.service.ISdOtweBHService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/base/otwe")
+@Tag(name = "水生生态保护工程管理")
+public class SdOtweBHController {
+
+ @Resource
+ private ISdOtweBHService service;
+
+ @Resource
+ private ObjectMapper objectMapper;
+
+ @PostMapping("/page")
+ @Operation(summary = "分页查询")
+ public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
+ Page page = service.queryPageList(request);
+ return ResponseResult.successData(page);
+ }
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdOtweBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdOtweBH.class);
+ boolean result = service.add(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @PostMapping("/update")
+ @Operation(summary = "修改")
+ public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdOtweBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdOtweBH.class);
+ boolean result = service.update(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @PostMapping("/delete")
+ @Operation(summary = "删除")
+ public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
+ boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource());
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdSonarBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdSonarBHController.java
new file mode 100644
index 00000000..4c325387
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdSonarBHController.java
@@ -0,0 +1,55 @@
+package com.yfd.platform.qgc_base.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_base.domain.SdSonarBH;
+import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest;
+import com.yfd.platform.qgc_base.service.ISdSonarBHService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/base/sonar")
+@Tag(name = "声呐及水下摄像管理")
+public class SdSonarBHController {
+
+ @Resource
+ private ISdSonarBHService service;
+
+ @Resource
+ private ObjectMapper objectMapper;
+
+ @PostMapping("/page")
+ @Operation(summary = "分页查询")
+ public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
+ Page page = service.queryPageList(request);
+ return ResponseResult.successData(page);
+ }
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdSonarBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdSonarBH.class);
+ boolean result = service.add(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @PostMapping("/update")
+ @Operation(summary = "修改")
+ public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdSonarBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdSonarBH.class);
+ boolean result = service.update(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @PostMapping("/delete")
+ @Operation(summary = "删除")
+ public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
+ boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource());
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdTeBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdTeBHController.java
new file mode 100644
index 00000000..ac1c4f52
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdTeBHController.java
@@ -0,0 +1,55 @@
+package com.yfd.platform.qgc_base.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_base.domain.SdTeBH;
+import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest;
+import com.yfd.platform.qgc_base.service.ISdTeBHService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/base/te")
+@Tag(name = "陆生生态调查断面管理")
+public class SdTeBHController {
+
+ @Resource
+ private ISdTeBHService service;
+
+ @Resource
+ private ObjectMapper objectMapper;
+
+ @PostMapping("/page")
+ @Operation(summary = "分页查询")
+ public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
+ Page page = service.queryPageList(request);
+ return ResponseResult.successData(page);
+ }
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdTeBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdTeBH.class);
+ boolean result = service.add(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @PostMapping("/update")
+ @Operation(summary = "修改")
+ public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdTeBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdTeBH.class);
+ boolean result = service.update(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @PostMapping("/delete")
+ @Operation(summary = "删除")
+ public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
+ boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource());
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVaBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVaBHController.java
new file mode 100644
index 00000000..d9b79767
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVaBHController.java
@@ -0,0 +1,55 @@
+package com.yfd.platform.qgc_base.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_base.domain.SdVaBH;
+import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest;
+import com.yfd.platform.qgc_base.service.ISdVaBHService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/base/va")
+@Tag(name = "动物救助站管理")
+public class SdVaBHController {
+
+ @Resource
+ private ISdVaBHService service;
+
+ @Resource
+ private ObjectMapper objectMapper;
+
+ @PostMapping("/page")
+ @Operation(summary = "分页查询")
+ public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
+ Page page = service.queryPageList(request);
+ return ResponseResult.successData(page);
+ }
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdVaBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdVaBH.class);
+ boolean result = service.add(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @PostMapping("/update")
+ @Operation(summary = "修改")
+ public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdVaBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdVaBH.class);
+ boolean result = service.update(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @PostMapping("/delete")
+ @Operation(summary = "删除")
+ public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
+ boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource());
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVdinfoBController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVdinfoBController.java
new file mode 100644
index 00000000..c6063d42
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVdinfoBController.java
@@ -0,0 +1,55 @@
+package com.yfd.platform.qgc_base.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_base.domain.SdVdinfoB;
+import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest;
+import com.yfd.platform.qgc_base.service.ISdVdinfoBService;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/base/vdinfo")
+@Tag(name = "视频站管理")
+public class SdVdinfoBController {
+
+ @Resource
+ private ISdVdinfoBService service;
+
+ @Resource
+ private ObjectMapper objectMapper;
+
+ @PostMapping("/page")
+ @Operation(summary = "分页查询")
+ public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
+ Page page = service.queryPageList(request);
+ return ResponseResult.successData(page);
+ }
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdVdinfoB entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdVdinfoB.class);
+ boolean result = service.add(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @PostMapping("/update")
+ @Operation(summary = "修改")
+ public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdVdinfoB entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdVdinfoB.class);
+ boolean result = service.update(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @PostMapping("/delete")
+ @Operation(summary = "删除")
+ public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
+ boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource());
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVpBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVpBHController.java
new file mode 100644
index 00000000..879820a8
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdVpBHController.java
@@ -0,0 +1,55 @@
+package com.yfd.platform.qgc_base.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_base.domain.SdVpBH;
+import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest;
+import com.yfd.platform.qgc_base.service.ISdVpBHService;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/base/vp")
+@Tag(name = "珍稀植物保护工程管理")
+public class SdVpBHController {
+
+ @Resource
+ private ISdVpBHService service;
+
+ @Resource
+ private ObjectMapper objectMapper;
+
+ @PostMapping("/page")
+ @Operation(summary = "分页查询")
+ public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
+ Page page = service.queryPageList(request);
+ return ResponseResult.successData(page);
+ }
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdVpBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdVpBH.class);
+ boolean result = service.add(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @PostMapping("/update")
+ @Operation(summary = "修改")
+ public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdVpBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdVpBH.class);
+ boolean result = service.update(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @PostMapping("/delete")
+ @Operation(summary = "删除")
+ public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
+ boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource());
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWeBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWeBHController.java
new file mode 100644
index 00000000..84d45831
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWeBHController.java
@@ -0,0 +1,55 @@
+package com.yfd.platform.qgc_base.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_base.domain.SdWeBH;
+import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest;
+import com.yfd.platform.qgc_base.service.ISdWeBHService;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/base/we")
+@Tag(name = "水生生态调查断面管理")
+public class SdWeBHController {
+
+ @Resource
+ private ISdWeBHService service;
+
+ @Resource
+ private ObjectMapper objectMapper;
+
+ @PostMapping("/page")
+ @Operation(summary = "分页查询")
+ public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
+ Page page = service.queryPageList(request);
+ return ResponseResult.successData(page);
+ }
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdWeBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdWeBH.class);
+ boolean result = service.add(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @PostMapping("/update")
+ @Operation(summary = "修改")
+ public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdWeBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdWeBH.class);
+ boolean result = service.update(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @PostMapping("/delete")
+ @Operation(summary = "删除")
+ public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
+ boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource());
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWqBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWqBHController.java
new file mode 100644
index 00000000..c185b9ef
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWqBHController.java
@@ -0,0 +1,55 @@
+package com.yfd.platform.qgc_base.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_base.domain.SdWqBH;
+import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest;
+import com.yfd.platform.qgc_base.service.ISdWqBHService;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/base/wq")
+@Tag(name = "水质站管理")
+public class SdWqBHController {
+
+ @Resource
+ private ISdWqBHService service;
+
+ @Resource
+ private ObjectMapper objectMapper;
+
+ @PostMapping("/page")
+ @Operation(summary = "分页查询")
+ public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
+ Page page = service.queryPageList(request);
+ return ResponseResult.successData(page);
+ }
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdWqBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdWqBH.class);
+ boolean result = service.add(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @PostMapping("/update")
+ @Operation(summary = "修改")
+ public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdWqBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdWqBH.class);
+ boolean result = service.update(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @PostMapping("/delete")
+ @Operation(summary = "删除")
+ public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
+ boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource());
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWtBHController.java b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWtBHController.java
new file mode 100644
index 00000000..996cab76
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/controller/SdWtBHController.java
@@ -0,0 +1,55 @@
+package com.yfd.platform.qgc_base.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_base.domain.SdWtBH;
+import com.yfd.platform.qgc_base.domain.SdEngInfoBHOperateRequest;
+import com.yfd.platform.qgc_base.service.ISdWtBHService;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/base/wt")
+@Tag(name = "水温站管理")
+public class SdWtBHController {
+
+ @Resource
+ private ISdWtBHService service;
+
+ @Resource
+ private ObjectMapper objectMapper;
+
+ @PostMapping("/page")
+ @Operation(summary = "分页查询")
+ public ResponseResult queryPageList(@RequestBody DataSourceRequest request) {
+ Page page = service.queryPageList(request);
+ return ResponseResult.successData(page);
+ }
+
+ @PostMapping("/add")
+ @Operation(summary = "新增")
+ public ResponseResult add(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdWtBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdWtBH.class);
+ boolean result = service.add(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("新增成功") : ResponseResult.error("新增失败");
+ }
+
+ @PostMapping("/update")
+ @Operation(summary = "修改")
+ public ResponseResult update(@RequestBody SdEngInfoBHOperateRequest request) {
+ SdWtBH entity = request == null || request.getEngInfo() == null ? null : objectMapper.convertValue(request.getEngInfo(), SdWtBH.class);
+ boolean result = service.update(entity, request == null ? null : request.getSource());
+ return result ? ResponseResult.success("修改成功") : ResponseResult.error("修改失败");
+ }
+
+ @PostMapping("/delete")
+ @Operation(summary = "删除")
+ public ResponseResult delete(@RequestBody SdEngInfoBHOperateRequest request) {
+ boolean result = service.delete(request == null ? null : request.getIds(), request == null ? null : request.getSource());
+ return result ? ResponseResult.success("删除成功") : ResponseResult.error("删除失败");
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAiboxBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAiboxBH.java
new file mode 100644
index 00000000..919760a2
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAiboxBH.java
@@ -0,0 +1,247 @@
+package com.yfd.platform.qgc_base.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ *
+ * AI边缘计算盒子基本属性表
+ *
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("SD_AIBOX_B_H")
+public class SdAiboxBH implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 测站编码
+ */
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ /**
+ * 测站名称
+ */
+ private String stnm;
+
+ /**
+ * 测站类型
+ */
+ private String sttp;
+
+ /**
+ * 数据时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date tm;
+
+ /**
+ * 位置经度
+ */
+ private BigDecimal lgtd;
+
+ /**
+ * 位置纬度
+ */
+ private BigDecimal lttd;
+
+ /**
+ * 高程
+ */
+ private BigDecimal elev;
+
+ /**
+ * 站址
+ */
+ private String stlc;
+
+ /**
+ * 建成日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date jcdt;
+
+ /**
+ * 退役/拆除日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date wddt;
+
+ /**
+ * 建设状态代码
+ */
+ private Integer bldsttCode;
+
+ /**
+ * 是否启用
+ */
+ private Integer usfl;
+
+ /**
+ * 数据是否接入
+ */
+ private Integer dtin;
+
+ /**
+ * 数据接入时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date dtinTm;
+
+ /**
+ * 监测方式
+ */
+ private Integer mway;
+
+ /**
+ * 站索引
+ */
+ private String stindx;
+
+ /**
+ * 排序
+ */
+ private Integer orderIndex;
+
+ /**
+ * 关联测站编码
+ */
+ private String rstcd;
+
+ /**
+ * 所属基地编码
+ */
+ private String baseId;
+
+ /**
+ * 所属基地流域编码
+ */
+ private String hbrvcd;
+
+ /**
+ * 所属流域代码
+ */
+ private String rvcd;
+
+ /**
+ * 简介
+ */
+ private String introduce;
+
+ /**
+ * LOGO
+ */
+ private String logo;
+
+ /**
+ * 介绍文件
+ */
+ private String inffile;
+
+ /**
+ * 服务对象
+ */
+ private String fwdx;
+
+ /**
+ * 供电方式
+ */
+ private String gdfs;
+
+ /**
+ * AI配置
+ */
+ private String aipz;
+
+ /**
+ * 模型版本
+ */
+ private String mxbb;
+
+ /**
+ * IP地址
+ */
+ private String ipaddr;
+
+ /**
+ * SIM卡信息
+ */
+ private String siminfo;
+
+ /**
+ * 联系人
+ */
+ private String lxr;
+
+ /**
+ * 用途
+ */
+ private String purpose;
+
+ /**
+ * 数据频率
+ */
+ private String dtfrqcy;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ /**
+ * 植被覆盖类型
+ */
+ private BigDecimal vlsr;
+
+ /**
+ * 植被覆盖调查时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date vlsrTm;
+
+ /**
+ * 创建人
+ */
+ private String recordUser;
+
+ /**
+ * 创建时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date recordTime;
+
+ /**
+ * 更新人
+ */
+ private String modifyUser;
+
+ /**
+ * 更新时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date modifyTime;
+
+ /**
+ * 是否已删除
+ */
+ private Integer isDeleted;
+
+ /**
+ * 删除人
+ */
+ private String deleteUser;
+
+ /**
+ * 删除时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdArtsgBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdArtsgBH.java
new file mode 100644
index 00000000..0fdc10a6
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdArtsgBH.java
@@ -0,0 +1,223 @@
+package com.yfd.platform.qgc_base.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ *
+ * 人工产卵场工程信息表
+ *
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("SD_ARTSG_B_H")
+public class SdArtsgBH implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 测站编码
+ */
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ /**
+ * 测站名称
+ */
+ private String stnm;
+
+ /**
+ * 测站类型
+ */
+ private String sttp;
+
+ /**
+ * 数据时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date tm;
+
+ /**
+ * 位置经度
+ */
+ private BigDecimal lgtd;
+
+ /**
+ * 位置纬度
+ */
+ private BigDecimal lttd;
+
+ /**
+ * 高程
+ */
+ private BigDecimal elev;
+
+ /**
+ * 站址
+ */
+ private String stlc;
+
+ /**
+ * 是否启用
+ */
+ private Integer usfl;
+
+ /**
+ * 数据是否接入
+ */
+ private Integer dtin;
+
+ /**
+ * 数据接入时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date dtinTm;
+
+ /**
+ * 排序
+ */
+ private Integer orderIndex;
+
+ /**
+ * 关联测站编码
+ */
+ private String rstcd;
+
+ /**
+ * 所属基地编码
+ */
+ private String baseId;
+
+ /**
+ * 所属基地流域编码
+ */
+ private String hbrvcd;
+
+ /**
+ * 所属流域代码
+ */
+ private String rvcd;
+
+ /**
+ * 所属行政区编码
+ */
+ private String addvcd;
+
+ /**
+ * 规划设计日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date stdsdt;
+
+ /**
+ * 计划开工日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pststdt;
+
+ /**
+ * 计划完工日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pesstdt;
+
+ /**
+ * 开工日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date swdt;
+
+ /**
+ * 建成日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date jcdt;
+
+ /**
+ * 退役/拆除日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date wddt;
+
+ /**
+ * 建设状态代码
+ */
+ private Integer bldsttCode;
+
+ /**
+ * 简介
+ */
+ private String introduce;
+
+ /**
+ * LOGO
+ */
+ private String logo;
+
+ /**
+ * 介绍文件
+ */
+ private String inffile;
+
+ /**
+ * 投资
+ */
+ private BigDecimal inv;
+
+ /**
+ * 投资金额
+ */
+ private Integer invinmn;
+
+ /**
+ * 保护措施
+ */
+ private String prtcts;
+
+ /**
+ * 数量
+ */
+ private Integer cnt;
+
+ /**
+ * 面积
+ */
+ private BigDecimal ar;
+
+ /**
+ * 类型
+ */
+ private String tp;
+
+ /**
+ * 附件
+ */
+ private String attm;
+
+ /**
+ * 数据频率
+ */
+ private String dtfrqcy;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ /**
+ * 植被覆盖类型
+ */
+ private BigDecimal vlsr;
+
+ /**
+ * 植被覆盖调查时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date vlsrTm;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdDwBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdDwBH.java
new file mode 100644
index 00000000..a371b55a
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdDwBH.java
@@ -0,0 +1,346 @@
+package com.yfd.platform.qgc_base.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ *
+ * 低温水减缓设施信息表
+ *
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("SD_DW_B_H")
+public class SdDwBH implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 测站编码
+ */
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ /**
+ * 数据时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date tm;
+
+ /**
+ * 测站名称
+ */
+ private String stnm;
+
+ /**
+ * 测站类型
+ */
+ private String sttp;
+
+ /**
+ * 位置经度
+ */
+ private BigDecimal lgtd;
+
+ /**
+ * 位置纬度
+ */
+ private BigDecimal lttd;
+
+ /**
+ * 高程
+ */
+ private BigDecimal elev;
+
+ /**
+ * 站址
+ */
+ private String stlc;
+
+ /**
+ * 是否启用
+ */
+ private Integer usfl;
+
+ /**
+ * 数据是否接入
+ */
+ private Integer dtin;
+
+ /**
+ * 数据接入时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date dtinTm;
+
+ /**
+ * 排序
+ */
+ private Integer orderIndex;
+
+ /**
+ * 所属基地编码
+ */
+ private String baseId;
+
+ /**
+ * 所属基地流域编码
+ */
+ private String hbrvcd;
+
+ /**
+ * 关联测站编码
+ */
+ private String rstcd;
+
+ /**
+ * 规划设计日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date stdsdt;
+
+ /**
+ * 计划开工日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pststdt;
+
+ /**
+ * 计划完工日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pesstdt;
+
+ /**
+ * 开工日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date swdt;
+
+ /**
+ * 建成日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date jcdt;
+
+ /**
+ * 退役/拆除日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date wddt;
+
+ /**
+ * 建设状态代码
+ */
+ private Integer bldsttCode;
+
+ /**
+ * 简介
+ */
+ private String introduce;
+
+ /**
+ * LOGO
+ */
+ private String logo;
+
+ /**
+ * 介绍文件
+ */
+ private String inffile;
+
+ /**
+ * 投资
+ */
+ private BigDecimal inv;
+
+ /**
+ * 投资金额
+ */
+ private Integer invinmn;
+
+ /**
+ * 调度方式
+ */
+ private Integer dispatch;
+
+ /**
+ * 调度描述
+ */
+ private String dispatchDes;
+
+ /**
+ * 调度文件
+ */
+ private String dispatchFile;
+
+ /**
+ * 叠梁门层数高度
+ */
+ private BigDecimal dcshg;
+
+ /**
+ * 叠梁门单层取水口个数
+ */
+ private BigDecimal dcsqskgs;
+
+ /**
+ * 叠梁门层数
+ */
+ private Integer dlmcnt;
+
+ /**
+ * 叠梁门高度
+ */
+ private BigDecimal dlmhg;
+
+ /**
+ * 叠梁门底部高程
+ */
+ private BigDecimal dlmdbgc;
+
+ /**
+ * 叠梁门最大温度梯度
+ */
+ private BigDecimal dlmmxwdp;
+
+ /**
+ * 梯级电站台数
+ */
+ private Integer ttscnt;
+
+ /**
+ * 梯级电站高度
+ */
+ private BigDecimal ttshg;
+
+ /**
+ * 梯级电站最低死水位
+ */
+ private BigDecimal ttszdss;
+
+ /**
+ * 取水口段结构
+ */
+ private String qzdqjg;
+
+ /**
+ * 取水口段高度
+ */
+ private BigDecimal qzdqhg;
+
+ /**
+ * 隔水幕墙长度
+ */
+ private BigDecimal gsmqcd;
+
+ /**
+ * 隔水幕墙宽度
+ */
+ private BigDecimal gsmqkd;
+
+ /**
+ * 隔水幕墙材料
+ */
+ private BigDecimal gsmqcl;
+
+ /**
+ * 其他设施具体型式
+ */
+ private String qtssjbtx;
+
+ /**
+ * 天然河流平均水温
+ */
+ private BigDecimal nravwt;
+
+ /**
+ * 天然河流最高温月份多年平均水温
+ */
+ private BigDecimal nrmxavwt;
+
+ /**
+ * 天然河流最低温月份多年平均水温
+ */
+ private BigDecimal nrmnavwt;
+
+ /**
+ * 建成后坝下平均水温
+ */
+ private BigDecimal dnavwt;
+
+ /**
+ * 建成后坝下最高温月份多年平均水温
+ */
+ private BigDecimal dnmxavwt;
+
+ /**
+ * 建成后坝下最低温月份多年平均水温
+ */
+ private BigDecimal dnmnavwt;
+
+ /**
+ * 数据频率
+ */
+ private String dtfrqcy;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ /**
+ * 植被覆盖类型
+ */
+ private BigDecimal vlsr;
+
+ /**
+ * 植被覆盖调查时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date vlsrTm;
+
+ /**
+ * 创建人
+ */
+ private String recordUser;
+
+ /**
+ * 创建时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date recordTime;
+
+ /**
+ * 更新人
+ */
+ private String modifyUser;
+
+ /**
+ * 更新时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date modifyTime;
+
+ /**
+ * 是否已删除
+ */
+ private Integer isDeleted;
+
+ /**
+ * 删除人
+ */
+ private String deleteUser;
+
+ /**
+ * 删除时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdEqBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdEqBH.java
new file mode 100644
index 00000000..615d595a
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdEqBH.java
@@ -0,0 +1,301 @@
+package com.yfd.platform.qgc_base.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ *
+ * 生态流量泄放设施信息表
+ *
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("SD_EQ_B_H")
+public class SdEqBH implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 测站编码
+ */
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ /**
+ * 测站名称
+ */
+ private String stnm;
+
+ /**
+ * 数据时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date tm;
+
+ /**
+ * 测站类型
+ */
+ private String sttp;
+
+ /**
+ * 所属建设阶段
+ */
+ private Integer blprd;
+
+ /**
+ * 位置经度
+ */
+ private BigDecimal lgtd;
+
+ /**
+ * 位置纬度
+ */
+ private BigDecimal lttd;
+
+ /**
+ * 高程
+ */
+ private BigDecimal elev;
+
+ /**
+ * 站址
+ */
+ private String stlc;
+
+ /**
+ * 是否启用
+ */
+ private Integer usfl;
+
+ /**
+ * 数据是否接入
+ */
+ private Integer dtin;
+
+ /**
+ * 数据接入时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date dtinTm;
+
+ /**
+ * 排序
+ */
+ private Integer orderIndex;
+
+ /**
+ * 关联测站编码
+ */
+ private String rstcd;
+
+ /**
+ * 所属基地编码
+ */
+ private String baseId;
+
+ /**
+ * 所属基地流域编码
+ */
+ private String hbrvcd;
+
+ /**
+ * 规划设计日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date stdsdt;
+
+ /**
+ * 计划开工日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pststdt;
+
+ /**
+ * 计划完工日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pesstdt;
+
+ /**
+ * 开工日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date swdt;
+
+ /**
+ * 建成日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date jcdt;
+
+ /**
+ * 退役/拆除日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date wddt;
+
+ /**
+ * 建设状态代码
+ */
+ private Integer bldsttCode;
+
+ /**
+ * 简介
+ */
+ private String introduce;
+
+ /**
+ * LOGO
+ */
+ private String logo;
+
+ /**
+ * 介绍文件
+ */
+ private String inffile;
+
+ /**
+ * 投资
+ */
+ private BigDecimal inv;
+
+ /**
+ * 投资金额
+ */
+ private Integer invinmn;
+
+ /**
+ * 泄放孔结构
+ */
+ private String flkjg;
+
+ /**
+ * 泄放孔尺寸
+ */
+ private String flksz;
+
+ /**
+ * 单独泄放管渠
+ */
+ private String ddzgq;
+
+ /**
+ * 泄放孔口
+ */
+ private String flkq;
+
+ /**
+ * 进水口底板高程
+ */
+ private BigDecimal jskdbgc;
+
+ /**
+ * 出水口底板高程
+ */
+ private BigDecimal cskdbgc;
+
+ /**
+ * 检修放空管道
+ */
+ private String jhfdgk;
+
+ /**
+ * 泄放流量
+ */
+ private BigDecimal fdll;
+
+ /**
+ * 生态机组装机容量
+ */
+ private BigDecimal stjzzjrl;
+
+ /**
+ * 生态机组引水渠道
+ */
+ private BigDecimal stjzysq;
+
+ /**
+ * 数据频率
+ */
+ private String dtfrqcy;
+
+ /**
+ * 评估方法
+ */
+ private String assessMethod;
+
+ /**
+ * 是否计算器
+ */
+ private Integer isJsq;
+
+ /**
+ * 是否流量
+ */
+ private String isFlow;
+
+ /**
+ * 最小流量
+ */
+ private BigDecimal minFlow;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ /**
+ * 植被覆盖类型
+ */
+ private BigDecimal vlsr;
+
+ /**
+ * 植被覆盖调查时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date vlsrTm;
+
+ /**
+ * 创建人
+ */
+ private String recordUser;
+
+ /**
+ * 创建时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date recordTime;
+
+ /**
+ * 更新人
+ */
+ private String modifyUser;
+
+ /**
+ * 更新时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date modifyTime;
+
+ /**
+ * 是否已删除
+ */
+ private Integer isDeleted;
+
+ /**
+ * 删除人
+ */
+ private String deleteUser;
+
+ /**
+ * 删除时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFbrdBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFbrdBH.java
new file mode 100644
index 00000000..5eb9dcc5
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFbrdBH.java
@@ -0,0 +1,254 @@
+package com.yfd.platform.qgc_base.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ *
+ * 鱼类增殖设施保护工程信息表
+ *
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("SD_FBRD_B_H")
+public class SdFbrdBH implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 测站编码
+ */
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ /**
+ * 测站名称
+ */
+ private String stnm;
+
+ /**
+ * 测站类型
+ */
+ private String sttp;
+
+ /**
+ * 数据时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date tm;
+
+ /**
+ * 所属建设阶段
+ */
+ private Integer blprd;
+
+ /**
+ * 位置经度
+ */
+ private BigDecimal lgtd;
+
+ /**
+ * 位置纬度
+ */
+ private BigDecimal lttd;
+
+ /**
+ * 高程
+ */
+ private BigDecimal elev;
+
+ /**
+ * 站址
+ */
+ private String stlc;
+
+ /**
+ * 是否启用
+ */
+ private Integer usfl;
+
+ /**
+ * 数据是否接入
+ */
+ private Integer dtin;
+
+ /**
+ * 数据接入时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date dtinTm;
+
+ /**
+ * 排序
+ */
+ private Integer orderIndex;
+
+ /**
+ * 关联测站编码
+ */
+ private String rstcd;
+
+ /**
+ * 所属基地编码
+ */
+ private String baseId;
+
+ /**
+ * 所属基地流域编码
+ */
+ private String hbrvcd;
+
+ /**
+ * 环评单位
+ */
+ private String rengcd;
+
+ /**
+ * 规划设计日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date stdsdt;
+
+ /**
+ * 计划开工日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pststdt;
+
+ /**
+ * 计划完工日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pesstdt;
+
+ /**
+ * 开工日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date swdt;
+
+ /**
+ * 建成日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date jcdt;
+
+ /**
+ * 退役/拆除日期
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date wddt;
+
+ /**
+ * 建设状态代码
+ */
+ private Integer bldsttCode;
+
+ /**
+ * 简介
+ */
+ private String introduce;
+
+ /**
+ * LOGO
+ */
+ private String logo;
+
+ /**
+ * 介绍文件
+ */
+ private String inffile;
+
+ /**
+ * 投资
+ */
+ private BigDecimal inv;
+
+ /**
+ * 投资金额
+ */
+ private Integer invinmn;
+
+ /**
+ * 增殖放流面积
+ */
+ private BigDecimal zzflar;
+
+ /**
+ * 增殖放流工艺
+ */
+ private BigDecimal zzflgy;
+
+ /**
+ * 增殖放流鱼种描述
+ */
+ private String zzflyzms;
+
+ /**
+ * 增殖放流标记方式
+ */
+ private String zzflbjfs;
+
+ /**
+ * 增殖放流对象
+ */
+ private String zzfldx;
+
+ /**
+ * 增殖放流数量
+ */
+ private Integer zzflcnt;
+
+ /**
+ * 增殖放流放流流程
+ */
+ private String zzflfllc;
+
+ /**
+ * 增殖放流时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date zzfltm;
+
+ /**
+ * 增殖放流任务
+ */
+ private String zzflrw;
+
+ /**
+ * 设计单位
+ */
+ private String dsun;
+
+ /**
+ * 基本特性参数
+ */
+ private String jbtxcs;
+
+ /**
+ * 数据频率
+ */
+ private String dtfrqcy;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ /**
+ * 植被覆盖类型
+ */
+ private BigDecimal vlsr;
+
+ /**
+ * 植被覆盖调查时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date vlsrTm;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFhbtBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFhbtBH.java
new file mode 100644
index 00000000..01caef6a
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFhbtBH.java
@@ -0,0 +1,260 @@
+package com.yfd.platform.qgc_base.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ *
+ * 栖息地保护工程信息表
+ *
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("SD_FHBT_B_H")
+public class SdFhbtBH implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 测站编码
+ */
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ /**
+ * 测站名称
+ */
+ private String stnm;
+
+ /**
+ * 数据时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date tm;
+
+ /**
+ * 所属建设阶段
+ */
+ private Integer blprd;
+
+ /**
+ * 位置经度
+ */
+ private BigDecimal lgtd;
+
+ /**
+ * 位置纬度
+ */
+ private BigDecimal lttd;
+
+ /**
+ * 高程
+ */
+ private BigDecimal elev;
+
+ /**
+ * 站址
+ */
+ private String stlc;
+
+ /**
+ * 是否启用
+ */
+ private Integer usfl;
+
+ /**
+ * 数据是否接入
+ */
+ private Integer dtin;
+
+ /**
+ * 数据接入时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date dtinTm;
+
+ /**
+ * 排序
+ */
+ private Integer orderIndex;
+
+ /**
+ * 关联测站编码
+ */
+ private String rstcd;
+
+ /**
+ * 所属基地编码
+ */
+ private String baseId;
+
+ /**
+ * 所属基地流域编码
+ */
+ private String hbrvcd;
+
+ /**
+ * 所属流域代码
+ */
+ private String rvcd;
+
+ /**
+ * 所属行政区编码
+ */
+ private String addvcd;
+
+ /**
+ * 河段描述
+ */
+ private String reachdes;
+
+ /**
+ * 经度纬度列表
+ */
+ private String lglttd;
+
+ /**
+ * 简介
+ */
+ private String introduce;
+
+ /**
+ * LOGO
+ */
+ private String logo;
+
+ /**
+ * 介绍文件
+ */
+ private String inffile;
+
+ /**
+ * 投资
+ */
+ private BigDecimal inv;
+
+ /**
+ * 投资金额
+ */
+ private Integer invinmn;
+
+ /**
+ * 保护对象
+ */
+ private String bhdx;
+
+ /**
+ * 保护范围
+ */
+ private String bhfw;
+
+ /**
+ * 保护措施
+ */
+ private String bhcd;
+
+ /**
+ * 保护面积
+ */
+ private BigDecimal bhmj;
+
+ /**
+ * 保护河流
+ */
+ private Integer bhhl;
+
+ /**
+ * 保护河道
+ */
+ private Integer bhhd;
+
+ /**
+ * 保护措施
+ */
+ private String bhcs;
+
+ /**
+ * 保护方式
+ */
+ private String bhfs;
+
+ /**
+ * 附件
+ */
+ private String attm;
+
+ /**
+ * 保护水文参数
+ */
+ private String bhwwcd;
+
+ /**
+ * 保护河相关系
+ */
+ private String bhhxcd;
+
+ /**
+ * 数据频率
+ */
+ private String dtfrqcy;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ /**
+ * 植被覆盖类型
+ */
+ private BigDecimal vlsr;
+
+ /**
+ * 植被覆盖调查时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date vlsrTm;
+
+ /**
+ * 创建人
+ */
+ private String recordUser;
+
+ /**
+ * 创建时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date recordTime;
+
+ /**
+ * 更新人
+ */
+ private String modifyUser;
+
+ /**
+ * 更新时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date modifyTime;
+
+ /**
+ * 是否已删除
+ */
+ private Integer isDeleted;
+
+ /**
+ * 删除人
+ */
+ private String deleteUser;
+
+ /**
+ * 删除时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOpinfoBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOpinfoBH.java
new file mode 100644
index 00000000..f4c7f644
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOpinfoBH.java
@@ -0,0 +1,203 @@
+package com.yfd.platform.qgc_base.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName("SD_OPINFO_B_H")
+public class SdOpinfoBH implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ private String stnm;
+
+ private String sttp;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date tm;
+
+ private Integer blprd;
+
+ private BigDecimal lgtd;
+
+ private BigDecimal lttd;
+
+ private BigDecimal elev;
+
+ private String stlc;
+
+ private Integer usfl;
+
+ private Integer dtin;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @TableField("DTIN_TM")
+ private Date dtinTm;
+
+ @TableField("ORDER_INDEX")
+ private Integer orderIndex;
+
+ private String rstcd;
+
+ @TableField("BASE_ID")
+ private String baseId;
+
+ private String hbrvcd;
+
+ private String rvcd;
+
+ private String addvcd;
+
+ @TableField("STDSDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date stdsdt;
+
+ @TableField("PSTSTDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pststdt;
+
+ @TableField("PESSTDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pesstdt;
+
+ @TableField("SWDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date swdt;
+
+ @TableField("JCDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date jcdt;
+
+ @TableField("WDDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date wddt;
+
+ @TableField("BLDSTT_CODE")
+ private Integer bldsttCode;
+
+ private String introduce;
+
+ private String logo;
+
+ private String inffile;
+
+ private String url;
+
+ private BigDecimal height;
+
+ private String boundary;
+
+ @TableField("CENTER_LGTD")
+ private BigDecimal centerLgtd;
+
+ @TableField("CENTER_LTTD")
+ private BigDecimal centerLttd;
+
+ @TableField("CENTER_ELEV")
+ private BigDecimal centerElev;
+
+ private String description;
+
+ @TableField("CENTER1_LGTD")
+ private BigDecimal center1Lgtd;
+
+ @TableField("CENTER1_LTTD")
+ private BigDecimal center1Lttd;
+
+ @TableField("CENTER1_ELEV")
+ private BigDecimal center1Elev;
+
+ @TableField("CLIPPING_PLANES")
+ private String clippingPlanes;
+
+ @TableField("DESTINATION_TYPE")
+ private String destinationType;
+
+ @TableField("DESTINATION_LGTD")
+ private BigDecimal destinationLgtd;
+
+ @TableField("DESTINATION_LTTD")
+ private BigDecimal destinationLttd;
+
+ @TableField("DESTINATION_ELEV")
+ private BigDecimal destinationElev;
+
+ @TableField("ORIENTATION_ROLL")
+ private BigDecimal orientationRoll;
+
+ @TableField("ORIENTATION_HEADING")
+ private BigDecimal orientationHeading;
+
+ @TableField("ORIENTATION_PITCH")
+ private BigDecimal orientationPitch;
+
+ @TableField("REVISE_SITE_ELEV")
+ private BigDecimal reviseSiteElev;
+
+ @TableField("REVISE_SITE_ELEV_FACTOR")
+ private BigDecimal reviseSiteElevFactor;
+
+ @TableField("DESTINATION_LGTD_WCS")
+ private BigDecimal destinationLgtdWcs;
+
+ @TableField("DESTINATION_LTTD_WCS")
+ private BigDecimal destinationLttdWcs;
+
+ @TableField("DESTINATION_ELEV_WCS")
+ private BigDecimal destinationElevWcs;
+
+ @TableField("DESTINATION_LGTD_WGS84")
+ private BigDecimal destinationLgtdWgs84;
+
+ @TableField("DESTINATION_LTTD_WGS84")
+ private BigDecimal destinationLttdWgs84;
+
+ @TableField("DESTINATION_ELEV_WGS84")
+ private BigDecimal destinationElevWgs84;
+
+ private String location;
+
+ private String accuracy;
+
+ @TableField("STNM_ALIAS")
+ private String stnmAlias;
+
+ private String remark;
+
+ private BigDecimal vlsr;
+
+ @TableField("VLSR_TM")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date vlsrTm;
+
+ @TableField("RECORD_USER")
+ private String recordUser;
+
+ @TableField("RECORD_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date recordTime;
+
+ @TableField("MODIFY_USER")
+ private String modifyUser;
+
+ @TableField("MODIFY_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date modifyTime;
+
+ @TableField("IS_DELETED")
+ private Integer isDeleted;
+
+ @TableField("DELETE_USER")
+ private String deleteUser;
+
+ @TableField("DELETE_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtteBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtteBH.java
new file mode 100644
index 00000000..72cdd511
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtteBH.java
@@ -0,0 +1,104 @@
+package com.yfd.platform.qgc_base.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName("SD_OTTE_B_H")
+public class SdOtteBH implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ private String stnm;
+
+ private String sttp;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date tm;
+
+ private Integer blprd;
+
+ private BigDecimal lgtd;
+
+ private BigDecimal lttd;
+
+ private BigDecimal elev;
+
+ private String stlc;
+
+ private Integer usfl;
+
+ private Integer dtin;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @TableField("DTIN_TM")
+ private Date dtinTm;
+
+ @TableField("ORDER_INDEX")
+ private Integer orderIndex;
+
+ private String rstcd;
+
+ @TableField("BASE_ID")
+ private String baseId;
+
+ private String hbrvcd;
+
+ private String rvcd;
+
+ private String addvcd;
+
+ @TableField("STDSDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date stdsdt;
+
+ @TableField("PSTSTDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pststdt;
+
+ @TableField("PESSTDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pesstdt;
+
+ @TableField("SWDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date swdt;
+
+ @TableField("JCDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date jcdt;
+
+ @TableField("WDDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date wddt;
+
+ @TableField("BLDSTT_CODE")
+ private Integer bldsttCode;
+
+ private String introduce;
+
+ private String logo;
+
+ private String inffile;
+
+ private BigDecimal inv;
+
+ private String jbtxcs;
+
+ private String dtfrqcy;
+
+ private String remark;
+
+ private BigDecimal vlsr;
+
+ @TableField("VLSR_TM")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date vlsrTm;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtweBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtweBH.java
new file mode 100644
index 00000000..c5aa7e0a
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtweBH.java
@@ -0,0 +1,106 @@
+package com.yfd.platform.qgc_base.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName("SD_OTWE_B_H")
+public class SdOtweBH implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ private String stnm;
+
+ private String sttp;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date tm;
+
+ private Integer blprd;
+
+ private BigDecimal lgtd;
+
+ private BigDecimal lttd;
+
+ private BigDecimal elev;
+
+ private String stlc;
+
+ private Integer usfl;
+
+ private Integer dtin;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @TableField("DTIN_TM")
+ private Date dtinTm;
+
+ @TableField("ORDER_INDEX")
+ private Integer orderIndex;
+
+ private String rstcd;
+
+ @TableField("BASE_ID")
+ private String baseId;
+
+ private String hbrvcd;
+
+ private String rvcd;
+
+ private String addvcd;
+
+ @TableField("STDSDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date stdsdt;
+
+ @TableField("PSTSTDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pststdt;
+
+ @TableField("PESSTDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pesstdt;
+
+ @TableField("SWDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date swdt;
+
+ @TableField("JCDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date jcdt;
+
+ @TableField("WDDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date wddt;
+
+ @TableField("BLDSTT_CODE")
+ private Integer bldsttCode;
+
+ private String introduce;
+
+ private String logo;
+
+ private String inffile;
+
+ private BigDecimal inv;
+
+ private Integer invinmn;
+
+ private String jbtxcs;
+
+ private String dtfrqcy;
+
+ private String remark;
+
+ private BigDecimal vlsr;
+
+ @TableField("VLSR_TM")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date vlsrTm;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdSonarBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdSonarBH.java
new file mode 100644
index 00000000..51724149
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdSonarBH.java
@@ -0,0 +1,119 @@
+package com.yfd.platform.qgc_base.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName("SD_SONAR_B_H")
+public class SdSonarBH implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ private String stnm;
+
+ private String mntp;
+
+ private String sttp;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date tm;
+
+ private BigDecimal lgtd;
+
+ private BigDecimal lttd;
+
+ private BigDecimal elev;
+
+ private String stlc;
+
+ @TableField("JCDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date jcdt;
+
+ @TableField("WDDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date wddt;
+
+ @TableField("BLDSTT_CODE")
+ private Integer bldsttCode;
+
+ private Integer usfl;
+
+ private Integer dtin;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @TableField("DTIN_TM")
+ private Date dtinTm;
+
+ private Integer mway;
+
+ private String stindx;
+
+ @TableField("ORDER_INDEX")
+ private Integer orderIndex;
+
+ private String rstcd;
+
+ @TableField("BASE_ID")
+ private String baseId;
+
+ private String hbrvcd;
+
+ private String rvcd;
+
+ private String addvcd;
+
+ private String introduce;
+
+ private String logo;
+
+ private String inffile;
+
+ private String fwdx;
+
+ private String gcfs;
+
+ private String dtfrqcy;
+
+ private String remark;
+
+ private BigDecimal vlsr;
+
+ @TableField("VLSR_TM")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date vlsrTm;
+
+ @TableField("RECORD_USER")
+ private String recordUser;
+
+ @TableField("RECORD_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date recordTime;
+
+ @TableField("MODIFY_USER")
+ private String modifyUser;
+
+ @TableField("MODIFY_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date modifyTime;
+
+ @TableField("IS_DELETED")
+ private Integer isDeleted;
+
+ @TableField("DELETE_USER")
+ private String deleteUser;
+
+ @TableField("DELETE_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date deleteTime;
+
+ @TableField("WARN_STATE")
+ private String warnState;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdTeBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdTeBH.java
new file mode 100644
index 00000000..3aafa40d
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdTeBH.java
@@ -0,0 +1,102 @@
+package com.yfd.platform.qgc_base.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName("SD_TE_B_H")
+public class SdTeBH implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ private String stnm;
+
+ private String sttp;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date tm;
+
+ private BigDecimal lgtd;
+
+ private BigDecimal lttd;
+
+ private BigDecimal elev;
+
+ private String stlc;
+
+ private Integer usfl;
+
+ private Integer dtin;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @TableField("DTIN_TM")
+ private Date dtinTm;
+
+ @TableField("ORDER_INDEX")
+ private Integer orderIndex;
+
+ private String rstcd;
+
+ @TableField("BASE_ID")
+ private String baseId;
+
+ private String hbrvcd;
+
+ private String rvcd;
+
+ private String addvcd;
+
+ @TableField("STDSDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date stdsdt;
+
+ @TableField("PSTSTDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pststdt;
+
+ @TableField("PESSTDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pesstdt;
+
+ @TableField("SWDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date swdt;
+
+ @TableField("JCDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date jcdt;
+
+ @TableField("WDDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date wddt;
+
+ @TableField("BLDSTT_CODE")
+ private Integer bldsttCode;
+
+ private String introduce;
+
+ private String logo;
+
+ private String inffile;
+
+ private BigDecimal inv;
+
+ private Integer invinmn;
+
+ private String dtfrqcy;
+
+ private String remark;
+
+ private BigDecimal vlsr;
+
+ @TableField("VLSR_TM")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date vlsrTm;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVaBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVaBH.java
new file mode 100644
index 00000000..2a22b642
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVaBH.java
@@ -0,0 +1,136 @@
+package com.yfd.platform.qgc_base.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName("SD_VA_B_H")
+public class SdVaBH implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ private String stnm;
+
+ private String sttp;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date tm;
+
+ private Integer blprd;
+
+ private BigDecimal lgtd;
+
+ private BigDecimal lttd;
+
+ private BigDecimal elev;
+
+ private String stlc;
+
+ private Integer usfl;
+
+ private Integer dtin;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ @TableField("DTIN_TM")
+ private Date dtinTm;
+
+ @TableField("ORDER_INDEX")
+ private Integer orderIndex;
+
+ private String rstcd;
+
+ @TableField("BASE_ID")
+ private String baseId;
+
+ private String hbrvcd;
+
+ private String rstcdmap;
+
+ @TableField("STDSDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date stdsdt;
+
+ @TableField("PSTSTDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pststdt;
+
+ @TableField("PESSTDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pesstdt;
+
+ @TableField("SWDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date swdt;
+
+ @TableField("JCDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date jcdt;
+
+ @TableField("WDDT")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date wddt;
+
+ @TableField("BLDSTT_CODE")
+ private Integer bldsttCode;
+
+ private String introduce;
+
+ private String logo;
+
+ private String inffile;
+
+ private BigDecimal inv;
+
+ private BigDecimal area;
+
+ private String place;
+
+ private String bhfs;
+
+ private String bhyy;
+
+ private String bhdx;
+
+ private String bhdxlb;
+
+ private String dtfrqcy;
+
+ private String remark;
+
+ private BigDecimal vlsr;
+
+ @TableField("VLSR_TM")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date vlsrTm;
+
+ @TableField("RECORD_USER")
+ private String recordUser;
+
+ @TableField("RECORD_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date recordTime;
+
+ @TableField("MODIFY_USER")
+ private String modifyUser;
+
+ @TableField("MODIFY_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date modifyTime;
+
+ @TableField("IS_DELETED")
+ private Integer isDeleted;
+
+ @TableField("DELETE_USER")
+ private String deleteUser;
+
+ @TableField("DELETE_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVdinfoB.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVdinfoB.java
new file mode 100644
index 00000000..201f6a8e
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVdinfoB.java
@@ -0,0 +1,179 @@
+package com.yfd.platform.qgc_base.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName("SD_VDINFO_B")
+public class SdVdinfoB implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ private String stnm;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date tm;
+
+ private String mntp;
+
+ private String sttp;
+
+ private BigDecimal lgtd;
+
+ private BigDecimal lttd;
+
+ private BigDecimal elev;
+
+ private String stlc;
+
+ private String stindx;
+
+ private String description;
+
+ private String rstcd;
+
+ private String cstcd;
+
+ private String rvcd;
+
+ private String addvcd;
+
+ private String hycd;
+
+ @TableField("BASE_ID")
+ private String baseId;
+
+ private String hbrvcd;
+
+ private String fhstcd;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date swdt;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date jcdt;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date wddt;
+
+ @TableField("BLDSTT_CODE")
+ private Integer bldsttCode;
+
+ private Integer usfl;
+
+ private Integer dtin;
+
+ @TableField("DTIN_SRC")
+ private String dtinSrc;
+
+ @TableField("DTIN_TM")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date dtinTm;
+
+ @TableField("DEVICE_INFO")
+ private String deviceInfo;
+
+ @TableField("ACCESS_WAY")
+ private String accessWay;
+
+ @TableField("DEVICE_SERIAL")
+ private String deviceSerial;
+
+ @TableField("CHANNEL_NO")
+ private String channelNo;
+
+ @TableField("CHANNEL_NAME")
+ private String channelName;
+
+ private String gbchannel;
+
+ private String protocol;
+
+ private String quality;
+
+ private String transmode;
+
+ @TableField("IS_VD_CONTROL")
+ private Integer isVdControl;
+
+ @TableField("CONTROL_MODE")
+ private String controlMode;
+
+ private String url;
+
+ @TableField("INTRANET_URL")
+ private String intranetUrl;
+
+ private String vduser;
+
+ private String vdpwd;
+
+ @TableField("STORAGE_WAY")
+ private String storageWay;
+
+ private String frequency;
+
+ @TableField("CUT_TIME")
+ private String cutTime;
+
+ @TableField("FRAME_RATE")
+ private String frameRate;
+
+ @TableField("TS_DURATION")
+ private String tsDuration;
+
+ @TableField("OCR_WAY")
+ private String ocrWay;
+
+ private String eqreviewm;
+
+ private Integer jwupdate;
+
+ @TableField("AI_ENABLED")
+ private Integer aiEnabled;
+
+ @TableField("AI_FREQUENCY")
+ private String aiFrequency;
+
+ @TableField("AI_EXT_CODE")
+ private String aiExtCode;
+
+ @TableField("AI_EXT_NAME")
+ private String aiExtName;
+
+ @TableField("LIVE_ADDRESS")
+ private String liveAddress;
+
+ private Integer vdhisday;
+
+ @TableField("DELAY_TIME")
+ private String delayTime;
+
+ @TableField("DELAY_NUM")
+ private Integer delayNum;
+
+ private String project;
+
+ private String dtfrqcy;
+
+ private String remark;
+
+ private BigDecimal vlsr;
+
+ @TableField("VLSR_TM")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date vlsrTm;
+
+ @TableField("WARN_STATE")
+ private String warnState;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVpBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVpBH.java
new file mode 100644
index 00000000..97913f9b
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVpBH.java
@@ -0,0 +1,135 @@
+package com.yfd.platform.qgc_base.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName("SD_VP_B_H")
+public class SdVpBH implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ private String stnm;
+
+ private String sttp;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date tm;
+
+ private Integer blprd;
+
+ private BigDecimal lgtd;
+
+ private BigDecimal lttd;
+
+ private BigDecimal elev;
+
+ private String stlc;
+
+ private Integer usfl;
+
+ private Integer dtin;
+
+ @TableField("DTIN_TM")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date dtinTm;
+
+ @TableField("ORDER_INDEX")
+ private Integer orderIndex;
+
+ private String rstcd;
+
+ @TableField("BASE_ID")
+ private String baseId;
+
+ private String hbrvcd;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date stdsdt;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pststdt;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pesstdt;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date swdt;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date jcdt;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date wddt;
+
+ @TableField("BLDSTT_CODE")
+ private Integer bldsttCode;
+
+ private String introduce;
+
+ private String logo;
+
+ private String inffile;
+
+ private BigDecimal inv;
+
+ private Integer aptl;
+
+ private BigDecimal area;
+
+ private String place;
+
+ private String bhdx;
+
+ private String bhdxlb;
+
+ private String bhfs;
+
+ private String bhyy;
+
+ private Integer iscaec;
+
+ private String dtfrqcy;
+
+ private String remark;
+
+ private BigDecimal vlsr;
+
+ @TableField("VLSR_TM")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date vlsrTm;
+
+ @TableField("RECORD_USER")
+ private String recordUser;
+
+ @TableField("RECORD_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date recordTime;
+
+ @TableField("MODIFY_USER")
+ private String modifyUser;
+
+ @TableField("MODIFY_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date modifyTime;
+
+ @TableField("IS_DELETED")
+ private Integer isDeleted;
+
+ @TableField("DELETE_USER")
+ private String deleteUser;
+
+ @TableField("DELETE_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date deleteTime;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWeBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWeBH.java
new file mode 100644
index 00000000..01e0795f
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWeBH.java
@@ -0,0 +1,99 @@
+package com.yfd.platform.qgc_base.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName("SD_WE_B_H")
+public class SdWeBH implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ private String stnm;
+
+ private String sttp;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date tm;
+
+ private BigDecimal lgtd;
+
+ private BigDecimal lttd;
+
+ private BigDecimal elev;
+
+ private String stlc;
+
+ private Integer usfl;
+
+ private Integer dtin;
+
+ @TableField("DTIN_TM")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date dtinTm;
+
+ @TableField("ORDER_INDEX")
+ private Integer orderIndex;
+
+ private String rstcd;
+
+ @TableField("BASE_ID")
+ private String baseId;
+
+ private String hbrvcd;
+
+ private String rvcd;
+
+ private String addvcd;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date stdsdt;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pststdt;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date pesstdt;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date swdt;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date jcdt;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date wddt;
+
+ @TableField("BLDSTT_CODE")
+ private Integer bldsttCode;
+
+ private String introduce;
+
+ private String logo;
+
+ private String inffile;
+
+ private BigDecimal inv;
+
+ private Integer invinmn;
+
+ private String dtfrqcy;
+
+ private String remark;
+
+ private BigDecimal vlsr;
+
+ @TableField("VLSR_TM")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date vlsrTm;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWqBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWqBH.java
new file mode 100644
index 00000000..43acd821
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWqBH.java
@@ -0,0 +1,124 @@
+package com.yfd.platform.qgc_base.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName("SD_WQ_B_H")
+public class SdWqBH implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ private String stnm;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date tm;
+
+ private String sttp;
+
+ private BigDecimal lgtd;
+
+ private BigDecimal lttd;
+
+ private BigDecimal elev;
+
+ private String stlc;
+
+ private String wwqtg;
+
+ private String wqtype;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date jcdt;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date wddt;
+
+ @TableField("BLDSTT_CODE")
+ private Integer bldsttCode;
+
+ private String introduce;
+
+ private String logo;
+
+ private String inffile;
+
+ private Integer usfl;
+
+ private Integer dtin;
+
+ @TableField("DTIN_SRC")
+ private String dtinSrc;
+
+ @TableField("DTIN_TYPE")
+ private Integer dtinType;
+
+ @TableField("DTIN_TM")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date dtinTm;
+
+ private Integer mway;
+
+ private String stindx;
+
+ @TableField("ORDER_INDEX")
+ private Integer orderIndex;
+
+ private String rstcd;
+
+ @TableField("BASE_ID")
+ private String baseId;
+
+ private String hbrvcd;
+
+ private String fhstcd;
+
+ private Integer ispro;
+
+ private String dtfrqcy;
+
+ private String remark;
+
+ private BigDecimal vlsr;
+
+ @TableField("VLSR_TM")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date vlsrTm;
+
+ @TableField("RECORD_USER")
+ private String recordUser;
+
+ @TableField("RECORD_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date recordTime;
+
+ @TableField("MODIFY_USER")
+ private String modifyUser;
+
+ @TableField("MODIFY_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date modifyTime;
+
+ @TableField("IS_DELETED")
+ private Integer isDeleted;
+
+ @TableField("DELETE_USER")
+ private String deleteUser;
+
+ @TableField("DELETE_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date deleteTime;
+
+ @TableField("WARN_STATE")
+ private String warnState;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWtBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWtBH.java
new file mode 100644
index 00000000..4dcad49f
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWtBH.java
@@ -0,0 +1,150 @@
+package com.yfd.platform.qgc_base.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName("SD_WT_B_H")
+public class SdWtBH implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @TableId(type = IdType.INPUT)
+ private String stcd;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date tm;
+
+ private String stnm;
+
+ private String sttp;
+
+ private BigDecimal lgtd;
+
+ private BigDecimal lttd;
+
+ private BigDecimal elev;
+
+ private String stlc;
+
+ private String stsr;
+
+ @TableField("WT_DEVICE_TYPE")
+ private Integer wtDeviceType;
+
+ @TableField("WT_TYPE")
+ private String wtType;
+
+ private String wts;
+
+ @TableField("WT_HGT_TYPE")
+ private Integer wtHgtType;
+
+ @TableField("WT_FIRST_HGT")
+ private BigDecimal wtFirstHgt;
+
+ @TableField("WT_DIST")
+ private String wtDist;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date jcdt;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date wddt;
+
+ @TableField("BLDSTT_CODE")
+ private Integer bldsttCode;
+
+ private BigDecimal inv;
+
+ private Integer invinmn;
+
+ private String introduce;
+
+ private String logo;
+
+ private String inffile;
+
+ private Integer usfl;
+
+ private Integer dtin;
+
+ @TableField("DTIN_SRC")
+ private String dtinSrc;
+
+ @TableField("DTIN_TYPE")
+ private Integer dtinType;
+
+ @TableField("DTIN_TM")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date dtinTm;
+
+ private Integer mway;
+
+ private String stindx;
+
+ @TableField("ORDER_INDEX")
+ private Integer orderIndex;
+
+ private String dmstcd;
+
+ private String rstcd;
+
+ private String fhstcd;
+
+ private Integer ispro;
+
+ private String project;
+
+ private String dtfrqcy;
+
+ private String remark;
+
+ private BigDecimal vlsr;
+
+ @TableField("VLSR_TM")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date vlsrTm;
+
+ @TableField("RECORD_USER")
+ private String recordUser;
+
+ @TableField("RECORD_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date recordTime;
+
+ @TableField("MODIFY_USER")
+ private String modifyUser;
+
+ @TableField("MODIFY_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date modifyTime;
+
+ @TableField("IS_DELETED")
+ private Integer isDeleted;
+
+ @TableField("DELETE_USER")
+ private String deleteUser;
+
+ @TableField("DELETE_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date deleteTime;
+
+ @TableField("BASE_ID")
+ private String baseId;
+
+ private String hbrvcd;
+
+ @TableField("WARN_STATE")
+ private String warnState;
+
+ @TableField("IS_PUSH")
+ private Integer isPush;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdAiboxBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdAiboxBHMapper.java
new file mode 100644
index 00000000..c3906e84
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdAiboxBHMapper.java
@@ -0,0 +1,13 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdAiboxBH;
+
+/**
+ *
+ * AI边缘计算盒子基本属性表 Mapper 接口
+ *
+ */
+public interface SdAiboxBHMapper extends BaseMapper {
+
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdArtsgBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdArtsgBHMapper.java
new file mode 100644
index 00000000..d095091d
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdArtsgBHMapper.java
@@ -0,0 +1,13 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdArtsgBH;
+
+/**
+ *
+ * 人工产卵场工程信息表 Mapper 接口
+ *
+ */
+public interface SdArtsgBHMapper extends BaseMapper {
+
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdDwBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdDwBHMapper.java
new file mode 100644
index 00000000..534c5dd5
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdDwBHMapper.java
@@ -0,0 +1,13 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdDwBH;
+
+/**
+ *
+ * 低温水减缓设施信息表 Mapper 接口
+ *
+ */
+public interface SdDwBHMapper extends BaseMapper {
+
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdEqBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdEqBHMapper.java
new file mode 100644
index 00000000..c019ae00
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdEqBHMapper.java
@@ -0,0 +1,13 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdEqBH;
+
+/**
+ *
+ * 生态流量泄放设施信息表 Mapper 接口
+ *
+ */
+public interface SdEqBHMapper extends BaseMapper {
+
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdFbrdBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdFbrdBHMapper.java
new file mode 100644
index 00000000..841098dc
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdFbrdBHMapper.java
@@ -0,0 +1,13 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdFbrdBH;
+
+/**
+ *
+ * 鱼类增殖设施保护工程信息表 Mapper 接口
+ *
+ */
+public interface SdFbrdBHMapper extends BaseMapper {
+
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdFhbtBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdFhbtBHMapper.java
new file mode 100644
index 00000000..8122b2f1
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdFhbtBHMapper.java
@@ -0,0 +1,13 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdFhbtBH;
+
+/**
+ *
+ * 栖息地保护工程信息表 Mapper 接口
+ *
+ */
+public interface SdFhbtBHMapper extends BaseMapper {
+
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOpinfoBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOpinfoBHMapper.java
new file mode 100644
index 00000000..19611176
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOpinfoBHMapper.java
@@ -0,0 +1,7 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdOpinfoBH;
+
+public interface SdOpinfoBHMapper extends BaseMapper {
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOtteBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOtteBHMapper.java
new file mode 100644
index 00000000..80904d11
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOtteBHMapper.java
@@ -0,0 +1,7 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdOtteBH;
+
+public interface SdOtteBHMapper extends BaseMapper {
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOtweBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOtweBHMapper.java
new file mode 100644
index 00000000..a6248676
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdOtweBHMapper.java
@@ -0,0 +1,7 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdOtweBH;
+
+public interface SdOtweBHMapper extends BaseMapper {
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdSonarBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdSonarBHMapper.java
new file mode 100644
index 00000000..197bf37f
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdSonarBHMapper.java
@@ -0,0 +1,7 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdSonarBH;
+
+public interface SdSonarBHMapper extends BaseMapper {
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdTeBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdTeBHMapper.java
new file mode 100644
index 00000000..e04fa61a
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdTeBHMapper.java
@@ -0,0 +1,7 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdTeBH;
+
+public interface SdTeBHMapper extends BaseMapper {
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVaBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVaBHMapper.java
new file mode 100644
index 00000000..29a32bbd
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVaBHMapper.java
@@ -0,0 +1,7 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdVaBH;
+
+public interface SdVaBHMapper extends BaseMapper {
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVdinfoBMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVdinfoBMapper.java
new file mode 100644
index 00000000..9c9c2a41
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVdinfoBMapper.java
@@ -0,0 +1,9 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdVdinfoB;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SdVdinfoBMapper extends BaseMapper {
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVpBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVpBHMapper.java
new file mode 100644
index 00000000..22f8b59f
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdVpBHMapper.java
@@ -0,0 +1,9 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdVpBH;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SdVpBHMapper extends BaseMapper {
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWeBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWeBHMapper.java
new file mode 100644
index 00000000..2228a21a
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWeBHMapper.java
@@ -0,0 +1,9 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdWeBH;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SdWeBHMapper extends BaseMapper {
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWqBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWqBHMapper.java
new file mode 100644
index 00000000..eea9eb26
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWqBHMapper.java
@@ -0,0 +1,9 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdWqBH;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SdWqBHMapper extends BaseMapper {
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWtBHMapper.java b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWtBHMapper.java
new file mode 100644
index 00000000..659c3679
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/mapper/SdWtBHMapper.java
@@ -0,0 +1,9 @@
+package com.yfd.platform.qgc_base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_base.domain.SdWtBH;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SdWtBHMapper extends BaseMapper {
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/IMsOperationLogService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/IMsOperationLogService.java
index f9edde52..62dd1b07 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/IMsOperationLogService.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/IMsOperationLogService.java
@@ -9,4 +9,13 @@ public interface IMsOperationLogService {
void recordEngUpdateLog(SdEngInfoBH before, SdEngInfoBH changeSet, String source);
void recordEngDeleteLog(SdEngInfoBH engInfo, String source);
+
+ /**
+ * 通用操作日志记录
+ * @param tableName 表名
+ * @param recordId 记录ID(stcd)
+ * @param operation 操作类型(新增/修改/删除)
+ * @param source 操作来源
+ */
+ void recordOperationLog(String tableName, String recordId, String operation, String source);
}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdAiboxBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdAiboxBHService.java
new file mode 100644
index 00000000..0999c581
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdAiboxBHService.java
@@ -0,0 +1,36 @@
+package com.yfd.platform.qgc_base.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdAiboxBH;
+
+import java.util.List;
+
+/**
+ *
+ * AI边缘计算盒子基本属性表 服务类
+ *
+ */
+public interface ISdAiboxBHService extends IService {
+
+ /**
+ * 分页查询
+ */
+ Page queryPageList(DataSourceRequest request);
+
+ /**
+ * 新增
+ */
+ boolean add(SdAiboxBH entity, String source);
+
+ /**
+ * 修改
+ */
+ boolean update(SdAiboxBH entity, String source);
+
+ /**
+ * 删除
+ */
+ boolean delete(List stcds, String source);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdArtsgBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdArtsgBHService.java
new file mode 100644
index 00000000..11a57f77
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdArtsgBHService.java
@@ -0,0 +1,36 @@
+package com.yfd.platform.qgc_base.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdArtsgBH;
+
+import java.util.List;
+
+/**
+ *
+ * 人工产卵场工程信息表 服务类
+ *
+ */
+public interface ISdArtsgBHService extends IService {
+
+ /**
+ * 分页查询
+ */
+ Page queryPageList(DataSourceRequest request);
+
+ /**
+ * 新增
+ */
+ boolean add(SdArtsgBH entity, String source);
+
+ /**
+ * 修改
+ */
+ boolean update(SdArtsgBH entity, String source);
+
+ /**
+ * 删除
+ */
+ boolean delete(List stcds, String source);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdDwBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdDwBHService.java
new file mode 100644
index 00000000..9a793cc2
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdDwBHService.java
@@ -0,0 +1,36 @@
+package com.yfd.platform.qgc_base.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdDwBH;
+
+import java.util.List;
+
+/**
+ *
+ * 低温水减缓设施信息表 服务类
+ *
+ */
+public interface ISdDwBHService extends IService {
+
+ /**
+ * 分页查询
+ */
+ Page queryPageList(DataSourceRequest request);
+
+ /**
+ * 新增
+ */
+ boolean add(SdDwBH entity, String source);
+
+ /**
+ * 修改
+ */
+ boolean update(SdDwBH entity, String source);
+
+ /**
+ * 删除
+ */
+ boolean delete(List stcds, String source);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdEqBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdEqBHService.java
new file mode 100644
index 00000000..8d7f5cc5
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdEqBHService.java
@@ -0,0 +1,36 @@
+package com.yfd.platform.qgc_base.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdEqBH;
+
+import java.util.List;
+
+/**
+ *
+ * 生态流量泄放设施信息表 服务类
+ *
+ */
+public interface ISdEqBHService extends IService {
+
+ /**
+ * 分页查询
+ */
+ Page queryPageList(DataSourceRequest request);
+
+ /**
+ * 新增
+ */
+ boolean add(SdEqBH entity, String source);
+
+ /**
+ * 修改
+ */
+ boolean update(SdEqBH entity, String source);
+
+ /**
+ * 删除
+ */
+ boolean delete(List stcds, String source);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFbrdBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFbrdBHService.java
new file mode 100644
index 00000000..70b074f4
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFbrdBHService.java
@@ -0,0 +1,36 @@
+package com.yfd.platform.qgc_base.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdFbrdBH;
+
+import java.util.List;
+
+/**
+ *
+ * 鱼类增殖设施保护工程信息表 服务类
+ *
+ */
+public interface ISdFbrdBHService extends IService {
+
+ /**
+ * 分页查询
+ */
+ Page queryPageList(DataSourceRequest request);
+
+ /**
+ * 新增
+ */
+ boolean add(SdFbrdBH entity, String source);
+
+ /**
+ * 修改
+ */
+ boolean update(SdFbrdBH entity, String source);
+
+ /**
+ * 删除
+ */
+ boolean delete(List stcds, String source);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFhbtBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFhbtBHService.java
new file mode 100644
index 00000000..118de1c9
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdFhbtBHService.java
@@ -0,0 +1,36 @@
+package com.yfd.platform.qgc_base.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdFhbtBH;
+
+import java.util.List;
+
+/**
+ *
+ * 栖息地保护工程信息表 服务类
+ *
+ */
+public interface ISdFhbtBHService extends IService {
+
+ /**
+ * 分页查询
+ */
+ Page queryPageList(DataSourceRequest request);
+
+ /**
+ * 新增
+ */
+ boolean add(SdFhbtBH entity, String source);
+
+ /**
+ * 修改
+ */
+ boolean update(SdFhbtBH entity, String source);
+
+ /**
+ * 删除
+ */
+ boolean delete(List stcds, String source);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOpinfoBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOpinfoBHService.java
new file mode 100644
index 00000000..cbd0ead2
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOpinfoBHService.java
@@ -0,0 +1,15 @@
+package com.yfd.platform.qgc_base.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdOpinfoBH;
+
+import java.util.List;
+
+public interface ISdOpinfoBHService extends IService {
+ Page queryPageList(DataSourceRequest request);
+ boolean add(SdOpinfoBH entity, String source);
+ boolean update(SdOpinfoBH entity, String source);
+ boolean delete(List stcds, String source);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOtteBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOtteBHService.java
new file mode 100644
index 00000000..09e162aa
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOtteBHService.java
@@ -0,0 +1,15 @@
+package com.yfd.platform.qgc_base.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdOtteBH;
+
+import java.util.List;
+
+public interface ISdOtteBHService extends IService {
+ Page queryPageList(DataSourceRequest request);
+ boolean add(SdOtteBH entity, String source);
+ boolean update(SdOtteBH entity, String source);
+ boolean delete(List stcds, String source);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOtweBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOtweBHService.java
new file mode 100644
index 00000000..6009911c
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdOtweBHService.java
@@ -0,0 +1,15 @@
+package com.yfd.platform.qgc_base.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdOtweBH;
+
+import java.util.List;
+
+public interface ISdOtweBHService extends IService {
+ Page queryPageList(DataSourceRequest request);
+ boolean add(SdOtweBH entity, String source);
+ boolean update(SdOtweBH entity, String source);
+ boolean delete(List stcds, String source);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdSonarBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdSonarBHService.java
new file mode 100644
index 00000000..4ebbe192
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdSonarBHService.java
@@ -0,0 +1,15 @@
+package com.yfd.platform.qgc_base.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdSonarBH;
+
+import java.util.List;
+
+public interface ISdSonarBHService extends IService {
+ Page queryPageList(DataSourceRequest request);
+ boolean add(SdSonarBH entity, String source);
+ boolean update(SdSonarBH entity, String source);
+ boolean delete(List stcds, String source);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdTeBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdTeBHService.java
new file mode 100644
index 00000000..32beac3c
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdTeBHService.java
@@ -0,0 +1,15 @@
+package com.yfd.platform.qgc_base.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdTeBH;
+
+import java.util.List;
+
+public interface ISdTeBHService extends IService {
+ Page queryPageList(DataSourceRequest request);
+ boolean add(SdTeBH entity, String source);
+ boolean update(SdTeBH entity, String source);
+ boolean delete(List stcds, String source);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVaBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVaBHService.java
new file mode 100644
index 00000000..334768f5
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVaBHService.java
@@ -0,0 +1,15 @@
+package com.yfd.platform.qgc_base.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdVaBH;
+
+import java.util.List;
+
+public interface ISdVaBHService extends IService {
+ Page queryPageList(DataSourceRequest request);
+ boolean add(SdVaBH entity, String source);
+ boolean update(SdVaBH entity, String source);
+ boolean delete(List stcds, String source);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVdinfoBService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVdinfoBService.java
new file mode 100644
index 00000000..10513b62
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVdinfoBService.java
@@ -0,0 +1,15 @@
+package com.yfd.platform.qgc_base.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdVdinfoB;
+
+import java.util.List;
+
+public interface ISdVdinfoBService extends IService {
+ Page queryPageList(DataSourceRequest request);
+ boolean add(SdVdinfoB entity, String source);
+ boolean update(SdVdinfoB entity, String source);
+ boolean delete(List stcds, String source);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVpBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVpBHService.java
new file mode 100644
index 00000000..b0f81587
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdVpBHService.java
@@ -0,0 +1,15 @@
+package com.yfd.platform.qgc_base.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdVpBH;
+
+import java.util.List;
+
+public interface ISdVpBHService extends IService {
+ Page queryPageList(DataSourceRequest request);
+ boolean add(SdVpBH entity, String source);
+ boolean update(SdVpBH entity, String source);
+ boolean delete(List stcds, String source);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWeBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWeBHService.java
new file mode 100644
index 00000000..252776cd
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWeBHService.java
@@ -0,0 +1,15 @@
+package com.yfd.platform.qgc_base.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdWeBH;
+
+import java.util.List;
+
+public interface ISdWeBHService extends IService {
+ Page queryPageList(DataSourceRequest request);
+ boolean add(SdWeBH entity, String source);
+ boolean update(SdWeBH entity, String source);
+ boolean delete(List stcds, String source);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWqBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWqBHService.java
new file mode 100644
index 00000000..4576c188
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWqBHService.java
@@ -0,0 +1,15 @@
+package com.yfd.platform.qgc_base.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdWqBH;
+
+import java.util.List;
+
+public interface ISdWqBHService extends IService {
+ Page queryPageList(DataSourceRequest request);
+ boolean add(SdWqBH entity, String source);
+ boolean update(SdWqBH entity, String source);
+ boolean delete(List stcds, String source);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWtBHService.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWtBHService.java
new file mode 100644
index 00000000..6d4fe773
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/ISdWtBHService.java
@@ -0,0 +1,15 @@
+package com.yfd.platform.qgc_base.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdWtBH;
+
+import java.util.List;
+
+public interface ISdWtBHService extends IService {
+ Page queryPageList(DataSourceRequest request);
+ boolean add(SdWtBH entity, String source);
+ boolean update(SdWtBH entity, String source);
+ boolean delete(List stcds, String source);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsOperationLogServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsOperationLogServiceImpl.java
index a915ff1d..b10e282b 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsOperationLogServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/MsOperationLogServiceImpl.java
@@ -379,16 +379,26 @@ public class MsOperationLogServiceImpl implements IMsOperationLogService {
}
private MsOperationLog buildMainLog(String recordId,String remark, String source) {
+ return buildMainLog(ENG_TABLE_NAME, recordId, remark, source);
+ }
+
+ private MsOperationLog buildMainLog(String tableName, String recordId, String remark, String source) {
MsOperationLog log = new MsOperationLog();
log.setOperator(resolveOperator());
log.setOperateTime(new Date());
- log.setTableName(ENG_TABLE_NAME);
+ log.setTableName(tableName);
log.setRecordId(recordId);
log.setSource(StrUtil.trimToNull(source));
log.setRemark(remark);
return log;
}
+ @Override
+ public void recordOperationLog(String tableName, String recordId, String operation, String source) {
+ MsOperationLog log = buildMainLog(tableName, recordId, operation, source);
+ msOperationLogMapper.insert(log);
+ }
+
private MsOperationLogDetail buildDetail(String mainId,
String stationCode,
String fieldCode,
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdAiboxBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdAiboxBHServiceImpl.java
new file mode 100644
index 00000000..fd43b02a
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdAiboxBHServiceImpl.java
@@ -0,0 +1,72 @@
+package com.yfd.platform.qgc_base.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdAiboxBH;
+import com.yfd.platform.qgc_base.mapper.SdAiboxBHMapper;
+import com.yfd.platform.qgc_base.service.IMsOperationLogService;
+import com.yfd.platform.qgc_base.service.ISdAiboxBHService;
+import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.SecurityUtils;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class SdAiboxBHServiceImpl extends ServiceImpl implements ISdAiboxBHService {
+
+ private static final String TABLE_NAME = "SD_AIBOX_B_H";
+
+ @Resource
+ private IMsOperationLogService msOperationLogService;
+
+ @Override
+ public Page queryPageList(DataSourceRequest request) {
+ return DataSourceRequestUtil.executeQuery(request, SdAiboxBH.class, this);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(SdAiboxBH entity, String source) {
+ boolean result = this.save(entity);
+ if (result) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean update(SdAiboxBH entity, String source) {
+ SdAiboxBH before = this.getById(entity.getStcd());
+ boolean result = this.updateById(entity);
+ if (result && before != null) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean delete(List stcds, String source) {
+ if (stcds == null || stcds.isEmpty()) return false;
+ int count = 0;
+ for (String stcd : stcds) {
+ LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
+ wrapper.eq(SdAiboxBH::getStcd, stcd);
+ wrapper.set(SdAiboxBH::getIsDeleted, 1);
+ wrapper.set(SdAiboxBH::getDeleteUser, SecurityUtils.getCurrentUsername());
+ wrapper.set(SdAiboxBH::getDeleteTime, new Date());
+ if (this.update(wrapper)) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, stcd, "删除", source);
+ count++;
+ }
+ }
+ return count > 0;
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdArtsgBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdArtsgBHServiceImpl.java
new file mode 100644
index 00000000..5c73425b
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdArtsgBHServiceImpl.java
@@ -0,0 +1,64 @@
+package com.yfd.platform.qgc_base.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdArtsgBH;
+import com.yfd.platform.qgc_base.mapper.SdArtsgBHMapper;
+import com.yfd.platform.qgc_base.service.IMsOperationLogService;
+import com.yfd.platform.qgc_base.service.ISdArtsgBHService;
+import com.yfd.platform.utils.DataSourceRequestUtil;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Service
+public class SdArtsgBHServiceImpl extends ServiceImpl implements ISdArtsgBHService {
+
+ private static final String TABLE_NAME = "SD_ARTSG_B_H";
+
+ @Resource
+ private IMsOperationLogService msOperationLogService;
+
+ @Override
+ public Page queryPageList(DataSourceRequest request) {
+ return DataSourceRequestUtil.executeQuery(request, SdArtsgBH.class, this);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(SdArtsgBH entity, String source) {
+ boolean result = this.save(entity);
+ if (result) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean update(SdArtsgBH entity, String source) {
+ SdArtsgBH before = this.getById(entity.getStcd());
+ boolean result = this.updateById(entity);
+ if (result && before != null) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean delete(List stcds, String source) {
+ if (stcds == null || stcds.isEmpty()) return false;
+ int count = 0;
+ for (String stcd : stcds) {
+ if (this.removeById(stcd)) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, stcd, "删除", source);
+ count++;
+ }
+ }
+ return count > 0;
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdDwBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdDwBHServiceImpl.java
new file mode 100644
index 00000000..5c7e8799
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdDwBHServiceImpl.java
@@ -0,0 +1,72 @@
+package com.yfd.platform.qgc_base.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdDwBH;
+import com.yfd.platform.qgc_base.mapper.SdDwBHMapper;
+import com.yfd.platform.qgc_base.service.IMsOperationLogService;
+import com.yfd.platform.qgc_base.service.ISdDwBHService;
+import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.SecurityUtils;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class SdDwBHServiceImpl extends ServiceImpl implements ISdDwBHService {
+
+ private static final String TABLE_NAME = "SD_DW_B_H";
+
+ @Resource
+ private IMsOperationLogService msOperationLogService;
+
+ @Override
+ public Page queryPageList(DataSourceRequest request) {
+ return DataSourceRequestUtil.executeQuery(request, SdDwBH.class, this);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(SdDwBH entity, String source) {
+ boolean result = this.save(entity);
+ if (result) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean update(SdDwBH entity, String source) {
+ SdDwBH before = this.getById(entity.getStcd());
+ boolean result = this.updateById(entity);
+ if (result && before != null) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean delete(List stcds, String source) {
+ if (stcds == null || stcds.isEmpty()) return false;
+ int count = 0;
+ for (String stcd : stcds) {
+ LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
+ wrapper.eq(SdDwBH::getStcd, stcd);
+ wrapper.set(SdDwBH::getIsDeleted, 1);
+ wrapper.set(SdDwBH::getDeleteUser, SecurityUtils.getCurrentUsername());
+ wrapper.set(SdDwBH::getDeleteTime, new Date());
+ if (this.update(wrapper)) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, stcd, "删除", source);
+ count++;
+ }
+ }
+ return count > 0;
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEqBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEqBHServiceImpl.java
new file mode 100644
index 00000000..5b1ec0b4
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEqBHServiceImpl.java
@@ -0,0 +1,72 @@
+package com.yfd.platform.qgc_base.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdEqBH;
+import com.yfd.platform.qgc_base.mapper.SdEqBHMapper;
+import com.yfd.platform.qgc_base.service.IMsOperationLogService;
+import com.yfd.platform.qgc_base.service.ISdEqBHService;
+import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.SecurityUtils;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class SdEqBHServiceImpl extends ServiceImpl implements ISdEqBHService {
+
+ private static final String TABLE_NAME = "SD_EQ_B_H";
+
+ @Resource
+ private IMsOperationLogService msOperationLogService;
+
+ @Override
+ public Page queryPageList(DataSourceRequest request) {
+ return DataSourceRequestUtil.executeQuery(request, SdEqBH.class, this);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(SdEqBH entity, String source) {
+ boolean result = this.save(entity);
+ if (result) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean update(SdEqBH entity, String source) {
+ SdEqBH before = this.getById(entity.getStcd());
+ boolean result = this.updateById(entity);
+ if (result && before != null) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean delete(List stcds, String source) {
+ if (stcds == null || stcds.isEmpty()) return false;
+ int count = 0;
+ for (String stcd : stcds) {
+ LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
+ wrapper.eq(SdEqBH::getStcd, stcd);
+ wrapper.set(SdEqBH::getIsDeleted, 1);
+ wrapper.set(SdEqBH::getDeleteUser, SecurityUtils.getCurrentUsername());
+ wrapper.set(SdEqBH::getDeleteTime, new Date());
+ if (this.update(wrapper)) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, stcd, "删除", source);
+ count++;
+ }
+ }
+ return count > 0;
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFbrdBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFbrdBHServiceImpl.java
new file mode 100644
index 00000000..e6027445
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFbrdBHServiceImpl.java
@@ -0,0 +1,64 @@
+package com.yfd.platform.qgc_base.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdFbrdBH;
+import com.yfd.platform.qgc_base.mapper.SdFbrdBHMapper;
+import com.yfd.platform.qgc_base.service.IMsOperationLogService;
+import com.yfd.platform.qgc_base.service.ISdFbrdBHService;
+import com.yfd.platform.utils.DataSourceRequestUtil;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Service
+public class SdFbrdBHServiceImpl extends ServiceImpl implements ISdFbrdBHService {
+
+ private static final String TABLE_NAME = "SD_FBRD_B_H";
+
+ @Resource
+ private IMsOperationLogService msOperationLogService;
+
+ @Override
+ public Page queryPageList(DataSourceRequest request) {
+ return DataSourceRequestUtil.executeQuery(request, SdFbrdBH.class, this);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(SdFbrdBH entity, String source) {
+ boolean result = this.save(entity);
+ if (result) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean update(SdFbrdBH entity, String source) {
+ SdFbrdBH before = this.getById(entity.getStcd());
+ boolean result = this.updateById(entity);
+ if (result && before != null) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean delete(List stcds, String source) {
+ if (stcds == null || stcds.isEmpty()) return false;
+ int count = 0;
+ for (String stcd : stcds) {
+ if (this.removeById(stcd)) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, stcd, "删除", source);
+ count++;
+ }
+ }
+ return count > 0;
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFhbtBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFhbtBHServiceImpl.java
new file mode 100644
index 00000000..b22d1ee9
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFhbtBHServiceImpl.java
@@ -0,0 +1,72 @@
+package com.yfd.platform.qgc_base.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdFhbtBH;
+import com.yfd.platform.qgc_base.mapper.SdFhbtBHMapper;
+import com.yfd.platform.qgc_base.service.IMsOperationLogService;
+import com.yfd.platform.qgc_base.service.ISdFhbtBHService;
+import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.SecurityUtils;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class SdFhbtBHServiceImpl extends ServiceImpl implements ISdFhbtBHService {
+
+ private static final String TABLE_NAME = "SD_FHBT_B_H";
+
+ @Resource
+ private IMsOperationLogService msOperationLogService;
+
+ @Override
+ public Page queryPageList(DataSourceRequest request) {
+ return DataSourceRequestUtil.executeQuery(request, SdFhbtBH.class, this);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(SdFhbtBH entity, String source) {
+ boolean result = this.save(entity);
+ if (result) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean update(SdFhbtBH entity, String source) {
+ SdFhbtBH before = this.getById(entity.getStcd());
+ boolean result = this.updateById(entity);
+ if (result && before != null) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean delete(List stcds, String source) {
+ if (stcds == null || stcds.isEmpty()) return false;
+ int count = 0;
+ for (String stcd : stcds) {
+ LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
+ wrapper.eq(SdFhbtBH::getStcd, stcd);
+ wrapper.set(SdFhbtBH::getIsDeleted, 1);
+ wrapper.set(SdFhbtBH::getDeleteUser, SecurityUtils.getCurrentUsername());
+ wrapper.set(SdFhbtBH::getDeleteTime, new Date());
+ if (this.update(wrapper)) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, stcd, "删除", source);
+ count++;
+ }
+ }
+ return count > 0;
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOpinfoBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOpinfoBHServiceImpl.java
new file mode 100644
index 00000000..3ccad258
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOpinfoBHServiceImpl.java
@@ -0,0 +1,72 @@
+package com.yfd.platform.qgc_base.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdOpinfoBH;
+import com.yfd.platform.qgc_base.mapper.SdOpinfoBHMapper;
+import com.yfd.platform.qgc_base.service.IMsOperationLogService;
+import com.yfd.platform.qgc_base.service.ISdOpinfoBHService;
+import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.SecurityUtils;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class SdOpinfoBHServiceImpl extends ServiceImpl implements ISdOpinfoBHService {
+
+ private static final String TABLE_NAME = "SD_OPINFO_B_H";
+
+ @Resource
+ private IMsOperationLogService msOperationLogService;
+
+ @Override
+ public Page queryPageList(DataSourceRequest request) {
+ return DataSourceRequestUtil.executeQuery(request, SdOpinfoBH.class, this);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(SdOpinfoBH entity, String source) {
+ boolean result = this.save(entity);
+ if (result) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean update(SdOpinfoBH entity, String source) {
+ SdOpinfoBH before = this.getById(entity.getStcd());
+ boolean result = this.updateById(entity);
+ if (result && before != null) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean delete(List stcds, String source) {
+ if (stcds == null || stcds.isEmpty()) return false;
+ int count = 0;
+ for (String stcd : stcds) {
+ LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
+ wrapper.eq(SdOpinfoBH::getStcd, stcd);
+ wrapper.set(SdOpinfoBH::getIsDeleted, 1);
+ wrapper.set(SdOpinfoBH::getDeleteUser, SecurityUtils.getCurrentUsername());
+ wrapper.set(SdOpinfoBH::getDeleteTime, new Date());
+ if (this.update(wrapper)) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, stcd, "删除", source);
+ count++;
+ }
+ }
+ return count > 0;
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtteBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtteBHServiceImpl.java
new file mode 100644
index 00000000..1499673b
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtteBHServiceImpl.java
@@ -0,0 +1,64 @@
+package com.yfd.platform.qgc_base.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdOtteBH;
+import com.yfd.platform.qgc_base.mapper.SdOtteBHMapper;
+import com.yfd.platform.qgc_base.service.IMsOperationLogService;
+import com.yfd.platform.qgc_base.service.ISdOtteBHService;
+import com.yfd.platform.utils.DataSourceRequestUtil;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Service
+public class SdOtteBHServiceImpl extends ServiceImpl implements ISdOtteBHService {
+
+ private static final String TABLE_NAME = "SD_OTTE_B_H";
+
+ @Resource
+ private IMsOperationLogService msOperationLogService;
+
+ @Override
+ public Page queryPageList(DataSourceRequest request) {
+ return DataSourceRequestUtil.executeQuery(request, SdOtteBH.class, this);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(SdOtteBH entity, String source) {
+ boolean result = this.save(entity);
+ if (result) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean update(SdOtteBH entity, String source) {
+ SdOtteBH before = this.getById(entity.getStcd());
+ boolean result = this.updateById(entity);
+ if (result && before != null) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean delete(List stcds, String source) {
+ if (stcds == null || stcds.isEmpty()) return false;
+ int count = 0;
+ for (String stcd : stcds) {
+ if (this.removeById(stcd)) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, stcd, "删除", source);
+ count++;
+ }
+ }
+ return count > 0;
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtweBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtweBHServiceImpl.java
new file mode 100644
index 00000000..0b89a0b2
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtweBHServiceImpl.java
@@ -0,0 +1,64 @@
+package com.yfd.platform.qgc_base.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdOtweBH;
+import com.yfd.platform.qgc_base.mapper.SdOtweBHMapper;
+import com.yfd.platform.qgc_base.service.IMsOperationLogService;
+import com.yfd.platform.qgc_base.service.ISdOtweBHService;
+import com.yfd.platform.utils.DataSourceRequestUtil;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Service
+public class SdOtweBHServiceImpl extends ServiceImpl implements ISdOtweBHService {
+
+ private static final String TABLE_NAME = "SD_OTWE_B_H";
+
+ @Resource
+ private IMsOperationLogService msOperationLogService;
+
+ @Override
+ public Page queryPageList(DataSourceRequest request) {
+ return DataSourceRequestUtil.executeQuery(request, SdOtweBH.class, this);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(SdOtweBH entity, String source) {
+ boolean result = this.save(entity);
+ if (result) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean update(SdOtweBH entity, String source) {
+ SdOtweBH before = this.getById(entity.getStcd());
+ boolean result = this.updateById(entity);
+ if (result && before != null) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean delete(List stcds, String source) {
+ if (stcds == null || stcds.isEmpty()) return false;
+ int count = 0;
+ for (String stcd : stcds) {
+ if (this.removeById(stcd)) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, stcd, "删除", source);
+ count++;
+ }
+ }
+ return count > 0;
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdSonarBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdSonarBHServiceImpl.java
new file mode 100644
index 00000000..4a535f49
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdSonarBHServiceImpl.java
@@ -0,0 +1,72 @@
+package com.yfd.platform.qgc_base.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdSonarBH;
+import com.yfd.platform.qgc_base.mapper.SdSonarBHMapper;
+import com.yfd.platform.qgc_base.service.IMsOperationLogService;
+import com.yfd.platform.qgc_base.service.ISdSonarBHService;
+import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.SecurityUtils;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class SdSonarBHServiceImpl extends ServiceImpl implements ISdSonarBHService {
+
+ private static final String TABLE_NAME = "SD_SONAR_B_H";
+
+ @Resource
+ private IMsOperationLogService msOperationLogService;
+
+ @Override
+ public Page queryPageList(DataSourceRequest request) {
+ return DataSourceRequestUtil.executeQuery(request, SdSonarBH.class, this);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(SdSonarBH entity, String source) {
+ boolean result = this.save(entity);
+ if (result) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean update(SdSonarBH entity, String source) {
+ SdSonarBH before = this.getById(entity.getStcd());
+ boolean result = this.updateById(entity);
+ if (result && before != null) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean delete(List stcds, String source) {
+ if (stcds == null || stcds.isEmpty()) return false;
+ int count = 0;
+ for (String stcd : stcds) {
+ LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
+ wrapper.eq(SdSonarBH::getStcd, stcd);
+ wrapper.set(SdSonarBH::getIsDeleted, 1);
+ wrapper.set(SdSonarBH::getDeleteUser, SecurityUtils.getCurrentUsername());
+ wrapper.set(SdSonarBH::getDeleteTime, new Date());
+ if (this.update(wrapper)) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, stcd, "删除", source);
+ count++;
+ }
+ }
+ return count > 0;
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdTeBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdTeBHServiceImpl.java
new file mode 100644
index 00000000..bd2e9767
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdTeBHServiceImpl.java
@@ -0,0 +1,64 @@
+package com.yfd.platform.qgc_base.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdTeBH;
+import com.yfd.platform.qgc_base.mapper.SdTeBHMapper;
+import com.yfd.platform.qgc_base.service.IMsOperationLogService;
+import com.yfd.platform.qgc_base.service.ISdTeBHService;
+import com.yfd.platform.utils.DataSourceRequestUtil;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Service
+public class SdTeBHServiceImpl extends ServiceImpl implements ISdTeBHService {
+
+ private static final String TABLE_NAME = "SD_TE_B_H";
+
+ @Resource
+ private IMsOperationLogService msOperationLogService;
+
+ @Override
+ public Page queryPageList(DataSourceRequest request) {
+ return DataSourceRequestUtil.executeQuery(request, SdTeBH.class, this);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(SdTeBH entity, String source) {
+ boolean result = this.save(entity);
+ if (result) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean update(SdTeBH entity, String source) {
+ SdTeBH before = this.getById(entity.getStcd());
+ boolean result = this.updateById(entity);
+ if (result && before != null) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean delete(List stcds, String source) {
+ if (stcds == null || stcds.isEmpty()) return false;
+ int count = 0;
+ for (String stcd : stcds) {
+ if (this.removeById(stcd)) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, stcd, "删除", source);
+ count++;
+ }
+ }
+ return count > 0;
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVaBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVaBHServiceImpl.java
new file mode 100644
index 00000000..ac272e4b
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVaBHServiceImpl.java
@@ -0,0 +1,72 @@
+package com.yfd.platform.qgc_base.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdVaBH;
+import com.yfd.platform.qgc_base.mapper.SdVaBHMapper;
+import com.yfd.platform.qgc_base.service.IMsOperationLogService;
+import com.yfd.platform.qgc_base.service.ISdVaBHService;
+import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.SecurityUtils;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class SdVaBHServiceImpl extends ServiceImpl implements ISdVaBHService {
+
+ private static final String TABLE_NAME = "SD_VA_B_H";
+
+ @Resource
+ private IMsOperationLogService msOperationLogService;
+
+ @Override
+ public Page queryPageList(DataSourceRequest request) {
+ return DataSourceRequestUtil.executeQuery(request, SdVaBH.class, this);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(SdVaBH entity, String source) {
+ boolean result = this.save(entity);
+ if (result) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean update(SdVaBH entity, String source) {
+ SdVaBH before = this.getById(entity.getStcd());
+ boolean result = this.updateById(entity);
+ if (result && before != null) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean delete(List stcds, String source) {
+ if (stcds == null || stcds.isEmpty()) return false;
+ int count = 0;
+ for (String stcd : stcds) {
+ LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
+ wrapper.eq(SdVaBH::getStcd, stcd);
+ wrapper.set(SdVaBH::getIsDeleted, 1);
+ wrapper.set(SdVaBH::getDeleteUser, SecurityUtils.getCurrentUsername());
+ wrapper.set(SdVaBH::getDeleteTime, new Date());
+ if (this.update(wrapper)) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, stcd, "删除", source);
+ count++;
+ }
+ }
+ return count > 0;
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVdinfoBServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVdinfoBServiceImpl.java
new file mode 100644
index 00000000..52bbbad3
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVdinfoBServiceImpl.java
@@ -0,0 +1,64 @@
+package com.yfd.platform.qgc_base.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdVdinfoB;
+import com.yfd.platform.qgc_base.mapper.SdVdinfoBMapper;
+import com.yfd.platform.qgc_base.service.IMsOperationLogService;
+import com.yfd.platform.qgc_base.service.ISdVdinfoBService;
+import com.yfd.platform.utils.DataSourceRequestUtil;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Service
+public class SdVdinfoBServiceImpl extends ServiceImpl implements ISdVdinfoBService {
+
+ private static final String TABLE_NAME = "SD_VDINFO_B";
+
+ @Resource
+ private IMsOperationLogService msOperationLogService;
+
+ @Override
+ public Page queryPageList(DataSourceRequest request) {
+ return DataSourceRequestUtil.executeQuery(request, SdVdinfoB.class, this);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(SdVdinfoB entity, String source) {
+ boolean result = this.save(entity);
+ if (result) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean update(SdVdinfoB entity, String source) {
+ SdVdinfoB before = this.getById(entity.getStcd());
+ boolean result = this.updateById(entity);
+ if (result && before != null) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean delete(List stcds, String source) {
+ if (stcds == null || stcds.isEmpty()) return false;
+ int count = 0;
+ for (String stcd : stcds) {
+ if (this.removeById(stcd)) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, stcd, "删除", source);
+ count++;
+ }
+ }
+ return count > 0;
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVpBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVpBHServiceImpl.java
new file mode 100644
index 00000000..7038e14d
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVpBHServiceImpl.java
@@ -0,0 +1,72 @@
+package com.yfd.platform.qgc_base.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdVpBH;
+import com.yfd.platform.qgc_base.mapper.SdVpBHMapper;
+import com.yfd.platform.qgc_base.service.IMsOperationLogService;
+import com.yfd.platform.qgc_base.service.ISdVpBHService;
+import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.SecurityUtils;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class SdVpBHServiceImpl extends ServiceImpl implements ISdVpBHService {
+
+ private static final String TABLE_NAME = "SD_VP_B_H";
+
+ @Resource
+ private IMsOperationLogService msOperationLogService;
+
+ @Override
+ public Page queryPageList(DataSourceRequest request) {
+ return DataSourceRequestUtil.executeQuery(request, SdVpBH.class, this);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(SdVpBH entity, String source) {
+ boolean result = this.save(entity);
+ if (result) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean update(SdVpBH entity, String source) {
+ SdVpBH before = this.getById(entity.getStcd());
+ boolean result = this.updateById(entity);
+ if (result && before != null) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean delete(List stcds, String source) {
+ if (stcds == null || stcds.isEmpty()) return false;
+ int count = 0;
+ for (String stcd : stcds) {
+ LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
+ wrapper.eq(SdVpBH::getStcd, stcd);
+ wrapper.set(SdVpBH::getIsDeleted, 1);
+ wrapper.set(SdVpBH::getDeleteUser, SecurityUtils.getCurrentUsername());
+ wrapper.set(SdVpBH::getDeleteTime, new Date());
+ if (this.update(wrapper)) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, stcd, "删除", source);
+ count++;
+ }
+ }
+ return count > 0;
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWeBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWeBHServiceImpl.java
new file mode 100644
index 00000000..5825e303
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWeBHServiceImpl.java
@@ -0,0 +1,64 @@
+package com.yfd.platform.qgc_base.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdWeBH;
+import com.yfd.platform.qgc_base.mapper.SdWeBHMapper;
+import com.yfd.platform.qgc_base.service.IMsOperationLogService;
+import com.yfd.platform.qgc_base.service.ISdWeBHService;
+import com.yfd.platform.utils.DataSourceRequestUtil;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Service
+public class SdWeBHServiceImpl extends ServiceImpl implements ISdWeBHService {
+
+ private static final String TABLE_NAME = "SD_WE_B_H";
+
+ @Resource
+ private IMsOperationLogService msOperationLogService;
+
+ @Override
+ public Page queryPageList(DataSourceRequest request) {
+ return DataSourceRequestUtil.executeQuery(request, SdWeBH.class, this);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(SdWeBH entity, String source) {
+ boolean result = this.save(entity);
+ if (result) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean update(SdWeBH entity, String source) {
+ SdWeBH before = this.getById(entity.getStcd());
+ boolean result = this.updateById(entity);
+ if (result && before != null) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean delete(List stcds, String source) {
+ if (stcds == null || stcds.isEmpty()) return false;
+ int count = 0;
+ for (String stcd : stcds) {
+ if (this.removeById(stcd)) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, stcd, "删除", source);
+ count++;
+ }
+ }
+ return count > 0;
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWqBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWqBHServiceImpl.java
new file mode 100644
index 00000000..2f1a9d1b
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWqBHServiceImpl.java
@@ -0,0 +1,72 @@
+package com.yfd.platform.qgc_base.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdWqBH;
+import com.yfd.platform.qgc_base.mapper.SdWqBHMapper;
+import com.yfd.platform.qgc_base.service.IMsOperationLogService;
+import com.yfd.platform.qgc_base.service.ISdWqBHService;
+import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.SecurityUtils;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class SdWqBHServiceImpl extends ServiceImpl implements ISdWqBHService {
+
+ private static final String TABLE_NAME = "SD_WQ_B_H";
+
+ @Resource
+ private IMsOperationLogService msOperationLogService;
+
+ @Override
+ public Page queryPageList(DataSourceRequest request) {
+ return DataSourceRequestUtil.executeQuery(request, SdWqBH.class, this);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(SdWqBH entity, String source) {
+ boolean result = this.save(entity);
+ if (result) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean update(SdWqBH entity, String source) {
+ SdWqBH before = this.getById(entity.getStcd());
+ boolean result = this.updateById(entity);
+ if (result && before != null) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean delete(List stcds, String source) {
+ if (stcds == null || stcds.isEmpty()) return false;
+ int count = 0;
+ for (String stcd : stcds) {
+ LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
+ wrapper.eq(SdWqBH::getStcd, stcd);
+ wrapper.set(SdWqBH::getIsDeleted, 1);
+ wrapper.set(SdWqBH::getDeleteUser, SecurityUtils.getCurrentUsername());
+ wrapper.set(SdWqBH::getDeleteTime, new Date());
+ if (this.update(wrapper)) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, stcd, "删除", source);
+ count++;
+ }
+ }
+ return count > 0;
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWtBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWtBHServiceImpl.java
new file mode 100644
index 00000000..42f4d7e8
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWtBHServiceImpl.java
@@ -0,0 +1,72 @@
+package com.yfd.platform.qgc_base.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yfd.platform.common.DataSourceRequest;
+import com.yfd.platform.qgc_base.domain.SdWtBH;
+import com.yfd.platform.qgc_base.mapper.SdWtBHMapper;
+import com.yfd.platform.qgc_base.service.IMsOperationLogService;
+import com.yfd.platform.qgc_base.service.ISdWtBHService;
+import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.SecurityUtils;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class SdWtBHServiceImpl extends ServiceImpl implements ISdWtBHService {
+
+ private static final String TABLE_NAME = "SD_WT_B_H";
+
+ @Resource
+ private IMsOperationLogService msOperationLogService;
+
+ @Override
+ public Page queryPageList(DataSourceRequest request) {
+ return DataSourceRequestUtil.executeQuery(request, SdWtBH.class, this);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean add(SdWtBH entity, String source) {
+ boolean result = this.save(entity);
+ if (result) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "新增", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean update(SdWtBH entity, String source) {
+ SdWtBH before = this.getById(entity.getStcd());
+ boolean result = this.updateById(entity);
+ if (result && before != null) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, entity.getStcd(), "修改", source);
+ }
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean delete(List stcds, String source) {
+ if (stcds == null || stcds.isEmpty()) return false;
+ int count = 0;
+ for (String stcd : stcds) {
+ LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
+ wrapper.eq(SdWtBH::getStcd, stcd);
+ wrapper.set(SdWtBH::getIsDeleted, 1);
+ wrapper.set(SdWtBH::getDeleteUser, SecurityUtils.getCurrentUsername());
+ wrapper.set(SdWtBH::getDeleteTime, new Date());
+ if (this.update(wrapper)) {
+ msOperationLogService.recordOperationLog(TABLE_NAME, stcd, "删除", source);
+ count++;
+ }
+ }
+ return count > 0;
+ }
+}
From c9ff984bd570ce295f7d7210f4c47df99df3903b Mon Sep 17 00:00:00 2001
From: tangwei
Date: Mon, 20 Jul 2026 14:50:46 +0800
Subject: [PATCH 03/23] =?UTF-8?q?fix:=20=E7=AB=99=E7=82=B9=E5=9F=BA?=
=?UTF-8?q?=E7=A1=80=E4=BF=A1=E6=81=AF=E6=A8=A1=E5=9D=97=E5=8A=9F=E8=83=BD?=
=?UTF-8?q?=E5=AD=97=E5=85=B8=E6=9F=A5=E8=AF=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../platform/qgc_base/domain/SdAiboxBH.java | 15 +++++++
.../platform/qgc_base/domain/SdArtsgBH.java | 11 ++++++
.../yfd/platform/qgc_base/domain/SdDwBH.java | 12 ++++++
.../yfd/platform/qgc_base/domain/SdEqBH.java | 12 ++++++
.../platform/qgc_base/domain/SdFbrdBH.java | 12 ++++++
.../platform/qgc_base/domain/SdFhbtBH.java | 6 +++
.../platform/qgc_base/domain/SdOpinfoBH.java | 12 ++++++
.../platform/qgc_base/domain/SdOtteBH.java | 12 ++++++
.../platform/qgc_base/domain/SdOtweBH.java | 12 ++++++
.../platform/qgc_base/domain/SdSonarBH.java | 15 +++++++
.../yfd/platform/qgc_base/domain/SdTeBH.java | 12 ++++++
.../yfd/platform/qgc_base/domain/SdVaBH.java | 11 ++++++
.../platform/qgc_base/domain/SdVdinfoB.java | 12 ++++++
.../yfd/platform/qgc_base/domain/SdVpBH.java | 13 +++++++
.../yfd/platform/qgc_base/domain/SdWeBH.java | 12 ++++++
.../yfd/platform/qgc_base/domain/SdWqBH.java | 18 +++++++++
.../yfd/platform/qgc_base/domain/SdWtBH.java | 18 +++++++++
.../service/impl/SdAiboxBHServiceImpl.java | 36 ++++++++++++++++-
.../service/impl/SdArtsgBHServiceImpl.java | 35 ++++++++++++++++-
.../service/impl/SdDwBHServiceImpl.java | 35 ++++++++++++++++-
.../service/impl/SdEqBHServiceImpl.java | 35 ++++++++++++++++-
.../service/impl/SdFbrdBHServiceImpl.java | 35 ++++++++++++++++-
.../service/impl/SdFhbtBHServiceImpl.java | 35 ++++++++++++++++-
.../service/impl/SdOpinfoBHServiceImpl.java | 35 ++++++++++++++++-
.../service/impl/SdOtteBHServiceImpl.java | 35 ++++++++++++++++-
.../service/impl/SdOtweBHServiceImpl.java | 34 +++++++++++++++-
.../service/impl/SdSonarBHServiceImpl.java | 35 ++++++++++++++++-
.../service/impl/SdTeBHServiceImpl.java | 34 +++++++++++++++-
.../service/impl/SdVaBHServiceImpl.java | 34 +++++++++++++++-
.../service/impl/SdVdinfoBServiceImpl.java | 34 +++++++++++++++-
.../service/impl/SdVpBHServiceImpl.java | 34 +++++++++++++++-
.../service/impl/SdWeBHServiceImpl.java | 36 ++++++++++++++++-
.../service/impl/SdWqBHServiceImpl.java | 36 ++++++++++++++++-
.../service/impl/SdWtBHServiceImpl.java | 39 ++++++++++++++++++-
34 files changed, 795 insertions(+), 17 deletions(-)
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAiboxBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAiboxBH.java
index 919760a2..4a4f8409 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAiboxBH.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdAiboxBH.java
@@ -37,6 +37,9 @@ public class SdAiboxBH implements Serializable {
*/
private String sttp;
+ @TableField(exist = false)
+ private String sttpName;
+
/**
* 数据时间
*/
@@ -80,6 +83,9 @@ public class SdAiboxBH implements Serializable {
*/
private Integer bldsttCode;
+ @TableField(exist = false)
+ private String bldsttCodeName;
+
/**
* 是否启用
*/
@@ -90,6 +96,9 @@ public class SdAiboxBH implements Serializable {
*/
private Integer dtin;
+ @TableField(exist = false)
+ private String dtinName;
+
/**
* 数据接入时间
*/
@@ -101,6 +110,9 @@ public class SdAiboxBH implements Serializable {
*/
private Integer mway;
+ @TableField(exist = false)
+ private String mwayName;
+
/**
* 站索引
*/
@@ -121,6 +133,9 @@ public class SdAiboxBH implements Serializable {
*/
private String baseId;
+ @TableField(exist = false)
+ private String baseName;
+
/**
* 所属基地流域编码
*/
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdArtsgBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdArtsgBH.java
index 0fdc10a6..ddf3b79c 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdArtsgBH.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdArtsgBH.java
@@ -37,6 +37,9 @@ public class SdArtsgBH implements Serializable {
*/
private String sttp;
+ @TableField(exist = false)
+ private String sttpName;
+
/**
* 数据时间
*/
@@ -73,6 +76,9 @@ public class SdArtsgBH implements Serializable {
*/
private Integer dtin;
+ @TableField(exist = false)
+ private String dtinName;
+
/**
* 数据接入时间
*/
@@ -94,6 +100,9 @@ public class SdArtsgBH implements Serializable {
*/
private String baseId;
+ @TableField(exist = false)
+ private String baseName;
+
/**
* 所属基地流域编码
*/
@@ -150,6 +159,8 @@ public class SdArtsgBH implements Serializable {
*/
private Integer bldsttCode;
+ private String bldsttCodeName;
+
/**
* 简介
*/
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdDwBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdDwBH.java
index a371b55a..e235d033 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdDwBH.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdDwBH.java
@@ -43,6 +43,9 @@ public class SdDwBH implements Serializable {
*/
private String sttp;
+ @TableField(exist = false)
+ private String sttpName;
+
/**
* 位置经度
*/
@@ -73,6 +76,9 @@ public class SdDwBH implements Serializable {
*/
private Integer dtin;
+ @TableField(exist = false)
+ private String dtinName;
+
/**
* 数据接入时间
*/
@@ -89,6 +95,9 @@ public class SdDwBH implements Serializable {
*/
private String baseId;
+ @TableField(exist = false)
+ private String baseName;
+
/**
* 所属基地流域编码
*/
@@ -140,6 +149,9 @@ public class SdDwBH implements Serializable {
*/
private Integer bldsttCode;
+ @TableField(exist = false)
+ private String bldsttCodeName;
+
/**
* 简介
*/
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdEqBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdEqBH.java
index 615d595a..b57e4ace 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdEqBH.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdEqBH.java
@@ -43,6 +43,9 @@ public class SdEqBH implements Serializable {
*/
private String sttp;
+ @TableField(exist = false)
+ private String sttpName;
+
/**
* 所属建设阶段
*/
@@ -78,6 +81,9 @@ public class SdEqBH implements Serializable {
*/
private Integer dtin;
+ @TableField(exist = false)
+ private String dtinName;
+
/**
* 数据接入时间
*/
@@ -99,6 +105,9 @@ public class SdEqBH implements Serializable {
*/
private String baseId;
+ @TableField(exist = false)
+ private String baseName;
+
/**
* 所属基地流域编码
*/
@@ -145,6 +154,9 @@ public class SdEqBH implements Serializable {
*/
private Integer bldsttCode;
+ @TableField(exist = false)
+ private String bldsttCodeName;
+
/**
* 简介
*/
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFbrdBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFbrdBH.java
index 5eb9dcc5..71d6acea 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFbrdBH.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFbrdBH.java
@@ -37,6 +37,9 @@ public class SdFbrdBH implements Serializable {
*/
private String sttp;
+ @TableField(exist = false)
+ private String sttpName;
+
/**
* 数据时间
*/
@@ -78,6 +81,9 @@ public class SdFbrdBH implements Serializable {
*/
private Integer dtin;
+ @TableField(exist = false)
+ private String dtinName;
+
/**
* 数据接入时间
*/
@@ -99,6 +105,9 @@ public class SdFbrdBH implements Serializable {
*/
private String baseId;
+ @TableField(exist = false)
+ private String baseName;
+
/**
* 所属基地流域编码
*/
@@ -150,6 +159,9 @@ public class SdFbrdBH implements Serializable {
*/
private Integer bldsttCode;
+ @TableField(exist = false)
+ private String bldsttCodeName;
+
/**
* 简介
*/
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFhbtBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFhbtBH.java
index 01caef6a..c7a7c0a5 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFhbtBH.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdFhbtBH.java
@@ -73,6 +73,9 @@ public class SdFhbtBH implements Serializable {
*/
private Integer dtin;
+ @TableField(exist = false)
+ private String dtinName;
+
/**
* 数据接入时间
*/
@@ -94,6 +97,9 @@ public class SdFhbtBH implements Serializable {
*/
private String baseId;
+ @TableField(exist = false)
+ private String baseName;
+
/**
* 所属基地流域编码
*/
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOpinfoBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOpinfoBH.java
index f4c7f644..56ed36be 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOpinfoBH.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOpinfoBH.java
@@ -20,6 +20,9 @@ public class SdOpinfoBH implements Serializable {
private String sttp;
+ @TableField(exist = false)
+ private String sttpName;
+
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date tm;
@@ -37,6 +40,9 @@ public class SdOpinfoBH implements Serializable {
private Integer dtin;
+ @TableField(exist = false)
+ private String dtinName;
+
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField("DTIN_TM")
private Date dtinTm;
@@ -49,6 +55,9 @@ public class SdOpinfoBH implements Serializable {
@TableField("BASE_ID")
private String baseId;
+ @TableField(exist = false)
+ private String baseName;
+
private String hbrvcd;
private String rvcd;
@@ -82,6 +91,9 @@ public class SdOpinfoBH implements Serializable {
@TableField("BLDSTT_CODE")
private Integer bldsttCode;
+ @TableField(exist = false)
+ private String bldsttCodeName;
+
private String introduce;
private String logo;
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtteBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtteBH.java
index 72cdd511..9ada1d4a 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtteBH.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtteBH.java
@@ -20,6 +20,9 @@ public class SdOtteBH implements Serializable {
private String sttp;
+ @TableField(exist = false)
+ private String sttpName;
+
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date tm;
@@ -37,6 +40,9 @@ public class SdOtteBH implements Serializable {
private Integer dtin;
+ @TableField(exist = false)
+ private String dtinName;
+
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField("DTIN_TM")
private Date dtinTm;
@@ -49,6 +55,9 @@ public class SdOtteBH implements Serializable {
@TableField("BASE_ID")
private String baseId;
+ @TableField(exist = false)
+ private String baseName;
+
private String hbrvcd;
private String rvcd;
@@ -82,6 +91,9 @@ public class SdOtteBH implements Serializable {
@TableField("BLDSTT_CODE")
private Integer bldsttCode;
+ @TableField(exist = false)
+ private String bldsttCodeName;
+
private String introduce;
private String logo;
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtweBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtweBH.java
index c5aa7e0a..2dc6e874 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtweBH.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdOtweBH.java
@@ -20,6 +20,9 @@ public class SdOtweBH implements Serializable {
private String sttp;
+ @TableField(exist = false)
+ private String sttpName;
+
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date tm;
@@ -37,6 +40,9 @@ public class SdOtweBH implements Serializable {
private Integer dtin;
+ @TableField(exist = false)
+ private String dtinName;
+
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField("DTIN_TM")
private Date dtinTm;
@@ -49,6 +55,9 @@ public class SdOtweBH implements Serializable {
@TableField("BASE_ID")
private String baseId;
+ @TableField(exist = false)
+ private String baseName;
+
private String hbrvcd;
private String rvcd;
@@ -82,6 +91,9 @@ public class SdOtweBH implements Serializable {
@TableField("BLDSTT_CODE")
private Integer bldsttCode;
+ @TableField(exist = false)
+ private String bldsttCodeName;
+
private String introduce;
private String logo;
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdSonarBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdSonarBH.java
index 51724149..507a4570 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdSonarBH.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdSonarBH.java
@@ -22,6 +22,9 @@ public class SdSonarBH implements Serializable {
private String sttp;
+ @TableField(exist = false)
+ private String sttpName;
+
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date tm;
@@ -44,16 +47,25 @@ public class SdSonarBH implements Serializable {
@TableField("BLDSTT_CODE")
private Integer bldsttCode;
+ @TableField(exist = false)
+ private String bldsttCodeName;
+
private Integer usfl;
private Integer dtin;
+ @TableField(exist = false)
+ private String dtinName;
+
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField("DTIN_TM")
private Date dtinTm;
private Integer mway;
+ @TableField(exist = false)
+ private String mwayName;
+
private String stindx;
@TableField("ORDER_INDEX")
@@ -64,6 +76,9 @@ public class SdSonarBH implements Serializable {
@TableField("BASE_ID")
private String baseId;
+ @TableField(exist = false)
+ private String baseName;
+
private String hbrvcd;
private String rvcd;
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdTeBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdTeBH.java
index 3aafa40d..8b54bd3a 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdTeBH.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdTeBH.java
@@ -20,6 +20,9 @@ public class SdTeBH implements Serializable {
private String sttp;
+ @TableField(exist = false)
+ private String sttpName;
+
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date tm;
@@ -35,6 +38,9 @@ public class SdTeBH implements Serializable {
private Integer dtin;
+ @TableField(exist = false)
+ private String dtinName;
+
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField("DTIN_TM")
private Date dtinTm;
@@ -47,6 +53,9 @@ public class SdTeBH implements Serializable {
@TableField("BASE_ID")
private String baseId;
+ @TableField(exist = false)
+ private String baseName;
+
private String hbrvcd;
private String rvcd;
@@ -80,6 +89,9 @@ public class SdTeBH implements Serializable {
@TableField("BLDSTT_CODE")
private Integer bldsttCode;
+ @TableField(exist = false)
+ private String bldsttCodeName;
+
private String introduce;
private String logo;
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVaBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVaBH.java
index 2a22b642..536c56b1 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVaBH.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVaBH.java
@@ -20,6 +20,9 @@ public class SdVaBH implements Serializable {
private String sttp;
+ @TableField(exist = false)
+ private String sttpName;
+
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date tm;
@@ -36,6 +39,8 @@ public class SdVaBH implements Serializable {
private Integer usfl;
private Integer dtin;
+ @TableField(exist = false)
+ private String dtinName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField("DTIN_TM")
@@ -49,6 +54,9 @@ public class SdVaBH implements Serializable {
@TableField("BASE_ID")
private String baseId;
+ @TableField(exist = false)
+ private String baseName;
+
private String hbrvcd;
private String rstcdmap;
@@ -80,6 +88,9 @@ public class SdVaBH implements Serializable {
@TableField("BLDSTT_CODE")
private Integer bldsttCode;
+ @TableField(exist = false)
+ private String bldsttCodeName;
+
private String introduce;
private String logo;
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVdinfoB.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVdinfoB.java
index 201f6a8e..900b68bd 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVdinfoB.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVdinfoB.java
@@ -28,6 +28,9 @@ public class SdVdinfoB implements Serializable {
private String sttp;
+ @TableField(exist = false)
+ private String sttpName;
+
private BigDecimal lgtd;
private BigDecimal lttd;
@@ -53,6 +56,9 @@ public class SdVdinfoB implements Serializable {
@TableField("BASE_ID")
private String baseId;
+ @TableField(exist = false)
+ private String baseName;
+
private String hbrvcd;
private String fhstcd;
@@ -69,10 +75,16 @@ public class SdVdinfoB implements Serializable {
@TableField("BLDSTT_CODE")
private Integer bldsttCode;
+ @TableField(exist = false)
+ private String bldsttCodeName;
+
private Integer usfl;
private Integer dtin;
+ @TableField(exist = false)
+ private String dtinName;
+
@TableField("DTIN_SRC")
private String dtinSrc;
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVpBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVpBH.java
index 97913f9b..6e8f9c2b 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVpBH.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdVpBH.java
@@ -23,6 +23,10 @@ public class SdVpBH implements Serializable {
private String sttp;
+ @TableField(exist = false)
+ private String sttpName;
+
+
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date tm;
@@ -40,6 +44,9 @@ public class SdVpBH implements Serializable {
private Integer dtin;
+ @TableField(exist = false)
+ private String dtinName;
+
@TableField("DTIN_TM")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date dtinTm;
@@ -52,6 +59,9 @@ public class SdVpBH implements Serializable {
@TableField("BASE_ID")
private String baseId;
+ @TableField(exist = false)
+ private String baseName;
+
private String hbrvcd;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@@ -75,6 +85,9 @@ public class SdVpBH implements Serializable {
@TableField("BLDSTT_CODE")
private Integer bldsttCode;
+ @TableField(exist = false)
+ private String bldsttCodeName;
+
private String introduce;
private String logo;
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWeBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWeBH.java
index 01e0795f..396429f1 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWeBH.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWeBH.java
@@ -23,6 +23,9 @@ public class SdWeBH implements Serializable {
private String sttp;
+ @TableField(exist = false)
+ private String sttpName;
+
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date tm;
@@ -38,6 +41,9 @@ public class SdWeBH implements Serializable {
private Integer dtin;
+ @TableField(exist = false)
+ private String dtinName;
+
@TableField("DTIN_TM")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date dtinTm;
@@ -50,6 +56,9 @@ public class SdWeBH implements Serializable {
@TableField("BASE_ID")
private String baseId;
+ @TableField(exist = false)
+ private String baseName;
+
private String hbrvcd;
private String rvcd;
@@ -77,6 +86,9 @@ public class SdWeBH implements Serializable {
@TableField("BLDSTT_CODE")
private Integer bldsttCode;
+ @TableField(exist = false)
+ private String bldsttCodeName;
+
private String introduce;
private String logo;
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWqBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWqBH.java
index 43acd821..9f8c3591 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWqBH.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWqBH.java
@@ -26,6 +26,9 @@ public class SdWqBH implements Serializable {
private String sttp;
+ @TableField(exist = false)
+ private String sttpName;
+
private BigDecimal lgtd;
private BigDecimal lttd;
@@ -47,6 +50,9 @@ public class SdWqBH implements Serializable {
@TableField("BLDSTT_CODE")
private Integer bldsttCode;
+ @TableField(exist = false)
+ private String bldsttCodeName;
+
private String introduce;
private String logo;
@@ -57,18 +63,27 @@ public class SdWqBH implements Serializable {
private Integer dtin;
+ @TableField(exist = false)
+ private String dtinName;
+
@TableField("DTIN_SRC")
private String dtinSrc;
@TableField("DTIN_TYPE")
private Integer dtinType;
+ @TableField(exist = false)
+ private String dtinTypeName;
+
@TableField("DTIN_TM")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date dtinTm;
private Integer mway;
+ @TableField(exist = false)
+ private Integer mwayName;
+
private String stindx;
@TableField("ORDER_INDEX")
@@ -79,6 +94,9 @@ public class SdWqBH implements Serializable {
@TableField("BASE_ID")
private String baseId;
+ @TableField(exist = false)
+ private String baseName;
+
private String hbrvcd;
private String fhstcd;
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWtBH.java b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWtBH.java
index 4dcad49f..07f0be4e 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWtBH.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/domain/SdWtBH.java
@@ -26,6 +26,9 @@ public class SdWtBH implements Serializable {
private String sttp;
+ @TableField(exist = false)
+ private String sttpName;
+
private BigDecimal lgtd;
private BigDecimal lttd;
@@ -62,6 +65,9 @@ public class SdWtBH implements Serializable {
@TableField("BLDSTT_CODE")
private Integer bldsttCode;
+ @TableField(exist = false)
+ private String bldsttCodeName;
+
private BigDecimal inv;
private Integer invinmn;
@@ -76,18 +82,27 @@ public class SdWtBH implements Serializable {
private Integer dtin;
+ @TableField(exist = false)
+ private String dtinName;
+
@TableField("DTIN_SRC")
private String dtinSrc;
@TableField("DTIN_TYPE")
private Integer dtinType;
+ @TableField(exist = false)
+ private String dtinTypeName;
+
@TableField("DTIN_TM")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date dtinTm;
private Integer mway;
+ @TableField(exist = false)
+ private String mwayName;
+
private String stindx;
@TableField("ORDER_INDEX")
@@ -140,6 +155,9 @@ public class SdWtBH implements Serializable {
@TableField("BASE_ID")
private String baseId;
+ @TableField(exist = false)
+ private String baseName;
+
private String hbrvcd;
@TableField("WARN_STATE")
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdAiboxBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdAiboxBHServiceImpl.java
index fd43b02a..525f718f 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdAiboxBHServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdAiboxBHServiceImpl.java
@@ -8,12 +8,15 @@ import com.yfd.platform.qgc_base.domain.SdAiboxBH;
import com.yfd.platform.qgc_base.mapper.SdAiboxBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdAiboxBHService;
+import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -25,9 +28,40 @@ public class SdAiboxBHServiceImpl extends ServiceImpl
+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList,
+ * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList)
+ * 即可自动将 code 字段转为对应的 name 字段。
+ *
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+ static {
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("mway").modifyProperty("mwayName").dictType("STATIC").dictSource("MWAY").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+
+ }
+
@Override
public Page queryPageList(DataSourceRequest request) {
- return DataSourceRequestUtil.executeQuery(request, SdAiboxBH.class, this);
+ Page sdAiboxBHPage = DataSourceRequestUtil.executeQuery(request, SdAiboxBH.class, this);
+ dictCodeToNameConverter.convertCodeToName(sdAiboxBHPage, CODE_TO_NAME_META_LIST);
+ return sdAiboxBHPage;
}
@Override
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdArtsgBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdArtsgBHServiceImpl.java
index 5c73425b..47f0b135 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdArtsgBHServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdArtsgBHServiceImpl.java
@@ -7,11 +7,14 @@ import com.yfd.platform.qgc_base.domain.SdArtsgBH;
import com.yfd.platform.qgc_base.mapper.SdArtsgBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdArtsgBHService;
+import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.DictCodeToNameConverter;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.List;
@Service
@@ -19,12 +22,42 @@ public class SdArtsgBHServiceImpl extends ServiceImpl
+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList,
+ * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList)
+ * 即可自动将 code 字段转为对应的 name 字段。
+ *
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+ static {
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+
+ }
+
@Resource
private IMsOperationLogService msOperationLogService;
@Override
public Page queryPageList(DataSourceRequest request) {
- return DataSourceRequestUtil.executeQuery(request, SdArtsgBH.class, this);
+ Page sdArtsgBHPage = DataSourceRequestUtil.executeQuery(request, SdArtsgBH.class, this);
+ dictCodeToNameConverter.convertCodeToName(sdArtsgBHPage, CODE_TO_NAME_META_LIST);
+ return sdArtsgBHPage;
}
@Override
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdDwBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdDwBHServiceImpl.java
index 5c7e8799..f2fbe57d 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdDwBHServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdDwBHServiceImpl.java
@@ -8,12 +8,15 @@ import com.yfd.platform.qgc_base.domain.SdDwBH;
import com.yfd.platform.qgc_base.mapper.SdDwBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdDwBHService;
+import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -25,9 +28,39 @@ public class SdDwBHServiceImpl extends ServiceImpl impleme
@Resource
private IMsOperationLogService msOperationLogService;
+ @Resource
+ private DictCodeToNameConverter dictCodeToNameConverter;
+
+ /**
+ * 代码转名称元数据配置列表(静态初始化)
+ *
+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList,
+ * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList)
+ * 即可自动将 code 字段转为对应的 name 字段。
+ *
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+ static {
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+
+ }
+
@Override
public Page queryPageList(DataSourceRequest request) {
- return DataSourceRequestUtil.executeQuery(request, SdDwBH.class, this);
+ Page sdDwBHPage = DataSourceRequestUtil.executeQuery(request, SdDwBH.class, this);
+ dictCodeToNameConverter.convertCodeToName(sdDwBHPage, CODE_TO_NAME_META_LIST);
+ return sdDwBHPage;
}
@Override
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEqBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEqBHServiceImpl.java
index 5b1ec0b4..91e4793e 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEqBHServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdEqBHServiceImpl.java
@@ -8,12 +8,15 @@ import com.yfd.platform.qgc_base.domain.SdEqBH;
import com.yfd.platform.qgc_base.mapper.SdEqBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdEqBHService;
+import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -25,9 +28,39 @@ public class SdEqBHServiceImpl extends ServiceImpl impleme
@Resource
private IMsOperationLogService msOperationLogService;
+ @Resource
+ private DictCodeToNameConverter dictCodeToNameConverter;
+
+ /**
+ * 代码转名称元数据配置列表(静态初始化)
+ *
+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList,
+ * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList)
+ * 即可自动将 code 字段转为对应的 name 字段。
+ *
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+ static {
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+
+ }
+
@Override
public Page queryPageList(DataSourceRequest request) {
- return DataSourceRequestUtil.executeQuery(request, SdEqBH.class, this);
+ Page sdEqBHPage = DataSourceRequestUtil.executeQuery(request, SdEqBH.class, this);
+ dictCodeToNameConverter.convertCodeToName(sdEqBHPage, CODE_TO_NAME_META_LIST);
+ return sdEqBHPage;
}
@Override
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFbrdBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFbrdBHServiceImpl.java
index e6027445..fe3134c8 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFbrdBHServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFbrdBHServiceImpl.java
@@ -7,11 +7,14 @@ import com.yfd.platform.qgc_base.domain.SdFbrdBH;
import com.yfd.platform.qgc_base.mapper.SdFbrdBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdFbrdBHService;
+import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.DictCodeToNameConverter;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.List;
@Service
@@ -22,9 +25,39 @@ public class SdFbrdBHServiceImpl extends ServiceImpl i
@Resource
private IMsOperationLogService msOperationLogService;
+ @Resource
+ private DictCodeToNameConverter dictCodeToNameConverter;
+
+ /**
+ * 代码转名称元数据配置列表(静态初始化)
+ *
+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList,
+ * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList)
+ * 即可自动将 code 字段转为对应的 name 字段。
+ *
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+ static {
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+
+ }
+
@Override
public Page queryPageList(DataSourceRequest request) {
- return DataSourceRequestUtil.executeQuery(request, SdFbrdBH.class, this);
+ Page sdFbrdBHPage = DataSourceRequestUtil.executeQuery(request, SdFbrdBH.class, this);
+ dictCodeToNameConverter.convertCodeToName(sdFbrdBHPage, CODE_TO_NAME_META_LIST);
+ return sdFbrdBHPage;
}
@Override
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFhbtBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFhbtBHServiceImpl.java
index b22d1ee9..2d6f26fa 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFhbtBHServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdFhbtBHServiceImpl.java
@@ -8,12 +8,15 @@ import com.yfd.platform.qgc_base.domain.SdFhbtBH;
import com.yfd.platform.qgc_base.mapper.SdFhbtBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdFhbtBHService;
+import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -25,9 +28,39 @@ public class SdFhbtBHServiceImpl extends ServiceImpl i
@Resource
private IMsOperationLogService msOperationLogService;
+ @Resource
+ private DictCodeToNameConverter dictCodeToNameConverter;
+
+ /**
+ * 代码转名称元数据配置列表(静态初始化)
+ *
+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList,
+ * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList)
+ * 即可自动将 code 字段转为对应的 name 字段。
+ *
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+ static {
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+
+ }
+
@Override
public Page queryPageList(DataSourceRequest request) {
- return DataSourceRequestUtil.executeQuery(request, SdFhbtBH.class, this);
+ Page sdFhbtBHPage = DataSourceRequestUtil.executeQuery(request, SdFhbtBH.class, this);
+ dictCodeToNameConverter.convertCodeToName(sdFhbtBHPage, CODE_TO_NAME_META_LIST);
+ return sdFhbtBHPage;
}
@Override
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOpinfoBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOpinfoBHServiceImpl.java
index 3ccad258..fb3e0d02 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOpinfoBHServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOpinfoBHServiceImpl.java
@@ -8,12 +8,15 @@ import com.yfd.platform.qgc_base.domain.SdOpinfoBH;
import com.yfd.platform.qgc_base.mapper.SdOpinfoBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdOpinfoBHService;
+import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -25,9 +28,39 @@ public class SdOpinfoBHServiceImpl extends ServiceImpl
+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList,
+ * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList)
+ * 即可自动将 code 字段转为对应的 name 字段。
+ *
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+ static {
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+
+ }
+
@Override
public Page queryPageList(DataSourceRequest request) {
- return DataSourceRequestUtil.executeQuery(request, SdOpinfoBH.class, this);
+ Page sdOpinfoBHPage = DataSourceRequestUtil.executeQuery(request, SdOpinfoBH.class, this);
+ dictCodeToNameConverter.convertCodeToName(sdOpinfoBHPage, CODE_TO_NAME_META_LIST);
+ return sdOpinfoBHPage;
}
@Override
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtteBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtteBHServiceImpl.java
index 1499673b..14553f59 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtteBHServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtteBHServiceImpl.java
@@ -7,11 +7,14 @@ import com.yfd.platform.qgc_base.domain.SdOtteBH;
import com.yfd.platform.qgc_base.mapper.SdOtteBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdOtteBHService;
+import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.DictCodeToNameConverter;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.List;
@Service
@@ -22,9 +25,39 @@ public class SdOtteBHServiceImpl extends ServiceImpl i
@Resource
private IMsOperationLogService msOperationLogService;
+ @Resource
+ private DictCodeToNameConverter dictCodeToNameConverter;
+
+ /**
+ * 代码转名称元数据配置列表(静态初始化)
+ *
+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList,
+ * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList)
+ * 即可自动将 code 字段转为对应的 name 字段。
+ *
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+ static {
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+
+ }
+
@Override
public Page queryPageList(DataSourceRequest request) {
- return DataSourceRequestUtil.executeQuery(request, SdOtteBH.class, this);
+ Page sdOtteBHPage = DataSourceRequestUtil.executeQuery(request, SdOtteBH.class, this);
+ dictCodeToNameConverter.convertCodeToName(sdOtteBHPage, CODE_TO_NAME_META_LIST);
+ return sdOtteBHPage;
}
@Override
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtweBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtweBHServiceImpl.java
index 0b89a0b2..94deb103 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtweBHServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdOtweBHServiceImpl.java
@@ -7,11 +7,14 @@ import com.yfd.platform.qgc_base.domain.SdOtweBH;
import com.yfd.platform.qgc_base.mapper.SdOtweBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdOtweBHService;
+import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.DictCodeToNameConverter;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.List;
@Service
@@ -21,10 +24,39 @@ public class SdOtweBHServiceImpl extends ServiceImpl i
@Resource
private IMsOperationLogService msOperationLogService;
+ @Resource
+ private DictCodeToNameConverter dictCodeToNameConverter;
+
+ /**
+ * 代码转名称元数据配置列表(静态初始化)
+ *
+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList,
+ * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList)
+ * 即可自动将 code 字段转为对应的 name 字段。
+ *
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+ static {
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+
+ }
@Override
public Page queryPageList(DataSourceRequest request) {
- return DataSourceRequestUtil.executeQuery(request, SdOtweBH.class, this);
+ Page sdOtweBHPage = DataSourceRequestUtil.executeQuery(request, SdOtweBH.class, this);
+ dictCodeToNameConverter.convertCodeToName(sdOtweBHPage, CODE_TO_NAME_META_LIST);
+ return sdOtweBHPage;
}
@Override
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdSonarBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdSonarBHServiceImpl.java
index 4a535f49..80827689 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdSonarBHServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdSonarBHServiceImpl.java
@@ -8,12 +8,15 @@ import com.yfd.platform.qgc_base.domain.SdSonarBH;
import com.yfd.platform.qgc_base.mapper.SdSonarBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdSonarBHService;
+import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -24,10 +27,40 @@ public class SdSonarBHServiceImpl extends ServiceImpl
+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList,
+ * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList)
+ * 即可自动将 code 字段转为对应的 name 字段。
+ *
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+ static {
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("mway").modifyProperty("mwayName").dictType("STATIC").dictSource("MWAY").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+
+ }
@Override
public Page queryPageList(DataSourceRequest request) {
- return DataSourceRequestUtil.executeQuery(request, SdSonarBH.class, this);
+ Page sdSonarBHPage = DataSourceRequestUtil.executeQuery(request, SdSonarBH.class, this);
+ dictCodeToNameConverter.convertCodeToName(sdSonarBHPage, CODE_TO_NAME_META_LIST);
+ return sdSonarBHPage;
}
@Override
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdTeBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdTeBHServiceImpl.java
index bd2e9767..1c30c4ba 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdTeBHServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdTeBHServiceImpl.java
@@ -7,11 +7,14 @@ import com.yfd.platform.qgc_base.domain.SdTeBH;
import com.yfd.platform.qgc_base.mapper.SdTeBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdTeBHService;
+import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.DictCodeToNameConverter;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.List;
@Service
@@ -21,10 +24,39 @@ public class SdTeBHServiceImpl extends ServiceImpl impleme
@Resource
private IMsOperationLogService msOperationLogService;
+ @Resource
+ private DictCodeToNameConverter dictCodeToNameConverter;
+
+ /**
+ * 代码转名称元数据配置列表(静态初始化)
+ *
+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList,
+ * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList)
+ * 即可自动将 code 字段转为对应的 name 字段。
+ *
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+ static {
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+
+ }
@Override
public Page queryPageList(DataSourceRequest request) {
- return DataSourceRequestUtil.executeQuery(request, SdTeBH.class, this);
+ Page sdTeBHPage = DataSourceRequestUtil.executeQuery(request, SdTeBH.class, this);
+ dictCodeToNameConverter.convertCodeToName(sdTeBHPage, CODE_TO_NAME_META_LIST);
+ return sdTeBHPage;
}
@Override
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVaBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVaBHServiceImpl.java
index ac272e4b..b7868d86 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVaBHServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVaBHServiceImpl.java
@@ -8,12 +8,15 @@ import com.yfd.platform.qgc_base.domain.SdVaBH;
import com.yfd.platform.qgc_base.mapper.SdVaBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdVaBHService;
+import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -24,10 +27,39 @@ public class SdVaBHServiceImpl extends ServiceImpl impleme
@Resource
private IMsOperationLogService msOperationLogService;
+ @Resource
+ private DictCodeToNameConverter dictCodeToNameConverter;
+
+ /**
+ * 代码转名称元数据配置列表(静态初始化)
+ *
+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList,
+ * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList)
+ * 即可自动将 code 字段转为对应的 name 字段。
+ *
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+ static {
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+
+ }
@Override
public Page queryPageList(DataSourceRequest request) {
- return DataSourceRequestUtil.executeQuery(request, SdVaBH.class, this);
+ Page sdVaBHPage = DataSourceRequestUtil.executeQuery(request, SdVaBH.class, this);
+ dictCodeToNameConverter.convertCodeToName(sdVaBHPage, CODE_TO_NAME_META_LIST);
+ return sdVaBHPage;
}
@Override
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVdinfoBServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVdinfoBServiceImpl.java
index 52bbbad3..d8cf051d 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVdinfoBServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVdinfoBServiceImpl.java
@@ -7,11 +7,14 @@ import com.yfd.platform.qgc_base.domain.SdVdinfoB;
import com.yfd.platform.qgc_base.mapper.SdVdinfoBMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdVdinfoBService;
+import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.DictCodeToNameConverter;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.List;
@Service
@@ -21,10 +24,39 @@ public class SdVdinfoBServiceImpl extends ServiceImpl
+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList,
+ * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList)
+ * 即可自动将 code 字段转为对应的 name 字段。
+ *
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+ static {
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+
+ }
@Override
public Page queryPageList(DataSourceRequest request) {
- return DataSourceRequestUtil.executeQuery(request, SdVdinfoB.class, this);
+ Page sdVdinfoBPage = DataSourceRequestUtil.executeQuery(request, SdVdinfoB.class, this);
+ dictCodeToNameConverter.convertCodeToName(sdVdinfoBPage, CODE_TO_NAME_META_LIST);
+ return sdVdinfoBPage;
}
@Override
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVpBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVpBHServiceImpl.java
index 7038e14d..f52dee58 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVpBHServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdVpBHServiceImpl.java
@@ -8,12 +8,15 @@ import com.yfd.platform.qgc_base.domain.SdVpBH;
import com.yfd.platform.qgc_base.mapper.SdVpBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdVpBHService;
+import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -24,10 +27,39 @@ public class SdVpBHServiceImpl extends ServiceImpl impleme
@Resource
private IMsOperationLogService msOperationLogService;
+ @Resource
+ private DictCodeToNameConverter dictCodeToNameConverter;
+
+ /**
+ * 代码转名称元数据配置列表(静态初始化)
+ *
+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList,
+ * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList)
+ * 即可自动将 code 字段转为对应的 name 字段。
+ *
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+ static {
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+
+ }
@Override
public Page queryPageList(DataSourceRequest request) {
- return DataSourceRequestUtil.executeQuery(request, SdVpBH.class, this);
+ Page sdVpBHPage = DataSourceRequestUtil.executeQuery(request, SdVpBH.class, this);
+ dictCodeToNameConverter.convertCodeToName(sdVpBHPage, CODE_TO_NAME_META_LIST);
+ return sdVpBHPage;
}
@Override
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWeBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWeBHServiceImpl.java
index 5825e303..abb7d382 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWeBHServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWeBHServiceImpl.java
@@ -7,11 +7,14 @@ import com.yfd.platform.qgc_base.domain.SdWeBH;
import com.yfd.platform.qgc_base.mapper.SdWeBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdWeBHService;
+import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.DictCodeToNameConverter;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.List;
@Service
@@ -22,9 +25,40 @@ public class SdWeBHServiceImpl extends ServiceImpl impleme
@Resource
private IMsOperationLogService msOperationLogService;
+ @Resource
+ private DictCodeToNameConverter dictCodeToNameConverter;
+
+ /**
+ * 代码转名称元数据配置列表(静态初始化)
+ *
+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList,
+ * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList)
+ * 即可自动将 code 字段转为对应的 name 字段。
+ *
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+ static {
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("mway").modifyProperty("mwayName").dictType("STATIC").dictSource("MWAY").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build());
+// CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+
+ }
+
@Override
public Page queryPageList(DataSourceRequest request) {
- return DataSourceRequestUtil.executeQuery(request, SdWeBH.class, this);
+ Page sdWeBHPage = DataSourceRequestUtil.executeQuery(request, SdWeBH.class, this);
+ dictCodeToNameConverter.convertCodeToName(sdWeBHPage, CODE_TO_NAME_META_LIST);
+ return sdWeBHPage;
}
@Override
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWqBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWqBHServiceImpl.java
index 2f1a9d1b..d52e2640 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWqBHServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWqBHServiceImpl.java
@@ -8,12 +8,15 @@ import com.yfd.platform.qgc_base.domain.SdWqBH;
import com.yfd.platform.qgc_base.mapper.SdWqBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdWqBHService;
+import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -25,9 +28,40 @@ public class SdWqBHServiceImpl extends ServiceImpl impleme
@Resource
private IMsOperationLogService msOperationLogService;
+ @Resource
+ private DictCodeToNameConverter dictCodeToNameConverter;
+
+ /**
+ * 代码转名称元数据配置列表(静态初始化)
+ *
+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList,
+ * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList)
+ * 即可自动将 code 字段转为对应的 name 字段。
+ *
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+ static {
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("mway").modifyProperty("mwayName").dictType("STATIC").dictSource("MWAY").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+
+ }
+
@Override
public Page queryPageList(DataSourceRequest request) {
- return DataSourceRequestUtil.executeQuery(request, SdWqBH.class, this);
+ Page sdWqBHPage = DataSourceRequestUtil.executeQuery(request, SdWqBH.class, this);
+ dictCodeToNameConverter.convertCodeToName(sdWqBHPage, CODE_TO_NAME_META_LIST);
+ return sdWqBHPage;
}
@Override
diff --git a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWtBHServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWtBHServiceImpl.java
index 42f4d7e8..c112084a 100644
--- a/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWtBHServiceImpl.java
+++ b/backend/src/main/java/com/yfd/platform/qgc_base/service/impl/SdWtBHServiceImpl.java
@@ -1,5 +1,6 @@
package com.yfd.platform.qgc_base.service.impl;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -8,12 +9,15 @@ import com.yfd.platform.qgc_base.domain.SdWtBH;
import com.yfd.platform.qgc_base.mapper.SdWtBHMapper;
import com.yfd.platform.qgc_base.service.IMsOperationLogService;
import com.yfd.platform.qgc_base.service.ISdWtBHService;
+import com.yfd.platform.utils.CodeToNameMetadataBo;
import com.yfd.platform.utils.DataSourceRequestUtil;
+import com.yfd.platform.utils.DictCodeToNameConverter;
import com.yfd.platform.utils.SecurityUtils;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -25,9 +29,42 @@ public class SdWtBHServiceImpl extends ServiceImpl impleme
@Resource
private IMsOperationLogService msOperationLogService;
+
+ @Resource
+ private DictCodeToNameConverter dictCodeToNameConverter;
+
+ /**
+ * 代码转名称元数据配置列表(静态初始化)
+ *
+ * 每个模块的 ServiceImpl 中可按需定义自己的 codeToNameMetadataBoList,
+ * 在查询方法返回前调用 dictCodeToNameConverter.convertCodeToName(voList, codeToNameMetadataBoList)
+ * 即可自动将 code 字段转为对应的 name 字段。
+ *
+ *
+ *
+ * 使用示例:
+ * // 在查询方法末尾调用:
+ * dictCodeToNameConverter.convertCodeToName(voList, CODE_TO_NAME_META_LIST);
+ *
+ */
+ private static final List CODE_TO_NAME_META_LIST = new ArrayList<>();
+
+ static {
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtin").modifyProperty("dtinName").dictType("STATIC").dictSource("DTIN").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("mway").modifyProperty("mwayName").dictType("STATIC").dictSource("MWAY").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("bldsttCode").modifyProperty("bldsttCodeName").dictType("STATIC").dictSource("BLDSTT_CODE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("dtinType").modifyProperty("dtinTypeName").dictType("STATIC").dictSource("DTIN_TYPE").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("sttp").modifyProperty("sttpName").dictType("DYNAMIC").dictSource("SD_STTP_B").codeColumn("STTP_CODE").nameColumn("STTP_NAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+ CODE_TO_NAME_META_LIST.add(CodeToNameMetadataBo.builder().codeProperty("baseId").modifyProperty("baseName").dictType("DYNAMIC").dictSource("SD_HYDROBASE").codeColumn("BASEID").nameColumn("BASENAME").filter("NVL(IS_DELETED, 0) = 0 ").build());
+
+ }
+
+
@Override
public Page queryPageList(DataSourceRequest request) {
- return DataSourceRequestUtil.executeQuery(request, SdWtBH.class, this);
+ Page sdWtBHPage = DataSourceRequestUtil.executeQuery(request, SdWtBH.class, this);
+ dictCodeToNameConverter.convertCodeToName(sdWtBHPage, CODE_TO_NAME_META_LIST);
+ return sdWtBHPage;
}
@Override
From bbac60655d206da43fdfe5f726b98b3978840603 Mon Sep 17 00:00:00 2001
From: tangwei
Date: Mon, 20 Jul 2026 15:41:37 +0800
Subject: [PATCH 04/23] =?UTF-8?q?feat:=20=E7=94=A8=E6=88=B7=E8=87=AA?=
=?UTF-8?q?=E5=AE=9A=E4=B9=89=E7=AD=9B=E9=80=89=E5=88=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../yfd/platform/config/SwaggerConfig.java | 8 ++
.../controller/MsUsercolumnBController.java | 44 ++++++++
.../cuscolumn/domain/MsColumncfgB.java | 90 +++++++++++++++
.../cuscolumn/domain/MsUsercolumnB.java | 105 ++++++++++++++++++
.../cuscolumn/mapper/MsColumncfgBMapper.java | 9 ++
.../cuscolumn/mapper/MsUsercolumnBMapper.java | 29 +++++
.../service/IMsUsercolumnBService.java | 19 ++++
.../impl/MsUsercolumnBServiceImpl.java | 59 ++++++++++
.../mapper/system/MsUsercolumnBMapper.xml | 82 ++++++++++++++
9 files changed, 445 insertions(+)
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/controller/MsUsercolumnBController.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/domain/MsColumncfgB.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/domain/MsUsercolumnB.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/mapper/MsColumncfgBMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/mapper/MsUsercolumnBMapper.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/service/IMsUsercolumnBService.java
create mode 100644 backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/service/impl/MsUsercolumnBServiceImpl.java
create mode 100644 backend/src/main/resources/mapper/system/MsUsercolumnBMapper.xml
diff --git a/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java b/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java
index 2e43cdb8..c28488e1 100644
--- a/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java
+++ b/backend/src/main/java/com/yfd/platform/config/SwaggerConfig.java
@@ -257,6 +257,14 @@ public class SwaggerConfig {
.build();
}
+ @Bean
+ public GroupedOpenApi groupCusColumnApi() {
+ return GroupedOpenApi.builder()
+ .group("5.4 自定义筛选列")
+ .packagesToScan("com.yfd.platform.qgc_sys.cuscolumn.controller")
+ .build();
+ }
+
@Bean
public GroupedOpenApi groupLygkApi() {
diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/controller/MsUsercolumnBController.java b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/controller/MsUsercolumnBController.java
new file mode 100644
index 00000000..3a269e76
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/controller/MsUsercolumnBController.java
@@ -0,0 +1,44 @@
+package com.yfd.platform.qgc_sys.cuscolumn.controller;
+
+import com.yfd.platform.config.ResponseResult;
+import com.yfd.platform.qgc_sys.cuscolumn.domain.MsUsercolumnB;
+import com.yfd.platform.qgc_sys.cuscolumn.service.IMsUsercolumnBService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 用户自定义筛选列 控制层
+ */
+@RestController
+@RequestMapping("/sys/usercolumn")
+@Tag(name = "用户自定义筛选列")
+public class MsUsercolumnBController {
+
+ @Resource
+ private IMsUsercolumnBService msUsercolumnBService;
+
+ /**
+ * 批量保存用户自定义列数据
+ */
+ @PostMapping("/batchSave")
+ @Operation(summary = "保存用户自定义列数据")
+ public ResponseResult batchSave(@RequestBody MsUsercolumnB userColumn) {
+ boolean result = msUsercolumnBService.batchSave(userColumn);
+ return result ? ResponseResult.success("保存成功") : ResponseResult.error("保存失败");
+ }
+
+ /**
+ * 获取用户自定义列数据
+ */
+ @PostMapping("/getUserColumnData")
+ @Operation(summary = "获取用户自定义列数据")
+ public ResponseResult getUserColumnData(@RequestBody MsUsercolumnB userColumn) {
+ return ResponseResult.successData(msUsercolumnBService.getUserColumnData(userColumn));
+ }
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/domain/MsColumncfgB.java b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/domain/MsColumncfgB.java
new file mode 100644
index 00000000..d21fb44c
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/domain/MsColumncfgB.java
@@ -0,0 +1,90 @@
+package com.yfd.platform.qgc_sys.cuscolumn.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 筛选列配置表
+ */
+@Data
+@TableName("MS_COLUMNCFG_B")
+public class MsColumncfgB implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(type = IdType.ASSIGN_UUID)
+ private String id;
+
+ @TableField("FUNCTION_ID")
+ private String functionId;
+
+ @TableField("COLUMN_CFG")
+ private String columnCfg;
+
+ @TableField("ENABLE")
+ private Integer enable;
+
+ @TableField("ORDER_INDEX")
+ private Integer orderIndex;
+
+ @TableField("RECORD_USER")
+ private String recordUser;
+
+ @TableField("RECORD_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date recordTime;
+
+ @TableField("MODIFY_USER")
+ private String modifyUser;
+
+ @TableField("MODIFY_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date modifyTime;
+
+ @TableField("IS_DELETED")
+ private Integer isDeleted;
+
+ @TableField("DEFAULT_CHECKED")
+ private Integer defaultChecked;
+
+ @TableField("DELETE_USER")
+ private String deleteUser;
+
+ @TableField("DELETE_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date deleteTime;
+
+ @TableField("IS_TEMP_STORAGE")
+ private Integer isTempStorage;
+
+ @TableField("COLUMN_EN")
+ private String columnEn;
+
+ @TableField("GROUP_TYPE")
+ private String groupType;
+
+ @TableField("PARENT_ID")
+ private String parentId;
+
+ @TableField("HAS_CHILDREN")
+ private Integer hasChildren;
+
+ @TableField("DESCRIPTION")
+ private String description;
+
+ @TableField("CAN_BE_UPDATED")
+ private Integer canBeUpdated;
+
+ @TableField("WIDTH")
+ private Integer width;
+
+ @TableField("CAN_BE_SORTED")
+ private Integer canBeSorted;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/domain/MsUsercolumnB.java b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/domain/MsUsercolumnB.java
new file mode 100644
index 00000000..30361090
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/domain/MsUsercolumnB.java
@@ -0,0 +1,105 @@
+package com.yfd.platform.qgc_sys.cuscolumn.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 用户与筛选列映射表
+ */
+@Data
+@TableName("MS_USERCOLUMN_B")
+public class MsUsercolumnB implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(type = IdType.ASSIGN_UUID)
+ private String id;
+
+ @TableField("CFG_ID")
+ @JsonProperty("cfgId")
+ private String cfgId;
+
+ @TableField("CAN_BE_CHECKED")
+ private Integer canBeChecked;
+
+ @TableField("CHECKED")
+ private Integer checked;
+
+ @TableField("DESCRIPTION")
+ private String description;
+
+ @TableField("ENABLE")
+ private Integer enable;
+
+ @TableField("ORDER_INDEX")
+ private Integer orderIndex;
+
+ @TableField("RECORD_USER")
+ private String recordUser;
+
+ @TableField("RECORD_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date recordTime;
+
+ @TableField("MODIFY_USER")
+ private String modifyUser;
+
+ @TableField("MODIFY_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date modifyTime;
+
+ @TableField("IS_DELETED")
+ private Integer isDeleted;
+
+ @TableField("DELETE_USER")
+ private String deleteUser;
+
+ @TableField("DELETE_TIME")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date deleteTime;
+
+ @TableField("IS_TEMP_STORAGE")
+ private Integer isTempStorage;
+
+ @TableField("COLUMN_EN")
+ private String columnEn;
+
+ @TableField("COLUMN_NAME")
+ private String columnName;
+
+ /**
+ * 是否默认配置(非数据库字段)
+ */
+ @TableField(exist = false)
+ @JsonProperty("defaultConfig")
+ private Boolean defaultConfig;
+
+ /**
+ * 分组类型(非数据库字段,来自关联查询)
+ */
+ @TableField(exist = false)
+ @JsonProperty("groupType")
+ private String groupType;
+
+ /**
+ * 自定义列宽度(非数据库字段,来自关联查询)
+ */
+ @TableField(exist = false)
+ @JsonProperty("width")
+ private Integer width;
+
+ /**
+ * 批量操作时的对象集合(非数据库字段)
+ */
+ @TableField(exist = false)
+ private List list;
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/mapper/MsColumncfgBMapper.java b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/mapper/MsColumncfgBMapper.java
new file mode 100644
index 00000000..067f4c38
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/mapper/MsColumncfgBMapper.java
@@ -0,0 +1,9 @@
+package com.yfd.platform.qgc_sys.cuscolumn.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_sys.cuscolumn.domain.MsColumncfgB;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface MsColumncfgBMapper extends BaseMapper {
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/mapper/MsUsercolumnBMapper.java b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/mapper/MsUsercolumnBMapper.java
new file mode 100644
index 00000000..9a00e07c
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/mapper/MsUsercolumnBMapper.java
@@ -0,0 +1,29 @@
+package com.yfd.platform.qgc_sys.cuscolumn.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yfd.platform.qgc_sys.cuscolumn.domain.MsUsercolumnB;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface MsUsercolumnBMapper extends BaseMapper {
+
+ /**
+ * 根据用户ID和模块ID删除用户自定义列数据
+ */
+ void deleteUserColumn(@Param("recordUser") String recordUser,
+ @Param("cfgId") String cfgId);
+
+ /**
+ * 查询用户自定义列数据(LEFT JOIN MS_COLUMNCFG_B,优先使用用户配置,无用户配置时使用默认配置)
+ */
+ List getUserColumnList(@Param("recordUser") String recordUser,
+ @Param("cfgId") String cfgId);
+
+ /**
+ * 根据模块ID查询默认列配置
+ */
+ List getUserColumnDefaultList(@Param("cfgId") String cfgId);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/service/IMsUsercolumnBService.java b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/service/IMsUsercolumnBService.java
new file mode 100644
index 00000000..7a41fe3d
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/service/IMsUsercolumnBService.java
@@ -0,0 +1,19 @@
+package com.yfd.platform.qgc_sys.cuscolumn.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yfd.platform.qgc_sys.cuscolumn.domain.MsUsercolumnB;
+
+import java.util.List;
+
+public interface IMsUsercolumnBService extends IService {
+
+ /**
+ * 批量保存用户自定义列数据
+ */
+ boolean batchSave(MsUsercolumnB userColumn);
+
+ /**
+ * 获取用户自定义列数据
+ */
+ List getUserColumnData(MsUsercolumnB userColumn);
+}
diff --git a/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/service/impl/MsUsercolumnBServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/service/impl/MsUsercolumnBServiceImpl.java
new file mode 100644
index 00000000..1524c95c
--- /dev/null
+++ b/backend/src/main/java/com/yfd/platform/qgc_sys/cuscolumn/service/impl/MsUsercolumnBServiceImpl.java
@@ -0,0 +1,59 @@
+package com.yfd.platform.qgc_sys.cuscolumn.service.impl;
+
+import com.yfd.platform.qgc_sys.cuscolumn.domain.MsUsercolumnB;
+import com.yfd.platform.qgc_sys.cuscolumn.mapper.MsUsercolumnBMapper;
+import com.yfd.platform.qgc_sys.cuscolumn.service.IMsUsercolumnBService;
+import com.yfd.platform.utils.SecurityUtils;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class MsUsercolumnBServiceImpl
+ extends ServiceImpl
+ implements IMsUsercolumnBService {
+
+ @Resource
+ private MsUsercolumnBMapper usercolumnBMapper;
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean batchSave(MsUsercolumnB userColumn) {
+ if (!StringUtils.hasText(userColumn.getCfgId())) {
+ throw new IllegalArgumentException("模块(cfgId)不能为空");
+ }
+
+ String currentUser = SecurityUtils.getCurrentUsername();
+ List list = userColumn.getList();
+
+ if (list != null && !list.isEmpty()) {
+ for (MsUsercolumnB item : list) {
+ item.setCfgId(userColumn.getCfgId());
+ item.setRecordUser(currentUser);
+ item.setRecordTime(new Date());
+ // 列的中文名称通过COLUMN_EN和MS_COLUMNCFG_B关联查询,不额外存储
+ item.setColumnName(null);
+ }
+
+ // 先删除旧数据
+ usercolumnBMapper.deleteUserColumn(currentUser, userColumn.getCfgId());
+
+ // 批量保存新数据
+ return this.saveBatch(list);
+ }
+
+ return false;
+ }
+
+ @Override
+ public List getUserColumnData(MsUsercolumnB userColumn) {
+ String currentUser = SecurityUtils.getCurrentUsername();
+ return usercolumnBMapper.getUserColumnList(currentUser, userColumn.getCfgId());
+ }
+}
diff --git a/backend/src/main/resources/mapper/system/MsUsercolumnBMapper.xml b/backend/src/main/resources/mapper/system/MsUsercolumnBMapper.xml
new file mode 100644
index 00000000..14819390
--- /dev/null
+++ b/backend/src/main/resources/mapper/system/MsUsercolumnBMapper.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DELETE FROM MS_USERCOLUMN_B
+ WHERE CFG_ID = #{cfgId}
+
+ AND RECORD_USER = #{recordUser}
+
+
+
+
+
+
+
+
+
+
From 0aa99bcde6b89ca8646267cef825a9fe848da60e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=8E=8B=E5=85=B4=E5=87=AF?= <2448379534@qq.com>
Date: Mon, 20 Jul 2026 16:02:51 +0800
Subject: [PATCH 05/23] =?UTF-8?q?=E5=85=A8=E8=BF=87=E7=A8=8B=E6=95=B0?=
=?UTF-8?q?=E6=8D=AE=E7=AE=A1=E7=90=86=E5=AD=90=E7=B3=BB=E7=BB=9F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
frontend-sjgl/.editorconfig | 15 +
frontend-sjgl/.env.development | 22 +
frontend-sjgl/.env.production | 14 +
frontend-sjgl/.env.staging | 6 +
frontend-sjgl/.eslintignore | 16 +
frontend-sjgl/.eslintrc.js | 33 +
frontend-sjgl/.gitignore | 17 +
frontend-sjgl/.lingma/settings.local.json | 4 +
frontend-sjgl/.npmrc | 5 +
frontend-sjgl/.prettierignore | 9 +
frontend-sjgl/.prettierrc.js | 36 +
frontend-sjgl/LICENSE | 21 +
frontend-sjgl/commitlint.config.js | 26 +
.../docs/地图模块-3D Cesium实施计划.md | 479 +
.../docs/地图模块-OpenLayers抽吸与碰撞分析.md | 343 +
.../docs/地图模块-抽吸规则与参数说明.md | 316 +
frontend-sjgl/docs/地图模块-详细说明.md | 621 +
frontend-sjgl/docs/地图模块现状与改造方案.md | 1158 ++
frontend-sjgl/docs/地图模块重构实施清单.md | 380 +
frontend-sjgl/index.html | 15 +
frontend-sjgl/package.json | 97 +
frontend-sjgl/pnpm-lock.yaml | 13865 ++++++++++++++++
frontend-sjgl/postcss.config.js | 6 +
frontend-sjgl/public/file/注册操作手册.docx | Bin 0 -> 1697305 bytes
.../public/file/过鱼设施数据填报操作手册.docx | Bin 0 -> 312026 bytes
frontend-sjgl/public/file/鱼种类字典数据.xlsx | Bin 0 -> 124695 bytes
frontend-sjgl/public/logo.png | Bin 0 -> 13595 bytes
frontend-sjgl/readme.md | 1 +
frontend-sjgl/src/App.vue | 19 +
.../src/api/DataQueryMenuModule/index.ts | 310 +
frontend-sjgl/src/api/auth/index.ts | 175 +
frontend-sjgl/src/api/auth/types.ts | 34 +
frontend-sjgl/src/api/changePassWord/index.ts | 9 +
frontend-sjgl/src/api/dept/index.ts | 139 +
frontend-sjgl/src/api/dept/types.ts | 34 +
frontend-sjgl/src/api/dict/index.ts | 250 +
frontend-sjgl/src/api/dict/types.ts | 92 +
.../src/api/guoYuSheShiShuJuTianBao/index.ts | 138 +
frontend-sjgl/src/api/map.ts | 61 +
frontend-sjgl/src/api/mapModal/index.ts | 544 +
frontend-sjgl/src/api/menu/index.ts | 159 +
frontend-sjgl/src/api/menu/types.ts | 105 +
frontend-sjgl/src/api/record/index.ts | 18 +
frontend-sjgl/src/api/role/index.ts | 196 +
frontend-sjgl/src/api/role/types.ts | 47 +
frontend-sjgl/src/api/select/index.ts | 132 +
frontend-sjgl/src/api/shengPiJiLu/index.ts | 45 +
frontend-sjgl/src/api/shiPinJianKong/index.ts | 25 +
frontend-sjgl/src/api/sw/index.ts | 154 +
.../src/api/system/alertRules/index.ts | 26 +
.../src/api/system/disposeManage/index.ts | 50 +
.../api/system/map/ConfigManagement/index.ts | 59 +
.../api/system/map/LayerManagement/index.ts | 26 +
.../api/system/map/LegendStructure/index.ts | 60 +
.../system/map/TiltPhotoManagement/index.ts | 34 +
.../api/system/map/pushManagement/index.ts | 100 +
frontend-sjgl/src/api/user/index.ts | 279 +
frontend-sjgl/src/api/user/types.ts | 75 +
frontend-sjgl/src/assets/MenuIcon/czan_xz.png | Bin 0 -> 160 bytes
frontend-sjgl/src/assets/MenuIcon/dh_sq.png | Bin 0 -> 366 bytes
frontend-sjgl/src/assets/MenuIcon/dh_sq1.png | Bin 0 -> 1165 bytes
frontend-sjgl/src/assets/MenuIcon/dh_sy.png | Bin 0 -> 564 bytes
frontend-sjgl/src/assets/MenuIcon/dh_sy1.png | Bin 0 -> 537 bytes
frontend-sjgl/src/assets/MenuIcon/dh_sz.png | Bin 0 -> 520 bytes
frontend-sjgl/src/assets/MenuIcon/dh_sz1.png | Bin 0 -> 527 bytes
frontend-sjgl/src/assets/MenuIcon/dh_xm.png | Bin 0 -> 677 bytes
frontend-sjgl/src/assets/MenuIcon/dh_xm1.png | Bin 0 -> 655 bytes
frontend-sjgl/src/assets/MenuIcon/dh_xx.png | Bin 0 -> 469 bytes
frontend-sjgl/src/assets/MenuIcon/dh_xx1.png | Bin 0 -> 462 bytes
frontend-sjgl/src/assets/MenuIcon/gb.png | Bin 0 -> 14959 bytes
frontend-sjgl/src/assets/MenuIcon/grzx_tx.png | Bin 0 -> 1897 bytes
frontend-sjgl/src/assets/MenuIcon/grzx_xg.png | Bin 0 -> 385 bytes
frontend-sjgl/src/assets/MenuIcon/jscz_rl.png | Bin 0 -> 372 bytes
frontend-sjgl/src/assets/MenuIcon/jscz_sc.png | Bin 0 -> 289 bytes
.../src/assets/MenuIcon/jscz_sc1.png | Bin 0 -> 317 bytes
.../src/assets/MenuIcon/jscz_scdc.png | Bin 0 -> 313 bytes
frontend-sjgl/src/assets/MenuIcon/jscz_xz.png | Bin 0 -> 156 bytes
frontend-sjgl/src/assets/MenuIcon/lbcz_an.png | Bin 0 -> 401 bytes
.../src/assets/MenuIcon/lbcz_an1.png | Bin 0 -> 427 bytes
frontend-sjgl/src/assets/MenuIcon/lbcz_cd.png | Bin 0 -> 223 bytes
.../src/assets/MenuIcon/lbcz_cd1.png | Bin 0 -> 233 bytes
.../src/assets/MenuIcon/lbcz_czmm.png | Bin 0 -> 513 bytes
frontend-sjgl/src/assets/MenuIcon/lbcz_jt.png | Bin 0 -> 299 bytes
.../src/assets/MenuIcon/lbcz_jt1.png | Bin 0 -> 1107 bytes
frontend-sjgl/src/assets/MenuIcon/lbcz_qx.png | Bin 0 -> 662 bytes
frontend-sjgl/src/assets/MenuIcon/lbcz_sc.png | Bin 0 -> 485 bytes
.../src/assets/MenuIcon/lbcz_sc1.png | Bin 0 -> 448 bytes
.../src/assets/MenuIcon/lbcz_sc2.png | Bin 0 -> 359 bytes
frontend-sjgl/src/assets/MenuIcon/lbcz_td.png | Bin 0 -> 173 bytes
.../src/assets/MenuIcon/lbcz_td1.png | Bin 0 -> 171 bytes
.../src/assets/MenuIcon/lbcz_td2.png | Bin 0 -> 162 bytes
frontend-sjgl/src/assets/MenuIcon/lbcz_xg.png | Bin 0 -> 506 bytes
.../src/assets/MenuIcon/lbcz_xg1.png | Bin 0 -> 460 bytes
.../src/assets/MenuIcon/lbcz_xg2.png | Bin 0 -> 394 bytes
.../src/assets/MenuIcon/lbcz_zml.png | Bin 0 -> 440 bytes
.../src/assets/MenuIcon/lbcz_zml1.png | Bin 0 -> 459 bytes
.../src/assets/MenuIcon/lbcz_zyw.png | Bin 0 -> 450 bytes
frontend-sjgl/src/assets/MenuIcon/lbcz_zz.png | Bin 0 -> 521 bytes
frontend-sjgl/src/assets/MenuIcon/top_qp.png | Bin 0 -> 425 bytes
frontend-sjgl/src/assets/MenuIcon/top_qp1.png | Bin 0 -> 384 bytes
frontend-sjgl/src/assets/MenuIcon/top_ss.png | Bin 0 -> 490 bytes
frontend-sjgl/src/assets/MenuIcon/top_tx.png | Bin 0 -> 28367 bytes
frontend-sjgl/src/assets/MenuIcon/top_zh.png | Bin 0 -> 238 bytes
frontend-sjgl/src/assets/MenuIcon/ts.png | Bin 0 -> 562 bytes
.../src/assets/MenuIcon/u117_mouseOver.png | Bin 0 -> 652 bytes
frontend-sjgl/src/assets/MenuIcon/u119.png | Bin 0 -> 630 bytes
frontend-sjgl/src/assets/MenuIcon/u241.png | Bin 0 -> 200 bytes
frontend-sjgl/src/assets/MenuIcon/u343.png | Bin 0 -> 521 bytes
frontend-sjgl/src/assets/MenuIcon/u697.png | Bin 0 -> 472 bytes
frontend-sjgl/src/assets/MenuIcon/u81.png | Bin 0 -> 520 bytes
frontend-sjgl/src/assets/MenuIcon/xqing.png | Bin 0 -> 549 bytes
.../src/assets/components/arrow-down.png | Bin 0 -> 238 bytes
.../src/assets/components/arrow-left.png | Bin 0 -> 205 bytes
.../src/assets/components/arrow-right.png | Bin 0 -> 215 bytes
.../src/assets/components/arrow-up.png | Bin 0 -> 231 bytes
.../assets/components/bg-toggle.e1dabcf3.svg | 1 +
.../src/assets/components/bg_sjtb.png | Bin 0 -> 1498314 bytes
frontend-sjgl/src/assets/components/fgx.svg | 1 +
frontend-sjgl/src/assets/components/fish.png | Bin 0 -> 932 bytes
frontend-sjgl/src/assets/components/guoyu.png | Bin 0 -> 606 bytes
.../src/assets/components/shenpibohui.png | Bin 0 -> 440 bytes
.../src/assets/components/shenpitongguo.png | Bin 0 -> 431 bytes
frontend-sjgl/src/assets/components/tishi.png | Bin 0 -> 353 bytes
.../src/assets/components/tishi1.png | Bin 0 -> 478 bytes
frontend-sjgl/src/assets/icons/advert.svg | 1 +
frontend-sjgl/src/assets/icons/brand.svg | 1 +
frontend-sjgl/src/assets/icons/bug.svg | 1 +
frontend-sjgl/src/assets/icons/cascader.svg | 1 +
frontend-sjgl/src/assets/icons/chart.svg | 1 +
frontend-sjgl/src/assets/icons/client.svg | 1 +
frontend-sjgl/src/assets/icons/close.svg | 1 +
frontend-sjgl/src/assets/icons/close_all.svg | 1 +
frontend-sjgl/src/assets/icons/close_left.svg | 1 +
.../src/assets/icons/close_other.svg | 1 +
.../src/assets/icons/close_right.svg | 1 +
frontend-sjgl/src/assets/icons/coupon.svg | 1 +
frontend-sjgl/src/assets/icons/dashboard.svg | 1 +
frontend-sjgl/src/assets/icons/dict.svg | 18 +
frontend-sjgl/src/assets/icons/dict_item.svg | 12 +
frontend-sjgl/src/assets/icons/download.svg | 1 +
frontend-sjgl/src/assets/icons/drag.svg | 1 +
frontend-sjgl/src/assets/icons/edit.svg | 1 +
.../src/assets/icons/exit-fullscreen.svg | 1 +
frontend-sjgl/src/assets/icons/eye-open.svg | 1 +
frontend-sjgl/src/assets/icons/eye.svg | 1 +
.../src/assets/icons/fishxz.7410ec88.svg | 1 +
frontend-sjgl/src/assets/icons/fullscreen.svg | 1 +
frontend-sjgl/src/assets/icons/github.svg | 1 +
frontend-sjgl/src/assets/icons/goods-list.svg | 1 +
frontend-sjgl/src/assets/icons/goods.svg | 1 +
frontend-sjgl/src/assets/icons/gth.svg | 1 +
frontend-sjgl/src/assets/icons/guide.svg | 1 +
frontend-sjgl/src/assets/icons/homepage.svg | 1 +
frontend-sjgl/src/assets/icons/lab.svg | 1 +
frontend-sjgl/src/assets/icons/language.svg | 1 +
frontend-sjgl/src/assets/icons/link.svg | 1 +
.../src/assets/icons/locationIcon.png | Bin 0 -> 162 bytes
frontend-sjgl/src/assets/icons/menu.svg | 1 +
.../src/assets/icons/menuActiveBg.svg | 1 +
frontend-sjgl/src/assets/icons/message.svg | 1 +
frontend-sjgl/src/assets/icons/money.svg | 1 +
frontend-sjgl/src/assets/icons/monitor.svg | 2 +
frontend-sjgl/src/assets/icons/nested.svg | 1 +
frontend-sjgl/src/assets/icons/number.svg | 1 +
frontend-sjgl/src/assets/icons/order.svg | 1 +
frontend-sjgl/src/assets/icons/password.svg | 1 +
frontend-sjgl/src/assets/icons/peoples.svg | 1 +
frontend-sjgl/src/assets/icons/perm.svg | 1 +
frontend-sjgl/src/assets/icons/publish.svg | 1 +
frontend-sjgl/src/assets/icons/qq.svg | 1 +
frontend-sjgl/src/assets/icons/rabbitmq.svg | 1 +
frontend-sjgl/src/assets/icons/rate.svg | 1 +
frontend-sjgl/src/assets/icons/redis.svg | 1 +
frontend-sjgl/src/assets/icons/refresh.svg | 1 +
frontend-sjgl/src/assets/icons/role.svg | 1 +
frontend-sjgl/src/assets/icons/security.svg | 1 +
frontend-sjgl/src/assets/icons/shopping.svg | 1 +
frontend-sjgl/src/assets/icons/size.svg | 1 +
frontend-sjgl/src/assets/icons/skill.svg | 1 +
frontend-sjgl/src/assets/icons/system.svg | 1 +
frontend-sjgl/src/assets/icons/theme.svg | 1 +
frontend-sjgl/src/assets/icons/tree.svg | 1 +
frontend-sjgl/src/assets/icons/user.svg | 1 +
frontend-sjgl/src/assets/icons/uv.svg | 1 +
frontend-sjgl/src/assets/icons/valid_code.svg | 9 +
frontend-sjgl/src/assets/icons/wechat.svg | 1 +
frontend-sjgl/src/assets/images/bg_sjtb.png | Bin 0 -> 1498314 bytes
.../src/assets/images/fish_survey_liang.png | Bin 0 -> 5992 bytes
.../src/assets/images/fish_survey_shu.png | Bin 0 -> 6358 bytes
.../src/assets/images/fish_survey_zhong.png | Bin 0 -> 6048 bytes
frontend-sjgl/src/assets/images/linefeed.png | Bin 0 -> 173 bytes
frontend-sjgl/src/assets/images/login-bg.jpg | Bin 0 -> 689204 bytes
frontend-sjgl/src/assets/images/logo.png | Bin 0 -> 13595 bytes
.../src/assets/images/map-dixingtu.png | Bin 0 -> 42802 bytes
.../src/assets/images/map-shiliangtu.png | Bin 0 -> 19358 bytes
.../src/assets/images/map-yingxiangtu.png | Bin 0 -> 39613 bytes
.../src/assets/images/mapTip/bottom.png | Bin 0 -> 4187 bytes
.../src/assets/images/mapTip/bottom@175.png | Bin 0 -> 3450 bytes
.../src/assets/images/mapTip/bottom@215.png | Bin 0 -> 4127 bytes
.../src/assets/images/mapTip/bottom@260.png | Bin 0 -> 5023 bytes
.../src/assets/images/mapTip/center.png | Bin 0 -> 1001 bytes
.../src/assets/images/mapTip/center@175.png | Bin 0 -> 1207 bytes
.../src/assets/images/mapTip/center@215.png | Bin 0 -> 1359 bytes
.../src/assets/images/mapTip/center@260.png | Bin 0 -> 1488 bytes
.../mapTip/map-dxsdzGuihuaNetMonitor.svg | 14 +
.../mapTip/map-dxsdzYijianNetMonitor.svg | 14 +
.../mapTip/map-dxsdzZaijianNetMonitor.svg | 14 +
.../assets/images/mapTip/map-yingxiangtu1.png | Bin 0 -> 77541 bytes
.../mapTip/map-zxsdzGuihuaNetMonitor.svg | 14 +
.../mapTip/map-zxsdzYijianNetMonitor.svg | 14 +
.../mapTip/map-zxsdzZaijianNetMonitor.svg | 14 +
.../src/assets/images/mapTip/top.png | Bin 0 -> 3796 bytes
.../src/assets/images/mapTip/top@175.png | Bin 0 -> 3528 bytes
.../src/assets/images/mapTip/top@215.png | Bin 0 -> 4072 bytes
.../src/assets/images/mapTip/top@260.png | Bin 0 -> 5198 bytes
.../src/assets/images/nineSections-dixing.png | Bin 0 -> 297595 bytes
.../assets/images/nineSections-shiliang.png | Bin 0 -> 67410 bytes
.../assets/images/nineSections-yingxiang.png | Bin 0 -> 310250 bytes
frontend-sjgl/src/assets/images/videFm.jpg | Bin 0 -> 79924 bytes
.../src/assets/svg/diwenshuijianhuan.svg | 4 +
.../src/assets/svg/guojiashuiwenzhan.svg | 16 +
.../src/assets/svg/guojiashuizhizhan.svg | 13 +
.../src/assets/svg/liuliangjiancezhan.svg | 6 +
frontend-sjgl/src/assets/svg/qixiangzhan.svg | 16 +
frontend-sjgl/src/assets/svg/qixidi.svg | 9 +
.../src/assets/svg/shipinjiankongshebei.svg | 4 +
.../src/assets/svg/shuizhijiancezhan.svg | 1 +
.../src/assets/svg/zengzhizhanshuizhizhan.svg | 9 +
.../src/assets/svg/zijianshuiwenzhan.svg | 16 +
frontend-sjgl/src/components.d.ts | 9 +
.../src/components/BasicSearch/index.vue | 567 +
.../src/components/BasicTable/index.vue | 749 +
.../src/components/MapModal/column.config.ts | 4982 ++++++
.../components/AIYXSB/AttachmentPreview.vue | 250 +
.../components/AIYXSB/MediaViewer.vue | 407 +
.../MapModal/components/AIYXSB/index.vue | 1227 ++
.../MapModal/components/Attachment.vue | 280 +
.../MapModal/components/BasicInfo.vue | 578 +
.../components/CommonAttachmentModal.vue | 267 +
.../components/MapModal/components/DZGJ.vue | 306 +
.../MapModal/components/EarlyWarningAlert.vue | 200 +
.../MapModal/components/EcologicalFlow.vue | 625 +
.../MapModal/components/Ecology.vue | 583 +
.../components/FishFacilityBuildState.vue | 355 +
.../components/FishFacilityMonitorData.vue | 337 +
.../components/FishFacilityRunState.vue | 374 +
.../MapModal/components/FishZHFX.vue | 584 +
.../MapModal/components/FlowDischarge.vue | 460 +
.../MapModal/components/FlowMeasure.vue | 634 +
.../MapModal/components/MonitorInfo.vue | 605 +
.../MapModal/components/NoLiveVideo.vue | 480 +
.../components/MapModal/components/Normal.vue | 259 +
.../components/NormalAddedSituation.vue | 336 +
.../components/NormalDataMonitoring2.vue | 307 +
.../components/NormalOperationData/index.vue | 695 +
.../NormalOperationData/operationConfig.ts | 523 +
.../proliferationColumns.ts | 4372 +++++
.../components/NormalResearchSituation.vue | 189 +
.../MapModal/components/PanoramaComponent.vue | 12 +
.../MapModal/components/PanoramaInfo.vue | 140 +
.../components/PowerStationProgressLine.vue | 12 +
.../MapModal/components/ProcessDiagram.vue | 710 +
.../MapModal/components/SsspLayer.vue | 12 +
.../components/TableInfoComponent.vue | 12 +
.../components/VerticalWaterTemperature.vue | 641 +
.../MapModal/components/WarningPrompt.vue | 12 +
.../MapModal/components/WaterQuality.vue | 791 +
.../MapModal/components/WaterTemperature.vue | 1127 ++
.../components/WaterTemperatureRep.vue | 775 +
.../MapModal/components/columnList.ts | 500 +
.../MapModal/components/liveFootage.vue | 435 +
.../MapModal/components/onSitePhoto.vue | 404 +
.../MapModal/components/videoInfo.vue | 753 +
.../src/components/MapModal/index.vue | 978 ++
.../src/components/MapModal/setting.config.ts | 1282 ++
.../src/components/Pagination/index.vue | 102 +
.../src/components/Pagination/page.vue | 131 +
.../src/components/SvgIcon/index.vue | 40 +
.../src/components/Upload/MultiUpload.vue | 143 +
.../src/components/Upload/SingleUpload.vue | 97 +
frontend-sjgl/src/components/gis/GisView.vue | 195 +
.../src/components/gis/TjCascadeChart.vue | 673 +
.../src/components/gis/TjLayerModal.vue | 537 +
frontend-sjgl/src/components/gis/gisUtils.ts | 537 +
.../src/components/gis/map.cesium.ts | 2809 ++++
frontend-sjgl/src/components/gis/map.class.ts | 297 +
frontend-sjgl/src/components/gis/map.d.ts | 245 +
.../src/components/gis/map.leaflet.ts | 440 +
frontend-sjgl/src/components/gis/map.ol.ts | 2616 +++
.../src/components/gis/mapurlManage.ts | 759 +
.../components/gis/ol/point-layer-manager.ts | 391 +
.../src/components/gis/ol/popup-manager.ts | 530 +
.../components/gis/ol/region-mask-manager.ts | 341 +
frontend-sjgl/src/components/gis/osgbUtils.ts | 747 +
frontend-sjgl/src/components/pdf/pdfView.vue | 51 +
.../src/components/previewMedia/index.vue | 315 +
.../src/components/ylfbModal/index.vue | 284 +
frontend-sjgl/src/directive/index.ts | 2 +
.../src/directive/permission/index.ts | 83 +
frontend-sjgl/src/directive/utils/index.ts | 15 +
frontend-sjgl/src/env.d.ts | 19 +
frontend-sjgl/src/lang/en.ts | 29 +
frontend-sjgl/src/lang/index.ts | 46 +
frontend-sjgl/src/lang/zh-cn.ts | 29 +
.../src/layout/components/AppMain.vue | 54 +
.../src/layout/components/Navbar.vue | 146 +
.../src/layout/components/Sidebar/index.vue | 193 +
.../src/layout/components/changePassword.vue | 394 +
frontend-sjgl/src/layout/components/index.ts | 2 +
frontend-sjgl/src/layout/index.vue | 33 +
frontend-sjgl/src/main.ts | 49 +
frontend-sjgl/src/modules/jidiSelectorMod.vue | 110 +
.../map/application/map-orchestrator.ts | 806 +
.../src/modules/map/domain/legend-deriver.ts | 147 +
.../src/modules/map/domain/map-layer-rules.ts | 80 +
.../modules/map/domain/nearby-point-rules.ts | 418 +
.../modules/map/stores/map-config.store.ts | 251 +
.../src/modules/map/stores/map-data.store.ts | 192 +
.../src/modules/map/stores/map-view.store.ts | 92 +
frontend-sjgl/src/permission.ts | 135 +
frontend-sjgl/src/router/index.ts | 60 +
frontend-sjgl/src/settings.ts | 23 +
frontend-sjgl/src/shims.d.ts | 6 +
.../src/store/composables/useTimeScale.ts | 207 +
frontend-sjgl/src/store/index.ts | 11 +
frontend-sjgl/src/store/modules/app.ts | 69 +
.../src/store/modules/jidiSelectEvent.ts | 78 +
frontend-sjgl/src/store/modules/map.ts | 1490 ++
frontend-sjgl/src/store/modules/model.ts | 80 +
frontend-sjgl/src/store/modules/permission.ts | 77 +
.../src/store/modules/shuJuTianBao.ts | 121 +
frontend-sjgl/src/store/modules/tagsView.ts | 214 +
frontend-sjgl/src/store/modules/ui.ts | 35 +
frontend-sjgl/src/store/modules/user.ts | 109 +
frontend-sjgl/src/styles/ant-design-vue.scss | 44 +
frontend-sjgl/src/styles/element-plus.scss | 7 +
frontend-sjgl/src/styles/iconfont/demo.css | 539 +
.../src/styles/iconfont/demo_index.html | 10815 ++++++++++++
.../src/styles/iconfont/iconfont.css | 1862 +++
frontend-sjgl/src/styles/iconfont/iconfont.js | 1 +
.../src/styles/iconfont/iconfont.json | 3243 ++++
.../src/styles/iconfont/iconfont.ttf | Bin 0 -> 134008 bytes
.../src/styles/iconfont/iconfont.woff | Bin 0 -> 76344 bytes
.../src/styles/iconfont/iconfont.woff2 | Bin 0 -> 64484 bytes
frontend-sjgl/src/styles/index.scss | 125 +
frontend-sjgl/src/styles/mixin.scss | 28 +
frontend-sjgl/src/styles/popup-styles.scss | 422 +
frontend-sjgl/src/styles/sidebar.scss | 17 +
frontend-sjgl/src/styles/tailwind.scss | 4 +
.../src/styles/variables.module.scss | 20 +
frontend-sjgl/src/utils/GisUrlList.ts | 5158 ++++++
frontend-sjgl/src/utils/auth.ts | 15 +
frontend-sjgl/src/utils/buildTimeFilters.ts | 150 +
frontend-sjgl/src/utils/drag.ts | 182 +
frontend-sjgl/src/utils/enumeration.ts | 423 +
frontend-sjgl/src/utils/exportExcel.ts | 370 +
frontend-sjgl/src/utils/filter.ts | 80 +
frontend-sjgl/src/utils/i18n.ts | 12 +
frontend-sjgl/src/utils/index.ts | 202 +
frontend-sjgl/src/utils/localStorage.ts | 44 +
frontend-sjgl/src/utils/popupHtmlGenerator.ts | 3618 ++++
frontend-sjgl/src/utils/request.ts | 103 +
frontend-sjgl/src/utils/resize.ts | 73 +
frontend-sjgl/src/utils/rsaEncrypt.ts | 29 +
frontend-sjgl/src/utils/scroll-to.ts | 69 +
frontend-sjgl/src/utils/sessionStorage.ts | 22 +
.../Approval/ApprovalSearch.vue | 142 +
.../conventionalHydropower/Approval/index.vue | 330 +
.../BasicData/BasicDataSearch.vue | 315 +
.../BasicData/CustomColumnModal.vue | 297 +
.../BasicData/DeleteConfirmModal.vue | 115 +
.../BasicData/EditPowerModal.vue | 1406 ++
.../BasicData/index.vue | 1057 ++
.../FishResource/FishResourceSearch.vue | 132 +
.../FishResource/index.vue | 643 +
frontend-sjgl/src/views/error-page/401.vue | 48 +
frontend-sjgl/src/views/error-page/404.vue | 47 +
frontend-sjgl/src/views/login/index.vue | 1071 ++
.../src/views/monitorData/Export/index.vue | 324 +
.../monitorData/FishData/FishDataSearch.vue | 255 +
.../src/views/monitorData/FishData/index.vue | 551 +
.../FishRelease/FishReleaseSearch.vue | 205 +
.../views/monitorData/FishRelease/index.vue | 208 +
.../monitorData/FlowData/FlowDataSearch.vue | 214 +
.../src/views/monitorData/FlowData/index.vue | 465 +
.../FlowStation/EditFlowStationModal.vue | 327 +
.../FlowStation/FlowStationSearch.vue | 267 +
.../views/monitorData/FlowStation/index.vue | 331 +
.../SurfaceTemp/EditSurfaceTempModal.vue | 252 +
.../SurfaceTemp/SurfaceTempSearch.vue | 267 +
.../views/monitorData/SurfaceTemp/index.vue | 295 +
.../VerticalTemp/EditVerticalTempModal.vue | 288 +
.../VerticalTemp/VerticalTempSearch.vue | 273 +
.../views/monitorData/VerticalTemp/index.vue | 699 +
.../WaterData/EditWaterDataModal.vue | 405 +
.../monitorData/WaterData/WaterDataSearch.vue | 287 +
.../src/views/monitorData/WaterData/index.vue | 453 +
frontend-sjgl/src/views/redirect/index.vue | 15 +
frontend-sjgl/src/views/register/index.vue | 998 ++
.../components/LiveVideoBox.vue | 435 +
.../shiPinJianKong/shiPinJianKongZhuanTi.vue | 1805 ++
.../src/views/shuJuFenXi/components/export.js | 225 +
.../src/views/shuJuFenXi/components/utils.ts | 1011 ++
.../views/shuJuFenXi/shuiWenShuJuFenXi.vue | 381 +
.../guoYuDaoShuTongJiSearch.vue | 112 +
.../shuJuTianBao/guoYuDaoShuTongJi/index.vue | 437 +
.../guoYuSheShiShuJuHistorySearch.vue | 154 +
.../guoYuSheShiShuJuHistory/index.vue | 357 +
.../guoYuSheShiShuJuTianBaoForm.vue | 894 +
.../guoYuSheShiShuJuTianBaoSearch.vue | 263 +
.../guoYuSheShiShuJuTianBaoTable.vue | 790 +
.../guoYuSheShiShuJuTianBao/index.vue | 1058 ++
.../shengPiJiLu/approvalDetailSearch.vue | 102 +
.../shengPiJiLu/approvalLogSearch.vue | 66 +
.../shengPiJiLu/changeLogSearch.vue | 66 +
.../views/shuJuTianBao/shengPiJiLu/index.vue | 1084 ++
.../shengPiJiLu/shengPiJiLuSearch.vue | 121 +
.../ConfigManagement/ConfigManagementForm.vue | 855 +
.../ConfigManagementSearch.vue | 81 +
.../ConfigManagement/StationSelectModal.vue | 267 +
.../views/system/ConfigManagement/index.vue | 404 +
.../StationManagementForm.vue | 160 +
.../StationManagementSearch.vue | 67 +
.../views/system/StationManagement/index.vue | 203 +
.../TiltPhotoManagementForm.vue | 249 +
.../TiltPhotoManagementSearch.vue | 81 +
.../system/TiltPhotoManagement/index.vue | 269 +
.../ConfigManagement/ConfigManagementForm.vue | 784 +
.../ConfigManagementSearch.vue | 75 +
.../components/ConfigManagement/index.vue | 228 +
.../RulesManagement/LayerManagementForm.vue | 302 +
.../RulesManagement/LayerManagementSearch.vue | 79 +
.../components/RulesManagement/index.vue | 256 +
.../src/views/system/alertRules/index.vue | 89 +
frontend-sjgl/src/views/system/dept/index.vue | 792 +
frontend-sjgl/src/views/system/dict/index.vue | 915 +
.../disposeManage/disposeManageForm.vue | 567 +
.../disposeManage/disposeManageSearch.vue | 70 +
.../src/views/system/disposeManage/index.vue | 293 +
.../LayerManagement/LayerManagementForm.vue | 261 +
.../LayerManagement/LayerManagementSearch.vue | 69 +
.../map/components/LayerManagement/index.vue | 360 +
.../components/LegendData/LegendDataForm.vue | 394 +
.../LegendData/LegendDataSearch.vue | 81 +
.../LegendData/LegendDataSelectedConfig.vue | 299 +
.../LegendDataSelectedConfigForm.vue | 243 +
.../map/components/LegendData/index.vue | 472 +
.../LegendStructure/LegendStructureForm.vue | 161 +
.../LegendStructure/LegendStructureSearch.vue | 67 +
.../map/components/LegendStructure/index.vue | 401 +
frontend-sjgl/src/views/system/map/index.vue | 96 +
frontend-sjgl/src/views/system/menu/index.vue | 1136 ++
.../ConfigManagement/ConfigManagementForm.vue | 347 +
.../ConfigManagementSearch.vue | 76 +
.../ConfigManagement/CronPicker.vue | 707 +
.../ConfigManagement/PushTargetModal.vue | 198 +
.../components/ConfigManagement/index.vue | 264 +
.../HistoryManagement/LayerManagementForm.vue | 260 +
.../LayerManagementSearch.vue | 69 +
.../PushStatusModal/index.vue | 206 +
.../components/HistoryManagement/index.vue | 324 +
.../src/views/system/pushManagement/index.vue | 89 +
.../src/views/system/record/index.vue | 300 +
.../src/views/system/review/index.vue | 1529 ++
frontend-sjgl/src/views/system/role/index.vue | 742 +
frontend-sjgl/src/views/system/user/index.vue | 1568 ++
.../src/views/system/user/personalCenter.vue | 292 +
frontend-sjgl/tailwind.config.js | 15 +
frontend-sjgl/tsconfig.json | 32 +
frontend-sjgl/types/components.d.ts | 9 +
frontend-sjgl/types/env.d.ts | 19 +
frontend-sjgl/types/global.d.ts | 23 +
frontend-sjgl/vite.config.ts | 148 +
frontend/src/api/system/alertRules/index.ts | 26 +
frontend/src/utils/request.ts | 5 +-
.../ConfigManagement/ConfigManagementForm.vue | 6 +
.../views/system/ConfigManagement/index.vue | 11 +-
.../RulesManagement/LayerManagementForm.vue | 358 +-
.../RulesManagement/LayerManagementSearch.vue | 34 +-
.../components/RulesManagement/index.vue | 351 +-
frontend/src/views/system/menu/index.vue | 18 +-
package-lock.json | 865 -
482 files changed, 138263 insertions(+), 1273 deletions(-)
create mode 100644 frontend-sjgl/.editorconfig
create mode 100644 frontend-sjgl/.env.development
create mode 100644 frontend-sjgl/.env.production
create mode 100644 frontend-sjgl/.env.staging
create mode 100644 frontend-sjgl/.eslintignore
create mode 100644 frontend-sjgl/.eslintrc.js
create mode 100644 frontend-sjgl/.gitignore
create mode 100644 frontend-sjgl/.lingma/settings.local.json
create mode 100644 frontend-sjgl/.npmrc
create mode 100644 frontend-sjgl/.prettierignore
create mode 100644 frontend-sjgl/.prettierrc.js
create mode 100644 frontend-sjgl/LICENSE
create mode 100644 frontend-sjgl/commitlint.config.js
create mode 100644 frontend-sjgl/docs/地图模块-3D Cesium实施计划.md
create mode 100644 frontend-sjgl/docs/地图模块-OpenLayers抽吸与碰撞分析.md
create mode 100644 frontend-sjgl/docs/地图模块-抽吸规则与参数说明.md
create mode 100644 frontend-sjgl/docs/地图模块-详细说明.md
create mode 100644 frontend-sjgl/docs/地图模块现状与改造方案.md
create mode 100644 frontend-sjgl/docs/地图模块重构实施清单.md
create mode 100644 frontend-sjgl/index.html
create mode 100644 frontend-sjgl/package.json
create mode 100644 frontend-sjgl/pnpm-lock.yaml
create mode 100644 frontend-sjgl/postcss.config.js
create mode 100644 frontend-sjgl/public/file/注册操作手册.docx
create mode 100644 frontend-sjgl/public/file/过鱼设施数据填报操作手册.docx
create mode 100644 frontend-sjgl/public/file/鱼种类字典数据.xlsx
create mode 100644 frontend-sjgl/public/logo.png
create mode 100644 frontend-sjgl/readme.md
create mode 100644 frontend-sjgl/src/App.vue
create mode 100644 frontend-sjgl/src/api/DataQueryMenuModule/index.ts
create mode 100644 frontend-sjgl/src/api/auth/index.ts
create mode 100644 frontend-sjgl/src/api/auth/types.ts
create mode 100644 frontend-sjgl/src/api/changePassWord/index.ts
create mode 100644 frontend-sjgl/src/api/dept/index.ts
create mode 100644 frontend-sjgl/src/api/dept/types.ts
create mode 100644 frontend-sjgl/src/api/dict/index.ts
create mode 100644 frontend-sjgl/src/api/dict/types.ts
create mode 100644 frontend-sjgl/src/api/guoYuSheShiShuJuTianBao/index.ts
create mode 100644 frontend-sjgl/src/api/map.ts
create mode 100644 frontend-sjgl/src/api/mapModal/index.ts
create mode 100644 frontend-sjgl/src/api/menu/index.ts
create mode 100644 frontend-sjgl/src/api/menu/types.ts
create mode 100644 frontend-sjgl/src/api/record/index.ts
create mode 100644 frontend-sjgl/src/api/role/index.ts
create mode 100644 frontend-sjgl/src/api/role/types.ts
create mode 100644 frontend-sjgl/src/api/select/index.ts
create mode 100644 frontend-sjgl/src/api/shengPiJiLu/index.ts
create mode 100644 frontend-sjgl/src/api/shiPinJianKong/index.ts
create mode 100644 frontend-sjgl/src/api/sw/index.ts
create mode 100644 frontend-sjgl/src/api/system/alertRules/index.ts
create mode 100644 frontend-sjgl/src/api/system/disposeManage/index.ts
create mode 100644 frontend-sjgl/src/api/system/map/ConfigManagement/index.ts
create mode 100644 frontend-sjgl/src/api/system/map/LayerManagement/index.ts
create mode 100644 frontend-sjgl/src/api/system/map/LegendStructure/index.ts
create mode 100644 frontend-sjgl/src/api/system/map/TiltPhotoManagement/index.ts
create mode 100644 frontend-sjgl/src/api/system/map/pushManagement/index.ts
create mode 100644 frontend-sjgl/src/api/user/index.ts
create mode 100644 frontend-sjgl/src/api/user/types.ts
create mode 100644 frontend-sjgl/src/assets/MenuIcon/czan_xz.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/dh_sq.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/dh_sq1.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/dh_sy.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/dh_sy1.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/dh_sz.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/dh_sz1.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/dh_xm.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/dh_xm1.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/dh_xx.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/dh_xx1.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/gb.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/grzx_tx.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/grzx_xg.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/jscz_rl.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/jscz_sc.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/jscz_sc1.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/jscz_scdc.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/jscz_xz.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_an.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_an1.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_cd.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_cd1.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_czmm.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_jt.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_jt1.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_qx.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_sc.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_sc1.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_sc2.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_td.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_td1.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_td2.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_xg.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_xg1.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_xg2.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_zml.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_zml1.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_zyw.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/lbcz_zz.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/top_qp.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/top_qp1.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/top_ss.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/top_tx.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/top_zh.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/ts.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/u117_mouseOver.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/u119.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/u241.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/u343.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/u697.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/u81.png
create mode 100644 frontend-sjgl/src/assets/MenuIcon/xqing.png
create mode 100644 frontend-sjgl/src/assets/components/arrow-down.png
create mode 100644 frontend-sjgl/src/assets/components/arrow-left.png
create mode 100644 frontend-sjgl/src/assets/components/arrow-right.png
create mode 100644 frontend-sjgl/src/assets/components/arrow-up.png
create mode 100644 frontend-sjgl/src/assets/components/bg-toggle.e1dabcf3.svg
create mode 100644 frontend-sjgl/src/assets/components/bg_sjtb.png
create mode 100644 frontend-sjgl/src/assets/components/fgx.svg
create mode 100644 frontend-sjgl/src/assets/components/fish.png
create mode 100644 frontend-sjgl/src/assets/components/guoyu.png
create mode 100644 frontend-sjgl/src/assets/components/shenpibohui.png
create mode 100644 frontend-sjgl/src/assets/components/shenpitongguo.png
create mode 100644 frontend-sjgl/src/assets/components/tishi.png
create mode 100644 frontend-sjgl/src/assets/components/tishi1.png
create mode 100644 frontend-sjgl/src/assets/icons/advert.svg
create mode 100644 frontend-sjgl/src/assets/icons/brand.svg
create mode 100644 frontend-sjgl/src/assets/icons/bug.svg
create mode 100644 frontend-sjgl/src/assets/icons/cascader.svg
create mode 100644 frontend-sjgl/src/assets/icons/chart.svg
create mode 100644 frontend-sjgl/src/assets/icons/client.svg
create mode 100644 frontend-sjgl/src/assets/icons/close.svg
create mode 100644 frontend-sjgl/src/assets/icons/close_all.svg
create mode 100644 frontend-sjgl/src/assets/icons/close_left.svg
create mode 100644 frontend-sjgl/src/assets/icons/close_other.svg
create mode 100644 frontend-sjgl/src/assets/icons/close_right.svg
create mode 100644 frontend-sjgl/src/assets/icons/coupon.svg
create mode 100644 frontend-sjgl/src/assets/icons/dashboard.svg
create mode 100644 frontend-sjgl/src/assets/icons/dict.svg
create mode 100644 frontend-sjgl/src/assets/icons/dict_item.svg
create mode 100644 frontend-sjgl/src/assets/icons/download.svg
create mode 100644 frontend-sjgl/src/assets/icons/drag.svg
create mode 100644 frontend-sjgl/src/assets/icons/edit.svg
create mode 100644 frontend-sjgl/src/assets/icons/exit-fullscreen.svg
create mode 100644 frontend-sjgl/src/assets/icons/eye-open.svg
create mode 100644 frontend-sjgl/src/assets/icons/eye.svg
create mode 100644 frontend-sjgl/src/assets/icons/fishxz.7410ec88.svg
create mode 100644 frontend-sjgl/src/assets/icons/fullscreen.svg
create mode 100644 frontend-sjgl/src/assets/icons/github.svg
create mode 100644 frontend-sjgl/src/assets/icons/goods-list.svg
create mode 100644 frontend-sjgl/src/assets/icons/goods.svg
create mode 100644 frontend-sjgl/src/assets/icons/gth.svg
create mode 100644 frontend-sjgl/src/assets/icons/guide.svg
create mode 100644 frontend-sjgl/src/assets/icons/homepage.svg
create mode 100644 frontend-sjgl/src/assets/icons/lab.svg
create mode 100644 frontend-sjgl/src/assets/icons/language.svg
create mode 100644 frontend-sjgl/src/assets/icons/link.svg
create mode 100644 frontend-sjgl/src/assets/icons/locationIcon.png
create mode 100644 frontend-sjgl/src/assets/icons/menu.svg
create mode 100644 frontend-sjgl/src/assets/icons/menuActiveBg.svg
create mode 100644 frontend-sjgl/src/assets/icons/message.svg
create mode 100644 frontend-sjgl/src/assets/icons/money.svg
create mode 100644 frontend-sjgl/src/assets/icons/monitor.svg
create mode 100644 frontend-sjgl/src/assets/icons/nested.svg
create mode 100644 frontend-sjgl/src/assets/icons/number.svg
create mode 100644 frontend-sjgl/src/assets/icons/order.svg
create mode 100644 frontend-sjgl/src/assets/icons/password.svg
create mode 100644 frontend-sjgl/src/assets/icons/peoples.svg
create mode 100644 frontend-sjgl/src/assets/icons/perm.svg
create mode 100644 frontend-sjgl/src/assets/icons/publish.svg
create mode 100644 frontend-sjgl/src/assets/icons/qq.svg
create mode 100644 frontend-sjgl/src/assets/icons/rabbitmq.svg
create mode 100644 frontend-sjgl/src/assets/icons/rate.svg
create mode 100644 frontend-sjgl/src/assets/icons/redis.svg
create mode 100644 frontend-sjgl/src/assets/icons/refresh.svg
create mode 100644 frontend-sjgl/src/assets/icons/role.svg
create mode 100644 frontend-sjgl/src/assets/icons/security.svg
create mode 100644 frontend-sjgl/src/assets/icons/shopping.svg
create mode 100644 frontend-sjgl/src/assets/icons/size.svg
create mode 100644 frontend-sjgl/src/assets/icons/skill.svg
create mode 100644 frontend-sjgl/src/assets/icons/system.svg
create mode 100644 frontend-sjgl/src/assets/icons/theme.svg
create mode 100644 frontend-sjgl/src/assets/icons/tree.svg
create mode 100644 frontend-sjgl/src/assets/icons/user.svg
create mode 100644 frontend-sjgl/src/assets/icons/uv.svg
create mode 100644 frontend-sjgl/src/assets/icons/valid_code.svg
create mode 100644 frontend-sjgl/src/assets/icons/wechat.svg
create mode 100644 frontend-sjgl/src/assets/images/bg_sjtb.png
create mode 100644 frontend-sjgl/src/assets/images/fish_survey_liang.png
create mode 100644 frontend-sjgl/src/assets/images/fish_survey_shu.png
create mode 100644 frontend-sjgl/src/assets/images/fish_survey_zhong.png
create mode 100644 frontend-sjgl/src/assets/images/linefeed.png
create mode 100644 frontend-sjgl/src/assets/images/login-bg.jpg
create mode 100644 frontend-sjgl/src/assets/images/logo.png
create mode 100644 frontend-sjgl/src/assets/images/map-dixingtu.png
create mode 100644 frontend-sjgl/src/assets/images/map-shiliangtu.png
create mode 100644 frontend-sjgl/src/assets/images/map-yingxiangtu.png
create mode 100644 frontend-sjgl/src/assets/images/mapTip/bottom.png
create mode 100644 frontend-sjgl/src/assets/images/mapTip/bottom@175.png
create mode 100644 frontend-sjgl/src/assets/images/mapTip/bottom@215.png
create mode 100644 frontend-sjgl/src/assets/images/mapTip/bottom@260.png
create mode 100644 frontend-sjgl/src/assets/images/mapTip/center.png
create mode 100644 frontend-sjgl/src/assets/images/mapTip/center@175.png
create mode 100644 frontend-sjgl/src/assets/images/mapTip/center@215.png
create mode 100644 frontend-sjgl/src/assets/images/mapTip/center@260.png
create mode 100644 frontend-sjgl/src/assets/images/mapTip/map-dxsdzGuihuaNetMonitor.svg
create mode 100644 frontend-sjgl/src/assets/images/mapTip/map-dxsdzYijianNetMonitor.svg
create mode 100644 frontend-sjgl/src/assets/images/mapTip/map-dxsdzZaijianNetMonitor.svg
create mode 100644 frontend-sjgl/src/assets/images/mapTip/map-yingxiangtu1.png
create mode 100644 frontend-sjgl/src/assets/images/mapTip/map-zxsdzGuihuaNetMonitor.svg
create mode 100644 frontend-sjgl/src/assets/images/mapTip/map-zxsdzYijianNetMonitor.svg
create mode 100644 frontend-sjgl/src/assets/images/mapTip/map-zxsdzZaijianNetMonitor.svg
create mode 100644 frontend-sjgl/src/assets/images/mapTip/top.png
create mode 100644 frontend-sjgl/src/assets/images/mapTip/top@175.png
create mode 100644 frontend-sjgl/src/assets/images/mapTip/top@215.png
create mode 100644 frontend-sjgl/src/assets/images/mapTip/top@260.png
create mode 100644 frontend-sjgl/src/assets/images/nineSections-dixing.png
create mode 100644 frontend-sjgl/src/assets/images/nineSections-shiliang.png
create mode 100644 frontend-sjgl/src/assets/images/nineSections-yingxiang.png
create mode 100644 frontend-sjgl/src/assets/images/videFm.jpg
create mode 100644 frontend-sjgl/src/assets/svg/diwenshuijianhuan.svg
create mode 100644 frontend-sjgl/src/assets/svg/guojiashuiwenzhan.svg
create mode 100644 frontend-sjgl/src/assets/svg/guojiashuizhizhan.svg
create mode 100644 frontend-sjgl/src/assets/svg/liuliangjiancezhan.svg
create mode 100644 frontend-sjgl/src/assets/svg/qixiangzhan.svg
create mode 100644 frontend-sjgl/src/assets/svg/qixidi.svg
create mode 100644 frontend-sjgl/src/assets/svg/shipinjiankongshebei.svg
create mode 100644 frontend-sjgl/src/assets/svg/shuizhijiancezhan.svg
create mode 100644 frontend-sjgl/src/assets/svg/zengzhizhanshuizhizhan.svg
create mode 100644 frontend-sjgl/src/assets/svg/zijianshuiwenzhan.svg
create mode 100644 frontend-sjgl/src/components.d.ts
create mode 100644 frontend-sjgl/src/components/BasicSearch/index.vue
create mode 100644 frontend-sjgl/src/components/BasicTable/index.vue
create mode 100644 frontend-sjgl/src/components/MapModal/column.config.ts
create mode 100644 frontend-sjgl/src/components/MapModal/components/AIYXSB/AttachmentPreview.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/AIYXSB/MediaViewer.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/AIYXSB/index.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/Attachment.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/BasicInfo.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/CommonAttachmentModal.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/DZGJ.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/EarlyWarningAlert.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/EcologicalFlow.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/Ecology.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/FishFacilityBuildState.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/FishFacilityMonitorData.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/FishFacilityRunState.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/FishZHFX.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/FlowDischarge.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/FlowMeasure.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/MonitorInfo.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/NoLiveVideo.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/Normal.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/NormalAddedSituation.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/NormalDataMonitoring2.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/NormalOperationData/index.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/NormalOperationData/operationConfig.ts
create mode 100644 frontend-sjgl/src/components/MapModal/components/NormalOperationData/proliferationColumns.ts
create mode 100644 frontend-sjgl/src/components/MapModal/components/NormalResearchSituation.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/PanoramaComponent.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/PanoramaInfo.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/PowerStationProgressLine.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/ProcessDiagram.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/SsspLayer.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/TableInfoComponent.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/VerticalWaterTemperature.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/WarningPrompt.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/WaterQuality.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/WaterTemperature.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/WaterTemperatureRep.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/columnList.ts
create mode 100644 frontend-sjgl/src/components/MapModal/components/liveFootage.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/onSitePhoto.vue
create mode 100644 frontend-sjgl/src/components/MapModal/components/videoInfo.vue
create mode 100644 frontend-sjgl/src/components/MapModal/index.vue
create mode 100644 frontend-sjgl/src/components/MapModal/setting.config.ts
create mode 100644 frontend-sjgl/src/components/Pagination/index.vue
create mode 100644 frontend-sjgl/src/components/Pagination/page.vue
create mode 100644 frontend-sjgl/src/components/SvgIcon/index.vue
create mode 100644 frontend-sjgl/src/components/Upload/MultiUpload.vue
create mode 100644 frontend-sjgl/src/components/Upload/SingleUpload.vue
create mode 100644 frontend-sjgl/src/components/gis/GisView.vue
create mode 100644 frontend-sjgl/src/components/gis/TjCascadeChart.vue
create mode 100644 frontend-sjgl/src/components/gis/TjLayerModal.vue
create mode 100644 frontend-sjgl/src/components/gis/gisUtils.ts
create mode 100644 frontend-sjgl/src/components/gis/map.cesium.ts
create mode 100644 frontend-sjgl/src/components/gis/map.class.ts
create mode 100644 frontend-sjgl/src/components/gis/map.d.ts
create mode 100644 frontend-sjgl/src/components/gis/map.leaflet.ts
create mode 100644 frontend-sjgl/src/components/gis/map.ol.ts
create mode 100644 frontend-sjgl/src/components/gis/mapurlManage.ts
create mode 100644 frontend-sjgl/src/components/gis/ol/point-layer-manager.ts
create mode 100644 frontend-sjgl/src/components/gis/ol/popup-manager.ts
create mode 100644 frontend-sjgl/src/components/gis/ol/region-mask-manager.ts
create mode 100644 frontend-sjgl/src/components/gis/osgbUtils.ts
create mode 100644 frontend-sjgl/src/components/pdf/pdfView.vue
create mode 100644 frontend-sjgl/src/components/previewMedia/index.vue
create mode 100644 frontend-sjgl/src/components/ylfbModal/index.vue
create mode 100644 frontend-sjgl/src/directive/index.ts
create mode 100644 frontend-sjgl/src/directive/permission/index.ts
create mode 100644 frontend-sjgl/src/directive/utils/index.ts
create mode 100644 frontend-sjgl/src/env.d.ts
create mode 100644 frontend-sjgl/src/lang/en.ts
create mode 100644 frontend-sjgl/src/lang/index.ts
create mode 100644 frontend-sjgl/src/lang/zh-cn.ts
create mode 100644 frontend-sjgl/src/layout/components/AppMain.vue
create mode 100644 frontend-sjgl/src/layout/components/Navbar.vue
create mode 100644 frontend-sjgl/src/layout/components/Sidebar/index.vue
create mode 100644 frontend-sjgl/src/layout/components/changePassword.vue
create mode 100644 frontend-sjgl/src/layout/components/index.ts
create mode 100644 frontend-sjgl/src/layout/index.vue
create mode 100644 frontend-sjgl/src/main.ts
create mode 100644 frontend-sjgl/src/modules/jidiSelectorMod.vue
create mode 100644 frontend-sjgl/src/modules/map/application/map-orchestrator.ts
create mode 100644 frontend-sjgl/src/modules/map/domain/legend-deriver.ts
create mode 100644 frontend-sjgl/src/modules/map/domain/map-layer-rules.ts
create mode 100644 frontend-sjgl/src/modules/map/domain/nearby-point-rules.ts
create mode 100644 frontend-sjgl/src/modules/map/stores/map-config.store.ts
create mode 100644 frontend-sjgl/src/modules/map/stores/map-data.store.ts
create mode 100644 frontend-sjgl/src/modules/map/stores/map-view.store.ts
create mode 100644 frontend-sjgl/src/permission.ts
create mode 100644 frontend-sjgl/src/router/index.ts
create mode 100644 frontend-sjgl/src/settings.ts
create mode 100644 frontend-sjgl/src/shims.d.ts
create mode 100644 frontend-sjgl/src/store/composables/useTimeScale.ts
create mode 100644 frontend-sjgl/src/store/index.ts
create mode 100644 frontend-sjgl/src/store/modules/app.ts
create mode 100644 frontend-sjgl/src/store/modules/jidiSelectEvent.ts
create mode 100644 frontend-sjgl/src/store/modules/map.ts
create mode 100644 frontend-sjgl/src/store/modules/model.ts
create mode 100644 frontend-sjgl/src/store/modules/permission.ts
create mode 100644 frontend-sjgl/src/store/modules/shuJuTianBao.ts
create mode 100644 frontend-sjgl/src/store/modules/tagsView.ts
create mode 100644 frontend-sjgl/src/store/modules/ui.ts
create mode 100644 frontend-sjgl/src/store/modules/user.ts
create mode 100644 frontend-sjgl/src/styles/ant-design-vue.scss
create mode 100644 frontend-sjgl/src/styles/element-plus.scss
create mode 100644 frontend-sjgl/src/styles/iconfont/demo.css
create mode 100644 frontend-sjgl/src/styles/iconfont/demo_index.html
create mode 100644 frontend-sjgl/src/styles/iconfont/iconfont.css
create mode 100644 frontend-sjgl/src/styles/iconfont/iconfont.js
create mode 100644 frontend-sjgl/src/styles/iconfont/iconfont.json
create mode 100644 frontend-sjgl/src/styles/iconfont/iconfont.ttf
create mode 100644 frontend-sjgl/src/styles/iconfont/iconfont.woff
create mode 100644 frontend-sjgl/src/styles/iconfont/iconfont.woff2
create mode 100644 frontend-sjgl/src/styles/index.scss
create mode 100644 frontend-sjgl/src/styles/mixin.scss
create mode 100644 frontend-sjgl/src/styles/popup-styles.scss
create mode 100644 frontend-sjgl/src/styles/sidebar.scss
create mode 100644 frontend-sjgl/src/styles/tailwind.scss
create mode 100644 frontend-sjgl/src/styles/variables.module.scss
create mode 100644 frontend-sjgl/src/utils/GisUrlList.ts
create mode 100644 frontend-sjgl/src/utils/auth.ts
create mode 100644 frontend-sjgl/src/utils/buildTimeFilters.ts
create mode 100644 frontend-sjgl/src/utils/drag.ts
create mode 100644 frontend-sjgl/src/utils/enumeration.ts
create mode 100644 frontend-sjgl/src/utils/exportExcel.ts
create mode 100644 frontend-sjgl/src/utils/filter.ts
create mode 100644 frontend-sjgl/src/utils/i18n.ts
create mode 100644 frontend-sjgl/src/utils/index.ts
create mode 100644 frontend-sjgl/src/utils/localStorage.ts
create mode 100644 frontend-sjgl/src/utils/popupHtmlGenerator.ts
create mode 100644 frontend-sjgl/src/utils/request.ts
create mode 100644 frontend-sjgl/src/utils/resize.ts
create mode 100644 frontend-sjgl/src/utils/rsaEncrypt.ts
create mode 100644 frontend-sjgl/src/utils/scroll-to.ts
create mode 100644 frontend-sjgl/src/utils/sessionStorage.ts
create mode 100644 frontend-sjgl/src/views/conventionalHydropower/Approval/ApprovalSearch.vue
create mode 100644 frontend-sjgl/src/views/conventionalHydropower/Approval/index.vue
create mode 100644 frontend-sjgl/src/views/conventionalHydropower/BasicData/BasicDataSearch.vue
create mode 100644 frontend-sjgl/src/views/conventionalHydropower/BasicData/CustomColumnModal.vue
create mode 100644 frontend-sjgl/src/views/conventionalHydropower/BasicData/DeleteConfirmModal.vue
create mode 100644 frontend-sjgl/src/views/conventionalHydropower/BasicData/EditPowerModal.vue
create mode 100644 frontend-sjgl/src/views/conventionalHydropower/BasicData/index.vue
create mode 100644 frontend-sjgl/src/views/conventionalHydropower/FishResource/FishResourceSearch.vue
create mode 100644 frontend-sjgl/src/views/conventionalHydropower/FishResource/index.vue
create mode 100644 frontend-sjgl/src/views/error-page/401.vue
create mode 100644 frontend-sjgl/src/views/error-page/404.vue
create mode 100644 frontend-sjgl/src/views/login/index.vue
create mode 100644 frontend-sjgl/src/views/monitorData/Export/index.vue
create mode 100644 frontend-sjgl/src/views/monitorData/FishData/FishDataSearch.vue
create mode 100644 frontend-sjgl/src/views/monitorData/FishData/index.vue
create mode 100644 frontend-sjgl/src/views/monitorData/FishRelease/FishReleaseSearch.vue
create mode 100644 frontend-sjgl/src/views/monitorData/FishRelease/index.vue
create mode 100644 frontend-sjgl/src/views/monitorData/FlowData/FlowDataSearch.vue
create mode 100644 frontend-sjgl/src/views/monitorData/FlowData/index.vue
create mode 100644 frontend-sjgl/src/views/monitorData/FlowStation/EditFlowStationModal.vue
create mode 100644 frontend-sjgl/src/views/monitorData/FlowStation/FlowStationSearch.vue
create mode 100644 frontend-sjgl/src/views/monitorData/FlowStation/index.vue
create mode 100644 frontend-sjgl/src/views/monitorData/SurfaceTemp/EditSurfaceTempModal.vue
create mode 100644 frontend-sjgl/src/views/monitorData/SurfaceTemp/SurfaceTempSearch.vue
create mode 100644 frontend-sjgl/src/views/monitorData/SurfaceTemp/index.vue
create mode 100644 frontend-sjgl/src/views/monitorData/VerticalTemp/EditVerticalTempModal.vue
create mode 100644 frontend-sjgl/src/views/monitorData/VerticalTemp/VerticalTempSearch.vue
create mode 100644 frontend-sjgl/src/views/monitorData/VerticalTemp/index.vue
create mode 100644 frontend-sjgl/src/views/monitorData/WaterData/EditWaterDataModal.vue
create mode 100644 frontend-sjgl/src/views/monitorData/WaterData/WaterDataSearch.vue
create mode 100644 frontend-sjgl/src/views/monitorData/WaterData/index.vue
create mode 100644 frontend-sjgl/src/views/redirect/index.vue
create mode 100644 frontend-sjgl/src/views/register/index.vue
create mode 100644 frontend-sjgl/src/views/shiPinJianKong/components/LiveVideoBox.vue
create mode 100644 frontend-sjgl/src/views/shiPinJianKong/shiPinJianKongZhuanTi.vue
create mode 100644 frontend-sjgl/src/views/shuJuFenXi/components/export.js
create mode 100644 frontend-sjgl/src/views/shuJuFenXi/components/utils.ts
create mode 100644 frontend-sjgl/src/views/shuJuFenXi/shuiWenShuJuFenXi.vue
create mode 100644 frontend-sjgl/src/views/shuJuTianBao/guoYuDaoShuTongJi/guoYuDaoShuTongJiSearch.vue
create mode 100644 frontend-sjgl/src/views/shuJuTianBao/guoYuDaoShuTongJi/index.vue
create mode 100644 frontend-sjgl/src/views/shuJuTianBao/guoYuSheShiShuJuHistory/guoYuSheShiShuJuHistorySearch.vue
create mode 100644 frontend-sjgl/src/views/shuJuTianBao/guoYuSheShiShuJuHistory/index.vue
create mode 100644 frontend-sjgl/src/views/shuJuTianBao/guoYuSheShiShuJuTianBao/guoYuSheShiShuJuTianBaoForm.vue
create mode 100644 frontend-sjgl/src/views/shuJuTianBao/guoYuSheShiShuJuTianBao/guoYuSheShiShuJuTianBaoSearch.vue
create mode 100644 frontend-sjgl/src/views/shuJuTianBao/guoYuSheShiShuJuTianBao/guoYuSheShiShuJuTianBaoTable.vue
create mode 100644 frontend-sjgl/src/views/shuJuTianBao/guoYuSheShiShuJuTianBao/index.vue
create mode 100644 frontend-sjgl/src/views/shuJuTianBao/shengPiJiLu/approvalDetailSearch.vue
create mode 100644 frontend-sjgl/src/views/shuJuTianBao/shengPiJiLu/approvalLogSearch.vue
create mode 100644 frontend-sjgl/src/views/shuJuTianBao/shengPiJiLu/changeLogSearch.vue
create mode 100644 frontend-sjgl/src/views/shuJuTianBao/shengPiJiLu/index.vue
create mode 100644 frontend-sjgl/src/views/shuJuTianBao/shengPiJiLu/shengPiJiLuSearch.vue
create mode 100644 frontend-sjgl/src/views/system/ConfigManagement/ConfigManagementForm.vue
create mode 100644 frontend-sjgl/src/views/system/ConfigManagement/ConfigManagementSearch.vue
create mode 100644 frontend-sjgl/src/views/system/ConfigManagement/StationSelectModal.vue
create mode 100644 frontend-sjgl/src/views/system/ConfigManagement/index.vue
create mode 100644 frontend-sjgl/src/views/system/StationManagement/StationManagementForm.vue
create mode 100644 frontend-sjgl/src/views/system/StationManagement/StationManagementSearch.vue
create mode 100644 frontend-sjgl/src/views/system/StationManagement/index.vue
create mode 100644 frontend-sjgl/src/views/system/TiltPhotoManagement/TiltPhotoManagementForm.vue
create mode 100644 frontend-sjgl/src/views/system/TiltPhotoManagement/TiltPhotoManagementSearch.vue
create mode 100644 frontend-sjgl/src/views/system/TiltPhotoManagement/index.vue
create mode 100644 frontend-sjgl/src/views/system/alertRules/components/ConfigManagement/ConfigManagementForm.vue
create mode 100644 frontend-sjgl/src/views/system/alertRules/components/ConfigManagement/ConfigManagementSearch.vue
create mode 100644 frontend-sjgl/src/views/system/alertRules/components/ConfigManagement/index.vue
create mode 100644 frontend-sjgl/src/views/system/alertRules/components/RulesManagement/LayerManagementForm.vue
create mode 100644 frontend-sjgl/src/views/system/alertRules/components/RulesManagement/LayerManagementSearch.vue
create mode 100644 frontend-sjgl/src/views/system/alertRules/components/RulesManagement/index.vue
create mode 100644 frontend-sjgl/src/views/system/alertRules/index.vue
create mode 100644 frontend-sjgl/src/views/system/dept/index.vue
create mode 100644 frontend-sjgl/src/views/system/dict/index.vue
create mode 100644 frontend-sjgl/src/views/system/disposeManage/disposeManageForm.vue
create mode 100644 frontend-sjgl/src/views/system/disposeManage/disposeManageSearch.vue
create mode 100644 frontend-sjgl/src/views/system/disposeManage/index.vue
create mode 100644 frontend-sjgl/src/views/system/map/components/LayerManagement/LayerManagementForm.vue
create mode 100644 frontend-sjgl/src/views/system/map/components/LayerManagement/LayerManagementSearch.vue
create mode 100644 frontend-sjgl/src/views/system/map/components/LayerManagement/index.vue
create mode 100644 frontend-sjgl/src/views/system/map/components/LegendData/LegendDataForm.vue
create mode 100644 frontend-sjgl/src/views/system/map/components/LegendData/LegendDataSearch.vue
create mode 100644 frontend-sjgl/src/views/system/map/components/LegendData/LegendDataSelectedConfig.vue
create mode 100644 frontend-sjgl/src/views/system/map/components/LegendData/LegendDataSelectedConfigForm.vue
create mode 100644 frontend-sjgl/src/views/system/map/components/LegendData/index.vue
create mode 100644 frontend-sjgl/src/views/system/map/components/LegendStructure/LegendStructureForm.vue
create mode 100644 frontend-sjgl/src/views/system/map/components/LegendStructure/LegendStructureSearch.vue
create mode 100644 frontend-sjgl/src/views/system/map/components/LegendStructure/index.vue
create mode 100644 frontend-sjgl/src/views/system/map/index.vue
create mode 100644 frontend-sjgl/src/views/system/menu/index.vue
create mode 100644 frontend-sjgl/src/views/system/pushManagement/components/ConfigManagement/ConfigManagementForm.vue
create mode 100644 frontend-sjgl/src/views/system/pushManagement/components/ConfigManagement/ConfigManagementSearch.vue
create mode 100644 frontend-sjgl/src/views/system/pushManagement/components/ConfigManagement/CronPicker.vue
create mode 100644 frontend-sjgl/src/views/system/pushManagement/components/ConfigManagement/PushTargetModal.vue
create mode 100644 frontend-sjgl/src/views/system/pushManagement/components/ConfigManagement/index.vue
create mode 100644 frontend-sjgl/src/views/system/pushManagement/components/HistoryManagement/LayerManagementForm.vue
create mode 100644 frontend-sjgl/src/views/system/pushManagement/components/HistoryManagement/LayerManagementSearch.vue
create mode 100644 frontend-sjgl/src/views/system/pushManagement/components/HistoryManagement/PushStatusModal/index.vue
create mode 100644 frontend-sjgl/src/views/system/pushManagement/components/HistoryManagement/index.vue
create mode 100644 frontend-sjgl/src/views/system/pushManagement/index.vue
create mode 100644 frontend-sjgl/src/views/system/record/index.vue
create mode 100644 frontend-sjgl/src/views/system/review/index.vue
create mode 100644 frontend-sjgl/src/views/system/role/index.vue
create mode 100644 frontend-sjgl/src/views/system/user/index.vue
create mode 100644 frontend-sjgl/src/views/system/user/personalCenter.vue
create mode 100644 frontend-sjgl/tailwind.config.js
create mode 100644 frontend-sjgl/tsconfig.json
create mode 100644 frontend-sjgl/types/components.d.ts
create mode 100644 frontend-sjgl/types/env.d.ts
create mode 100644 frontend-sjgl/types/global.d.ts
create mode 100644 frontend-sjgl/vite.config.ts
create mode 100644 frontend/src/api/system/alertRules/index.ts
diff --git a/frontend-sjgl/.editorconfig b/frontend-sjgl/.editorconfig
new file mode 100644
index 00000000..3c3960b2
--- /dev/null
+++ b/frontend-sjgl/.editorconfig
@@ -0,0 +1,15 @@
+# http://editorconfig.org
+
+root = true
+
+[*] # 表示所有文件适用
+charset = utf-8 # 设置文件字符集为 utf-8
+indent_style = space # 缩进风格(tab | space)
+indent_size = 2 # 缩进大小
+end_of_line = lf # 控制换行类型(lf | cr | crlf)
+trim_trailing_whitespace = true # 去除行首的任意空白字符
+insert_final_newline = true # 始终在文件末尾插入一个新行
+
+[*.md] # 表示仅 md 文件适用以下规则
+max_line_length = off
+trim_trailing_whitespace = false
\ No newline at end of file
diff --git a/frontend-sjgl/.env.development b/frontend-sjgl/.env.development
new file mode 100644
index 00000000..baea33a7
--- /dev/null
+++ b/frontend-sjgl/.env.development
@@ -0,0 +1,22 @@
+## 开发环境
+
+# 变量必须以 VITE_ 为前缀才能暴露给外部读取
+NODE_ENV='development'
+
+VITE_APP_TITLE = '全过程数据管理子系统'
+VITE_APP_PORT = 5000
+VITE_APP_BASE_API = '/dev-api'
+# 本地环境
+VITE_APP_BASE_URL = 'http://localhost:8093'
+# 测试环境
+# VITE_APP_BASE_URL = 'http://172.16.21.142:8093'
+# 汤伟
+VITE_APP_BASE_URL = 'http://10.84.111.235:8093'
+# 李林
+# VITE_APP_BASE_URL = 'http://10.84.111.25:8093'
+
+## 开发环境 附件服务地址
+VITE_APP_ATTACHMENT_URL = 'https://211.99.26.225:12125'
+# 地图服务地址
+VITE_APP_MAP_URL = 'https://211.99.26.225:18085'
+# ?menu=systemManageMenu&page=disposeManage
\ No newline at end of file
diff --git a/frontend-sjgl/.env.production b/frontend-sjgl/.env.production
new file mode 100644
index 00000000..7fefa529
--- /dev/null
+++ b/frontend-sjgl/.env.production
@@ -0,0 +1,14 @@
+## 生产环境
+NODE_ENV='production'
+
+VITE_APP_TITLE = 'qgc-buji-web'
+VITE_APP_PORT = 5000
+VITE_APP_BASE_API = '/prod-api'
+## 生产环境API地址
+VITE_APP_BASE_URL = 'http://localhost:8093'
+## 生产环境导入预览地址
+VITE_APP_BASE_API_URL = 'https://211.99.26.225:12130/prod-api'
+## 生产环境 附件服务地址
+VITE_APP_ATTACHMENT_URL = 'https://211.99.26.225:12125'
+# 地图服务地址
+VITE_APP_MAP_URL = 'https://211.99.26.225:18085'
\ No newline at end of file
diff --git a/frontend-sjgl/.env.staging b/frontend-sjgl/.env.staging
new file mode 100644
index 00000000..fb2c2786
--- /dev/null
+++ b/frontend-sjgl/.env.staging
@@ -0,0 +1,6 @@
+## 模拟环境
+NODE_ENV='staging'
+
+VITE_APP_TITLE = 'qgc-buji-web'
+VITE_APP_PORT = 3000
+VITE_APP_BASE_API = '/prod--api'
diff --git a/frontend-sjgl/.eslintignore b/frontend-sjgl/.eslintignore
new file mode 100644
index 00000000..46d4b177
--- /dev/null
+++ b/frontend-sjgl/.eslintignore
@@ -0,0 +1,16 @@
+*.sh
+node_modules
+*.md
+*.woff
+*.ttf
+.vscode
+.idea
+dist
+/public
+/docs
+.husky
+.local
+/bin
+.eslintrc.js
+prettier.config.js
+src/assets
\ No newline at end of file
diff --git a/frontend-sjgl/.eslintrc.js b/frontend-sjgl/.eslintrc.js
new file mode 100644
index 00000000..7819e1fc
--- /dev/null
+++ b/frontend-sjgl/.eslintrc.js
@@ -0,0 +1,33 @@
+module.exports = {
+ env: {
+ browser: true,
+ es2021: true,
+ node: true
+ },
+ globals: {
+ defineProps: 'readonly',
+ defineEmits: 'readonly',
+ defineExpose: 'readonly',
+ withDefaults: 'readonly',
+ DialogType: "readonly",
+ OptionType: "readonly",
+ },
+ parser: 'vue-eslint-parser',
+ extends: [
+ 'eslint:recommended',
+ 'plugin:vue/vue3-essential',
+ 'plugin:@typescript-eslint/recommended'
+ ],
+ parserOptions: {
+ ecmaVersion: 'latest',
+ parser: '@typescript-eslint/parser',
+ sourceType: 'module'
+ },
+ plugins: ['vue', '@typescript-eslint'],
+ rules: {
+ 'vue/multi-word-component-names': 'off',
+ '@typescript-eslint/no-empty-function': 'off', // 关闭空方法检查
+ '@typescript-eslint/no-explicit-any': 'off', // 关闭any类型的警告
+ 'vue/no-v-model-argument': 'off'
+ }
+};
diff --git a/frontend-sjgl/.gitignore b/frontend-sjgl/.gitignore
new file mode 100644
index 00000000..1da66c1e
--- /dev/null
+++ b/frontend-sjgl/.gitignore
@@ -0,0 +1,17 @@
+node_modules
+.DS_Store
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.local
+
+package-lock.json
+yarn.lock
\ No newline at end of file
diff --git a/frontend-sjgl/.lingma/settings.local.json b/frontend-sjgl/.lingma/settings.local.json
new file mode 100644
index 00000000..097b7bf4
--- /dev/null
+++ b/frontend-sjgl/.lingma/settings.local.json
@@ -0,0 +1,4 @@
+{
+ "permissions": {},
+ "outputStyle": "Vibe"
+}
\ No newline at end of file
diff --git a/frontend-sjgl/.npmrc b/frontend-sjgl/.npmrc
new file mode 100644
index 00000000..755f072c
--- /dev/null
+++ b/frontend-sjgl/.npmrc
@@ -0,0 +1,5 @@
+registry=https://registry.npmmirror.com
+fetch-retries=5
+strict-peer-dependencies=false
+# 添加 Node.js 内存配置
+node-options=--max-old-space-size=4096
\ No newline at end of file
diff --git a/frontend-sjgl/.prettierignore b/frontend-sjgl/.prettierignore
new file mode 100644
index 00000000..d251d2eb
--- /dev/null
+++ b/frontend-sjgl/.prettierignore
@@ -0,0 +1,9 @@
+/dist/*
+.local
+.output.js
+/node_modules/**
+
+**/*.svg
+**/*.sh
+
+/public/*
\ No newline at end of file
diff --git a/frontend-sjgl/.prettierrc.js b/frontend-sjgl/.prettierrc.js
new file mode 100644
index 00000000..0a62ee56
--- /dev/null
+++ b/frontend-sjgl/.prettierrc.js
@@ -0,0 +1,36 @@
+/**
+ * 代码格式化配置
+ */
+module.exports = {
+ // 指定每个缩进级别的空格数
+ tabWidth: 2,
+ // 使用制表符而不是空格缩进行
+ useTabs: false,
+ // 在语句末尾打印分号
+ semi: true,
+ // 使用单引号而不是双引号
+ singleQuote: true,
+ // 更改引用对象属性的时间 可选值""
+ quoteProps: 'as-needed',
+ // 多行时尽可能打印尾随逗号。(例如,单行数组永远不会出现逗号结尾。) 可选值"",默认none
+ trailingComma: 'none',
+ // 在对象文字中的括号之间打印空格
+ bracketSpacing: true,
+ // 在单独的箭头函数参数周围包括括号 always:(x) => x \ avoid:x => x
+ arrowParens: 'avoid',
+ // 这两个选项可用于格式化以给定字符偏移量(分别包括和不包括)开始和结束的代码
+ rangeStart: 0,
+ rangeEnd: Infinity,
+ // 指定要使用的解析器,不需要写文件开头的 @prettier
+ requirePragma: false,
+ // 不需要自动在文件开头插入 @prettier
+ insertPragma: false,
+ // 换行设置 always\never\preserve
+ proseWrap: 'never',
+ // 指定HTML文件的全局空格敏感度 css\strict\ignore
+ htmlWhitespaceSensitivity: 'css',
+ // Vue文件脚本和样式标签缩进
+ vueIndentScriptAndStyle: false,
+ // 换行符使用 lf 结尾是 可选值""
+ endOfLine: 'lf',
+};
diff --git a/frontend-sjgl/LICENSE b/frontend-sjgl/LICENSE
new file mode 100644
index 00000000..26602549
--- /dev/null
+++ b/frontend-sjgl/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 有来开源组织
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/frontend-sjgl/commitlint.config.js b/frontend-sjgl/commitlint.config.js
new file mode 100644
index 00000000..efff0540
--- /dev/null
+++ b/frontend-sjgl/commitlint.config.js
@@ -0,0 +1,26 @@
+module.exports = {
+ // 继承的规则
+ extends: ['@commitlint/config-conventional'],
+ // 定义规则类型
+ rules: {
+ // type 类型定义,表示 git 提交的 type 必须在以下类型范围内
+ 'type-enum': [
+ 2,
+ 'always',
+ [
+ 'feat', // 新功能 feature
+ 'fix', // 修复 bug
+ 'docs', // 文档注释
+ 'style', // 代码格式(不影响代码运行的变动)
+ 'refactor', // 重构(既不增加新功能,也不是修复bug)
+ 'perf', // 性能优化
+ 'test', // 增加测试
+ 'chore', // 构建过程或辅助工具的变动
+ 'revert', // 回退
+ 'build' // 打包
+ ]
+ ],
+ // subject 大小写不做校验
+ 'subject-case': [0]
+ }
+};
diff --git a/frontend-sjgl/docs/地图模块-3D Cesium实施计划.md b/frontend-sjgl/docs/地图模块-3D Cesium实施计划.md
new file mode 100644
index 00000000..9b22b1b0
--- /dev/null
+++ b/frontend-sjgl/docs/地图模块-3D Cesium实施计划.md
@@ -0,0 +1,479 @@
+# 地图模块 3D Cesium 实施计划
+
+## 1. 目标
+
+在现有地图体系下补齐 `3D(Cesium)` 视图能力,使其尽量复用 `2D(OpenLayers)` 的业务编排结果,满足以下要求:
+
+- 3D 默认进入中国视角,不再落到美国区域。
+- 3D 初始化时显示过渡动画,再定位到中国。
+- 3D 保留基础底图加载能力,但不提供底图切换面板。
+- 3D 支持锚点展示。
+- 3D 支持与 2D 一致的鼠标悬停 popup,样式复用现有 popup。
+- 3D 支持与 2D 一致的锚点点击行为,点击后打开同一套详情弹框逻辑。
+- 菜单切换、图层树勾选、图例勾选后,3D 锚点与 2D 一样联动变化。
+- 3D 必须复用 `eng_point` 的层级显示规则,中型水电站仅在 `ENG_POINT_MEDIUM_VISIBLE_ZOOM = 7.5` 以上显示。
+
+## 2. 2D 现状梳理
+
+当前 `2D` 的能力并不是散落在页面里,而是已经形成了比较清晰的分层:
+
+### 2.1 页面入口
+
+- `src/components/gis/GisView.vue`
+- 负责挂载地图容器、popup 容器、地图控制器、图例、图层树。
+- 页面只调用 `mapOrchestrator.mountView()` 和 `handlePageChange()`,不直接拼地图业务。
+
+### 2.2 地图编排层
+
+- `src/modules/map/application/map-orchestrator.ts`
+- 负责页面初始化、菜单切换、图层配置加载、图例配置加载、基地切换、缩放联动。
+- 2D/3D 都应尽量复用这一层,避免在 Cesium 侧另起一套业务流程。
+
+### 2.3 地图统一门面
+
+- `src/components/gis/map.class.ts`
+- 对外暴露统一接口,如:
+ - `addBaseDataLayer`
+ - `addInitDataLayer`
+ - `mdLayerTreeShowOrHidden`
+ - `setLegendPointVisible`
+ - `controlBaseLayerTreeShowAndHidden`
+ - `initPopupOverlay`
+ - `flyTopanto`
+- 业务层只认这套接口,不应感知底层是 `OpenLayers` 还是 `Cesium`。
+
+### 2.4 2D 地图能力落点
+
+- `src/components/gis/map.ol.ts`
+- 已实现的关键能力:
+ - 默认中国视角初始化
+ - 基础底图加载与切换
+ - 点位图层注册和显隐
+ - 图例控制单类锚点显隐
+ - 鼠标 hover popup
+ - click 打开详情弹窗
+ - 基地裁切与底图遮罩
+ - 缩放/移动后的批量 popup 和标签刷新
+
+### 2.5 2D 锚点与 popup 支撑
+
+- `src/components/gis/ol/point-layer-manager.ts`
+ - 负责将点位数据转成地图要素、分层、索引、图例显隐。
+- `src/components/gis/ol/popup-manager.ts`
+ - 负责 hover 命中、popup DOM 内容复用、批量 popup。
+
+### 2.6 图层树和图例交互
+
+- `src/components/mapController/LayerController.vue`
+ - 图层树勾选后走 `mapOrchestrator.applyLayerSelection()`
+- `src/components/mapLegend/index.vue`
+ - 图例点击后走 `mapOrchestrator.toggleLegend()` / `toggleLegendBatch()`
+- `src/store/modules/map.ts`
+ - 真正把缓存数据、图层状态、图例状态应用到地图实例
+ - 也就是说,`3D` 只要把统一接口补齐,就能直接接住现有业务流
+
+### 2.7 2D 已有特殊业务规则
+
+- 锚点点击逻辑已在 `src/components/gis/map.ol.ts` 实现:
+ - 命中锚点后,`ylfb` 走 `ylfbModalVisible`
+ - 其他锚点走 `modalVisible`
+ - 标题和参数都直接取当前锚点数据
+- `eng_point` 的中型水电站显示阈值已在现有链路中实现:
+ - 阈值常量位于 `src/modules/map/application/map-orchestrator.ts`
+ - 过滤逻辑位于 `src/store/modules/map.ts` 的 `filterPointLayerDataForDisplay()`
+ - `3D` 不应重新发明一套规则,而应复用这套现有过滤结果
+- 部分点位会随着缩放级别提升显示得更多,不是简单的“图层开/关”:
+ - `eng_point` 的中型电站要到 `ENG_POINT_MEDIUM_VISIBLE_ZOOM = 7.5` 以上才显示
+ - 水电开发页在缩放跨过 `12` 级时会自动补开一批动态图层
+ - `2D` 内部还存在点位密度阈值、近邻点展开、批量 popup 阈值等缩放联动规则
+- `2D` 对锚点存在碰撞检测与密度控制,不是所有点始终全量显示:
+ - 图标和标签会分别经过碰撞计算
+ - 低缩放下会因为密度、碰撞、区域裁切、图例状态而隐藏部分点
+ - 高缩放下会逐步放开限制,显示更多锚点和标签
+
+## 3. 3D 当前现状与缺口
+
+### 3.1 已有内容
+
+- `src/components/gis/map.cesium.ts`
+- 当前只完成了最小化 `Cesium.Viewer` 初始化。
+- 已有基础缩放、截图、`flyTopanto()` 雏形。
+
+### 3.2 当前主要缺口
+
+- `init()` 里虽然定义了 `flyToChina()`,但没有真正执行,也没有 `resolve(viewer)`,初始化流程不完整。
+- 默认底图仍是 ArcGIS 全球影像,因此启动时容易落到美国默认视角。
+- `addBaseDataLayer()` 为空,无法接住当前 `GISMap/customBaseLayer` 逻辑。
+- `addInitDataLayer()` 为空,无法展示锚点。
+- `mdLayerTreeShowOrHidden()` 为空,菜单切换时 3D 锚点不会同步显隐。
+- `setLegendPointVisible()` 为空,图例勾选不会影响 3D 锚点。
+- `initPopupOverlay()` 为空,无法复用 2D popup 容器。
+- 缺少点击命中与详情弹框联动,3D 当前无法做到“点击锚点与 2D 同行为”。
+- `controlBaseLayerTreeShowAndHidden()` 为空,3D 基础底图和叠加层无法受现有图层树控制。
+- 尚未验证 `eng_point` 的缩放阈值规则在 3D 下是否能完全复用,存在实现时遗漏中型站点显隐的风险。
+- 目前没有承接 `2D` 中“放大到具体层级显示更多锚点”的缩放联动显示机制。
+- 目前没有承接 `2D` 中图标/标签的碰撞检测逻辑,后续若直接全量渲染,视觉效果会与 `2D` 明显不一致。
+- 当前没有建立 `Cesium entity / datasource / imageryLayer` 的注册表,后续联动无从下手。
+
+## 4. 实施原则
+
+- 不重做业务编排,优先复用 `map-orchestrator.ts` 和 `src/store/modules/map.ts`。
+- 不额外引入一套 3D 专用图例和图层状态,仍以现有 store 为唯一运行态来源。
+- 不单独复制 `eng_point` 的中型站显示规则,优先复用现有 `mapStore` 过滤结果。
+- 不单独新建一套点击弹框协议,优先保持与 `map.ol.ts` 相同的命中后行为。
+- 对“缩放越大显示越多锚点”这类规则,优先复用现有缩放阈值与显示门闩,不做拍脑袋的新规则。
+- 对碰撞检测,优先与 `2D` 保持同方向行为:低缩放控量,高缩放放开,而不是 3D 全量堆点。
+- 先做最小闭环,再逐步补能力:
+ - 第一步保证 3D 能正确初始化并定位中国。
+ - 第二步保证基础底图能显示。
+ - 第三步保证锚点能显示。
+ - 第四步保证 popup、图层树、图例联动打通。
+- 3D 不做“基础地图切换 UI”,但底层仍要支持 `customBaseLayer + addBaseDataLayer(..., true)` 这一逻辑。
+
+## 5. 分步骤实施计划
+
+### Step 1:修正 3D 初始化并默认定位中国 ✅️
+
+目标:
+
+- 切到 3D 后稳定初始化 viewer。
+- 首屏出现一个轻量加载动画。
+- 初始化完成后飞到中国默认视角。
+
+计划:
+
+- 修复 `map.cesium.ts` 的 `init()`:
+ - 保证初始化后一定 `resolve(this.viewer)`。
+ - 执行 `flyToChina()`。
+ - 补一个可控的启动过渡动画。
+- 统一中国默认参数:
+ - 中心经纬度建议复用 `104.5, 36.5`
+ - 相机高度先按全国视角收口,后续再微调
+- 如果切回 2D 再切到 3D,仍然要能正确重建 viewer。
+
+验收:
+
+- 点击 `3D` 按钮后,不再出现美国默认视角。
+- 首屏有加载过渡。
+- 进入后稳定落在中国。
+
+### Step 2:展示 3D 基础底图 ✅️
+
+目标:
+
+- 3D 不显示空球。
+- 保留“基础底图 + 3D 专用底图地址”能力。
+- 不提供底图切换面板,但底层能吃现有配置。
+
+计划:
+
+- 在 `MapCesium` 内建立基础图层注册表。
+- 实现 `addBaseDataLayer(layer, isShow)`:
+ - 对 `customBaseLayer` 使用 `url_3d`
+ - 对 `BASEMAP-img`、`BASEMAP-white` 预留兼容能力
+ - **必须处理 `wmts` 类型图层**:2D 通过 `WMTS` source 加载,3D 使用 `Cesium.WebMapTileServiceImageryProvider`,从 URL 参数中提取 LAYER/TILEMATRIXSET
+ - **必须提供 `tileMatrixLabels`**:Cesium 默认用纯数字作为 tileMatrix 参数值,但本系统 WMTS 服务器要求 `TileMatrixSet:zoom` 格式(如 `EPSG:3857_hbb_zrbhq_l13:4`)。需构建 `["TileMatrixSet:0", "TileMatrixSet:1", ...]` 传入 `tileMatrixLabels`。
+ - 其他类型:`raster-dem`→XYZ、MapServer→ArcGIS、其余 →WMS
+- **注意**:还存在一个 `key = "powerBaseStation"` 的基地底图图层,该图层**初始化时不加载**(已在 `IGNORED_BASE_LAYER_KEYS` 中忽略),但后续可通过图层树手动勾选显示。
+- 实现 `controlBaseLayerTreeShowAndHidden()`:
+ - 让图层树勾选能控制 3D 底图显隐
+- 根据你的要求,UI 层先不开放 `BaseLayerSwitcher` 的 3D 切换行为,只保留默认基础底图加载。
+
+验收:
+
+- 切到 3D 后可稳定看到基础底图。
+- 图层初始化时 `addBaseDataLayer(this.baseLayerConfig, checked, true)` 的思路在 3D 可落地。
+
+### Step 3:打通 3D 锚点展示 ✅️
+
+目标:
+
+- 3D 能展示和 2D 同源的锚点数据。
+- 菜单切换后,3D 能跟随页面数据切换。
+
+计划:
+
+- 在 `MapCesium` 内建立点位图层注册结构,按 `layerKey -> entity[]` 管理。
+- 实现 `addInitDataLayer(pointData, layerType)`:
+ - 复用当前点位数据结构
+ - 解析 `lgtd/lttd/iconCode/titleName/stnm/anchoPointState/popupHtml`
+ - 复用现有图标资源路径
+ - Entity ID 使用 `${layerKey}:${item._id || `${iconType || 'point'}_${stcd}`}`,与 2D 对齐,确保同 stcd 不同 sttpMap 的点不被覆盖
+ - 确保 `eng_point` 仍按现有 `mapStore` 过滤后的数据展示,中型站点只在 `7.5` 以上层级出现
+ - 为后续缩放驱动的增量显示预留运行态字段(`_legendVisible`、`_regionVisible`、`_densityVisible`),不把所有点简单一次性硬渲染
+- 实现 `mdLayerTreeShowOrHidden(layerType, checked)`:
+ - 图层树控制整个点图层显隐
+- 实现 `removePointLayer()` / `hasLayer()`
+ - 便于后续页面切换和重载
+
+验收:
+
+- 切到 3D 后当前页默认勾选图层的锚点能显示。
+- 切换菜单后,3D 锚点跟随变化。
+- 取消勾选图层后,对应锚点消失。
+- `eng_point` 在低于 `7.5` 时不显示中型水电站,高于 `7.5` 时正常显示。
+
+### Step 4:打通 3D 基地裁切(jdPanelControlShowAndHidden) ✅️
+
+目标:
+
+- 3D 点击基地面板后,与 2D 行为一致。
+- 加载基地边界 GeoJSON,只显示区域内锚点,隐藏区域外锚点。
+- 取消基地时恢复显示所有锚点。
+
+计划:
+
+- 在 `MapCesium` 中捕获 `hydropBase` 配置,与 2D 一样在 `addBaseDataLayer` 中记录。
+- 实现 `jdPanelControlShowAndHidden(baseid, isAll)`:
+ - `isAll=false`:清除 3D 球面遮罩实体、恢复所有锚点区域可见性、清除裁切状态。
+ - `isAll=true`:先隐藏所有锚点,异步加载基地边界 GeoJSON,执行点在面判断后仅显示区域内锚点,同时在球面绘制裁切边界多边形(`applyRegionMask`),最后飞行到区域视野。
+- 在 `createEntityPropertiesBag` 中新增 `_regionVisible` 属性,初始为 `true`。
+- 在 `applyPointVisibilityRefresh` 中跳过 `_regionVisible !== false` 的实体,确保裁切后碰撞检测不会把区域外锚点重新显示出来。
+- 复用 `extractPolygonCoords` / `isPointInRing` 射线法判断逻辑(与 `region-mask-manager.ts` 一致)。
+- 支持 `AbortController` 取消前一次未完成的请求,避免响应顺序错乱。
+- `applyRegionMask` 将 GeoJSON 多边形转换为 Cesium `PolygonHierarchy`,在球面绘制半透明填充 + 可见边界的区域多边形,模拟 2D 底图 Canvas 裁切遮罩的视觉效果。
+
+验收:
+
+- 点击基地后,3D 只显示该基地区域内的锚点,区域外锚点隐藏。
+- 取消基地后,所有锚点恢复正常显示。
+- 快速切换基地不会出现旧数据覆盖新数据的问题。
+- 多次切换 2D/3D 后基地裁切行为正常。
+
+### Step 5:打通 3D popup 与 hover ✅️
+
+目标:
+
+- 3D 鼠标悬停时显示与 2D 一样的 popup。
+- popup 样式复用现有 DOM 和样式,不再单独做一版。
+
+计划:
+
+- 实现 `initPopupOverlay(popupContainer)`
+ - 继续复用 `GisView.vue` 中现有 popup 容器
+- 在 Cesium 中增加鼠标移动命中:
+ - 基于 `ScreenSpaceEventHandler`
+ - hover 到锚点时读取 entity 附带属性
+- popup 内容生成逻辑复用 2D 现有字段:
+ - 优先使用 `popupHtml`
+ - 否则走通用字段渲染
+- 处理离开锚点时隐藏 popup。
+
+验收:
+
+- 鼠标移入锚点出现 popup。
+- 样式和 2D 保持一致。
+- 移出后 popup 正常消失。
+
+### Step 6:补齐缩放驱动显示与碰撞检测
+
+目标:
+
+- 3D 在低缩放下控制锚点数量,避免全量堆叠。
+- 3D 在放大到具体层级后,逐步显示更多锚点。
+- 3D 的图标/标签显示效果尽量接近 2D,不出现严重遮挡。
+
+计划:
+
+- 先承接现有明确可复用的缩放规则:
+ - `eng_point` 的 `7.5` 阈值
+ - 水电开发页的 `12` 级动态图层联动
+- 再补 3D 侧的显示门闩:
+ - 低缩放下根据缩放级别、图层状态、图例状态控制 entity 显隐
+ - 高缩放下逐步放开限制,显示更多锚点
+- 为 3D 补一版轻量碰撞控制:
+ - 至少先控制标签碰撞,避免名称完全叠在一起
+ - 如有必要,再补图标级碰撞或屏幕网格抽稀
+- 明确与 2D 对齐的目标不是“算法完全一样”,而是“视觉行为一致”:
+ - 低缩放控量
+ - 高缩放增量显示
+ - 关键锚点不被完全淹没
+
+验收:
+
+- 3D 在全国视角下不会一次性挤满所有锚点。
+- 放大到具体层级后会看到更多锚点逐步出现。
+- 标签和锚点不会大面积重叠到不可读。
+
+### Step 7:打通 3D 锚点点击详情 ✅️
+
+目标:
+
+- 3D 点击锚点后,行为与 2D 一致。
+- 继续复用现有详情弹框状态和参数结构。
+
+计划:
+
+- 在 Cesium 中增加点击命中:
+ - 基于 `ScreenSpaceEventHandler`
+ - 命中锚点后读取 entity 绑定的原始业务数据
+- 复用 `2D` 当前点击行为:
+ - `sttpMap === 'ylfb'` 时打开 `ylfbModalVisible`
+ - 其他锚点打开 `modalVisible`
+ - `params`、`title` 赋值逻辑与 `map.ol.ts` 保持一致
+- 避免 hover popup 与 click 弹框互相干扰。
+
+验收:
+
+- 点击 3D 锚点后可打开与 2D 一致的详情弹框。
+- `ylfb` 和普通锚点分支行为一致。
+- 点击空白区域不会误触发弹框。
+
+### Step 8:打通图例联动 ✅️
+
+目标:
+
+- 图例勾选后,3D 只显示对应状态的锚点。
+
+计划:
+
+- 实现 `setLegendPointVisible(layerKey, anchoPointState, checked)`:
+ - 复用 `anchoPointState` 作为图例匹配字段
+ - entity 级别维护显示状态
+- 如果后续需要,也可补一个 3D 版本的图例索引表,避免每次全量遍历。
+
+验收:
+
+- 图例单项勾选/取消时,3D 对应类别锚点同步显隐。
+- 图例分组勾选/取消时,3D 行为与 2D 保持一致。
+
+### Step 9:补足收口与稳定性 ✅️
+
+目标:
+
+- 让 3D 能稳定参与现有地图生命周期。
+
+计划:
+
+- 清理 Cesium 事件监听、viewer、entity、datasource,避免重复切换内存泄漏。
+- 检查 `switchView('2D' | '3D')` 前后 popup、底图、图层注册是否被正确重置。
+- 检查 hover、click、图例、图层树、缩放阈值这几条联动链路在 3D 是否完全闭环。
+- 视情况补最小诊断日志,确认菜单切换与图层联动没有漏项。
+
+验收:
+
+- 2D/3D 多次来回切换不报错。
+- 菜单切换、图层切换、图例切换行为稳定。
+
+## 6. 推荐落地顺序
+
+按你的要求,建议严格按下面顺序推进:
+
+1. 默认定位到中国 + 启动动画
+2. 展示基础底图
+3. 展示锚点 3.5. 补基地裁切(jdPanelControlShowAndHidden)
+4. 补 hover popup
+5. 补缩放驱动显示与碰撞检测
+6. 补锚点点击详情
+7. 补图层树联动
+8. 补图例联动
+9. 做切换稳定性收口
+
+## 7. 预计修改文件
+
+- `src/components/gis/map.cesium.ts`
+ - 3D 地图主体实现,主改动文件
+- `src/components/gis/map.class.ts`
+ - 视情况补齐 2D/3D 切换后 popup 初始化和服务切换细节
+- `src/components/gis/GisView.vue`
+ - 视情况控制 3D 下的底图切换器显示策略、加载态挂载位置
+- `src/components/mapController/index.vue`
+ - 若需要补 3D 初始化后的交互控制
+
+## 8. 当前建议
+
+建议先只做 `Step 1`,也就是:
+
+- 修正 Cesium 初始化完成逻辑
+- 增加 3D 启动加载动画
+- 默认飞到中国
+
+这一步最小、最容易验证,也能先把“打开 3D 看起来不对”的核心问题解决掉。
+
+## 9. 必须补齐的隐藏逻辑清单
+
+下面这些逻辑不是表面接口能直接看出来的,但如果 `3D` 不补,最终效果就会和 `2D` 明显不一致。
+
+### 9.1 图层与菜单切换 ✅️
+
+- ✅ 菜单切换时,只隐藏旧页点图层,不隐藏底图。(编排器 `handlePageChange` 控制,Cesium 被动接收数据)
+- ✅ 图层树勾选前要先经过互斥规则归一化:(store 层 `updateLayerData` 处理,Cesium 不感知)
+ - `rare_fish_point` 与 `fish_along_point` 互斥
+ - `stinfo/stinfo_video_point` 与 `stinfo_ai_video_point` 互斥
+ - `facilities` 与 `facilities_built` 两个分支互斥
+- ✅ 点图层取消勾选时只隐藏,不删除缓存;重新勾选时优先从缓存恢复。`mdLayerTreeShowOrHidden` 设置 `_layerVisible` 标志,不删除 `pointLayerRegistry` 条目。
+- ✅ **图层树勾选时按 `type` 字段走不同分支**(见 `updateLayerData`,store 层处理):
+ - `type === 'pointMap'` → 走 `handlePointMapLayer` → 调用 `mdLayerTreeShowOrHidden`(已实现,L1624)
+ - `type === 'GISMap'` → 走 `controlBaseLayerTreeShowAndHidden`(已实现,L1345)
+ - 3D Cesium 已同时实现这两个方法。
+
+### 9.2 图例与点内显隐 ✅️
+
+- ✅ 图例控制的是图层内部锚点是否可见,不是图层本身是否可见。`setLegendPointVisible` 使用 `_legendVisible` 标志,与 `_layerVisible` 独立。
+- ✅ 图层恢复显示时,图例要先整层全关,再按当前 checked 状态逐项恢复。支持 `anchoPointState=''` 全关 → 逐项 `(state, true)` 恢复两步模式(L1764-1787)。
+- ✅ 环保设施图例组当前是只展示不交互。(编排器层面控制,Cesium 不感知)
+
+### 9.3 缩放驱动显示 ✅️
+
+- ✅ `eng_point` 的中型水电站只在 `ENG_POINT_MEDIUM_VISIBLE_ZOOM = 7.5` 以上显示。(store `filterPointLayerDataForDisplay` 在数据进入 Cesium 前过滤)
+- ✅ 水电开发页缩放跨过 `12` 级时,会自动补开一批动态图层;缩回去时再自动收口。(编排器层面处理)
+- ✅ `2D` 存在"缩放越大显示越多"的行为。碰撞检测中密度门控逐级放开。
+- ✅ `2D` 还存在 hover、批量 popup、密度控制等缩放阈值:
+ - hover 低于 ~zoom 4.5 不触发(`HOVER_POPUP_MAX_HEIGHT = 9_000_000`)
+ - 高缩放进入批量 popup 模式(`BATCH_POPUP_MODE_ZOOM = 14.9`)
+ - 点位随着缩放提升逐步放开密度限制(密度门控 + `DENSITY_ISOLATION_THRESHOLD`)
+- ✅ **图标动态缩放**:`CallbackProperty` 实现 `billboard.scale`,公式 `clamp(0.7 + (zoom - 4.5) * 0.035, 0.4, 1.2)`(L1522)。
+- ✅ **字体动态大小**:`CallbackProperty` 实现 `label.font`,钳位 `[10, 20]`(L1535)。
+- ✅ **文字在图标上方**:`CallbackProperty` 实现 `label.pixelOffset`,负 Y 偏移(L1549)。
+- ✅ **Cesium 中必须使用 `CallbackProperty` 实现动态缩放**:已使用 3 个 `CallbackProperty`(scale/font/offset),`isConstant=false` 每帧重算。
+
+### 9.4 锚点碰撞与控量 ✅️
+
+- ✅ `2D` 中锚点是否可见,不只受图层开关控制,还受以下门闩共同影响:
+ - 图例可见性 `_legendVisible`
+ - 区域裁切可见性 `_regionVisible`
+ - 密度阈值(碰撞循环中 inline 计算,逐级放开)
+ - 图标碰撞结果 `_iconCollisionVisible`
+ - 标签碰撞结果 `_labelCollisionVisible`
+- ✅ 低缩放下,为避免堆叠,部分锚点或标签会被主动隐藏。(`refreshPointLabelVisibility` 碰撞检测,L2117-2455)
+- ✅ 高缩放下,会逐步放开图标/标签限制,显示更多内容。(密度门控 + 碰撞容差随 zoom 调整)
+- ✅ 因此 `3D` 不能简单把所有 entity 永久全开。所有 entity 初始 `_iconCollisionVisible = _labelCollisionVisible = true`,碰撞检测运行后动态调整。
+
+### 9.5 Popup 与点击 ✅️
+
+- ✅ hover popup 不是全时开启的,有缩放门槛。相机高度 > `HOVER_POPUP_MAX_HEIGHT` 时不触发 hover。
+- ✅ 点击和 hover 的命中对象是图标本体,不是任意文字区域。`ScreenSpaceEventHandler` 基于 `scene.pick` 命中 entity。
+- ✅ `ylfb` 与普通锚点的点击详情弹框走不同业务分支。`sttpMap === 'ylfb'` 打开 `ylfbModalVisible`,其他走 `modalVisible`(L366-375)。
+
+### 9.6 基地与区域裁切 ✅️
+
+- ✅ 基地切换不仅影响搜索候选,还会影响地图上的点位可见范围。`jdPanelControlShowAndHidden` 实现(L1684-1748)。
+- ✅ 区域裁切会直接把区域外点位隐藏,不是只改底图遮罩。`filterPointsByRegion` 设置 `_regionVisible = false`(L1824-1848),遮罩多边形 + 裁剪双重处理。
+
+### 9.7 筛选器特殊逻辑 ✅️
+
+- ✅ 装机容量筛选本质是批量切 `eng_point` 图例状态,不是简单切图层。(store 层处理,Cesium 通过 `setLegendPointVisible` 响应)
+- ✅ 鱼类分布模式会接管 `ylfb_point` 的数据、缓存、图例与显隐。(store 层处理)
+- ✅ 时间筛选当前只重载指定时间相关图层,不是全量重载。(store 层处理)
+
+### 9.8 数据进入 addInitDataLayer 前的预处理 ✅️
+
+- ✅ 所有点位数据在进入 `addInitDataLayer` 前会经过 `normalizePointLayerItems()` 过滤:(store 层 `map.ts` 执行,Cesium 接收时已过滤)
+ - 没有 `iconCode` 且 `code !== 'colorLayer'` 的项会被抛弃
+ - `baseId == 'all'` 且 `anchoPointState` 结尾为 `_nbuilt` 的项会被抛弃
+- ✅ `_id` 默认值生成规则:store 层生成 `${sttpMap || iconType || 'point'}_${stcd}`。
+- ✅ **stcd+经纬度重复锚点处理**:Cesium entity ID 使用 `${layerKey}:${item._id}`,与 2D 对齐,同 stcd 不同 sttpMap 的点不会互相覆盖。
+
+### 9.9 图标渐进加载机制
+
+- ❌ 2D 中图标不是一次性全加载完。有 `loading → loaded → error` 三种状态跟踪。
+- ❌ 只有 `loaded` 状态的图标才参与样式渲染,loader 失败的不渲染。
+- ❌ 如果在图标加载过程中就触发了样式刷新,需要通过 `requestAnimationFrame` 回刷。
+- ❌ 3D Cesium 中当前所有 entity 同步创建,billboard `image` URL 直接赋值,无渐进加载。Cesium 内部纹理加载无显式状态跟踪。
+
+### 9.10 密度分档与近邻点元数据 ✅️
+
+- ✅ 每个锚点的 `distance` 字段表示密度分档值(不是物理距离),值越大表示越稀疏。(已使用 `getEntityDensityValue` 从 `_rawData.distance` 读取,L2460)
+- ✅ 不同 density 值对应不同的 `minZoom` 显示门槛。`getEntityDensityMinZoom` 映射 `nearby-point-rules.ts` 的 `densityDisplayRules`(L2491)。
+- ✅ 全量数据加载后,store 会调用 `attachNearbyPointRuntimeMeta()` 给所有点打上 `_nearbyRule`、`_nearbyGroupId`、`_nearbyPriority` 等元数据。(store 层处理,Cesium 碰撞检测中读取)
+- ✅ **孤立点例外规则**:如果一个点在当前视口内 ~56px 范围内没有同 layerKey 的其他可见点,它可以绕过密度门槛直接显示。`DENSITY_ISOLATION_THRESHOLD = 56` + `shouldBypassDensityGateForIsolatedEntity`(L2506-2556)。
diff --git a/frontend-sjgl/docs/地图模块-OpenLayers抽吸与碰撞分析.md b/frontend-sjgl/docs/地图模块-OpenLayers抽吸与碰撞分析.md
new file mode 100644
index 00000000..3c0e97d0
--- /dev/null
+++ b/frontend-sjgl/docs/地图模块-OpenLayers抽吸与碰撞分析.md
@@ -0,0 +1,343 @@
+# 地图模块-OpenLayers抽吸与碰撞分析
+
+## 1. 背景
+
+当前地图 2D 主引擎已经切换为 OpenLayers,项目依赖版本为 `ol@^10.8.0`。
+本次关注的问题有两个:
+
+- 点位“抽吸”逻辑不符合业务预期;
+- 文字碰撞时把整个点位一起隐藏,而不是仅隐藏文字。
+
+典型场景是两个相邻电站,例如“积石峡”和“公伯峡”:
+
+- 可用代号 `1`、`2` 表示两个相邻点;
+- 默认缩放下只展示 `1`;
+- 放大到某个层级后,`1` 隐藏,`2` 展示;
+- 再继续放大后,`1` 和 `2` 都展示,但 `2` 需要“抽吸/拉开”显示,避免与 `1` 重叠;
+- 如果只是文字发生碰撞,希望点图标保留,仅文字隐藏或延后显示。
+
+本文件先整理当前代码现状和问题成因,不直接修改实现。
+如果需要查看**当前已经落地的抽吸规则、默认参数和调参入口**,请同时参考:
+
+- `docs/地图模块-抽吸规则与参数说明.md`
+
+## 2. 当前代码结构
+
+当前前端 GIS 运行链路如下:
+
+1. `src/components/gis/GisView.vue`
+2. `src/modules/map/application/map-orchestrator.ts`
+3. `src/components/gis/map.class.ts`
+4. `src/components/gis/map.ol.ts`
+5. `src/components/gis/ol/point-layer-manager.ts`
+6. `src/components/gis/ol/popup-manager.ts`
+
+各层职责简述:
+
+- `GisView.vue`
+ - 地图入口组件;
+ - 挂载地图容器、图例、筛选器、控制器;
+ - 通过 `mapOrchestrator.mountView()` 初始化地图;
+ - 菜单切换时通过 `handlePageChange()` 触发页面地图重载。
+
+- `map.class.ts`
+ - 地图门面类;
+ - 当前 2D 实现实际绑定的是 `MapOl`;
+ - 3D 实现才会切到 `MapCesium`。
+
+- `map.ol.ts`
+ - OpenLayers 主实现;
+ - 负责地图初始化、底图加载、点位样式、Popup、区域裁切、量算等;
+ - 当前“点位渲染规则”和“碰撞相关逻辑”主要集中在这个文件。
+
+- `point-layer-manager.ts`
+ - 负责点图层创建、Feature 灌入、按图层控制显隐;
+ - 点位图层统一使用 `VectorLayer + VectorSource`。
+
+- `popup-manager.ts`
+ - 管理 hover popup 和高缩放下的批量 popup;
+ - 内部额外做了一套基于边界框的碰撞判断。
+
+## 3. 当前点位渲染链路
+
+### 3.1 点图层创建
+
+`point-layer-manager.ts` 中的 `ensureLayer()` 会统一创建点图层:
+
+- 图层类型为 `VectorLayer`;
+- 图层上开启了 `declutter: true`;
+- 样式函数统一走 `map.ol.ts` 中的 `createPointStyle()`。
+
+也就是说,当前所有点位的“是否显示”和“图标/文字如何避让”,都收敛到 OpenLayers 的 declutter 机制和样式函数里。
+
+### 3.2 点样式生成
+
+`map.ol.ts` 的 `createPointStyle()` 当前做了这些事:
+
+- 读取 `_iconUrl` 和 `_labelText`;
+- 如果图例不可见、区域不可见,则直接返回 `null`;
+- 如果 `distance` 不满足当前缩放级别要求,也直接返回 `null`;
+- 图标使用 `Icon`;
+- 文字使用 `Text`;
+- 图标和文字都设置了 `declutterMode: 'declutter'`;
+- 最终把图标和文字一起放进同一个 `Style` 返回。
+
+这意味着:
+
+- 点图标和文字不是两个独立的渲染对象;
+- 它们在当前实现中属于同一个样式结果;
+- 只要这组样式参与碰撞判定,图标和文字的命运就是绑定的。
+
+### 3.3 当前已有的“抽稀”逻辑
+
+当前项目中确实有一层“缩放越小,显示越少”的处理,但它不是精细的“抽吸”。
+
+`map.ol.ts` 的 `shouldRenderFeatureByDistance()` 逻辑是:
+
+- 小缩放下要求 `distance` 更大才允许显示;
+- 缩放越大,允许显示的点逐渐增多;
+- 本质上是基于后端数据字段 `distance` 做全局抽稀。
+
+这个逻辑的特点是:
+
+- 是全局阈值,不是成对点位或同组点位的专属规则;
+- 只能决定“这个点显示还是不显示”;
+- 不能表达“1 和 2 是近邻关系,并且在不同缩放阶段按业务优先级切换显示”。
+
+### 3.4 当前批量 Popup 的碰撞检测
+
+`popup-manager.ts` 在高缩放批量 popup 模式下,又额外做了一层碰撞判断:
+
+- 先估算图标和文字合并后的锚点边界框;
+- 如果边界框碰撞,则当前要素直接不参与 popup 渲染;
+- 随后再判断 popup 矩形之间是否碰撞。
+
+这说明当前“图标 + 文字”被视为一个整体,不仅体现在 OpenLayers 的 declutter 里,也体现在 popup 的辅助判断里。
+
+## 4. 当前仓库里“抽吸”相关代码现状
+
+仓库中确实存在历史上的“抽吸”实现,但不在当前 OpenLayers 主链路里。
+
+相关文件:
+
+- `src/utils/leaflet/leaflet.inflatable-markers-group.js`
+- `src/components/gis/map.leaflet.ts`
+
+现状判断:
+
+- `leaflet.inflatable-markers-group.js` 是旧 Leaflet 时代的抽吸插件;
+- 它内部有 `inflateAsManyAsPossible()`、`_zoomend()` 等典型抽吸逻辑;
+- 但当前 `map.class.ts` 实际实例化的是 `new MapOl()`;
+- `map.leaflet.ts` 已经不在主运行路径上。
+
+结论是:
+
+- 当前页面上看到的点位行为,不是 Leaflet 抽吸插件在工作;
+- 现在的显示结果主要来自 OpenLayers 的 `declutter`、当前样式函数和 `distance` 抽稀逻辑;
+- 因此“已经有抽吸但是不太对”,更准确地说是“历史上有抽吸代码,但现在主链路没有真正使用那套机制”。
+
+## 5. 问题分析
+
+### 5.1 为什么当前实现做不到你要的分阶段抽吸
+
+你描述的目标并不是简单“避让”,而是一个明确的分阶段显示策略:
+
+1. 默认只显示 `1`;
+2. 缩放到阶段 A 时,隐藏 `1`,改为显示 `2`;
+3. 缩放到阶段 B 时,`1` 和 `2` 都显示;
+4. 阶段 B 下,`2` 还要相对 `1` 做抽吸/偏移,避免完全重叠。
+
+而当前代码缺少以下能力:
+
+- 没有“近邻点关系”配置
+ - 代码里没有看到类似 `groupId`、`neighborIds`、`priority`、`displayLevel` 这样的结构;
+ - 系统不知道“积石峡”和“公伯峡”是一组特殊近邻点。
+
+- 没有“分阶段显示规则”配置
+ - 当前只有全局的 `distance` 阈值判断;
+ - 没有按缩放阶段表达“谁替代谁显示、谁先隐藏、谁后展示”。
+
+- 没有“抽吸偏移”计算
+ - 当前点要素坐标就是原始经纬度转换结果;
+ - 没有根据缩放级别和邻近关系生成偏移坐标;
+ - 也没有“展开后沿圆周/沿固定方向偏移”的逻辑。
+
+- 当前 declutter 是被动避让,不是主动编排
+ - declutter 只会尽量避免重叠;
+ - 它不会理解业务上的“1 是主点、2 是附点”;
+ - 也不会自动实现“先 1,后 2,再两个都展示且 2 偏移”的规则。
+
+所以当前看到的结果不稳定,本质原因不是某一个参数不对,而是“现有机制和目标能力不是一类问题”。
+
+### 5.2 为什么文字碰撞会把整个点隐藏
+
+这是当前实现里最关键的原因:
+
+- 点图标和文字是在同一个 `Style` 里返回的;
+- 图层开启了 `declutter: true`;
+- 图标和文字又都设置了 `declutterMode: 'declutter'`。
+
+在这种组织方式下,当前要素的碰撞判定是按“一个整体渲染单元”处理的,而不是“图标一套规则,文字一套规则”。
+
+因此会出现下面的现象:
+
+- 图标本身其实不冲突;
+- 但文字边界框发生碰撞;
+- 最终被隐藏的是整条样式结果;
+- 用户视觉上就会觉得“明明只是字挤了,为什么点也没了”。
+
+这和你现在观察到的问题是一致的。
+
+### 5.3 为什么当前逻辑还会进一步放大这个问题
+
+除了 OpenLayers 自身的 declutter 组织方式,代码里还有两层因素会继续放大问题:
+
+- `shouldRenderFeatureByDistance()` 会先根据 `distance` 直接过滤点位;
+- `popup-manager.ts` 在批量 popup 模式下,也把“图标 + 文字”当作合并边界框做碰撞模拟。
+
+也就是说,当前系统对近邻点位的处理是:
+
+- 先用全局 `distance` 规则筛掉一部分;
+- 再用 OpenLayers declutter 继续过滤;
+- 高缩放时 popup 层再做一轮碰撞跳过。
+
+这三层叠加后,显示行为更偏向“谁先撞谁消失”,而不是“按业务规则分阶段展开”。
+
+## 6. 结合你的案例做具体映射
+
+如果以近邻点 `1`、`2` 为例,当前代码里实际上缺的是下面这些业务语义:
+
+- `1` 和 `2` 属于同一近邻组;
+- 组内有主次优先级;
+- 在不同 zoom 区间内有不同展示策略;
+- 在最大放大阶段需要给 `2` 一个偏移位;
+- 偏移后图标和文字还要分别控制碰撞策略。
+
+当前实现只能表达:
+
+- 某个点在当前 zoom 下是否允许渲染;
+- 某个点图例是否可见;
+- 某个点是否被区域裁切隐藏;
+- 某个点的图标和文字整体是否参与 declutter。
+
+它并不能表达:
+
+- “1 替代 2 展示”;
+- “2 替代 1 展示”;
+- “1 和 2 一起展示,但 2 抽吸展开”;
+- “只隐藏文字,不隐藏图标”。
+
+所以你现在遇到的问题是结构性问题,不是简单调一个 `declutter` 参数就能彻底解决。
+
+## 7. 后续修改时建议优先动的层
+
+如果下一步要真正改这块,建议优先从下面几层入手:
+
+### 7.1 先补“近邻点显示规则”
+
+建议不要直接把业务规则写死在样式函数里,而是先增加一层近邻点编排规则,例如:
+
+- `groupId`
+- `priority`
+- `showZoomMin`
+- `showZoomMax`
+- `replaceAtZoom`
+- `expandAtZoom`
+- `expandOffset`
+
+这样才能表达:
+
+- 默认只显示主点;
+- 中间层级切换成副点;
+- 更大层级两个都显示;
+- 副点在展示时做偏移。
+
+### 7.2 抽吸不要依赖 declutter 自动完成
+
+抽吸本质上是“主动布局”问题,不是“被动避让”问题。
+
+建议后续把近邻点抽吸拆成单独逻辑:
+
+- 先根据原始点数据识别近邻组;
+- 再根据当前 zoom 产出“本次真正参与渲染的点集合”;
+- 对需要展开的点,生成偏移后的渲染坐标;
+- 最后再交给图层渲染。
+
+这样会比直接指望 OpenLayers 的 declutter 更可控。
+
+### 7.3 图标层和文字层要分开控制
+
+要实现“文字碰撞时只隐藏文字,不隐藏点图标”,后续最重要的一点是把图标和文字的渲染职责拆开。
+
+至少要做到下面二选一:
+
+- 图标层和文字层拆成两个独立图层;
+- 或者把图标与文字拆成可独立决策的渲染单元。
+
+目标是:
+
+- 图标优先保留;
+- 文字单独避让;
+- 文本碰撞时只压文字,不压图标。
+
+如果仍然维持“同一个样式对象里同时放 image 和 text”的组织方式,这个问题大概率还会持续存在。
+
+### 7.4 Popup 碰撞策略也要和新规则同步
+
+后续如果点位抽吸和文字单独避让改了,`popup-manager.ts` 里的边界框逻辑也要一起调整。
+
+否则会出现:
+
+- 图标已经正常显示;
+- 文字也按新规则显示了;
+- 但 popup 层仍然沿用旧的合并边界框;
+- 最终又在 popup 阶段把结果打回去。
+
+## 8. 建议的改造顺序
+
+为了降低风险,建议后续改造按以下顺序推进:
+
+1. 先梳理近邻点数据结构
+ - 确定近邻点如何分组;
+ - 确定主次优先级和缩放阈值从哪里来。
+
+2. 再实现“显示决策层”
+ - 在真正生成 Style 之前,先决定哪些点应该显示;
+ - 哪些点应该隐藏;
+ - 哪些点需要偏移展开。
+
+3. 然后拆分图标和文字碰撞
+ - 先保证点图标稳定显示;
+ - 再单独做文字避让。
+
+4. 最后调整 popup 逻辑
+ - 保证 popup 的碰撞判定和最终可见点保持一致。
+
+## 9. 涉及文件清单
+
+本次分析重点涉及以下文件:
+
+- `src/components/gis/GisView.vue`
+- `src/components/gis/map.class.ts`
+- `src/components/gis/map.ol.ts`
+- `src/components/gis/ol/point-layer-manager.ts`
+- `src/components/gis/ol/popup-manager.ts`
+- `src/utils/leaflet/leaflet.inflatable-markers-group.js`
+- `src/components/gis/map.leaflet.ts`
+- `package.json`
+
+## 10. 当前结论
+
+当前地图问题可以归纳为两点:
+
+1. 现在的 OpenLayers 主链路并没有真正使用旧 Leaflet 的抽吸机制;
+2. 当前点图标和文字被作为一个整体参与 declutter,所以文字碰撞时会连点一起隐藏。
+
+所以后续如果要改,方向不应该只是“调避让参数”,而应该是:
+
+- 增加近邻点分阶段显示规则;
+- 增加主动抽吸/偏移布局;
+- 把图标和文字拆成可独立控制的渲染单元;
+- 同步修正 popup 的碰撞判断。
+
+在这个基础上,再进入代码修改会更稳。
diff --git a/frontend-sjgl/docs/地图模块-抽吸规则与参数说明.md b/frontend-sjgl/docs/地图模块-抽吸规则与参数说明.md
new file mode 100644
index 00000000..65c9e71e
--- /dev/null
+++ b/frontend-sjgl/docs/地图模块-抽吸规则与参数说明.md
@@ -0,0 +1,316 @@
+# 地图模块-抽吸规则与参数说明
+
+## 1. 文档目的
+
+本文档用于记录当前地图点位“抽吸”功能的现行实现、默认参数、分层级显示规则和后续调参方式。
+本文件描述的是**当前已经落地并验证通过**的规则,适合作为后续维护和继续调参的依据。
+
+相关文档:
+
+- `docs/地图模块-详细说明.md`:地图整体架构说明
+- `docs/地图模块-OpenLayers抽吸与碰撞分析.md`:问题成因与改造分析
+
+## 2. 当前实现范围
+
+当前抽吸逻辑运行在 OpenLayers 主链路中,核心文件如下:
+
+1. `src/modules/map/domain/nearby-point-rules.ts`
+2. `src/store/modules/map.ts`
+3. `src/components/gis/map.ol.ts`
+4. `src/components/gis/ol/point-layer-manager.ts`
+
+各文件职责:
+
+- `nearby-point-rules.ts`
+ - 近邻点规则入口
+ - 自动识别配置入口
+ - 近邻点运行时元数据挂载
+- `map.ts`
+ - 点位数据加载完成后,统一触发近邻点分组和元数据写回
+- `map.ol.ts`
+ - 决定某个点在当前缩放级别是否显示
+ - 决定文字是否允许显示
+ - 承担图标与文字的手工碰撞控制
+- `point-layer-manager.ts`
+ - 负责展开阶段的几何偏移
+ - 负责把同组点位按扇形/环形布局散开
+
+## 3. 当前抽吸规则
+
+### 3.1 近邻点自动识别
+
+当前采用自动识别近邻点,不再靠固定站名手工枚举。
+
+识别原则:
+
+- 只在同一 `layerKey` 内做近邻识别
+- 按点位空间距离自动聚组
+- 满足最小组大小后,才认为是近邻组
+- 组内自动生成显示优先级 `priority`
+
+这样做的目的:
+
+- 避免跨图层混组
+- 避免后续新增点位还要手工补名字
+- 让抽吸能力可以覆盖整批业务点
+
+### 3.2 分层级显示规则
+
+当前显示规则以 `replaceAtZoom` 和 `expandAtZoom` 为核心:
+
+1. `zoom < replaceAtZoom`
+ - 只显示组内主点
+ - 即 `priority = 1`
+2. `replaceAtZoom <= zoom < expandAtZoom`
+ - 显示组内前两个点
+ - 即 `priority <= 2`
+ - 当前这样设计是为了避免主点在放大过程中突然消失
+3. `zoom >= expandAtZoom`
+ - 同组点全部显示
+ - 同时进入展开布局阶段
+
+补充规则:
+
+- 如果某个点配置了 `showZoomMin` 或 `showZoomMax`,则先受这两个值约束
+- 没有进入近邻组的点,不受抽吸规则影响
+
+### 3.3 文字显示规则
+
+当前文字显示必须依赖点位显示。
+
+也就是说:
+
+- 点不显示,文字一定不显示
+- 点显示后,文字还要继续通过碰撞判断才会显示
+
+当前文字碰撞规则:
+
+- 文字要避让已保留的图标占位盒
+- 文字要避让已保留的其他文字
+- 图标与文字不再分别交给 OpenLayers 的 `declutter` 自动处理
+- 当前走的是项目内的手工碰撞控制
+
+## 4. 当前默认参数
+
+当前默认参数集中维护在:
+
+- `src/modules/map/domain/nearby-point-rules.ts`
+
+当前采用统一配置对象:
+
+```ts
+type NearbyPointConfig = {
+ autoRule: NearbyPointAutoRule;
+ layoutRule: NearbyPointLayoutRule;
+ densityDisplayRules: NearbyPointDensityDisplayRule[];
+};
+```
+
+其中:
+
+- `autoRule`:控制近邻点自动识别、缩放切换和基础展开半径
+- `layoutRule`:控制展开阶段的单圈容量、扇形角度和外圈间距
+- `densityDisplayRules`:控制 `distance` 密度分档在不同缩放级别的基础显示资格
+
+### 4.1 自动识别与缩放阶段参数
+
+当前值如下:
+
+| 参数 | 当前值 | 作用 |
+|---|---:|---|
+| `distanceThresholdMeters` | `9000` | 近邻点自动识别距离阈值 |
+| `replaceAtZoom` | `10.5` | 进入“主点 + 次点”阶段的缩放级别 |
+| `expandAtZoom` | `12.2` | 进入“全部显示并展开”阶段的缩放级别 |
+| `expandOffsetPx` | `48` | 第一圈展开的基础偏移半径 |
+| `angleStepDeg` | `55` | 默认角度步长参考值 |
+| `minGroupSize` | `2` | 最小成组数量 |
+
+### 4.2 展开布局参数
+
+当前值如下:
+
+| 参数 | 当前值 | 作用 |
+|---|---:|---|
+| `ringSize` | `5` | 单圈最多容纳的次点数量 |
+| `fanAngleForTwoDeg` | `110` | 单圈剩余 `2` 个点时的扇形总角度 |
+| `fanAngleForFourDeg` | `150` | 单圈剩余 `3` 到 `4` 个点时的扇形总角度 |
+| `fanAngleForManyDeg` | `180` | 单圈剩余 `5` 个及以上点时的扇形总角度 |
+| `ringGapPx` | `22` | 外圈最小增量半径 |
+| `ringGapFactor` | `0.85` | 外圈相对基础半径的增量系数 |
+
+### 4.3 密度分档显示参数
+
+这里的 `distance` 不是物理距离,而是点位密度分档值。
+数值越大表示越稀疏,越早参与显示候选;数值越小表示越密集,需要更高缩放级别才参与显示。
+
+当前值如下:
+
+| `minDensityValue` | `minZoom` | 作用 |
+|---:|---:|---|
+| `1500000` | `0` | 很稀疏的点,从小缩放级别就可参与显示 |
+| `800000` | `6.1` | 稍密集的点,从中低缩放开始参与显示 |
+| `400000` | `8.1` | 中密度点,需要进一步放大 |
+| `50000` | `10.6` | 高密度点,需要较高缩放级别 |
+| `0` | `12.2` | 极密集点,只有更高缩放才进入候选 |
+
+## 5. 当前展开布局
+
+展开阶段由 `point-layer-manager.ts` 控制。
+
+### 5.1 布局特点
+
+当前布局不是简单把点随机散开,而是按以下方式处理:
+
+- 主点保留原位置
+- 同组其他点围绕主点展开
+- 展开方向优先偏下方
+- 单圈数量由 `ringSize` 控制
+- 点数较多时进入第二圈
+- 第二圈半径按 `ringGapPx` 和 `ringGapFactor` 继续增大,避免继续叠在一起
+
+### 5.2 为什么优先向下展开
+
+当前优先向下展开,主要是为了:
+
+- 尽量给上方文字留空间
+- 降低文字压住上方点的概率
+- 让地图上的抽吸形态更稳定
+
+## 6. 当前实现的几个关键约束
+
+### 6.1 不使用淡入淡出动画
+
+目前已移除点和文字的淡入淡出动画。
+
+原因:
+
+- 抽吸状态切换和动画叠加时,容易让点和文字出现闪烁
+- 会干扰对“当前到底该不该显示”的判断
+
+当前阶段优先保证:
+
+- 显示规则稳定
+- 点和文字状态一致
+- 放大缩小时不出现明显错位
+
+### 6.2 不再依赖 OL 的自动 declutter 决定图标命运
+
+当前图标和文字都设置为 `declutterMode: 'none'`,由项目内逻辑统一控制。
+
+这样做的原因:
+
+- 避免图标和文字落在两套碰撞体系里
+- 避免出现“文字先出来、点没出来”
+- 避免文字压住其他点却仍然显示
+
+## 7. 常见现象与调参建议
+
+### 7.1 成组太少
+
+表现:
+
+- 相近点仍然容易互相盖住
+- 进入展开前看起来还是压在一起
+
+优先调整:
+
+- 增大 `distanceThresholdMeters`
+
+### 7.2 成组太多
+
+表现:
+
+- 距离并不算近的点也被当成一组
+- 放大后过早进入抽吸关系
+
+优先调整:
+
+- 减小 `distanceThresholdMeters`
+
+### 7.3 展开太晚
+
+表现:
+
+- 放大到较深层级前仍然挤在一起
+
+优先调整:
+
+- 减小 `expandAtZoom`
+
+### 7.4 展开太早
+
+表现:
+
+- 中等缩放时地图上就出现较明显散开效果
+
+优先调整:
+
+- 增大 `expandAtZoom`
+
+### 7.5 展开后间距不够
+
+表现:
+
+- 虽然已经展开,但图标还是比较挤
+
+优先调整:
+
+- 增大 `expandOffsetPx`
+- 或增大 `ringGapPx`
+- 或增大 `ringGapFactor`
+
+### 7.6 单圈散开角度不合适
+
+表现:
+
+- 次点虽然已经展开,但仍然集中在一侧
+- 或者扇形过大,展开形态显得太散
+
+优先调整:
+
+- 调整 `fanAngleForTwoDeg`
+- 调整 `fanAngleForFourDeg`
+- 调整 `fanAngleForManyDeg`
+
+### 7.7 主点在放大过程中突然消失
+
+当前已经通过 `replaceAtZoom <= zoom < expandAtZoom` 阶段显示 `priority <= 2` 进行修正。
+如果后续又出现类似现象,优先检查:
+
+- `map.ol.ts` 中 `shouldRenderNearbyFeature()` 的阶段逻辑
+- 是否误改成只显示 `priority = 2`
+
+### 7.8 明明周围看起来空,文字还是不显示
+
+优先检查:
+
+- 图标碰撞盒是否过大
+- 文字碰撞盒是否过于保守
+- 候选集是否发生重复统计
+
+相关代码主要在:
+
+- `src/components/gis/map.ol.ts`
+
+## 8. 后续维护建议
+
+建议后续继续保持以下约定:
+
+1. 抽吸参数继续统一放在 `nearby-point-rules.ts`
+2. 显示决策继续集中在 `map.ol.ts`
+3. 几何偏移继续集中在 `point-layer-manager.ts`
+4. 后续调参优先改 `DEFAULT_NEARBY_POINT_CONFIG`,不要直接把数值散落回业务代码
+5. 如果继续加动画,必须放在抽吸状态机完全稳定之后
+6. 如果继续优化 popup,也要同步遵循“点先于文字”的显示原则
+
+## 9. 当前结论
+
+当前这版抽吸实现已经形成了比较稳定的主线:
+
+- 自动识别近邻点
+- 统一缩放阶段显示规则
+- 展开阶段几何偏移
+- 文字依赖点显示
+- 文字避让图标与文字
+
+后续如果继续调优,建议先从参数层开始,不要先动主逻辑结构。
diff --git a/frontend-sjgl/docs/地图模块-详细说明.md b/frontend-sjgl/docs/地图模块-详细说明.md
new file mode 100644
index 00000000..1dbede0c
--- /dev/null
+++ b/frontend-sjgl/docs/地图模块-详细说明.md
@@ -0,0 +1,621 @@
+# 地图模块-详细说明
+
+## 1. 文档目的
+
+本文档用于说明当前地图模块的真实运行结构、初始化时序、图层与图例联动、点位渲染规则、筛选与缩放行为,以及近期已经落地的关键约束。
+
+本文档描述的是“当前可运行版本”的现状,不展开抽吸参数细节与专项问题分析。相关补充文档如下:
+
+- `docs/地图模块-抽吸规则与参数说明.md`
+- `docs/地图模块-OpenLayers抽吸与碰撞分析.md`
+
+## 2. 当前技术栈
+
+- 前端框架:Vue 3 + TypeScript + Ant Design Vue
+- 状态管理:Pinia
+- 2D 地图引擎:OpenLayers 10.8.0
+- 3D 地图引擎:Cesium
+- 地图服务:GeoServer / WMTS / XYZ
+- 运行模式:后台配置驱动 + 前台运行时编排
+
+说明:
+
+- 当前 2D 主链路已经完全围绕 OpenLayers 组织。
+- 项目中仍保留 Leaflet 相关依赖和旧代码,但不是当前主执行路径。
+
+## 3. 模块分层
+
+当前地图模块可以按 6 层理解:
+
+1. 页面入口层
+2. 应用编排层
+3. 地图能力门面层
+4. 地图引擎执行层
+5. Store 运行态层
+6. 前台交互组件层
+
+对应核心文件如下:
+
+- 页面入口层
+ - `src/components/gis/GisView.vue`
+- 应用编排层
+ - `src/modules/map/application/map-orchestrator.ts`
+- 地图能力门面层
+ - `src/components/gis/map.class.ts`
+- 地图引擎执行层
+ - `src/components/gis/map.ol.ts`
+ - `src/components/gis/map.cesium.ts`
+ - `src/components/gis/ol/point-layer-manager.ts`
+ - `src/components/gis/ol/popup-manager.ts`
+- Store 运行态层
+ - `src/store/modules/map.ts`
+ - `src/modules/map/stores/map-config.store.ts`
+ - `src/modules/map/stores/map-data.store.ts`
+ - `src/modules/map/stores/map-view.store.ts`
+- 前台交互组件层
+ - `src/components/mapLegend/index.vue`
+ - `src/components/mapFilter/index.vue`
+ - `src/components/mapController/index.vue`
+ - `src/components/mapController/LayerController.vue`
+ - `src/components/BaseLayerSwitcher/index.vue`
+
+## 4. 整体原则
+
+当前地图模块遵循以下几个运行原则:
+
+### 4.1 地图容器全局常驻
+
+地图由 `GisView.vue` 常驻挂载,不会随着菜单切换被销毁重建。页面切换本质上是:
+
+- 重新计算 `pageKey`
+- 重新加载该页图层配置和图例配置
+- 用新的运行态覆盖旧页面显示内容
+
+### 4.2 配置驱动
+
+前端不把全部图层和图例硬编码死,而是依赖后端返回的:
+
+- 图层树配置
+- 图例配置
+- 页面级图例配置
+- 各业务点位接口数据
+
+### 4.3 运行态绝对优先
+
+初始化默认值只在第一次派生时生效;一旦进入运行态,后续图层勾选、图例勾选、筛选器切换,都必须以当前用户操作后的状态为准,不能在加载完成后回退到默认状态。
+
+## 5. 页面入口层
+
+### 5.1 `GisView.vue`
+
+`GisView.vue` 的职责主要是:
+
+- 提供地图容器 `#mapContainer`
+- 提供 popup 挂载容器
+- 挂载图例、筛选器、控制器、底图切换器
+- 根据路由计算 `pageKey`
+- 在挂载时调用 `mapOrchestrator.mountView()`
+- 在页面切换时交给编排器重载页面
+
+当前页面层已经不再直接承载复杂业务逻辑,复杂链路都收敛到了编排器和 Store。
+
+## 6. 应用编排层
+
+### 6.1 `map-orchestrator.ts` 的职责
+
+`map-orchestrator.ts` 是当前地图业务的总调度中心,主要负责:
+
+- 初始化地图壳与 popup
+- 加载页面图层配置和图例配置
+- 初始化 GIS 基础图层
+- 触发点位图层加载
+- 管理缩放监听和基地切换监听
+- 处理图层树勾选
+- 处理图例勾选
+- 处理时间筛选、容量筛选、搜索定位
+- 处理水电开发菜单下的缩放联动图层
+
+### 6.2 页面初始化链路
+
+当前初始化顺序如下:
+
+1. `GisView.vue` 调用 `mapOrchestrator.mountView()`
+2. `MapClass.init()` 初始化地图实例
+3. 页面级 popup 容器挂到地图实例
+4. 绑定缩放监听和基地监听
+5. 并行请求图层树配置与图例配置
+6. 图例接口先返回时,立即生成图例运行态
+7. 图层树接口返回后,生成默认勾选图层并初始化 GIS 基础图层
+8. 再按图层配置批量加载点位数据
+
+这里有两个当前已落地的关键时序调整:
+
+- 图例转圈只跟图例接口绑定,不再等待所有锚点接口完成。
+- 筛选器数据会随着已加载图层逐步出现,不再必须等全量点位接口结束。
+
+### 6.3 页面切换
+
+页面切换时地图不销毁,只重载当前页面的:
+
+- 图层树配置
+- 图例配置
+- 点位数据
+- 当前页面的默认运行态
+
+如果仍处于同一个 `pageKey` 且用户之前修改过勾选态,会尽量复用当前运行态,而不是重新回放默认勾选。
+
+### 6.4 缩放联动
+
+当前编排层主要有两类缩放联动:
+
+- `eng_point` 缩放联动
+ - 大型电站始终允许显示
+ - 中型电站仅在 `zoom > 7.5` 时进入显示候选
+- 水电开发菜单动态图层联动
+ - `HYDRO_DYNAMIC_LAYER_KEYS` 在缩放跨越阈值时参与加载与显隐编排
+
+## 7. 地图能力门面层
+
+### 7.1 `map.class.ts`
+
+`MapClass` 是地图能力统一门面,屏蔽 2D / 3D 引擎差异,对外暴露统一方法。
+
+当前常用能力包括:
+
+- `init()`
+- `initPopupOverlay()`
+- `addBaseDataLayer()`
+- `addInitDataLayer()`
+- `mdLayerTreeShowOrHidden()`
+- `controlBaseLayerTreeShowAndHidden()`
+- `setLegendPointVisible()`
+- `hasLayer()`
+- `hasBaseLayer()`
+- `removePointLayer()`
+- `flyTopanto()`
+- `switchView()`
+
+当前业务主执行层仍然是 `MapOl`。
+
+## 8. 地图引擎执行层
+
+### 8.1 OpenLayers 主执行层
+
+`map.ol.ts` 负责 OpenLayers 地图的实际渲染与交互,是当前 2D 地图主执行文件。
+
+当前承担的核心能力包括:
+
+- 地图实例初始化
+- 底图与 GIS 图层管理
+- 点位图层渲染
+- 图标与文字样式生成
+- hover popup 与批量 popup
+- 基地范围裁切
+- 高缩放交互
+- 测量、截图、飞行定位等基础地图能力
+
+### 8.2 Cesium 执行层
+
+`map.cesium.ts` 目前更多是保留 3D 入口和部分基础能力,复杂业务点位与碰撞规则并未与 OpenLayers 完全对齐。
+
+结论上,当前真实业务规则仍然以 OpenLayers 链路为准。
+
+## 9. Store 分层
+
+### 9.1 `map-config.store.ts`
+
+负责配置态数据:
+
+- 图层树配置
+- 图层配置索引
+- 全量原始图例配置
+- 图例索引
+- 页面级图例配置
+- 配置接口加载状态
+
+当前这里拆分出了两个加载态:
+
+- `configLoading`
+- `legendLoading`
+
+其中 `legendLoading` 单独控制图例转圈。
+
+### 9.2 `map-data.store.ts`
+
+负责数据态:
+
+- `pointData`
+- `pointDataCache`
+- `layerLoadState`
+- 地图整体 `loading`
+
+这里的关键设计是:
+
+- 每个点图层有独立缓存
+- `pointData` 是由缓存合并出来的运行态数据
+- 单个图层命中缓存或接口返回后,就会立即回填 `pointData`
+
+因此当前搜索筛选下拉已经支持“渐进可用”,不再只能等全部接口结束。
+
+### 9.3 `map-view.store.ts`
+
+负责视图运行态:
+
+- 当前勾选图层 `checkedLayerKeys`
+- 图例勾选状态 `legendCheckedState`
+- 搜索时间范围
+- 当前基地
+- 当前缩放级别
+
+### 9.4 `src/store/modules/map.ts`
+
+这是当前地图运行逻辑最重的 Store,负责串联配置、缓存和地图实例。
+
+主要职责包括:
+
+- 生成图例运行态
+- 批量加载点位数据
+- 控制图层显隐
+- 控制图例显隐
+- 管理请求缓存与并发加载
+- 刷新点图层显示数据
+- 处理 `eng_point` 的显示过滤
+- 在全量点位准备完成后挂载近邻点元数据
+
+## 10. 图层分类
+
+当前地图里的图层大体可以分成三类:
+
+### 10.1 `GISMap`
+
+这类图层对应 GIS 基础图层或专题底图,由 `addBaseDataLayer()` 加载到 `layerRegistry`。
+
+当前已补充的规则:
+
+- 勾选 `GISMap` 时,不能只做显示/隐藏。
+- 如果地图实例中不存在该图层,需要先重新加载,再显示。
+
+### 10.2 点位图层
+
+这类图层由接口返回锚点数据,最终进入 `PointLayerManager` 维护的 `VectorLayer`。
+
+### 10.3 其他专题图层
+
+例如梯级流域、区域裁切辅助层等,这些更多由 `map.ol.ts` 单独控制。
+
+## 11. 图层数据加载机制
+
+### 11.1 配置与数据分离
+
+当前初始化时,配置加载与点位数据加载是两条链:
+
+- 图层树配置决定有哪些层、哪些默认勾选
+- 图例配置决定图例结构和图例项元数据
+- 点位数据接口决定地图上实际锚点内容
+
+### 11.2 加载顺序
+
+`loadAllLayerData()` 的主要逻辑是:
+
+1. 先收集所有带 URL 的图层
+2. 把默认勾选图层作为高优先级任务
+3. 收集完成后全量并发加载,不再按 4 个一组分批发起
+4. 每个图层完成后立即写入缓存
+5. 每个图层命中缓存或返回成功后,立即增量更新 `pointData`
+6. 全部图层结束后,再统一:
+ - 回填每层原始数据
+ - 挂载近邻点运行时元数据
+ - 刷新各图层显示数据
+ - 用最新运行态收尾
+
+### 11.3 初始化阶段的图例绝对性
+
+当前已修复一个关键问题:
+
+- 图例虽然可能在界面上还在 loading
+- 但只要图例配置已经返回,默认隐藏的图例项在点位首批入图时就必须生效
+
+也就是说,现在不会再出现:
+
+- loading 过程中先显示默认隐藏点
+- loading 结束后才消失
+
+## 12. 图例机制
+
+### 12.1 图例来源
+
+图例运行态由以下数据共同决定:
+
+- 原始全量图例配置
+- 当前页面图例配置
+- 当前已勾选图层
+- 当前图例勾选状态
+
+### 12.2 图例派生
+
+图例最终显示的是 `legendDataSelected`,而不是全量图例。
+
+派生逻辑核心原则如下:
+
+- 只有当前勾选图层对应的图例项才进入页面图例
+- 图例勾选状态是运行态绝对值
+- 环保设施分组有单独规则
+
+### 12.3 图例加载时机
+
+当前图例面板的 loading 只跟图例接口绑定:
+
+- 图例接口返回后立即停转
+- 图例内容在图层默认勾选同步后立即派生
+- 不再等待所有锚点接口完成
+
+## 13. 筛选器机制
+
+### 13.1 `MapFilter` 的职责
+
+筛选器当前包含以下能力:
+
+- 时间范围筛选
+- 装机容量筛选
+- 搜索定位
+- 个别页面的专题筛选项
+
+### 13.2 搜索下拉来源
+
+搜索下拉使用 `mapDataStore.pointData` 作为数据源。
+
+当前行为已经调整为:
+
+- 某个图层一旦命中缓存,筛选器即可出现该图层点位
+- 某个图层接口一旦返回成功,筛选器也会立即出现该图层点位
+
+因此筛选器当前是“渐进展示”,而不是“全量完成后一次性展示”。
+
+### 13.3 装机容量筛选
+
+装机容量筛选针对 `eng_point` 图层,当前规则如下:
+
+- `all`
+ - 恢复大型与中型图例
+- `large_eng_built`
+ - 只保留 `large_eng_` 前缀相关图例
+ - 地图上只显示大型电站点位
+- `mid_eng_built`
+ - 只保留 `mid_eng_` 前缀相关图例
+ - 地图上只显示中型电站点位
+
+当前容量切换不再只是影响筛选器本地下拉,而是会同步驱动:
+
+- 图例运行态
+- `eng_point` 点位显示
+
+## 14. `eng_point` 专项规则
+
+`eng_point` 是当前地图模块中的特殊图层,存在独立显示规则。
+
+### 14.1 缩放规则
+
+在数据入图阶段就生效:
+
+- 大型电站始终允许显示
+- 中型电站仅在 `zoom > 7.5` 时允许进入显示候选
+
+这不是单纯的图例控制,而是点位入图时的过滤逻辑。
+
+### 14.2 图例规则
+
+点位入图之后,仍然必须再经过图例运行态控制:
+
+- 允许入图,不等于最终可见
+- 只要图例勾选为隐藏,该类点位就必须隐藏
+
+### 14.3 容量筛选规则
+
+装机容量下拉会进一步批量控制 `eng_point` 的图例项,使图例与点位同步切换。
+
+## 15. 点位显示裁决链
+
+当前点位最终是否显示,至少会经过以下几层判断:
+
+1. 图层是否勾选
+2. 图例是否勾选
+3. 基地范围是否允许
+4. `eng_point` 缩放过滤是否通过
+5. `distance` 密度分档是否通过
+6. 近邻点显示阶段是否通过
+7. 图标是否已加载完成
+8. 当前缩放下是否进入碰撞控制
+
+这几层不是互斥关系,而是叠加裁决。
+
+## 16. 点位渲染与样式
+
+### 16.1 基础样式
+
+当前点位渲染包括:
+
+- 图标
+- 文字标签
+- 标签换行与截断
+- 缩放相关的图标与文字样式变化
+
+### 16.2 图标加载约束
+
+当前已经补充图标加载状态缓存:
+
+- 图标未加载完成时,不显示该点
+- 图标未加载完成时,文字也不先显示
+- 图标未加载完成时,不参与碰撞候选
+
+这样可以避免“文字先出来、图标还是空的”的问题。
+
+## 17. 抽吸、密度与碰撞
+
+### 17.1 专项文档
+
+抽吸与密度分档的详细参数请查看:
+
+- `docs/地图模块-抽吸规则与参数说明.md`
+
+### 17.2 当前裁决顺序
+
+当前点位显示顺序可以理解为:
+
+1. 密度分档
+2. 近邻抽吸
+3. 图标碰撞
+4. 文字碰撞
+
+补充约束:
+
+- 只有满足可见性条件的点,才能进入碰撞候选集
+- 被图例或缩放过滤掉的点,不能再去占用碰撞资格
+- 视图内无近邻的孤立点允许局部放行
+
+### 17.3 高缩放特例
+
+当前在高缩放层级 `zoom >= 15` 时,行为与中低缩放不同:
+
+- 只处理视口内点位
+- 点与文字不再做碰撞淘汰
+- 视口内符合基础显示条件的点和文字全部显示
+- 同时进入批量 popup 模式
+
+这条规则的目标是:
+
+- 保证深度放大后信息完整可见
+- 避免高缩放下还因为碰撞把点或文字压掉
+
+## 18. Popup 机制
+
+### 18.1 两类 popup
+
+当前 popup 分成两类:
+
+- hover popup
+- batch popup
+
+### 18.2 hover popup
+
+鼠标悬停时由 `pointermove` 驱动,只在非 batch popup 模式下显示。
+
+### 18.3 batch popup
+
+在 `zoom >= 15` 时进入批量 popup 模式:
+
+- 只基于当前视口内点位
+- 拖动地图时持续刷新
+- 但通过 `requestAnimationFrame` 做节流
+- `moveend` 后立即再做一次强制刷新
+
+当前这样做是为了兼顾两件事:
+
+- 保留“拖动时 popup 跟着更新”的原交互
+- 避免拖动过程中每个事件都重建整批 DOM
+
+### 18.4 惯性平移已关闭
+
+当前地图拖动已经关闭 OpenLayers 默认惯性平移:
+
+- 普通拖动仍然保留
+- 松手后不再继续滑动一小段
+
+这样可以减少高缩放 popup 场景下“松手还轻微位移”的观感问题。
+
+## 19. 基地与区域过滤
+
+基地切换是当前地图模块的关键能力之一,主要影响:
+
+- 地图裁切范围
+- 当前基地相关点位的可见性
+- 部分专题图层显示
+
+整体过程通常是:
+
+1. 外部基地选择源变化
+2. 编排器接收到基地 ID
+3. 地图实例切换基地范围
+4. 点位更新 `_regionVisible`
+5. 样式函数按区域可见性决定是否显示
+
+## 20. 典型交互链路
+
+### 20.1 图层树勾选
+
+1. `LayerController` 触发勾选变化
+2. 编排器归一化图层 key
+3. `map.ts` 更新运行态图层勾选
+4. 地图实例更新图层显隐
+5. 图例重新派生
+
+补充:
+
+- `GISMap` 勾选时,如果地图里没有该图层,会先补载,再显示
+
+### 20.2 图例勾选
+
+1. 图例组件触发点击
+2. 编排器转发图例切换
+3. `map.ts` 更新图例运行态
+4. 对应点位立即更新显隐
+5. 图例树同步更新灰态
+
+### 20.3 筛选器操作
+
+1. 用户切换时间、容量、搜索等条件
+2. 编排器接收命令
+3. 视情况更新视图运行态或重载数据
+4. 地图实例与图例运行态同步刷新
+
+### 20.4 缩放操作
+
+1. OpenLayers 视图触发 `change:resolution`
+2. 编排器更新当前缩放级别
+3. 处理 `eng_point` 阈值联动
+4. 水电开发菜单下处理动态图层联动
+5. `map.ol.ts` 处理高缩放 popup 与点位显示策略
+
+## 21. 当前重点文件清单
+
+- `src/components/gis/GisView.vue`
+- `src/components/gis/map.class.ts`
+- `src/components/gis/map.ol.ts`
+- `src/components/gis/map.cesium.ts`
+- `src/components/gis/gisUtils.ts`
+- `src/components/gis/mapurlManage.ts`
+- `src/components/gis/ol/point-layer-manager.ts`
+- `src/components/gis/ol/popup-manager.ts`
+- `src/modules/map/application/map-orchestrator.ts`
+- `src/modules/map/stores/map-config.store.ts`
+- `src/modules/map/stores/map-data.store.ts`
+- `src/modules/map/stores/map-view.store.ts`
+- `src/store/modules/map.ts`
+- `src/components/mapLegend/index.vue`
+- `src/components/mapFilter/index.vue`
+- `src/components/mapController/index.vue`
+- `src/components/mapController/LayerController.vue`
+- `src/components/BaseLayerSwitcher/index.vue`
+
+## 22. 当前结论
+
+当前地图模块已经形成比较清晰的主干结构:
+
+- `GisView` 负责挂载与页面入口
+- `map-orchestrator` 负责业务编排
+- `MapClass` 负责能力门面
+- `MapOl` 负责 2D 主执行
+- `map.ts + 三个拆分 store` 共同维护配置、数据与视图运行态
+- 图层树、图例、筛选器、popup、高缩放规则都已经围绕这条主干收口
+
+相较旧版说明,当前最重要的现状变化有 8 点:
+
+1. 图例 loading 已与锚点全量加载解耦
+2. 筛选器数据已支持渐进展示
+3. 初始化阶段默认隐藏图例项会立即生效
+4. 运行态勾选不会在 loading 完成后被默认值覆盖
+5. `eng_point` 有独立的缩放与容量规则
+6. 高缩放下视口内点和文字全部显示,不再做碰撞淘汰
+7. batch popup 保留拖动跟随,但增加了节流
+8. 地图拖动惯性已关闭
+
+后续如果继续扩展地图功能,建议仍然优先沿着“编排层 + Store 分层 + OpenLayers 执行层”这条主干扩展,不要再把复杂业务回填到页面组件里。
diff --git a/frontend-sjgl/docs/地图模块现状与改造方案.md b/frontend-sjgl/docs/地图模块现状与改造方案.md
new file mode 100644
index 00000000..181bb0e0
--- /dev/null
+++ b/frontend-sjgl/docs/地图模块现状与改造方案.md
@@ -0,0 +1,1158 @@
+# 地图模块现状与改造方案
+
+## 1. 文档目的
+
+本文档用于完整梳理当前地图模块的技术实现、业务能力、数据流转、关键规则、已知问题与性能瓶颈,并给出可分阶段落地的重构方案。目标是:
+
+- 让地图模块职责边界清晰,便于后续新增功能;
+- 降低组件、Store、地图引擎之间的耦合;
+- 优化基础图层、锚点、图例、筛选、基地裁切等功能的响应速度;
+- 为后续 2D/3D 扩展、复杂专题图层、更多筛选维度、更多交互能力预留稳定结构。
+
+---
+
+## 2. 当前模块范围
+
+当前地图模块覆盖以下业务能力:
+
+- 地图初始化与 2D/3D 切换;
+- GeoServer 基础底图、叠加图层、区域矢量图层加载;
+- Java 后端锚点数据请求、缓存、渲染;
+- 右侧图层树勾选控制图层显示与隐藏;
+- 左侧图例基于图层选中结果动态生成;
+- 图例项点击控制锚点显隐;
+- 基地选择后底图裁切与区域外锚点隐藏;
+- 地图悬停 Popup、点击详情弹窗;
+- 搜索、时间筛选、容量筛选、基地筛选;
+- 某些业务图层的互斥显示与特殊联动;
+- 局部专题菜单下的缩放级别联动动态图层。
+
+---
+
+## 3. 当前技术实现概览
+
+## 3.1 技术栈
+
+- 地图引擎:OpenLayers 作为 2D 主引擎,Cesium 作为 3D 引擎入口;
+- 状态管理:Pinia;
+- UI 框架:Vue 3 + `script setup` + Ant Design Vue;
+- 数据来源:
+ - GeoServer:基础底图、WMTS、XYZ、GeoJSON 边界;
+ - Java 后端接口:图层配置、图例配置、锚点数据;
+- 业务配置:
+ - 图层配置与图例配置来自后端;
+ - 锚点接口映射规则由 `src/store/modules/GisUrlList.ts` 维护。
+
+## 3.2 核心文件职责
+
+- `src/components/gis/GisView.vue`
+
+ - 地图容器入口;
+ - 地图初始化;
+ - 拉取图层配置与图例配置;
+ - 监听菜单切换、基地切换、缩放联动;
+ - 挂载 `MapLegend`、`MapFilter`、`MapController`、`BaseLayerSwitcher`。
+
+- `src/components/gis/map.class.ts`
+
+ - 地图能力门面类;
+ - 对外屏蔽 OpenLayers / Cesium 差异;
+ - 当前主要起到转发作用。
+
+- `src/components/gis/map.ol.ts`
+
+ - OpenLayers 主实现;
+ - 负责底图、锚点图层、Popup、图层显隐、区域裁切、量算、定位等;
+ - 当前承担了过多业务规则与渲染控制逻辑。
+
+- `src/store/modules/map.ts`
+
+ - 地图图层树、图例、锚点、缓存的核心 Store;
+ - 负责图层选中状态、图例选中状态、锚点请求、缓存、图例联动、图层联动;
+ - 当前是业务与渲染耦合最重的文件之一。
+
+- `src/components/mapController/LayerController.vue`
+
+ - 图层树 UI;
+ - 负责初始基础图层加载;
+ - 勾选事件直接调用 Store 更新图层与图例状态;
+ - 包含多个互斥业务规则。
+
+- `src/components/mapLegend/index.vue`
+
+ - 图例展示;
+ - 基于当前选中图层动态显示;
+ - 图例点击后直接驱动地图锚点显隐。
+
+- `src/components/mapFilter/index.vue`
+
+ - 搜索、基地筛选、容量筛选、时间筛选;
+ - 直接依赖 `mapStore` 和地图实例;
+ - 部分筛选逻辑通过直接修改图例和锚点实现。
+
+- `src/components/BaseLayerSwitcher/index.vue`
+
+ - 底图模式切换器;
+ - 切换矢量 / 地形 / 影像底图。
+
+- `src/components/gis/gisUtils.ts`
+
+ - 图层结构拍平;
+ - 基础图层 URL 处理;
+ - 图例数据转对象;
+ - 若干地图布局相关工具。
+
+- `src/api/map.ts`
+ - 拉取地图配置和图例配置。
+
+---
+
+## 4. 当前业务能力与逻辑链路
+
+## 4.1 初始化流程
+
+当前初始化主要发生在 `GisView.vue`:
+
+1. 调用 `MapClass.init()` 初始化 OpenLayers;
+2. 调用 `initPopupOverlay()` 挂载悬停 Popup;
+3. 调用 `fetchMapConfigs()` 并行请求:
+ - 地图图层配置;
+ - 全量图例配置;
+ - 当前页面图例配置;
+4. `mapStore.setLegendData()` 初始化图例原始数据与映射;
+5. `mapStore.setLayerData()` 初始化图层树和选中图层 key;
+6. `mapStore.loadAllLayerData()` 递归加载所有有 URL 的图层数据;
+7. `loadLayerData()` 将锚点数据写入缓存并直接调用 `mapClass.addInitDataLayer()` 预创建锚点图层;
+8. 全部锚点加载完成后,再调用 `updateLayerData()` 统一控制初始显示状态;
+9. 图例根据当前选中的图层动态生成并展示。
+
+### 现状特点
+
+- 当前是“初始化阶段一次性预加载大多数锚点图层,再通过显隐控制”的策略;
+- 图例显示被设计为“锚点完成后再显示”;
+- 地图实例、Store、UI 组件三方互相直接调用。
+
+## 4.2 基础图层加载与切换
+
+基础底图主要由 `LayerController.vue` 和 `map.ol.ts` 协同完成:
+
+- `LayerController.vue` 中监听图层树配置;
+- 对类型为 `GISMap` 的节点解析 `paramJson`,通过 `getMapConfig()` 补齐 GeoServer 地址;
+- 调用 `mapClass.addBaseDataLayer()` 初始化基础图层;
+- 同时调用 `controlBaseLayerTreeShowAndHidden()` 控制显隐;
+- `BaseLayerSwitcher` 再通过 `baseLayerSwitcher()` 在矢量 / 地形 / 影像底图之间切换。
+
+当前基础图层类型主要包括:
+
+- WMTS:GeoServer WMTS 瓦片;
+- XYZ:例如 DEM 或其他切片图层;
+- vector:部分矢量底图或区域配置。
+
+### 自然保护区图层特点
+
+- 属于叠加在底图之上的 GIS 图层;
+- 显隐仍通过基础图层控制逻辑处理;
+- 与区域裁切场景存在较强耦合。
+
+## 4.3 图层树勾选控制
+
+右侧图层树由 `LayerController.vue` 驱动:
+
+- 树节点勾选结果通过 `broadcast()` 调用 `mapStore.updateLayerData()`;
+- 图层树中包含多种特殊规则:
+ - 视频监控站与 AI 视频监控站互斥;
+ - 环保设施和环保设施在建互斥;
+ - 珍稀鱼类与沿程鱼类互斥;
+- 初始选中状态通过递归遍历图层树生成。
+
+### 现状问题
+
+- 互斥逻辑分散在 UI 组件和 Store 两处;
+- “图层树状态”与“地图真实状态”并非单向流;
+- 图层节点既承担展示,又携带业务配置与运行态字段。
+
+## 4.4 锚点数据加载
+
+锚点数据由 `mapStore.loadAllLayerData()` 和 `loadLayerData()` 负责:
+
+- 遍历图层树中全部带 URL 的图层;
+- 使用 `GisUrlList.ts` 将图层 key / title / url 映射成真实请求地址、筛选条件、排序规则;
+- 请求 Java 接口;
+- 将返回记录补充:
+ - `iconCode`
+ - `code`
+ - `_id`
+ - `tm`
+- 然后缓存到:
+ - `pointDataCache[layerKey]`
+ - `layer.data`
+ - 合并后的 `pointData`
+- 若地图上还不存在该图层,则直接调用 `mapClass.addInitDataLayer()` 创建 `VectorLayer`。
+
+### 当前锚点渲染方式
+
+- 每个 `pointMap` 图层对应一个 `VectorLayer`;
+- 每个点被转为 `Feature`;
+- Feature 上维护多个运行态字段:
+ - `_iconUrl`
+ - `_labelText`
+ - `_legendVisible`
+ - `_regionVisible`
+ - `_layerKey`
+- 样式函数 `createPointStyle()` 在渲染时综合判断:
+ - 图例是否显示;
+ - 是否在基地区域内;
+ - 当前缩放级别;
+ - 点之间距离阈值;
+ - 是否悬停。
+
+## 4.5 图例动态生成与点击联动
+
+图例数据来源于两部分:
+
+- `legendDataOriginal`:后端返回的全量图例;
+- `legendDataSelected`:根据当前选中的图层动态筛选后的图例结构。
+
+当前机制:
+
+1. 初始化时拉取全部图例;
+2. 通过 `layerCode` 与图层树选中结果建立关联;
+3. `mapStore.updateLayerData()` 重新计算当前选中的图例树;
+4. `MapLegend` 监听 `legendDataSelected` 进行展示;
+5. 点击图例项后:
+ - 更新 Store 中图例 checked 状态;
+ - 若是锚点图层,则调用 `mapClass.setLegendPointVisible()`;
+ - 若是 GIS 图层,则调用 `controlBaseLayerTreeShowAndHidden()`。
+
+### 环保设施特殊逻辑
+
+- 勾选 `fp_point`、`eq_point`、`fb_point`、`vp_point`、`va_point`、`sg_point`、`dw_point` 中任意图层时,图例自动补充“环保设施”分组;
+- 全部取消时自动移除该图例分组。
+
+## 4.6 筛选与搜索
+
+`MapFilter` 负责以下功能:
+
+- 装机容量筛选;
+- 锚点关键字搜索;
+- 时间筛选;
+- 基地筛选;
+- 个别专题下的鱼类分布筛选。
+
+当前实现方式:
+
+- 搜索下拉列表从 `pointData` 里计算;
+- 只展示当前已选中图层中的锚点;
+- 容量筛选直接修改图例状态,并调用 `map.mdLayerShowOrHidden()` 控制 feature 显隐;
+- 时间筛选通过 `mapStore.updateSearchTimeRange()` 清缓存、删图层、重新请求;
+- 基地切换通过监听 `JidiSelectEventStore.selectedItem` 联动地图区域裁切。
+
+## 4.7 基地选择与区域裁切
+
+基地逻辑入口在 `GisView.vue` 监听器中:
+
+- 当基地变化时,调用 `mapClass.jdPanelControlShowAndHidden()`;
+- `map.ol.ts` 内会:
+ - 更新当前 `BASEID`;
+ - 请求基地 GeoJSON 边界;
+ - 隐藏所有锚点;
+ - 通过射线法判断锚点是否在区域内;
+ - 标记 `_regionVisible`;
+ - 调整视角;
+ - 对底图应用遮罩。
+
+### 该能力的业务效果
+
+- 只显示当前基地区域内的锚点;
+- 底图裁切到当前基地范围;
+- 全选时取消遮罩并显示全部锚点。
+
+## 4.8 Popup 与点击详情
+
+当前交互如下:
+
+- `pointermove` 时调用 `detectFeatureAtPixel()` 检查命中点要素;
+- 若命中图标区域,则:
+ - 更新鼠标指针;
+ - 更新 `hoveredFeatureId`;
+ - 调用 `showPopup()` 展示悬停浮窗;
+ - 重绘所有点图层;
+- `click` 命中点要素时,打开详情弹窗并将 feature 属性写入 `modelStore`。
+
+### 当前特点
+
+- Popup 内容由 `popupHtml` 或 `generatePopupHtml(props)` 生成;
+- 命中检测采用逐像素回调加距离二次判断;
+- 所有点图层在 hover 状态切换时都会 `layer.changed()`。
+
+## 4.9 菜单与缩放级别联动
+
+在水电开发状况菜单下:
+
+- 地图缩放级别大于等于 12 时自动添加一组动态图层;
+- 缩回 12 以下时自动移除;
+- 菜单切换时会根据当前层级重新判断是否添加。
+
+当前动态图层 key 包括:
+
+- `dw_point`
+- `stinfo_video_point`
+- `stinfo_gjllz_point`
+- `wt_point`
+- `wq_ownWq_point`
+- `wq_countryWq_point`
+- `fp_point`
+- `eq_point`
+- `fb_point`
+- `vp_point`
+- `va_point`
+- `sg_point`
+
+---
+
+## 5. 当前数据流与调用关系
+
+当前主数据流可概括为:
+
+1. `GisView.vue` 拉取配置;
+2. `mapStore` 保存图层树、图例、缓存;
+3. `LayerController.vue` / `MapLegend.vue` / `MapFilter.vue` 直接操作 `mapStore`;
+4. `mapStore` 又直接调用 `mapClass`;
+5. `mapClass` 继续转发到 `map.ol.ts`;
+6. `map.ol.ts` 内部维护图层注册表和 Feature 运行态;
+7. 地图状态变化后,组件又通过监听 Store 再次更新 UI。
+
+### 现有结构本质
+
+当前是“多入口、多方向写状态”的结构:
+
+- 组件可以改 Store;
+- 组件可以直接调地图;
+- Store 可以直接调地图;
+- 地图内部又维护一套运行态;
+- 图例、图层树、地图显隐存在多份状态镜像。
+
+这会导致:
+
+- 状态同步成本高;
+- 某些场景下容易出现 UI 勾选状态与实际地图状态不一致;
+- 新增规则时只能继续在现有逻辑上叠加 `if/else`。
+
+---
+
+## 6. 当前存在的主要问题
+
+## 6.1 架构层面问题
+
+### 1. UI、业务编排、地图渲染耦合过深
+
+- `LayerController.vue`、`MapLegend.vue`、`MapFilter.vue` 都直接调 Store 和地图实例;
+- `map.ts` 同时负责:
+ - 请求;
+ - 缓存;
+ - 图例结构整理;
+ - 图层勾选;
+ - 地图显隐;
+ - 业务互斥;
+- `map.ol.ts` 同时负责:
+ - OpenLayers 适配;
+ - 业务过滤;
+ - 区域裁切;
+ - 弹窗;
+ - 图例控制;
+ - 锚点显示策略。
+
+### 2. 缺乏清晰的单向数据流
+
+- 图层树 checked、图例 checked、Feature `_legendVisible`、Layer visible 都是状态源;
+- 任何一个点修改后都可能触发联动,难以推断最终状态;
+- 某些流程依赖顺序正确才能表现正常。
+
+### 3. 业务规则分散
+
+- 互斥规则分散在 `LayerController.vue` 和 `map.ts`;
+- 环保设施图例补充逻辑在 `map.ts`;
+- 装机容量筛选逻辑在 `MapFilter.vue`;
+- 基地区域过滤逻辑在 `map.ol.ts`;
+- 这些规则没有统一归口,新增业务会继续扩大分散度。
+
+## 6.2 性能问题
+
+### 1. 初始化阶段预加载过重
+
+- `loadAllLayerData()` 会递归处理大量图层;
+- 即使图层未勾选,也会提前请求并建图层;
+- 页面首次进入时网络压力和首屏渲染压力较大。
+
+### 2. 递归遍历频繁
+
+- 图层树查找 `findLayerByKey()` 多次递归;
+- 图例生成 `getlegendData()` 递归;
+- `updateLayerData()` 每次变化都要递归更新 checked 状态;
+- 搜索项计算 `anchorPointOptions` 也会递归收集图层 key。
+
+### 3. 锚点显隐是全量 feature 遍历
+
+- 图例点击时逐个遍历 feature;
+- 基地裁切时逐个 feature 做点在面内判断;
+- hover 时所有点图层重绘;
+- 缩放变化会重复执行样式计算。
+
+### 4. 底图切换会 remove / add 图层
+
+- `baseLayerSwitcher()` 每次切换都移除旧底图再新增;
+- 对 WMTS / XYZ 来说会造成重复创建图层对象和重复请求开销。
+
+## 6.3 一致性与可靠性问题
+
+### 1. 存在明显临时代码与未收敛逻辑
+
+- `GisView.vue` 中 `fetchMapConfigs()` 里对图层做了 `splice(0, 2)` 临时截断;
+- 日志仍显示“临时限制”,说明线上逻辑可能仍处于测试状态。
+
+### 2. 存在未定义引用
+
+- `GisView.vue` 切换地图后调用 `fetchPointData()`,但项目中未找到定义;
+- `map.ts` 中使用了 `wq_lineTime`、`wt_lineTime`,但项目中未找到定义。
+
+### 3. 请求去重逻辑未真正落地
+
+- `map.ts` 中生成了 `requestIdentifier`,但未实际用于请求去重;
+- `requestParamsCopy` 也未参与有效逻辑。
+
+### 4. 图层状态与渲染状态容易失同步
+
+- `layer.checked`、`checkedLayerKeys`、图例 checked、Feature 可见状态是多份数据;
+- 其中任意一份被跳过更新,就可能出现视觉不一致。
+
+### 5. 部分代码存在明显遗留痕迹
+
+- `addInitDataLayer()` 中存在无意义语句 `3;`;
+- 有重复日志;
+- 有注释掉的大量旧逻辑;
+- 说明代码迁移过程中缺乏结构性收口。
+
+## 6.4 可维护性问题
+
+### 1. Store 过大
+
+- `map.ts` 既是数据仓库,又是调度器,又是业务规则中心;
+- 后续新增图层类型、筛选类型、专题逻辑时,文件会持续膨胀。
+
+### 2. MapOl 职责过多
+
+- 当前 `map.ol.ts` 既是 OpenLayers 适配器,又是图层经理、锚点经理、Popup 经理、区域裁切经理;
+- 单文件理解和修改成本已经偏高。
+
+### 3. 缺少规范化类型系统
+
+- 大量 `any`;
+- 图层配置、图例配置、锚点数据、请求映射结构都没有稳定类型;
+- 特殊图层规则依赖字符串常量散落在各处。
+
+---
+
+## 7. 改造目标
+
+本次改造建议达成以下目标:
+
+### 7.1 结构目标
+
+- 建立清晰的四层结构:视图层、应用编排层、领域状态层、地图渲染层;
+- 收拢业务规则,不再散落到多个 UI 组件和地图引擎实现中;
+- 建立稳定的数据模型与类型定义。
+
+### 7.2 性能目标
+
+- 首屏只加载必要图层;
+- 选中图层优先加载,未选中图层延后或懒加载;(待考虑)
+- 图例切换、基地切换、搜索筛选尽量使用索引和差量更新;
+- 减少重复递归、重复建图层、重复样式重算。
+
+### 7.3 维护目标
+
+- 新增图层类型、专题规则、图例规则时有固定扩展点;
+- 2D/3D 共享统一业务层,底层只替换渲染适配器;
+- 可以较容易增加埋点、日志、调试工具和单元测试。
+
+---
+
+## 8. 目标架构设计
+
+建议将地图模块拆分为四层:
+
+## 8.1 视图层
+
+只负责展示和用户交互,不直接编写复杂业务逻辑。
+
+建议保留的组件:
+
+- `GisView.vue`
+- `LayerController.vue`
+- `MapLegend.vue`
+- `MapFilter.vue`
+- `BaseLayerSwitcher.vue`
+
+视图层职责:
+
+- 展示树、图例、筛选项、底图切换器;
+- 分发用户动作;
+- 订阅 Store 派生结果;
+- 不直接调用 `map.ol.ts` 里的业务方法。
+
+## 8.2 应用编排层
+
+新增地图编排层,建议命名为:
+
+- `src/modules/map/application/map-orchestrator.ts`
+- 或 `src/components/gis/core/orchestrator.ts`
+
+职责:
+
+- 承接 UI 动作;
+- 统一处理“图层勾选、图例勾选、基地切换、时间筛选、搜索定位、底图切换”等命令;
+- 控制加载顺序;
+- 根据状态差异驱动地图渲染层;
+- 管理互斥规则和特殊规则。
+
+### 推荐模式
+
+所有 UI 动作统一转换成 Command:
+
+- `toggleLayer(layerKey)`
+- `toggleLegend(layerKey, legendKey)`
+- `switchBaseMap(baseMapKey)`
+- `changeBaseRegion(baseId)`
+- `changeTimeRange(range)`
+- `focusPoint(pointId)`
+
+## 8.3 领域状态层
+
+保留 Pinia,但将当前大 Store 拆分为多个职责明确的 Store / Service:
+
+- `mapConfigStore`
+
+ - 保存图层树、图例原始配置、页面配置;
+
+- `mapViewStateStore`
+
+ - 保存当前选中图层、选中图例、当前底图、当前基地、当前时间范围、当前缩放级别;
+
+- `mapDataStore`
+
+ - 保存锚点缓存、请求状态、加载状态、错误状态;
+
+- `mapRuleEngine`
+ - 保存互斥规则、派生规则、特殊专题规则。
+
+## 8.4 地图渲染层
+
+保留 `MapClass` 作为统一门面,但将 `MapOl` 拆分成多个 Manager:
+
+- `ol-map-adapter.ts`
+
+ - 只负责地图实例生命周期;
+
+- `ol-base-layer-manager.ts`
+
+ - 负责 WMTS / XYZ / GeoJSON / 底图切换;
+
+- `ol-point-layer-manager.ts`
+
+ - 负责锚点图层创建、更新、索引、显隐;
+
+- `ol-popup-manager.ts`
+
+ - 负责 hover / click / popup;
+
+- `ol-region-mask-manager.ts`
+
+ - 负责基地裁切、遮罩、点在面内过滤;
+
+- `ol-interaction-manager.ts`
+ - 负责缩放监听、量算、定位等。
+
+这样做后,`MapOl` 只保留聚合职责,不再直接承载全部细节。
+
+---
+
+## 9. 详细改造方案
+
+## 9.1 统一领域模型
+
+首先建立类型定义,避免继续依赖 `any`。
+
+建议新增:
+
+- `types/map-layer.ts`
+- `types/map-legend.ts`
+- `types/map-point.ts`
+- `types/map-rule.ts`
+
+### 图层类型建议
+
+- `BaseMapLayer`
+- `OverlayLayer`
+- `PointLayer`
+- `RegionMaskLayer`
+- `DynamicLayer`
+
+### 图层运行态建议(待考虑)
+
+将运行态从后端配置中剥离,不再直接把运行态写回原始配置:
+
+- `config`: 后端返回配置,只读;
+- `runtime`:
+ - `visible`
+ - `loaded`
+ - `loading`
+ - `error`
+ - `featureCount`
+ - `lastRequestKey`
+ - `lastUpdatedAt`
+
+## 9.2 统一图层树、图例、地图显隐状态源
+
+建议明确一个唯一状态源:
+
+- 图层是否勾选:只认 `selectedLayerKeys`;
+- 图例是否勾选:只认 `selectedLegendKeys`;
+- 地图渲染层不再存业务真相,只接收派生后的可见性差量。
+
+### 派生关系建议
+
+- `selectedLayerKeys` -> 派生当前显示的图例组;
+- `selectedLayerKeys + selectedLegendKeys + currentBaseId` -> 派生 Feature 可见性;
+- `selectedBaseMapKey` -> 派生当前底图组合;
+- `timeRange + filterConditions` -> 派生图层请求签名。
+
+## 9.3 建立图层索引与图例索引
+
+为提升速度,初始化配置后立即建立索引:
+
+- `layerByKey`
+- `legendByNameEn`
+- `legendByLayerCode`
+- `childrenByParentKey`
+- `layerDescendantsByKey`
+- `featureIndexByLayerAndLegendKey`
+
+### 优化收益
+
+- 避免每次 `findLayerByKey()` 递归;
+- 图例切换时直接定位对应图层和对应 feature 集合;
+- 图层树勾选联动时只处理差异节点。
+
+## 9.4 抽离请求解析器
+
+当前 `GisUrlList.ts` 的匹配逻辑散落在 `loadLayerData()` 中,建议拆出:
+
+- `map-layer-request-resolver.ts`
+
+职责:
+
+- 根据 `layer.key` / `layer.title` / `layer.url` 解析真实请求;
+- 生成标准请求结构:
+ - `url`
+ - `method`
+ - `filter`
+ - `sort`
+ - `cacheKey`
+
+### 进一步建议
+
+- 在应用启动时将 `GisUrlList.ts` 预编译成多索引字典;
+- 不要在每次 `loadLayerData()` 内重新构建 `urlListDict`;
+- 请求签名应真正参与去重和缓存。
+
+## 9.5 重新设计锚点加载策略(待考虑)
+
+建议从“全量预加载”改为“分层加载”:
+
+### 第一阶段
+
+- 首屏只加载默认勾选图层;
+- 图例也只基于已加载的默认勾选图层生成;
+
+### 第二阶段(待考虑)
+
+- 对常用图层做后台低优先级预取;
+- 非常规图层在首次勾选时再加载;
+
+### 第三阶段(待考虑)
+
+- 对时间敏感或高频筛选图层使用缓存失效策略:
+ - `cacheKey = layerKey + requestSignature`
+ - 基于时间范围、基地、专题条件生成。
+
+### 配套措施(待考虑)
+
+- 增加并发控制,例如同时最多 4 到 6 个接口请求;
+- 增加可取消请求,避免菜单切换时旧请求回写新页面;
+- 记录每个图层单独 loading 和 error 状态。
+
+## 9.6 重构点图层渲染管理
+
+建议将点图层改造成“图层级管理 + 索引级更新”模式。
+
+### 当前问题
+
+- 图例点击靠遍历全量 feature;
+- 基地裁切靠遍历全量 feature;
+- hover 时所有点图层都重绘。
+
+### 改造建议
+
+在 `PointLayerManager` 中维护以下索引:
+
+- `featuresByLayerKey`
+- `featuresByLegendKey`
+- `featuresByBaseId`
+- `featureById`
+
+### 改造后的显隐策略
+
+- 图例点击时,只处理该图例对应 feature 集合;
+- 基地切换时,优先按 `baseId` 做粗筛,再对边界交叉区域做点在面内判断;
+- 图层勾选时只切换对应 `VectorLayer.visible`;
+- 非必要不重新 `addFeatures()`。
+
+### 样式策略建议
+
+- 保留 style function,但减少在 style function 内做复杂业务判断;
+- 将 `_legendVisible`、`_regionVisible`、`_layerVisible` 预先计算为单个 `renderVisible` 标记;
+- 样式函数只做:
+ - 是否可见;
+ - 当前缩放级别;
+ - 当前 hover 状态;
+ - 图标与文本样式计算。
+
+## 9.7 底图与叠加层管理重构(待考虑)
+
+建议明确区分三类图层:
+
+- 主底图:矢量 / 地形 / 影像三选一;
+- 基础叠加层:自然保护区、行政边界等可附加;
+- 专题锚点层:水电工程、生态流量、水质站、视频站等。
+
+### 当前问题
+
+- 底图切换会 remove / add `customBaseLayer`;
+- 主底图和叠加底图概念混杂;
+- `controlBaseLayerTreeShowAndHidden()` 实际控制的不全是底图。
+
+### 改造建议
+
+- 维护 `currentBaseMapKey`;
+- 主底图预创建,切换时只改 visible;
+- 叠加层作为独立 overlay 管理;
+- 自然保护区等图层明确归类为 overlay,不与主底图复用同一逻辑。
+
+## 9.8 图例模块重构
+
+建议把“图例结构”和“图例选中态”彻底分离:
+
+- `legendSchema`: 后端原始图例树;
+- `legendVisibleTree`: 根据当前图层选择派生;
+- `legendCheckedSet`: 当前选中的图例 key 集。
+
+### 这样做的好处
+
+- 后端原始图例树不再被运行态污染;
+- 图例点击只更新 `legendCheckedSet`;
+- 图层变化只重算当前显示哪些图例,不直接修改原始结构;
+- 更容易实现“重置图例”、“记忆用户图例偏好”。
+
+## 9.9 基地裁切与区域过滤重构
+
+建议将基地逻辑完全收口到 `RegionMaskManager`。
+
+### 改造重点
+
+- 缓存基地 GeoJSON;
+- 一次解析边界,多次复用;
+- 对点位先按 `baseId` 粗筛,再按 polygon 精筛;
+- 避免每次基地切换都重新请求已缓存边界;
+- 底图遮罩和锚点区域过滤使用同一份区域上下文。
+
+### 进一步优化
+
+- 若后端能返回基地与锚点的归属关系,可优先直接按 `baseId` 过滤;
+- 点在面内判断只作为兜底校验;
+- 对非常大的多边形可预处理 bbox,先做 bbox 命中,再做射线法。 -
+- 有一个 baseID 来传值 直接请求接口数据加载
+- const url = this.hydropBaseConfig.geojson_url + `&cql_filter=BASEID='${this.BASEID}'`; console.log('正在请求裁切数据:', url);
+
+ // 等待数据加载
+ const geoJsonData = await this.loadGeoJsonData(url);
+
+## 9.10 Popup 与交互重构
+
+建议将 Popup 逻辑从 `MapOl` 中抽离:
+
+- `PopupManager` 负责:
+ - hover 命中检测;
+ - popup 位置;
+ - popup 内容渲染;
+ - click 详情回调;
+
+### 优化方向
+
+- 命中检测尽量只针对当前可见的点图层;
+- 对 hover 更新增加最小移动阈值;
+- 只重绘当前命中 feature 所在图层,而不是所有点图层;
+- Popup 内容生成应支持模板注册,不直接在地图层拼接业务 HTML。
+
+## 9.11 业务规则引擎化
+
+建议把分散的特殊规则抽到统一规则层。
+
+### 当前应纳入规则引擎的规则
+
+- 视频监控站与 AI 视频监控站互斥;
+- 环保设施与环保设施在建互斥;
+- 珍稀鱼类与沿程鱼类互斥;
+- 环保设施图例自动补充;
+- 水电开发状况菜单的缩放级别动态图层;
+- 水质断面多接口拼接;
+- 生态流量三级数据结构处理。
+
+### 建议实现方式
+
+定义规则接口:
+
+```ts
+interface MapBusinessRule {
+ id: string;
+ when(context: RuleContext): boolean;
+ apply(context: RuleContext): RulePatch;
+}
+```
+
+这样新增业务时只加规则文件,不再继续往组件和 Store 塞判断。
+
+## 9.12 组件层改造建议
+
+### `GisView.vue`
+
+- 只保留地图容器、初始化、模块挂载;
+- 配置请求交给 `mapOrchestrator.initialize(pageKey)`;
+- 菜单切换、基地切换也只发送命令。
+
+### `LayerController.vue`
+
+- 只处理树控件展示与事件抛出;
+- 互斥逻辑不要写在组件中;
+- 初始底图加载不要放在组件 watch 里,改到编排层统一处理。
+
+### `MapLegend.vue`
+
+- 只负责展示图例树和发出切换事件;
+- 不直接调用 `mapClass`。
+
+### `MapFilter.vue`
+
+- 搜索、容量、时间、基地变化全部改为发送标准命令;
+- 过滤后的锚点候选列表由 Store 派生,不在组件里自行拼装业务逻辑。
+
+### `BaseLayerSwitcher.vue`
+
+- 只负责切换主底图;
+- 不关心图层树中 `customBaseLayer` 的内部结构。
+
+## 9.13 日志、监控与调试能力(待考虑)
+
+建议补充以下调试能力:
+
+- 图层加载耗时;
+- 单图层接口耗时;
+- 首屏加载耗时;
+- 当前可见图层列表;
+- 当前可见锚点数量;
+- 当前选中图例数量;
+- 当前缓存命中率;
+- 当前基地裁切耗时。
+
+可以在开发模式下提供一个简易的地图调试面板,便于排查性能与状态同步问题。
+
+---
+
+## 10. 分阶段落地方案
+
+建议采用“四阶段渐进式改造”,避免一次性大改导致风险过高。
+
+## 第 1 阶段:收口现状与止血
+
+目标:不改变功能表现,先把明显风险收口。
+
+建议内容:
+
+- 去掉测试遗留逻辑,如 `splice(0, 2)`;
+- 修复未定义方法和未定义变量;
+- 清理重复日志、无效代码、注释垃圾;
+- 补充类型定义;
+- 建立 `layerByKey`、`legendByNameEn` 等基础索引;
+- 将互斥规则从组件内搬到 Store 或规则层统一处理;
+- 实现真实请求去重和请求取消。
+
+## 第 2 阶段:拆 Store 与编排层
+
+目标:建立单向数据流。
+
+建议内容:
+
+- 新增 `mapOrchestrator`;
+- 拆 `map.ts` 为配置、状态、数据三个模块;
+- UI 组件只发送命令;
+- 图例派生、图层派生、筛选派生全部收口到编排层。
+
+## 第 3 阶段:拆地图渲染层
+
+目标:把 `MapOl` 大文件拆开。
+
+建议内容:
+
+- 抽 `BaseLayerManager`;
+- 抽 `PointLayerManager`;
+- 抽 `PopupManager`;
+- 抽 `RegionMaskManager`;
+- 明确地图引擎层只负责“渲染执行”,不处理业务真相。
+
+## 第 4 阶段:性能强化与能力扩展
+
+目标:让模块适合长期迭代。
+
+建议内容:
+
+- 实现懒加载与后台预取;
+- feature 索引化;
+- 地图交互性能优化;
+- 支持规则插件化;
+- 补充测试与性能指标看板;
+- 为 3D 共用业务层做适配。
+
+---
+
+## 11. 推荐目录结构
+
+建议重构后目录大致如下:
+
+```text
+src/
+ modules/
+ map/
+ application/
+ map-orchestrator.ts
+ map-commands.ts
+ map-rule-engine.ts
+ domain/
+ types/
+ map-layer.ts
+ map-legend.ts
+ map-point.ts
+ map-filter.ts
+ services/
+ layer-request-resolver.ts
+ legend-deriver.ts
+ layer-deriver.ts
+ infrastructure/
+ stores/
+ map-config.store.ts
+ map-view-state.store.ts
+ map-data.store.ts
+ repositories/
+ map-config.repository.ts
+ map-point.repository.ts
+ render/
+ map.class.ts
+ ol/
+ ol-map-adapter.ts
+ ol-base-layer-manager.ts
+ ol-point-layer-manager.ts
+ ol-popup-manager.ts
+ ol-region-mask-manager.ts
+ ol-interaction-manager.ts
+ components/
+ gis/
+ GisView.vue
+ mapController/
+ LayerController.vue
+ mapLegend/
+ index.vue
+ mapFilter/
+ index.vue
+ BaseLayerSwitcher/
+ index.vue
+```
+
+---
+
+## 12. 重点业务的改造策略
+
+## 12.1 基础图层
+
+策略:
+
+- 单独定义主底图与叠加图层;
+- 预创建主底图;
+- 切换时仅改 visible;
+- `customBaseLayer` 不再作为特殊魔法 key 到处透传。
+
+## 12.2 水电工程锚点
+
+策略:
+
+- 作为标准 `PointLayer` 处理;
+- 保留当前图标、标签、距离阈值、Popup 规则;
+- 在 `PointLayerManager` 中建立 feature 索引。
+
+## 12.3 生态流量三级数据
+
+策略:
+
+- 在领域层定义树结构转换器;
+- Store 不直接关心层级深浅;
+- 图层树组件只拿已经标准化后的树。
+
+## 12.4 水质监测断面三接口拼接
+
+策略:
+
+- 不在 UI 或 Store 中散写拼接逻辑;
+- 建立专题数据聚合器,例如 `water-quality-point-aggregator.ts`;
+- 对外输出统一的 `PointLayerData`。
+
+## 12.5 视频监控站与 AI 视频监控站互斥
+
+策略:
+
+- 写成标准业务规则;
+- 由规则引擎统一裁剪勾选结果;
+- UI 不再内嵌业务互斥判断。
+
+## 12.6 自然保护区与区域底图
+
+策略:
+
+- 统一归类为 `OverlayLayer`;
+- 与主底图切换分离;
+- 与基地裁切共享区域上下文。
+
+---
+
+## 13. 测试与验收建议
+
+## 13.1 功能验收清单
+
+- 页面首次进入,默认勾选图层正确显示;
+- 图层树勾选与取消勾选,地图表现与图例表现一致;
+- 图例点击后,仅影响对应锚点;
+- 基地切换后,区域外锚点正确隐藏;
+- 底图切换不影响锚点和图例状态;
+- 时间筛选后相关图层正确重载;
+- 视频监控站与 AI 视频监控站互斥稳定;
+- 菜单切换后图层、图例、筛选项正确重置;
+- 悬停 Popup 与点击详情正常。
+
+## 13.2 性能验收指标
+
+建议至少跟踪:
+
+- 首屏地图可交互时间;
+- 默认勾选图层加载总耗时;
+- 单图层首次加载耗时;
+- 图层勾选后锚点出现时间;
+- 图例点击后的显隐响应时间;
+- 基地切换后的裁切完成时间;
+- 缓存命中率;
+- 页面切换时旧请求是否被取消。
+
+## 13.3 自动化测试建议
+
+建议补充三类测试:
+
+- 单元测试:
+
+ - 图例派生;
+ - 图层互斥规则;
+ - 请求解析器;
+ - 缓存 key 生成;
+
+- 集成测试:
+
+ - 图层勾选 -> 图例变化 -> 地图显隐;
+ - 基地切换 -> 区域裁切 -> 搜索列表更新;
+
+- 端到端测试:
+ - 地图初始化;
+ - 图层切换;
+ - 图例切换;
+ - 筛选联动;
+ - Popup 和详情弹窗。
+
+---
+
+## 14. 优先级最高的首批改造项
+
+如果本轮改造只做最有价值的一批,建议优先按以下顺序处理:
+
+1. 修复明显问题:
+
+ - 去掉 `splice(0, 2)`;
+ - 修复 `fetchPointData()` 未定义;
+ - 修复 `wq_lineTime` / `wt_lineTime` 未定义;
+ - 清理无效代码与重复日志。
+
+2. 建立统一状态源:
+
+ - `selectedLayerKeys`
+ - `selectedLegendKeys`
+ - `currentBaseId`
+ - `currentBaseMapKey`
+
+3. 抽离请求解析器和规则引擎:
+
+ - URL 映射规则统一;
+ - 互斥规则统一;
+ - 特殊图例补充规则统一。
+
+4. 拆 `map.ts`:
+
+ - 配置状态;
+ - 运行状态;
+ - 数据缓存;
+ - 行为编排。
+
+5. 拆 `map.ol.ts`:
+ - 底图管理;
+ - 锚点管理;
+ - Popup 管理;
+ - 区域裁切管理。
+
+---
+
+## 15. 改造后的预期收益
+
+完成改造后,地图模块应达到以下效果:
+
+- 新增图层和专题能力时,不需要修改多个组件和多个文件;
+- 图层树、图例、地图显隐的状态不再互相打架;
+- 首屏加载更快,图层切换更轻;
+- 地图代码从“堆逻辑”变成“可扩展的稳定结构”;
+- 后续增加 3D 共用逻辑、专题聚合图层、更多筛选条件时,改造成本明显下降。
+
+---
+
+## 16. 结论
+
+当前地图模块功能已经较完整,但代码结构处于“功能可用、结构偏重、规则分散、性能隐患较多”的阶段。继续在现有结构上叠加新需求,后续维护成本会快速上升。
+
+建议本次改造不要只做局部优化,而应围绕以下核心原则整体推进:
+
+- 单向数据流;
+- 业务规则收口;
+- 渲染层职责下沉;
+- 类型与索引先行;
+- 先止血,再拆层,再提速。
+
+按照本文档的分阶段方案推进,可以在不一次性推翻现有功能的前提下,逐步完成地图模块的结构升级。
diff --git a/frontend-sjgl/docs/地图模块重构实施清单.md b/frontend-sjgl/docs/地图模块重构实施清单.md
new file mode 100644
index 00000000..0a977c48
--- /dev/null
+++ b/frontend-sjgl/docs/地图模块重构实施清单.md
@@ -0,0 +1,380 @@
+# 地图模块重构实施清单
+
+## 1. 使用说明
+
+本文档是地图模块重构的执行清单,只保留当前已经明确、可以直接落地的实施项。
+
+以下内容暂不纳入本清单:
+
+- 仍需进一步讨论的方案;
+- 依赖后端配合后才能确定的优化项;
+- 暂未确定收益与改造成本的预研项;
+- 调试面板、埋点体系、长期性能平台化建设等扩展项。
+
+执行原则:
+
+- 先止血,再拆层,再提速;
+- 每一步都要保证现有业务可用;
+- 每个阶段结束后都要做功能回归;
+- 不在同一阶段同时改动 UI、Store、地图渲染层的大块逻辑。
+
+---
+
+## 2. 本轮重构目标
+
+本轮只完成以下确定目标:
+
+- 收口当前明显缺陷和遗留代码;
+- 建立基础类型和索引;
+- 将分散在组件中的核心业务规则收口;
+- 拆分地图 Store,建立更清晰的数据职责;
+- 抽离统一编排层;
+- 拆分 `map.ol.ts` 的核心管理职责;
+- 保证图层树、图例、锚点显隐链路更清晰;
+- 为后续继续重构预留稳定结构。
+
+---
+
+## 3. 阶段一:现状收口与问题修复
+
+## 3.1 清理明显遗留问题
+
+- [ ] 删除 `map.ol.ts` 中无意义代码和重复日志
+- [ ] 清理大段失效注释,保留必要说明
+- [ ] 统一地图相关文件中的临时 `console.log`
+
+涉及文件:
+
+- `src/components/gis/map.ol.ts`
+
+验收标准:
+
+- 页面可正常编译;
+- 首次进入地图页面不报错;
+- 控制台不再出现未定义函数或变量错误;
+- 默认图层、图例、锚点仍可正常显示。
+
+## 3.2 补充基础类型定义
+
+- [ ] 新增地图图层类型定义
+- [ ] 新增图例结构类型定义
+- [ ] 新增锚点数据类型定义
+- [ ] 新增筛选参数类型定义
+- [ ] 为 `map.ts`、`map.class.ts`、`map.ol.ts` 替换第一批高频 `any`
+
+建议新增文件:
+
+- `src/modules/map/types/map-layer.ts`
+- `src/modules/map/types/map-legend.ts`
+- `src/modules/map/types/map-point.ts`
+- `src/modules/map/types/map-filter.ts`
+
+验收标准:
+
+- 核心地图模块类型边界可读;
+- 新增类型后不影响现有运行;
+- `map.ts`、`map.ol.ts` 中关键方法参数不再全部使用 `any`。
+
+## 3.3 建立基础索引
+
+- [x] 建立 `layerByKey` 索引
+- [x] 建立 `legendByNameEn` 索引
+- [x] 建立 `legendByLayerCode` 索引
+- [x] 将 `findLayerByKey()` 的高频调用逐步替换为索引访问
+- [x] 将图例派生中的重复递归改为“初始化索引 + 增量查询”
+
+优先改造位置:
+
+- `src/store/modules/map.ts`
+
+验收标准:
+
+- 图层查找和图例查找不再完全依赖全量递归;
+- 图层勾选、图例切换后响应速度不下降;
+- 功能表现与现状一致。
+
+---
+
+## 4. 阶段二:规则收口
+
+## 4.1 收口互斥规则
+
+- [x] 将图层互斥逻辑从 `LayerController.vue` 中移出
+- [x] 将视频监控站与 AI 视频监控站互斥统一到规则函数
+- [x] 将环保设施与环保设施在建互斥统一到规则函数
+- [x] 将珍稀鱼类与沿程鱼类互斥统一到规则函数
+- [x] 保证互斥规则只有一个入口执行
+
+建议新增文件:
+
+- `src/modules/map/domain/map-layer-rules.ts`
+
+涉及文件:
+
+- `src/components/mapController/LayerController.vue`
+- `src/store/modules/map.ts`
+
+验收标准:
+
+- 图层树勾选时互斥结果稳定;
+- 不再同时在组件和 Store 两处维护同一套互斥规则;
+- 勾选结果、图例结果、地图显示结果保持一致。
+
+## 4.2 收口图例派生规则
+
+- [x] 将“图层选中后生成图例”逻辑提炼为独立函数
+- [x] 将“环保设施图例自动补充”逻辑提炼为独立规则
+- [x] 分离图例原始结构与图例选中状态
+- [x] 保证 `legendDataOriginal` 不再被运行态逻辑污染
+
+建议新增文件:
+
+- `src/modules/map/domain/legend-deriver.ts`
+
+涉及文件:
+
+- `src/store/modules/map.ts`
+- `src/components/mapLegend/index.vue`
+
+验收标准:
+
+- 图例显示仍按当前选中图层正确联动;
+- 图例点击后锚点显隐正确;
+- 图例原始结构与运行时状态职责更清晰。
+
+---
+
+## 5. 阶段三:拆分 Store
+
+## 5.1 拆分配置状态
+
+- [ ] 抽离图层树配置状态
+- [ ] 抽离图例原始配置状态
+- [ ] 抽离页面地图配置加载逻辑
+
+建议新增文件:
+
+- `src/modules/map/stores/map-config.store.ts`
+
+当前迁移来源:
+
+- `src/store/modules/map.ts`
+- `src/api/map.ts`
+
+## 5.2 拆分运行状态
+
+- [ ] 抽离当前选中图层 key
+- [ ] 抽离当前选中图例 key
+- [ ] 抽离当前基地、时间范围、缩放级别等运行态
+- [ ] 统一“当前地图状态”的唯一来源
+
+建议新增文件:
+
+- `src/modules/map/stores/map-view.store.ts`
+
+## 5.3 拆分数据缓存
+
+- [ ] 抽离锚点缓存
+- [ ] 抽离图层加载状态
+- [ ] 抽离锚点合并数据 `pointData`
+- [ ] 为每个图层维护独立 `loading / loaded / error`
+
+建议新增文件:
+
+- `src/modules/map/stores/map-data.store.ts`
+
+验收标准:
+
+- 原 `map.ts` 体积明显下降;
+- 配置、运行态、数据缓存职责分离;
+- 现有组件仍可通过兼容方式读取数据;
+- 默认图层、图例、锚点加载不受影响。
+
+---
+
+## 6. 阶段四:建立统一编排层
+
+## 6.1 新增地图编排器
+
+- [x] 新增地图模块统一编排入口
+- [x] 将地图初始化流程迁移到编排器
+- [x] 将图层勾选、图例勾选、基地切换、时间筛选、搜索定位改为统一命令
+- [x] 收口 `GisView.vue` 中的配置加载与监听联动逻辑
+
+建议新增文件:
+
+- `src/modules/map/application/map-orchestrator.ts`
+
+## 6.2 统一入口命令
+
+- [x] 定义 `initialize(pageKey)`
+- [x] 定义 `toggleLayer(layerKey)`
+- [x] 定义 `toggleLegend(layerKey, legendKey)`
+- [x] 定义 `changeBaseId(baseId)`
+- [x] 定义 `changeTimeRange(range)`
+- [x] 定义 `focusPoint(pointId)`
+
+涉及文件:
+
+- `src/components/gis/GisView.vue`
+- `src/components/mapController/LayerController.vue`
+- `src/components/mapLegend/index.vue`
+- `src/components/mapFilter/index.vue`
+
+验收标准:
+
+- 地图相关 UI 组件不再直接拼复杂业务逻辑;
+- 组件交互都通过统一入口触发;
+- 图层树、图例、筛选的联动链路更容易追踪。
+
+---
+
+## 7. 阶段五:拆分 OpenLayers 渲染层
+
+## 7.1 拆分点图层管理
+
+- [ ] 从 `map.ol.ts` 中抽离锚点图层创建逻辑
+- [ ] 从 `map.ol.ts` 中抽离锚点显隐逻辑
+- [ ] 从 `map.ol.ts` 中抽离图例控制锚点逻辑
+- [ ] 在点图层管理模块中维护图层注册表
+
+建议新增文件:
+
+- `src/components/gis/ol/point-layer-manager.ts`
+
+当前迁移来源:
+
+- `src/components/gis/map.ol.ts`
+
+## 7.2 拆分 Popup 管理
+
+- [ ] 抽离 `initPopupOverlay()`
+- [ ] 抽离 `detectFeatureAtPixel()`
+- [ ] 抽离 `showPopup()`
+- [ ] 收口 hover 和 click 交互逻辑
+
+建议新增文件:
+
+- `src/components/gis/ol/popup-manager.ts`
+
+## 7.3 拆分区域过滤管理
+
+- [x] 抽离基地切换后的区域裁切逻辑
+- [x] 抽离点在面内判断逻辑
+- [x] 抽离区域外锚点显隐逻辑
+- [x] 抽离遮罩应用与清理逻辑
+
+建议新增文件:
+
+- `src/components/gis/ol/region-mask-manager.ts`
+
+验收标准:
+
+- `map.ol.ts` 文件长度和职责明显收缩;
+- 点图层、Popup、基地裁切三类逻辑各自独立;
+- 现有地图交互行为不变。
+
+---
+
+## 8. 阶段六:组件瘦身
+
+## 8.1 `GisView.vue`
+
+- [x] 仅保留地图容器、地图初始化调用、组件挂载
+- [x] 移除配置请求和复杂 watch 编排逻辑
+- [x] 只通过编排器触发初始化和页面切换
+
+## 8.2 `LayerController.vue`
+
+- [x] 只保留树渲染与勾选事件
+- [x] 移除互斥规则
+- [x] 移除基础图层初始化编排逻辑
+
+## 8.3 `MapLegend.vue`
+
+- [x] 只保留图例渲染与点击事件分发
+- [x] 不直接调用地图实例
+
+## 8.4 `MapFilter.vue`
+
+- [x] 只保留表单与用户输入
+- [x] 搜索、容量、时间、基地变化全部通过编排器分发
+- [x] 不直接修改图例运行态和锚点显隐
+
+验收标准:
+
+- 组件文件职责单一;
+- UI 组件中不再出现大段业务逻辑;
+- 地图相关行为主要集中在编排层和 Store。
+
+---
+
+## 9. 阶段七:性能优化
+
+## 9.1 请求与缓存优化
+
+- [x] 将 `GisUrlList.ts` 预编译为索引字典,而不是每次请求时重建
+- [x] 实现真实请求去重
+- [x] 增加请求取消能力,避免菜单切换时旧请求回写
+- [x] 对图层加载增加并发控制
+- [x] 将缓存 key 与图层 key、筛选条件绑定
+
+## 9.2 锚点显示优化
+
+- [x] 图例切换时只处理目标图例对应的锚点集合
+- [x] 图层切换时优先切换图层可见性,不重复加点
+- [x] 减少 hover 时全量点图层重绘
+- [x] 减少样式函数中的业务判断复杂度
+
+验收标准:
+
+- 首屏加载时长不高于当前;
+- 图层勾选、图例勾选、基地切换响应速度优于当前;
+- 菜单快速切换时不出现旧数据回写。
+
+---
+
+## 10. 回归测试清单
+
+每完成一个阶段,至少回归以下功能:
+
+- [x] 地图初始化正常
+- [x] 默认基础图层正常显示
+- [x] 图层树勾选与取消勾选正常
+- [x] 图例随图层选中动态显示
+- [x] 图例点击能正确控制锚点显隐
+- [x] 基地切换后区域裁切和锚点过滤正常
+- [x] 锚点 hover Popup 正常
+- [x] 锚点点击详情弹窗正常
+- [x] 时间筛选、容量筛选、搜索定位正常
+- [x] 视频监控站与 AI 视频监控站互斥正常
+- [x] 菜单切换后地图数据不串页
+
+---
+
+## 11. 实施顺序建议
+
+推荐严格按以下顺序执行:
+
+1. 阶段一:现状收口与问题修复
+2. 阶段二:规则收口
+3. 阶段三:拆分 Store
+4. 阶段四:建立统一编排层
+5. 阶段五:拆分 OpenLayers 渲染层
+6. 阶段六:组件瘦身
+7. 阶段七:性能优化
+
+不建议直接跳到渲染层拆分或性能优化,否则会在旧结构上重复返工。
+
+---
+
+## 12. 本轮交付标准
+
+当本清单全部完成后,应达到以下结果:
+
+- 地图模块核心职责划分清晰;
+- 图层树、图例、锚点、筛选、基地切换链路可追踪;
+- 关键规则不再散落在多个组件里;
+- `map.ts` 和 `map.ol.ts` 体积明显下降;
+- 新增地图业务时有明确扩展点;
+- 后续继续做底图体系优化、长期性能建设时不需要再推翻本轮结构。
diff --git a/frontend-sjgl/index.html b/frontend-sjgl/index.html
new file mode 100644
index 00000000..fb3b1fd4
--- /dev/null
+++ b/frontend-sjgl/index.html
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+ 全过程数据管理子系统
+
+
+
+
+
+
diff --git a/frontend-sjgl/package.json b/frontend-sjgl/package.json
new file mode 100644
index 00000000..72fb6471
--- /dev/null
+++ b/frontend-sjgl/package.json
@@ -0,0 +1,97 @@
+{
+ "name": "qgc-buji-web",
+ "version": "1.2.0",
+ "scripts": {
+ "dev": "vite serve --mode development",
+ "build": "vite build --mode production",
+ "build:mvn": "vite build --mode production",
+ "serve": "vite preview",
+ "lint": "eslint src/**/*.{ts,js,vue} --fix",
+ "prettier": "prettier --write ."
+ },
+ "dependencies": {
+ "@ant-design/icons-vue": "^7.0.1",
+ "@element-plus/icons-vue": "^2.0.10",
+ "@turf/turf": "^7.3.5",
+ "@types/js-cookie": "^3.0.2",
+ "@univerjs-pro/exchange-client": "0.15.0",
+ "@univerjs/core": "0.14.0",
+ "@univerjs/preset-sheets-core": "^0.14.0",
+ "@univerjs/presets": "^0.14.0",
+ "@vueuse/core": "^9.1.1",
+ "@wangeditor/editor": "^5.0.0",
+ "@wangeditor/editor-for-vue": "^5.1.10",
+ "ant-design-vue": "latest",
+ "antdv-draggable-modal": "^1.1.6",
+ "axios": "^1.2.0",
+ "better-scroll": "^2.4.2",
+ "cesium": "^1.141.0",
+ "dayjs": "^1.11.20",
+ "default-passive-events": "^2.0.0",
+ "dom-to-image": "^2.6.0",
+ "echarts": "^5.2.2",
+ "element-plus": "^2.2.27",
+ "esri-leaflet": "^3.0.19",
+ "exceljs": "^4.4.0",
+ "file-saver": "^2.0.5",
+ "js-base64": "^3.7.5",
+ "js-cookie": "^3.0.1",
+ "jsencrypt": "^3.3.2",
+ "jszip": "^3.10.1",
+ "leaflet": "^1.9.4",
+ "lodash": "^4.18.1",
+ "moment": "^2.30.1",
+ "nprogress": "^0.2.0",
+ "ol": "^10.8.0",
+ "path-browserify": "^1.0.1",
+ "path-to-regexp": "^6.2.0",
+ "pdfjs-dist": "^6.0.227",
+ "pinia": "^2.0.12",
+ "react": "18",
+ "react-dom": "18",
+ "screenfull": "^6.0.0",
+ "sortablejs": "^1.14.0",
+ "video.js": "^8.23.7",
+ "videojs-contrib-hls": "^5.15.0",
+ "vue": "^3.2.40",
+ "vue-ant-modal-enhance": "^1.2.2",
+ "vue-i18n": "^9.1.9",
+ "vue-router": "^4.1.6",
+ "vuedraggable": "^2.24.3",
+ "wujie": "^1.0.24",
+ "wujie-vue3": "^1.0.24",
+ "xlsx": "^0.18.5",
+ "xlsx-js-style": "^1.2.0"
+ },
+ "devDependencies": {
+ "@commitlint/cli": "^16.2.3",
+ "@commitlint/config-conventional": "^16.2.1",
+ "@types/dom-to-image": "^2.6.7",
+ "@types/lodash": "^4.17.24",
+ "@types/node": "^16.11.7",
+ "@types/nprogress": "^0.2.0",
+ "@types/path-browserify": "^1.0.0",
+ "@typescript-eslint/eslint-plugin": "^5.19.0",
+ "@typescript-eslint/parser": "^5.19.0",
+ "@vitejs/plugin-vue": "^4.0.0",
+ "autoprefixer": "^10.4.13",
+ "eslint": "^8.14.0",
+ "eslint-config-prettier": "^8.5.0",
+ "eslint-plugin-prettier": "^4.0.0",
+ "eslint-plugin-vue": "^8.6.0",
+ "fast-glob": "^3.2.11",
+ "husky": "^7.0.4",
+ "postcss": "^8.4.20",
+ "prettier": "^2.6.2",
+ "sass": "^1.53.0",
+ "tailwindcss": "^3.2.4",
+ "typescript": "latest",
+ "vite": "^4.0.3",
+ "vite-plugin-cesium": "^1.2.22",
+ "vite-plugin-svg-icons": "^2.0.1",
+ "vue-tsc": "latest"
+ },
+ "repository": "https://gitee.com/youlaiorg/vue3-element-admin.git",
+ "author": "有来开源组织",
+ "license": "MIT"
+}
diff --git a/frontend-sjgl/pnpm-lock.yaml b/frontend-sjgl/pnpm-lock.yaml
new file mode 100644
index 00000000..42ba5b75
--- /dev/null
+++ b/frontend-sjgl/pnpm-lock.yaml
@@ -0,0 +1,13865 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@ant-design/icons-vue':
+ specifier: ^7.0.1
+ version: 7.0.1(vue@3.5.33(typescript@6.0.3))
+ '@element-plus/icons-vue':
+ specifier: ^2.0.10
+ version: 2.3.2(vue@3.5.33(typescript@6.0.3))
+ '@turf/turf':
+ specifier: ^7.3.5
+ version: 7.3.5
+ '@types/js-cookie':
+ specifier: ^3.0.2
+ version: 3.0.6
+ '@univerjs-pro/exchange-client':
+ specifier: 0.15.0
+ version: 0.15.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/core':
+ specifier: 0.14.0
+ version: 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/preset-sheets-core':
+ specifier: ^0.14.0
+ version: 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/presets':
+ specifier: ^0.14.0
+ version: 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@vueuse/core':
+ specifier: ^9.1.1
+ version: 9.13.0(vue@3.5.33(typescript@6.0.3))
+ '@wangeditor/editor':
+ specifier: ^5.0.0
+ version: 5.1.23
+ '@wangeditor/editor-for-vue':
+ specifier: ^5.1.10
+ version: 5.1.12(@wangeditor/editor@5.1.23)(vue@3.5.33(typescript@6.0.3))
+ ant-design-vue:
+ specifier: latest
+ version: 4.2.6(vue@3.5.33(typescript@6.0.3))
+ antdv-draggable-modal:
+ specifier: ^1.1.6
+ version: 1.1.6(ant-design-vue@4.2.6(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3))
+ axios:
+ specifier: ^1.2.0
+ version: 1.15.2
+ better-scroll:
+ specifier: ^2.4.2
+ version: 2.5.1
+ cesium:
+ specifier: ^1.141.0
+ version: 1.141.0
+ dayjs:
+ specifier: ^1.11.20
+ version: 1.11.20
+ default-passive-events:
+ specifier: ^2.0.0
+ version: 2.0.0
+ dom-to-image:
+ specifier: ^2.6.0
+ version: 2.6.0
+ echarts:
+ specifier: ^5.2.2
+ version: 5.6.0
+ element-plus:
+ specifier: ^2.2.27
+ version: 2.13.7(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
+ esri-leaflet:
+ specifier: ^3.0.19
+ version: 3.0.19(leaflet@1.9.4)
+ exceljs:
+ specifier: ^4.4.0
+ version: 4.4.0
+ file-saver:
+ specifier: ^2.0.5
+ version: 2.0.5
+ js-base64:
+ specifier: ^3.7.5
+ version: 3.7.8
+ js-cookie:
+ specifier: ^3.0.1
+ version: 3.0.5
+ jsencrypt:
+ specifier: ^3.3.2
+ version: 3.5.4
+ jszip:
+ specifier: ^3.10.1
+ version: 3.10.1
+ leaflet:
+ specifier: ^1.9.4
+ version: 1.9.4
+ lodash:
+ specifier: ^4.18.1
+ version: 4.18.1
+ moment:
+ specifier: ^2.30.1
+ version: 2.30.1
+ nprogress:
+ specifier: ^0.2.0
+ version: 0.2.0
+ ol:
+ specifier: ^10.8.0
+ version: 10.9.0
+ path-browserify:
+ specifier: ^1.0.1
+ version: 1.0.1
+ path-to-regexp:
+ specifier: ^6.2.0
+ version: 6.3.0
+ pdfjs-dist:
+ specifier: ^6.0.227
+ version: 6.0.227
+ pinia:
+ specifier: ^2.0.12
+ version: 2.3.1(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
+ react:
+ specifier: '18'
+ version: 18.3.1
+ react-dom:
+ specifier: '18'
+ version: 18.3.1(react@18.3.1)
+ screenfull:
+ specifier: ^6.0.0
+ version: 6.0.2
+ sortablejs:
+ specifier: ^1.14.0
+ version: 1.15.7
+ video.js:
+ specifier: ^8.23.7
+ version: 8.23.7
+ videojs-contrib-hls:
+ specifier: ^5.15.0
+ version: 5.15.0
+ vue:
+ specifier: ^3.2.40
+ version: 3.5.33(typescript@6.0.3)
+ vue-ant-modal-enhance:
+ specifier: ^1.2.2
+ version: 1.2.2(ant-design-vue@4.2.6(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3))
+ vue-i18n:
+ specifier: ^9.1.9
+ version: 9.14.5(vue@3.5.33(typescript@6.0.3))
+ vue-router:
+ specifier: ^4.1.6
+ version: 4.6.4(vue@3.5.33(typescript@6.0.3))
+ vuedraggable:
+ specifier: ^2.24.3
+ version: 2.24.3
+ wujie:
+ specifier: ^1.0.24
+ version: 1.0.29
+ wujie-vue3:
+ specifier: ^1.0.24
+ version: 1.0.29(vue@3.5.33(typescript@6.0.3))
+ xlsx:
+ specifier: ^0.18.5
+ version: 0.18.5
+ xlsx-js-style:
+ specifier: ^1.2.0
+ version: 1.2.0
+ devDependencies:
+ '@commitlint/cli':
+ specifier: ^16.2.3
+ version: 16.3.0
+ '@commitlint/config-conventional':
+ specifier: ^16.2.1
+ version: 16.2.4
+ '@types/dom-to-image':
+ specifier: ^2.6.7
+ version: 2.6.7
+ '@types/lodash':
+ specifier: ^4.17.24
+ version: 4.17.24
+ '@types/node':
+ specifier: ^16.11.7
+ version: 16.18.126
+ '@types/nprogress':
+ specifier: ^0.2.0
+ version: 0.2.3
+ '@types/path-browserify':
+ specifier: ^1.0.0
+ version: 1.0.3
+ '@typescript-eslint/eslint-plugin':
+ specifier: ^5.19.0
+ version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@6.0.3))(eslint@8.57.1)(typescript@6.0.3)
+ '@typescript-eslint/parser':
+ specifier: ^5.19.0
+ version: 5.62.0(eslint@8.57.1)(typescript@6.0.3)
+ '@vitejs/plugin-vue':
+ specifier: ^4.0.0
+ version: 4.6.2(vite@4.5.14(@types/node@16.18.126)(sass@1.99.0))(vue@3.5.33(typescript@6.0.3))
+ autoprefixer:
+ specifier: ^10.4.13
+ version: 10.5.0(postcss@8.5.10)
+ eslint:
+ specifier: ^8.14.0
+ version: 8.57.1
+ eslint-config-prettier:
+ specifier: ^8.5.0
+ version: 8.10.2(eslint@8.57.1)
+ eslint-plugin-prettier:
+ specifier: ^4.0.0
+ version: 4.2.5(eslint-config-prettier@8.10.2(eslint@8.57.1))(eslint@8.57.1)(prettier@2.8.8)
+ eslint-plugin-vue:
+ specifier: ^8.6.0
+ version: 8.7.1(eslint@8.57.1)
+ fast-glob:
+ specifier: ^3.2.11
+ version: 3.3.3
+ husky:
+ specifier: ^7.0.4
+ version: 7.0.4
+ postcss:
+ specifier: ^8.4.20
+ version: 8.5.10
+ prettier:
+ specifier: ^2.6.2
+ version: 2.8.8
+ sass:
+ specifier: ^1.53.0
+ version: 1.99.0
+ tailwindcss:
+ specifier: ^3.2.4
+ version: 3.4.19
+ typescript:
+ specifier: latest
+ version: 6.0.3
+ vite:
+ specifier: ^4.0.3
+ version: 4.5.14(@types/node@16.18.126)(sass@1.99.0)
+ vite-plugin-cesium:
+ specifier: ^1.2.22
+ version: 1.2.22(cesium@1.141.0)(rollup@3.30.0)(vite@4.5.14(@types/node@16.18.126)(sass@1.99.0))
+ vite-plugin-svg-icons:
+ specifier: ^2.0.1
+ version: 2.0.1(vite@4.5.14(@types/node@16.18.126)(sass@1.99.0))
+ vue-tsc:
+ specifier: latest
+ version: 3.2.7(typescript@6.0.3)
+
+packages:
+
+ '@alloc/quick-lru@5.2.0':
+ resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
+ engines: {node: '>=10'}
+
+ '@ant-design/colors@6.0.0':
+ resolution: {integrity: sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==}
+
+ '@ant-design/icons-svg@4.4.2':
+ resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==}
+
+ '@ant-design/icons-vue@7.0.1':
+ resolution: {integrity: sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==}
+ peerDependencies:
+ vue: '>=3.0.3'
+
+ '@babel/code-frame@7.29.0':
+ resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-string-parser@7.27.1':
+ resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-identifier@7.28.5':
+ resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/parser@7.29.2':
+ resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/runtime@7.29.2':
+ resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.29.0':
+ resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==}
+ engines: {node: '>=6.9.0'}
+
+ '@better-scroll/core@2.5.1':
+ resolution: {integrity: sha512-koKOuYA55dQ04FJRIVUpMGDr1hbCfWmfX0MGp1hKagkQSWSRpwblqACiwtggVauoj9aaJRJZ9hDsTM4weaavlg==}
+
+ '@better-scroll/indicators@2.5.1':
+ resolution: {integrity: sha512-Hk+Y00pR6fTsu6C9HGg1yYZtsu1gAcTgcs4C9aM5h6fQANX/T2YIYrOSjZmdL+js2PTcXJWZS8VM4Xjoi1PbfQ==}
+
+ '@better-scroll/infinity@2.5.1':
+ resolution: {integrity: sha512-GKHrrasIh0KlGzhASHDo5hEEBJcDFpP4XaZGPH9Ey8+QBH6/O1ykAXS2ixkVAOTkBrv+KgFXoCUr4oN1xWeM+g==}
+
+ '@better-scroll/mouse-wheel@2.5.1':
+ resolution: {integrity: sha512-DGnrirRMY6zMM7xwgx09D/cA9A//3J1/uDkq8iBVEyE5p0sEr/keQpjEfFHGkBRa505BnbBwdbN6f5lugEDSPw==}
+
+ '@better-scroll/movable@2.5.1':
+ resolution: {integrity: sha512-8bLPRY15bbK4K5+tjrtdaKsFFKmJx72wRdg+xz3xQGFcTD940HFkJiORSOcz8Ufue7eOJfcmreQJBw6XY+TqTw==}
+
+ '@better-scroll/nested-scroll@2.5.1':
+ resolution: {integrity: sha512-3cRsARxf9tq1VWBq7YAaET0xGAmgY1ERMmnXDo2gHFrmsJoNOionlpAeHdZvKQp2jG7JrzJ1O27nGCXf40gnkw==}
+
+ '@better-scroll/observe-dom@2.5.1':
+ resolution: {integrity: sha512-TCMGFLRfpXBPIwtUV/efliUmfmrhSNI7NXdSyjdWjsLOS7dh3eFkmcom5ERVWMaXVELSmujGXLqobT+dT0C/jg==}
+
+ '@better-scroll/observe-image@2.5.1':
+ resolution: {integrity: sha512-0Lhfj83o8EESwOxr8bfStCzNOokTm3KB7JeyMS8u/xl+3tyTuls9889cyAukYk4Yly1cS49pCGfj2P8YOiwtUg==}
+
+ '@better-scroll/pull-down@2.5.1':
+ resolution: {integrity: sha512-Y6XcGu2NlevPg3k9VBRRFvpmfoTA+rO96JGdog2qKHclIPNXnsVwsIHtZfAm9weE/f9UuC4BnB+VUFRlucfupg==}
+
+ '@better-scroll/pull-up@2.5.1':
+ resolution: {integrity: sha512-1hu3xSMxdB8T391KffpNZ7g93lMwZEHjfb1F1Y4KvIkciDt8nXqkGpqrZF+YwR+EJTgYcWqUO8kgmI6XXu7Pkg==}
+
+ '@better-scroll/scroll-bar@2.5.1':
+ resolution: {integrity: sha512-i6r60pWG/ztkFK2j5Gj54I0LJb2jGh5TWJNQBoW0gUkp28B+0JvBFTwZn9tF7beZCBorKR7Hvvu4O9A1TJy94Q==}
+
+ '@better-scroll/shared-utils@2.5.1':
+ resolution: {integrity: sha512-AplkfSjXVYP9LZiD6JsKgmgQJ/mG4uuLmBuwLz8W5OsYc7AYTfN8kw6GqZ5OwCGoXkVhBGyd8NeC4xwYItp0aw==}
+
+ '@better-scroll/slide@2.5.1':
+ resolution: {integrity: sha512-aDOrfsmjAcz6DXN7mDX3tPieAn195R43Yn9e3waI19TIEok/mQlI1a/kb5quqWOoxkiaZQ8xe3vx5ZTj9C+F6Q==}
+
+ '@better-scroll/wheel@2.5.1':
+ resolution: {integrity: sha512-fYLcEvkh88Z/2L+P5/+SGMunuc+HzAjGOiORIa/x21qb/knO2RFH4A/V1Rt3OIW4QluWzuFnU6jJRPlsQVZ4fg==}
+
+ '@better-scroll/zoom@2.5.1':
+ resolution: {integrity: sha512-aGvFY5ooeZWS4RcxQLD+pGLpQHQxpPy0sMZV3yadcd2QK53PK9gS4Dp+BYfRv8lZ4/P2LoNEhr6Wq1DN6+uPlA==}
+
+ '@cesium/engine@25.0.0':
+ resolution: {integrity: sha512-vJZfgAAB7WTvUPsI8dFV+wKleweCZgpJj1ckcTIERnC+NWvJ9bjlAx0xPl0We57NoQKcdMDy+6UiFjOvPB/yGg==}
+ engines: {node: '>=22.0.0'}
+
+ '@cesium/wasm-splats@0.1.0-alpha.2':
+ resolution: {integrity: sha512-t9pMkknv31hhIbLpMa8yPvmqfpvs5UkUjgqlQv9SeO8VerCXOYnyP8/486BDaFrztM0A7FMbRjsXtNeKvqQghA==}
+
+ '@cesium/widgets@15.0.0':
+ resolution: {integrity: sha512-a0udi+EKEeCyM4F+pxp9Qx8HXgh2eWVQrksxGO4lSu3f35XWc+eKdYiJBEP2t1d4tjw2MxOsjbVyMj7VQZ4JDw==}
+ engines: {node: '>=22.0.0'}
+
+ '@commitlint/cli@16.3.0':
+ resolution: {integrity: sha512-P+kvONlfsuTMnxSwWE1H+ZcPMY3STFaHb2kAacsqoIkNx66O0T7sTpBxpxkMrFPyhkJiLJnJWMhk4bbvYD3BMA==}
+ engines: {node: '>=v12'}
+ hasBin: true
+
+ '@commitlint/config-conventional@16.2.4':
+ resolution: {integrity: sha512-av2UQJa3CuE5P0dzxj/o/B9XVALqYzEViHrMXtDrW9iuflrqCStWBAioijppj9URyz6ONpohJKAtSdgAOE0gkA==}
+ engines: {node: '>=v12'}
+
+ '@commitlint/config-validator@16.2.1':
+ resolution: {integrity: sha512-hogSe0WGg7CKmp4IfNbdNES3Rq3UEI4XRPB8JL4EPgo/ORq5nrGTVzxJh78omibNuB8Ho4501Czb1Er1MoDWpw==}
+ engines: {node: '>=v12'}
+
+ '@commitlint/ensure@16.2.1':
+ resolution: {integrity: sha512-/h+lBTgf1r5fhbDNHOViLuej38i3rZqTQnBTk+xEg+ehOwQDXUuissQ5GsYXXqI5uGy+261ew++sT4EA3uBJ+A==}
+ engines: {node: '>=v12'}
+
+ '@commitlint/execute-rule@16.2.1':
+ resolution: {integrity: sha512-oSls82fmUTLM6cl5V3epdVo4gHhbmBFvCvQGHBRdQ50H/690Uq1Dyd7hXMuKITCIdcnr9umyDkr8r5C6HZDF3g==}
+ engines: {node: '>=v12'}
+
+ '@commitlint/format@16.2.1':
+ resolution: {integrity: sha512-Yyio9bdHWmNDRlEJrxHKglamIk3d6hC0NkEUW6Ti6ipEh2g0BAhy8Od6t4vLhdZRa1I2n+gY13foy+tUgk0i1Q==}
+ engines: {node: '>=v12'}
+
+ '@commitlint/is-ignored@16.2.4':
+ resolution: {integrity: sha512-Lxdq9aOAYCOOOjKi58ulbwK/oBiiKz+7Sq0+/SpFIEFwhHkIVugvDvWjh2VRBXmRC/x5lNcjDcYEwS/uYUvlYQ==}
+ engines: {node: '>=v12'}
+
+ '@commitlint/lint@16.2.4':
+ resolution: {integrity: sha512-AUDuwOxb2eGqsXbTMON3imUGkc1jRdtXrbbohiLSCSk3jFVXgJLTMaEcr39pR00N8nE9uZ+V2sYaiILByZVmxQ==}
+ engines: {node: '>=v12'}
+
+ '@commitlint/load@16.3.0':
+ resolution: {integrity: sha512-3tykjV/iwbkv2FU9DG+NZ/JqmP0Nm3b7aDwgCNQhhKV5P74JAuByULkafnhn+zsFGypG1qMtI5u+BZoa9APm0A==}
+ engines: {node: '>=v12'}
+
+ '@commitlint/message@16.2.1':
+ resolution: {integrity: sha512-2eWX/47rftViYg7a3axYDdrgwKv32mxbycBJT6OQY/MJM7SUfYNYYvbMFOQFaA4xIVZt7t2Alyqslbl6blVwWw==}
+ engines: {node: '>=v12'}
+
+ '@commitlint/parse@16.2.1':
+ resolution: {integrity: sha512-2NP2dDQNL378VZYioLrgGVZhWdnJO4nAxQl5LXwYb08nEcN+cgxHN1dJV8OLJ5uxlGJtDeR8UZZ1mnQ1gSAD/g==}
+ engines: {node: '>=v12'}
+
+ '@commitlint/read@16.2.1':
+ resolution: {integrity: sha512-tViXGuaxLTrw2r7PiYMQOFA2fueZxnnt0lkOWqKyxT+n2XdEMGYcI9ID5ndJKXnfPGPppD0w/IItKsIXlZ+alw==}
+ engines: {node: '>=v12'}
+
+ '@commitlint/resolve-extends@16.2.1':
+ resolution: {integrity: sha512-NbbCMPKTFf2J805kwfP9EO+vV+XvnaHRcBy6ud5dF35dxMsvdJqke54W3XazXF1ZAxC4a3LBy4i/GNVBAthsEg==}
+ engines: {node: '>=v12'}
+
+ '@commitlint/rules@16.2.4':
+ resolution: {integrity: sha512-rK5rNBIN2ZQNQK+I6trRPK3dWa0MtaTN4xnwOma1qxa4d5wQMQJtScwTZjTJeallFxhOgbNOgr48AMHkdounVg==}
+ engines: {node: '>=v12'}
+
+ '@commitlint/to-lines@16.2.1':
+ resolution: {integrity: sha512-9/VjpYj5j1QeY3eiog1zQWY6axsdWAc0AonUUfyZ7B0MVcRI0R56YsHAfzF6uK/g/WwPZaoe4Lb1QCyDVnpVaQ==}
+ engines: {node: '>=v12'}
+
+ '@commitlint/top-level@16.2.1':
+ resolution: {integrity: sha512-lS6GSieHW9y6ePL73ied71Z9bOKyK+Ib9hTkRsB8oZFAyQZcyRwq2w6nIa6Fngir1QW51oKzzaXfJL94qwImyw==}
+ engines: {node: '>=v12'}
+
+ '@commitlint/types@16.2.1':
+ resolution: {integrity: sha512-7/z7pA7BM0i8XvMSBynO7xsB3mVQPUZbVn6zMIlp/a091XJ3qAXRXc+HwLYhiIdzzS5fuxxNIHZMGHVD4HJxdA==}
+ engines: {node: '>=v12'}
+
+ '@cspotcode/source-map-support@0.8.1':
+ resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
+ engines: {node: '>=12'}
+
+ '@ctrl/tinycolor@3.6.1':
+ resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==}
+ engines: {node: '>=10'}
+
+ '@ctrl/tinycolor@4.2.0':
+ resolution: {integrity: sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==}
+ engines: {node: '>=14'}
+
+ '@element-plus/icons-vue@2.3.2':
+ resolution: {integrity: sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A==}
+ peerDependencies:
+ vue: ^3.2.0
+
+ '@emotion/hash@0.9.2':
+ resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==}
+
+ '@emotion/unitless@0.8.1':
+ resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==}
+
+ '@esbuild/android-arm64@0.18.20':
+ resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm@0.18.20':
+ resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-x64@0.18.20':
+ resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/darwin-arm64@0.18.20':
+ resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.18.20':
+ resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/freebsd-arm64@0.18.20':
+ resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.18.20':
+ resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/linux-arm64@0.18.20':
+ resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.18.20':
+ resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.18.20':
+ resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.18.20':
+ resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.18.20':
+ resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.18.20':
+ resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.18.20':
+ resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.18.20':
+ resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.18.20':
+ resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/netbsd-x64@0.18.20':
+ resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-x64@0.18.20':
+ resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/sunos-x64@0.18.20':
+ resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/win32-arm64@0.18.20':
+ resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.18.20':
+ resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.18.20':
+ resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+
+ '@eslint-community/eslint-utils@4.9.1':
+ resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
+ '@eslint-community/regexpp@4.12.2':
+ resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/eslintrc@2.1.4':
+ resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@eslint/js@8.57.1':
+ resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@fast-csv/format@4.3.5':
+ resolution: {integrity: sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==}
+
+ '@fast-csv/parse@4.3.6':
+ resolution: {integrity: sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==}
+
+ '@flatten-js/interval-tree@1.1.3':
+ resolution: {integrity: sha512-xhFWUBoHJFF77cJO1D6REjdgJEMRf2Y2Z+eKEPav8evGKcLSnj1ud5pLXQSbGuxF3VSvT1rWhMfVpXEKJLTL+A==}
+
+ '@floating-ui/core@1.7.5':
+ resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==}
+
+ '@floating-ui/dom@1.7.6':
+ resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==}
+
+ '@floating-ui/react-dom@2.1.8':
+ resolution: {integrity: sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==}
+ peerDependencies:
+ react: '>=16.8.0'
+ react-dom: '>=16.8.0'
+
+ '@floating-ui/utils@0.2.11':
+ resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==}
+
+ '@humanwhocodes/config-array@0.13.0':
+ resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
+ engines: {node: '>=10.10.0'}
+ deprecated: Use @eslint/config-array instead
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ '@humanwhocodes/object-schema@2.0.3':
+ resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
+ deprecated: Use @eslint/object-schema instead
+
+ '@intlify/core-base@9.14.5':
+ resolution: {integrity: sha512-5ah5FqZG4pOoHjkvs8mjtv+gPKYU0zCISaYNjBNNqYiaITxW8ZtVih3GS/oTOqN8d9/mDLyrjD46GBApNxmlsA==}
+ engines: {node: '>= 16'}
+
+ '@intlify/message-compiler@9.14.5':
+ resolution: {integrity: sha512-IHzgEu61/YIpQV5Pc3aRWScDcnFKWvQA9kigcINcCBXN8mbW+vk9SK+lDxA6STzKQsVJxUPg9ACC52pKKo3SVQ==}
+ engines: {node: '>= 16'}
+
+ '@intlify/shared@9.14.5':
+ resolution: {integrity: sha512-9gB+E53BYuAEMhbCAxVgG38EZrk59sxBtv3jSizNL2hEWlgjBjAw1AwpLHtNaeda12pe6W20OGEa0TwuMSRbyQ==}
+ engines: {node: '>= 16'}
+
+ '@jridgewell/gen-mapping@0.3.13':
+ resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
+
+ '@jridgewell/resolve-uri@3.1.2':
+ resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/sourcemap-codec@1.5.5':
+ resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
+
+ '@jridgewell/trace-mapping@0.3.31':
+ resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
+
+ '@jridgewell/trace-mapping@0.3.9':
+ resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
+
+ '@napi-rs/canvas-android-arm64@1.0.0':
+ resolution: {integrity: sha512-3hNKJObUK7JsCF9aJlVCs1J0/KE/gGfZNeK8MO1ge6bB3aicr5walGme9t9No1f/oyk9GgvdAT/rjSdsx3gbIw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [android]
+
+ '@napi-rs/canvas-darwin-arm64@1.0.0':
+ resolution: {integrity: sha512-ZIja19/BiGz2puhki+WUYSRriwFeFJ8Mi9eK3hZdSS85w4Y60cuEAJVhMCfKwswQkKkUtrnzdKMBuO7TupvexA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@napi-rs/canvas-darwin-x64@1.0.0':
+ resolution: {integrity: sha512-hImggWc82jqZVpEsFR9S7PE9OQYjq/H/D7vwCGB6X1jRH+UVBP1+1niJTPBOat1B154T6GKK7/kcFtoWgjgFzQ==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@napi-rs/canvas-linux-arm-gnueabihf@1.0.0':
+ resolution: {integrity: sha512-hlJRy6d+kWLKVOG/+1rEvNQVURZ0DxxRPJsLmEWwhwiXZUJc0BF5o9esALHSEP4CoJK4wChRtj3hnyBgVx2oWA==}
+ engines: {node: '>= 10'}
+ cpu: [arm]
+ os: [linux]
+
+ '@napi-rs/canvas-linux-arm64-gnu@1.0.0':
+ resolution: {integrity: sha512-5Hru4T3RXkosRQafcjelv7AUzw9mXqmGYsxnzeDDOWveFCJyEPMSJltvGCM+jfH98seOCbfwm9KyFg6Jm5FhAA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@napi-rs/canvas-linux-arm64-musl@1.0.0':
+ resolution: {integrity: sha512-LTUl9jS8WsLSUGaxQZKQkxfluOJRpgvBuxxdM4pYcjib+di8AU4OzQc6+L6SzGMLcKc9H0RAjojRatBhTMqYdg==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@napi-rs/canvas-linux-riscv64-gnu@1.0.0':
+ resolution: {integrity: sha512-Iz931SAZf+WVDzpjk52Q3ffW3zw0YflFwEZMgs036Wfu1kX/LrwT9wGjsuSqyduqefUkl91/vTdAjn8hQu5ezA==}
+ engines: {node: '>= 10'}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ '@napi-rs/canvas-linux-x64-gnu@1.0.0':
+ resolution: {integrity: sha512-pFEQ5eFK4JusgN1K6KkO9DKP/Hi1WMJOkF8Ch03/khTc4bFbCKkCCsJG4YcOMOW9bI4XbT2/eMAWxhO0xaWgPA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@napi-rs/canvas-linux-x64-musl@1.0.0':
+ resolution: {integrity: sha512-jnvr8NrLHiZ3NCiOKWqDbkI4Ah+QDrqtZ+sddPZBltEb1mQ2coSvCSJYfict+oAwcm0c970oTmVySpjKP/lnaA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@napi-rs/canvas-win32-arm64-msvc@1.0.0':
+ resolution: {integrity: sha512-y2j9/Gfd5joqiqxdP/L1smqjQ+uAx3C4N0EC7bDHrnZEEH8ToM/OC5p3uHvtj4Lq591aHj+ArL01UDLNwT5HgQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@napi-rs/canvas-win32-x64-msvc@1.0.0':
+ resolution: {integrity: sha512-qwdhh9N6Gge/hC4pL9S1tQp0iKwhSl/dYjg7+RGp9k26iRGRi5MqqUyKGOXIWli0zOcuy5Y2wIH/jk2ry6i/jA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@napi-rs/canvas@1.0.0':
+ resolution: {integrity: sha512-Jqxcy1XOIqj+lH9sl1GT+il6GR3uQv13vI2mrwubP3uT8Olak2ClDrK2RnxlQKjwv8BRr4b3ug0YR7c6hBX8wg==}
+ engines: {node: '>= 10'}
+
+ '@noble/ed25519@2.3.0':
+ resolution: {integrity: sha512-M7dvXL2B92/M7dw9+gzuydL8qn/jiqNHaoR3Q+cb1q1GHV7uwE17WCyFMG+Y+TZb5izcaXk5TdJRrDUxHXL78A==}
+
+ '@noble/hashes@1.8.0':
+ resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@nodelib/fs.scandir@2.1.5':
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.stat@2.0.5':
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.walk@1.2.8':
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+
+ '@parcel/watcher-android-arm64@2.5.6':
+ resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ '@parcel/watcher-darwin-arm64@2.5.6':
+ resolution: {integrity: sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@parcel/watcher-darwin-x64@2.5.6':
+ resolution: {integrity: sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@parcel/watcher-freebsd-x64@2.5.6':
+ resolution: {integrity: sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@parcel/watcher-linux-arm-glibc@2.5.6':
+ resolution: {integrity: sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-arm-musl@2.5.6':
+ resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-linux-arm64-glibc@2.5.6':
+ resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-arm64-musl@2.5.6':
+ resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-linux-x64-glibc@2.5.6':
+ resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
+ '@parcel/watcher-linux-x64-musl@2.5.6':
+ resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
+ '@parcel/watcher-win32-arm64@2.5.6':
+ resolution: {integrity: sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@parcel/watcher-win32-ia32@2.5.6':
+ resolution: {integrity: sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@parcel/watcher-win32-x64@2.5.6':
+ resolution: {integrity: sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ '@parcel/watcher@2.5.6':
+ resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==}
+ engines: {node: '>= 10.0.0'}
+
+ '@petamoriken/float16@3.9.3':
+ resolution: {integrity: sha512-8awtpHXCx/bNpFt4mt2xdkgtgVvKqty8VbjHI/WWWQuEw+KLzFot3f4+LkQY9YmOtq7A5GdOnqoIC8Pdygjk2g==}
+
+ '@radix-ui/primitive@1.1.4':
+ resolution: {integrity: sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ==}
+
+ '@radix-ui/react-arrow@1.1.10':
+ resolution: {integrity: sha512-j2VTDz1vgCsmuG0k5lBfOcM8n5JPFqZBcMryasFjHYMhwxYL5SRUV5lMSUpRdNtw3D/Sv8pzJtrlAgkssYSsQQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-collection@1.1.10':
+ resolution: {integrity: sha512-IVVz4EvBcKjrzKgof714qDnz/SzQAkLA2Emh5edlHbgcE6fNd3Un6CJLlaYcnm8N4JmAtzQgse4dOKxcD2yc9g==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-compose-refs@1.1.3':
+ resolution: {integrity: sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-context@1.1.4':
+ resolution: {integrity: sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-dialog@1.1.17':
+ resolution: {integrity: sha512-TDTYmpdq8dI2+Xgvgj9AJ8Ghqq+Eph/TRVEdaFQPDItIY+6QSkU7MJMeevw1568Yw/2Ijz8BTphPSP2XejKphw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-direction@1.1.2':
+ resolution: {integrity: sha512-C3vFhbyi4SW3PmbAi6Awpu4OzJtd0MxGurvSsYtr7p7nM8RNB3VAF3CUmnp2j50knpkrRcB7+ycVXzgLgF6yNA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-dismissable-layer@1.1.13':
+ resolution: {integrity: sha512-2v+zNAWWe0ySxgC0D0yeXMPQ23xZVgXZTerTz+JKlmdRj6gfTqmCcR29jb6d290DezXPGgruHWDX/vYUebtErg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-dropdown-menu@2.1.18':
+ resolution: {integrity: sha512-PZGV82gFk0WltDRI//SsG28ZIjlo9ANTmoNYg0jLNzXXiDsAy5PkOOYQaVD1pPxY6t7gxffb1QMD6qaUvsBZdw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-focus-guards@1.1.4':
+ resolution: {integrity: sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-focus-scope@1.1.10':
+ resolution: {integrity: sha512-Fas/lXQqhVvqwAb64s5RFeHiHYElZ6SUQbZaNd6EkfhP/Al7wTIQ9WIR4QVX475tlu5yFCEdDcJH6/UwsZjMWw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-hover-card@1.1.17':
+ resolution: {integrity: sha512-GjZQIEANVkuuWeztlKz6QEHe31ZX2iDfHzcTMCQVZXC0JyQrgfKWSC+LOOEw6aVV64zyjzobIzSA4AU4eKWrHA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-id@1.1.2':
+ resolution: {integrity: sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-menu@2.1.18':
+ resolution: {integrity: sha512-lj8Rxjtn6zJq1oSbE/uDtAwCbB9BnxgHD+8MwJMuTh6u1dPamYhW9iuELr/Z8d0D/UysFblYYHeBPwi7T4k0YQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-popover@1.1.17':
+ resolution: {integrity: sha512-/YSAOdJ7YJvdn7bn5sdSx2egW+SKY+u7O5RyAVs94Ymrg2fg5QTSFPMRkzvhGyFuE4/qsmPBdrwYoZMZh/4f+g==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-popper@1.3.1':
+ resolution: {integrity: sha512-bhnq/0DEPTi2lsOD3J5rTL65qUKHbKbhqHsmN9TMiclSXpipi651ooUKPPp6G5lF/WiHBdn1s0Wuqsn+myVAvw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-portal@1.1.12':
+ resolution: {integrity: sha512-m309havGzsjLHHaIX50G5PlvRs3xkgPCsGk/5PTvYm8D5q33yG0J7w/712PTOhid7NTaFETtnSXjngHQavvhVw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-presence@1.1.6':
+ resolution: {integrity: sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-primitive@2.1.6':
+ resolution: {integrity: sha512-wetd0QI77DbvrPpTAvH1SqOxsYF2wZe5TNxqwOd5Ty4XDpV3dpV0s8K/1MGMJBeY5o7lg8ub5VIt1Ub+yVen6g==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-roving-focus@1.1.13':
+ resolution: {integrity: sha512-9gkwneI0guf8JDmrFxPjJF6Ozzgioyw+/lonYNCwefS9ZHA05er0BVHiXr+LbWGHxUfczvMY6G1oiZZi1VzjRw==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-separator@1.1.10':
+ resolution: {integrity: sha512-Y6K6jLQCVfCnTL2MEtGxDLffkhNfEfHsEg3Wa8JU+IWdn3EWbLXd3OuOfQRN7p/W/cUce1WyTk3QeuAoDBzN9g==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
+ '@radix-ui/react-slot@1.3.0':
+ resolution: {integrity: sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-callback-ref@1.1.2':
+ resolution: {integrity: sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-controllable-state@1.2.3':
+ resolution: {integrity: sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-effect-event@0.0.3':
+ resolution: {integrity: sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-escape-keydown@1.1.2':
+ resolution: {integrity: sha512-2uVLvLjgO7NZCWw01/FdqRwmA42J0BcjPMUCA+koFEOAb+zjqIP7SiFz/7zWPrKnVmSqr76Omq2ALyCuX4dhLw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-layout-effect@1.1.2':
+ resolution: {integrity: sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-rect@1.1.2':
+ resolution: {integrity: sha512-d8a+bBY/FxikNPlgJJoaBHZX+zKVbWHYJGTLnLvveQgFSTntkGdEKv3JDtHrMS0DNYpllz2nRsTLGLKYttbpmw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/react-use-size@1.1.2':
+ resolution: {integrity: sha512-giWQp+4mxjBPt4KZ0MmyuykFNWfbDxKt4x+fPkRYmgRFJSbCZFzUglvMb/Kjn38tm10YP4ufiQZDx3zna4LU6w==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@radix-ui/rect@1.1.2':
+ resolution: {integrity: sha512-xnXE7wG13PI+cxieVssYXlQJuYVRhH9NBoxt3KNwzghDIA69GMm7d4wXRouHIYjE+KvS6U/MsMO73NdS2MH9ZA==}
+
+ '@rc-component/portal@1.1.2':
+ resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ '@rc-component/trigger@2.3.1':
+ resolution: {integrity: sha512-ORENF39PeXTzM+gQEshuk460Z8N4+6DkjpxlpE7Q3gYy1iBpLrx0FOJz3h62ryrJZ/3zCAUIkT1Pb/8hHWpb3A==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ '@rollup/pluginutils@4.2.1':
+ resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==}
+ engines: {node: '>= 8.0.0'}
+
+ '@simonwep/pickr@1.8.2':
+ resolution: {integrity: sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==}
+
+ '@spz-loader/core@0.3.1':
+ resolution: {integrity: sha512-8qJ1WIBXaJu8HjnJAjYniE0kYcr0kCe5Hp7kDzYiGVvvd7zyrOBwbF5imoW5mvwx1Qba0hxGEK5R9jEoaHKJFA==}
+ engines: {node: '>=16', pnpm: '>=8'}
+
+ '@sxzz/popperjs-es@2.11.8':
+ resolution: {integrity: sha512-wOwESXvvED3S8xBmcPWHs2dUuzrE4XiZeFu7e1hROIJkm02a49N120pmOXxY33sBb6hArItm5W5tcg1cBtV+HQ==}
+
+ '@terraformer/arcgis@2.1.2':
+ resolution: {integrity: sha512-IvdfqehcNAUtKU1OFMKwPT8EvdKlVFZ7q7ZKzkIF8XzYZIVsZLuXuOS1UBdRh5u/o+X5Gax7jiZhD8U/4TV+Jw==}
+
+ '@terraformer/common@2.1.2':
+ resolution: {integrity: sha512-cwPdTFzIpekZhZRrgDEkqLKNPoqbyCBQHiemaovnGIeUx0Pl336MY/eCxzJ5zXkrQLVo9zPalq/vYW5HnyKevQ==}
+
+ '@transloadit/prettier-bytes@0.0.7':
+ resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==}
+
+ '@tsconfig/node10@1.0.12':
+ resolution: {integrity: sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==}
+
+ '@tsconfig/node12@1.0.11':
+ resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
+
+ '@tsconfig/node14@1.0.3':
+ resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
+
+ '@tsconfig/node16@1.0.4':
+ resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
+
+ '@turf/along@7.3.5':
+ resolution: {integrity: sha512-Ee4AHV9j2Bnlm/5nm4ChY7nkwpaaMffSez9nsJ9HcMbzG+GgTkt0F5pn9d02U7YvuWqckM5lfr3kBI+w2uTz+g==}
+
+ '@turf/angle@7.3.5':
+ resolution: {integrity: sha512-+c3UZfkL1nNacfpLkj89rRreIlKM5UALeeWpcw7hCEK4MycXCBmITkyLLXOzoQaRBc/7ua4PV0Ov13Y6Ck9PzQ==}
+
+ '@turf/area@7.3.5':
+ resolution: {integrity: sha512-sSn80wPT7XfBIDN3vurCPxhk9W4U8ozS/XImSqeLN8qveTICOxzZkhsGDMp0CuncaN+plWut4a2TdNM7mzZB6Q==}
+
+ '@turf/bbox-clip@7.3.5':
+ resolution: {integrity: sha512-FuADTCBfRwdzJb2gFawDGnD1jKlUOfsWcu5Uv8iyEgu9JLuLAIYtI/l9xVF76BAoAvSkLgMfUvrPQ4SXCSUrVA==}
+
+ '@turf/bbox-polygon@7.3.5':
+ resolution: {integrity: sha512-Cs9Laej8zfSY51kORM9UcbY4Uf/7X3OIZr/LydbrmmARFSpYH/FZsEQjAGi1S1Q0aYbibVqjEUReHN3ZVsV5eA==}
+
+ '@turf/bbox@7.3.5':
+ resolution: {integrity: sha512-oG1ya/HtBjAIg4TimbWx+nOYPbY0bCvt82Bq8tm6sBw3qqtbOyRSfDz79Sq90TnH7DXJprJ1qnVGKNtZ6jemfw==}
+
+ '@turf/bearing@7.3.5':
+ resolution: {integrity: sha512-/qabIt/IuPsGlE6RukJ0zOirc6afNxoK7fK1WBNVnHuJjeOpSkW+7q1QW5XQGXBMv3odcD0ZgRR+MBiAHduYSA==}
+
+ '@turf/bezier-spline@7.3.5':
+ resolution: {integrity: sha512-54qnreNRvV9BeTGz2YXJyma+m8HMusuXWw3AkG0bIJGtqJMHqFKC/rWOcYxVj1VM2ScoTgglFxvq7GtSna+KMw==}
+
+ '@turf/boolean-clockwise@7.3.5':
+ resolution: {integrity: sha512-VpDIpTKBjH4oPbzx1ns18TWcosi+qCRtgU1HIJHLj4NWyLNr7TX86DvomCvZRPfsFxkYYgkFlqHBG1a29dcyqQ==}
+
+ '@turf/boolean-concave@7.3.5':
+ resolution: {integrity: sha512-CHrmnEww43CAwEPszrKtLjM13hWDmsFZe0eCocxOtXLMspj+LCheB0bjMfcoBYfoTsvOPXxnoLTK9n4xuWBRSA==}
+
+ '@turf/boolean-contains@7.3.5':
+ resolution: {integrity: sha512-P4JUAHgvJkD+8ybQ6d1OHp9TBsGsjJxF5lWeXJgp0k4+Hd/D0CVy4/mhLkZdNa6QdljVdwNcfU0CTqy1WsSQig==}
+
+ '@turf/boolean-crosses@7.3.5':
+ resolution: {integrity: sha512-o4Gmb2gbPl4j7810ZrT9GZsGigY+HRwcOI9pkkKH6BJ4ewSlQCPzP4JFruZp0+mIXS6NnPv7+Lw3J8LN3kYw1g==}
+
+ '@turf/boolean-disjoint@7.3.5':
+ resolution: {integrity: sha512-Pz1GGUC6iL6xGVqhyo+fYg35kl4j/HONMEoC1voN3DcBOCcVlzq+ljvMpvE+oQiR7Q38xLhIxZneLCqMp5YrQA==}
+
+ '@turf/boolean-equal@7.3.5':
+ resolution: {integrity: sha512-xjSFi/BpxBY5tDDuSbixIRVq2AnDGcdLL8XOHzZtJWZjSa6tAi6afxSiMbQTGIhYfwwcB/sJcIUUffBaIQ2BiA==}
+
+ '@turf/boolean-intersects@7.3.5':
+ resolution: {integrity: sha512-Z6GPYjozrmTuzWQD0x7o8RPm+4HC7hz9q23hdB3U1+Qahesv8Mtc+wo82tO4CG6/NRnJ9u79DlEhmR1DxUU4iQ==}
+
+ '@turf/boolean-overlap@7.3.5':
+ resolution: {integrity: sha512-DUeiPVqFSTjW79erPbo780pRcKCRad59NcscVsTYkZD/92peF/4rQvHbvAUpUDPZaQCxe+mvfeDHfUFmfVKCGA==}
+
+ '@turf/boolean-parallel@7.3.5':
+ resolution: {integrity: sha512-+shvGYFUx1vPQRPNeKiJcHtLAf9fl3mzAl9tBx2z+dU0IZDKz76/MAaDYSrMya/BYilFZ0E4RCEVq1X3s+AfkA==}
+
+ '@turf/boolean-point-in-polygon@7.3.5':
+ resolution: {integrity: sha512-ba7+B0wzaS9GtERZOoXUZ6oW8IcIJHNQZf3c+tiD9ESjcsPO1Q/4qIJGTKl92nBLhhracHJxMWBM/U6hAVkaRg==}
+
+ '@turf/boolean-point-on-line@7.3.5':
+ resolution: {integrity: sha512-TuWfrAT63W43BDzgYc94UzQ5/PjF1aTnh4AIzmQwez1YnimShYcOTwo8OIHzDaB6gbbvFsfxYMuOA5JOp942Kg==}
+
+ '@turf/boolean-touches@7.3.5':
+ resolution: {integrity: sha512-GwD0gmbV1p+EFHojBjaa1cwGMybayOZUDLj562RlAAoexC8ownrW7W6oMAlM2VCxk4gq6CLx3hss9pONuQcKjQ==}
+
+ '@turf/boolean-valid@7.3.5':
+ resolution: {integrity: sha512-ZezJCgFJS0JRJfj6fVSI1idcifTaWFW70NYRCUur9926DHLvSkfbtEF5i63yPQt2Zxx00FTUJPcHRzdgOiwECA==}
+
+ '@turf/boolean-within@7.3.5':
+ resolution: {integrity: sha512-FsZhkAoi9KU2F0D5dyOQ38A7y9Bk8XTmUfLKAJa12xHN0QtXZEYH86YdVlrI1XgfFB9gmUddJPFX+bJATy6rxw==}
+
+ '@turf/buffer@7.3.5':
+ resolution: {integrity: sha512-TGls3nYtWzviKHT00XVBfHKa7Z2oIZKqiHN7R0xErGwMSAR7YhxVROhxq/iyIsWZjl1SlPwweZZIxWILQuxpZA==}
+
+ '@turf/center-mean@7.3.5':
+ resolution: {integrity: sha512-8IpS7zUZg0fuUpN9ViqT4gR6YMjSR1R1kHysaDxhP1zMrTJ84U5lGG+VQC7HpHqybOnuwkXZrV970h9Ni78n6g==}
+
+ '@turf/center-median@7.3.5':
+ resolution: {integrity: sha512-e+NeDKyZzIzSTA0qd9cwIuguCnDQSc6TLd1MjkHKTd37PCaPSc40TMEIBX1x+kJRwOxzmUgpubfHUG9zfjdtyA==}
+
+ '@turf/center-of-mass@7.3.5':
+ resolution: {integrity: sha512-eEzx4YKxUP55Apdjt7XXuQ906KKx4uSQWLxJw5OHE0rKOSN/qYTSdu0s7nQBAmGgAqeSC2538vuN7wEqMfYMvQ==}
+
+ '@turf/center@7.3.5':
+ resolution: {integrity: sha512-eub5/Kfdmn89ZqwCONHI7astmTDEtN5M6+JfOkgoSyhKKFhUJYNxUyH1F/vCtIP7j1K369Vs4L9TYiuGapvIKQ==}
+
+ '@turf/centroid@7.3.5':
+ resolution: {integrity: sha512-hkWaqwGFdOn6Tf0EWfn2yn1XZ1FWE1h2C5ZWstDMu/FxYO5DB+YjlmOFPl4K6SmSOEgdV07eK2vDCyPeTHqKGA==}
+
+ '@turf/circle@7.3.5':
+ resolution: {integrity: sha512-Tse7GJrx0rxaQ5BdY6pHZ9HFPrZwRMry2yaqq94UsUyonhy1m7U2icB3Zp4M8o4XjHIGTCq9i2BYcGJram51Sw==}
+
+ '@turf/clean-coords@7.3.5':
+ resolution: {integrity: sha512-e0ZTqVWiQaCI/b8EFb+HAS8lCDomWafAKxQuIv0IYks0GwOlVTDWTwsY2RX2685j2Y+QssqOsyHsPZCtAjc3YQ==}
+
+ '@turf/clone@7.3.5':
+ resolution: {integrity: sha512-qfIaHj3410QEcTpiCRnTzhq8YrUp2gWrUIPLBAEFykopNxJkq1du1VrRzvuAo36ap2UV7KppkS6wGNypbcxswQ==}
+
+ '@turf/clusters-dbscan@7.3.5':
+ resolution: {integrity: sha512-xdc0ccv2fyiUSWrJYJFE6RTluf8oVCB0/aCOdUD/ZvtG3eyqGIXMRMzAR1PujQHjBWtI+ndD4Eq+DqiGukGK+g==}
+
+ '@turf/clusters-kmeans@7.3.5':
+ resolution: {integrity: sha512-MnKymdmL7vy4TR5CLkcNkNgsJP8ZBEiWkqnRYBJLq/hFoppTvXxKvkRzftWtLfkIWb5oQ2XMvBh8BgALN22d5A==}
+
+ '@turf/clusters@7.3.5':
+ resolution: {integrity: sha512-ZYQSCxElarAaG4azNieZ0ylX1sietkHIVAZv6H5JfSz/EXbAekQIom/isoynfDl/jVyNonDT7UrDZdCIjKQ2Gg==}
+
+ '@turf/collect@7.3.5':
+ resolution: {integrity: sha512-ddcBDdnM2Rwjfedxsbjvb7Zhoqo6uCTcnaHvu3ej/g+Z9iJ/K2wkRWhEUVAg/wppso5io6qEPmmPpNlefePt+w==}
+
+ '@turf/combine@7.3.5':
+ resolution: {integrity: sha512-olQH6WmLl3XAalbpiz7RSRr4/mogan38gvgDlo37ypW1ckeBUi+2TX5HgJUZq4wxa2gMlny72QYkqY9zW4Jw+A==}
+
+ '@turf/concave@7.3.5':
+ resolution: {integrity: sha512-T496U4K5mXsJXTKjnf7eW+4SYoDP0bXWhpcfpWuCAaDJy8n1Q8Dbslj7wqrWd2lqIhulVRF+3zWAh0bJS34L5g==}
+
+ '@turf/convex@7.3.5':
+ resolution: {integrity: sha512-d/pq86he+/GB/2ObuBHapeT15QFsCPhhGab3uE4YjogLMbD8qtu0sRGF+cvvPRDNuCLycOBL/xgFLnf9SteYlA==}
+
+ '@turf/destination@7.3.5':
+ resolution: {integrity: sha512-x6ylChhOlIbucRSw7wF6z2gSEqqQl+dE0nSH5AL/ojZkqqGYahiw+2P4A8ZMuDM6rzH+FIqRYDes0o4nSArZCw==}
+
+ '@turf/difference@7.3.5':
+ resolution: {integrity: sha512-iDyWYCvgS3vgB8W1ai2cvfJaTq9bOt1QghiVkCNIyccF97CgtYJzenREVVUlp8qU9lJlbQ/ameyKvXPA1uOAlA==}
+
+ '@turf/directional-mean@7.3.5':
+ resolution: {integrity: sha512-Fm3rVgX7xiCL8Ed68dZpUl5NEAgEpaUdkAaZLvhedfUmKcuXcfBwX8RebHwNWctxcvKVOhoAMSlogpV33JnKdQ==}
+
+ '@turf/dissolve@7.3.5':
+ resolution: {integrity: sha512-6kZTc8rbGuBqxWW8iK1sJZC8r7vr5uWdv7nsMJ0eX8/g0mTKNgSGXo14hYqp2GN4bE7JzpAgpFeSX8Xu1psxlQ==}
+
+ '@turf/distance-weight@7.3.5':
+ resolution: {integrity: sha512-GpV2h5ZkbWMdUFe5BWm9lfeLFMnYR8CRj6HiguZBLesarSub6I0UNO1u8UhkRGi26YLGnFlBh7c4KyaakNx1Gg==}
+
+ '@turf/distance@7.3.5':
+ resolution: {integrity: sha512-uQAC63zg/l91KUxzfhqio7Ii3+UXTrPOVJScIdRj6EO6+9XHI4kC+AdyIS4cPAv14sZfJLIBxzMnzcGrss+kEA==}
+
+ '@turf/ellipse@7.3.5':
+ resolution: {integrity: sha512-C478LrdvUkjwIVGN6PoYsFp27PuT+W2IH4ZOVt9sd4359hRPFhJ2m+f8jSPfS6rdamdvc/O+h7vNmOIBRP/TeA==}
+
+ '@turf/envelope@7.3.5':
+ resolution: {integrity: sha512-0Sc2AVx0JZ3MaQ0k6+khplU3wO7bwc1qAQ6Fd+Q4RhIVPY2JKstBdq5ftU1T/BHNf8KK+9y4qbSV2u8hnw/PqA==}
+
+ '@turf/explode@7.3.5':
+ resolution: {integrity: sha512-Qdd7ehX5AF0DdpJl+JJyxws7jEmsZBRV35wTm+Lyhapuc3yLHU7tN5EqJ+2lVV7RkUgBXEFQV+34pmPLPGQn+w==}
+
+ '@turf/flatten@7.3.5':
+ resolution: {integrity: sha512-4dDAyoY8wf4UCIJ2lH3JbypmEeqyuRFExHEPu6eJeaOybdpOV9kn3LqB0lsWArizFjJWQNS+0qpv08jD85jSPg==}
+
+ '@turf/flip@7.3.5':
+ resolution: {integrity: sha512-qDSBFqo5+8yE5gfBCsQZxgj0bGRx6abQg6TgYvg1wvYYHtUJL/0VS+QdDTmxZiYm8N46uNAv9pKvun9MGK+elA==}
+
+ '@turf/geojson-rbush@7.3.5':
+ resolution: {integrity: sha512-30/hQqc+ErnlcavvDdxGfgm8VtsJDEzSYpf3mPqYxOyI976l49T6+1jCQD5xKswml6o8zZAaTSe6ZcSKF+SCNw==}
+
+ '@turf/great-circle@7.3.5':
+ resolution: {integrity: sha512-VAio6hwPJIheSzrvsMkLDMHkCfHyOi4H4r1Y2ynb2oMiGiqZjkQ7jIFlRYBcTyO2RnwEOgwM/d3kwRImAwMVBA==}
+
+ '@turf/helpers@7.3.5':
+ resolution: {integrity: sha512-E/NMGV5MwbjjP7AJXBtsanC3yY8N2MQ87IGdIgkB2ji5AtBpwnH4L3gEqpYN4RlCJJWbLbzO91BbKv2waUd0eg==}
+
+ '@turf/hex-grid@7.3.5':
+ resolution: {integrity: sha512-sPtYXqbNvUxt8h4NzspcoFAVotd/75LgrLxxI84LGIVPCN+fsK1uWwr4a6MAlzfSbWbOYOq7OSWMSSXzHoQzJg==}
+
+ '@turf/interpolate@7.3.5':
+ resolution: {integrity: sha512-rl5LwK85etpvbSW1VEXp/I85kzgiGviXInrvvhQxzEF9xGKvs1ed/6dc1uy1LsczSr4wUnbdGATzZTF9lFYjIw==}
+
+ '@turf/intersect@7.3.5':
+ resolution: {integrity: sha512-v11Do9ySbsE08ffiwboQeFKvYByyxzvAz0ls837A9T3rSC+8vKMmK815S+C5v8CBMLNhuBCSgqnOIV3zonNICQ==}
+
+ '@turf/invariant@7.3.5':
+ resolution: {integrity: sha512-ZVIvsBvjr8lO7WxC5zYNjRsjSDvyGvWkJMjuWaJjTU8x+1tmfNnw3gDX/TI2Sit83gcRYLYkNo23lB/udqx/Hg==}
+
+ '@turf/isobands@7.3.5':
+ resolution: {integrity: sha512-WX6vpPkM8O8SY7hsijOtj4owVXP24nU33Q0eMhWdZ+YiDmAHgEOQcDhPJLvp0mIbyYj81mU73hdnilf3q9tk/A==}
+
+ '@turf/isolines@7.3.5':
+ resolution: {integrity: sha512-n5QUX1/Z/PuPVpTUrKhYcKF95L5+nKF8hWznYtG/GsiMXfRqMeAEjTCqgKIgF8T65H4LrvcpLyq8VPQSi7aISw==}
+
+ '@turf/jsts@2.7.2':
+ resolution: {integrity: sha512-zAezGlwWHPyU0zxwcX2wQY3RkRpwuoBmhhNE9HY9kWhFDkCxZ3aWK5URKwa/SWKJbj9aztO+8vtdiBA28KVJFg==}
+
+ '@turf/kinks@7.3.5':
+ resolution: {integrity: sha512-dPW8d4vs1v8WMobjyq/TVqajjPwkMsl94IF58yp1UYlmJDQrW4iNRUmI9fFzww+fl7epCKNwY+jZhXf1DRi93w==}
+
+ '@turf/length@7.3.5':
+ resolution: {integrity: sha512-Bi+vEP54wt1ly3BRcCOP0nd2kGTYEhGk6haQxTpkrqr3XtmqDh8c3NowSgseN2cegIZRjwCOEC8eSsZ0JemJdA==}
+
+ '@turf/line-arc@7.3.5':
+ resolution: {integrity: sha512-XrPicIoN7XCtiJ7e7ELje7GjMZrBw/nuJnz0mQoCwwHwmX8Oz9oRfb6uaiS8NeR4WBzUVdkmVR/ro0kW4lypog==}
+
+ '@turf/line-chunk@7.3.5':
+ resolution: {integrity: sha512-z5/EBv79oyNXMYFpFIsA9gw/7TAKoJ9a/Ijo/jBeO47Fr1mV3JLtE3aB2i/nqLTYZWMU7K3Lnzwqt2Rn5Gri/Q==}
+
+ '@turf/line-intersect@7.3.5':
+ resolution: {integrity: sha512-2Cl4oPsjaDdfIwz/5IRDdG2fNdfp3W6atICm81vnzl/GwURoVP+CLjXJ64QWWzpzIbgX2XprJQTmamByDt5MDw==}
+
+ '@turf/line-offset@7.3.5':
+ resolution: {integrity: sha512-7tNI+4xKFOTQj720aJI7vuRMyTC+4hAqd7N8AnnZ0EpzH+sBfyrt8rNI/Vf3+d/iY0c9ZNbhU9Qhyb0ckJUdsA==}
+
+ '@turf/line-overlap@7.3.5':
+ resolution: {integrity: sha512-7lZMWYHuzM6EMlL5pIIi/Nh7GLsM7ilW8/jVyHP1yGfQ0c0YAUoJd/Xy3J2+9v8OkYiZW/t2LdwVoTmCEJLWxg==}
+
+ '@turf/line-segment@7.3.5':
+ resolution: {integrity: sha512-TM1aCu7utM6fllAEHO8PNqBJZ/uoFJVNp2A0YI7FyWN928hPbacsvNtLeVz/Kq1ZbeqQ1ZIKRxo9FdVjaj8hGg==}
+
+ '@turf/line-slice-along@7.3.5':
+ resolution: {integrity: sha512-zLOU9mGFXJdbPvA3/zXpDsBmXY2paA7eD6/p0iYiP9OASYO0GDcarwY5K/E0uuEdLrMf8G8YA2cJDcEl9gRgFw==}
+
+ '@turf/line-slice@7.3.5':
+ resolution: {integrity: sha512-BGw5N4UvjH691J/z1P2S+hWBgCcvbl2/HXaqGvKTijXw5i1vzsZ9m07wLl/qH+i38OJDRMJ/+FkNZnrKpsoXLw==}
+
+ '@turf/line-split@7.3.5':
+ resolution: {integrity: sha512-GEuy+LdbbaqtYjHk/i1G8sK51wfCdPqTO8uH0dJZ6WlcIcZQfRcKKI4ksFm7NkVyfmw8gXWbpMJD8lO380GFBQ==}
+
+ '@turf/line-to-polygon@7.3.5':
+ resolution: {integrity: sha512-PNWDN1B0nJRlgA4DAXeYEf53OZSWwsu/rtDB4wxe/1NwfM9zlDVElQ/mtgDPtZpwC2aDKV5+B0vTXfKR/MMIfg==}
+
+ '@turf/mask@7.3.5':
+ resolution: {integrity: sha512-zs9bBtdANOsSkG7xiLFYforeI2nszXu0QwPv3vkaX747oEVdcyd0nSW81aQRmSWw/fvhXja++8duIVXOIYr4ng==}
+
+ '@turf/meta@7.3.5':
+ resolution: {integrity: sha512-r+ohqxoyqeigFB0oFrQx/YEHIkOKqcKpCjvZkvZs7Tkv+IFco5MezAd2zd4rzK+0DfFgDP3KpJc7HqrYjvEjhg==}
+
+ '@turf/midpoint@7.3.5':
+ resolution: {integrity: sha512-y92O2YDDBkZp7jAUuUPgof/HiXHjJSkKjEtQRjWXZcjTlzHd/Fqg6/twarY2wNkENK2EuaaiV9MDy74FeRG2Ow==}
+
+ '@turf/moran-index@7.3.5':
+ resolution: {integrity: sha512-l/FgZkgPzwAsdj7rtKYWv2rxeTy+Tv8NMk6qSEwKqB4eHqn1TYHcTASWRcZIyipH4LtOJJOl77n7FmKcaDBtSg==}
+
+ '@turf/nearest-neighbor-analysis@7.3.5':
+ resolution: {integrity: sha512-6vnSqt7OH8zTPdvUxCYnnN86Ci8VS5G3q2G1UrAcrnjTH7DbJ4KvIkRQlv4y6hj53G+bm9cA6TjeJuyP2jAOcg==}
+
+ '@turf/nearest-point-on-line@7.3.5':
+ resolution: {integrity: sha512-MZn6OkEFZpjS6BNUANfqiHMIbQSivu7TNji3a+OAIrnPJ71vp8cbz0N2aVEa5M7I8ipvxoxAPIV3eqg3h280Vg==}
+
+ '@turf/nearest-point-to-line@7.3.5':
+ resolution: {integrity: sha512-O27A9dFAqDYBRPhhoLP82Da7Q6rd0fXRR/jwQcBiycjTGdsXJmzxywuR08aDvWiARbJAmohEzdYzk4f9/eWXhA==}
+
+ '@turf/nearest-point@7.3.5':
+ resolution: {integrity: sha512-qcsbj9fo5CYhGeIDaJORoqiZyjNGu2+Te31MVaFoTTxqqkXypxp9e6HJGvUi2zPd1Zk3oAWXhvm1a+UXw2G56w==}
+
+ '@turf/planepoint@7.3.5':
+ resolution: {integrity: sha512-+hjECX1hDbol8psuG6iYSwcZHQ+RPJqFIBh3pXKc/pa0cdjZyB/L6q1d8ahnFrQBEpuoO3XVvo2hHN49VOEPjw==}
+
+ '@turf/point-grid@7.3.5':
+ resolution: {integrity: sha512-aEPnqj/4C9ejNz4uCJKgk6Flux6SxnqxjQHAYPIP5C7ooAB1xRAT1NMnCzxUjjUq1SMtgdZ6skoNfvKNK4Rzrw==}
+
+ '@turf/point-on-feature@7.3.5':
+ resolution: {integrity: sha512-Y7W+JZJCmm9Qq93NHpk4dVhzAtAk2Uyau2Uk1ttCJ2Jsnuu4dwSjOurpmgDmMUe7yPmzihAUYhMFDumpAja8ZA==}
+
+ '@turf/point-to-line-distance@7.3.5':
+ resolution: {integrity: sha512-mR1NAIX+JfpYAJQ9u3gpIV37QzYvBOefDP+/16uBCAOM8Fp12goT8l7WdenT0dvB4wPibbqM2+2kyEl5u9XJog==}
+
+ '@turf/point-to-polygon-distance@7.3.5':
+ resolution: {integrity: sha512-SQPhAlfiuCkIIFos/OPCxtt8iR3BlZqGKzKXLYqt6z8iaICaf2SjMyn4Zsr1oFO+Gy2K1rqandR+kuLTIo8Eqg==}
+
+ '@turf/points-within-polygon@7.3.5':
+ resolution: {integrity: sha512-TRyVY5Xlx6j72sNIyBaHZNgTbILs2iUDevX5lnCFTiThkzp25BIBBQ77tv2VPilYH+v7+9/0T/pLO37SaVhsQw==}
+
+ '@turf/polygon-smooth@7.3.5':
+ resolution: {integrity: sha512-dc/dlYFqVBcel6d5HM5tBANh1HfWbJ89lSVLR7YhRX+Y/UABTvbtJCWwxBBiFxFBeRmW7B45nv3jytHUYxQUOA==}
+
+ '@turf/polygon-tangents@7.3.5':
+ resolution: {integrity: sha512-3/TtCQlXc2Lrgzb+LjwqbtILWan7lRD6P9Nn3edm2xGAZw5WY17+yZfpeySJPfcZhOWten9dXkOwDvSZF5uyWQ==}
+
+ '@turf/polygon-to-line@7.3.5':
+ resolution: {integrity: sha512-Mat5tvJcW3grpXCNFcMvjHL3d8hO4eoIgF3qYpXj25BHx/S7SJUOgyCV5x3arC0rCfM/cB71VmNDm9k57ec7bw==}
+
+ '@turf/polygonize@7.3.5':
+ resolution: {integrity: sha512-pD3Zv/392sLlZVKRGUrJ4CKLN/Im+TO6wMCOfm/uiq4F9pEL5R+HPvXTcwEyxbhEPKYn3cylGKt21Wq0OfNQDQ==}
+
+ '@turf/projection@7.3.5':
+ resolution: {integrity: sha512-G4bejYKT0vCQZryMhEoS9aLmP7ThDg6nb3zi3wPzELiTrGNOd2YgkWVheQDGCk4hcqEIWZc9fI2alaRSSkkLVw==}
+
+ '@turf/quadrat-analysis@7.3.5':
+ resolution: {integrity: sha512-e5Am3cJuiP43f89Xv7n9cv3Z4P0I17zBvQPvhj6UowpRbiYoD4TKHfOr2PWHLYUkXjQ+vKY5CwiWvCYbfj3BIg==}
+
+ '@turf/random@7.3.5':
+ resolution: {integrity: sha512-Fid43jfmQpvrpr/wrUaW9hr66ukPqfZPuwzEt3gfCx6mAVpFWbCPx2yRuVlLNiRkMgmKTphFfh6267UCPOSnCg==}
+
+ '@turf/rectangle-grid@7.3.5':
+ resolution: {integrity: sha512-SVtXOJIz7FYaRUinxb0HfE/GNSJU6eU9tlKQaERDo/vG7wjPoTCDvnH8p4BdE5GRdXZMjvBUhtNdMj+M3rGRjQ==}
+
+ '@turf/rewind@7.3.5':
+ resolution: {integrity: sha512-4AZdDh55JeCoKWLS5AC6MuXqAvoqSpj2WigtowtA3JIJ/1J4SclRrV6BGq/Xemwm5yKtRePHazBVUmG5uU75og==}
+
+ '@turf/rhumb-bearing@7.3.5':
+ resolution: {integrity: sha512-pYjBAuQTND0+6Y+v+zlQ7Y68SGjP4iG8qJ5QKjFRbB/yeorTY3m9yiXIN4lSyno3TPzEgBeNULuo26H6ygDyng==}
+
+ '@turf/rhumb-destination@7.3.5':
+ resolution: {integrity: sha512-znICdPBtZq5EKh/Qu0TkiMyNhqiYfM2VUlFOWa7iegCWe1E+X7q/f6rlZ5TcmYVyLZ95XZ6eciDNmgVmpHVWaw==}
+
+ '@turf/rhumb-distance@7.3.5':
+ resolution: {integrity: sha512-dBFxmKrjRaAdwc4SCmGyAS2BDPCH35IBNl++Ypd1RB8JR2D3khl3zrTvxrlJ5qoN1WDvyPbvDYCrt2UnTX+8Nw==}
+
+ '@turf/sample@7.3.5':
+ resolution: {integrity: sha512-ayl/QlDAkqIDJjbzcBeAsMzFmIDanQP4xXdNKZmnYg83FhvH/Sgu7mMNNhrYwCVMWrmOicviDHu3xKuJ6jVnMA==}
+
+ '@turf/sector@7.3.5':
+ resolution: {integrity: sha512-9mtBorGPZfbZI2MoI0nkN5ogmbCz/NLpHdEM0UwwWiOW430iPhwZ649DXH32lDGerfzREX10vpamX8v1P9YVrw==}
+
+ '@turf/shortest-path@7.3.5':
+ resolution: {integrity: sha512-RmrfdDVTuBsHDNr88tGMRmIdJNFTdna3nQWRF8yFsgKR9LhZ4MWqebL24eQFn2hkyclL7O6lyPpOEJJtQxvcDw==}
+
+ '@turf/simplify@7.3.5':
+ resolution: {integrity: sha512-9wzxlRA+0yNALeqyXNHFgj+8ebsg2aKdMrWRiSMS+ZqbiknZ/mCARiDYqM2Qz8TgTqdrNt53ze4o1vS6WeJrJw==}
+
+ '@turf/square-grid@7.3.5':
+ resolution: {integrity: sha512-mcwefBumsO3nwRG4nPfmXsq7YqHOsa71Z3h4JwWQn/XOrhV/8l1/QX3IAIx1qUWC2RqRMOImt3et5mlc+g2SxQ==}
+
+ '@turf/square@7.3.5':
+ resolution: {integrity: sha512-zUh9cxlZ4bPkSK2XynY26JSLDVy8oUss94mXACqSGrGjv308q3Voj4dzvfeh0E/Q3PQ3D8GJRZECXdCB/PU78Q==}
+
+ '@turf/standard-deviational-ellipse@7.3.5':
+ resolution: {integrity: sha512-CIJaQ61bjmxxqi5CpRLWAwxnbeHcG6e7esK2IX2DXBIE/7p/F7Sk9F2GOAL6vt1o29GnmzU2APHZvTX/YKcLbw==}
+
+ '@turf/tag@7.3.5':
+ resolution: {integrity: sha512-jwLOP7ZFfOcMPbK+0puT0SMOs0urSKYSYax7G4LDtZ9oPFAicVJtr2K0OB/rgmdoTK4VfUwb2nVZUdYAVnXtAw==}
+
+ '@turf/tesselate@7.3.5':
+ resolution: {integrity: sha512-MI+pSkehJyZmbl2L5/43B9DlD6MEDcr63pW/LDSXYRDoRUXtSGY/NAAibIQ0gMAr8VxsimGCZKSuGMNUZdsuRQ==}
+
+ '@turf/tin@7.3.5':
+ resolution: {integrity: sha512-70747SmLQttt+ywq+NmMqmkHdXsinO57SjHNFKX6G6qHuvxUu48vN7Kf3zjkqGAp2kQnu38OOqB4QPus6RdUqw==}
+
+ '@turf/transform-rotate@7.3.5':
+ resolution: {integrity: sha512-WXkteI0DihwCukZesVXVVYpsoyftYoiBtq1b+u1Dz4HyATK25zfEeWChlgRtApbiePF6uqG7bSQS+K8vjC4c0A==}
+
+ '@turf/transform-scale@7.3.5':
+ resolution: {integrity: sha512-eAmey/LtJVT6WlCMULsnd+sCAOwCezG6lVP67qN5HARZ8ft+b7yBiU4FC+IGXbVsrdRcCRLSzoQc6K0fROoo2Q==}
+
+ '@turf/transform-translate@7.3.5':
+ resolution: {integrity: sha512-OMQLOFLIjqeDNARaa2kdh1AgvWKFgq41/I6k3CAaj1UcB4javpVFMlcjRJY+pL2oZtMRZRcUZxhO+zSNl6p83Q==}
+
+ '@turf/triangle-grid@7.3.5':
+ resolution: {integrity: sha512-oiwtTm+yqZwuODOSEyLSQSFaZFyjC6kgftUFFW6kLGQtm+Fw1GjxwS7QjiY55GRWxgfgbg2l1iNZNgfsCiPQWA==}
+
+ '@turf/truncate@7.3.5':
+ resolution: {integrity: sha512-Qx2iv3KIqKuDAUduMfaJ5fFegEWBeRve5zePalRevS16bMUqEX+jnKPK9fWGyUuPqT61qP1Kybz0PTWPbUbljQ==}
+
+ '@turf/turf@7.3.5':
+ resolution: {integrity: sha512-l5Z1ZFEizN9p5GxX3mzUGf+i4t7AP3YpWcNdf9+kIzJcQD3eYuGBabj2hLrfrluqFJ+uxsuo4RgPtortQ9Dwpg==}
+
+ '@turf/union@7.3.5':
+ resolution: {integrity: sha512-/FSKhl+LX4+M7L/Trmiln0CDPWS8vCneGnQktt1o5XbCY/zIpH1JdxHEBFXhFZg4beAyXCz0uuxRyW9N/DH+KA==}
+
+ '@turf/unkink-polygon@7.3.5':
+ resolution: {integrity: sha512-7MwKCm7sPHVF4xBO/3s08/DtA/09UEBXaLNnm8/RUq3abS5zZ9PnakLsd36J18IHDscM6RmH7IZPLSwYh4TLcQ==}
+
+ '@turf/voronoi@7.3.5':
+ resolution: {integrity: sha512-v51D9H+er/K5lP+rBs7jIBEXTFhl0FQOZn4mfhb7brN5sGGDmnfEFOaxIYOiJN4Qco1GtFD2Tq0NgZ8+dmJmEA==}
+
+ '@tweenjs/tween.js@25.0.0':
+ resolution: {integrity: sha512-XKLA6syeBUaPzx4j3qwMqzzq+V4uo72BnlbOjmuljLrRqdsd3qnzvZZoxvMHZ23ndsRS4aufU6JOZYpCbU6T1A==}
+
+ '@types/d3-voronoi@1.1.12':
+ resolution: {integrity: sha512-DauBl25PKZZ0WVJr42a6CNvI6efsdzofl9sajqZr2Gf5Gu733WkDdUGiPkUHXiUvYGzNNlFQde2wdZdfQPG+yw==}
+
+ '@types/dom-to-image@2.6.7':
+ resolution: {integrity: sha512-me5VbCv+fcXozblWwG13krNBvuEOm6kA5xoa4RrjDJCNFOZSWR3/QLtOXimBHk1Fisq69Gx3JtOoXtg1N1tijg==}
+
+ '@types/estree@1.0.9':
+ resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
+
+ '@types/event-emitter@0.3.5':
+ resolution: {integrity: sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==}
+
+ '@types/geojson@7946.0.16':
+ resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==}
+
+ '@types/hoist-non-react-statics@3.3.7':
+ resolution: {integrity: sha512-PQTyIulDkIDro8P+IHbKCsw7U2xxBYflVzW/FgWdCAePD9xGSidgA76/GeJ6lBKoblyhf9pBY763gbrN+1dI8g==}
+ peerDependencies:
+ '@types/react': '*'
+
+ '@types/js-cookie@3.0.6':
+ resolution: {integrity: sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==}
+
+ '@types/json-schema@7.0.15':
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+
+ '@types/kdbush@3.0.5':
+ resolution: {integrity: sha512-tdJz7jaWFu4nR+8b2B+CdPZ6811ighYylWsu2hpsivapzW058yP0KdfZuNY89IiRe5jbKvBGXN3LQdN2KPXVdQ==}
+
+ '@types/lodash-es@4.17.12':
+ resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
+
+ '@types/lodash@4.17.24':
+ resolution: {integrity: sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==}
+
+ '@types/minimist@1.2.5':
+ resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
+
+ '@types/node@14.18.63':
+ resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==}
+
+ '@types/node@16.18.126':
+ resolution: {integrity: sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==}
+
+ '@types/normalize-package-data@2.4.4':
+ resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
+
+ '@types/nprogress@0.2.3':
+ resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==}
+
+ '@types/parse-json@4.0.2':
+ resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
+
+ '@types/path-browserify@1.0.3':
+ resolution: {integrity: sha512-ZmHivEbNCBtAfcrFeBCiTjdIc2dey0l7oCGNGpSuRTy8jP6UVND7oUowlvDujBy8r2Hoa8bfFUOCiPWfmtkfxw==}
+
+ '@types/rbush@4.0.0':
+ resolution: {integrity: sha512-+N+2H39P8X+Hy1I5mC6awlTX54k3FhiUmvt7HWzGJZvF+syUAAxP/stwppS8JE84YHqFgRMv6fCy31202CMFxQ==}
+
+ '@types/react-redux@7.1.34':
+ resolution: {integrity: sha512-GdFaVjEbYv4Fthm2ZLvj1VSCedV7TqE5y1kNwnjSdBOTXuRSgowux6J8TAct15T3CKBr63UMk+2CO7ilRhyrAQ==}
+
+ '@types/react@19.2.17':
+ resolution: {integrity: sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==}
+
+ '@types/semver@7.7.1':
+ resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==}
+
+ '@types/svgo@2.6.4':
+ resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==}
+
+ '@types/trusted-types@2.0.7':
+ resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
+
+ '@types/web-bluetooth@0.0.16':
+ resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
+
+ '@types/web-bluetooth@0.0.20':
+ resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
+
+ '@typescript-eslint/eslint-plugin@5.62.0':
+ resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^5.0.0
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/parser@5.62.0':
+ resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/scope-manager@5.62.0':
+ resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@typescript-eslint/type-utils@5.62.0':
+ resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '*'
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/types@5.62.0':
+ resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@typescript-eslint/typescript-estree@5.62.0':
+ resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/utils@5.62.0':
+ resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ '@typescript-eslint/visitor-keys@5.62.0':
+ resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@ungap/structured-clone@1.3.0':
+ resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
+
+ '@univerjs-pro/collaboration-client-ui@0.14.0':
+ resolution: {integrity: sha512-aHB1zfcg4qz29SQXXh2DfiJ70DtK6gxDNEq0gFdl3TmqFJQOQ4iBPOi9db6oj+N2MQpROPhNDqpYsYYdxiaGQg==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs-pro/collaboration-client@0.14.0':
+ resolution: {integrity: sha512-DhqykBAtYdrJrQYSsB9rR+Syc2WNenW0HTyn5pikLJgqUtP+u9oWckRzu2VyMjZ32i8nLmss2BYptkAv3rAlAA==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs-pro/collaboration@0.14.0':
+ resolution: {integrity: sha512-PO5QCWieeGBB368s0ezUIkGxn5XeOxMf/QF0DvFSpUmy1B3wlr4tq2Ngi5nNXC4A8K9wcdBNMBXmzLPWBEQuzQ==}
+
+ '@univerjs-pro/collaboration@0.15.0':
+ resolution: {integrity: sha512-D1ZbIylEdJvucJ42Can3lXpe4nhjnJqNnpNdsaKbo+7iGynDWUiOOjXjNzBJlchxFY/J9nlKpypVAjWRrb2aqQ==}
+
+ '@univerjs-pro/docs-exchange-client@0.14.0':
+ resolution: {integrity: sha512-auYIakUUjyyy1M7wE4HLzfILa+kkXCBYsXFGPDFGCRMCn3eg5lE67xuZehBQgNOa9/xfOwNBTl25oOzrFG0/6w==}
+
+ '@univerjs-pro/docs-print@0.14.0':
+ resolution: {integrity: sha512-x3ddKnqbbsqoGHHRQAilQmOtAOEc3FXq7AlTnNE9KQCQw7Hp1EoifjpHPQXuOwHS9dh5lOxQZS3mnLCLcNP/ew==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+
+ '@univerjs-pro/edit-history-loader@0.14.0':
+ resolution: {integrity: sha512-fF7/4ye5AFwS4Obi/I8YaB2FpXy5uvhQEC81O53nFgZ25EW7skW9kjPb88jtFTe9eZAcwLddYBa9fJrMZs5azQ==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs-pro/edit-history-viewer@0.14.0':
+ resolution: {integrity: sha512-hKMRiUBcLBw8gbaQq28fWvV7IduQWrf/wU1m3oCwRSD3jpsNiA8kAgWUOzSoeJ1GvP8x/bYl/cL2feN2wumv/Q==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs-pro/engine-chart@0.14.0':
+ resolution: {integrity: sha512-KF/HczxeCaAighj0dIB/PSfWICqZWf14jFGcxy3kKdyXIv/xk3NJKScbtfNZtdL8zQ+2ZVWJhT+266lBMBpORg==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs-pro/engine-formula@0.14.0':
+ resolution: {integrity: sha512-/EaD5ACfO6q5mhuCbjXMlVTfC5ayuEOT3ChwDUuA/3HuQYaoYfGjotVf0bR+SX+TXpArU2/XCb512K6BHvJppg==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs-pro/engine-pivot@0.14.0':
+ resolution: {integrity: sha512-4BWrO9kYjOV9+O7O5ednhLYoh9m8r0J7jpnB+VU/znRnXXP5O1rifN66BNZDk8uwBFA/qTgzbm0C92BA53SQcQ==}
+
+ '@univerjs-pro/exchange-client@0.14.0':
+ resolution: {integrity: sha512-bK3O9nBqdWhEaOeykdZKOtWFtngfPZvts9lJGGWFqIGq9PEoISPVlaWFw6UlVcxo3InZ9srGkWULduK9dx6lug==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs-pro/exchange-client@0.15.0':
+ resolution: {integrity: sha512-wPyuYvNeOjjDBjaf0b5lA0DbIb+oFYELu+ylHaDGseIOFrwZyo45mDJQJuToXNCbTnJ03BoAY40aL+B58DFDhQ==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs-pro/license@0.14.0':
+ resolution: {integrity: sha512-5KleSxxg6LeCrqRO2ZMs928zP7XMgcSBSqmZztjREDv2WCHuKIY8gJAB2d7hHbNXGNpOP8f/E4L6jl8ggEJH4A==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs-pro/license@0.15.0':
+ resolution: {integrity: sha512-m6rPwBT+bdjZvsmm+qb0iVs8/O0DEEdieP+kiNzH7mqiMU5lcWMwtCBXoSCkQFD5snK+o+IBzicuHQV2hCPudQ==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs-pro/print@0.14.0':
+ resolution: {integrity: sha512-53tMov7YN7NZGwhlsYCXe61a6EpUPQMWZnsVTjIoM/WdXtg3RP0m1nV4obSzXa+QM8GTVW1fuDcKT1YKt3cHkA==}
+
+ '@univerjs-pro/sheets-chart-ui@0.14.0':
+ resolution: {integrity: sha512-wf36OfV/RnSWe0cO+0TqA3XDCPGFqHylL0Yzuu1MA+QvQcZiwjVZWrlyJtTL7wwU0EtkbtVsr18X5YTw1hyDJA==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs-pro/sheets-chart@0.14.0':
+ resolution: {integrity: sha512-Q12bWTpYcXfOKHg2UUT0SNCbpQH9SCjS7UViGiD3RXktImzVaB4ln4qd+lfKKHiqSn8RTi2tSMg2TIwDODasGA==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs-pro/sheets-exchange-client@0.14.0':
+ resolution: {integrity: sha512-Cs9FO7fdZB75Io6NSCQokzGbwRhX/+Ump3ibepj403al31ZeAr5PW77p6Hde9M8hMZWpt31GLVelbsyrZ2VDcw==}
+
+ '@univerjs-pro/sheets-pivot-ui@0.14.0':
+ resolution: {integrity: sha512-T8q7cs8QGO3YD9BJogf2y9laDr8X5cD7SOz7JEDOpcafTpoTKtBwojhhpFMGeziCDdRs2Q0wUKDOLXISN3nJOg==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs-pro/sheets-pivot@0.14.0':
+ resolution: {integrity: sha512-sROfXPRwZ+6hDc80gojVQ4t369hvd1HlhcUnpZ9TTojIceCLhXKvNkAvlfARzmpxKnmjajzvheA24u+Eb5uqRQ==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs-pro/sheets-print@0.14.0':
+ resolution: {integrity: sha512-gs6ycmkkgeygTBv0coeXr8l/AFYR+3cATOTu141+LtD4Jz/NISHD45wIWSIhOA9KHnYbIiNqq4WsSGlAdEuzZg==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs-pro/sheets-sparkline-ui@0.14.0':
+ resolution: {integrity: sha512-bvuhzZyEnT57dZZ7c2Yijq37KYdEvTVcAXH0bgy91TuV5CstK5QZZp1d9PxHS33zOScC+nmfCXStpOxQ8V3rPw==}
+ engines: {node: '>=16.0.0', npm: '>=8.0.0'}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs-pro/sheets-sparkline@0.14.0':
+ resolution: {integrity: sha512-OlFSVIbgC4IqpKVOrtECubvnT+MCmJNRxX7O95LJ7KZjETCHYM+szbjsVSxiwILks8lD/JYkKO/b14guhDywFg==}
+ engines: {node: '>=16.0.0', npm: '>=8.0.0'}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs-pro/thread-comment-datasource@0.14.0':
+ resolution: {integrity: sha512-j3Rqkk22cS5gxT1+1ryIPa2QDkxMw4rmkvMdGMDXGV+0OGgX9kFUKb50V60z2N352y3mnoYxgFU50vx/zHqp/w==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/core@0.14.0':
+ resolution: {integrity: sha512-k2LOLByfknzAPKJtX7KTN1ZaGUNBORB6wNLGSYQ840HEwONLrflqnFfDMRm4nmQw0LtdlplwbLHZlhcRBZZEzA==}
+ peerDependencies:
+ '@wendellhu/redi': 1.0.1
+ rxjs: '>=7.0.0'
+
+ '@univerjs/core@0.15.0':
+ resolution: {integrity: sha512-0TyxqVxj5sewKS/njKdRZ1Gx9biMn8OupbpsjCjGfYFynKOtULh8GolDIZaNice4pmrHNuUop/4uxyan4TEj9Q==}
+ peerDependencies:
+ '@wendellhu/redi': 1.0.1
+ rxjs: '>=7.0.0'
+
+ '@univerjs/data-validation@0.14.0':
+ resolution: {integrity: sha512-72aORgfuVi7BthTqmIo0A0tK43OAJ64RzVghBMv7Z6EpF4YJW3XqBQ+IKRfUSvbeyH6C+v2GeIv4jJfcrkwSCw==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/data-validation@0.15.0':
+ resolution: {integrity: sha512-NXq+fLLwd9tfp+uEuOUB96xd100J42WBZE+sYrcrZoVPR7w36EqCnwgkqzkeGWOj9M+PSiebFaNkkBvUyenuQQ==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/design@0.14.0':
+ resolution: {integrity: sha512-TgVbeFzbG41RtgjI/GdRUZOcKEp9DagA8Nh5LT+HSmaHWs5hI/3O44aqMHEXcya/hCi9xGe0iBl9yGubnUdVGw==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+
+ '@univerjs/design@0.15.0':
+ resolution: {integrity: sha512-Cd3vyr1ObbfAeRpyfljPiyPOBbrp91Bb+o2Vc3lLeRmq4stYGHR17gb6I86EMyRQcAR73eDmpq/KBa6Nq3m0Xw==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+
+ '@univerjs/docs-drawing-ui@0.14.0':
+ resolution: {integrity: sha512-fGLbQraUZI4ZcDDgaQPqMs3lw7/9zBMog8SC+cHTsXvEZAAi14tw+h8vseVDHQOKFQWA2OM1DvcmS0ZzBEU3xA==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/docs-drawing@0.14.0':
+ resolution: {integrity: sha512-Fvy8V/Vht0zUwb4eDOvBrZ+eN9ajWNyl7cMCwKZajgv10/wIkSgUkTBpU0jLmPeazuxBwGQuXL9OmITVglfeIw==}
+
+ '@univerjs/docs-hyper-link-ui@0.14.0':
+ resolution: {integrity: sha512-2TuTQPjJwEjgAjuWiLKRzlwrqfPEcnuL6eIaXnPBxLIGRPXcce9BlwU0O/SxYL2X8iOyb2iM6NGeqBgXYd4wlw==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/docs-hyper-link@0.14.0':
+ resolution: {integrity: sha512-ip77sB86Uqje72qkYHYbd6+AcGCPCZnhH8G74Z8lo4ECqRGp9aFk7dbS6wEUqo6oYpWc4gbUDG0Io0lc7DnBSg==}
+
+ '@univerjs/docs-thread-comment-ui@0.14.0':
+ resolution: {integrity: sha512-uCWfzM+bXyTtQc+5OeU7cu0vMnRTgASl541gqD06EC+TJkwbSZlPKCWTA+DjbxcUr/tyowA2w1O4L8QGssx3YQ==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/docs-ui@0.14.0':
+ resolution: {integrity: sha512-cO6Q0dFwbzRXSnO+zy4jF5cpM+2xmaotLUIhgZiLTPFH85+gK+rlSSbG4qiEtcEdj+7VAkW2/Pka8vIir+VL8Q==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/docs@0.14.0':
+ resolution: {integrity: sha512-eyd6hX5m2JAxjSobXDny+uK/IWWNY1o92x/ag6iTQuZzGiwBds1tSvQJlCOdaKTgatHWNFsQVyh870Oe8U56YQ==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/docs@0.15.0':
+ resolution: {integrity: sha512-QXsFPWrJlwUXF6lqJKMKv0RdITd+XheHmoP44qcsY6ok2Ee9ck/1LQV7htjQMDv7qm36V0QZliyT10/j2hyctQ==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/drawing-ui@0.14.0':
+ resolution: {integrity: sha512-U6I7rHjJk6z5bTRDP7LvV+k6Vsbewxi6Vkc5FSi17L9Q7ermrn7EIrjMJsIRv2joS2pSUVT/GgSvRPNeJH+p8A==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/drawing@0.14.0':
+ resolution: {integrity: sha512-nVY5Cr+AZY61g4phXstceRAcxPow1tl8mt/4Zh0x3NT/s9on9MXREJ/5m74MW/M9mGFMTfK1+MZeAqyQ/SXEPw==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/drawing@0.15.0':
+ resolution: {integrity: sha512-jBL/oDcWdJWx8e2r61rvVPAYDWCc4M2qImzkcEK0cASB7e/lNJAgThaRNGjEWvnkw46OFOZJvZYVFbGTEjDw3w==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/engine-formula@0.14.0':
+ resolution: {integrity: sha512-VWvjRDs6d54vpiDIkk0NR1ChG97Q/A1GMpSRvpsMfow11a84TJW3dG/eLu6SnWnnO5+8RYsfymspuGj012mYaA==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/engine-formula@0.15.0':
+ resolution: {integrity: sha512-eLAY2fj5HYyOGXQ1GFfv6S8BTP89kTu1ozh3PPjfI9guKtS14ui5OkvekN3PftqTRVvazXbdiqo9QhbcRVJQtw==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/engine-render@0.14.0':
+ resolution: {integrity: sha512-FGmGhAJko898K7j15oSRMRqKUmpgmG4J68/Dxb8FNsUARaulT0Xdqis0I8CF8mo4NvUrrZ+vdiOh7AjwShB20w==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/engine-render@0.15.0':
+ resolution: {integrity: sha512-ZINu4cT6E2TtUI/1ZMr/M92G9VBaPksHmsep5DQjHCtqEoJUNWwF58bpc/Yj3Dhbq7mWIEmgFc2vaJsK3TGdcQ==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/find-replace@0.14.0':
+ resolution: {integrity: sha512-XuiI2X/YxNesw28AaztGV0z3dToEXw1iujhp6nS4eW5uKCz6c7NerbLhEHWM7TCfYg72jtLJAZ/o4SBWIDZoew==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/icons@1.4.0':
+ resolution: {integrity: sha512-ohBfPk+EyLuSc+1Rvz06jiMDgEydwc6lLUOQyUjS/W3zBKYLhbXaEP4qq7/YQH8OhzkTsRQGvsTgYSg1roRXgg==}
+ peerDependencies:
+ react: '*'
+ react-dom: '*'
+
+ '@univerjs/network@0.14.0':
+ resolution: {integrity: sha512-RmKxhYHDn9wDVCokN+Z1l0Qz3vm6bN0omDVF5Ib4T6r/Wistl05ojjqqU8eMjRew6p4qtu+NvYTpPxQdo88FNw==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/network@0.15.0':
+ resolution: {integrity: sha512-7dyBTEb/zrREbPj1aeUN6/YurWbxWGiPrBPIeMB4MYMKoCvyjehi4Hc9AzJwHB/trWvhrZRQRYjTgWi3n1+NdQ==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-docs-advanced@0.14.0':
+ resolution: {integrity: sha512-b+ToB6+WRkdinCcjnXGMfrXofzjNBxaLhDgq4qnkPh/GrApragiJNMdBf+047V8XrYqY42Ld2mVKhcNnjfQHNw==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-docs-collaboration@0.14.0':
+ resolution: {integrity: sha512-y+aADYhMYwVKMQbUQw1YOJM8Q38u92JRONUkXCb8G6Cdr8DOgwN7fp70yVVkhlyNEuxTPAY01htop8Y4vjn1JQ==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-docs-core@0.14.0':
+ resolution: {integrity: sha512-qjiEt3B6XpM/M+NoyzDxNeCsyWS0wP4aP/vnJRfTlAhYoLQmjOWgMByLGJkoF53gNQjZcbSyS/7BOy5OHvPHPA==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-docs-drawing@0.14.0':
+ resolution: {integrity: sha512-wqkOk+dvU5XjGhbUkKdMoTz12uDk+hfpjZlhGYUitZtTSBEDgT91zY3M+g0RvM8y1R3IxmevIGsJn7LhFgaoyQ==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-docs-hyper-link@0.14.0':
+ resolution: {integrity: sha512-pJSMWQaeTAkwhij8gdavKG2kuqKuJfyMY7jjKpSYZmV+o7KIVhdvPEtKwS5zx7D0r5KDc2OJk4iXzBU7hGwhTA==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-docs-node-core@0.14.0':
+ resolution: {integrity: sha512-jeDnI4/nG10vQAoworT/bf7NzBzfVOuwIqhNpqHpK4LkRnKa3EDJ1U3eTTJKsswUT1AqqGZXs9BeJknzA3NDzw==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-docs-thread-comment@0.14.0':
+ resolution: {integrity: sha512-d6goth0azsT0A/j6Z3LiBRQLB/78XYH7nrBgPC09uPO3WWJpxoJpUD0XAi4haCiMZfs9LtyXd+KyW93qTNXHEA==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-sheets-advanced@0.14.0':
+ resolution: {integrity: sha512-qZGz889jDkN2OpYze4YKcZnOS8T2//8ULkZ6X2GLqYbPFsdb9KMFgzN8sPPpLJtvKXwJOxOsdQj8/IQtJfP4Yw==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-sheets-collaboration@0.14.0':
+ resolution: {integrity: sha512-OdsJEeznMLHlTi+3BDusrcUQpDEM2EWABKUM2DTnzQk6x2d7UXMSlxiuRoU3BoQowrcykgIo1HfC393su5ajyA==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-sheets-conditional-formatting@0.14.0':
+ resolution: {integrity: sha512-2RiPGcVaoH5MV1A+kenzQRWZDuXhr2p2vy2vnwiz0mC9ZEVBrBxVUmR1lTXa/G5DBgvkeZMpacKUKytB3ID4WA==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-sheets-core@0.14.0':
+ resolution: {integrity: sha512-WsIoPPK3KaPZqyRNJpQx73Lw8I8wB2mWvggjtIlOYdCi64/084WTV0COuoG75i3UbG7ZP1mTF8RZ26nsb4epbw==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-sheets-data-validation@0.14.0':
+ resolution: {integrity: sha512-7g/SiAjb5TAocFEcWXN+JjocKxSEVNTQuNiyUH/6gsV1MS33/iJORDl8WKuLzsEHQoY6pCcImn6wH2Glf5rNSA==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-sheets-drawing@0.14.0':
+ resolution: {integrity: sha512-Dj1ribLYwk4QD1OADPeuWJQ8sU/yBreNEwyml/5IJIABil+Va+X2mOo7ZfabD0uySg4cWGY6MP30zV7cI460XQ==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-sheets-filter@0.14.0':
+ resolution: {integrity: sha512-6tgAQO3wQSChdeAGpyrryf6DzSxuU/QF8HJrlap5I4fSwLM9Os3NiaVI30gwsrzCpamvwcdJEevMmroOk60FRw==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-sheets-find-replace@0.14.0':
+ resolution: {integrity: sha512-ibRfrP3lbXuHEWMC5N4tHqGL9lqOlzekEP+KZr+OZSqffFDDk5ESOS9Dn7BDq1KXZeW8JEoOq4/Nn6NLP6TFlw==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-sheets-hyper-link@0.14.0':
+ resolution: {integrity: sha512-CzOHwui5YiX8jIinKECMvHpA5IJtzNeuFGcO+UnUMrTRjjNIlpRoGIT9Tr+Z8fq45BPG20+95W5nnyoeSiRW6Q==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-sheets-node-core@0.14.0':
+ resolution: {integrity: sha512-rY+2GNU2COkV6HniDipGngC6nVqfoJ8e71FgUBLaeFZ6dw9LjGl0d4fyI9IHMpYbrwM3gJeQWPocX/kyDDI7Qw==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-sheets-note@0.14.0':
+ resolution: {integrity: sha512-OmDECNNmk1r1nkWfclCyYyQ+VwC7xFCF1XTtnccfVmzhcVy9L4DUgqhv46gEnvet7/5pO0dx6KGl2WkbONCx7Q==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-sheets-sort@0.14.0':
+ resolution: {integrity: sha512-0U5MID+IzebiuBcFj723TkXFlBGXmFWZ+hf+2KGNO0oVp/wcyM5rbN/792ZrUbab+voEZDuN5tPA5pDWcH4xvA==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-sheets-table@0.14.0':
+ resolution: {integrity: sha512-lqzXHMc5r2gMLG2MAxAbKb+PScxqoBaglXuw/rCIcgNPD65p7nQT1x/igQV8dc12pgxEDIEr/HCNAEG4ZYBAKQ==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/preset-sheets-thread-comment@0.14.0':
+ resolution: {integrity: sha512-/U2rFweBwjLD9HRi5ATIEYcRwzInE+RM4myLhBrWKFAj72uCXUrvMymQaLWQTxeWaLukBBSiGk+d8LHw/luTCA==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/presets@0.14.0':
+ resolution: {integrity: sha512-4laUGuSwmO2qQ3IPs6CTFqVsSUhrAG/Pc+qZ3pvfeFEzRHqx37pMJ6N0+cLHdK/aS5BGmiN1AIhUEsRR8TT0lQ==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/protocol@0.1.47':
+ resolution: {integrity: sha512-EkBSaBe51nGPcG1j58JRjE0yBe8ulomJMLKJbKikkkfhgAlt+f8i5inHFESfsfpG2Ui9FOueo2K0exYDpf6iaw==}
+
+ '@univerjs/protocol@0.1.48':
+ resolution: {integrity: sha512-nFHNtGAWOV0u1+IqoznH9K7hV/M9OZ61Vqwy8JMWKlgLLsx12m3vJqodkrVlLkI2YU5WuwjaUT1+J8/nM+kcUg==}
+
+ '@univerjs/rpc-node@0.14.0':
+ resolution: {integrity: sha512-6G1MMzVvleOcyK039EOfiiwI4FRRp1wpfWTU/hdaTX2KFtCR1iMGn0Lklffq2NuqVyfc4BzJul4SAzwpCGdGsg==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/rpc@0.14.0':
+ resolution: {integrity: sha512-SemHl3KbDS0LNSe1YRs+7GBI2gh8VHYCh605YYSuVSO4ngnFgMTOnSEWzom1+Z1ZlwKax06c5IwfcsnlALGelw==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/rpc@0.15.0':
+ resolution: {integrity: sha512-dizOeWIpSXk3Q78s7qjYyTpnPCunJ6YUz+GEMdVMlMMqXafQO2JFwbGH5B/1jF1b1XyLjOZg98v1E1APmPsWjQ==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-conditional-formatting-ui@0.14.0':
+ resolution: {integrity: sha512-GFOualeEc2qqF9NfuWNFkU/vvAk22+n9m6ABpPlJ309eGO7a6jZc9c0YizJ6dQUPwv8d+FsMtf82FIZk1ONVNg==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-conditional-formatting@0.14.0':
+ resolution: {integrity: sha512-7j780xMqB8JKft3h39BksgZt8o0OfxzeFykhWqNCgTsNsMEuIocLL/hCpy/W3ww/H+HJXJA539YnlqKVOqOkyQ==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-conditional-formatting@0.15.0':
+ resolution: {integrity: sha512-u0YNh2WGan3f0xUlX6LUZn7vqQrBoaVPVOIlCUaAlccAnWeiKCqc2tcM6QBdPX2JW6kZzx1et85jcpNM5bFcgg==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-data-validation-ui@0.14.0':
+ resolution: {integrity: sha512-ipigYw25H69FRzk5yWpOLByQebPWdTqnOEqu2vmKobEztSXGSQF5kYbBuRgGKyMDVgU0yx0SYsRkt0Aa3RbCbw==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-data-validation@0.14.0':
+ resolution: {integrity: sha512-X3r1QsuHylsH/LbBx578yDQt0kIiKDCFN5pWIonKxA9lcC+bFmV4uUEGodwzAe+5VkfUs2L/R7/mnBt1oMCipg==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-drawing-ui@0.14.0':
+ resolution: {integrity: sha512-3ckEmtd1l/HflfgMIs/5T8K32WexBcPWapjca6/iqDEYoWRg2AJgB7Xvjp6nf4DRAntcNQgumos7FJF5uv7aoA==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-drawing@0.14.0':
+ resolution: {integrity: sha512-av/nz0FgVqgBW92rgr9d6pKp2kDheZt+gzR5+4MrPsqV+2Nwotf3Go8DXt9/SauoXwy/Bx6NvnZp/cmYMbWNMA==}
+
+ '@univerjs/sheets-drawing@0.15.0':
+ resolution: {integrity: sha512-J1aqmRo0wvn+YhoZyiNNx0B87EFE/tKIPm6AOEePm+A467gFqYKJALyr/aLBLbls5auRkIW2iimj0AbqpAGmJQ==}
+
+ '@univerjs/sheets-filter-ui@0.14.0':
+ resolution: {integrity: sha512-7do25esWpfX1ygA5ab7SCD+tvOfqV9t1jSiS2L4sKoFTlC9J+4kUnxqvR9TNqfJrYXa+nslKjX2A6812a7VzQQ==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-filter@0.14.0':
+ resolution: {integrity: sha512-j69evJkSZ2WLM1ouOIWnonQdKrJ5VFUICCrysZ05TDU2doHHRJ9LoNoKy7Pz/ts9zEZqapWx8tfIJ2UKiw+kFA==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-filter@0.15.0':
+ resolution: {integrity: sha512-u6qD/EEEqerlrCPBPAqXCHL+UWKjjpkX2JqIiEKK7CjuIFgJr6TLGxXRyH1PQ/xc/blQlrTJU5UWTgTCPkwmJA==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-find-replace@0.14.0':
+ resolution: {integrity: sha512-lUoY3e0Ag9VOjrgzXgBT7lZLBTHVMxWs4hgvvu3VH/hk5AdEfjBBeEq17HA30FCF2/6h04OhFSbKc/meCH9fpw==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-formula-ui@0.14.0':
+ resolution: {integrity: sha512-ZTYBWsZUIxLKdg3k2cMKruELUs9ovLJfrQAXk6sJDZfHhe8dj800ylY6JNjCA159a0ppkWg8FJctisDTTH8I5g==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-formula@0.14.0':
+ resolution: {integrity: sha512-NlutGs5MRPOyjWVSCDJWYPeRMtd+i7kwHUW00GUqy1LALBh8Ca9EOWxl8UeiDnwtvqaTh7cIeRn5bdQN8ZrbAw==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-graphics@0.14.0':
+ resolution: {integrity: sha512-miy3GUqPu/vuHgQoNkHHgvn0nnJRqAZNDlIFUamhgT1vAPQgaq/CE/C+8IQ3dWS5/3CJ2uu3/6IoOt1FEUM1Qw==}
+
+ '@univerjs/sheets-hyper-link-ui@0.14.0':
+ resolution: {integrity: sha512-UdmaAgDNIQrdk2hSn44N6iOmUUUhV6RiL+5P0NhovhM+umqSNoFrus9Txz9+9D+iMDPT1pA1fgtVfoP7joL8HA==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-hyper-link@0.14.0':
+ resolution: {integrity: sha512-gwdKLMA6bCSl8oE+n0U0eX3ilqbMjlzNT7v/dSrFRwoYGKrkTK/aLC8eU3C5/eGKUvaNIEFoXfT9bbCH+yih/w==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-hyper-link@0.15.0':
+ resolution: {integrity: sha512-blf1B3iDoTqKzgrKe7AnmaID2UPgm1CKBEQtNWIMIbZIk66n9W8gwwrFa5/+L18CTVeqDIHhanVstBIEpRiDdQ==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-note-ui@0.14.0':
+ resolution: {integrity: sha512-UKV1+Ml2BNYQKkEjaiBDLhy4S8YqxHMR3oqs7mKJ92dfVW/15z3ZbzTfNvTHnwAOaOLwCuNi2KNRZW1Bagv3cg==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-note@0.14.0':
+ resolution: {integrity: sha512-0jNfaM7VeA1ERxXJ1eFAIeVJbefWAy6LuL7pRoTdNI2fl1N2AuZ9wNKHegXIlY+9tM5KlDzsy2ru1etJS3e/Rg==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-numfmt-ui@0.14.0':
+ resolution: {integrity: sha512-s3qxz0p1dpnoy72xSmypTgxValuNJ0W17l7hBbCDxoxusNeyE5PxLg0HQQFPp8reVDwUXwjIUZNjxAfA2wj/eg==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-numfmt@0.14.0':
+ resolution: {integrity: sha512-hQJcjjljRYRKmliH9D0uVZeSIEOdXBoj5VR7LLeZ/Xg/KlsXLkjdMXjBNdu+9OOT/2M+zZyIFUQGr2tTgfVY5Q==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-sort-ui@0.14.0':
+ resolution: {integrity: sha512-Re04OXlDp9zNdYskOC8p4UMqxlxQhi/HZ73Pmo59XImYtytmqvcgw0yklyVF0B4WYyTA/4J0PKlyechN0Ny0NQ==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-sort@0.14.0':
+ resolution: {integrity: sha512-uHjDz6YlwW8vUFLVBohVLg0s8pKx3Bq3xtMkWG76Op7Ko3BMWrDxCV7VEfRk4UQMLP06g2C1da7vR6tO99rM7g==}
+
+ '@univerjs/sheets-table-ui@0.14.0':
+ resolution: {integrity: sha512-DAQnl+Nuqyj3uKinZFbfc+7jWCvcEPr6pZuzauryzSFzz0xOOaxR5Z5iXxIWP7jlLw/+cmXZHSRsi2dW6GYc3g==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-table@0.14.0':
+ resolution: {integrity: sha512-yYIoL+bY5+7W3RvCu8wAz9y2lJkEs2OBPqX7YlL42BCp+vnipsWFGSjpDViTd52ipw8RIpt5StELRFaRz/bBJA==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-thread-comment-ui@0.14.0':
+ resolution: {integrity: sha512-XjOEt7B22aJXg/SHOWiVKvC/nXq7mYYMwdgYGe5Zswhh8AAomOVtiPWNpTPqvn67G4Bfp1olr5x/ndUmF6u7Hg==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-thread-comment@0.14.0':
+ resolution: {integrity: sha512-EdXa0gVAgrZJh6vmuzO6YwFx0hKXkW5Y9uEc6z4/kFDlXURMgHeXWyD7OSkhfffT4fiTnRuPAZB3k65qCfipUQ==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets-ui@0.14.0':
+ resolution: {integrity: sha512-RHHadP7SvPijfprhycWIPS2xWYDx77dTbKJz/NE65DStTeDs2ldhEE8j0ckXtgrogpHFzd32MLXfVvo8dfMQdA==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets@0.14.0':
+ resolution: {integrity: sha512-k0gVjIk5oLI7G8tyKA6LuJoDDe0X6AGktNP/p6gasSz1RaVwjU1PXvYsJq1icpmeGzXgitlGcTOcHZqmegmXiw==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/sheets@0.15.0':
+ resolution: {integrity: sha512-lxIkJj2m6lIUbnaTHOit2spRwt93TNbmFbzGwIhX3zlOEb2OZKJCeHQVU5bY72mlRNKkChoE4yiHmv0tx3akTw==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/telemetry@0.14.0':
+ resolution: {integrity: sha512-7kEDIlIx47vC7buecdUQr6fb466skxdX0cI0wIUlkNHEj8lqZZ1Q8jVeVEjATdopuPLztuFziOinPQKit/P6og==}
+
+ '@univerjs/themes@0.14.0':
+ resolution: {integrity: sha512-xfkjA4EbctI3WwDp5PWv93Yb4cDvbddJROc2ET2ReE1flEFacRjLWQLay8PeOYYuRXAOFomDUOmZTSBudbfyVA==}
+
+ '@univerjs/themes@0.15.0':
+ resolution: {integrity: sha512-7jO/tX/ZpIs7zTis8fS4MvaeC/CDD2ozIu1fbtUKmhUQhtn/kn2iwr2a1DjANGO6u4CFtbegTd8SQLbLrgwlaw==}
+
+ '@univerjs/thread-comment-ui@0.14.0':
+ resolution: {integrity: sha512-STyf4ztjYEmRtQel5BcXTRflfDjXyuwiPCu6UPjYs33vqLUli9UCwKP+sNDxyQYwmuSr4kU8+u8KhOc3Asqp5g==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/thread-comment@0.14.0':
+ resolution: {integrity: sha512-cNhsjmZoEjQQfKQiAFPFKkpMOrwf1lLaMWT9FonrpjdGFpYMtHCG+dMDD99W6c+WVkHHoeSH1rX1SH3wRSTpEA==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/thread-comment@0.15.0':
+ resolution: {integrity: sha512-jH6nLLrVX+eIXxKMRR9LjMiDb7nklYJaDeARpW7PVTeDwAJpyuRlxNygcGIi/IWlMnveP8EHhPA2wiBHRW+ZGQ==}
+ peerDependencies:
+ rxjs: '>=7.0.0'
+
+ '@univerjs/ui@0.14.0':
+ resolution: {integrity: sha512-so2XPPVqcsvKuZq1ZyhUlagISaveHNA1ixv3fNdlRHjUNto/Iom86u8RSXbM+9wLgQkRwtcbxz4je7ivnrbcCQ==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@univerjs/ui@0.15.0':
+ resolution: {integrity: sha512-hcBM+34f055u/PP3V4a0JyNlyQ8Mo+ZSHzI39kKYY5Th+H8W5gKmIKdBk75Xw0b4GiWEmTr7NxJ+Gky5lxD9pQ==}
+ peerDependencies:
+ react: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^16.9.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ rxjs: '>=7.0.0'
+
+ '@uppy/companion-client@2.2.2':
+ resolution: {integrity: sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==}
+
+ '@uppy/core@2.3.4':
+ resolution: {integrity: sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==}
+
+ '@uppy/store-default@2.1.1':
+ resolution: {integrity: sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==}
+
+ '@uppy/utils@4.1.3':
+ resolution: {integrity: sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==}
+
+ '@uppy/xhr-upload@2.1.3':
+ resolution: {integrity: sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==}
+ peerDependencies:
+ '@uppy/core': ^2.3.3
+
+ '@videojs/http-streaming@3.17.4':
+ resolution: {integrity: sha512-XAvdG2dolBuV2Fx8bu1kjmQ2D4TonGzZH68Pgv/O9xMSFWdZtITSMFismeQLEAtMmGwze8qNJp3RgV+jStrJqg==}
+ engines: {node: '>=8', npm: '>=5'}
+ peerDependencies:
+ video.js: ^8.19.0
+
+ '@videojs/vhs-utils@4.1.1':
+ resolution: {integrity: sha512-5iLX6sR2ownbv4Mtejw6Ax+naosGvoT9kY+gcuHzANyUZZ+4NpeNdKMUhb6ag0acYej1Y7cmr/F2+4PrggMiVA==}
+ engines: {node: '>=8', npm: '>=5'}
+
+ '@videojs/xhr@2.7.0':
+ resolution: {integrity: sha512-giab+EVRanChIupZK7gXjHy90y3nncA2phIOyG3Ne5fvpiMJzvqYwiTOnEVW2S4CoYcuKJkomat7bMXA/UoUZQ==}
+
+ '@vitejs/plugin-vue@4.6.2':
+ resolution: {integrity: sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ vite: ^4.0.0 || ^5.0.0
+ vue: ^3.2.25
+
+ '@volar/language-core@2.4.28':
+ resolution: {integrity: sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==}
+
+ '@volar/source-map@2.4.28':
+ resolution: {integrity: sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==}
+
+ '@volar/typescript@2.4.28':
+ resolution: {integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==}
+
+ '@vue/compiler-core@3.5.33':
+ resolution: {integrity: sha512-3PZLQwFw4Za3TC8t0FvTy3wI16Kt+pmwcgNZca4Pj9iWL2E72a/gZlpBtAJvEdDMdCxdG/qq0C7PN0bsJuv0Rw==}
+
+ '@vue/compiler-dom@3.5.33':
+ resolution: {integrity: sha512-PXq0yrfCLzzL07rbXO4awtXY1Z06LG2eu6Adg3RJFa/j3Cii217XxxLXG22N330gw7GmALCY0Z8RgXEviwgpjA==}
+
+ '@vue/compiler-sfc@3.5.33':
+ resolution: {integrity: sha512-UTUvRO9cY+rROrx/pvN9P5Z7FgA6QGfokUCfhQE4EnmUj3rVnK+CHI0LsEO1pg+I7//iRYMUfcNcCPe7tg0CoA==}
+
+ '@vue/compiler-ssr@3.5.33':
+ resolution: {integrity: sha512-IErjYdnj1qIupG5xxiVIYiiRvDhGWV4zuh/RCrwfYpuL+HWQzeU6lCk/nF9r7olWMnjKxCAkOctT2qFWFkzb1A==}
+
+ '@vue/devtools-api@6.6.4':
+ resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
+
+ '@vue/language-core@3.2.7':
+ resolution: {integrity: sha512-Gn4q/tRxbpVGLEuARQ43p3YELlNAFgRUVCgW9U5Cr+5q4vfD2bWDWpl3ABbJMXUt5xlE1dF8dkigg2aUq7JYYw==}
+
+ '@vue/reactivity@3.5.33':
+ resolution: {integrity: sha512-p8UfIqyIhb0rYGlSgSBV+lPhF2iUSBcRy7enhTmPqKWadHy9kcOFYF1AejYBP9P+avnd3OBbD49DU4pLWX/94A==}
+
+ '@vue/runtime-core@3.5.33':
+ resolution: {integrity: sha512-UpFF45RI9//a7rvq7RdOQblb4tup7hHG9QsmIrxkFQLzQ7R8/iNQ5LE15NhLZ1/WcHMU2b47u6P33CPUelHyIQ==}
+
+ '@vue/runtime-dom@3.5.33':
+ resolution: {integrity: sha512-IOxMsAOwquhfITgmOgaPYl7/j8gKUxUFoflRc+u4LxyD3+783xne8vNta1PONVCvCV9A0w7hkyEepINDqfO0tw==}
+
+ '@vue/server-renderer@3.5.33':
+ resolution: {integrity: sha512-0xylq/8/h44lVG0pZFknv1XIdEgymq2E9n59uTWJBG+dIgiT0TMCSsxrN7nO16Z0MU0MPjFcguBbZV8Itk52Hw==}
+ peerDependencies:
+ vue: 3.5.33
+
+ '@vue/shared@3.5.33':
+ resolution: {integrity: sha512-5vR2QIlmaLG77Ygd4pMP6+SGQ5yox9VhtnbDWTy9DzMzdmeLxZ1QqxrywEZ9sa1AVubfIJyaCG3ytyWU81ufcQ==}
+
+ '@vueuse/core@12.0.0':
+ resolution: {integrity: sha512-C12RukhXiJCbx4MGhjmd/gH52TjJsc3G0E0kQj/kb19H3Nt6n1CA4DRWuTdWWcaFRdlTe0npWDS942mvacvNBw==}
+
+ '@vueuse/core@9.13.0':
+ resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==}
+
+ '@vueuse/metadata@12.0.0':
+ resolution: {integrity: sha512-Yzimd1D3sjxTDOlF05HekU5aSGdKjxhuhRFHA7gDWLn57PRbBIh+SF5NmjhJ0WRgF3my7T8LBucyxdFJjIfRJQ==}
+
+ '@vueuse/metadata@9.13.0':
+ resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==}
+
+ '@vueuse/shared@12.0.0':
+ resolution: {integrity: sha512-3i6qtcq2PIio5i/vVYidkkcgvmTjCqrf26u+Fd4LhnbBmIT6FN8y6q/GJERp8lfcB9zVEfjdV0Br0443qZuJpw==}
+
+ '@vueuse/shared@9.13.0':
+ resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==}
+
+ '@wangeditor/basic-modules@1.1.7':
+ resolution: {integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==}
+ peerDependencies:
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ lodash.throttle: ^4.1.1
+ nanoid: ^3.2.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
+
+ '@wangeditor/code-highlight@1.0.3':
+ resolution: {integrity: sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==}
+ peerDependencies:
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
+
+ '@wangeditor/core@1.1.19':
+ resolution: {integrity: sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==}
+ peerDependencies:
+ '@uppy/core': ^2.1.1
+ '@uppy/xhr-upload': ^2.0.3
+ dom7: ^3.0.0
+ is-hotkey: ^0.2.0
+ lodash.camelcase: ^4.3.0
+ lodash.clonedeep: ^4.5.0
+ lodash.debounce: ^4.0.8
+ lodash.foreach: ^4.5.0
+ lodash.isequal: ^4.5.0
+ lodash.throttle: ^4.1.1
+ lodash.toarray: ^4.4.0
+ nanoid: ^3.2.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
+
+ '@wangeditor/editor-for-vue@5.1.12':
+ resolution: {integrity: sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==}
+ peerDependencies:
+ '@wangeditor/editor': '>=5.1.0'
+ vue: ^3.0.5
+
+ '@wangeditor/editor@5.1.23':
+ resolution: {integrity: sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==}
+
+ '@wangeditor/list-module@1.0.5':
+ resolution: {integrity: sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==}
+ peerDependencies:
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
+
+ '@wangeditor/table-module@1.1.4':
+ resolution: {integrity: sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==}
+ peerDependencies:
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ lodash.isequal: ^4.5.0
+ lodash.throttle: ^4.1.1
+ nanoid: ^3.2.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
+
+ '@wangeditor/upload-image-module@1.0.2':
+ resolution: {integrity: sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==}
+ peerDependencies:
+ '@uppy/core': ^2.0.3
+ '@uppy/xhr-upload': ^2.0.3
+ '@wangeditor/basic-modules': 1.x
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ lodash.foreach: ^4.5.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
+
+ '@wangeditor/video-module@1.1.4':
+ resolution: {integrity: sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==}
+ peerDependencies:
+ '@uppy/core': ^2.1.4
+ '@uppy/xhr-upload': ^2.0.7
+ '@wangeditor/core': 1.x
+ dom7: ^3.0.0
+ nanoid: ^3.2.0
+ slate: ^0.72.0
+ snabbdom: ^3.1.0
+
+ '@wendellhu/redi@1.0.1':
+ resolution: {integrity: sha512-vKJFlaPjXsyqcJFNKJGmdLRup5uUZGQuZUA41e67at5y93kEYJo5FpJebAfs8LStJjItHWv21t0Aq+0UCSYSsw==}
+ engines: {node: '>=22.12.0'}
+ peerDependencies:
+ react: '>=16.8.0'
+ peerDependenciesMeta:
+ react:
+ optional: true
+
+ '@xmldom/xmldom@0.8.13':
+ resolution: {integrity: sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==}
+ engines: {node: '>=10.0.0'}
+
+ '@zarrita/storage@0.2.0':
+ resolution: {integrity: sha512-855ZXqtnds7spnT8vNvD+MXa3QExP1m2GqShe8yt7uZXHnQLgJHgkpVwFjE1B0KDDRO0ki09hmk6OboTaIfPsQ==}
+
+ '@zip.js/zip.js@2.8.26':
+ resolution: {integrity: sha512-RQ4h9F6DOiHxpdocUDrOl6xBM+yOtz+LkUol47AVWcfebGBDpZ7w7Xvz9PS24JgXvLGiXXzSAfdCdVy1tPlaFA==}
+ engines: {bun: '>=0.7.0', deno: '>=1.0.0', node: '>=18.0.0'}
+
+ JSONStream@1.3.5:
+ resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
+ hasBin: true
+
+ acorn-jsx@5.3.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ acorn-walk@8.3.5:
+ resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==}
+ engines: {node: '>=0.4.0'}
+
+ acorn@8.16.0:
+ resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ adler-32@1.2.0:
+ resolution: {integrity: sha512-/vUqU/UY4MVeFsg+SsK6c+/05RZXIHZMGJA+PX5JyWI0ZRcBpupnRuPLU/NXXoFwMYCPCoxIfElM2eS+DUXCqQ==}
+ engines: {node: '>=0.8'}
+ hasBin: true
+
+ adler-32@1.3.1:
+ resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==}
+ engines: {node: '>=0.8'}
+
+ aes-decrypter@1.0.3:
+ resolution: {integrity: sha512-rsx8pfx7wJsn+ziYbpJ8XA5c93hKAtBCrfydxJqJCMT+qfjipd/B5wC2xHtBcoxyvlqJcpeAo3K55t0lXOn9yQ==}
+
+ aes-decrypter@4.0.2:
+ resolution: {integrity: sha512-lc+/9s6iJvuaRe5qDlMTpCFjnwpkeOXp8qP3oiZ5jsj1MRg+SBVUmmICrhxHvc8OELSmc+fEyyxAuppY6hrWzw==}
+
+ ajv@6.14.0:
+ resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==}
+
+ alien-signals@3.1.2:
+ resolution: {integrity: sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw==}
+
+ ansi-regex@2.1.1:
+ resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
+ engines: {node: '>=0.10.0'}
+
+ ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+
+ ansi-styles@2.2.1:
+ resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==}
+ engines: {node: '>=0.10.0'}
+
+ ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+
+ ant-design-vue@4.2.6:
+ resolution: {integrity: sha512-t7eX13Yj3i9+i5g9lqFyYneoIb3OzTvQjq9Tts1i+eiOd3Eva/6GagxBSXM1fOCjqemIu0FYVE1ByZ/38epR3Q==}
+ engines: {node: '>=12.22.0'}
+ peerDependencies:
+ vue: '>=3.2.0'
+
+ antdv-draggable-modal@1.1.6:
+ resolution: {integrity: sha512-nGYIbkHfXBwKOtcw9lknpCdXK/Co0MpikywHREdgGI7dNm5c0zwHgolWf2XQSRvQx9sAtv2+BJYeDsJF77bncg==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ ant-design-vue: '>=3.2.0 <4.0.0'
+ vue: '>=3.2.0 <3.4.0'
+
+ any-promise@1.3.0:
+ resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
+
+ anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+
+ arc@0.2.0:
+ resolution: {integrity: sha512-8NFOo126uYKQJyXNSLY/jSklgfLQL+XWAcPXGo876JwEQ8nSOPXWNI3TV2jLZMN8QEw8uksJ1ZwS4npjBca8MA==}
+ engines: {node: '>=0.4.0'}
+
+ archiver-utils@2.1.0:
+ resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==}
+ engines: {node: '>= 6'}
+
+ archiver-utils@3.0.4:
+ resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==}
+ engines: {node: '>= 10'}
+
+ archiver@5.3.2:
+ resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==}
+ engines: {node: '>= 10'}
+
+ arg@4.1.3:
+ resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
+
+ arg@5.0.2:
+ resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
+
+ argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+ aria-hidden@1.2.6:
+ resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==}
+ engines: {node: '>=10'}
+
+ arr-diff@4.0.0:
+ resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==}
+ engines: {node: '>=0.10.0'}
+
+ arr-flatten@1.1.0:
+ resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==}
+ engines: {node: '>=0.10.0'}
+
+ arr-union@3.1.0:
+ resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==}
+ engines: {node: '>=0.10.0'}
+
+ array-buffer-byte-length@1.0.2:
+ resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
+ engines: {node: '>= 0.4'}
+
+ array-ify@1.0.0:
+ resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==}
+
+ array-tree-filter@2.1.0:
+ resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==}
+
+ array-union@2.1.0:
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
+ engines: {node: '>=8'}
+
+ array-unique@0.3.2:
+ resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==}
+ engines: {node: '>=0.10.0'}
+
+ arraybuffer.prototype.slice@1.0.4:
+ resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
+ engines: {node: '>= 0.4'}
+
+ arrify@1.0.1:
+ resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
+ engines: {node: '>=0.10.0'}
+
+ assign-symbols@1.0.0:
+ resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==}
+ engines: {node: '>=0.10.0'}
+
+ async-function@1.0.0:
+ resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
+ engines: {node: '>= 0.4'}
+
+ async-lock@1.4.1:
+ resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==}
+
+ async-validator@4.2.5:
+ resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
+
+ async@3.2.6:
+ resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
+
+ asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+
+ at-least-node@1.0.0:
+ resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
+ engines: {node: '>= 4.0.0'}
+
+ atob@2.1.2:
+ resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
+ engines: {node: '>= 4.5.0'}
+ hasBin: true
+
+ autolinker@4.1.5:
+ resolution: {integrity: sha512-vEfYZPmvVOIuE567XBVCsx8SBgOYtjB2+S1iAaJ+HgH+DNjAcrHem2hmAeC9yaNGWayicv4yR+9UaJlkF3pvtw==}
+ engines: {pnpm: '>=10.10.0'}
+
+ autoprefixer@10.5.0:
+ resolution: {integrity: sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==}
+ engines: {node: ^10 || ^12 || >=14}
+ hasBin: true
+ peerDependencies:
+ postcss: ^8.1.0
+
+ available-typed-arrays@1.0.7:
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
+ engines: {node: '>= 0.4'}
+
+ axios@1.15.2:
+ resolution: {integrity: sha512-wLrXxPtcrPTsNlJmKjkPnNPK2Ihe0hn0wGSaTEiHRPxwjvJwT3hKmXF4dpqxmPO9SoNb2FsYXj/xEo0gHN+D5A==}
+
+ babel-runtime@6.26.0:
+ resolution: {integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==}
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+
+ base@0.11.2:
+ resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
+ engines: {node: '>=0.10.0'}
+
+ baseline-browser-mapping@2.10.20:
+ resolution: {integrity: sha512-1AaXxEPfXT+GvTBJFuy4yXVHWJBXa4OdbIebGN/wX5DlsIkU0+wzGnd2lOzokSk51d5LUmqjgBLRLlypLUqInQ==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ better-scroll@2.5.1:
+ resolution: {integrity: sha512-OiF3cQroRfTzf+CRQH2z1G52ZAlNHINI6lCAvDmyFu0o0nRuTaV9F+fmBGIU2BL5p5IplUQ4E7sYa1TLfZarzQ==}
+
+ big-integer@1.6.52:
+ resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==}
+ engines: {node: '>=0.6'}
+
+ big.js@5.2.2:
+ resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
+
+ bignumber.js@9.3.1:
+ resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==}
+
+ binary-extensions@2.3.0:
+ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+ engines: {node: '>=8'}
+
+ binary@0.3.0:
+ resolution: {integrity: sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==}
+
+ bitmap-sdf@1.0.4:
+ resolution: {integrity: sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==}
+
+ bl@4.1.0:
+ resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
+
+ bluebird@3.4.7:
+ resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==}
+
+ bluebird@3.7.2:
+ resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
+
+ boolbase@1.0.0:
+ resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+
+ brace-expansion@1.1.14:
+ resolution: {integrity: sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==}
+
+ brace-expansion@2.1.1:
+ resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==}
+
+ braces@2.3.2:
+ resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==}
+ engines: {node: '>=0.10.0'}
+
+ braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+ engines: {node: '>=8'}
+
+ browserslist@4.28.2:
+ resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
+ buffer-crc32@0.2.13:
+ resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
+
+ buffer-indexof-polyfill@1.0.2:
+ resolution: {integrity: sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==}
+ engines: {node: '>=0.10'}
+
+ buffer@5.7.1:
+ resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
+
+ buffers@0.1.1:
+ resolution: {integrity: sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==}
+ engines: {node: '>=0.2.0'}
+
+ cache-base@1.0.1:
+ resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==}
+ engines: {node: '>=0.10.0'}
+
+ call-bind-apply-helpers@1.0.2:
+ resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
+ engines: {node: '>= 0.4'}
+
+ call-bind@1.0.9:
+ resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==}
+ engines: {node: '>= 0.4'}
+
+ call-bound@1.0.4:
+ resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
+ engines: {node: '>= 0.4'}
+
+ callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+
+ camelcase-css@2.0.1:
+ resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
+ engines: {node: '>= 6'}
+
+ camelcase-keys@6.2.2:
+ resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
+ engines: {node: '>=8'}
+
+ camelcase@5.3.1:
+ resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
+ engines: {node: '>=6'}
+
+ caniuse-lite@1.0.30001790:
+ resolution: {integrity: sha512-bOoxfJPyYo+ds6W0YfptaCWbFnJYjh2Y1Eow5lRv+vI2u8ganPZqNm1JwNh0t2ELQCqIWg4B3dWEusgAmsoyOw==}
+
+ cesium@1.141.0:
+ resolution: {integrity: sha512-bRwgABDjsXRqNLjeJAxSlCrWCTvAt/yWJD30fY5CbqtoEKR6g/YCOcJW37vk4w/Gq3uMW7sF1uP74ajRrktjEw==}
+ engines: {node: '>=22.0.0'}
+
+ cfb@1.2.2:
+ resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==}
+ engines: {node: '>=0.8'}
+
+ chainsaw@0.1.0:
+ resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==}
+
+ chalk@1.1.3:
+ resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
+ engines: {node: '>=0.10.0'}
+
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
+ chokidar@3.6.0:
+ resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
+ engines: {node: '>= 8.10.0'}
+
+ chokidar@4.0.3:
+ resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
+ engines: {node: '>= 14.16.0'}
+
+ cjk-regex@3.4.0:
+ resolution: {integrity: sha512-m+gbmlIP6gAG7tDvo2kpeSPAz/uh5wY5/zx10ymjdpbbiTHNTNoYnP2lCiyqtmbLxwhEdq8/lsVbsy4GTc9oUw==}
+ engines: {node: '>=16'}
+
+ class-utils@0.3.6:
+ resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==}
+ engines: {node: '>=0.10.0'}
+
+ class-variance-authority@0.7.1:
+ resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
+
+ classnames@2.5.1:
+ resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==}
+
+ cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
+
+ clone@2.1.2:
+ resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
+ engines: {node: '>=0.8'}
+
+ clsx@2.1.1:
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
+ engines: {node: '>=6'}
+
+ codepage@1.14.0:
+ resolution: {integrity: sha512-iz3zJLhlrg37/gYRWgEPkaFTtzmnEv1h+r7NgZum2lFElYQPi0/5bnmuDfODHxfp0INEfnRqyfyeIJDbb7ahRw==}
+ engines: {node: '>=0.8'}
+ hasBin: true
+
+ codepage@1.15.0:
+ resolution: {integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==}
+ engines: {node: '>=0.8'}
+
+ collapse-white-space@2.1.0:
+ resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
+
+ collection-visit@1.0.0:
+ resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==}
+ engines: {node: '>=0.10.0'}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+
+ commander@2.14.1:
+ resolution: {integrity: sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==}
+
+ commander@2.17.1:
+ resolution: {integrity: sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==}
+
+ commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ commander@4.1.1:
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
+ engines: {node: '>= 6'}
+
+ commander@7.2.0:
+ resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
+ engines: {node: '>= 10'}
+
+ compare-func@2.0.0:
+ resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==}
+
+ component-emitter@1.3.1:
+ resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==}
+
+ compress-commons@4.1.2:
+ resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==}
+ engines: {node: '>= 10'}
+
+ compute-scroll-into-view@1.0.20:
+ resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ concaveman@1.2.1:
+ resolution: {integrity: sha512-PwZYKaM/ckQSa8peP5JpVr7IMJ4Nn/MHIaWUjP4be+KoZ7Botgs8seAZGpmaOM+UZXawcdYRao/px9ycrCihHw==}
+
+ conventional-changelog-angular@5.0.13:
+ resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==}
+ engines: {node: '>=10'}
+
+ conventional-changelog-conventionalcommits@4.6.3:
+ resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==}
+ engines: {node: '>=10'}
+
+ conventional-commits-parser@3.2.4:
+ resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ copy-descriptor@0.1.1:
+ resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==}
+ engines: {node: '>=0.10.0'}
+
+ core-js@2.6.12:
+ resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==}
+ deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
+
+ core-js@3.49.0:
+ resolution: {integrity: sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==}
+
+ core-util-is@1.0.3:
+ resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+
+ cors@2.8.6:
+ resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==}
+ engines: {node: '>= 0.10'}
+
+ cosmiconfig-typescript-loader@2.0.2:
+ resolution: {integrity: sha512-KmE+bMjWMXJbkWCeY4FJX/npHuZPNr9XF9q9CIQ/bpFwi1qHfCmSiKarrCcRa0LO4fWjk93pVoeRtJAkTGcYNw==}
+ engines: {node: '>=12', npm: '>=6'}
+ peerDependencies:
+ '@types/node': '*'
+ cosmiconfig: '>=7'
+ typescript: '>=3'
+
+ cosmiconfig@7.1.0:
+ resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
+ engines: {node: '>=10'}
+
+ crc-32@1.2.2:
+ resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==}
+ engines: {node: '>=0.8'}
+ hasBin: true
+
+ crc32-stream@4.0.3:
+ resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==}
+ engines: {node: '>= 10'}
+
+ create-require@1.1.1:
+ resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
+
+ cross-spawn@7.0.6:
+ resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
+ engines: {node: '>= 8'}
+
+ crypto-js@4.2.0:
+ resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==}
+
+ css-box-model@1.2.1:
+ resolution: {integrity: sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==}
+
+ css-select@4.3.0:
+ resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
+
+ css-tree@1.1.3:
+ resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
+ engines: {node: '>=8.0.0'}
+
+ css-what@6.2.2:
+ resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==}
+ engines: {node: '>= 6'}
+
+ cssesc@3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ csso@4.2.0:
+ resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
+ engines: {node: '>=8.0.0'}
+
+ csstype@3.2.3:
+ resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
+
+ d3-array@1.2.4:
+ resolution: {integrity: sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==}
+
+ d3-geo@1.7.1:
+ resolution: {integrity: sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw==}
+
+ d3-voronoi@1.1.2:
+ resolution: {integrity: sha512-RhGS1u2vavcO7ay7ZNAPo4xeDh/VYeGof3x5ZLJBQgYhLegxr3s5IykvWmJ94FTU6mcbtp4sloqZ54mP6R4Utw==}
+
+ d@1.0.2:
+ resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==}
+ engines: {node: '>=0.12'}
+
+ dargs@7.0.0:
+ resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
+ engines: {node: '>=8'}
+
+ data-view-buffer@1.0.2:
+ resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
+ engines: {node: '>= 0.4'}
+
+ data-view-byte-length@1.0.2:
+ resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
+ engines: {node: '>= 0.4'}
+
+ data-view-byte-offset@1.0.1:
+ resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
+ engines: {node: '>= 0.4'}
+
+ dayjs@1.11.20:
+ resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==}
+
+ debug@2.6.9:
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@4.4.3:
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ decamelize-keys@1.1.1:
+ resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
+ engines: {node: '>=0.10.0'}
+
+ decamelize@1.2.0:
+ resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
+ engines: {node: '>=0.10.0'}
+
+ decimal.js@10.6.0:
+ resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==}
+
+ decode-uri-component@0.2.2:
+ resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
+ engines: {node: '>=0.10'}
+
+ deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
+ default-passive-events@2.0.0:
+ resolution: {integrity: sha512-eMtt76GpDVngZQ3ocgvRcNCklUMwID1PaNbCNxfpDXuiOXttSh0HzBbda1HU9SIUsDc02vb7g9+3I5tlqe/qMQ==}
+
+ define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
+
+ define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
+
+ define-property@0.2.5:
+ resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==}
+ engines: {node: '>=0.10.0'}
+
+ define-property@1.0.0:
+ resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==}
+ engines: {node: '>=0.10.0'}
+
+ define-property@2.0.2:
+ resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==}
+ engines: {node: '>=0.10.0'}
+
+ delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+
+ depd@2.0.0:
+ resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
+ engines: {node: '>= 0.8'}
+
+ destroy@1.2.0:
+ resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
+ engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+
+ detect-libc@2.1.2:
+ resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
+ engines: {node: '>=8'}
+
+ detect-node-es@1.1.0:
+ resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
+
+ didyoumean@1.2.2:
+ resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
+
+ diff@4.0.4:
+ resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==}
+ engines: {node: '>=0.3.1'}
+
+ dir-glob@3.0.1:
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
+ engines: {node: '>=8'}
+
+ dlv@1.1.3:
+ resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
+
+ doctrine@3.0.0:
+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
+ engines: {node: '>=6.0.0'}
+
+ dom-align@1.12.4:
+ resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==}
+
+ dom-helpers@5.2.1:
+ resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
+
+ dom-scroll-into-view@2.0.1:
+ resolution: {integrity: sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==}
+
+ dom-serializer@0.2.2:
+ resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==}
+
+ dom-serializer@1.4.1:
+ resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
+
+ dom-to-image@2.6.0:
+ resolution: {integrity: sha512-Dt0QdaHmLpjURjU7Tnu3AgYSF2LuOmksSGsUcE6ItvJoCWTBEmiMXcqBdNSAm9+QbbwD7JMoVsuuKX6ZVQv1qA==}
+
+ dom-walk@0.1.2:
+ resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==}
+
+ dom7@3.0.0:
+ resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==}
+
+ domelementtype@1.3.1:
+ resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==}
+
+ domelementtype@2.3.0:
+ resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
+
+ domhandler@2.4.2:
+ resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==}
+
+ domhandler@4.3.1:
+ resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
+ engines: {node: '>= 4'}
+
+ dompurify@3.4.3:
+ resolution: {integrity: sha512-VVwJidIJcp1hpg2OMXML3ZVRPYSZiq4aX7qBh83BSIpOaRDqI+qxhXjjIWnpzkOXhmp0L81lnoME1mnCc9H48A==}
+
+ domutils@1.7.0:
+ resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==}
+
+ domutils@2.8.0:
+ resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
+
+ dot-prop@5.3.0:
+ resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
+ engines: {node: '>=8'}
+
+ draco3d@1.5.7:
+ resolution: {integrity: sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==}
+
+ dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
+
+ duplexer2@0.1.4:
+ resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==}
+
+ earcut@2.2.4:
+ resolution: {integrity: sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==}
+
+ earcut@3.0.2:
+ resolution: {integrity: sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==}
+
+ echarts-wordcloud@2.1.0:
+ resolution: {integrity: sha512-Kt1JmbcROgb+3IMI48KZECK2AP5lG6bSsOEs+AsuwaWJxQom31RTNd6NFYI01E/YaI1PFZeueaupjlmzSQasjQ==}
+ peerDependencies:
+ echarts: ^5.0.1
+
+ echarts@5.6.0:
+ resolution: {integrity: sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==}
+
+ ee-first@1.1.1:
+ resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+
+ electron-to-chromium@1.5.343:
+ resolution: {integrity: sha512-YHnQ3MXI08icvL9ZKnEBy05F2EQ8ob01UaMOuMbM8l+4UcAq6MPPbBTJBbsBUg3H8JeZNt+O4fjsoWth3p6IFg==}
+
+ element-plus@2.13.7:
+ resolution: {integrity: sha512-XdHATFZOyzVFL1DaHQ90IOJQSg9UnSAV+bhDW+YB5UoZ0Hxs50mwqjqfwXkuwpSag+VXXizVcErBR6Movo5daw==}
+ peerDependencies:
+ vue: ^3.3.0
+
+ emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
+ emojis-list@3.0.0:
+ resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==}
+ engines: {node: '>= 4'}
+
+ encodeurl@2.0.0:
+ resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
+ engines: {node: '>= 0.8'}
+
+ end-of-stream@1.4.5:
+ resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==}
+
+ entities@1.1.2:
+ resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==}
+
+ entities@2.2.0:
+ resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
+
+ entities@7.0.1:
+ resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==}
+ engines: {node: '>=0.12'}
+
+ error-ex@1.3.4:
+ resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==}
+
+ es-abstract@1.24.2:
+ resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==}
+ engines: {node: '>= 0.4'}
+
+ es-define-property@1.0.1:
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+ engines: {node: '>= 0.4'}
+
+ es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
+
+ es-object-atoms@1.1.1:
+ resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
+ engines: {node: '>= 0.4'}
+
+ es-set-tostringtag@2.1.0:
+ resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
+ engines: {node: '>= 0.4'}
+
+ es-to-primitive@1.3.0:
+ resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
+ engines: {node: '>= 0.4'}
+
+ es5-ext@0.10.64:
+ resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==}
+ engines: {node: '>=0.10'}
+
+ es5-shim@4.6.7:
+ resolution: {integrity: sha512-jg21/dmlrNQI7JyyA2w7n+yifSxBng0ZralnSfVZjoCawgNTCnS+yBCyVM9DL5itm7SUnDGgv7hcq2XCZX4iRQ==}
+ engines: {node: '>=0.4.0'}
+
+ es6-iterator@2.0.3:
+ resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==}
+
+ es6-symbol@3.1.4:
+ resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==}
+ engines: {node: '>=0.12'}
+
+ esbuild@0.18.20:
+ resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
+ engines: {node: '>=12'}
+ hasBin: true
+
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
+ escape-html@1.0.3:
+ resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+
+ escape-string-regexp@1.0.5:
+ resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
+ engines: {node: '>=0.8.0'}
+
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ eslint-config-prettier@8.10.2:
+ resolution: {integrity: sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==}
+ hasBin: true
+ peerDependencies:
+ eslint: '>=7.0.0'
+
+ eslint-plugin-prettier@4.2.5:
+ resolution: {integrity: sha512-9Ni+xgemM2IWLq6aXEpP2+V/V30GeA/46Ar629vcMqVPodFFWC9skHu/D1phvuqtS8bJCFnNf01/qcmqYEwNfg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ eslint: '>=7.28.0'
+ eslint-config-prettier: '*'
+ prettier: '>=2.0.0'
+ peerDependenciesMeta:
+ eslint-config-prettier:
+ optional: true
+
+ eslint-plugin-vue@8.7.1:
+ resolution: {integrity: sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
+
+ eslint-scope@5.1.1:
+ resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
+ engines: {node: '>=8.0.0'}
+
+ eslint-scope@7.2.2:
+ resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint-utils@3.0.0:
+ resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
+ engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
+ peerDependencies:
+ eslint: '>=5'
+
+ eslint-visitor-keys@2.1.0:
+ resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
+ engines: {node: '>=10'}
+
+ eslint-visitor-keys@3.4.3:
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint@8.57.1:
+ resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
+ hasBin: true
+
+ esniff@2.0.1:
+ resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==}
+ engines: {node: '>=0.10'}
+
+ espree@9.6.1:
+ resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ esquery@1.7.0:
+ resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
+ engines: {node: '>=0.10'}
+
+ esrecurse@4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+
+ esri-leaflet@3.0.19:
+ resolution: {integrity: sha512-GBMRuRV0zyzVSxdImwKnnTh3ptMvzeaGdnsL68BwPLebibEOsgquRKArwLNpuIz0E03SXccaJafiDLCGvp2PGQ==}
+ peerDependencies:
+ leaflet: ^1.0.0
+
+ estraverse@4.3.0:
+ resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
+ engines: {node: '>=4.0'}
+
+ estraverse@5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+
+ estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+ esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+
+ etag@1.8.1:
+ resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
+ engines: {node: '>= 0.6'}
+
+ event-emitter@0.3.5:
+ resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==}
+
+ exceljs@4.4.0:
+ resolution: {integrity: sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg==}
+ engines: {node: '>=8.3.0'}
+
+ execa@5.1.1:
+ resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
+ engines: {node: '>=10'}
+
+ exit-on-epipe@1.0.1:
+ resolution: {integrity: sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==}
+ engines: {node: '>=0.8'}
+
+ expand-brackets@2.1.4:
+ resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==}
+ engines: {node: '>=0.10.0'}
+
+ ext@1.7.0:
+ resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==}
+
+ extend-shallow@2.0.1:
+ resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
+ engines: {node: '>=0.10.0'}
+
+ extend-shallow@3.0.2:
+ resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==}
+ engines: {node: '>=0.10.0'}
+
+ extglob@2.0.4:
+ resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==}
+ engines: {node: '>=0.10.0'}
+
+ fast-csv@4.3.6:
+ resolution: {integrity: sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==}
+ engines: {node: '>=10.0.0'}
+
+ fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+
+ fast-diff@1.3.0:
+ resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
+
+ fast-equals@4.0.3:
+ resolution: {integrity: sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==}
+
+ fast-glob@3.3.3:
+ resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
+ engines: {node: '>=8.6.0'}
+
+ fast-json-stable-stringify@2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+
+ fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
+ fastq@1.20.1:
+ resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==}
+
+ fdir@6.5.0:
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
+ fflate@0.3.11:
+ resolution: {integrity: sha512-Rr5QlUeGN1mbOHlaqcSYMKVpPbgLy0AWT/W0EHxA6NGI12yO1jpoui2zBBvU2G824ltM6Ut8BFgfHSBGfkmS0A==}
+
+ fflate@0.8.2:
+ resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==}
+
+ file-entry-cache@6.0.1:
+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+
+ file-saver@2.0.5:
+ resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==}
+
+ fill-range@4.0.0:
+ resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==}
+ engines: {node: '>=0.10.0'}
+
+ fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+
+ find-up@4.1.0:
+ resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
+ engines: {node: '>=8'}
+
+ find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+
+ flat-cache@3.2.0:
+ resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+
+ flatted@3.4.2:
+ resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==}
+
+ follow-redirects@1.16.0:
+ resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+
+ for-each@0.3.5:
+ resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
+ engines: {node: '>= 0.4'}
+
+ for-in@1.0.2:
+ resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==}
+ engines: {node: '>=0.10.0'}
+
+ form-data@4.0.5:
+ resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==}
+ engines: {node: '>= 6'}
+
+ frac@1.1.2:
+ resolution: {integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==}
+ engines: {node: '>=0.8'}
+
+ fraction.js@5.3.4:
+ resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==}
+
+ fragment-cache@0.2.1:
+ resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==}
+ engines: {node: '>=0.10.0'}
+
+ franc-min@6.2.0:
+ resolution: {integrity: sha512-1uDIEUSlUZgvJa2AKYR/dmJC66v/PvGQ9mWfI9nOr/kPpMFyvswK0gPXOwpYJYiYD008PpHLkGfG58SPjQJFxw==}
+
+ fresh@0.5.2:
+ resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
+ engines: {node: '>= 0.6'}
+
+ fs-constants@1.0.0:
+ resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
+
+ fs-extra@10.1.0:
+ resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
+ engines: {node: '>=12'}
+
+ fs-extra@9.1.0:
+ resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
+ engines: {node: '>=10'}
+
+ fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ fstream@1.0.12:
+ resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==}
+ engines: {node: '>=0.6'}
+ deprecated: This package is no longer supported.
+
+ function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+
+ function.prototype.name@1.1.8:
+ resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
+ engines: {node: '>= 0.4'}
+
+ functions-have-names@1.2.3:
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+
+ generator-function@2.0.1:
+ resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==}
+ engines: {node: '>= 0.4'}
+
+ geojson-equality-ts@1.0.2:
+ resolution: {integrity: sha512-h3Ryq+0mCSN/7yLs0eDgrZhvc9af23o/QuC4aTiuuzP/MRCtd6mf5rLsLRY44jX0RPUfM8c4GqERQmlUxPGPoQ==}
+
+ geojson-polygon-self-intersections@1.2.2:
+ resolution: {integrity: sha512-6XRNF4CsRHYmR9z5YuIk5f/aOototnDf0dgMqYGcS7y1l57ttt6MAIAxl3rXyas6lq1HEbTuLMh4PgvO+OV42w==}
+
+ geotiff@3.0.5:
+ resolution: {integrity: sha512-OWcL9S9+yDZ6iAlXMt32T1iwUApJM8UiD47xbm6ZP1h33d10fqkPs14EG/ttT5EnefpZSx3G15iDFC5FxUNUwA==}
+ engines: {node: '>=10.19'}
+
+ get-caller-file@2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ get-intrinsic@1.3.0:
+ resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
+ engines: {node: '>= 0.4'}
+
+ get-nonce@1.0.1:
+ resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
+ engines: {node: '>=6'}
+
+ get-proto@1.0.1:
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
+
+ get-stream@6.0.1:
+ resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
+ engines: {node: '>=10'}
+
+ get-symbol-description@1.1.0:
+ resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
+ engines: {node: '>= 0.4'}
+
+ get-value@2.0.6:
+ resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==}
+ engines: {node: '>=0.10.0'}
+
+ git-raw-commits@2.0.11:
+ resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+
+ glob-parent@6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+
+ glob@7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ deprecated: Glob versions prior to v9 are no longer supported
+
+ global-dirs@0.1.1:
+ resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==}
+ engines: {node: '>=4'}
+
+ global@4.3.2:
+ resolution: {integrity: sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==}
+
+ global@4.4.0:
+ resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==}
+
+ globals@13.24.0:
+ resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
+ engines: {node: '>=8'}
+
+ globalthis@1.0.4:
+ resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
+ engines: {node: '>= 0.4'}
+
+ globby@11.1.0:
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+ engines: {node: '>=10'}
+
+ gopd@1.2.0:
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+ engines: {node: '>= 0.4'}
+
+ graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+ grapheme-splitter@1.0.4:
+ resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
+
+ graphemer@1.4.0:
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+
+ hard-rejection@2.1.0:
+ resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
+ engines: {node: '>=6'}
+
+ has-ansi@2.0.0:
+ resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==}
+ engines: {node: '>=0.10.0'}
+
+ has-bigints@1.1.0:
+ resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
+ engines: {node: '>= 0.4'}
+
+ has-flag@1.0.0:
+ resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==}
+ engines: {node: '>=0.10.0'}
+
+ has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
+ has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
+
+ has-proto@1.2.0:
+ resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
+ engines: {node: '>= 0.4'}
+
+ has-symbols@1.1.0:
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+ engines: {node: '>= 0.4'}
+
+ has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+
+ has-value@0.3.1:
+ resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==}
+ engines: {node: '>=0.10.0'}
+
+ has-value@1.0.0:
+ resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==}
+ engines: {node: '>=0.10.0'}
+
+ has-values@0.1.4:
+ resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==}
+ engines: {node: '>=0.10.0'}
+
+ has-values@1.0.0:
+ resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==}
+ engines: {node: '>=0.10.0'}
+
+ hasown@2.0.3:
+ resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==}
+ engines: {node: '>= 0.4'}
+
+ he@1.2.0:
+ resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
+ hasBin: true
+
+ hoist-non-react-statics@3.3.2:
+ resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
+
+ hosted-git-info@2.8.9:
+ resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
+
+ hosted-git-info@4.1.0:
+ resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
+ engines: {node: '>=10'}
+
+ html-void-elements@2.0.1:
+ resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==}
+
+ htmlparser2@3.10.1:
+ resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==}
+
+ http-errors@2.0.1:
+ resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==}
+ engines: {node: '>= 0.8'}
+
+ human-signals@2.1.0:
+ resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
+ engines: {node: '>=10.17.0'}
+
+ husky@7.0.4:
+ resolution: {integrity: sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==}
+ engines: {node: '>=12'}
+ hasBin: true
+
+ i18next@20.6.1:
+ resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==}
+
+ ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+
+ ignore@5.3.2:
+ resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
+ engines: {node: '>= 4'}
+
+ image-size@0.5.5:
+ resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==}
+ engines: {node: '>=0.10.0'}
+ hasBin: true
+
+ immediate@3.0.6:
+ resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
+
+ immer@9.0.21:
+ resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
+
+ immutable@5.1.5:
+ resolution: {integrity: sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==}
+
+ import-fresh@3.3.1:
+ resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
+ engines: {node: '>=6'}
+
+ imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+
+ indent-string@4.0.0:
+ resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
+ engines: {node: '>=8'}
+
+ individual@2.0.0:
+ resolution: {integrity: sha512-pWt8hBCqJsUWI/HtcfWod7+N9SgAqyPEaF7JQjwzjn5vGrpg6aQ5qeAFQ7dx//UH4J1O+7xqew+gCeeFt6xN/g==}
+
+ inflight@1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
+
+ inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
+ ini@1.3.8:
+ resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
+
+ internal-slot@1.1.0:
+ resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
+ engines: {node: '>= 0.4'}
+
+ is-accessor-descriptor@1.0.1:
+ resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==}
+ engines: {node: '>= 0.10'}
+
+ is-array-buffer@3.0.5:
+ resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
+ engines: {node: '>= 0.4'}
+
+ is-arrayish@0.2.1:
+ resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
+
+ is-async-function@2.1.1:
+ resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
+ engines: {node: '>= 0.4'}
+
+ is-bigint@1.1.0:
+ resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
+ engines: {node: '>= 0.4'}
+
+ is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+
+ is-boolean-object@1.2.2:
+ resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
+ engines: {node: '>= 0.4'}
+
+ is-buffer@1.1.6:
+ resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
+
+ is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+
+ is-core-module@2.16.1:
+ resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
+ engines: {node: '>= 0.4'}
+
+ is-data-descriptor@1.0.1:
+ resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==}
+ engines: {node: '>= 0.4'}
+
+ is-data-view@1.0.2:
+ resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
+ engines: {node: '>= 0.4'}
+
+ is-date-object@1.1.0:
+ resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
+ engines: {node: '>= 0.4'}
+
+ is-descriptor@0.1.7:
+ resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==}
+ engines: {node: '>= 0.4'}
+
+ is-descriptor@1.0.3:
+ resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==}
+ engines: {node: '>= 0.4'}
+
+ is-extendable@0.1.1:
+ resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
+ engines: {node: '>=0.10.0'}
+
+ is-extendable@1.0.1:
+ resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
+ engines: {node: '>=0.10.0'}
+
+ is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-finalizationregistry@1.1.1:
+ resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
+ engines: {node: '>= 0.4'}
+
+ is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+
+ is-function@1.0.2:
+ resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==}
+
+ is-generator-function@1.1.2:
+ resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==}
+ engines: {node: '>= 0.4'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-hotkey@0.2.0:
+ resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==}
+
+ is-map@2.0.3:
+ resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
+ engines: {node: '>= 0.4'}
+
+ is-negative-zero@2.0.3:
+ resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
+ engines: {node: '>= 0.4'}
+
+ is-number-object@1.1.1:
+ resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
+ engines: {node: '>= 0.4'}
+
+ is-number@3.0.0:
+ resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==}
+ engines: {node: '>=0.10.0'}
+
+ is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+
+ is-obj@2.0.0:
+ resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
+ engines: {node: '>=8'}
+
+ is-path-inside@3.0.3:
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
+ engines: {node: '>=8'}
+
+ is-plain-obj@1.1.0:
+ resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
+ engines: {node: '>=0.10.0'}
+
+ is-plain-object@2.0.4:
+ resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
+ engines: {node: '>=0.10.0'}
+
+ is-plain-object@3.0.1:
+ resolution: {integrity: sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==}
+ engines: {node: '>=0.10.0'}
+
+ is-plain-object@5.0.0:
+ resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
+ engines: {node: '>=0.10.0'}
+
+ is-reference@1.2.1:
+ resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
+
+ is-regex@1.2.1:
+ resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
+ engines: {node: '>= 0.4'}
+
+ is-set@2.0.3:
+ resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
+ engines: {node: '>= 0.4'}
+
+ is-shared-array-buffer@1.0.4:
+ resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
+ engines: {node: '>= 0.4'}
+
+ is-stream@2.0.1:
+ resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
+ engines: {node: '>=8'}
+
+ is-string@1.1.1:
+ resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
+ engines: {node: '>= 0.4'}
+
+ is-symbol@1.1.1:
+ resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
+ engines: {node: '>= 0.4'}
+
+ is-text-path@1.0.1:
+ resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==}
+ engines: {node: '>=0.10.0'}
+
+ is-typed-array@1.1.15:
+ resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
+ engines: {node: '>= 0.4'}
+
+ is-url@1.2.4:
+ resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==}
+
+ is-weakmap@2.0.2:
+ resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
+ engines: {node: '>= 0.4'}
+
+ is-weakref@1.1.1:
+ resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
+ engines: {node: '>= 0.4'}
+
+ is-weakset@2.0.4:
+ resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
+ engines: {node: '>= 0.4'}
+
+ is-windows@1.0.2:
+ resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
+ engines: {node: '>=0.10.0'}
+
+ isarray@1.0.0:
+ resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
+
+ isarray@2.0.5:
+ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
+
+ isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ isobject@2.1.0:
+ resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==}
+ engines: {node: '>=0.10.0'}
+
+ isobject@3.0.1:
+ resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
+ engines: {node: '>=0.10.0'}
+
+ jiti@1.21.7:
+ resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==}
+ hasBin: true
+
+ js-base64@2.6.4:
+ resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==}
+
+ js-base64@3.7.8:
+ resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==}
+
+ js-cookie@3.0.5:
+ resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==}
+ engines: {node: '>=14'}
+
+ js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ js-yaml@4.1.1:
+ resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
+ hasBin: true
+
+ jsencrypt@3.5.4:
+ resolution: {integrity: sha512-kNjfYEMNASxrDGsmcSQh/rUTmcoRfSUkxnAz+MMywM8jtGu+fFEZ3nJjHM58zscVnwR0fYmG9sGkTDjqUdpiwA==}
+
+ jsep@1.4.0:
+ resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==}
+ engines: {node: '>= 10.16.0'}
+
+ json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
+ json-parse-even-better-errors@2.3.1:
+ resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+
+ json-schema-traverse@0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
+ json5@1.0.2:
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
+ hasBin: true
+
+ jsonfile@6.2.1:
+ resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==}
+
+ jsonparse@1.3.1:
+ resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
+ engines: {'0': node >= 0.2.0}
+
+ jsts@2.7.1:
+ resolution: {integrity: sha512-x2wSZHEBK20CY+Wy+BPE7MrFQHW6sIsdaGUMEqmGAio+3gFzQaBYPwLRonUfQf9Ak8pBieqj9tUofX1+WtAEIg==}
+ engines: {node: '>= 12'}
+
+ jszip@3.10.1:
+ resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
+
+ kdbush@4.0.2:
+ resolution: {integrity: sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==}
+
+ keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+
+ kind-of@3.2.2:
+ resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==}
+ engines: {node: '>=0.10.0'}
+
+ kind-of@4.0.0:
+ resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==}
+ engines: {node: '>=0.10.0'}
+
+ kind-of@5.1.0:
+ resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==}
+ engines: {node: '>=0.10.0'}
+
+ kind-of@6.0.3:
+ resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
+ engines: {node: '>=0.10.0'}
+
+ ktx-parse@1.1.0:
+ resolution: {integrity: sha512-mKp3y+FaYgR7mXWAbyyzpa/r1zDWeaunH+INJO4fou3hb45XuNSwar+7llrRyvpMWafxSIi99RNFJ05MHedaJQ==}
+
+ lazystream@1.0.1:
+ resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==}
+ engines: {node: '>= 0.6.3'}
+
+ leaflet@1.9.4:
+ resolution: {integrity: sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==}
+
+ lerc@2.0.0:
+ resolution: {integrity: sha512-7qo1Mq8ZNmaR4USHHm615nEW2lPeeWJ3bTyoqFbd35DLx0LUH7C6ptt5FDCTAlbIzs3+WKrk5SkJvw8AFDE2hg==}
+
+ lerc@3.0.0:
+ resolution: {integrity: sha512-Rm4J/WaHhRa93nCN2mwWDZFoRVF18G1f47C+kvQWyHGEZxFpTUi73p7lMVSAndyxGt6lJ2/CFbOcf9ra5p8aww==}
+
+ levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+
+ lie@3.1.1:
+ resolution: {integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==}
+
+ lie@3.3.0:
+ resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
+
+ lilconfig@3.1.3:
+ resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
+ engines: {node: '>=14'}
+
+ lines-and-columns@1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+
+ listenercount@1.0.1:
+ resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==}
+
+ loader-utils@1.4.2:
+ resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==}
+ engines: {node: '>=4.0.0'}
+
+ localforage@1.10.0:
+ resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==}
+
+ locate-path@5.0.0:
+ resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
+ engines: {node: '>=8'}
+
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
+ lodash-es@4.18.1:
+ resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==}
+
+ lodash-unified@1.0.3:
+ resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==}
+ peerDependencies:
+ '@types/lodash-es': '*'
+ lodash: '*'
+ lodash-es: '*'
+
+ lodash.camelcase@4.3.0:
+ resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
+
+ lodash.clonedeep@4.5.0:
+ resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==}
+
+ lodash.debounce@4.0.8:
+ resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
+
+ lodash.defaults@4.2.0:
+ resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==}
+
+ lodash.difference@4.5.0:
+ resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==}
+
+ lodash.escaperegexp@4.1.2:
+ resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==}
+
+ lodash.flatten@4.4.0:
+ resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==}
+
+ lodash.foreach@4.5.0:
+ resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==}
+
+ lodash.groupby@4.6.0:
+ resolution: {integrity: sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==}
+
+ lodash.isboolean@3.0.3:
+ resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==}
+
+ lodash.isequal@4.5.0:
+ resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
+ deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead.
+
+ lodash.isfunction@3.0.9:
+ resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==}
+
+ lodash.isnil@4.0.0:
+ resolution: {integrity: sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==}
+
+ lodash.isplainobject@4.0.6:
+ resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
+
+ lodash.isundefined@3.0.1:
+ resolution: {integrity: sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==}
+
+ lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+ lodash.throttle@4.1.1:
+ resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
+
+ lodash.toarray@4.4.0:
+ resolution: {integrity: sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==}
+
+ lodash.union@4.6.0:
+ resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==}
+
+ lodash.uniq@4.5.0:
+ resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
+
+ lodash@4.18.1:
+ resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==}
+
+ long@5.3.2:
+ resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==}
+
+ loose-envify@1.4.0:
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
+ hasBin: true
+
+ lru-cache@6.0.0:
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+ engines: {node: '>=10'}
+
+ m3u8-parser@2.1.0:
+ resolution: {integrity: sha512-WbEpQ2FUaNGbJ0YanSeyj9D9ruu4FUvz+ZvebIzI2bSME+PUwcPXO1kKXZkjcPUAFruDikoOI5fWQNIA6JCCOQ==}
+
+ m3u8-parser@7.2.0:
+ resolution: {integrity: sha512-CRatFqpjVtMiMaKXxNvuI3I++vUumIXVVT/JpCpdU/FynV/ceVw1qpPyyBNindL+JlPMSesx+WX1QJaZEJSaMQ==}
+
+ magic-string@0.25.9:
+ resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
+
+ magic-string@0.30.21:
+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
+
+ make-error@1.3.6:
+ resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
+
+ map-cache@0.2.2:
+ resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}
+ engines: {node: '>=0.10.0'}
+
+ map-obj@1.0.1:
+ resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
+ engines: {node: '>=0.10.0'}
+
+ map-obj@4.3.0:
+ resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
+ engines: {node: '>=8'}
+
+ map-visit@1.0.0:
+ resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
+ engines: {node: '>=0.10.0'}
+
+ math-intrinsics@1.1.0:
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+ engines: {node: '>= 0.4'}
+
+ mdn-data@2.0.14:
+ resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
+
+ memoize-one@5.2.1:
+ resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
+
+ memoize-one@6.0.0:
+ resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
+
+ meow@8.1.2:
+ resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==}
+ engines: {node: '>=10'}
+
+ merge-options@1.0.1:
+ resolution: {integrity: sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==}
+ engines: {node: '>=4'}
+
+ merge-stream@2.0.0:
+ resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+
+ merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+
+ mersenne-twister@1.1.0:
+ resolution: {integrity: sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==}
+
+ meshoptimizer@1.1.1:
+ resolution: {integrity: sha512-oRFNWJRDA/WTrVj7NWvqa5HqE1t9MYDj2VaWirQCzCCrAd2GHrqR/sQezCxiWATPNlKTcRaPRHPJwIRoPBAp5g==}
+
+ micromatch@3.1.0:
+ resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==}
+ engines: {node: '>=0.10.0'}
+
+ micromatch@4.0.8:
+ resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
+ engines: {node: '>=8.6'}
+
+ mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+
+ mime-match@1.0.2:
+ resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==}
+
+ mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+
+ mime@1.6.0:
+ resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ mimic-fn@2.1.0:
+ resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
+ engines: {node: '>=6'}
+
+ min-document@2.19.2:
+ resolution: {integrity: sha512-8S5I8db/uZN8r9HSLFVWPdJCvYOejMcEC82VIzNUc6Zkklf/d1gg2psfE79/vyhWOj4+J8MtwmoOz3TmvaGu5A==}
+
+ min-indent@1.0.1:
+ resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
+ engines: {node: '>=4'}
+
+ minimatch@3.1.5:
+ resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==}
+
+ minimatch@5.1.9:
+ resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==}
+ engines: {node: '>=10'}
+
+ minimist-options@4.1.0:
+ resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
+ engines: {node: '>= 6'}
+
+ minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+
+ mixin-deep@1.3.2:
+ resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==}
+ engines: {node: '>=0.10.0'}
+
+ mkdirp@0.5.6:
+ resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
+ hasBin: true
+
+ moment@2.30.1:
+ resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==}
+
+ mpd-parser@1.3.1:
+ resolution: {integrity: sha512-1FuyEWI5k2HcmhS1HkKnUAQV7yFPfXPht2DnRRGtoiiAAW+ESTbtEXIDpRkwdU+XyrQuwrIym7UkoPKsZ0SyFw==}
+ hasBin: true
+
+ ms@2.0.0:
+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ muggle-string@0.4.1:
+ resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
+
+ mux.js@4.3.2:
+ resolution: {integrity: sha512-g0q6DPdvb3yYcoK7ElBGobdSSrhY/RjPt19U7uUc733aqvc5bCS/aCvL9z+448y+IoCZnYDwyZfQBBXMSmGOaQ==}
+
+ mux.js@7.1.0:
+ resolution: {integrity: sha512-NTxawK/BBELJrYsZThEulyUMDVlLizKdxyAsMuzoCD1eFj97BVaA8D/CvKsKu6FOLYkFojN5CbM9h++ZTZtknA==}
+ engines: {node: '>=8', npm: '>=5'}
+ hasBin: true
+
+ mz@2.7.0:
+ resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
+
+ n-gram@2.0.2:
+ resolution: {integrity: sha512-S24aGsn+HLBxUGVAUFOwGpKs7LBcG4RudKU//eWzt/mQ97/NMKQxDWHyHx63UNWk/OOdihgmzoETn1tf5nQDzQ==}
+
+ namespace-emitter@2.0.1:
+ resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==}
+
+ nanoid@3.3.11:
+ resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ nanoid@5.1.6:
+ resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==}
+ engines: {node: ^18 || >=20}
+ hasBin: true
+
+ nanomatch@1.2.13:
+ resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==}
+ engines: {node: '>=0.10.0'}
+
+ nanopop@2.4.2:
+ resolution: {integrity: sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw==}
+
+ natural-compare-lite@1.4.0:
+ resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
+
+ natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+ next-tick@1.1.0:
+ resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
+
+ node-addon-api@7.1.1:
+ resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
+
+ node-releases@2.0.38:
+ resolution: {integrity: sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==}
+
+ normalize-package-data@2.5.0:
+ resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
+
+ normalize-package-data@3.0.3:
+ resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
+ engines: {node: '>=10'}
+
+ normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+
+ normalize-wheel-es@1.2.0:
+ resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==}
+
+ nosleep.js@0.12.0:
+ resolution: {integrity: sha512-9d1HbpKLh3sdWlhXMhU6MMH+wQzKkrgfRkYV0EBdvt99YJfj0ilCJrWRDYG2130Tm4GXbEoTCx5b34JSaP+HhA==}
+
+ npm-run-path@4.0.1:
+ resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
+ engines: {node: '>=8'}
+
+ nprogress@0.2.0:
+ resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==}
+
+ nth-check@2.1.1:
+ resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
+
+ numcodecs@0.3.2:
+ resolution: {integrity: sha512-6YSPnmZgg0P87jnNhi3s+FVLOcIn3y+1CTIgUulA3IdASzK9fJM87sUFkpyA+be9GibGRaST2wCgkD+6U+fWKw==}
+
+ numfmt@3.2.6:
+ resolution: {integrity: sha512-MXc2KP3j+2usdHTY5/ENUc2S+3BRF/cJqnR6RHeq6LBqKoIZOAQ62DQw974nnaZOencbfkmkTPyTmMnlkCpjzg==}
+
+ object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+
+ object-copy@0.1.0:
+ resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==}
+ engines: {node: '>=0.10.0'}
+
+ object-hash@3.0.0:
+ resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
+ engines: {node: '>= 6'}
+
+ object-inspect@1.13.4:
+ resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
+ engines: {node: '>= 0.4'}
+
+ object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+
+ object-visit@1.0.1:
+ resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==}
+ engines: {node: '>=0.10.0'}
+
+ object.assign@4.1.7:
+ resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
+ engines: {node: '>= 0.4'}
+
+ object.pick@1.3.0:
+ resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==}
+ engines: {node: '>=0.10.0'}
+
+ ol@10.9.0:
+ resolution: {integrity: sha512-svbbgVQUmEHaKpLQ8kRySojs59Brvgl2zYIrqG9eQNXGfsbi55rQasZIDpwpQzDL6OlzrUb0H4hQaiX9wDoGmA==}
+
+ on-finished@2.4.1:
+ resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
+ engines: {node: '>= 0.8'}
+
+ once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+
+ onetime@5.1.2:
+ resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
+ engines: {node: '>=6'}
+
+ opentype.js@1.3.5:
+ resolution: {integrity: sha512-thKDiELidAApOvXlncrpwDZKJCa9fXLEKM4+FoEWI+qTLDeNb+h7EkN+8a7KQODsB1GZ+Exz9KknkoPrEdXZDw==}
+ hasBin: true
+
+ optionator@0.9.4:
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+ engines: {node: '>= 0.8.0'}
+
+ ot-json1@1.0.2:
+ resolution: {integrity: sha512-IhxkqVWQqlkWULoi/Q2AdzKk0N5vQRbUMUwubFXFCPcY4TsOZjmp2YKrk0/z1TeiECPadWEK060sdFdQ3Grokg==}
+
+ ot-text-unicode@4.0.0:
+ resolution: {integrity: sha512-W7ZLU8QXesY2wagYFv47zErXud3E93FGImmSGJsQnBzE+idcPPyo2u2KMilIrTwBh4pbCizy71qRjmmV6aDhcQ==}
+
+ own-keys@1.0.1:
+ resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
+ engines: {node: '>= 0.4'}
+
+ p-limit@2.3.0:
+ resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
+ engines: {node: '>=6'}
+
+ p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+
+ p-locate@4.1.0:
+ resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
+ engines: {node: '>=8'}
+
+ p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+
+ p-try@2.2.0:
+ resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
+ engines: {node: '>=6'}
+
+ pako@1.0.11:
+ resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
+
+ pako@2.1.0:
+ resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==}
+
+ parent-module@1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+
+ parse-headers@2.0.6:
+ resolution: {integrity: sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==}
+
+ parse-json@5.2.0:
+ resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+ engines: {node: '>=8'}
+
+ parseurl@1.3.3:
+ resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
+ engines: {node: '>= 0.8'}
+
+ pascalcase@0.1.1:
+ resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==}
+ engines: {node: '>=0.10.0'}
+
+ path-browserify@1.0.1:
+ resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
+
+ path-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+
+ path-is-absolute@1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+
+ path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+
+ path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ path-to-regexp@6.3.0:
+ resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==}
+
+ path-type@4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+
+ pathe@0.2.0:
+ resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==}
+
+ pbf@4.0.1:
+ resolution: {integrity: sha512-SuLdBvS42z33m8ejRbInMapQe8n0D3vN/Xd5fmWM3tufNgRQFBpaW2YVJxQZV4iPNqb0vEFvssMEo5w9c6BTIA==}
+ hasBin: true
+
+ pdfjs-dist@6.0.227:
+ resolution: {integrity: sha512-/P6M4SXw+70waMVLUM7rdRtvo+dEzqE1t6W/zQNvBETo2MaRa5rrvCcAYdfWGiUzadTgM0lJmRApUrW0d9zgKg==}
+ engines: {node: '>=22.13.0 || >=24'}
+
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
+ picomatch@2.3.2:
+ resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==}
+ engines: {node: '>=8.6'}
+
+ picomatch@4.0.4:
+ resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
+ engines: {node: '>=12'}
+
+ pify@2.3.0:
+ resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
+ engines: {node: '>=0.10.0'}
+
+ pinia@2.3.1:
+ resolution: {integrity: sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==}
+ peerDependencies:
+ typescript: '>=4.4.4'
+ vue: ^2.7.0 || ^3.5.11
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ pirates@4.0.7:
+ resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
+ engines: {node: '>= 6'}
+
+ pkcs7@0.2.3:
+ resolution: {integrity: sha512-kJRwmADEQUg+qJyRgWLtpEL9q9cFjZschejTEK3GRjKvnsU9G5WWoe/wKqRgbBoqWdVSeTUKP6vIA3Y72M3rWA==}
+ engines: {node: ^0.10, npm: ^1.4.6}
+ hasBin: true
+
+ pkcs7@1.0.4:
+ resolution: {integrity: sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==}
+ hasBin: true
+
+ point-in-polygon-hao@1.2.4:
+ resolution: {integrity: sha512-x2pcvXeqhRHlNRdhLs/tgFapAbSSe86wa/eqmj1G6pWftbEs5aVRJhRGM6FYSUERKu0PjekJzMq0gsI2XyiclQ==}
+
+ point-in-polygon@1.1.0:
+ resolution: {integrity: sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==}
+
+ polyclip-ts@0.16.8:
+ resolution: {integrity: sha512-JPtKbDRuPEuAjuTdhR62Gph7Is2BS1Szx69CFOO3g71lpJDFo78k4tFyi+qFOMVPePEzdSKkpGU3NBXPHHjvKQ==}
+
+ posix-character-classes@0.1.1:
+ resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==}
+ engines: {node: '>=0.10.0'}
+
+ possible-typed-array-names@1.1.0:
+ resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
+ engines: {node: '>= 0.4'}
+
+ postcss-import@15.1.0:
+ resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ postcss: ^8.0.0
+
+ postcss-js@4.1.0:
+ resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==}
+ engines: {node: ^12 || ^14 || >= 16}
+ peerDependencies:
+ postcss: ^8.4.21
+
+ postcss-load-config@6.0.1:
+ resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==}
+ engines: {node: '>= 18'}
+ peerDependencies:
+ jiti: '>=1.21.0'
+ postcss: '>=8.0.9'
+ tsx: ^4.8.1
+ yaml: ^2.4.2
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+ postcss:
+ optional: true
+ tsx:
+ optional: true
+ yaml:
+ optional: true
+
+ postcss-nested@6.2.0:
+ resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.2.14
+
+ postcss-prefix-selector@1.16.1:
+ resolution: {integrity: sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ==}
+ peerDependencies:
+ postcss: '>4 <9'
+
+ postcss-selector-parser@6.1.2:
+ resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
+ engines: {node: '>=4'}
+
+ postcss-value-parser@4.2.0:
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+
+ postcss@5.2.18:
+ resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==}
+ engines: {node: '>=0.12'}
+
+ postcss@8.5.10:
+ resolution: {integrity: sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ posthtml-parser@0.2.1:
+ resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==}
+
+ posthtml-rename-id@1.0.12:
+ resolution: {integrity: sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==}
+
+ posthtml-render@1.4.0:
+ resolution: {integrity: sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==}
+ engines: {node: '>=10'}
+
+ posthtml-svg-mode@1.0.3:
+ resolution: {integrity: sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==}
+
+ posthtml@0.9.2:
+ resolution: {integrity: sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==}
+ engines: {node: '>=0.10.0'}
+
+ preact@10.29.1:
+ resolution: {integrity: sha512-gQCLc/vWroE8lIpleXtdJhTFDogTdZG9AjMUpVkDf2iTCNwYNWA+u16dL41TqUDJO4gm2IgrcMv3uTpjd4Pwmg==}
+
+ prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
+ prettier-linter-helpers@1.0.1:
+ resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==}
+ engines: {node: '>=6.0.0'}
+
+ prettier@2.8.8:
+ resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+
+ printj@1.1.2:
+ resolution: {integrity: sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==}
+ engines: {node: '>=0.8'}
+ hasBin: true
+
+ prismjs@1.30.0:
+ resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==}
+ engines: {node: '>=6'}
+
+ process-nextick-args@2.0.1:
+ resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+
+ process@0.11.10:
+ resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
+ engines: {node: '>= 0.6.0'}
+
+ process@0.5.2:
+ resolution: {integrity: sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA==}
+ engines: {node: '>= 0.6.0'}
+
+ prop-types@15.8.1:
+ resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
+
+ protobufjs@8.3.0:
+ resolution: {integrity: sha512-JpJpFaR7yKNb6WqKvJJ1MLbiuIQWQnbUUb06nDtf2/i8YWYYLEfP6xf9BwSJoJQg1wAy61EQB8dssQg64oX4aA==}
+ engines: {node: '>=12.0.0'}
+
+ protocol-buffers-schema@3.6.1:
+ resolution: {integrity: sha512-VG2K63Igkiv9p76tk1lilczEK1cT+kCjKtkdhw1dQZV3k3IXJbd3o6Ho8b9zJZaHSnT2hKe4I+ObmX9w6m5SmQ==}
+
+ proxy-from-env@2.1.0:
+ resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==}
+ engines: {node: '>=10'}
+
+ punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
+
+ q@1.5.1:
+ resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==}
+ engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
+ deprecated: |-
+ You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.
+
+ (For a CapTP with native promises, see @endo/eventual-send and @endo/captp)
+
+ query-string@4.3.4:
+ resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==}
+ engines: {node: '>=0.10.0'}
+
+ queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+ quick-lru@4.0.1:
+ resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
+ engines: {node: '>=8'}
+
+ quick-lru@6.1.2:
+ resolution: {integrity: sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==}
+ engines: {node: '>=12'}
+
+ quickselect@1.1.1:
+ resolution: {integrity: sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==}
+
+ quickselect@2.0.0:
+ resolution: {integrity: sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==}
+
+ quickselect@3.0.0:
+ resolution: {integrity: sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==}
+
+ raf-schd@4.0.3:
+ resolution: {integrity: sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==}
+
+ range-parser@1.2.1:
+ resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
+ engines: {node: '>= 0.6'}
+
+ rbush@2.0.2:
+ resolution: {integrity: sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA==}
+
+ rbush@3.0.1:
+ resolution: {integrity: sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==}
+
+ rbush@4.0.1:
+ resolution: {integrity: sha512-IP0UpfeWQujYC8Jg162rMNc01Rf0gWMMAb2Uxus/Q0qOFw4lCcq6ZnQEZwUoJqWyUGJ9th7JjwI4yIWo+uvoAQ==}
+
+ rc-dropdown@4.2.1:
+ resolution: {integrity: sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==}
+ peerDependencies:
+ react: '>=16.11.0'
+ react-dom: '>=16.11.0'
+
+ rc-menu@9.16.1:
+ resolution: {integrity: sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-motion@2.9.5:
+ resolution: {integrity: sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-overflow@1.5.0:
+ resolution: {integrity: sha512-Lm/v9h0LymeUYJf0x39OveU52InkdRXqnn2aYXfWmo8WdOonIKB2kfau+GF0fWq6jPgtdO9yMqveGcK6aIhJmg==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-resize-observer@1.4.3:
+ resolution: {integrity: sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-util@5.44.4:
+ resolution: {integrity: sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ rc-virtual-list@3.19.2:
+ resolution: {integrity: sha512-Ys6NcjwGkuwkeaWBDqfI3xWuZ7rDiQXlH1o2zLfFzATfEgXcqpk8CkgMfbJD81McqjcJVez25a3kPxCR807evA==}
+ engines: {node: '>=8.x'}
+ peerDependencies:
+ react: '>=16.9.0'
+ react-dom: '>=16.9.0'
+
+ react-beautiful-dnd@13.1.1:
+ resolution: {integrity: sha512-0Lvs4tq2VcrEjEgDXHjT98r+63drkKEgqyxdA7qD3mvKwga6a5SscbdLPO2IExotU1jW8L0Ksdl0Cj2AF67nPQ==}
+ deprecated: 'react-beautiful-dnd is now deprecated. Context and options: https://github.com/atlassian/react-beautiful-dnd/issues/2672'
+ peerDependencies:
+ react: ^16.8.5 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.5 || ^17.0.0 || ^18.0.0
+
+ react-dom@18.3.1:
+ resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
+ peerDependencies:
+ react: ^18.3.1
+
+ react-draggable@4.7.0:
+ resolution: {integrity: sha512-kTpANmKWVnFXiZ76Ag2ZowiFStuBYnJ606PI1TbUsOg29/400/JNIxI9+CuenhiAqFuXWJffz6F4UI3R51kUug==}
+ peerDependencies:
+ react: '>= 16.3.0'
+ react-dom: '>= 16.3.0'
+
+ react-grid-layout@1.5.3:
+ resolution: {integrity: sha512-KaG6IbjD6fYhagUtIvOzhftXG+ViKZjCjADe86X1KHl7C/dsBN2z0mi14nbvZKTkp0RKiil9RPcJBgq3LnoA8g==}
+ peerDependencies:
+ react: '>= 16.3.0'
+ react-dom: '>= 16.3.0'
+
+ react-is@16.13.1:
+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
+
+ react-is@17.0.2:
+ resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
+
+ react-is@18.3.1:
+ resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
+
+ react-redux@7.2.9:
+ resolution: {integrity: sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==}
+ peerDependencies:
+ react: ^16.8.3 || ^17 || ^18
+ react-dom: '*'
+ react-native: '*'
+ peerDependenciesMeta:
+ react-dom:
+ optional: true
+ react-native:
+ optional: true
+
+ react-remove-scroll-bar@2.3.8:
+ resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-remove-scroll@2.7.2:
+ resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-resizable@3.2.0:
+ resolution: {integrity: sha512-3NKQ0SLZV7rs3LQHeXlOzDSRQfFrkX6TVet77/Qk03zqiZyee37b7N8/gwDJAA8UUjRz7PdWCCy49hcso45SMQ==}
+ peerDependencies:
+ react: '>= 16.3'
+ react-dom: '>= 16.3'
+
+ react-style-singleton@2.2.3:
+ resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ react-transition-group@4.4.5:
+ resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==}
+ peerDependencies:
+ react: '>=16.6.0'
+ react-dom: '>=16.6.0'
+
+ react@18.3.1:
+ resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
+ engines: {node: '>=0.10.0'}
+
+ read-cache@1.0.0:
+ resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
+
+ read-pkg-up@7.0.1:
+ resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
+ engines: {node: '>=8'}
+
+ read-pkg@5.2.0:
+ resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
+ engines: {node: '>=8'}
+
+ readable-stream@2.3.8:
+ resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
+
+ readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+ engines: {node: '>= 6'}
+
+ readdir-glob@1.1.3:
+ resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==}
+
+ readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+
+ readdirp@4.1.2:
+ resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
+ engines: {node: '>= 14.18.0'}
+
+ redent@3.0.0:
+ resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
+ engines: {node: '>=8'}
+
+ redux@4.2.1:
+ resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==}
+
+ reference-spec-reader@0.2.0:
+ resolution: {integrity: sha512-q0mfCi5yZSSHXpCyxjgQeaORq3tvDsxDyzaadA/5+AbAUwRyRuuTh0aRQuE/vAOt/qzzxidJ5iDeu1cLHaNBlQ==}
+
+ reflect.getprototypeof@1.0.10:
+ resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
+ engines: {node: '>= 0.4'}
+
+ regenerator-runtime@0.11.1:
+ resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==}
+
+ regex-not@1.0.2:
+ resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==}
+ engines: {node: '>=0.10.0'}
+
+ regexp-util@2.0.3:
+ resolution: {integrity: sha512-GP6h9OgJmhAZpb3dbNbXTfRWVnGcoMhWRZv/HxgM4/qCVqs1P9ukQdYxaUhjWBSAs9oJ/uPXUUvGT1VMe0Bs0Q==}
+ engines: {node: '>=16'}
+
+ regexp.prototype.flags@1.5.4:
+ resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
+ engines: {node: '>= 0.4'}
+
+ repeat-element@1.1.4:
+ resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==}
+ engines: {node: '>=0.10.0'}
+
+ repeat-string@1.6.1:
+ resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
+ engines: {node: '>=0.10'}
+
+ require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+
+ resize-observer-polyfill@1.5.1:
+ resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
+
+ resolve-from@4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+
+ resolve-from@5.0.0:
+ resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
+ engines: {node: '>=8'}
+
+ resolve-global@1.0.0:
+ resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==}
+ engines: {node: '>=8'}
+
+ resolve-protobuf-schema@2.1.0:
+ resolution: {integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==}
+
+ resolve-url@0.2.1:
+ resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==}
+ deprecated: https://github.com/lydell/resolve-url#deprecated
+
+ resolve@1.22.12:
+ resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==}
+ engines: {node: '>= 0.4'}
+ hasBin: true
+
+ ret@0.1.15:
+ resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
+ engines: {node: '>=0.12'}
+
+ reusify@1.1.0:
+ resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+ rimraf@2.7.1:
+ resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
+ deprecated: Rimraf versions prior to v4 are no longer supported
+ hasBin: true
+
+ rimraf@3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ deprecated: Rimraf versions prior to v4 are no longer supported
+ hasBin: true
+
+ robust-predicates@2.0.4:
+ resolution: {integrity: sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==}
+
+ robust-predicates@3.0.3:
+ resolution: {integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==}
+
+ rollup-plugin-external-globals@0.6.1:
+ resolution: {integrity: sha512-mlp3KNa5sE4Sp9UUR2rjBrxjG79OyZAh/QC18RHIjM+iYkbBwNXSo8DHRMZWtzJTrH8GxQ+SJvCTN3i14uMXIA==}
+ peerDependencies:
+ rollup: ^2.25.0
+
+ rollup@3.30.0:
+ resolution: {integrity: sha512-kQvGasUgN+AlWGliFn2POSajRQEsULVYFGTvOZmK06d7vCD+YhZztt70kGk3qaeAXeWYL5eO7zx+rAubBc55eA==}
+ engines: {node: '>=14.18.0', npm: '>=8.0.0'}
+ hasBin: true
+
+ run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+
+ rust-result@1.0.0:
+ resolution: {integrity: sha512-6cJzSBU+J/RJCF063onnQf0cDUOHs9uZI1oroSGnHOph+CQTIJ5Pp2hK5kEQq1+7yE/EEWfulSNXAQ2jikPthA==}
+
+ rxjs@7.8.2:
+ resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==}
+
+ safe-array-concat@1.1.4:
+ resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==}
+ engines: {node: '>=0.4'}
+
+ safe-buffer@5.1.2:
+ resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+
+ safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+ safe-json-parse@4.0.0:
+ resolution: {integrity: sha512-RjZPPHugjK0TOzFrLZ8inw44s9bKox99/0AZW9o/BEQVrJfhI+fIHMErnPyRa89/yRXUUr93q+tiN6zhoVV4wQ==}
+
+ safe-push-apply@1.0.0:
+ resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
+ engines: {node: '>= 0.4'}
+
+ safe-regex-test@1.1.0:
+ resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
+ engines: {node: '>= 0.4'}
+
+ safe-regex@1.1.0:
+ resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==}
+
+ sass@1.99.0:
+ resolution: {integrity: sha512-kgW13M54DUB7IsIRM5LvJkNlpH+WhMpooUcaWGFARkF1Tc82v9mIWkCbCYf+MBvpIUBSeSOTilpZjEPr2VYE6Q==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+
+ sax@1.6.0:
+ resolution: {integrity: sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==}
+ engines: {node: '>=11.0.0'}
+
+ saxes@5.0.1:
+ resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==}
+ engines: {node: '>=10'}
+
+ scheduler@0.23.2:
+ resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
+
+ screenfull@6.0.2:
+ resolution: {integrity: sha512-AQdy8s4WhNvUZ6P8F6PB21tSPIYKniic+Ogx0AacBMjKP1GUHN2E9URxQHtCusiwxudnCKkdy4GrHXPPJSkCCw==}
+ engines: {node: ^14.13.1 || >=16.0.0}
+
+ scroll-into-view-if-needed@2.2.31:
+ resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
+
+ semver@5.7.2:
+ resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
+ hasBin: true
+
+ semver@7.3.7:
+ resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ semver@7.7.4:
+ resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ send@0.19.2:
+ resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==}
+ engines: {node: '>= 0.8.0'}
+
+ serve-static@1.16.3:
+ resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==}
+ engines: {node: '>= 0.8.0'}
+
+ set-function-length@1.2.2:
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
+ engines: {node: '>= 0.4'}
+
+ set-function-name@2.0.2:
+ resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
+ engines: {node: '>= 0.4'}
+
+ set-proto@1.0.0:
+ resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
+ engines: {node: '>= 0.4'}
+
+ set-value@2.0.1:
+ resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==}
+ engines: {node: '>=0.10.0'}
+
+ setimmediate@1.0.5:
+ resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
+
+ setprototypeof@1.2.0:
+ resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
+
+ shallow-equal@1.2.1:
+ resolution: {integrity: sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==}
+
+ shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+
+ shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+
+ side-channel-list@1.0.1:
+ resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==}
+ engines: {node: '>= 0.4'}
+
+ side-channel-map@1.0.1:
+ resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
+ engines: {node: '>= 0.4'}
+
+ side-channel-weakmap@1.0.2:
+ resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
+ engines: {node: '>= 0.4'}
+
+ side-channel@1.1.0:
+ resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
+ engines: {node: '>= 0.4'}
+
+ signal-exit@3.0.7:
+ resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+
+ skmeans@0.9.7:
+ resolution: {integrity: sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg==}
+
+ slash@3.0.0:
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+ engines: {node: '>=8'}
+
+ slate-history@0.66.0:
+ resolution: {integrity: sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==}
+ peerDependencies:
+ slate: '>=0.65.3'
+
+ slate@0.72.8:
+ resolution: {integrity: sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==}
+
+ snabbdom@3.6.3:
+ resolution: {integrity: sha512-W2lHLLw2qR2Vv0DcMmcxXqcfdBaIcoN+y/86SmHv8fn4DazEQSH6KN3TjZcWvwujW56OHiiirsbHWZb4vx/0fg==}
+ engines: {node: '>=12.17.0'}
+
+ snapdragon-node@2.1.1:
+ resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
+ engines: {node: '>=0.10.0'}
+
+ snapdragon-util@3.0.1:
+ resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==}
+ engines: {node: '>=0.10.0'}
+
+ snapdragon@0.8.2:
+ resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==}
+ engines: {node: '>=0.10.0'}
+
+ sonner@2.0.7:
+ resolution: {integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==}
+ peerDependencies:
+ react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+
+ sortablejs@1.10.2:
+ resolution: {integrity: sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A==}
+
+ sortablejs@1.15.7:
+ resolution: {integrity: sha512-Kk8wLQPlS+yi1ZEf48a4+fzHa4yxjC30M/Sr2AnQu+f/MPwvvX9XjZ6OWejiz8crBsLwSq8GHqaxaET7u6ux0A==}
+
+ source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ engines: {node: '>=0.10.0'}
+
+ source-map-resolve@0.5.3:
+ resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==}
+ deprecated: See https://github.com/lydell/source-map-resolve#deprecated
+
+ source-map-url@0.4.1:
+ resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
+ deprecated: See https://github.com/lydell/source-map-url#deprecated
+
+ source-map@0.5.7:
+ resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
+ engines: {node: '>=0.10.0'}
+
+ source-map@0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+
+ sourcemap-codec@1.4.8:
+ resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
+ deprecated: Please use @jridgewell/sourcemap-codec instead
+
+ spdx-correct@3.2.0:
+ resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
+
+ spdx-exceptions@2.5.0:
+ resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
+
+ spdx-expression-parse@3.0.1:
+ resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+
+ spdx-license-ids@3.0.23:
+ resolution: {integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==}
+
+ splaytree-ts@1.0.2:
+ resolution: {integrity: sha512-0kGecIZNIReCSiznK3uheYB8sbstLjCZLiwcQwbmLhgHJj2gz6OnSPkVzJQCMnmEz1BQ4gPK59ylhBoEWOhGNA==}
+
+ split-string@3.1.0:
+ resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
+ engines: {node: '>=0.10.0'}
+
+ split2@3.2.2:
+ resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
+
+ ssf@0.11.2:
+ resolution: {integrity: sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==}
+ engines: {node: '>=0.8'}
+
+ ssr-window@3.0.0:
+ resolution: {integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==}
+
+ stable@0.1.8:
+ resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
+ deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
+
+ static-extend@0.1.2:
+ resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==}
+ engines: {node: '>=0.10.0'}
+
+ statuses@2.0.2:
+ resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==}
+ engines: {node: '>= 0.8'}
+
+ stop-iteration-iterator@1.1.0:
+ resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
+ engines: {node: '>= 0.4'}
+
+ strict-uri-encode@1.1.0:
+ resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==}
+ engines: {node: '>=0.10.0'}
+
+ string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+
+ string.prototype.trim@1.2.10:
+ resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trimend@1.0.9:
+ resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trimstart@1.0.8:
+ resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
+ engines: {node: '>= 0.4'}
+
+ string_decoder@1.1.1:
+ resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
+
+ string_decoder@1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+
+ strip-ansi@3.0.1:
+ resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
+ engines: {node: '>=0.10.0'}
+
+ strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+
+ strip-final-newline@2.0.0:
+ resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
+ engines: {node: '>=6'}
+
+ strip-indent@3.0.0:
+ resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
+ engines: {node: '>=8'}
+
+ strip-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+
+ stylis@4.4.0:
+ resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==}
+
+ sucrase@3.35.1:
+ resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ hasBin: true
+
+ supports-color@2.0.0:
+ resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==}
+ engines: {node: '>=0.8.0'}
+
+ supports-color@3.2.3:
+ resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==}
+ engines: {node: '>=0.8.0'}
+
+ supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+
+ supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
+ svg-baker@1.7.0:
+ resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==}
+
+ svgo@2.8.2:
+ resolution: {integrity: sha512-TyzE4NVGLUFy+H/Uy4N6c3G0HEeprsVfge6Lmq+0FdQQ/zqoVYB62IsBZORsiL+o96s6ff/V6/3UQo/C0cgCAA==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+
+ sweepline-intersections@1.5.0:
+ resolution: {integrity: sha512-AoVmx72QHpKtItPu72TzFL+kcYjd67BPLDoR0LarIk+xyaRg+pDTMFXndIEvZf9xEKnJv6JdhgRMnocoG0D3AQ==}
+
+ tailwind-merge@2.6.0:
+ resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==}
+
+ tailwindcss@3.4.19:
+ resolution: {integrity: sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+
+ tar-stream@2.2.0:
+ resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
+ engines: {node: '>=6'}
+
+ text-extensions@1.9.0:
+ resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==}
+ engines: {node: '>=0.10'}
+
+ text-table@0.2.0:
+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
+
+ thenify-all@1.6.0:
+ resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
+ engines: {node: '>=0.8'}
+
+ thenify@3.3.1:
+ resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
+
+ throttle-debounce@5.0.2:
+ resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==}
+ engines: {node: '>=12.22'}
+
+ through2@4.0.2:
+ resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
+
+ through@2.3.8:
+ resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
+
+ tiny-binary-search@1.0.3:
+ resolution: {integrity: sha512-STSHX/L5nI9WTLv6wrzJbAPbO7OIISX83KFBh2GVbX1Uz/vgZOU/ANn/8iV6t35yMTpoPzzO+3OQid3mifE0CA==}
+
+ tiny-invariant@1.3.3:
+ resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
+
+ tiny-warning@1.0.3:
+ resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
+
+ tinyglobby@0.2.16:
+ resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==}
+ engines: {node: '>=12.0.0'}
+
+ tinyqueue@2.0.3:
+ resolution: {integrity: sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==}
+
+ tmp@0.2.7:
+ resolution: {integrity: sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==}
+ engines: {node: '>=14.14'}
+
+ to-object-path@0.3.0:
+ resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==}
+ engines: {node: '>=0.10.0'}
+
+ to-regex-range@2.1.1:
+ resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==}
+ engines: {node: '>=0.10.0'}
+
+ to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+
+ to-regex@3.0.2:
+ resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==}
+ engines: {node: '>=0.10.0'}
+
+ toidentifier@1.0.1:
+ resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
+ engines: {node: '>=0.6'}
+
+ topojson-client@3.1.0:
+ resolution: {integrity: sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==}
+ hasBin: true
+
+ topojson-server@3.0.1:
+ resolution: {integrity: sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw==}
+ hasBin: true
+
+ traverse@0.3.9:
+ resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==}
+
+ traverse@0.6.11:
+ resolution: {integrity: sha512-vxXDZg8/+p3gblxB6BhhG5yWVn1kGRlaL8O78UDXc3wRnPizB5g83dcvWV1jpDMIPnjZjOFuxlMmE82XJ4407w==}
+ engines: {node: '>= 0.4'}
+
+ trigram-utils@2.0.1:
+ resolution: {integrity: sha512-nfWIXHEaB+HdyslAfMxSqWKDdmqY9I32jS7GnqpdWQnLH89r6A5sdk3fDVYqGAZ0CrT8ovAFSAo6HRiWcWNIGQ==}
+
+ trim-newlines@3.0.1:
+ resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
+ engines: {node: '>=8'}
+
+ ts-interface-checker@0.1.13:
+ resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
+
+ ts-node@10.9.2:
+ resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
+ hasBin: true
+ peerDependencies:
+ '@swc/core': '>=1.2.50'
+ '@swc/wasm': '>=1.2.50'
+ '@types/node': '*'
+ typescript: '>=2.7'
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ '@swc/wasm':
+ optional: true
+
+ tslib@1.14.1:
+ resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
+
+ tslib@2.3.0:
+ resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==}
+
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
+ tsml@1.0.1:
+ resolution: {integrity: sha512-3KmepnH9SUsoOVtg013CRrL7c+AK7ECaquAsJdvu4288EDJuraqBlP4PDXT/rLEJ9YDn4jqLAzRJsnFPx+V6lg==}
+ deprecated: no longer maintained
+
+ tsutils@3.21.0:
+ resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
+ engines: {node: '>= 6'}
+ peerDependencies:
+ typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
+
+ type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+
+ type-fest@0.18.1:
+ resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}
+ engines: {node: '>=10'}
+
+ type-fest@0.20.2:
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
+ engines: {node: '>=10'}
+
+ type-fest@0.6.0:
+ resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
+ engines: {node: '>=8'}
+
+ type-fest@0.8.1:
+ resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
+ engines: {node: '>=8'}
+
+ type@2.7.3:
+ resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==}
+
+ typed-array-buffer@1.0.3:
+ resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-length@1.0.3:
+ resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-offset@1.0.4:
+ resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-length@1.0.7:
+ resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
+ engines: {node: '>= 0.4'}
+
+ typedarray.prototype.slice@1.0.5:
+ resolution: {integrity: sha512-q7QNVDGTdl702bVFiI5eY4l/HkgCM6at9KhcFbgUAzezHFbOVy4+0O/lCjsABEQwbZPravVfBIiBVGo89yzHFg==}
+ engines: {node: '>= 0.4'}
+
+ typescript@4.9.5:
+ resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
+ engines: {node: '>=4.2.0'}
+ hasBin: true
+
+ typescript@6.0.3:
+ resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ unbox-primitive@1.1.0:
+ resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
+ engines: {node: '>= 0.4'}
+
+ unicode-regex@4.2.0:
+ resolution: {integrity: sha512-fEYz7CCnvHDAdrb8OYAP7qlQCWzXBO5cHXQ3XI+HoZaBpiAwyC6b2nixMGl91yrDYEIRm7NDskgTvnLZ7mqrKQ==}
+ engines: {node: '>=16'}
+
+ unicount@1.1.0:
+ resolution: {integrity: sha512-RlwWt1ywVW4WErPGAVHw/rIuJ2+MxvTME0siJ6lk9zBhpDfExDbspe6SRlWT3qU6AucNjotPl9qAJRVjP7guCQ==}
+
+ union-value@1.0.1:
+ resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
+ engines: {node: '>=0.10.0'}
+
+ universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
+ engines: {node: '>= 10.0.0'}
+
+ unset-value@1.0.0:
+ resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==}
+ engines: {node: '>=0.10.0'}
+
+ unzipit@2.0.0:
+ resolution: {integrity: sha512-DVeVIWUZCAQPNzm5sB0hpsG1GygTTdBnzNtYYEpInkttx5evkyqRgZi6rTczoySqp8hO5jHVKzrH0f23X8FZLg==}
+ engines: {node: '>=18'}
+
+ unzipper@0.10.14:
+ resolution: {integrity: sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==}
+
+ update-browserslist-db@1.2.3:
+ resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ uri-js@4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+
+ urijs@1.19.11:
+ resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==}
+
+ urix@0.1.0:
+ resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
+ deprecated: Please see https://github.com/lydell/urix#deprecated
+
+ url-toolkit@2.2.5:
+ resolution: {integrity: sha512-mtN6xk+Nac+oyJ/PrI7tzfmomRVNFIWKUbG8jdYFt52hxbiReFAXIjYskvu64/dvuW71IcB7lV8l0HvZMac6Jg==}
+
+ use-callback-ref@1.3.3:
+ resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ use-memo-one@1.1.3:
+ resolution: {integrity: sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+
+ use-sidecar@1.1.3:
+ resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ use@3.1.1:
+ resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==}
+ engines: {node: '>=0.10.0'}
+
+ util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+ uuid@13.0.2:
+ resolution: {integrity: sha512-vzi9uRZ926x4XV73S/4qQaTwPXM2JBj6/6lI/byHH1jOpCzb0zDbfytgA9LcN/hzb2l7WQSQnxITOVx5un/wGw==}
+ hasBin: true
+
+ uuid@8.3.2:
+ resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
+ hasBin: true
+
+ v8-compile-cache-lib@3.0.1:
+ resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
+
+ validate-npm-package-license@3.0.4:
+ resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+
+ vary@1.1.2:
+ resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
+ engines: {node: '>= 0.8'}
+
+ video.js@6.13.0:
+ resolution: {integrity: sha512-36/JR/GhPQSZj0o+GNbhcEYv/b0SkV9SQsjlodAnzMQYN0TA7VhmqrKPYMCi1NGRYu7S9W3OaFCFoUxkYfSVlg==}
+
+ video.js@8.23.7:
+ resolution: {integrity: sha512-cG4HOygYt+Z8j6Sf5DuK6OgEOoM+g9oGP6vpqoZRaD13aHE4PMITbyjJUXZcIQbgB0wJEadBRaVm5lJIzo2jAA==}
+
+ videojs-contrib-hls@5.15.0:
+ resolution: {integrity: sha512-18zbMYZ0XRBKTPEayA9bFTWWrqhT9b4G8+zf0czJLD7Epe5PcK1I/3dflTHQeQ5rwlWir+/XnFU3sMg/B2MMcw==}
+ engines: {node: '>= 0.10.12'}
+
+ videojs-contrib-media-sources@4.7.2:
+ resolution: {integrity: sha512-e6iCHWBFuV05EGo7v+pS9iepObXnJ9joms467gzi8ZjpKVb3ifha9M0Ja24Rd8JfvYpzjltsgDVtGFDvIg4hQQ==}
+
+ videojs-contrib-quality-levels@4.1.0:
+ resolution: {integrity: sha512-TfrXJJg1Bv4t6TOCMEVMwF/CoS8iENYsWNKip8zfhB5kTcegiFYezEA0eHAJPU64ZC8NQbxQgOwAsYU8VXbOWA==}
+ engines: {node: '>=16', npm: '>=8'}
+ peerDependencies:
+ video.js: ^8
+
+ videojs-font@2.1.0:
+ resolution: {integrity: sha512-zFqWpLrXf1q8NtYx5qtZhMC6SLUFScDmR6j+UGPogobxR21lvXShhnzcNNMdOxJUuFLiToJ/BPpFUQwX4xhpvA==}
+
+ videojs-font@4.2.0:
+ resolution: {integrity: sha512-YPq+wiKoGy2/M7ccjmlvwi58z2xsykkkfNMyIg4xb7EZQQNwB71hcSsB3o75CqQV7/y5lXkXhI/rsGAS7jfEmQ==}
+
+ videojs-ie8@1.1.2:
+ resolution: {integrity: sha512-0Zb2T4MLkpfZbeGMK/Z93b8Lrepr+rLFoHgQV1CoDeFqXvH7b+Vsd/VHoILGxQrgCSHFQ7mAODR6oyMjuiD4/g==}
+
+ videojs-vtt.js@0.12.6:
+ resolution: {integrity: sha512-XFXeGBQiljnElMhwCcZst0RDbZn2n8LU7ZScXryd3a00OaZsHAjdZu/7/RdSr7Z1jHphd45FnOvOQkGK4YrWCQ==}
+
+ videojs-vtt.js@0.15.5:
+ resolution: {integrity: sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ==}
+
+ vite-plugin-cesium@1.2.22:
+ resolution: {integrity: sha512-OnS+VKNGck4kUu4/67Fdfhz0/zF9mDVNUp9hUWtX19C38O0mJsJy2MH1ev2QcrVLf6VieJ7vCGxkLchdB1n1HQ==}
+ peerDependencies:
+ cesium: ^1.95.0
+ vite: '>=2.7.1'
+
+ vite-plugin-svg-icons@2.0.1:
+ resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==}
+ peerDependencies:
+ vite: '>=2.0.0'
+
+ vite@4.5.14:
+ resolution: {integrity: sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': '>= 14'
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+
+ vscode-uri@3.1.0:
+ resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
+
+ vue-ant-modal-enhance@1.2.2:
+ resolution: {integrity: sha512-gLozUM4K+pESYcV5ljsc9rAOvy94jL4fId4oNfuxu2pT/hx1HIGnQixi08yKV4FoBOwiFe4cd6dPVqCQLNAANQ==}
+ peerDependencies:
+ ant-design-vue: ^3.0.0 || ^4.0.0
+ vue: ^3.2.0
+
+ vue-component-type-helpers@3.2.7:
+ resolution: {integrity: sha512-+gPp5YGmhfsj1IN+xUo7y0fb4clfnOiiUA39y07yW1VzCRjzVgwLbtmdWlghh7mXrPsEaYc7rrIir/HT6C8vYQ==}
+
+ vue-demi@0.14.10:
+ resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==}
+ engines: {node: '>=12'}
+ hasBin: true
+ peerDependencies:
+ '@vue/composition-api': ^1.0.0-rc.1
+ vue: ^3.0.0-0 || ^2.6.0
+ peerDependenciesMeta:
+ '@vue/composition-api':
+ optional: true
+
+ vue-eslint-parser@8.3.0:
+ resolution: {integrity: sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ vue-i18n@9.14.5:
+ resolution: {integrity: sha512-0jQ9Em3ymWngyiIkj0+c/k7WgaPO+TNzjKSNq9BvBQaKJECqn9cd9fL4tkDhB5G1QBskGl9YxxbDAhgbFtpe2g==}
+ engines: {node: '>= 16'}
+ deprecated: v9 and v10 no longer supported. please migrate to v11. about maintenance status, see https://vue-i18n.intlify.dev/guide/maintenance.html
+ peerDependencies:
+ vue: ^3.0.0
+
+ vue-router@4.6.4:
+ resolution: {integrity: sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==}
+ peerDependencies:
+ vue: ^3.5.0
+
+ vue-tsc@3.2.7:
+ resolution: {integrity: sha512-zc1tL3HoQni1zGTGrwBVRQb7rGP5SWdu/m4rGB6JcnAC5MT5LFZIxF7Y+EJEnt4hGF23d60rXH7gRjHGb5KQQQ==}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5.0.0'
+
+ vue-types@3.0.2:
+ resolution: {integrity: sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==}
+ engines: {node: '>=10.15.0'}
+ peerDependencies:
+ vue: ^3.0.0
+
+ vue@3.5.33:
+ resolution: {integrity: sha512-1AgChhx5w3ALgT4oK3acm2Es/7jyZhWSVUfs3rOBlGQC0rjEDkS7G4lWlJJGGNQD+BV3reCwbQrOe1mPNwKHBQ==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ vuedraggable@2.24.3:
+ resolution: {integrity: sha512-6/HDXi92GzB+Hcs9fC6PAAozK1RLt1ewPTLjK0anTYguXLAeySDmcnqE8IC0xa7shvSzRjQXq3/+dsZ7ETGF3g==}
+
+ warning@4.0.3:
+ resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==}
+
+ web-worker@1.5.0:
+ resolution: {integrity: sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==}
+
+ webwackify@0.1.6:
+ resolution: {integrity: sha512-pGcw1T3HpNnM/UTRQqqRkkkzythSLts05mB+7Gr00B+0VbL0m39dFL5g20rSIEUt9Wrpw+/8k+snxRlUFHhcqA==}
+
+ which-boxed-primitive@1.1.1:
+ resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
+ engines: {node: '>= 0.4'}
+
+ which-builtin-type@1.2.1:
+ resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
+ engines: {node: '>= 0.4'}
+
+ which-collection@1.0.2:
+ resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
+ engines: {node: '>= 0.4'}
+
+ which-typed-array@1.1.20:
+ resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==}
+ engines: {node: '>= 0.4'}
+
+ which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+
+ wildcard@1.1.2:
+ resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==}
+
+ wmf@1.0.2:
+ resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==}
+ engines: {node: '>=0.8'}
+
+ word-wrap@1.2.5:
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
+
+ word@0.3.0:
+ resolution: {integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==}
+ engines: {node: '>=0.8'}
+
+ wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+
+ wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+ wujie-vue3@1.0.29:
+ resolution: {integrity: sha512-OGt5Veyq/DtmFzHQCANmv8nZgu877u7ZjS5qjFpSrtKARKhLjID3x99D40a4pb3Kj5UmRatkV5Gn5hqOWpziZQ==}
+ peerDependencies:
+ vue: ^3.0.0
+
+ wujie@1.0.29:
+ resolution: {integrity: sha512-u7PmBT4l5ov7ciwmZNG8DLIRKrYrnXDa0LnAFgRQikJ/ZrVZYzzSNz6duzEJoj8/o46dnMy/g9Hh/PBYGbgFUw==}
+
+ xhr@2.4.0:
+ resolution: {integrity: sha512-TUbBsdAuJbX8olk9hsDwGK8P1ri1XlV+PdEWkYw+HQQbpkiBR8PLgD1F3kQDPBs9l4Px34hP9rCYAZOCCAENbw==}
+
+ xlsx-js-style@1.2.0:
+ resolution: {integrity: sha512-DDT4FXFSWfT4DXMSok/m3TvmP1gvO3dn0Eu/c+eXHW5Kzmp7IczNkxg/iEPnImbG9X0Vb8QhROda5eatSR/97Q==}
+ engines: {node: '>=0.8'}
+ hasBin: true
+
+ xlsx@0.18.5:
+ resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==}
+ engines: {node: '>=0.8'}
+ hasBin: true
+
+ xml-utils@1.10.2:
+ resolution: {integrity: sha512-RqM+2o1RYs6T8+3DzDSoTRAUfrvaejbVHcp3+thnAtDKo8LskR+HomLajEy5UjTz24rpka7AxVBRR3g2wTUkJA==}
+
+ xmlchars@2.2.0:
+ resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
+
+ xtend@4.0.2:
+ resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
+ engines: {node: '>=0.4'}
+
+ y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+
+ yallist@4.0.0:
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+
+ yaml@1.10.3:
+ resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==}
+ engines: {node: '>= 6'}
+
+ yargs-parser@20.2.9:
+ resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
+ engines: {node: '>=10'}
+
+ yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+
+ yargs@17.7.2:
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
+ engines: {node: '>=12'}
+
+ yn@3.1.1:
+ resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
+ engines: {node: '>=6'}
+
+ yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+
+ zarrita@0.7.1:
+ resolution: {integrity: sha512-Nu4liRKJES1kkIjWALXSryglJf2+WJURUxgndklfX+mTBCd0lk4MV797p00lt4NzmU3Bbdbs10uxeN8LWwPyWA==}
+
+ zip-stream@4.1.1:
+ resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==}
+ engines: {node: '>= 10'}
+
+ zrender@5.6.1:
+ resolution: {integrity: sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==}
+
+ zstddec@0.2.0:
+ resolution: {integrity: sha512-oyPnDa1X5c13+Y7mA/FDMNJrn4S8UNBe0KCqtDmor40Re7ALrPN6npFwyYVRRh+PqozZQdeg23QtbcamZnG5rA==}
+
+snapshots:
+
+ '@alloc/quick-lru@5.2.0': {}
+
+ '@ant-design/colors@6.0.0':
+ dependencies:
+ '@ctrl/tinycolor': 3.6.1
+
+ '@ant-design/icons-svg@4.4.2': {}
+
+ '@ant-design/icons-vue@7.0.1(vue@3.5.33(typescript@6.0.3))':
+ dependencies:
+ '@ant-design/colors': 6.0.0
+ '@ant-design/icons-svg': 4.4.2
+ vue: 3.5.33(typescript@6.0.3)
+
+ '@babel/code-frame@7.29.0':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.28.5
+ js-tokens: 4.0.0
+ picocolors: 1.1.1
+
+ '@babel/helper-string-parser@7.27.1': {}
+
+ '@babel/helper-validator-identifier@7.28.5': {}
+
+ '@babel/parser@7.29.2':
+ dependencies:
+ '@babel/types': 7.29.0
+
+ '@babel/runtime@7.29.2': {}
+
+ '@babel/types@7.29.0':
+ dependencies:
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.28.5
+
+ '@better-scroll/core@2.5.1':
+ dependencies:
+ '@better-scroll/shared-utils': 2.5.1
+
+ '@better-scroll/indicators@2.5.1':
+ dependencies:
+ '@better-scroll/core': 2.5.1
+
+ '@better-scroll/infinity@2.5.1':
+ dependencies:
+ '@better-scroll/core': 2.5.1
+
+ '@better-scroll/mouse-wheel@2.5.1':
+ dependencies:
+ '@better-scroll/core': 2.5.1
+
+ '@better-scroll/movable@2.5.1':
+ dependencies:
+ '@better-scroll/core': 2.5.1
+
+ '@better-scroll/nested-scroll@2.5.1':
+ dependencies:
+ '@better-scroll/core': 2.5.1
+
+ '@better-scroll/observe-dom@2.5.1':
+ dependencies:
+ '@better-scroll/core': 2.5.1
+
+ '@better-scroll/observe-image@2.5.1':
+ dependencies:
+ '@better-scroll/core': 2.5.1
+
+ '@better-scroll/pull-down@2.5.1':
+ dependencies:
+ '@better-scroll/core': 2.5.1
+
+ '@better-scroll/pull-up@2.5.1':
+ dependencies:
+ '@better-scroll/core': 2.5.1
+
+ '@better-scroll/scroll-bar@2.5.1':
+ dependencies:
+ '@better-scroll/core': 2.5.1
+
+ '@better-scroll/shared-utils@2.5.1': {}
+
+ '@better-scroll/slide@2.5.1':
+ dependencies:
+ '@better-scroll/core': 2.5.1
+
+ '@better-scroll/wheel@2.5.1':
+ dependencies:
+ '@better-scroll/core': 2.5.1
+
+ '@better-scroll/zoom@2.5.1':
+ dependencies:
+ '@better-scroll/core': 2.5.1
+
+ '@cesium/engine@25.0.0':
+ dependencies:
+ '@cesium/wasm-splats': 0.1.0-alpha.2
+ '@spz-loader/core': 0.3.1
+ '@tweenjs/tween.js': 25.0.0
+ '@zip.js/zip.js': 2.8.26
+ autolinker: 4.1.5
+ bitmap-sdf: 1.0.4
+ dompurify: 3.4.3
+ draco3d: 1.5.7
+ earcut: 3.0.2
+ grapheme-splitter: 1.0.4
+ jsep: 1.4.0
+ kdbush: 4.0.2
+ ktx-parse: 1.1.0
+ lerc: 2.0.0
+ mersenne-twister: 1.1.0
+ meshoptimizer: 1.1.1
+ pako: 2.1.0
+ protobufjs: 8.3.0
+ rbush: 4.0.1
+ topojson-client: 3.1.0
+ urijs: 1.19.11
+
+ '@cesium/wasm-splats@0.1.0-alpha.2': {}
+
+ '@cesium/widgets@15.0.0':
+ dependencies:
+ '@cesium/engine': 25.0.0
+ nosleep.js: 0.12.0
+
+ '@commitlint/cli@16.3.0':
+ dependencies:
+ '@commitlint/format': 16.2.1
+ '@commitlint/lint': 16.2.4
+ '@commitlint/load': 16.3.0
+ '@commitlint/read': 16.2.1
+ '@commitlint/types': 16.2.1
+ lodash: 4.18.1
+ resolve-from: 5.0.0
+ resolve-global: 1.0.0
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - '@swc/core'
+ - '@swc/wasm'
+
+ '@commitlint/config-conventional@16.2.4':
+ dependencies:
+ conventional-changelog-conventionalcommits: 4.6.3
+
+ '@commitlint/config-validator@16.2.1':
+ dependencies:
+ '@commitlint/types': 16.2.1
+ ajv: 6.14.0
+
+ '@commitlint/ensure@16.2.1':
+ dependencies:
+ '@commitlint/types': 16.2.1
+ lodash: 4.18.1
+
+ '@commitlint/execute-rule@16.2.1': {}
+
+ '@commitlint/format@16.2.1':
+ dependencies:
+ '@commitlint/types': 16.2.1
+ chalk: 4.1.2
+
+ '@commitlint/is-ignored@16.2.4':
+ dependencies:
+ '@commitlint/types': 16.2.1
+ semver: 7.3.7
+
+ '@commitlint/lint@16.2.4':
+ dependencies:
+ '@commitlint/is-ignored': 16.2.4
+ '@commitlint/parse': 16.2.1
+ '@commitlint/rules': 16.2.4
+ '@commitlint/types': 16.2.1
+
+ '@commitlint/load@16.3.0':
+ dependencies:
+ '@commitlint/config-validator': 16.2.1
+ '@commitlint/execute-rule': 16.2.1
+ '@commitlint/resolve-extends': 16.2.1
+ '@commitlint/types': 16.2.1
+ '@types/node': 16.18.126
+ chalk: 4.1.2
+ cosmiconfig: 7.1.0
+ cosmiconfig-typescript-loader: 2.0.2(@types/node@16.18.126)(cosmiconfig@7.1.0)(typescript@4.9.5)
+ lodash: 4.18.1
+ resolve-from: 5.0.0
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - '@swc/core'
+ - '@swc/wasm'
+
+ '@commitlint/message@16.2.1': {}
+
+ '@commitlint/parse@16.2.1':
+ dependencies:
+ '@commitlint/types': 16.2.1
+ conventional-changelog-angular: 5.0.13
+ conventional-commits-parser: 3.2.4
+
+ '@commitlint/read@16.2.1':
+ dependencies:
+ '@commitlint/top-level': 16.2.1
+ '@commitlint/types': 16.2.1
+ fs-extra: 10.1.0
+ git-raw-commits: 2.0.11
+
+ '@commitlint/resolve-extends@16.2.1':
+ dependencies:
+ '@commitlint/config-validator': 16.2.1
+ '@commitlint/types': 16.2.1
+ import-fresh: 3.3.1
+ lodash: 4.18.1
+ resolve-from: 5.0.0
+ resolve-global: 1.0.0
+
+ '@commitlint/rules@16.2.4':
+ dependencies:
+ '@commitlint/ensure': 16.2.1
+ '@commitlint/message': 16.2.1
+ '@commitlint/to-lines': 16.2.1
+ '@commitlint/types': 16.2.1
+ execa: 5.1.1
+
+ '@commitlint/to-lines@16.2.1': {}
+
+ '@commitlint/top-level@16.2.1':
+ dependencies:
+ find-up: 5.0.0
+
+ '@commitlint/types@16.2.1':
+ dependencies:
+ chalk: 4.1.2
+
+ '@cspotcode/source-map-support@0.8.1':
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.9
+
+ '@ctrl/tinycolor@3.6.1': {}
+
+ '@ctrl/tinycolor@4.2.0': {}
+
+ '@element-plus/icons-vue@2.3.2(vue@3.5.33(typescript@6.0.3))':
+ dependencies:
+ vue: 3.5.33(typescript@6.0.3)
+
+ '@emotion/hash@0.9.2': {}
+
+ '@emotion/unitless@0.8.1': {}
+
+ '@esbuild/android-arm64@0.18.20':
+ optional: true
+
+ '@esbuild/android-arm@0.18.20':
+ optional: true
+
+ '@esbuild/android-x64@0.18.20':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.18.20':
+ optional: true
+
+ '@esbuild/darwin-x64@0.18.20':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.18.20':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.18.20':
+ optional: true
+
+ '@esbuild/linux-arm64@0.18.20':
+ optional: true
+
+ '@esbuild/linux-arm@0.18.20':
+ optional: true
+
+ '@esbuild/linux-ia32@0.18.20':
+ optional: true
+
+ '@esbuild/linux-loong64@0.18.20':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.18.20':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.18.20':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.18.20':
+ optional: true
+
+ '@esbuild/linux-s390x@0.18.20':
+ optional: true
+
+ '@esbuild/linux-x64@0.18.20':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.18.20':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.18.20':
+ optional: true
+
+ '@esbuild/sunos-x64@0.18.20':
+ optional: true
+
+ '@esbuild/win32-arm64@0.18.20':
+ optional: true
+
+ '@esbuild/win32-ia32@0.18.20':
+ optional: true
+
+ '@esbuild/win32-x64@0.18.20':
+ optional: true
+
+ '@eslint-community/eslint-utils@4.9.1(eslint@8.57.1)':
+ dependencies:
+ eslint: 8.57.1
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.12.2': {}
+
+ '@eslint/eslintrc@2.1.4':
+ dependencies:
+ ajv: 6.14.0
+ debug: 4.4.3
+ espree: 9.6.1
+ globals: 13.24.0
+ ignore: 5.3.2
+ import-fresh: 3.3.1
+ js-yaml: 4.1.1
+ minimatch: 3.1.5
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/js@8.57.1': {}
+
+ '@fast-csv/format@4.3.5':
+ dependencies:
+ '@types/node': 14.18.63
+ lodash.escaperegexp: 4.1.2
+ lodash.isboolean: 3.0.3
+ lodash.isequal: 4.5.0
+ lodash.isfunction: 3.0.9
+ lodash.isnil: 4.0.0
+
+ '@fast-csv/parse@4.3.6':
+ dependencies:
+ '@types/node': 14.18.63
+ lodash.escaperegexp: 4.1.2
+ lodash.groupby: 4.6.0
+ lodash.isfunction: 3.0.9
+ lodash.isnil: 4.0.0
+ lodash.isundefined: 3.0.1
+ lodash.uniq: 4.5.0
+
+ '@flatten-js/interval-tree@1.1.3': {}
+
+ '@floating-ui/core@1.7.5':
+ dependencies:
+ '@floating-ui/utils': 0.2.11
+
+ '@floating-ui/dom@1.7.6':
+ dependencies:
+ '@floating-ui/core': 1.7.5
+ '@floating-ui/utils': 0.2.11
+
+ '@floating-ui/react-dom@2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@floating-ui/dom': 1.7.6
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@floating-ui/utils@0.2.11': {}
+
+ '@humanwhocodes/config-array@0.13.0':
+ dependencies:
+ '@humanwhocodes/object-schema': 2.0.3
+ debug: 4.4.3
+ minimatch: 3.1.5
+ transitivePeerDependencies:
+ - supports-color
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
+ '@humanwhocodes/object-schema@2.0.3': {}
+
+ '@intlify/core-base@9.14.5':
+ dependencies:
+ '@intlify/message-compiler': 9.14.5
+ '@intlify/shared': 9.14.5
+
+ '@intlify/message-compiler@9.14.5':
+ dependencies:
+ '@intlify/shared': 9.14.5
+ source-map-js: 1.2.1
+
+ '@intlify/shared@9.14.5': {}
+
+ '@jridgewell/gen-mapping@0.3.13':
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@jridgewell/resolve-uri@3.1.2': {}
+
+ '@jridgewell/sourcemap-codec@1.5.5': {}
+
+ '@jridgewell/trace-mapping@0.3.31':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.5
+
+ '@jridgewell/trace-mapping@0.3.9':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.5
+
+ '@napi-rs/canvas-android-arm64@1.0.0':
+ optional: true
+
+ '@napi-rs/canvas-darwin-arm64@1.0.0':
+ optional: true
+
+ '@napi-rs/canvas-darwin-x64@1.0.0':
+ optional: true
+
+ '@napi-rs/canvas-linux-arm-gnueabihf@1.0.0':
+ optional: true
+
+ '@napi-rs/canvas-linux-arm64-gnu@1.0.0':
+ optional: true
+
+ '@napi-rs/canvas-linux-arm64-musl@1.0.0':
+ optional: true
+
+ '@napi-rs/canvas-linux-riscv64-gnu@1.0.0':
+ optional: true
+
+ '@napi-rs/canvas-linux-x64-gnu@1.0.0':
+ optional: true
+
+ '@napi-rs/canvas-linux-x64-musl@1.0.0':
+ optional: true
+
+ '@napi-rs/canvas-win32-arm64-msvc@1.0.0':
+ optional: true
+
+ '@napi-rs/canvas-win32-x64-msvc@1.0.0':
+ optional: true
+
+ '@napi-rs/canvas@1.0.0':
+ optionalDependencies:
+ '@napi-rs/canvas-android-arm64': 1.0.0
+ '@napi-rs/canvas-darwin-arm64': 1.0.0
+ '@napi-rs/canvas-darwin-x64': 1.0.0
+ '@napi-rs/canvas-linux-arm-gnueabihf': 1.0.0
+ '@napi-rs/canvas-linux-arm64-gnu': 1.0.0
+ '@napi-rs/canvas-linux-arm64-musl': 1.0.0
+ '@napi-rs/canvas-linux-riscv64-gnu': 1.0.0
+ '@napi-rs/canvas-linux-x64-gnu': 1.0.0
+ '@napi-rs/canvas-linux-x64-musl': 1.0.0
+ '@napi-rs/canvas-win32-arm64-msvc': 1.0.0
+ '@napi-rs/canvas-win32-x64-msvc': 1.0.0
+ optional: true
+
+ '@noble/ed25519@2.3.0': {}
+
+ '@noble/hashes@1.8.0': {}
+
+ '@nodelib/fs.scandir@2.1.5':
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ '@nodelib/fs.stat@2.0.5': {}
+
+ '@nodelib/fs.walk@1.2.8':
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.20.1
+
+ '@parcel/watcher-android-arm64@2.5.6':
+ optional: true
+
+ '@parcel/watcher-darwin-arm64@2.5.6':
+ optional: true
+
+ '@parcel/watcher-darwin-x64@2.5.6':
+ optional: true
+
+ '@parcel/watcher-freebsd-x64@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-arm-glibc@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-arm-musl@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-glibc@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-arm64-musl@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-x64-glibc@2.5.6':
+ optional: true
+
+ '@parcel/watcher-linux-x64-musl@2.5.6':
+ optional: true
+
+ '@parcel/watcher-win32-arm64@2.5.6':
+ optional: true
+
+ '@parcel/watcher-win32-ia32@2.5.6':
+ optional: true
+
+ '@parcel/watcher-win32-x64@2.5.6':
+ optional: true
+
+ '@parcel/watcher@2.5.6':
+ dependencies:
+ detect-libc: 2.1.2
+ is-glob: 4.0.3
+ node-addon-api: 7.1.1
+ picomatch: 4.0.4
+ optionalDependencies:
+ '@parcel/watcher-android-arm64': 2.5.6
+ '@parcel/watcher-darwin-arm64': 2.5.6
+ '@parcel/watcher-darwin-x64': 2.5.6
+ '@parcel/watcher-freebsd-x64': 2.5.6
+ '@parcel/watcher-linux-arm-glibc': 2.5.6
+ '@parcel/watcher-linux-arm-musl': 2.5.6
+ '@parcel/watcher-linux-arm64-glibc': 2.5.6
+ '@parcel/watcher-linux-arm64-musl': 2.5.6
+ '@parcel/watcher-linux-x64-glibc': 2.5.6
+ '@parcel/watcher-linux-x64-musl': 2.5.6
+ '@parcel/watcher-win32-arm64': 2.5.6
+ '@parcel/watcher-win32-ia32': 2.5.6
+ '@parcel/watcher-win32-x64': 2.5.6
+ optional: true
+
+ '@petamoriken/float16@3.9.3': {}
+
+ '@radix-ui/primitive@1.1.4': {}
+
+ '@radix-ui/react-arrow@1.1.10(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-collection@1.1.10(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-compose-refs@1.1.3(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-context@1.1.4(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-dialog@1.1.17(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.4
+ '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.13(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.4(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.10(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.12(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.17)(react@18.3.1)
+ aria-hidden: 1.2.6
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-direction@1.1.2(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-dismissable-layer@1.1.13(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.4
+ '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-use-escape-keydown': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-dropdown-menu@2.1.18(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.4
+ '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-id': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-menu': 2.1.18(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-focus-guards@1.1.4(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-focus-scope@1.1.10(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-hover-card@1.1.17(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.4
+ '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.13(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-popper': 1.3.1(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.12(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-id@1.1.2(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-menu@2.1.18(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.4
+ '@radix-ui/react-collection': 1.1.10(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.13(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.4(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.10(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-popper': 1.3.1(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.12(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-roving-focus': 1.1.13(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ aria-hidden: 1.2.6
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-popover@1.1.17(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.4
+ '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-dismissable-layer': 1.1.13(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-focus-guards': 1.1.4(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-focus-scope': 1.1.10(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-id': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-popper': 1.3.1(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-portal': 1.1.12(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-presence': 1.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.17)(react@18.3.1)
+ aria-hidden: 1.2.6
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-remove-scroll: 2.7.2(@types/react@19.2.17)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-popper@1.3.1(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-arrow': 1.1.10(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-use-rect': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-use-size': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/rect': 1.1.2
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-portal@1.1.12(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-presence@1.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-primitive@2.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-roving-focus@1.1.13(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/primitive': 1.1.4
+ '@radix-ui/react-collection': 1.1.10(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-context': 1.1.4(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-direction': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-id': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-use-controllable-state': 1.2.3(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-separator@1.1.10(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-primitive': 2.1.6(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-slot@1.3.0(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-compose-refs': 1.1.3(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-use-callback-ref@1.1.2(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-use-controllable-state@1.2.3(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-effect-event': 0.0.3(@types/react@19.2.17)(react@18.3.1)
+ '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-use-effect-event@0.0.3(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-use-escape-keydown@1.1.2(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-callback-ref': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-use-layout-effect@1.1.2(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-use-rect@1.1.2(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/rect': 1.1.2
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/react-use-size@1.1.2(@types/react@19.2.17)(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-use-layout-effect': 1.1.2(@types/react@19.2.17)(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ '@radix-ui/rect@1.1.2': {}
+
+ '@rc-component/portal@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.29.2
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@rc-component/trigger@2.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@babel/runtime': 7.29.2
+ '@rc-component/portal': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ classnames: 2.5.1
+ rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@rollup/pluginutils@4.2.1':
+ dependencies:
+ estree-walker: 2.0.2
+ picomatch: 2.3.2
+
+ '@simonwep/pickr@1.8.2':
+ dependencies:
+ core-js: 3.49.0
+ nanopop: 2.4.2
+
+ '@spz-loader/core@0.3.1': {}
+
+ '@sxzz/popperjs-es@2.11.8': {}
+
+ '@terraformer/arcgis@2.1.2':
+ dependencies:
+ '@terraformer/common': 2.1.2
+
+ '@terraformer/common@2.1.2': {}
+
+ '@transloadit/prettier-bytes@0.0.7': {}
+
+ '@tsconfig/node10@1.0.12': {}
+
+ '@tsconfig/node12@1.0.11': {}
+
+ '@tsconfig/node14@1.0.3': {}
+
+ '@tsconfig/node16@1.0.4': {}
+
+ '@turf/along@7.3.5':
+ dependencies:
+ '@turf/bearing': 7.3.5
+ '@turf/destination': 7.3.5
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/angle@7.3.5':
+ dependencies:
+ '@turf/bearing': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/rhumb-bearing': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/area@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/bbox-clip@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/bbox-polygon@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/bbox@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/bearing@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/bezier-spline@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/boolean-clockwise@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/boolean-concave@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/boolean-contains@7.3.5':
+ dependencies:
+ '@turf/bbox': 7.3.5
+ '@turf/boolean-point-in-polygon': 7.3.5
+ '@turf/boolean-point-on-line': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/line-split': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/boolean-crosses@7.3.5':
+ dependencies:
+ '@turf/boolean-equal': 7.3.5
+ '@turf/boolean-point-in-polygon': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/line-intersect': 7.3.5
+ '@turf/polygon-to-line': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/boolean-disjoint@7.3.5':
+ dependencies:
+ '@turf/boolean-point-in-polygon': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/line-intersect': 7.3.5
+ '@turf/meta': 7.3.5
+ '@turf/polygon-to-line': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/boolean-equal@7.3.5':
+ dependencies:
+ '@turf/clean-coords': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ geojson-equality-ts: 1.0.2
+ tslib: 2.8.1
+
+ '@turf/boolean-intersects@7.3.5':
+ dependencies:
+ '@turf/boolean-disjoint': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/boolean-overlap@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/line-intersect': 7.3.5
+ '@turf/line-overlap': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ geojson-equality-ts: 1.0.2
+ tslib: 2.8.1
+
+ '@turf/boolean-parallel@7.3.5':
+ dependencies:
+ '@turf/clean-coords': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/line-segment': 7.3.5
+ '@turf/rhumb-bearing': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/boolean-point-in-polygon@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ point-in-polygon-hao: 1.2.4
+ tslib: 2.8.1
+
+ '@turf/boolean-point-on-line@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/boolean-touches@7.3.5':
+ dependencies:
+ '@turf/boolean-point-in-polygon': 7.3.5
+ '@turf/boolean-point-on-line': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/boolean-valid@7.3.5':
+ dependencies:
+ '@turf/bbox': 7.3.5
+ '@turf/boolean-crosses': 7.3.5
+ '@turf/boolean-disjoint': 7.3.5
+ '@turf/boolean-overlap': 7.3.5
+ '@turf/boolean-point-in-polygon': 7.3.5
+ '@turf/boolean-point-on-line': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/line-intersect': 7.3.5
+ '@types/geojson': 7946.0.16
+ geojson-polygon-self-intersections: 1.2.2
+ tslib: 2.8.1
+
+ '@turf/boolean-within@7.3.5':
+ dependencies:
+ '@turf/bbox': 7.3.5
+ '@turf/boolean-point-in-polygon': 7.3.5
+ '@turf/boolean-point-on-line': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/line-split': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/buffer@7.3.5':
+ dependencies:
+ '@turf/bbox': 7.3.5
+ '@turf/center': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/jsts': 2.7.2
+ '@turf/meta': 7.3.5
+ '@turf/projection': 7.3.5
+ '@types/geojson': 7946.0.16
+ d3-geo: 1.7.1
+
+ '@turf/center-mean@7.3.5':
+ dependencies:
+ '@turf/bbox': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/center-median@7.3.5':
+ dependencies:
+ '@turf/center-mean': 7.3.5
+ '@turf/centroid': 7.3.5
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/center-of-mass@7.3.5':
+ dependencies:
+ '@turf/centroid': 7.3.5
+ '@turf/convex': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/center@7.3.5':
+ dependencies:
+ '@turf/bbox': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/centroid@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/circle@7.3.5':
+ dependencies:
+ '@turf/destination': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/clean-coords@7.3.5':
+ dependencies:
+ '@turf/boolean-point-on-line': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/clone@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/clusters-dbscan@7.3.5':
+ dependencies:
+ '@turf/clone': 7.3.5
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ rbush: 3.0.1
+ tslib: 2.8.1
+
+ '@turf/clusters-kmeans@7.3.5':
+ dependencies:
+ '@turf/clone': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ skmeans: 0.9.7
+ tslib: 2.8.1
+
+ '@turf/clusters@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/collect@7.3.5':
+ dependencies:
+ '@turf/bbox': 7.3.5
+ '@turf/boolean-point-in-polygon': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ rbush: 3.0.1
+ tslib: 2.8.1
+
+ '@turf/combine@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/concave@7.3.5':
+ dependencies:
+ '@turf/clone': 7.3.5
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@turf/tin': 7.3.5
+ '@types/geojson': 7946.0.16
+ topojson-client: 3.1.0
+ topojson-server: 3.0.1
+ tslib: 2.8.1
+
+ '@turf/convex@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ concaveman: 1.2.1
+ tslib: 2.8.1
+
+ '@turf/destination@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/difference@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ polyclip-ts: 0.16.8
+ tslib: 2.8.1
+
+ '@turf/directional-mean@7.3.5':
+ dependencies:
+ '@turf/bearing': 7.3.5
+ '@turf/centroid': 7.3.5
+ '@turf/destination': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/length': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/dissolve@7.3.5':
+ dependencies:
+ '@turf/flatten': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ polyclip-ts: 0.16.8
+ tslib: 2.8.1
+
+ '@turf/distance-weight@7.3.5':
+ dependencies:
+ '@turf/centroid': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/distance@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/ellipse@7.3.5':
+ dependencies:
+ '@turf/destination': 7.3.5
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/transform-rotate': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/envelope@7.3.5':
+ dependencies:
+ '@turf/bbox': 7.3.5
+ '@turf/bbox-polygon': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/explode@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/flatten@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/flip@7.3.5':
+ dependencies:
+ '@turf/clone': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/geojson-rbush@7.3.5':
+ dependencies:
+ '@turf/bbox': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ rbush: 3.0.1
+ tslib: 2.8.1
+
+ '@turf/great-circle@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ arc: 0.2.0
+ tslib: 2.8.1
+
+ '@turf/helpers@7.3.5':
+ dependencies:
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/hex-grid@7.3.5':
+ dependencies:
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/intersect': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/interpolate@7.3.5':
+ dependencies:
+ '@turf/bbox': 7.3.5
+ '@turf/centroid': 7.3.5
+ '@turf/clone': 7.3.5
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/hex-grid': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@turf/point-grid': 7.3.5
+ '@turf/square-grid': 7.3.5
+ '@turf/triangle-grid': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/intersect@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ polyclip-ts: 0.16.8
+ tslib: 2.8.1
+
+ '@turf/invariant@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/isobands@7.3.5':
+ dependencies:
+ '@turf/area': 7.3.5
+ '@turf/bbox': 7.3.5
+ '@turf/boolean-point-in-polygon': 7.3.5
+ '@turf/explode': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/isolines@7.3.5':
+ dependencies:
+ '@turf/bbox': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/jsts@2.7.2':
+ dependencies:
+ jsts: 2.7.1
+
+ '@turf/kinks@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/length@7.3.5':
+ dependencies:
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/line-arc@7.3.5':
+ dependencies:
+ '@turf/circle': 7.3.5
+ '@turf/destination': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/line-chunk@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/length': 7.3.5
+ '@turf/line-slice-along': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/line-intersect@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ sweepline-intersections: 1.5.0
+ tslib: 2.8.1
+
+ '@turf/line-offset@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/line-overlap@7.3.5':
+ dependencies:
+ '@turf/boolean-point-on-line': 7.3.5
+ '@turf/geojson-rbush': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/line-segment': 7.3.5
+ '@turf/meta': 7.3.5
+ '@turf/nearest-point-on-line': 7.3.5
+ '@types/geojson': 7946.0.16
+ fast-deep-equal: 3.1.3
+ tslib: 2.8.1
+
+ '@turf/line-segment@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/line-slice-along@7.3.5':
+ dependencies:
+ '@turf/bearing': 7.3.5
+ '@turf/destination': 7.3.5
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/line-slice@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/nearest-point-on-line': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/line-split@7.3.5':
+ dependencies:
+ '@turf/bbox': 7.3.5
+ '@turf/geojson-rbush': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/line-intersect': 7.3.5
+ '@turf/line-segment': 7.3.5
+ '@turf/meta': 7.3.5
+ '@turf/nearest-point-on-line': 7.3.5
+ '@turf/truncate': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/line-to-polygon@7.3.5':
+ dependencies:
+ '@turf/bbox': 7.3.5
+ '@turf/clone': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/mask@7.3.5':
+ dependencies:
+ '@turf/clone': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ polyclip-ts: 0.16.8
+ tslib: 2.8.1
+
+ '@turf/meta@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/midpoint@7.3.5':
+ dependencies:
+ '@turf/bearing': 7.3.5
+ '@turf/destination': 7.3.5
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/moran-index@7.3.5':
+ dependencies:
+ '@turf/distance-weight': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/nearest-neighbor-analysis@7.3.5':
+ dependencies:
+ '@turf/area': 7.3.5
+ '@turf/bbox': 7.3.5
+ '@turf/bbox-polygon': 7.3.5
+ '@turf/centroid': 7.3.5
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@turf/nearest-point': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/nearest-point-on-line@7.3.5':
+ dependencies:
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/nearest-point-to-line@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@turf/point-to-line-distance': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/nearest-point@7.3.5':
+ dependencies:
+ '@turf/clone': 7.3.5
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/planepoint@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/point-grid@7.3.5':
+ dependencies:
+ '@turf/boolean-within': 7.3.5
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/point-on-feature@7.3.5':
+ dependencies:
+ '@turf/boolean-point-in-polygon': 7.3.5
+ '@turf/center': 7.3.5
+ '@turf/explode': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/nearest-point': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/point-to-line-distance@7.3.5':
+ dependencies:
+ '@turf/bearing': 7.3.5
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@turf/nearest-point-on-line': 7.3.5
+ '@turf/projection': 7.3.5
+ '@turf/rhumb-bearing': 7.3.5
+ '@turf/rhumb-distance': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/point-to-polygon-distance@7.3.5':
+ dependencies:
+ '@turf/boolean-point-in-polygon': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@turf/point-to-line-distance': 7.3.5
+ '@turf/polygon-to-line': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/points-within-polygon@7.3.5':
+ dependencies:
+ '@turf/boolean-point-in-polygon': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/polygon-smooth@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/polygon-tangents@7.3.5':
+ dependencies:
+ '@turf/bbox': 7.3.5
+ '@turf/boolean-within': 7.3.5
+ '@turf/explode': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/nearest-point': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/polygon-to-line@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/polygonize@7.3.5':
+ dependencies:
+ '@turf/boolean-point-in-polygon': 7.3.5
+ '@turf/envelope': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/projection@7.3.5':
+ dependencies:
+ '@turf/clone': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/quadrat-analysis@7.3.5':
+ dependencies:
+ '@turf/area': 7.3.5
+ '@turf/bbox': 7.3.5
+ '@turf/bbox-polygon': 7.3.5
+ '@turf/centroid': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/point-grid': 7.3.5
+ '@turf/random': 7.3.5
+ '@turf/square-grid': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/random@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/rectangle-grid@7.3.5':
+ dependencies:
+ '@turf/boolean-intersects': 7.3.5
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/rewind@7.3.5':
+ dependencies:
+ '@turf/boolean-clockwise': 7.3.5
+ '@turf/clone': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/rhumb-bearing@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/rhumb-destination@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/rhumb-distance@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/sample@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/sector@7.3.5':
+ dependencies:
+ '@turf/circle': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/line-arc': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/shortest-path@7.3.5':
+ dependencies:
+ '@turf/bbox': 7.3.5
+ '@turf/bbox-polygon': 7.3.5
+ '@turf/boolean-point-in-polygon': 7.3.5
+ '@turf/clean-coords': 7.3.5
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@turf/transform-scale': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/simplify@7.3.5':
+ dependencies:
+ '@turf/clean-coords': 7.3.5
+ '@turf/clone': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/square-grid@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/rectangle-grid': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/square@7.3.5':
+ dependencies:
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/standard-deviational-ellipse@7.3.5':
+ dependencies:
+ '@turf/center-mean': 7.3.5
+ '@turf/ellipse': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@turf/points-within-polygon': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/tag@7.3.5':
+ dependencies:
+ '@turf/boolean-point-in-polygon': 7.3.5
+ '@turf/clone': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/tesselate@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ earcut: 2.2.4
+ tslib: 2.8.1
+
+ '@turf/tin@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/transform-rotate@7.3.5':
+ dependencies:
+ '@turf/centroid': 7.3.5
+ '@turf/clone': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@turf/rhumb-bearing': 7.3.5
+ '@turf/rhumb-destination': 7.3.5
+ '@turf/rhumb-distance': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/transform-scale@7.3.5':
+ dependencies:
+ '@turf/bbox': 7.3.5
+ '@turf/center': 7.3.5
+ '@turf/centroid': 7.3.5
+ '@turf/clone': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@turf/rhumb-bearing': 7.3.5
+ '@turf/rhumb-destination': 7.3.5
+ '@turf/rhumb-distance': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/transform-translate@7.3.5':
+ dependencies:
+ '@turf/clone': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/meta': 7.3.5
+ '@turf/rhumb-destination': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/triangle-grid@7.3.5':
+ dependencies:
+ '@turf/distance': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/intersect': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/truncate@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ tslib: 2.8.1
+
+ '@turf/turf@7.3.5':
+ dependencies:
+ '@turf/along': 7.3.5
+ '@turf/angle': 7.3.5
+ '@turf/area': 7.3.5
+ '@turf/bbox': 7.3.5
+ '@turf/bbox-clip': 7.3.5
+ '@turf/bbox-polygon': 7.3.5
+ '@turf/bearing': 7.3.5
+ '@turf/bezier-spline': 7.3.5
+ '@turf/boolean-clockwise': 7.3.5
+ '@turf/boolean-concave': 7.3.5
+ '@turf/boolean-contains': 7.3.5
+ '@turf/boolean-crosses': 7.3.5
+ '@turf/boolean-disjoint': 7.3.5
+ '@turf/boolean-equal': 7.3.5
+ '@turf/boolean-intersects': 7.3.5
+ '@turf/boolean-overlap': 7.3.5
+ '@turf/boolean-parallel': 7.3.5
+ '@turf/boolean-point-in-polygon': 7.3.5
+ '@turf/boolean-point-on-line': 7.3.5
+ '@turf/boolean-touches': 7.3.5
+ '@turf/boolean-valid': 7.3.5
+ '@turf/boolean-within': 7.3.5
+ '@turf/buffer': 7.3.5
+ '@turf/center': 7.3.5
+ '@turf/center-mean': 7.3.5
+ '@turf/center-median': 7.3.5
+ '@turf/center-of-mass': 7.3.5
+ '@turf/centroid': 7.3.5
+ '@turf/circle': 7.3.5
+ '@turf/clean-coords': 7.3.5
+ '@turf/clone': 7.3.5
+ '@turf/clusters': 7.3.5
+ '@turf/clusters-dbscan': 7.3.5
+ '@turf/clusters-kmeans': 7.3.5
+ '@turf/collect': 7.3.5
+ '@turf/combine': 7.3.5
+ '@turf/concave': 7.3.5
+ '@turf/convex': 7.3.5
+ '@turf/destination': 7.3.5
+ '@turf/difference': 7.3.5
+ '@turf/directional-mean': 7.3.5
+ '@turf/dissolve': 7.3.5
+ '@turf/distance': 7.3.5
+ '@turf/distance-weight': 7.3.5
+ '@turf/ellipse': 7.3.5
+ '@turf/envelope': 7.3.5
+ '@turf/explode': 7.3.5
+ '@turf/flatten': 7.3.5
+ '@turf/flip': 7.3.5
+ '@turf/geojson-rbush': 7.3.5
+ '@turf/great-circle': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/hex-grid': 7.3.5
+ '@turf/interpolate': 7.3.5
+ '@turf/intersect': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@turf/isobands': 7.3.5
+ '@turf/isolines': 7.3.5
+ '@turf/kinks': 7.3.5
+ '@turf/length': 7.3.5
+ '@turf/line-arc': 7.3.5
+ '@turf/line-chunk': 7.3.5
+ '@turf/line-intersect': 7.3.5
+ '@turf/line-offset': 7.3.5
+ '@turf/line-overlap': 7.3.5
+ '@turf/line-segment': 7.3.5
+ '@turf/line-slice': 7.3.5
+ '@turf/line-slice-along': 7.3.5
+ '@turf/line-split': 7.3.5
+ '@turf/line-to-polygon': 7.3.5
+ '@turf/mask': 7.3.5
+ '@turf/meta': 7.3.5
+ '@turf/midpoint': 7.3.5
+ '@turf/moran-index': 7.3.5
+ '@turf/nearest-neighbor-analysis': 7.3.5
+ '@turf/nearest-point': 7.3.5
+ '@turf/nearest-point-on-line': 7.3.5
+ '@turf/nearest-point-to-line': 7.3.5
+ '@turf/planepoint': 7.3.5
+ '@turf/point-grid': 7.3.5
+ '@turf/point-on-feature': 7.3.5
+ '@turf/point-to-line-distance': 7.3.5
+ '@turf/point-to-polygon-distance': 7.3.5
+ '@turf/points-within-polygon': 7.3.5
+ '@turf/polygon-smooth': 7.3.5
+ '@turf/polygon-tangents': 7.3.5
+ '@turf/polygon-to-line': 7.3.5
+ '@turf/polygonize': 7.3.5
+ '@turf/projection': 7.3.5
+ '@turf/quadrat-analysis': 7.3.5
+ '@turf/random': 7.3.5
+ '@turf/rectangle-grid': 7.3.5
+ '@turf/rewind': 7.3.5
+ '@turf/rhumb-bearing': 7.3.5
+ '@turf/rhumb-destination': 7.3.5
+ '@turf/rhumb-distance': 7.3.5
+ '@turf/sample': 7.3.5
+ '@turf/sector': 7.3.5
+ '@turf/shortest-path': 7.3.5
+ '@turf/simplify': 7.3.5
+ '@turf/square': 7.3.5
+ '@turf/square-grid': 7.3.5
+ '@turf/standard-deviational-ellipse': 7.3.5
+ '@turf/tag': 7.3.5
+ '@turf/tesselate': 7.3.5
+ '@turf/tin': 7.3.5
+ '@turf/transform-rotate': 7.3.5
+ '@turf/transform-scale': 7.3.5
+ '@turf/transform-translate': 7.3.5
+ '@turf/triangle-grid': 7.3.5
+ '@turf/truncate': 7.3.5
+ '@turf/union': 7.3.5
+ '@turf/unkink-polygon': 7.3.5
+ '@turf/voronoi': 7.3.5
+ '@types/geojson': 7946.0.16
+ '@types/kdbush': 3.0.5
+ tslib: 2.8.1
+
+ '@turf/union@7.3.5':
+ dependencies:
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ polyclip-ts: 0.16.8
+ tslib: 2.8.1
+
+ '@turf/unkink-polygon@7.3.5':
+ dependencies:
+ '@turf/area': 7.3.5
+ '@turf/boolean-point-in-polygon': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/meta': 7.3.5
+ '@types/geojson': 7946.0.16
+ rbush: 3.0.1
+ tslib: 2.8.1
+
+ '@turf/voronoi@7.3.5':
+ dependencies:
+ '@turf/clone': 7.3.5
+ '@turf/helpers': 7.3.5
+ '@turf/invariant': 7.3.5
+ '@types/d3-voronoi': 1.1.12
+ '@types/geojson': 7946.0.16
+ d3-voronoi: 1.1.2
+ tslib: 2.8.1
+
+ '@tweenjs/tween.js@25.0.0': {}
+
+ '@types/d3-voronoi@1.1.12': {}
+
+ '@types/dom-to-image@2.6.7': {}
+
+ '@types/estree@1.0.9': {}
+
+ '@types/event-emitter@0.3.5': {}
+
+ '@types/geojson@7946.0.16': {}
+
+ '@types/hoist-non-react-statics@3.3.7(@types/react@19.2.17)':
+ dependencies:
+ '@types/react': 19.2.17
+ hoist-non-react-statics: 3.3.2
+
+ '@types/js-cookie@3.0.6': {}
+
+ '@types/json-schema@7.0.15': {}
+
+ '@types/kdbush@3.0.5': {}
+
+ '@types/lodash-es@4.17.12':
+ dependencies:
+ '@types/lodash': 4.17.24
+
+ '@types/lodash@4.17.24': {}
+
+ '@types/minimist@1.2.5': {}
+
+ '@types/node@14.18.63': {}
+
+ '@types/node@16.18.126': {}
+
+ '@types/normalize-package-data@2.4.4': {}
+
+ '@types/nprogress@0.2.3': {}
+
+ '@types/parse-json@4.0.2': {}
+
+ '@types/path-browserify@1.0.3': {}
+
+ '@types/rbush@4.0.0': {}
+
+ '@types/react-redux@7.1.34':
+ dependencies:
+ '@types/hoist-non-react-statics': 3.3.7(@types/react@19.2.17)
+ '@types/react': 19.2.17
+ hoist-non-react-statics: 3.3.2
+ redux: 4.2.1
+
+ '@types/react@19.2.17':
+ dependencies:
+ csstype: 3.2.3
+
+ '@types/semver@7.7.1': {}
+
+ '@types/svgo@2.6.4':
+ dependencies:
+ '@types/node': 16.18.126
+
+ '@types/trusted-types@2.0.7':
+ optional: true
+
+ '@types/web-bluetooth@0.0.16': {}
+
+ '@types/web-bluetooth@0.0.20': {}
+
+ '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@6.0.3))(eslint@8.57.1)(typescript@6.0.3)':
+ dependencies:
+ '@eslint-community/regexpp': 4.12.2
+ '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@6.0.3)
+ '@typescript-eslint/scope-manager': 5.62.0
+ '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.1)(typescript@6.0.3)
+ '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@6.0.3)
+ debug: 4.4.3
+ eslint: 8.57.1
+ graphemer: 1.4.0
+ ignore: 5.3.2
+ natural-compare-lite: 1.4.0
+ semver: 7.7.4
+ tsutils: 3.21.0(typescript@6.0.3)
+ optionalDependencies:
+ typescript: 6.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@6.0.3)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 5.62.0
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@6.0.3)
+ debug: 4.4.3
+ eslint: 8.57.1
+ optionalDependencies:
+ typescript: 6.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/scope-manager@5.62.0':
+ dependencies:
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/visitor-keys': 5.62.0
+
+ '@typescript-eslint/type-utils@5.62.0(eslint@8.57.1)(typescript@6.0.3)':
+ dependencies:
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@6.0.3)
+ '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@6.0.3)
+ debug: 4.4.3
+ eslint: 8.57.1
+ tsutils: 3.21.0(typescript@6.0.3)
+ optionalDependencies:
+ typescript: 6.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/types@5.62.0': {}
+
+ '@typescript-eslint/typescript-estree@5.62.0(typescript@6.0.3)':
+ dependencies:
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/visitor-keys': 5.62.0
+ debug: 4.4.3
+ globby: 11.1.0
+ is-glob: 4.0.3
+ semver: 7.7.4
+ tsutils: 3.21.0(typescript@6.0.3)
+ optionalDependencies:
+ typescript: 6.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@6.0.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1)
+ '@types/json-schema': 7.0.15
+ '@types/semver': 7.7.1
+ '@typescript-eslint/scope-manager': 5.62.0
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@6.0.3)
+ eslint: 8.57.1
+ eslint-scope: 5.1.1
+ semver: 7.7.4
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ '@typescript-eslint/visitor-keys@5.62.0':
+ dependencies:
+ '@typescript-eslint/types': 5.62.0
+ eslint-visitor-keys: 3.4.3
+
+ '@ungap/structured-clone@1.3.0': {}
+
+ '@univerjs-pro/collaboration-client-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/collaboration': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/collaboration-client': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/network': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/protocol': 0.1.47
+ '@univerjs/rpc': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ crypto-js: 4.2.0
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs-pro/collaboration-client@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/collaboration': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/license': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/network': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/protocol': 0.1.47
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/telemetry': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ crypto-js: 4.2.0
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs-pro/collaboration@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/license': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/data-validation': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/protocol': 0.1.47
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-conditional-formatting': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-filter': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-hyper-link': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/thread-comment': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ uuid: 13.0.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+ - rxjs
+
+ '@univerjs-pro/collaboration@0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/license': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/core': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/data-validation': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/protocol': 0.1.48
+ '@univerjs/sheets': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-conditional-formatting': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-drawing': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-filter': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-hyper-link': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/thread-comment': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ uuid: 13.0.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+ - rxjs
+
+ '@univerjs-pro/docs-exchange-client@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/exchange-client': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react
+ - react-dom
+ - rxjs
+
+ '@univerjs-pro/docs-print@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/license': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/print': 0.14.0
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/network': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ optionalDependencies:
+ '@univerjs-pro/collaboration-client': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+ - rxjs
+
+ '@univerjs-pro/edit-history-loader@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/collaboration': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/collaboration-client': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/edit-history-viewer': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs-pro/license': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/sheets-chart': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/sheets-chart-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs-pro/sheets-pivot': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/sheets-sparkline': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/sheets-sparkline-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/data-validation': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/drawing-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/network': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/rpc': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-conditional-formatting': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-conditional-formatting-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-data-validation': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-data-validation-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-drawing-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-filter': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-filter-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-formula-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-hyper-link': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-hyper-link-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-numfmt': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs-pro/edit-history-viewer@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/collaboration': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/collaboration-client': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/collaboration-client-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs-pro/sheets-chart': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/sheets-sparkline': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/data-validation': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/network': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/protocol': 0.1.47
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-conditional-formatting': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-filter': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs-pro/engine-chart@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs-pro/engine-formula@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/license': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs-pro/engine-pivot@0.14.0': {}
+
+ '@univerjs-pro/exchange-client@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/collaboration': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/license': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/network': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/protocol': 0.1.47
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ pako: 2.1.0
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs-pro/exchange-client@0.15.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/collaboration': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/license': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/core': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.15.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/network': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/protocol': 0.1.48
+ '@univerjs/ui': 0.15.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ pako: 2.1.0
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs-pro/license@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@noble/ed25519': 2.3.0
+ '@noble/hashes': 1.8.0
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs-pro/license@0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@noble/ed25519': 2.3.0
+ '@noble/hashes': 1.8.0
+ '@univerjs/core': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs-pro/print@0.14.0': {}
+
+ '@univerjs-pro/sheets-chart-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/engine-chart': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/sheets-chart': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-drawing-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-formula-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ echarts: 5.6.0
+ echarts-wordcloud: 2.1.0(echarts@5.6.0)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs-pro/sheets-chart@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/engine-chart': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/license': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs-pro/sheets-exchange-client@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/exchange-client': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react
+ - react-dom
+ - rxjs
+
+ '@univerjs-pro/sheets-pivot-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/engine-pivot': 0.14.0
+ '@univerjs-pro/sheets-pivot': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/docs-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-formula-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-beautiful-dnd: 13.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-native
+
+ '@univerjs-pro/sheets-pivot@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/engine-pivot': 0.14.0
+ '@univerjs-pro/license': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/rpc': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-filter': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs-pro/sheets-print@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/license': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/print': 0.14.0
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/network': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ optionalDependencies:
+ '@univerjs-pro/collaboration-client': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs-pro/sheets-sparkline-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/sheets-sparkline': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-formula-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-graphics': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs-pro/sheets-sparkline@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/license': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs-pro/thread-comment-datasource@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/collaboration-client': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/license': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/network': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/protocol': 0.1.47
+ '@univerjs/thread-comment': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/thread-comment-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react
+ - react-dom
+
+ '@univerjs/core@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/protocol': 0.1.47
+ '@univerjs/themes': 0.14.0
+ '@wendellhu/redi': 1.0.1(react@18.3.1)
+ async-lock: 1.4.1
+ dayjs: 1.11.20
+ fast-diff: 1.3.0
+ kdbush: 4.0.2
+ lodash-es: 4.18.1
+ nanoid: 5.1.6
+ numfmt: 3.2.6
+ ot-json1: 1.0.2
+ rbush: 4.0.1
+ rxjs: 7.8.2
+
+ '@univerjs/core@0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/protocol': 0.1.48
+ '@univerjs/themes': 0.15.0
+ '@wendellhu/redi': 1.0.1(react@18.3.1)
+ async-lock: 1.4.1
+ dayjs: 1.11.20
+ fast-diff: 1.3.0
+ kdbush: 4.0.2
+ lodash-es: 4.18.1
+ nanoid: 5.1.6
+ numfmt: 3.2.6
+ ot-json1: 1.0.2
+ rbush: 4.0.1
+ rxjs: 7.8.2
+
+ '@univerjs/data-validation@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/data-validation@0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/design@0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-dialog': 1.1.17(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-dropdown-menu': 2.1.18(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-hover-card': 1.1.17(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-popover': 1.1.17(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-separator': 1.1.10(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@18.3.1)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/themes': 0.14.0
+ class-variance-authority: 0.7.1
+ clsx: 2.1.1
+ dayjs: 1.11.20
+ rc-dropdown: 4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-menu: 9.16.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-virtual-list: 3.19.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-grid-layout: 1.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ sonner: 2.0.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ tailwind-merge: 2.6.0
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+
+ '@univerjs/design@0.15.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@radix-ui/react-dialog': 1.1.17(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-dropdown-menu': 2.1.18(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-hover-card': 1.1.17(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-popover': 1.1.17(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-separator': 1.1.10(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@radix-ui/react-slot': 1.3.0(@types/react@19.2.17)(react@18.3.1)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/themes': 0.15.0
+ class-variance-authority: 0.7.1
+ clsx: 2.1.1
+ dayjs: 1.11.20
+ rc-dropdown: 4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-menu: 9.16.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-virtual-list: 3.19.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-grid-layout: 1.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ sonner: 2.0.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ tailwind-merge: 2.6.0
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+
+ '@univerjs/docs-drawing-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/drawing-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/docs-drawing@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+ - rxjs
+
+ '@univerjs/docs-hyper-link-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-hyper-link': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/docs-hyper-link@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+ - rxjs
+
+ '@univerjs/docs-thread-comment-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/thread-comment': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/thread-comment-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/docs-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/docs@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/docs@0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/drawing-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/drawing@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ ot-json1: 1.0.2
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/drawing@0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ ot-json1: 1.0.2
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/engine-formula@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@flatten-js/interval-tree': 1.1.3
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/rpc': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ decimal.js: 10.6.0
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/engine-formula@0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@flatten-js/interval-tree': 1.1.3
+ '@univerjs/core': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/rpc': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ decimal.js: 10.6.0
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/engine-render@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@floating-ui/dom': 1.7.6
+ '@floating-ui/utils': 0.2.11
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ cjk-regex: 3.4.0
+ franc-min: 6.2.0
+ opentype.js: 1.3.5
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/engine-render@0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@floating-ui/dom': 1.7.6
+ '@floating-ui/utils': 0.2.11
+ '@univerjs/core': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ cjk-regex: 3.4.0
+ franc-min: 6.2.0
+ opentype.js: 1.3.5
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/find-replace@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/icons@1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@univerjs/network@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/network@0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-docs-advanced@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/docs-exchange-client': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs-pro/docs-print': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs-pro/exchange-client': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs-pro/license': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-docs-collaboration@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/collaboration': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/collaboration-client': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/collaboration-client-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-docs-core@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/network': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-docs-drawing@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/docs-drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-drawing-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/drawing-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-docs-hyper-link@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/docs-hyper-link': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-hyper-link-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-docs-node-core@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-hyper-link': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/rpc-node': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/thread-comment': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-docs-thread-comment@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/docs-thread-comment-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/thread-comment': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/thread-comment-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-sheets-advanced@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/engine-chart': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/exchange-client': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs-pro/license': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/sheets-chart': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/sheets-chart-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs-pro/sheets-exchange-client': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs-pro/sheets-pivot': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/sheets-pivot-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs-pro/sheets-print': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs-pro/sheets-sparkline': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/sheets-sparkline-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-graphics': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-native
+
+ '@univerjs/preset-sheets-collaboration@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs-pro/collaboration': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/collaboration-client': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs-pro/collaboration-client-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs-pro/edit-history-loader': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs-pro/edit-history-viewer': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs-pro/thread-comment-datasource': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-sheets-advanced': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-native
+
+ '@univerjs/preset-sheets-conditional-formatting@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/sheets-conditional-formatting': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-conditional-formatting-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-sheets-core@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/network': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/rpc': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-formula-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-numfmt': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-numfmt-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-sheets-data-validation@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/data-validation': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-data-validation': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-data-validation-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-sheets-drawing@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/docs-drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/drawing-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-drawing-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-sheets-filter@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/sheets-filter': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-filter-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-sheets-find-replace@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/find-replace': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-find-replace': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-sheets-hyper-link@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/sheets-hyper-link': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-hyper-link-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-sheets-node-core@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/rpc-node': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-data-validation': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-filter': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-hyper-link': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-numfmt': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-sort': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-thread-comment': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/thread-comment': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-sheets-note@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/sheets-note': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-note-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-sheets-sort@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/sheets-sort': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-sort-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-sheets-table@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/sheets-table': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-table-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+
+ '@univerjs/preset-sheets-thread-comment@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/sheets-thread-comment': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-thread-comment-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/thread-comment': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/thread-comment-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+
+ '@univerjs/presets@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/preset-docs-advanced': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-docs-collaboration': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-docs-core': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-docs-drawing': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-docs-hyper-link': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-docs-node-core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/preset-docs-thread-comment': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-sheets-advanced': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-sheets-collaboration': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-sheets-conditional-formatting': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-sheets-core': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-sheets-data-validation': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-sheets-drawing': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-sheets-filter': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-sheets-find-replace': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-sheets-hyper-link': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-sheets-node-core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/preset-sheets-note': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-sheets-sort': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-sheets-table': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/preset-sheets-thread-comment': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-native
+
+ '@univerjs/protocol@0.1.47': {}
+
+ '@univerjs/protocol@0.1.48': {}
+
+ '@univerjs/rpc-node@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/rpc': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/rpc@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/rpc@0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/sheets-conditional-formatting-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-conditional-formatting': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-formula-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/sheets-conditional-formatting@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/sheets-conditional-formatting@0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/sheets-data-validation-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/data-validation': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-data-validation': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-formula-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-numfmt': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/sheets-data-validation@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/data-validation': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/protocol': 0.1.47
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/sheets-drawing-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/docs-drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/drawing-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/sheets-drawing@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/drawing': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+ - rxjs
+
+ '@univerjs/sheets-drawing@0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/drawing': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+ - rxjs
+
+ '@univerjs/sheets-filter-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/rpc': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-filter': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/sheets-filter@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/rpc': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/sheets-filter@0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/rpc': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/sheets-find-replace@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/find-replace': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react
+ - react-dom
+
+ '@univerjs/sheets-formula-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/sheets-formula@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/rpc': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/sheets-graphics@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react
+ - react-dom
+ - rxjs
+
+ '@univerjs/sheets-hyper-link-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-data-validation': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-formula-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-hyper-link': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/sheets-hyper-link@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/sheets-hyper-link@0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/sheets-note-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-note': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/sheets-note@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/sheets-numfmt-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-numfmt': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/sheets-numfmt@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/sheets-sort-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-sort': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/sheets-sort@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+ - rxjs
+
+ '@univerjs/sheets-table-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-formula-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/sheets-sort': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-table': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/sheets-table@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/sheets-thread-comment-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-thread-comment': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/thread-comment': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/thread-comment-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/sheets-thread-comment@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/thread-comment': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/sheets-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/docs': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/docs-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/protocol': 0.1.47
+ '@univerjs/sheets': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/telemetry': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/sheets@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/protocol': 0.1.47
+ '@univerjs/rpc': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/sheets@0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/engine-formula': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/protocol': 0.1.48
+ '@univerjs/rpc': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/telemetry@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+ - rxjs
+
+ '@univerjs/themes@0.14.0': {}
+
+ '@univerjs/themes@0.15.0': {}
+
+ '@univerjs/thread-comment-ui@0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/docs-ui': 0.14.0(@types/react@19.2.17)(@wendellhu/redi@1.0.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/thread-comment': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/ui': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)
+ react: 18.3.1
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+ - '@wendellhu/redi'
+ - react-dom
+
+ '@univerjs/thread-comment@0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/thread-comment@0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@wendellhu/redi'
+
+ '@univerjs/ui@0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.14.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/engine-render': 0.14.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wendellhu/redi': 1.0.1(react@18.3.1)
+ localforage: 1.10.0
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+
+ '@univerjs/ui@0.15.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rxjs@7.8.2)':
+ dependencies:
+ '@univerjs/core': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/design': 0.15.0(@types/react@19.2.17)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@univerjs/engine-render': 0.15.0(@wendellhu/redi@1.0.1(react@18.3.1))(rxjs@7.8.2)
+ '@univerjs/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@wendellhu/redi': 1.0.1(react@18.3.1)
+ localforage: 1.10.0
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ rxjs: 7.8.2
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/react-dom'
+
+ '@uppy/companion-client@2.2.2':
+ dependencies:
+ '@uppy/utils': 4.1.3
+ namespace-emitter: 2.0.1
+
+ '@uppy/core@2.3.4':
+ dependencies:
+ '@transloadit/prettier-bytes': 0.0.7
+ '@uppy/store-default': 2.1.1
+ '@uppy/utils': 4.1.3
+ lodash.throttle: 4.1.1
+ mime-match: 1.0.2
+ namespace-emitter: 2.0.1
+ nanoid: 3.3.11
+ preact: 10.29.1
+
+ '@uppy/store-default@2.1.1': {}
+
+ '@uppy/utils@4.1.3':
+ dependencies:
+ lodash.throttle: 4.1.1
+
+ '@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4)':
+ dependencies:
+ '@uppy/companion-client': 2.2.2
+ '@uppy/core': 2.3.4
+ '@uppy/utils': 4.1.3
+ nanoid: 3.3.11
+
+ '@videojs/http-streaming@3.17.4(video.js@8.23.7)':
+ dependencies:
+ '@babel/runtime': 7.29.2
+ '@videojs/vhs-utils': 4.1.1
+ aes-decrypter: 4.0.2
+ global: 4.4.0
+ m3u8-parser: 7.2.0
+ mpd-parser: 1.3.1
+ mux.js: 7.1.0
+ video.js: 8.23.7
+
+ '@videojs/vhs-utils@4.1.1':
+ dependencies:
+ '@babel/runtime': 7.29.2
+ global: 4.4.0
+
+ '@videojs/xhr@2.7.0':
+ dependencies:
+ '@babel/runtime': 7.29.2
+ global: 4.4.0
+ is-function: 1.0.2
+
+ '@vitejs/plugin-vue@4.6.2(vite@4.5.14(@types/node@16.18.126)(sass@1.99.0))(vue@3.5.33(typescript@6.0.3))':
+ dependencies:
+ vite: 4.5.14(@types/node@16.18.126)(sass@1.99.0)
+ vue: 3.5.33(typescript@6.0.3)
+
+ '@volar/language-core@2.4.28':
+ dependencies:
+ '@volar/source-map': 2.4.28
+
+ '@volar/source-map@2.4.28': {}
+
+ '@volar/typescript@2.4.28':
+ dependencies:
+ '@volar/language-core': 2.4.28
+ path-browserify: 1.0.1
+ vscode-uri: 3.1.0
+
+ '@vue/compiler-core@3.5.33':
+ dependencies:
+ '@babel/parser': 7.29.2
+ '@vue/shared': 3.5.33
+ entities: 7.0.1
+ estree-walker: 2.0.2
+ source-map-js: 1.2.1
+
+ '@vue/compiler-dom@3.5.33':
+ dependencies:
+ '@vue/compiler-core': 3.5.33
+ '@vue/shared': 3.5.33
+
+ '@vue/compiler-sfc@3.5.33':
+ dependencies:
+ '@babel/parser': 7.29.2
+ '@vue/compiler-core': 3.5.33
+ '@vue/compiler-dom': 3.5.33
+ '@vue/compiler-ssr': 3.5.33
+ '@vue/shared': 3.5.33
+ estree-walker: 2.0.2
+ magic-string: 0.30.21
+ postcss: 8.5.10
+ source-map-js: 1.2.1
+
+ '@vue/compiler-ssr@3.5.33':
+ dependencies:
+ '@vue/compiler-dom': 3.5.33
+ '@vue/shared': 3.5.33
+
+ '@vue/devtools-api@6.6.4': {}
+
+ '@vue/language-core@3.2.7':
+ dependencies:
+ '@volar/language-core': 2.4.28
+ '@vue/compiler-dom': 3.5.33
+ '@vue/shared': 3.5.33
+ alien-signals: 3.1.2
+ muggle-string: 0.4.1
+ path-browserify: 1.0.1
+ picomatch: 4.0.4
+
+ '@vue/reactivity@3.5.33':
+ dependencies:
+ '@vue/shared': 3.5.33
+
+ '@vue/runtime-core@3.5.33':
+ dependencies:
+ '@vue/reactivity': 3.5.33
+ '@vue/shared': 3.5.33
+
+ '@vue/runtime-dom@3.5.33':
+ dependencies:
+ '@vue/reactivity': 3.5.33
+ '@vue/runtime-core': 3.5.33
+ '@vue/shared': 3.5.33
+ csstype: 3.2.3
+
+ '@vue/server-renderer@3.5.33(vue@3.5.33(typescript@6.0.3))':
+ dependencies:
+ '@vue/compiler-ssr': 3.5.33
+ '@vue/shared': 3.5.33
+ vue: 3.5.33(typescript@6.0.3)
+
+ '@vue/shared@3.5.33': {}
+
+ '@vueuse/core@12.0.0(typescript@6.0.3)':
+ dependencies:
+ '@types/web-bluetooth': 0.0.20
+ '@vueuse/metadata': 12.0.0
+ '@vueuse/shared': 12.0.0(typescript@6.0.3)
+ vue: 3.5.33(typescript@6.0.3)
+ transitivePeerDependencies:
+ - typescript
+
+ '@vueuse/core@9.13.0(vue@3.5.33(typescript@6.0.3))':
+ dependencies:
+ '@types/web-bluetooth': 0.0.16
+ '@vueuse/metadata': 9.13.0
+ '@vueuse/shared': 9.13.0(vue@3.5.33(typescript@6.0.3))
+ vue-demi: 0.14.10(vue@3.5.33(typescript@6.0.3))
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+
+ '@vueuse/metadata@12.0.0': {}
+
+ '@vueuse/metadata@9.13.0': {}
+
+ '@vueuse/shared@12.0.0(typescript@6.0.3)':
+ dependencies:
+ vue: 3.5.33(typescript@6.0.3)
+ transitivePeerDependencies:
+ - typescript
+
+ '@vueuse/shared@9.13.0(vue@3.5.33(typescript@6.0.3))':
+ dependencies:
+ vue-demi: 0.14.10(vue@3.5.33(typescript@6.0.3))
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+
+ '@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)':
+ dependencies:
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
+ dom7: 3.0.0
+ is-url: 1.2.4
+ lodash.throttle: 4.1.1
+ nanoid: 3.3.11
+ slate: 0.72.8
+ snabbdom: 3.6.3
+
+ '@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.3)':
+ dependencies:
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
+ dom7: 3.0.0
+ prismjs: 1.30.0
+ slate: 0.72.8
+ snabbdom: 3.6.3
+
+ '@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)':
+ dependencies:
+ '@types/event-emitter': 0.3.5
+ '@uppy/core': 2.3.4
+ '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
+ dom7: 3.0.0
+ event-emitter: 0.3.5
+ html-void-elements: 2.0.1
+ i18next: 20.6.1
+ is-hotkey: 0.2.0
+ lodash.camelcase: 4.3.0
+ lodash.clonedeep: 4.5.0
+ lodash.debounce: 4.0.8
+ lodash.foreach: 4.5.0
+ lodash.isequal: 4.5.0
+ lodash.throttle: 4.1.1
+ lodash.toarray: 4.4.0
+ nanoid: 3.3.11
+ scroll-into-view-if-needed: 2.2.31
+ slate: 0.72.8
+ slate-history: 0.66.0(slate@0.72.8)
+ snabbdom: 3.6.3
+
+ '@wangeditor/editor-for-vue@5.1.12(@wangeditor/editor@5.1.23)(vue@3.5.33(typescript@6.0.3))':
+ dependencies:
+ '@wangeditor/editor': 5.1.23
+ vue: 3.5.33(typescript@6.0.3)
+
+ '@wangeditor/editor@5.1.23':
+ dependencies:
+ '@uppy/core': 2.3.4
+ '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
+ '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
+ '@wangeditor/code-highlight': 1.0.3(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.3)
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
+ '@wangeditor/list-module': 1.0.5(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.3)
+ '@wangeditor/table-module': 1.1.4(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
+ '@wangeditor/upload-image-module': 1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.3)
+ '@wangeditor/video-module': 1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@3.0.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
+ dom7: 3.0.0
+ is-hotkey: 0.2.0
+ lodash.camelcase: 4.3.0
+ lodash.clonedeep: 4.5.0
+ lodash.debounce: 4.0.8
+ lodash.foreach: 4.5.0
+ lodash.isequal: 4.5.0
+ lodash.throttle: 4.1.1
+ lodash.toarray: 4.4.0
+ nanoid: 3.3.11
+ slate: 0.72.8
+ snabbdom: 3.6.3
+
+ '@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.3)':
+ dependencies:
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
+ dom7: 3.0.0
+ slate: 0.72.8
+ snabbdom: 3.6.3
+
+ '@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)':
+ dependencies:
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
+ dom7: 3.0.0
+ lodash.isequal: 4.5.0
+ lodash.throttle: 4.1.1
+ nanoid: 3.3.11
+ slate: 0.72.8
+ snabbdom: 3.6.3
+
+ '@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.3)':
+ dependencies:
+ '@uppy/core': 2.3.4
+ '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
+ '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
+ dom7: 3.0.0
+ lodash.foreach: 4.5.0
+ slate: 0.72.8
+ snabbdom: 3.6.3
+
+ '@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@3.0.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)':
+ dependencies:
+ '@uppy/core': 2.3.4
+ '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
+ '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
+ dom7: 3.0.0
+ nanoid: 3.3.11
+ slate: 0.72.8
+ snabbdom: 3.6.3
+
+ '@wendellhu/redi@1.0.1(react@18.3.1)':
+ optionalDependencies:
+ react: 18.3.1
+
+ '@xmldom/xmldom@0.8.13': {}
+
+ '@zarrita/storage@0.2.0':
+ dependencies:
+ reference-spec-reader: 0.2.0
+ unzipit: 2.0.0
+
+ '@zip.js/zip.js@2.8.26': {}
+
+ JSONStream@1.3.5:
+ dependencies:
+ jsonparse: 1.3.1
+ through: 2.3.8
+
+ acorn-jsx@5.3.2(acorn@8.16.0):
+ dependencies:
+ acorn: 8.16.0
+
+ acorn-walk@8.3.5:
+ dependencies:
+ acorn: 8.16.0
+
+ acorn@8.16.0: {}
+
+ adler-32@1.2.0:
+ dependencies:
+ exit-on-epipe: 1.0.1
+ printj: 1.1.2
+
+ adler-32@1.3.1: {}
+
+ aes-decrypter@1.0.3:
+ dependencies:
+ pkcs7: 0.2.3
+
+ aes-decrypter@4.0.2:
+ dependencies:
+ '@babel/runtime': 7.29.2
+ '@videojs/vhs-utils': 4.1.1
+ global: 4.4.0
+ pkcs7: 1.0.4
+
+ ajv@6.14.0:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
+ alien-signals@3.1.2: {}
+
+ ansi-regex@2.1.1: {}
+
+ ansi-regex@5.0.1: {}
+
+ ansi-styles@2.2.1: {}
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ ant-design-vue@4.2.6(vue@3.5.33(typescript@6.0.3)):
+ dependencies:
+ '@ant-design/colors': 6.0.0
+ '@ant-design/icons-vue': 7.0.1(vue@3.5.33(typescript@6.0.3))
+ '@babel/runtime': 7.29.2
+ '@ctrl/tinycolor': 3.6.1
+ '@emotion/hash': 0.9.2
+ '@emotion/unitless': 0.8.1
+ '@simonwep/pickr': 1.8.2
+ array-tree-filter: 2.1.0
+ async-validator: 4.2.5
+ csstype: 3.2.3
+ dayjs: 1.11.20
+ dom-align: 1.12.4
+ dom-scroll-into-view: 2.0.1
+ lodash: 4.18.1
+ lodash-es: 4.18.1
+ resize-observer-polyfill: 1.5.1
+ scroll-into-view-if-needed: 2.2.31
+ shallow-equal: 1.2.1
+ stylis: 4.4.0
+ throttle-debounce: 5.0.2
+ vue: 3.5.33(typescript@6.0.3)
+ vue-types: 3.0.2(vue@3.5.33(typescript@6.0.3))
+ warning: 4.0.3
+
+ antdv-draggable-modal@1.1.6(ant-design-vue@4.2.6(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)):
+ dependencies:
+ ant-design-vue: 4.2.6(vue@3.5.33(typescript@6.0.3))
+ vue: 3.5.33(typescript@6.0.3)
+
+ any-promise@1.3.0: {}
+
+ anymatch@3.1.3:
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.2
+
+ arc@0.2.0: {}
+
+ archiver-utils@2.1.0:
+ dependencies:
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ lazystream: 1.0.1
+ lodash.defaults: 4.2.0
+ lodash.difference: 4.5.0
+ lodash.flatten: 4.4.0
+ lodash.isplainobject: 4.0.6
+ lodash.union: 4.6.0
+ normalize-path: 3.0.0
+ readable-stream: 2.3.8
+
+ archiver-utils@3.0.4:
+ dependencies:
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ lazystream: 1.0.1
+ lodash.defaults: 4.2.0
+ lodash.difference: 4.5.0
+ lodash.flatten: 4.4.0
+ lodash.isplainobject: 4.0.6
+ lodash.union: 4.6.0
+ normalize-path: 3.0.0
+ readable-stream: 3.6.2
+
+ archiver@5.3.2:
+ dependencies:
+ archiver-utils: 2.1.0
+ async: 3.2.6
+ buffer-crc32: 0.2.13
+ readable-stream: 3.6.2
+ readdir-glob: 1.1.3
+ tar-stream: 2.2.0
+ zip-stream: 4.1.1
+
+ arg@4.1.3: {}
+
+ arg@5.0.2: {}
+
+ argparse@2.0.1: {}
+
+ aria-hidden@1.2.6:
+ dependencies:
+ tslib: 2.8.1
+
+ arr-diff@4.0.0: {}
+
+ arr-flatten@1.1.0: {}
+
+ arr-union@3.1.0: {}
+
+ array-buffer-byte-length@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ is-array-buffer: 3.0.5
+
+ array-ify@1.0.0: {}
+
+ array-tree-filter@2.1.0: {}
+
+ array-union@2.1.0: {}
+
+ array-unique@0.3.2: {}
+
+ arraybuffer.prototype.slice@1.0.4:
+ dependencies:
+ array-buffer-byte-length: 1.0.2
+ call-bind: 1.0.9
+ define-properties: 1.2.1
+ es-abstract: 1.24.2
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ is-array-buffer: 3.0.5
+
+ arrify@1.0.1: {}
+
+ assign-symbols@1.0.0: {}
+
+ async-function@1.0.0: {}
+
+ async-lock@1.4.1: {}
+
+ async-validator@4.2.5: {}
+
+ async@3.2.6: {}
+
+ asynckit@0.4.0: {}
+
+ at-least-node@1.0.0: {}
+
+ atob@2.1.2: {}
+
+ autolinker@4.1.5:
+ dependencies:
+ tslib: 2.8.1
+
+ autoprefixer@10.5.0(postcss@8.5.10):
+ dependencies:
+ browserslist: 4.28.2
+ caniuse-lite: 1.0.30001790
+ fraction.js: 5.3.4
+ picocolors: 1.1.1
+ postcss: 8.5.10
+ postcss-value-parser: 4.2.0
+
+ available-typed-arrays@1.0.7:
+ dependencies:
+ possible-typed-array-names: 1.1.0
+
+ axios@1.15.2:
+ dependencies:
+ follow-redirects: 1.16.0
+ form-data: 4.0.5
+ proxy-from-env: 2.1.0
+ transitivePeerDependencies:
+ - debug
+
+ babel-runtime@6.26.0:
+ dependencies:
+ core-js: 2.6.12
+ regenerator-runtime: 0.11.1
+
+ balanced-match@1.0.2: {}
+
+ base64-js@1.5.1: {}
+
+ base@0.11.2:
+ dependencies:
+ cache-base: 1.0.1
+ class-utils: 0.3.6
+ component-emitter: 1.3.1
+ define-property: 1.0.0
+ isobject: 3.0.1
+ mixin-deep: 1.3.2
+ pascalcase: 0.1.1
+
+ baseline-browser-mapping@2.10.20: {}
+
+ better-scroll@2.5.1:
+ dependencies:
+ '@better-scroll/core': 2.5.1
+ '@better-scroll/indicators': 2.5.1
+ '@better-scroll/infinity': 2.5.1
+ '@better-scroll/mouse-wheel': 2.5.1
+ '@better-scroll/movable': 2.5.1
+ '@better-scroll/nested-scroll': 2.5.1
+ '@better-scroll/observe-dom': 2.5.1
+ '@better-scroll/observe-image': 2.5.1
+ '@better-scroll/pull-down': 2.5.1
+ '@better-scroll/pull-up': 2.5.1
+ '@better-scroll/scroll-bar': 2.5.1
+ '@better-scroll/slide': 2.5.1
+ '@better-scroll/wheel': 2.5.1
+ '@better-scroll/zoom': 2.5.1
+
+ big-integer@1.6.52: {}
+
+ big.js@5.2.2: {}
+
+ bignumber.js@9.3.1: {}
+
+ binary-extensions@2.3.0: {}
+
+ binary@0.3.0:
+ dependencies:
+ buffers: 0.1.1
+ chainsaw: 0.1.0
+
+ bitmap-sdf@1.0.4: {}
+
+ bl@4.1.0:
+ dependencies:
+ buffer: 5.7.1
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+
+ bluebird@3.4.7: {}
+
+ bluebird@3.7.2: {}
+
+ boolbase@1.0.0: {}
+
+ brace-expansion@1.1.14:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ brace-expansion@2.1.1:
+ dependencies:
+ balanced-match: 1.0.2
+
+ braces@2.3.2:
+ dependencies:
+ arr-flatten: 1.1.0
+ array-unique: 0.3.2
+ extend-shallow: 2.0.1
+ fill-range: 4.0.0
+ isobject: 3.0.1
+ repeat-element: 1.1.4
+ snapdragon: 0.8.2
+ snapdragon-node: 2.1.1
+ split-string: 3.1.0
+ to-regex: 3.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
+ browserslist@4.28.2:
+ dependencies:
+ baseline-browser-mapping: 2.10.20
+ caniuse-lite: 1.0.30001790
+ electron-to-chromium: 1.5.343
+ node-releases: 2.0.38
+ update-browserslist-db: 1.2.3(browserslist@4.28.2)
+
+ buffer-crc32@0.2.13: {}
+
+ buffer-indexof-polyfill@1.0.2: {}
+
+ buffer@5.7.1:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ buffers@0.1.1: {}
+
+ cache-base@1.0.1:
+ dependencies:
+ collection-visit: 1.0.0
+ component-emitter: 1.3.1
+ get-value: 2.0.6
+ has-value: 1.0.0
+ isobject: 3.0.1
+ set-value: 2.0.1
+ to-object-path: 0.3.0
+ union-value: 1.0.1
+ unset-value: 1.0.0
+
+ call-bind-apply-helpers@1.0.2:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+
+ call-bind@1.0.9:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ get-intrinsic: 1.3.0
+ set-function-length: 1.2.2
+
+ call-bound@1.0.4:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ get-intrinsic: 1.3.0
+
+ callsites@3.1.0: {}
+
+ camelcase-css@2.0.1: {}
+
+ camelcase-keys@6.2.2:
+ dependencies:
+ camelcase: 5.3.1
+ map-obj: 4.3.0
+ quick-lru: 4.0.1
+
+ camelcase@5.3.1: {}
+
+ caniuse-lite@1.0.30001790: {}
+
+ cesium@1.141.0:
+ dependencies:
+ '@cesium/engine': 25.0.0
+ '@cesium/widgets': 15.0.0
+
+ cfb@1.2.2:
+ dependencies:
+ adler-32: 1.3.1
+ crc-32: 1.2.2
+
+ chainsaw@0.1.0:
+ dependencies:
+ traverse: 0.3.9
+
+ chalk@1.1.3:
+ dependencies:
+ ansi-styles: 2.2.1
+ escape-string-regexp: 1.0.5
+ has-ansi: 2.0.0
+ strip-ansi: 3.0.1
+ supports-color: 2.0.0
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ chokidar@3.6.0:
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.3
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ chokidar@4.0.3:
+ dependencies:
+ readdirp: 4.1.2
+
+ cjk-regex@3.4.0:
+ dependencies:
+ regexp-util: 2.0.3
+ unicode-regex: 4.2.0
+
+ class-utils@0.3.6:
+ dependencies:
+ arr-union: 3.1.0
+ define-property: 0.2.5
+ isobject: 3.0.1
+ static-extend: 0.1.2
+
+ class-variance-authority@0.7.1:
+ dependencies:
+ clsx: 2.1.1
+
+ classnames@2.5.1: {}
+
+ cliui@8.0.1:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
+ clone@2.1.2: {}
+
+ clsx@2.1.1: {}
+
+ codepage@1.14.0:
+ dependencies:
+ commander: 2.14.1
+ exit-on-epipe: 1.0.1
+
+ codepage@1.15.0: {}
+
+ collapse-white-space@2.1.0: {}
+
+ collection-visit@1.0.0:
+ dependencies:
+ map-visit: 1.0.0
+ object-visit: 1.0.1
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
+ commander@2.14.1: {}
+
+ commander@2.17.1: {}
+
+ commander@2.20.3: {}
+
+ commander@4.1.1: {}
+
+ commander@7.2.0: {}
+
+ compare-func@2.0.0:
+ dependencies:
+ array-ify: 1.0.0
+ dot-prop: 5.3.0
+
+ component-emitter@1.3.1: {}
+
+ compress-commons@4.1.2:
+ dependencies:
+ buffer-crc32: 0.2.13
+ crc32-stream: 4.0.3
+ normalize-path: 3.0.0
+ readable-stream: 3.6.2
+
+ compute-scroll-into-view@1.0.20: {}
+
+ concat-map@0.0.1: {}
+
+ concaveman@1.2.1:
+ dependencies:
+ point-in-polygon: 1.1.0
+ rbush: 3.0.1
+ robust-predicates: 2.0.4
+ tinyqueue: 2.0.3
+
+ conventional-changelog-angular@5.0.13:
+ dependencies:
+ compare-func: 2.0.0
+ q: 1.5.1
+
+ conventional-changelog-conventionalcommits@4.6.3:
+ dependencies:
+ compare-func: 2.0.0
+ lodash: 4.18.1
+ q: 1.5.1
+
+ conventional-commits-parser@3.2.4:
+ dependencies:
+ JSONStream: 1.3.5
+ is-text-path: 1.0.1
+ lodash: 4.18.1
+ meow: 8.1.2
+ split2: 3.2.2
+ through2: 4.0.2
+
+ copy-descriptor@0.1.1: {}
+
+ core-js@2.6.12: {}
+
+ core-js@3.49.0: {}
+
+ core-util-is@1.0.3: {}
+
+ cors@2.8.6:
+ dependencies:
+ object-assign: 4.1.1
+ vary: 1.1.2
+
+ cosmiconfig-typescript-loader@2.0.2(@types/node@16.18.126)(cosmiconfig@7.1.0)(typescript@4.9.5):
+ dependencies:
+ '@types/node': 16.18.126
+ cosmiconfig: 7.1.0
+ ts-node: 10.9.2(@types/node@16.18.126)(typescript@4.9.5)
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - '@swc/core'
+ - '@swc/wasm'
+
+ cosmiconfig@7.1.0:
+ dependencies:
+ '@types/parse-json': 4.0.2
+ import-fresh: 3.3.1
+ parse-json: 5.2.0
+ path-type: 4.0.0
+ yaml: 1.10.3
+
+ crc-32@1.2.2: {}
+
+ crc32-stream@4.0.3:
+ dependencies:
+ crc-32: 1.2.2
+ readable-stream: 3.6.2
+
+ create-require@1.1.1: {}
+
+ cross-spawn@7.0.6:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ crypto-js@4.2.0: {}
+
+ css-box-model@1.2.1:
+ dependencies:
+ tiny-invariant: 1.3.3
+
+ css-select@4.3.0:
+ dependencies:
+ boolbase: 1.0.0
+ css-what: 6.2.2
+ domhandler: 4.3.1
+ domutils: 2.8.0
+ nth-check: 2.1.1
+
+ css-tree@1.1.3:
+ dependencies:
+ mdn-data: 2.0.14
+ source-map: 0.6.1
+
+ css-what@6.2.2: {}
+
+ cssesc@3.0.0: {}
+
+ csso@4.2.0:
+ dependencies:
+ css-tree: 1.1.3
+
+ csstype@3.2.3: {}
+
+ d3-array@1.2.4: {}
+
+ d3-geo@1.7.1:
+ dependencies:
+ d3-array: 1.2.4
+
+ d3-voronoi@1.1.2: {}
+
+ d@1.0.2:
+ dependencies:
+ es5-ext: 0.10.64
+ type: 2.7.3
+
+ dargs@7.0.0: {}
+
+ data-view-buffer@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ data-view-byte-length@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ data-view-byte-offset@1.0.1:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ dayjs@1.11.20: {}
+
+ debug@2.6.9:
+ dependencies:
+ ms: 2.0.0
+
+ debug@4.4.3:
+ dependencies:
+ ms: 2.1.3
+
+ decamelize-keys@1.1.1:
+ dependencies:
+ decamelize: 1.2.0
+ map-obj: 1.0.1
+
+ decamelize@1.2.0: {}
+
+ decimal.js@10.6.0: {}
+
+ decode-uri-component@0.2.2: {}
+
+ deep-is@0.1.4: {}
+
+ default-passive-events@2.0.0: {}
+
+ define-data-property@1.1.4:
+ dependencies:
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ define-properties@1.2.1:
+ dependencies:
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
+ object-keys: 1.1.1
+
+ define-property@0.2.5:
+ dependencies:
+ is-descriptor: 0.1.7
+
+ define-property@1.0.0:
+ dependencies:
+ is-descriptor: 1.0.3
+
+ define-property@2.0.2:
+ dependencies:
+ is-descriptor: 1.0.3
+ isobject: 3.0.1
+
+ delayed-stream@1.0.0: {}
+
+ depd@2.0.0: {}
+
+ destroy@1.2.0: {}
+
+ detect-libc@2.1.2:
+ optional: true
+
+ detect-node-es@1.1.0: {}
+
+ didyoumean@1.2.2: {}
+
+ diff@4.0.4: {}
+
+ dir-glob@3.0.1:
+ dependencies:
+ path-type: 4.0.0
+
+ dlv@1.1.3: {}
+
+ doctrine@3.0.0:
+ dependencies:
+ esutils: 2.0.3
+
+ dom-align@1.12.4: {}
+
+ dom-helpers@5.2.1:
+ dependencies:
+ '@babel/runtime': 7.29.2
+ csstype: 3.2.3
+
+ dom-scroll-into-view@2.0.1: {}
+
+ dom-serializer@0.2.2:
+ dependencies:
+ domelementtype: 2.3.0
+ entities: 2.2.0
+
+ dom-serializer@1.4.1:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+ entities: 2.2.0
+
+ dom-to-image@2.6.0: {}
+
+ dom-walk@0.1.2: {}
+
+ dom7@3.0.0:
+ dependencies:
+ ssr-window: 3.0.0
+
+ domelementtype@1.3.1: {}
+
+ domelementtype@2.3.0: {}
+
+ domhandler@2.4.2:
+ dependencies:
+ domelementtype: 1.3.1
+
+ domhandler@4.3.1:
+ dependencies:
+ domelementtype: 2.3.0
+
+ dompurify@3.4.3:
+ optionalDependencies:
+ '@types/trusted-types': 2.0.7
+
+ domutils@1.7.0:
+ dependencies:
+ dom-serializer: 0.2.2
+ domelementtype: 1.3.1
+
+ domutils@2.8.0:
+ dependencies:
+ dom-serializer: 1.4.1
+ domelementtype: 2.3.0
+ domhandler: 4.3.1
+
+ dot-prop@5.3.0:
+ dependencies:
+ is-obj: 2.0.0
+
+ draco3d@1.5.7: {}
+
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ duplexer2@0.1.4:
+ dependencies:
+ readable-stream: 2.3.8
+
+ earcut@2.2.4: {}
+
+ earcut@3.0.2: {}
+
+ echarts-wordcloud@2.1.0(echarts@5.6.0):
+ dependencies:
+ echarts: 5.6.0
+
+ echarts@5.6.0:
+ dependencies:
+ tslib: 2.3.0
+ zrender: 5.6.1
+
+ ee-first@1.1.1: {}
+
+ electron-to-chromium@1.5.343: {}
+
+ element-plus@2.13.7(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)):
+ dependencies:
+ '@ctrl/tinycolor': 4.2.0
+ '@element-plus/icons-vue': 2.3.2(vue@3.5.33(typescript@6.0.3))
+ '@floating-ui/dom': 1.7.6
+ '@popperjs/core': '@sxzz/popperjs-es@2.11.8'
+ '@types/lodash': 4.17.24
+ '@types/lodash-es': 4.17.12
+ '@vueuse/core': 12.0.0(typescript@6.0.3)
+ async-validator: 4.2.5
+ dayjs: 1.11.20
+ lodash: 4.18.1
+ lodash-es: 4.18.1
+ lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.18.1)(lodash@4.18.1)
+ memoize-one: 6.0.0
+ normalize-wheel-es: 1.2.0
+ vue: 3.5.33(typescript@6.0.3)
+ vue-component-type-helpers: 3.2.7
+ transitivePeerDependencies:
+ - typescript
+
+ emoji-regex@8.0.0: {}
+
+ emojis-list@3.0.0: {}
+
+ encodeurl@2.0.0: {}
+
+ end-of-stream@1.4.5:
+ dependencies:
+ once: 1.4.0
+
+ entities@1.1.2: {}
+
+ entities@2.2.0: {}
+
+ entities@7.0.1: {}
+
+ error-ex@1.3.4:
+ dependencies:
+ is-arrayish: 0.2.1
+
+ es-abstract@1.24.2:
+ dependencies:
+ array-buffer-byte-length: 1.0.2
+ arraybuffer.prototype.slice: 1.0.4
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.9
+ call-bound: 1.0.4
+ data-view-buffer: 1.0.2
+ data-view-byte-length: 1.0.2
+ data-view-byte-offset: 1.0.1
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ es-set-tostringtag: 2.1.0
+ es-to-primitive: 1.3.0
+ function.prototype.name: 1.1.8
+ get-intrinsic: 1.3.0
+ get-proto: 1.0.1
+ get-symbol-description: 1.1.0
+ globalthis: 1.0.4
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+ has-proto: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.3
+ internal-slot: 1.1.0
+ is-array-buffer: 3.0.5
+ is-callable: 1.2.7
+ is-data-view: 1.0.2
+ is-negative-zero: 2.0.3
+ is-regex: 1.2.1
+ is-set: 2.0.3
+ is-shared-array-buffer: 1.0.4
+ is-string: 1.1.1
+ is-typed-array: 1.1.15
+ is-weakref: 1.1.1
+ math-intrinsics: 1.1.0
+ object-inspect: 1.13.4
+ object-keys: 1.1.1
+ object.assign: 4.1.7
+ own-keys: 1.0.1
+ regexp.prototype.flags: 1.5.4
+ safe-array-concat: 1.1.4
+ safe-push-apply: 1.0.0
+ safe-regex-test: 1.1.0
+ set-proto: 1.0.0
+ stop-iteration-iterator: 1.1.0
+ string.prototype.trim: 1.2.10
+ string.prototype.trimend: 1.0.9
+ string.prototype.trimstart: 1.0.8
+ typed-array-buffer: 1.0.3
+ typed-array-byte-length: 1.0.3
+ typed-array-byte-offset: 1.0.4
+ typed-array-length: 1.0.7
+ unbox-primitive: 1.1.0
+ which-typed-array: 1.1.20
+
+ es-define-property@1.0.1: {}
+
+ es-errors@1.3.0: {}
+
+ es-object-atoms@1.1.1:
+ dependencies:
+ es-errors: 1.3.0
+
+ es-set-tostringtag@2.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.3
+
+ es-to-primitive@1.3.0:
+ dependencies:
+ is-callable: 1.2.7
+ is-date-object: 1.1.0
+ is-symbol: 1.1.1
+
+ es5-ext@0.10.64:
+ dependencies:
+ es6-iterator: 2.0.3
+ es6-symbol: 3.1.4
+ esniff: 2.0.1
+ next-tick: 1.1.0
+
+ es5-shim@4.6.7: {}
+
+ es6-iterator@2.0.3:
+ dependencies:
+ d: 1.0.2
+ es5-ext: 0.10.64
+ es6-symbol: 3.1.4
+
+ es6-symbol@3.1.4:
+ dependencies:
+ d: 1.0.2
+ ext: 1.7.0
+
+ esbuild@0.18.20:
+ optionalDependencies:
+ '@esbuild/android-arm': 0.18.20
+ '@esbuild/android-arm64': 0.18.20
+ '@esbuild/android-x64': 0.18.20
+ '@esbuild/darwin-arm64': 0.18.20
+ '@esbuild/darwin-x64': 0.18.20
+ '@esbuild/freebsd-arm64': 0.18.20
+ '@esbuild/freebsd-x64': 0.18.20
+ '@esbuild/linux-arm': 0.18.20
+ '@esbuild/linux-arm64': 0.18.20
+ '@esbuild/linux-ia32': 0.18.20
+ '@esbuild/linux-loong64': 0.18.20
+ '@esbuild/linux-mips64el': 0.18.20
+ '@esbuild/linux-ppc64': 0.18.20
+ '@esbuild/linux-riscv64': 0.18.20
+ '@esbuild/linux-s390x': 0.18.20
+ '@esbuild/linux-x64': 0.18.20
+ '@esbuild/netbsd-x64': 0.18.20
+ '@esbuild/openbsd-x64': 0.18.20
+ '@esbuild/sunos-x64': 0.18.20
+ '@esbuild/win32-arm64': 0.18.20
+ '@esbuild/win32-ia32': 0.18.20
+ '@esbuild/win32-x64': 0.18.20
+
+ escalade@3.2.0: {}
+
+ escape-html@1.0.3: {}
+
+ escape-string-regexp@1.0.5: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ eslint-config-prettier@8.10.2(eslint@8.57.1):
+ dependencies:
+ eslint: 8.57.1
+
+ eslint-plugin-prettier@4.2.5(eslint-config-prettier@8.10.2(eslint@8.57.1))(eslint@8.57.1)(prettier@2.8.8):
+ dependencies:
+ eslint: 8.57.1
+ prettier: 2.8.8
+ prettier-linter-helpers: 1.0.1
+ optionalDependencies:
+ eslint-config-prettier: 8.10.2(eslint@8.57.1)
+
+ eslint-plugin-vue@8.7.1(eslint@8.57.1):
+ dependencies:
+ eslint: 8.57.1
+ eslint-utils: 3.0.0(eslint@8.57.1)
+ natural-compare: 1.4.0
+ nth-check: 2.1.1
+ postcss-selector-parser: 6.1.2
+ semver: 7.7.4
+ vue-eslint-parser: 8.3.0(eslint@8.57.1)
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-scope@5.1.1:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 4.3.0
+
+ eslint-scope@7.2.2:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-utils@3.0.0(eslint@8.57.1):
+ dependencies:
+ eslint: 8.57.1
+ eslint-visitor-keys: 2.1.0
+
+ eslint-visitor-keys@2.1.0: {}
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint@8.57.1:
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1)
+ '@eslint-community/regexpp': 4.12.2
+ '@eslint/eslintrc': 2.1.4
+ '@eslint/js': 8.57.1
+ '@humanwhocodes/config-array': 0.13.0
+ '@humanwhocodes/module-importer': 1.0.1
+ '@nodelib/fs.walk': 1.2.8
+ '@ungap/structured-clone': 1.3.0
+ ajv: 6.14.0
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.4.3
+ doctrine: 3.0.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 7.2.2
+ eslint-visitor-keys: 3.4.3
+ espree: 9.6.1
+ esquery: 1.7.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 6.0.1
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ globals: 13.24.0
+ graphemer: 1.4.0
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ is-path-inside: 3.0.3
+ js-yaml: 4.1.1
+ json-stable-stringify-without-jsonify: 1.0.1
+ levn: 0.4.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.5
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ strip-ansi: 6.0.1
+ text-table: 0.2.0
+ transitivePeerDependencies:
+ - supports-color
+
+ esniff@2.0.1:
+ dependencies:
+ d: 1.0.2
+ es5-ext: 0.10.64
+ event-emitter: 0.3.5
+ type: 2.7.3
+
+ espree@9.6.1:
+ dependencies:
+ acorn: 8.16.0
+ acorn-jsx: 5.3.2(acorn@8.16.0)
+ eslint-visitor-keys: 3.4.3
+
+ esquery@1.7.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esri-leaflet@3.0.19(leaflet@1.9.4):
+ dependencies:
+ '@terraformer/arcgis': 2.1.2
+ leaflet: 1.9.4
+ tiny-binary-search: 1.0.3
+
+ estraverse@4.3.0: {}
+
+ estraverse@5.3.0: {}
+
+ estree-walker@2.0.2: {}
+
+ esutils@2.0.3: {}
+
+ etag@1.8.1: {}
+
+ event-emitter@0.3.5:
+ dependencies:
+ d: 1.0.2
+ es5-ext: 0.10.64
+
+ exceljs@4.4.0:
+ dependencies:
+ archiver: 5.3.2
+ dayjs: 1.11.20
+ fast-csv: 4.3.6
+ jszip: 3.10.1
+ readable-stream: 3.6.2
+ saxes: 5.0.1
+ tmp: 0.2.7
+ unzipper: 0.10.14
+ uuid: 8.3.2
+
+ execa@5.1.1:
+ dependencies:
+ cross-spawn: 7.0.6
+ get-stream: 6.0.1
+ human-signals: 2.1.0
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ strip-final-newline: 2.0.0
+
+ exit-on-epipe@1.0.1: {}
+
+ expand-brackets@2.1.4:
+ dependencies:
+ debug: 2.6.9
+ define-property: 0.2.5
+ extend-shallow: 2.0.1
+ posix-character-classes: 0.1.1
+ regex-not: 1.0.2
+ snapdragon: 0.8.2
+ to-regex: 3.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ ext@1.7.0:
+ dependencies:
+ type: 2.7.3
+
+ extend-shallow@2.0.1:
+ dependencies:
+ is-extendable: 0.1.1
+
+ extend-shallow@3.0.2:
+ dependencies:
+ assign-symbols: 1.0.0
+ is-extendable: 1.0.1
+
+ extglob@2.0.4:
+ dependencies:
+ array-unique: 0.3.2
+ define-property: 1.0.0
+ expand-brackets: 2.1.4
+ extend-shallow: 2.0.1
+ fragment-cache: 0.2.1
+ regex-not: 1.0.2
+ snapdragon: 0.8.2
+ to-regex: 3.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ fast-csv@4.3.6:
+ dependencies:
+ '@fast-csv/format': 4.3.5
+ '@fast-csv/parse': 4.3.6
+
+ fast-deep-equal@3.1.3: {}
+
+ fast-diff@1.3.0: {}
+
+ fast-equals@4.0.3: {}
+
+ fast-glob@3.3.3:
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.8
+
+ fast-json-stable-stringify@2.1.0: {}
+
+ fast-levenshtein@2.0.6: {}
+
+ fastq@1.20.1:
+ dependencies:
+ reusify: 1.1.0
+
+ fdir@6.5.0(picomatch@4.0.4):
+ optionalDependencies:
+ picomatch: 4.0.4
+
+ fflate@0.3.11: {}
+
+ fflate@0.8.2: {}
+
+ file-entry-cache@6.0.1:
+ dependencies:
+ flat-cache: 3.2.0
+
+ file-saver@2.0.5: {}
+
+ fill-range@4.0.0:
+ dependencies:
+ extend-shallow: 2.0.1
+ is-number: 3.0.0
+ repeat-string: 1.6.1
+ to-regex-range: 2.1.1
+
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ find-up@4.1.0:
+ dependencies:
+ locate-path: 5.0.0
+ path-exists: 4.0.0
+
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ flat-cache@3.2.0:
+ dependencies:
+ flatted: 3.4.2
+ keyv: 4.5.4
+ rimraf: 3.0.2
+
+ flatted@3.4.2: {}
+
+ follow-redirects@1.16.0: {}
+
+ for-each@0.3.5:
+ dependencies:
+ is-callable: 1.2.7
+
+ for-in@1.0.2: {}
+
+ form-data@4.0.5:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ es-set-tostringtag: 2.1.0
+ hasown: 2.0.3
+ mime-types: 2.1.35
+
+ frac@1.1.2: {}
+
+ fraction.js@5.3.4: {}
+
+ fragment-cache@0.2.1:
+ dependencies:
+ map-cache: 0.2.2
+
+ franc-min@6.2.0:
+ dependencies:
+ trigram-utils: 2.0.1
+
+ fresh@0.5.2: {}
+
+ fs-constants@1.0.0: {}
+
+ fs-extra@10.1.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 6.2.1
+ universalify: 2.0.1
+
+ fs-extra@9.1.0:
+ dependencies:
+ at-least-node: 1.0.0
+ graceful-fs: 4.2.11
+ jsonfile: 6.2.1
+ universalify: 2.0.1
+
+ fs.realpath@1.0.0: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ fstream@1.0.12:
+ dependencies:
+ graceful-fs: 4.2.11
+ inherits: 2.0.4
+ mkdirp: 0.5.6
+ rimraf: 2.7.1
+
+ function-bind@1.1.2: {}
+
+ function.prototype.name@1.1.8:
+ dependencies:
+ call-bind: 1.0.9
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ functions-have-names: 1.2.3
+ hasown: 2.0.3
+ is-callable: 1.2.7
+
+ functions-have-names@1.2.3: {}
+
+ generator-function@2.0.1: {}
+
+ geojson-equality-ts@1.0.2:
+ dependencies:
+ '@types/geojson': 7946.0.16
+
+ geojson-polygon-self-intersections@1.2.2:
+ dependencies:
+ rbush: 2.0.2
+
+ geotiff@3.0.5:
+ dependencies:
+ '@petamoriken/float16': 3.9.3
+ lerc: 3.0.0
+ pako: 2.1.0
+ parse-headers: 2.0.6
+ quick-lru: 6.1.2
+ web-worker: 1.5.0
+ xml-utils: 1.10.2
+ zstddec: 0.2.0
+
+ get-caller-file@2.0.5: {}
+
+ get-intrinsic@1.3.0:
+ dependencies:
+ call-bind-apply-helpers: 1.0.2
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ function-bind: 1.1.2
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.3
+ math-intrinsics: 1.1.0
+
+ get-nonce@1.0.1: {}
+
+ get-proto@1.0.1:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.1.1
+
+ get-stream@6.0.1: {}
+
+ get-symbol-description@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+
+ get-value@2.0.6: {}
+
+ git-raw-commits@2.0.11:
+ dependencies:
+ dargs: 7.0.0
+ lodash: 4.18.1
+ meow: 8.1.2
+ split2: 3.2.2
+ through2: 4.0.2
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob@7.2.3:
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.5
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
+ global-dirs@0.1.1:
+ dependencies:
+ ini: 1.3.8
+
+ global@4.3.2:
+ dependencies:
+ min-document: 2.19.2
+ process: 0.5.2
+
+ global@4.4.0:
+ dependencies:
+ min-document: 2.19.2
+ process: 0.11.10
+
+ globals@13.24.0:
+ dependencies:
+ type-fest: 0.20.2
+
+ globalthis@1.0.4:
+ dependencies:
+ define-properties: 1.2.1
+ gopd: 1.2.0
+
+ globby@11.1.0:
+ dependencies:
+ array-union: 2.1.0
+ dir-glob: 3.0.1
+ fast-glob: 3.3.3
+ ignore: 5.3.2
+ merge2: 1.4.1
+ slash: 3.0.0
+
+ gopd@1.2.0: {}
+
+ graceful-fs@4.2.11: {}
+
+ grapheme-splitter@1.0.4: {}
+
+ graphemer@1.4.0: {}
+
+ hard-rejection@2.1.0: {}
+
+ has-ansi@2.0.0:
+ dependencies:
+ ansi-regex: 2.1.1
+
+ has-bigints@1.1.0: {}
+
+ has-flag@1.0.0: {}
+
+ has-flag@4.0.0: {}
+
+ has-property-descriptors@1.0.2:
+ dependencies:
+ es-define-property: 1.0.1
+
+ has-proto@1.2.0:
+ dependencies:
+ dunder-proto: 1.0.1
+
+ has-symbols@1.1.0: {}
+
+ has-tostringtag@1.0.2:
+ dependencies:
+ has-symbols: 1.1.0
+
+ has-value@0.3.1:
+ dependencies:
+ get-value: 2.0.6
+ has-values: 0.1.4
+ isobject: 2.1.0
+
+ has-value@1.0.0:
+ dependencies:
+ get-value: 2.0.6
+ has-values: 1.0.0
+ isobject: 3.0.1
+
+ has-values@0.1.4: {}
+
+ has-values@1.0.0:
+ dependencies:
+ is-number: 3.0.0
+ kind-of: 4.0.0
+
+ hasown@2.0.3:
+ dependencies:
+ function-bind: 1.1.2
+
+ he@1.2.0: {}
+
+ hoist-non-react-statics@3.3.2:
+ dependencies:
+ react-is: 16.13.1
+
+ hosted-git-info@2.8.9: {}
+
+ hosted-git-info@4.1.0:
+ dependencies:
+ lru-cache: 6.0.0
+
+ html-void-elements@2.0.1: {}
+
+ htmlparser2@3.10.1:
+ dependencies:
+ domelementtype: 1.3.1
+ domhandler: 2.4.2
+ domutils: 1.7.0
+ entities: 1.1.2
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+
+ http-errors@2.0.1:
+ dependencies:
+ depd: 2.0.0
+ inherits: 2.0.4
+ setprototypeof: 1.2.0
+ statuses: 2.0.2
+ toidentifier: 1.0.1
+
+ human-signals@2.1.0: {}
+
+ husky@7.0.4: {}
+
+ i18next@20.6.1:
+ dependencies:
+ '@babel/runtime': 7.29.2
+
+ ieee754@1.2.1: {}
+
+ ignore@5.3.2: {}
+
+ image-size@0.5.5: {}
+
+ immediate@3.0.6: {}
+
+ immer@9.0.21: {}
+
+ immutable@5.1.5: {}
+
+ import-fresh@3.3.1:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ imurmurhash@0.1.4: {}
+
+ indent-string@4.0.0: {}
+
+ individual@2.0.0: {}
+
+ inflight@1.0.6:
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+
+ inherits@2.0.4: {}
+
+ ini@1.3.8: {}
+
+ internal-slot@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ hasown: 2.0.3
+ side-channel: 1.1.0
+
+ is-accessor-descriptor@1.0.1:
+ dependencies:
+ hasown: 2.0.3
+
+ is-array-buffer@3.0.5:
+ dependencies:
+ call-bind: 1.0.9
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+
+ is-arrayish@0.2.1: {}
+
+ is-async-function@2.1.1:
+ dependencies:
+ async-function: 1.0.0
+ call-bound: 1.0.4
+ get-proto: 1.0.1
+ has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
+
+ is-bigint@1.1.0:
+ dependencies:
+ has-bigints: 1.1.0
+
+ is-binary-path@2.1.0:
+ dependencies:
+ binary-extensions: 2.3.0
+
+ is-boolean-object@1.2.2:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-buffer@1.1.6: {}
+
+ is-callable@1.2.7: {}
+
+ is-core-module@2.16.1:
+ dependencies:
+ hasown: 2.0.3
+
+ is-data-descriptor@1.0.1:
+ dependencies:
+ hasown: 2.0.3
+
+ is-data-view@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+ is-typed-array: 1.1.15
+
+ is-date-object@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-descriptor@0.1.7:
+ dependencies:
+ is-accessor-descriptor: 1.0.1
+ is-data-descriptor: 1.0.1
+
+ is-descriptor@1.0.3:
+ dependencies:
+ is-accessor-descriptor: 1.0.1
+ is-data-descriptor: 1.0.1
+
+ is-extendable@0.1.1: {}
+
+ is-extendable@1.0.1:
+ dependencies:
+ is-plain-object: 2.0.4
+
+ is-extglob@2.1.1: {}
+
+ is-finalizationregistry@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+
+ is-fullwidth-code-point@3.0.0: {}
+
+ is-function@1.0.2: {}
+
+ is-generator-function@1.1.2:
+ dependencies:
+ call-bound: 1.0.4
+ generator-function: 2.0.1
+ get-proto: 1.0.1
+ has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-hotkey@0.2.0: {}
+
+ is-map@2.0.3: {}
+
+ is-negative-zero@2.0.3: {}
+
+ is-number-object@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-number@3.0.0:
+ dependencies:
+ kind-of: 3.2.2
+
+ is-number@7.0.0: {}
+
+ is-obj@2.0.0: {}
+
+ is-path-inside@3.0.3: {}
+
+ is-plain-obj@1.1.0: {}
+
+ is-plain-object@2.0.4:
+ dependencies:
+ isobject: 3.0.1
+
+ is-plain-object@3.0.1: {}
+
+ is-plain-object@5.0.0: {}
+
+ is-reference@1.2.1:
+ dependencies:
+ '@types/estree': 1.0.9
+
+ is-regex@1.2.1:
+ dependencies:
+ call-bound: 1.0.4
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.3
+
+ is-set@2.0.3: {}
+
+ is-shared-array-buffer@1.0.4:
+ dependencies:
+ call-bound: 1.0.4
+
+ is-stream@2.0.1: {}
+
+ is-string@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+ has-tostringtag: 1.0.2
+
+ is-symbol@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+ has-symbols: 1.1.0
+ safe-regex-test: 1.1.0
+
+ is-text-path@1.0.1:
+ dependencies:
+ text-extensions: 1.9.0
+
+ is-typed-array@1.1.15:
+ dependencies:
+ which-typed-array: 1.1.20
+
+ is-url@1.2.4: {}
+
+ is-weakmap@2.0.2: {}
+
+ is-weakref@1.1.1:
+ dependencies:
+ call-bound: 1.0.4
+
+ is-weakset@2.0.4:
+ dependencies:
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+
+ is-windows@1.0.2: {}
+
+ isarray@1.0.0: {}
+
+ isarray@2.0.5: {}
+
+ isexe@2.0.0: {}
+
+ isobject@2.1.0:
+ dependencies:
+ isarray: 1.0.0
+
+ isobject@3.0.1: {}
+
+ jiti@1.21.7: {}
+
+ js-base64@2.6.4: {}
+
+ js-base64@3.7.8: {}
+
+ js-cookie@3.0.5: {}
+
+ js-tokens@4.0.0: {}
+
+ js-yaml@4.1.1:
+ dependencies:
+ argparse: 2.0.1
+
+ jsencrypt@3.5.4: {}
+
+ jsep@1.4.0: {}
+
+ json-buffer@3.0.1: {}
+
+ json-parse-even-better-errors@2.3.1: {}
+
+ json-schema-traverse@0.4.1: {}
+
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
+ json5@1.0.2:
+ dependencies:
+ minimist: 1.2.8
+
+ jsonfile@6.2.1:
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ jsonparse@1.3.1: {}
+
+ jsts@2.7.1: {}
+
+ jszip@3.10.1:
+ dependencies:
+ lie: 3.3.0
+ pako: 1.0.11
+ readable-stream: 2.3.8
+ setimmediate: 1.0.5
+
+ kdbush@4.0.2: {}
+
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
+ kind-of@3.2.2:
+ dependencies:
+ is-buffer: 1.1.6
+
+ kind-of@4.0.0:
+ dependencies:
+ is-buffer: 1.1.6
+
+ kind-of@5.1.0: {}
+
+ kind-of@6.0.3: {}
+
+ ktx-parse@1.1.0: {}
+
+ lazystream@1.0.1:
+ dependencies:
+ readable-stream: 2.3.8
+
+ leaflet@1.9.4: {}
+
+ lerc@2.0.0: {}
+
+ lerc@3.0.0: {}
+
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
+ lie@3.1.1:
+ dependencies:
+ immediate: 3.0.6
+
+ lie@3.3.0:
+ dependencies:
+ immediate: 3.0.6
+
+ lilconfig@3.1.3: {}
+
+ lines-and-columns@1.2.4: {}
+
+ listenercount@1.0.1: {}
+
+ loader-utils@1.4.2:
+ dependencies:
+ big.js: 5.2.2
+ emojis-list: 3.0.0
+ json5: 1.0.2
+
+ localforage@1.10.0:
+ dependencies:
+ lie: 3.1.1
+
+ locate-path@5.0.0:
+ dependencies:
+ p-locate: 4.1.0
+
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
+ lodash-es@4.18.1: {}
+
+ lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.18.1)(lodash@4.18.1):
+ dependencies:
+ '@types/lodash-es': 4.17.12
+ lodash: 4.18.1
+ lodash-es: 4.18.1
+
+ lodash.camelcase@4.3.0: {}
+
+ lodash.clonedeep@4.5.0: {}
+
+ lodash.debounce@4.0.8: {}
+
+ lodash.defaults@4.2.0: {}
+
+ lodash.difference@4.5.0: {}
+
+ lodash.escaperegexp@4.1.2: {}
+
+ lodash.flatten@4.4.0: {}
+
+ lodash.foreach@4.5.0: {}
+
+ lodash.groupby@4.6.0: {}
+
+ lodash.isboolean@3.0.3: {}
+
+ lodash.isequal@4.5.0: {}
+
+ lodash.isfunction@3.0.9: {}
+
+ lodash.isnil@4.0.0: {}
+
+ lodash.isplainobject@4.0.6: {}
+
+ lodash.isundefined@3.0.1: {}
+
+ lodash.merge@4.6.2: {}
+
+ lodash.throttle@4.1.1: {}
+
+ lodash.toarray@4.4.0: {}
+
+ lodash.union@4.6.0: {}
+
+ lodash.uniq@4.5.0: {}
+
+ lodash@4.18.1: {}
+
+ long@5.3.2: {}
+
+ loose-envify@1.4.0:
+ dependencies:
+ js-tokens: 4.0.0
+
+ lru-cache@6.0.0:
+ dependencies:
+ yallist: 4.0.0
+
+ m3u8-parser@2.1.0: {}
+
+ m3u8-parser@7.2.0:
+ dependencies:
+ '@babel/runtime': 7.29.2
+ '@videojs/vhs-utils': 4.1.1
+ global: 4.4.0
+
+ magic-string@0.25.9:
+ dependencies:
+ sourcemap-codec: 1.4.8
+
+ magic-string@0.30.21:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+
+ make-error@1.3.6: {}
+
+ map-cache@0.2.2: {}
+
+ map-obj@1.0.1: {}
+
+ map-obj@4.3.0: {}
+
+ map-visit@1.0.0:
+ dependencies:
+ object-visit: 1.0.1
+
+ math-intrinsics@1.1.0: {}
+
+ mdn-data@2.0.14: {}
+
+ memoize-one@5.2.1: {}
+
+ memoize-one@6.0.0: {}
+
+ meow@8.1.2:
+ dependencies:
+ '@types/minimist': 1.2.5
+ camelcase-keys: 6.2.2
+ decamelize-keys: 1.1.1
+ hard-rejection: 2.1.0
+ minimist-options: 4.1.0
+ normalize-package-data: 3.0.3
+ read-pkg-up: 7.0.1
+ redent: 3.0.0
+ trim-newlines: 3.0.1
+ type-fest: 0.18.1
+ yargs-parser: 20.2.9
+
+ merge-options@1.0.1:
+ dependencies:
+ is-plain-obj: 1.1.0
+
+ merge-stream@2.0.0: {}
+
+ merge2@1.4.1: {}
+
+ mersenne-twister@1.1.0: {}
+
+ meshoptimizer@1.1.1: {}
+
+ micromatch@3.1.0:
+ dependencies:
+ arr-diff: 4.0.0
+ array-unique: 0.3.2
+ braces: 2.3.2
+ define-property: 1.0.0
+ extend-shallow: 2.0.1
+ extglob: 2.0.4
+ fragment-cache: 0.2.1
+ kind-of: 5.1.0
+ nanomatch: 1.2.13
+ object.pick: 1.3.0
+ regex-not: 1.0.2
+ snapdragon: 0.8.2
+ to-regex: 3.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ micromatch@4.0.8:
+ dependencies:
+ braces: 3.0.3
+ picomatch: 2.3.2
+
+ mime-db@1.52.0: {}
+
+ mime-match@1.0.2:
+ dependencies:
+ wildcard: 1.1.2
+
+ mime-types@2.1.35:
+ dependencies:
+ mime-db: 1.52.0
+
+ mime@1.6.0: {}
+
+ mimic-fn@2.1.0: {}
+
+ min-document@2.19.2:
+ dependencies:
+ dom-walk: 0.1.2
+
+ min-indent@1.0.1: {}
+
+ minimatch@3.1.5:
+ dependencies:
+ brace-expansion: 1.1.14
+
+ minimatch@5.1.9:
+ dependencies:
+ brace-expansion: 2.1.1
+
+ minimist-options@4.1.0:
+ dependencies:
+ arrify: 1.0.1
+ is-plain-obj: 1.1.0
+ kind-of: 6.0.3
+
+ minimist@1.2.8: {}
+
+ mixin-deep@1.3.2:
+ dependencies:
+ for-in: 1.0.2
+ is-extendable: 1.0.1
+
+ mkdirp@0.5.6:
+ dependencies:
+ minimist: 1.2.8
+
+ moment@2.30.1: {}
+
+ mpd-parser@1.3.1:
+ dependencies:
+ '@babel/runtime': 7.29.2
+ '@videojs/vhs-utils': 4.1.1
+ '@xmldom/xmldom': 0.8.13
+ global: 4.4.0
+
+ ms@2.0.0: {}
+
+ ms@2.1.3: {}
+
+ muggle-string@0.4.1: {}
+
+ mux.js@4.3.2: {}
+
+ mux.js@7.1.0:
+ dependencies:
+ '@babel/runtime': 7.29.2
+ global: 4.4.0
+
+ mz@2.7.0:
+ dependencies:
+ any-promise: 1.3.0
+ object-assign: 4.1.1
+ thenify-all: 1.6.0
+
+ n-gram@2.0.2: {}
+
+ namespace-emitter@2.0.1: {}
+
+ nanoid@3.3.11: {}
+
+ nanoid@5.1.6: {}
+
+ nanomatch@1.2.13:
+ dependencies:
+ arr-diff: 4.0.0
+ array-unique: 0.3.2
+ define-property: 2.0.2
+ extend-shallow: 3.0.2
+ fragment-cache: 0.2.1
+ is-windows: 1.0.2
+ kind-of: 6.0.3
+ object.pick: 1.3.0
+ regex-not: 1.0.2
+ snapdragon: 0.8.2
+ to-regex: 3.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ nanopop@2.4.2: {}
+
+ natural-compare-lite@1.4.0: {}
+
+ natural-compare@1.4.0: {}
+
+ next-tick@1.1.0: {}
+
+ node-addon-api@7.1.1:
+ optional: true
+
+ node-releases@2.0.38: {}
+
+ normalize-package-data@2.5.0:
+ dependencies:
+ hosted-git-info: 2.8.9
+ resolve: 1.22.12
+ semver: 5.7.2
+ validate-npm-package-license: 3.0.4
+
+ normalize-package-data@3.0.3:
+ dependencies:
+ hosted-git-info: 4.1.0
+ is-core-module: 2.16.1
+ semver: 7.7.4
+ validate-npm-package-license: 3.0.4
+
+ normalize-path@3.0.0: {}
+
+ normalize-wheel-es@1.2.0: {}
+
+ nosleep.js@0.12.0: {}
+
+ npm-run-path@4.0.1:
+ dependencies:
+ path-key: 3.1.1
+
+ nprogress@0.2.0: {}
+
+ nth-check@2.1.1:
+ dependencies:
+ boolbase: 1.0.0
+
+ numcodecs@0.3.2:
+ dependencies:
+ fflate: 0.8.2
+
+ numfmt@3.2.6: {}
+
+ object-assign@4.1.1: {}
+
+ object-copy@0.1.0:
+ dependencies:
+ copy-descriptor: 0.1.1
+ define-property: 0.2.5
+ kind-of: 3.2.2
+
+ object-hash@3.0.0: {}
+
+ object-inspect@1.13.4: {}
+
+ object-keys@1.1.1: {}
+
+ object-visit@1.0.1:
+ dependencies:
+ isobject: 3.0.1
+
+ object.assign@4.1.7:
+ dependencies:
+ call-bind: 1.0.9
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+ has-symbols: 1.1.0
+ object-keys: 1.1.1
+
+ object.pick@1.3.0:
+ dependencies:
+ isobject: 3.0.1
+
+ ol@10.9.0:
+ dependencies:
+ '@types/rbush': 4.0.0
+ earcut: 3.0.2
+ geotiff: 3.0.5
+ pbf: 4.0.1
+ rbush: 4.0.1
+ zarrita: 0.7.1
+
+ on-finished@2.4.1:
+ dependencies:
+ ee-first: 1.1.1
+
+ once@1.4.0:
+ dependencies:
+ wrappy: 1.0.2
+
+ onetime@5.1.2:
+ dependencies:
+ mimic-fn: 2.1.0
+
+ opentype.js@1.3.5: {}
+
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
+ ot-json1@1.0.2:
+ dependencies:
+ ot-text-unicode: 4.0.0
+
+ ot-text-unicode@4.0.0:
+ dependencies:
+ unicount: 1.1.0
+
+ own-keys@1.0.1:
+ dependencies:
+ get-intrinsic: 1.3.0
+ object-keys: 1.1.1
+ safe-push-apply: 1.0.0
+
+ p-limit@2.3.0:
+ dependencies:
+ p-try: 2.2.0
+
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
+ p-locate@4.1.0:
+ dependencies:
+ p-limit: 2.3.0
+
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
+ p-try@2.2.0: {}
+
+ pako@1.0.11: {}
+
+ pako@2.1.0: {}
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ parse-headers@2.0.6: {}
+
+ parse-json@5.2.0:
+ dependencies:
+ '@babel/code-frame': 7.29.0
+ error-ex: 1.3.4
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+
+ parseurl@1.3.3: {}
+
+ pascalcase@0.1.1: {}
+
+ path-browserify@1.0.1: {}
+
+ path-exists@4.0.0: {}
+
+ path-is-absolute@1.0.1: {}
+
+ path-key@3.1.1: {}
+
+ path-parse@1.0.7: {}
+
+ path-to-regexp@6.3.0: {}
+
+ path-type@4.0.0: {}
+
+ pathe@0.2.0: {}
+
+ pbf@4.0.1:
+ dependencies:
+ resolve-protobuf-schema: 2.1.0
+
+ pdfjs-dist@6.0.227:
+ optionalDependencies:
+ '@napi-rs/canvas': 1.0.0
+
+ picocolors@1.1.1: {}
+
+ picomatch@2.3.2: {}
+
+ picomatch@4.0.4: {}
+
+ pify@2.3.0: {}
+
+ pinia@2.3.1(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)):
+ dependencies:
+ '@vue/devtools-api': 6.6.4
+ vue: 3.5.33(typescript@6.0.3)
+ vue-demi: 0.14.10(vue@3.5.33(typescript@6.0.3))
+ optionalDependencies:
+ typescript: 6.0.3
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+
+ pirates@4.0.7: {}
+
+ pkcs7@0.2.3: {}
+
+ pkcs7@1.0.4:
+ dependencies:
+ '@babel/runtime': 7.29.2
+
+ point-in-polygon-hao@1.2.4:
+ dependencies:
+ robust-predicates: 3.0.3
+
+ point-in-polygon@1.1.0: {}
+
+ polyclip-ts@0.16.8:
+ dependencies:
+ bignumber.js: 9.3.1
+ splaytree-ts: 1.0.2
+
+ posix-character-classes@0.1.1: {}
+
+ possible-typed-array-names@1.1.0: {}
+
+ postcss-import@15.1.0(postcss@8.5.10):
+ dependencies:
+ postcss: 8.5.10
+ postcss-value-parser: 4.2.0
+ read-cache: 1.0.0
+ resolve: 1.22.12
+
+ postcss-js@4.1.0(postcss@8.5.10):
+ dependencies:
+ camelcase-css: 2.0.1
+ postcss: 8.5.10
+
+ postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.10):
+ dependencies:
+ lilconfig: 3.1.3
+ optionalDependencies:
+ jiti: 1.21.7
+ postcss: 8.5.10
+
+ postcss-nested@6.2.0(postcss@8.5.10):
+ dependencies:
+ postcss: 8.5.10
+ postcss-selector-parser: 6.1.2
+
+ postcss-prefix-selector@1.16.1(postcss@5.2.18):
+ dependencies:
+ postcss: 5.2.18
+
+ postcss-selector-parser@6.1.2:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ postcss-value-parser@4.2.0: {}
+
+ postcss@5.2.18:
+ dependencies:
+ chalk: 1.1.3
+ js-base64: 2.6.4
+ source-map: 0.5.7
+ supports-color: 3.2.3
+
+ postcss@8.5.10:
+ dependencies:
+ nanoid: 3.3.11
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ posthtml-parser@0.2.1:
+ dependencies:
+ htmlparser2: 3.10.1
+ isobject: 2.1.0
+
+ posthtml-rename-id@1.0.12:
+ dependencies:
+ escape-string-regexp: 1.0.5
+
+ posthtml-render@1.4.0: {}
+
+ posthtml-svg-mode@1.0.3:
+ dependencies:
+ merge-options: 1.0.1
+ posthtml: 0.9.2
+ posthtml-parser: 0.2.1
+ posthtml-render: 1.4.0
+
+ posthtml@0.9.2:
+ dependencies:
+ posthtml-parser: 0.2.1
+ posthtml-render: 1.4.0
+
+ preact@10.29.1: {}
+
+ prelude-ls@1.2.1: {}
+
+ prettier-linter-helpers@1.0.1:
+ dependencies:
+ fast-diff: 1.3.0
+
+ prettier@2.8.8: {}
+
+ printj@1.1.2: {}
+
+ prismjs@1.30.0: {}
+
+ process-nextick-args@2.0.1: {}
+
+ process@0.11.10: {}
+
+ process@0.5.2: {}
+
+ prop-types@15.8.1:
+ dependencies:
+ loose-envify: 1.4.0
+ object-assign: 4.1.1
+ react-is: 16.13.1
+
+ protobufjs@8.3.0:
+ dependencies:
+ long: 5.3.2
+
+ protocol-buffers-schema@3.6.1: {}
+
+ proxy-from-env@2.1.0: {}
+
+ punycode@2.3.1: {}
+
+ q@1.5.1: {}
+
+ query-string@4.3.4:
+ dependencies:
+ object-assign: 4.1.1
+ strict-uri-encode: 1.1.0
+
+ queue-microtask@1.2.3: {}
+
+ quick-lru@4.0.1: {}
+
+ quick-lru@6.1.2: {}
+
+ quickselect@1.1.1: {}
+
+ quickselect@2.0.0: {}
+
+ quickselect@3.0.0: {}
+
+ raf-schd@4.0.3: {}
+
+ range-parser@1.2.1: {}
+
+ rbush@2.0.2:
+ dependencies:
+ quickselect: 1.1.1
+
+ rbush@3.0.1:
+ dependencies:
+ quickselect: 2.0.0
+
+ rbush@4.0.1:
+ dependencies:
+ quickselect: 3.0.0
+
+ rc-dropdown@4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.2
+ '@rc-component/trigger': 2.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-menu@9.16.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.2
+ '@rc-component/trigger': 2.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ classnames: 2.5.1
+ rc-motion: 2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-overflow: 1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-motion@2.9.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.2
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-overflow@1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.2
+ classnames: 2.5.1
+ rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ rc-resize-observer@1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.2
+ classnames: 2.5.1
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ resize-observer-polyfill: 1.5.1
+
+ rc-util@5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.2
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-is: 18.3.1
+
+ rc-virtual-list@3.19.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.2
+ classnames: 2.5.1
+ rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ react-beautiful-dnd@13.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.2
+ css-box-model: 1.2.1
+ memoize-one: 5.2.1
+ raf-schd: 4.0.3
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-redux: 7.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ redux: 4.2.1
+ use-memo-one: 1.1.3(react@18.3.1)
+ transitivePeerDependencies:
+ - react-native
+
+ react-dom@18.3.1(react@18.3.1):
+ dependencies:
+ loose-envify: 1.4.0
+ react: 18.3.1
+ scheduler: 0.23.2
+
+ react-draggable@4.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ clsx: 2.1.1
+ prop-types: 15.8.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ react-grid-layout@1.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ clsx: 2.1.1
+ fast-equals: 4.0.3
+ prop-types: 15.8.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-draggable: 4.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react-resizable: 3.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ resize-observer-polyfill: 1.5.1
+
+ react-is@16.13.1: {}
+
+ react-is@17.0.2: {}
+
+ react-is@18.3.1: {}
+
+ react-redux@7.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.2
+ '@types/react-redux': 7.1.34
+ hoist-non-react-statics: 3.3.2
+ loose-envify: 1.4.0
+ prop-types: 15.8.1
+ react: 18.3.1
+ react-is: 17.0.2
+ optionalDependencies:
+ react-dom: 18.3.1(react@18.3.1)
+
+ react-remove-scroll-bar@2.3.8(@types/react@19.2.17)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-style-singleton: 2.2.3(@types/react@19.2.17)(react@18.3.1)
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ react-remove-scroll@2.7.2(@types/react@19.2.17)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-remove-scroll-bar: 2.3.8(@types/react@19.2.17)(react@18.3.1)
+ react-style-singleton: 2.2.3(@types/react@19.2.17)(react@18.3.1)
+ tslib: 2.8.1
+ use-callback-ref: 1.3.3(@types/react@19.2.17)(react@18.3.1)
+ use-sidecar: 1.1.3(@types/react@19.2.17)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ react-resizable@3.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ prop-types: 15.8.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-draggable: 4.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+
+ react-style-singleton@2.2.3(@types/react@19.2.17)(react@18.3.1):
+ dependencies:
+ get-nonce: 1.0.1
+ react: 18.3.1
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@babel/runtime': 7.29.2
+ dom-helpers: 5.2.1
+ loose-envify: 1.4.0
+ prop-types: 15.8.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ react@18.3.1:
+ dependencies:
+ loose-envify: 1.4.0
+
+ read-cache@1.0.0:
+ dependencies:
+ pify: 2.3.0
+
+ read-pkg-up@7.0.1:
+ dependencies:
+ find-up: 4.1.0
+ read-pkg: 5.2.0
+ type-fest: 0.8.1
+
+ read-pkg@5.2.0:
+ dependencies:
+ '@types/normalize-package-data': 2.4.4
+ normalize-package-data: 2.5.0
+ parse-json: 5.2.0
+ type-fest: 0.6.0
+
+ readable-stream@2.3.8:
+ dependencies:
+ core-util-is: 1.0.3
+ inherits: 2.0.4
+ isarray: 1.0.0
+ process-nextick-args: 2.0.1
+ safe-buffer: 5.1.2
+ string_decoder: 1.1.1
+ util-deprecate: 1.0.2
+
+ readable-stream@3.6.2:
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+
+ readdir-glob@1.1.3:
+ dependencies:
+ minimatch: 5.1.9
+
+ readdirp@3.6.0:
+ dependencies:
+ picomatch: 2.3.2
+
+ readdirp@4.1.2: {}
+
+ redent@3.0.0:
+ dependencies:
+ indent-string: 4.0.0
+ strip-indent: 3.0.0
+
+ redux@4.2.1:
+ dependencies:
+ '@babel/runtime': 7.29.2
+
+ reference-spec-reader@0.2.0: {}
+
+ reflect.getprototypeof@1.0.10:
+ dependencies:
+ call-bind: 1.0.9
+ define-properties: 1.2.1
+ es-abstract: 1.24.2
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ get-intrinsic: 1.3.0
+ get-proto: 1.0.1
+ which-builtin-type: 1.2.1
+
+ regenerator-runtime@0.11.1: {}
+
+ regex-not@1.0.2:
+ dependencies:
+ extend-shallow: 3.0.2
+ safe-regex: 1.1.0
+
+ regexp-util@2.0.3: {}
+
+ regexp.prototype.flags@1.5.4:
+ dependencies:
+ call-bind: 1.0.9
+ define-properties: 1.2.1
+ es-errors: 1.3.0
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ set-function-name: 2.0.2
+
+ repeat-element@1.1.4: {}
+
+ repeat-string@1.6.1: {}
+
+ require-directory@2.1.1: {}
+
+ resize-observer-polyfill@1.5.1: {}
+
+ resolve-from@4.0.0: {}
+
+ resolve-from@5.0.0: {}
+
+ resolve-global@1.0.0:
+ dependencies:
+ global-dirs: 0.1.1
+
+ resolve-protobuf-schema@2.1.0:
+ dependencies:
+ protocol-buffers-schema: 3.6.1
+
+ resolve-url@0.2.1: {}
+
+ resolve@1.22.12:
+ dependencies:
+ es-errors: 1.3.0
+ is-core-module: 2.16.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ ret@0.1.15: {}
+
+ reusify@1.1.0: {}
+
+ rimraf@2.7.1:
+ dependencies:
+ glob: 7.2.3
+
+ rimraf@3.0.2:
+ dependencies:
+ glob: 7.2.3
+
+ robust-predicates@2.0.4: {}
+
+ robust-predicates@3.0.3: {}
+
+ rollup-plugin-external-globals@0.6.1(rollup@3.30.0):
+ dependencies:
+ '@rollup/pluginutils': 4.2.1
+ estree-walker: 2.0.2
+ is-reference: 1.2.1
+ magic-string: 0.25.9
+ rollup: 3.30.0
+
+ rollup@3.30.0:
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ run-parallel@1.2.0:
+ dependencies:
+ queue-microtask: 1.2.3
+
+ rust-result@1.0.0:
+ dependencies:
+ individual: 2.0.0
+
+ rxjs@7.8.2:
+ dependencies:
+ tslib: 2.8.1
+
+ safe-array-concat@1.1.4:
+ dependencies:
+ call-bind: 1.0.9
+ call-bound: 1.0.4
+ get-intrinsic: 1.3.0
+ has-symbols: 1.1.0
+ isarray: 2.0.5
+
+ safe-buffer@5.1.2: {}
+
+ safe-buffer@5.2.1: {}
+
+ safe-json-parse@4.0.0:
+ dependencies:
+ rust-result: 1.0.0
+
+ safe-push-apply@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ isarray: 2.0.5
+
+ safe-regex-test@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-regex: 1.2.1
+
+ safe-regex@1.1.0:
+ dependencies:
+ ret: 0.1.15
+
+ sass@1.99.0:
+ dependencies:
+ chokidar: 4.0.3
+ immutable: 5.1.5
+ source-map-js: 1.2.1
+ optionalDependencies:
+ '@parcel/watcher': 2.5.6
+
+ sax@1.6.0: {}
+
+ saxes@5.0.1:
+ dependencies:
+ xmlchars: 2.2.0
+
+ scheduler@0.23.2:
+ dependencies:
+ loose-envify: 1.4.0
+
+ screenfull@6.0.2: {}
+
+ scroll-into-view-if-needed@2.2.31:
+ dependencies:
+ compute-scroll-into-view: 1.0.20
+
+ semver@5.7.2: {}
+
+ semver@7.3.7:
+ dependencies:
+ lru-cache: 6.0.0
+
+ semver@7.7.4: {}
+
+ send@0.19.2:
+ dependencies:
+ debug: 2.6.9
+ depd: 2.0.0
+ destroy: 1.2.0
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ etag: 1.8.1
+ fresh: 0.5.2
+ http-errors: 2.0.1
+ mime: 1.6.0
+ ms: 2.1.3
+ on-finished: 2.4.1
+ range-parser: 1.2.1
+ statuses: 2.0.2
+ transitivePeerDependencies:
+ - supports-color
+
+ serve-static@1.16.3:
+ dependencies:
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ parseurl: 1.3.3
+ send: 0.19.2
+ transitivePeerDependencies:
+ - supports-color
+
+ set-function-length@1.2.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.3.0
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+
+ set-function-name@2.0.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ functions-have-names: 1.2.3
+ has-property-descriptors: 1.0.2
+
+ set-proto@1.0.0:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+
+ set-value@2.0.1:
+ dependencies:
+ extend-shallow: 2.0.1
+ is-extendable: 0.1.1
+ is-plain-object: 2.0.4
+ split-string: 3.1.0
+
+ setimmediate@1.0.5: {}
+
+ setprototypeof@1.2.0: {}
+
+ shallow-equal@1.2.1: {}
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@3.0.0: {}
+
+ side-channel-list@1.0.1:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-map@1.0.1:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+
+ side-channel-weakmap@1.0.2:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-map: 1.0.1
+
+ side-channel@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.4
+ side-channel-list: 1.0.1
+ side-channel-map: 1.0.1
+ side-channel-weakmap: 1.0.2
+
+ signal-exit@3.0.7: {}
+
+ skmeans@0.9.7: {}
+
+ slash@3.0.0: {}
+
+ slate-history@0.66.0(slate@0.72.8):
+ dependencies:
+ is-plain-object: 5.0.0
+ slate: 0.72.8
+
+ slate@0.72.8:
+ dependencies:
+ immer: 9.0.21
+ is-plain-object: 5.0.0
+ tiny-warning: 1.0.3
+
+ snabbdom@3.6.3: {}
+
+ snapdragon-node@2.1.1:
+ dependencies:
+ define-property: 1.0.0
+ isobject: 3.0.1
+ snapdragon-util: 3.0.1
+
+ snapdragon-util@3.0.1:
+ dependencies:
+ kind-of: 3.2.2
+
+ snapdragon@0.8.2:
+ dependencies:
+ base: 0.11.2
+ debug: 2.6.9
+ define-property: 0.2.5
+ extend-shallow: 2.0.1
+ map-cache: 0.2.2
+ source-map: 0.5.7
+ source-map-resolve: 0.5.3
+ use: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ sonner@2.0.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ sortablejs@1.10.2: {}
+
+ sortablejs@1.15.7: {}
+
+ source-map-js@1.2.1: {}
+
+ source-map-resolve@0.5.3:
+ dependencies:
+ atob: 2.1.2
+ decode-uri-component: 0.2.2
+ resolve-url: 0.2.1
+ source-map-url: 0.4.1
+ urix: 0.1.0
+
+ source-map-url@0.4.1: {}
+
+ source-map@0.5.7: {}
+
+ source-map@0.6.1: {}
+
+ sourcemap-codec@1.4.8: {}
+
+ spdx-correct@3.2.0:
+ dependencies:
+ spdx-expression-parse: 3.0.1
+ spdx-license-ids: 3.0.23
+
+ spdx-exceptions@2.5.0: {}
+
+ spdx-expression-parse@3.0.1:
+ dependencies:
+ spdx-exceptions: 2.5.0
+ spdx-license-ids: 3.0.23
+
+ spdx-license-ids@3.0.23: {}
+
+ splaytree-ts@1.0.2: {}
+
+ split-string@3.1.0:
+ dependencies:
+ extend-shallow: 3.0.2
+
+ split2@3.2.2:
+ dependencies:
+ readable-stream: 3.6.2
+
+ ssf@0.11.2:
+ dependencies:
+ frac: 1.1.2
+
+ ssr-window@3.0.0: {}
+
+ stable@0.1.8: {}
+
+ static-extend@0.1.2:
+ dependencies:
+ define-property: 0.2.5
+ object-copy: 0.1.0
+
+ statuses@2.0.2: {}
+
+ stop-iteration-iterator@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ internal-slot: 1.1.0
+
+ strict-uri-encode@1.1.0: {}
+
+ string-width@4.2.3:
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
+ string.prototype.trim@1.2.10:
+ dependencies:
+ call-bind: 1.0.9
+ call-bound: 1.0.4
+ define-data-property: 1.1.4
+ define-properties: 1.2.1
+ es-abstract: 1.24.2
+ es-object-atoms: 1.1.1
+ has-property-descriptors: 1.0.2
+
+ string.prototype.trimend@1.0.9:
+ dependencies:
+ call-bind: 1.0.9
+ call-bound: 1.0.4
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+
+ string.prototype.trimstart@1.0.8:
+ dependencies:
+ call-bind: 1.0.9
+ define-properties: 1.2.1
+ es-object-atoms: 1.1.1
+
+ string_decoder@1.1.1:
+ dependencies:
+ safe-buffer: 5.1.2
+
+ string_decoder@1.3.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ strip-ansi@3.0.1:
+ dependencies:
+ ansi-regex: 2.1.1
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strip-final-newline@2.0.0: {}
+
+ strip-indent@3.0.0:
+ dependencies:
+ min-indent: 1.0.1
+
+ strip-json-comments@3.1.1: {}
+
+ stylis@4.4.0: {}
+
+ sucrase@3.35.1:
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ commander: 4.1.1
+ lines-and-columns: 1.2.4
+ mz: 2.7.0
+ pirates: 4.0.7
+ tinyglobby: 0.2.16
+ ts-interface-checker: 0.1.13
+
+ supports-color@2.0.0: {}
+
+ supports-color@3.2.3:
+ dependencies:
+ has-flag: 1.0.0
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-preserve-symlinks-flag@1.0.0: {}
+
+ svg-baker@1.7.0:
+ dependencies:
+ bluebird: 3.7.2
+ clone: 2.1.2
+ he: 1.2.0
+ image-size: 0.5.5
+ loader-utils: 1.4.2
+ merge-options: 1.0.1
+ micromatch: 3.1.0
+ postcss: 5.2.18
+ postcss-prefix-selector: 1.16.1(postcss@5.2.18)
+ posthtml-rename-id: 1.0.12
+ posthtml-svg-mode: 1.0.3
+ query-string: 4.3.4
+ traverse: 0.6.11
+ transitivePeerDependencies:
+ - supports-color
+
+ svgo@2.8.2:
+ dependencies:
+ commander: 7.2.0
+ css-select: 4.3.0
+ css-tree: 1.1.3
+ csso: 4.2.0
+ picocolors: 1.1.1
+ sax: 1.6.0
+ stable: 0.1.8
+
+ sweepline-intersections@1.5.0:
+ dependencies:
+ tinyqueue: 2.0.3
+
+ tailwind-merge@2.6.0: {}
+
+ tailwindcss@3.4.19:
+ dependencies:
+ '@alloc/quick-lru': 5.2.0
+ arg: 5.0.2
+ chokidar: 3.6.0
+ didyoumean: 1.2.2
+ dlv: 1.1.3
+ fast-glob: 3.3.3
+ glob-parent: 6.0.2
+ is-glob: 4.0.3
+ jiti: 1.21.7
+ lilconfig: 3.1.3
+ micromatch: 4.0.8
+ normalize-path: 3.0.0
+ object-hash: 3.0.0
+ picocolors: 1.1.1
+ postcss: 8.5.10
+ postcss-import: 15.1.0(postcss@8.5.10)
+ postcss-js: 4.1.0(postcss@8.5.10)
+ postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.10)
+ postcss-nested: 6.2.0(postcss@8.5.10)
+ postcss-selector-parser: 6.1.2
+ resolve: 1.22.12
+ sucrase: 3.35.1
+ transitivePeerDependencies:
+ - tsx
+ - yaml
+
+ tar-stream@2.2.0:
+ dependencies:
+ bl: 4.1.0
+ end-of-stream: 1.4.5
+ fs-constants: 1.0.0
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+
+ text-extensions@1.9.0: {}
+
+ text-table@0.2.0: {}
+
+ thenify-all@1.6.0:
+ dependencies:
+ thenify: 3.3.1
+
+ thenify@3.3.1:
+ dependencies:
+ any-promise: 1.3.0
+
+ throttle-debounce@5.0.2: {}
+
+ through2@4.0.2:
+ dependencies:
+ readable-stream: 3.6.2
+
+ through@2.3.8: {}
+
+ tiny-binary-search@1.0.3: {}
+
+ tiny-invariant@1.3.3: {}
+
+ tiny-warning@1.0.3: {}
+
+ tinyglobby@0.2.16:
+ dependencies:
+ fdir: 6.5.0(picomatch@4.0.4)
+ picomatch: 4.0.4
+
+ tinyqueue@2.0.3: {}
+
+ tmp@0.2.7: {}
+
+ to-object-path@0.3.0:
+ dependencies:
+ kind-of: 3.2.2
+
+ to-regex-range@2.1.1:
+ dependencies:
+ is-number: 3.0.0
+ repeat-string: 1.6.1
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ to-regex@3.0.2:
+ dependencies:
+ define-property: 2.0.2
+ extend-shallow: 3.0.2
+ regex-not: 1.0.2
+ safe-regex: 1.1.0
+
+ toidentifier@1.0.1: {}
+
+ topojson-client@3.1.0:
+ dependencies:
+ commander: 2.20.3
+
+ topojson-server@3.0.1:
+ dependencies:
+ commander: 2.20.3
+
+ traverse@0.3.9: {}
+
+ traverse@0.6.11:
+ dependencies:
+ gopd: 1.2.0
+ typedarray.prototype.slice: 1.0.5
+ which-typed-array: 1.1.20
+
+ trigram-utils@2.0.1:
+ dependencies:
+ collapse-white-space: 2.1.0
+ n-gram: 2.0.2
+
+ trim-newlines@3.0.1: {}
+
+ ts-interface-checker@0.1.13: {}
+
+ ts-node@10.9.2(@types/node@16.18.126)(typescript@4.9.5):
+ dependencies:
+ '@cspotcode/source-map-support': 0.8.1
+ '@tsconfig/node10': 1.0.12
+ '@tsconfig/node12': 1.0.11
+ '@tsconfig/node14': 1.0.3
+ '@tsconfig/node16': 1.0.4
+ '@types/node': 16.18.126
+ acorn: 8.16.0
+ acorn-walk: 8.3.5
+ arg: 4.1.3
+ create-require: 1.1.1
+ diff: 4.0.4
+ make-error: 1.3.6
+ typescript: 4.9.5
+ v8-compile-cache-lib: 3.0.1
+ yn: 3.1.1
+
+ tslib@1.14.1: {}
+
+ tslib@2.3.0: {}
+
+ tslib@2.8.1: {}
+
+ tsml@1.0.1: {}
+
+ tsutils@3.21.0(typescript@6.0.3):
+ dependencies:
+ tslib: 1.14.1
+ typescript: 6.0.3
+
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
+ type-fest@0.18.1: {}
+
+ type-fest@0.20.2: {}
+
+ type-fest@0.6.0: {}
+
+ type-fest@0.8.1: {}
+
+ type@2.7.3: {}
+
+ typed-array-buffer@1.0.3:
+ dependencies:
+ call-bound: 1.0.4
+ es-errors: 1.3.0
+ is-typed-array: 1.1.15
+
+ typed-array-byte-length@1.0.3:
+ dependencies:
+ call-bind: 1.0.9
+ for-each: 0.3.5
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
+
+ typed-array-byte-offset@1.0.4:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.9
+ for-each: 0.3.5
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
+ reflect.getprototypeof: 1.0.10
+
+ typed-array-length@1.0.7:
+ dependencies:
+ call-bind: 1.0.9
+ for-each: 0.3.5
+ gopd: 1.2.0
+ is-typed-array: 1.1.15
+ possible-typed-array-names: 1.1.0
+ reflect.getprototypeof: 1.0.10
+
+ typedarray.prototype.slice@1.0.5:
+ dependencies:
+ call-bind: 1.0.9
+ define-properties: 1.2.1
+ es-abstract: 1.24.2
+ es-errors: 1.3.0
+ get-proto: 1.0.1
+ math-intrinsics: 1.1.0
+ typed-array-buffer: 1.0.3
+ typed-array-byte-offset: 1.0.4
+
+ typescript@4.9.5: {}
+
+ typescript@6.0.3: {}
+
+ unbox-primitive@1.1.0:
+ dependencies:
+ call-bound: 1.0.4
+ has-bigints: 1.1.0
+ has-symbols: 1.1.0
+ which-boxed-primitive: 1.1.1
+
+ unicode-regex@4.2.0:
+ dependencies:
+ regexp-util: 2.0.3
+
+ unicount@1.1.0: {}
+
+ union-value@1.0.1:
+ dependencies:
+ arr-union: 3.1.0
+ get-value: 2.0.6
+ is-extendable: 0.1.1
+ set-value: 2.0.1
+
+ universalify@2.0.1: {}
+
+ unset-value@1.0.0:
+ dependencies:
+ has-value: 0.3.1
+ isobject: 3.0.1
+
+ unzipit@2.0.0: {}
+
+ unzipper@0.10.14:
+ dependencies:
+ big-integer: 1.6.52
+ binary: 0.3.0
+ bluebird: 3.4.7
+ buffer-indexof-polyfill: 1.0.2
+ duplexer2: 0.1.4
+ fstream: 1.0.12
+ graceful-fs: 4.2.11
+ listenercount: 1.0.1
+ readable-stream: 2.3.8
+ setimmediate: 1.0.5
+
+ update-browserslist-db@1.2.3(browserslist@4.28.2):
+ dependencies:
+ browserslist: 4.28.2
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
+ urijs@1.19.11: {}
+
+ urix@0.1.0: {}
+
+ url-toolkit@2.2.5: {}
+
+ use-callback-ref@1.3.3(@types/react@19.2.17)(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ use-memo-one@1.1.3(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
+ use-sidecar@1.1.3(@types/react@19.2.17)(react@18.3.1):
+ dependencies:
+ detect-node-es: 1.1.0
+ react: 18.3.1
+ tslib: 2.8.1
+ optionalDependencies:
+ '@types/react': 19.2.17
+
+ use@3.1.1: {}
+
+ util-deprecate@1.0.2: {}
+
+ uuid@13.0.2: {}
+
+ uuid@8.3.2: {}
+
+ v8-compile-cache-lib@3.0.1: {}
+
+ validate-npm-package-license@3.0.4:
+ dependencies:
+ spdx-correct: 3.2.0
+ spdx-expression-parse: 3.0.1
+
+ vary@1.1.2: {}
+
+ video.js@6.13.0:
+ dependencies:
+ babel-runtime: 6.26.0
+ global: 4.3.2
+ safe-json-parse: 4.0.0
+ tsml: 1.0.1
+ videojs-font: 2.1.0
+ videojs-ie8: 1.1.2
+ videojs-vtt.js: 0.12.6
+ xhr: 2.4.0
+
+ video.js@8.23.7:
+ dependencies:
+ '@babel/runtime': 7.29.2
+ '@videojs/http-streaming': 3.17.4(video.js@8.23.7)
+ '@videojs/vhs-utils': 4.1.1
+ '@videojs/xhr': 2.7.0
+ aes-decrypter: 4.0.2
+ global: 4.4.0
+ m3u8-parser: 7.2.0
+ mpd-parser: 1.3.1
+ mux.js: 7.1.0
+ videojs-contrib-quality-levels: 4.1.0(video.js@8.23.7)
+ videojs-font: 4.2.0
+ videojs-vtt.js: 0.15.5
+
+ videojs-contrib-hls@5.15.0:
+ dependencies:
+ aes-decrypter: 1.0.3
+ global: 4.4.0
+ m3u8-parser: 2.1.0
+ mux.js: 4.3.2
+ url-toolkit: 2.2.5
+ video.js: 6.13.0
+ videojs-contrib-media-sources: 4.7.2
+ webwackify: 0.1.6
+
+ videojs-contrib-media-sources@4.7.2:
+ dependencies:
+ global: 4.4.0
+ mux.js: 4.3.2
+ video.js: 6.13.0
+ webwackify: 0.1.6
+
+ videojs-contrib-quality-levels@4.1.0(video.js@8.23.7):
+ dependencies:
+ global: 4.4.0
+ video.js: 8.23.7
+
+ videojs-font@2.1.0: {}
+
+ videojs-font@4.2.0: {}
+
+ videojs-ie8@1.1.2:
+ dependencies:
+ es5-shim: 4.6.7
+
+ videojs-vtt.js@0.12.6:
+ dependencies:
+ global: 4.4.0
+
+ videojs-vtt.js@0.15.5:
+ dependencies:
+ global: 4.4.0
+
+ vite-plugin-cesium@1.2.22(cesium@1.141.0)(rollup@3.30.0)(vite@4.5.14(@types/node@16.18.126)(sass@1.99.0)):
+ dependencies:
+ cesium: 1.141.0
+ fs-extra: 9.1.0
+ rollup-plugin-external-globals: 0.6.1(rollup@3.30.0)
+ serve-static: 1.16.3
+ vite: 4.5.14(@types/node@16.18.126)(sass@1.99.0)
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+
+ vite-plugin-svg-icons@2.0.1(vite@4.5.14(@types/node@16.18.126)(sass@1.99.0)):
+ dependencies:
+ '@types/svgo': 2.6.4
+ cors: 2.8.6
+ debug: 4.4.3
+ etag: 1.8.1
+ fs-extra: 10.1.0
+ pathe: 0.2.0
+ svg-baker: 1.7.0
+ svgo: 2.8.2
+ vite: 4.5.14(@types/node@16.18.126)(sass@1.99.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ vite@4.5.14(@types/node@16.18.126)(sass@1.99.0):
+ dependencies:
+ esbuild: 0.18.20
+ postcss: 8.5.10
+ rollup: 3.30.0
+ optionalDependencies:
+ '@types/node': 16.18.126
+ fsevents: 2.3.3
+ sass: 1.99.0
+
+ vscode-uri@3.1.0: {}
+
+ vue-ant-modal-enhance@1.2.2(ant-design-vue@4.2.6(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)):
+ dependencies:
+ ant-design-vue: 4.2.6(vue@3.5.33(typescript@6.0.3))
+ vue: 3.5.33(typescript@6.0.3)
+
+ vue-component-type-helpers@3.2.7: {}
+
+ vue-demi@0.14.10(vue@3.5.33(typescript@6.0.3)):
+ dependencies:
+ vue: 3.5.33(typescript@6.0.3)
+
+ vue-eslint-parser@8.3.0(eslint@8.57.1):
+ dependencies:
+ debug: 4.4.3
+ eslint: 8.57.1
+ eslint-scope: 7.2.2
+ eslint-visitor-keys: 3.4.3
+ espree: 9.6.1
+ esquery: 1.7.0
+ lodash: 4.18.1
+ semver: 7.7.4
+ transitivePeerDependencies:
+ - supports-color
+
+ vue-i18n@9.14.5(vue@3.5.33(typescript@6.0.3)):
+ dependencies:
+ '@intlify/core-base': 9.14.5
+ '@intlify/shared': 9.14.5
+ '@vue/devtools-api': 6.6.4
+ vue: 3.5.33(typescript@6.0.3)
+
+ vue-router@4.6.4(vue@3.5.33(typescript@6.0.3)):
+ dependencies:
+ '@vue/devtools-api': 6.6.4
+ vue: 3.5.33(typescript@6.0.3)
+
+ vue-tsc@3.2.7(typescript@6.0.3):
+ dependencies:
+ '@volar/typescript': 2.4.28
+ '@vue/language-core': 3.2.7
+ typescript: 6.0.3
+
+ vue-types@3.0.2(vue@3.5.33(typescript@6.0.3)):
+ dependencies:
+ is-plain-object: 3.0.1
+ vue: 3.5.33(typescript@6.0.3)
+
+ vue@3.5.33(typescript@6.0.3):
+ dependencies:
+ '@vue/compiler-dom': 3.5.33
+ '@vue/compiler-sfc': 3.5.33
+ '@vue/runtime-dom': 3.5.33
+ '@vue/server-renderer': 3.5.33(vue@3.5.33(typescript@6.0.3))
+ '@vue/shared': 3.5.33
+ optionalDependencies:
+ typescript: 6.0.3
+
+ vuedraggable@2.24.3:
+ dependencies:
+ sortablejs: 1.10.2
+
+ warning@4.0.3:
+ dependencies:
+ loose-envify: 1.4.0
+
+ web-worker@1.5.0: {}
+
+ webwackify@0.1.6: {}
+
+ which-boxed-primitive@1.1.1:
+ dependencies:
+ is-bigint: 1.1.0
+ is-boolean-object: 1.2.2
+ is-number-object: 1.1.1
+ is-string: 1.1.1
+ is-symbol: 1.1.1
+
+ which-builtin-type@1.2.1:
+ dependencies:
+ call-bound: 1.0.4
+ function.prototype.name: 1.1.8
+ has-tostringtag: 1.0.2
+ is-async-function: 2.1.1
+ is-date-object: 1.1.0
+ is-finalizationregistry: 1.1.1
+ is-generator-function: 1.1.2
+ is-regex: 1.2.1
+ is-weakref: 1.1.1
+ isarray: 2.0.5
+ which-boxed-primitive: 1.1.1
+ which-collection: 1.0.2
+ which-typed-array: 1.1.20
+
+ which-collection@1.0.2:
+ dependencies:
+ is-map: 2.0.3
+ is-set: 2.0.3
+ is-weakmap: 2.0.2
+ is-weakset: 2.0.4
+
+ which-typed-array@1.1.20:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.9
+ call-bound: 1.0.4
+ for-each: 0.3.5
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ wildcard@1.1.2: {}
+
+ wmf@1.0.2: {}
+
+ word-wrap@1.2.5: {}
+
+ word@0.3.0: {}
+
+ wrap-ansi@7.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ wrappy@1.0.2: {}
+
+ wujie-vue3@1.0.29(vue@3.5.33(typescript@6.0.3)):
+ dependencies:
+ vue: 3.5.33(typescript@6.0.3)
+ wujie: 1.0.29
+
+ wujie@1.0.29:
+ dependencies:
+ '@babel/runtime': 7.29.2
+
+ xhr@2.4.0:
+ dependencies:
+ global: 4.3.2
+ is-function: 1.0.2
+ parse-headers: 2.0.6
+ xtend: 4.0.2
+
+ xlsx-js-style@1.2.0:
+ dependencies:
+ adler-32: 1.2.0
+ cfb: 1.2.2
+ codepage: 1.14.0
+ commander: 2.17.1
+ crc-32: 1.2.2
+ exit-on-epipe: 1.0.1
+ fflate: 0.3.11
+ ssf: 0.11.2
+ wmf: 1.0.2
+ word: 0.3.0
+
+ xlsx@0.18.5:
+ dependencies:
+ adler-32: 1.3.1
+ cfb: 1.2.2
+ codepage: 1.15.0
+ crc-32: 1.2.2
+ ssf: 0.11.2
+ wmf: 1.0.2
+ word: 0.3.0
+
+ xml-utils@1.10.2: {}
+
+ xmlchars@2.2.0: {}
+
+ xtend@4.0.2: {}
+
+ y18n@5.0.8: {}
+
+ yallist@4.0.0: {}
+
+ yaml@1.10.3: {}
+
+ yargs-parser@20.2.9: {}
+
+ yargs-parser@21.1.1: {}
+
+ yargs@17.7.2:
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.2.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+
+ yn@3.1.1: {}
+
+ yocto-queue@0.1.0: {}
+
+ zarrita@0.7.1:
+ dependencies:
+ '@zarrita/storage': 0.2.0
+ numcodecs: 0.3.2
+
+ zip-stream@4.1.1:
+ dependencies:
+ archiver-utils: 3.0.4
+ compress-commons: 4.1.2
+ readable-stream: 3.6.2
+
+ zrender@5.6.1:
+ dependencies:
+ tslib: 2.3.0
+
+ zstddec@0.2.0: {}
diff --git a/frontend-sjgl/postcss.config.js b/frontend-sjgl/postcss.config.js
new file mode 100644
index 00000000..33ad091d
--- /dev/null
+++ b/frontend-sjgl/postcss.config.js
@@ -0,0 +1,6 @@
+module.exports = {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+}
diff --git a/frontend-sjgl/public/file/注册操作手册.docx b/frontend-sjgl/public/file/注册操作手册.docx
new file mode 100644
index 0000000000000000000000000000000000000000..866c3f01f6376dc7c6581f4bfb81c7790356d3f4
GIT binary patch
literal 1697305
zcmb5U1CS@((mwcW+qP|E+O}<5)9z{8wr!i!#Y|~k&$t-
zBA={0d7erIX%J9oz&}^0+@8Qc&;Plg{!UEnjTId29h?{x{;Hw=6+r$=ZJBpU)(i*$
za0dne5dTxn(7}P;-PR^sNl7$rao?jelUd|iXI#k3Rc
zlNVmpw#{*UwSJ`WN633^cO<+;_JS3@IaM@?iV%m=<!yAWFA-K&)(?U2>8x-2^
zYou=ib0sS@Z#eD_l&n}B|F<#KF|@7Bek56F+2yBQlg2@42j%0}G?U0F42j?wci
zc>Qz7`r*&YFlKpso5Z_y(2Ag%AaAb9+)kBY5|8E~6j_lrlQ7q%1;C;a{NoyJWM9k=
zj}l|Ja>-@*1oz*VoT(rBEB?hq_b(<$|A~pQy`$+rpm-CFD%cVenT96SpBZr4jDrzzs^uhg@EV!ozBXW+9mz4J8kQzUIprui
zeSZ`7JNUyPQBzWd=jk?2bXEN
z1jOIK|LuQDscFiTzy81a>wlF0^1q9dv%T#<2s9@M+GjGNj$9``;l*8puJ=KS#8C@`
z|4Cs+PoVxS11Yl)YaEnaRdwc;TS%YzYsGY4F6Ghp?e#e)*X@1~XJ5v1ROB3lHJ~@o
zmWq0b@68}{qyz-EJfejfdsc}6RwW?w_1$f&RL{9dJxWTLMC&v#P-%0b!Neo4D~<%O
zmAhPY8m74Rvykj8BbgQXFnnH36SF^DHKz!9z%{Q`2#G^j3)9a+^YU3S>
zAS#1K?RAHX*bo&-LdNSnggk(fakKshTRsR8yaQ%u)vqpHR={*}4
zbc$H|?;ibIR;^oaAB!iCr%%K5cvf!Q+jTyzK&Sd=~G9*j?ykcMh8?mXrn)FE^P#
z+)^QrOvWxp@4i-39aa731yjC&e_;H7&VXQlVRW;1H2GiIPXHzKnFa;`2(|_Q5dKHS
z$=Sok)ahR+>yA4XjUjFR=>HaY7}JxeUY2k}op%y03^nghpp}>IKDR1UV*!S~SCD?j
z=yH7F{{Vsij{be4&q-66r^t~C^n
zKs_CcPf-~9UYVUMCYKTZ2gN_)z~q5?es((7_dQd7e4f=4&g2Xrkdza0WzzJg;l-Ip
zZZjBGw4>4pt1s3mIfyuL;NT~2!~s>Tn-1DA@x8gvj(P2V;P2o2@xh9Tia8>s=tdL|
znh;FHwUb8Y
zuHJ5f>EJj~Y_sf&T~FrW5;AE-K-8`yrye!ab}@al
zHd!5oo*&kYi;$UM2)R<<#S5q7(sLXc4s;F#Q_cns=<7qDAis6WDW$Uy%O!NTbEB?4
z5ffh3=(De>QFk^DPxol0&VA#FC#RGMs=luIzn^k_zlHTLOEL-fr*nt@=zmnNAf>9M
zS1v_`90aLkXK;g`P{%fmp6p;!Q=%$NeR~BzS}{}0@rb}|C-%^qJj6*MoHhJ*pcekF
zy!KF9w)ec+UDw^K1hv{WdAKd)^{C#UIF)4~Tq;|W6g<=IZew101hx3qav+xL77GhG
z_=3igFGBmpgA|TekGpcW%;KU$nSjK0kHFSfD35jGlc-u$RGS8^870*A^@~?Q^Nu#
z6a<+M9aRwE#ud0&X@wVO>R{1?2bfi0{tBr63X=a32>lg6%riT7_ZgFnh4|u5CXW#(
zOHw2&{)X7-0i=Hd}AK4NSD^&!os
zL@>u~$Bz`}bHMT_(~g>=qI55+ud*bbMt?h8KQ6P)_oHvzZDdjIw?wJegZ_D03L8rt
zedaY9DB$S7&Adp`l$C!O(FPl>KFEvBcZ!&r{~FOo&cdmORB@xT)w1Nowb}3Vx}}24
zzOC&}|L^hgYrB>W{oT25>s_;VCWZ?k=}U>J3tQ%ML_*-bCU&xf$<}i>`$v4(h{zy}
zxGyZ`)*i!{r^}V*R-=?f3x=plz0*x3!J)U#)(y}O98V@P>XVc6Y8M?)Ds~cC*>a%X
zWetuy&b;hX?d0_W$k`-ot|?Cf3!0!EH(p5Xz|GGDqIdPh=P~)b^s&Wt<>>*%O*@y|
z1UXXlOa0`)e9bOka|@=bUfC!vub#d>#TWn|0t@d%clR)}e@=MmZsm0{G;nj0-jAU;
z>Qu6d{6`kTaZ^kNk+af)9~b@b2|w*bczE7)0U!ct4JVEeVyU20h?9dM?2(rl-8^;7_eT7l$bC5c>z38N@^5DK&7#9ew(6M=@DcGC)G@Er2OSd|DCT#C%(krDsj|R`
zW9CPEg1}H^?+%_zmz>ubT{~3Rr%7l2=ZgWDyV+0-eY*5;Q8~L(ZgT*1_U$Uot#Nb0
z*ZL&)_Y(m|I*abZ3#3bw^19Y-^Vd9&lUH8pT64g;89CBN9oUE1FCTpLn*61b{lZJC
zFqgBJfp^pw069BUtYO7ZW5}vh#9XWI(f5}ZYQbiLBjX-({ypW(k<~mnDyz@H7ZJ@L
zmYJx(faVAAem!zqR(6^~$TN6wT2}UviN+E)sqP{7gi18Ee@A=ur&3~&=fxEl(4mJw
zR%*(pv^Zd*%Pi&4+6ro_FLnEz6W4pUw=Au7i)csM=@(Qlwld5vF>j<=So2;zEnskc-L*gYu2EB0hb*Shx$+^>+f
z>sl`QPR9SeXi701x9nf#f-sKc%0_qPaPCNsTVsIks2=S6retlqt19jzFfU+7&LcIh4tHQC#S*tholAfL1%f+N1H(;Y<|%@x(2
zT3Xxh-yX~+|LZoze=KWum5XHmWBETOf6WhON(mv^Q>$mPCuL}%{dI39Pm+l0tr)S!
zXm;SH6^2az<-6TO@oochK*uZk5pcg+Nbw!Cc7!88o?IKJ(=-$U;}?}%Q@fe?n#
zAz^gbf58A?HFy2>BT*op7HK~pb?nRiFz`@GHbA+drbjJ~4J%~z(lv52Uh!>O
z2othT)9Lt9a5nr#@8vp@pBWzEo0%w6Fv@p~o-FTS6G53vkGD5eBbi}ML#;DZkA#}=w2CParI3ta>1m16RwG>d
zeqZY1NmZf7jUt5^Fw-^^yC_t^QlO;cIrtx-F))D~#6$v9wMBdu3G9_qk6;Ap(O*>4dbl=De~a
zNgc~NnsYp3UkFozJe%$sp#UVH7XekzZ%t!Zr)3WAify
zzqnttKRp4?0Y**;X7GbW-I5HnR>LP6saIf_1z27Cil{%x$we@&HTX#tz&tMsp1>F=
z_ot4&H*pa6T0wLXWUVA3HJjUhjd}vCf+&~(Z1j6jC?0mUNd(J}TWKU0Yub@mIwEFS
zCl2EVcDC(!Qy`Q;9=G=7NBy_(JCvA#s{pVmV&qakWEEnTtCh<*
zOxYh6t`K_&AQQxrS|N(EP9U67dBZo1h1smcoRvDGlxN4aacibp|Li1nFEeIKX;M&Z
z3LT!U3}Qjldf3t(&Y|c|wC+Rg{bRwvP|<>?2AG$GI@#2~h%_juFwU}aKq%8{-h
zU;N@BW)|2GZ?|xwxM#>xI2_%@XA(qPGQ|gAwHjYgzybza9AwWh=v}4&Gwup~19@It
z=_~_KC_lL8`>XEaDoHmXNe^*@;V_((0n!&$(-|=D(SGdd;u>A=w$SdgIfGVyHq*1O;e7FPlS0h*SJwVXi&lia$0$!9dFy0#t
zki=6lx5F`VP})J#R}6vSc=U3BodSIb#|%-c#qyG9Ne6?bmL7@mqVNLF~D4
z>gaB4x9bc2Z6N$nI=`yIffka`A(B;s-ZTqGD!ERdaM4PdNmOjW1PgzB-uRO<^jEuU
zp)BpTVlLtFjT9}m2*-?o6TygB0(%w;vqsiJKC(yN)*wk=$E`d&YC|(Y2LDYA!^?DM
ztt@8yBPy{d8}J9kkB*q)xojM)^l0Ti)cZeFQq1!0o~Pyte(n9pknN)jrEqduy(*=%
zTie+w`8f$@x~7?Dhmg^W>tDh9z}Ont&I^kl6f$*g=mT-@xl$F_m-rhVfsq}I>;lSF
z*lpnkuQX|yv**fB`W)CKU`A#LCuNp;M1kl@_1
zv#sPcOvTk-zDfuj06_j97Q@Wm-r3IH`QJoFb<(8WIwS1JHOLcu$W{FXEgd+C90DBs
z1AEmvNLd3eOtXk!LgC>h#cE3SqTo!d?g!c32)|_FdMAH@Y>W&Je1nKbMt+baG+JsX
z^5@s1?IRl5FtTPmIw{R;IF@tk`-kOu1a_}f-2`b4k?bxiouY9yH6weIVL+OSLq(r}
ztui#Qu&&cs9fYDDCAoJMb`#-JQ67Q@;^#(raw(0`
zD~f$PuZOEE4wFKG+_({HQwAtlsu3dVRzawq$xouIopy*dC~{i@BA_AI41(uRQhr7CnNR
zuI~+)V_i^nX`dq@lq28ey3)Ji2ix>93S5^!%s5id-K@Y{P(uKe0>
zJ-oSVgi(|*2io04m!}WZ7eNsJ(q=rV{TZs4BqFFq-|17zBPN!V`pw~iF`$!pwkW=7
z_Kfl0(NWXHYH;y4I(Ys@$3JZHzxHBNJCpwij`e?nBjg(50uOd`q@l41Gm7)KMP0tz
zKnJfMHBGpJG$|>U)|O8~tR@~P@5L}hJb`Zl`Ldg@N;YnAJ+iap9VWR-D;5u1f#LSo&4-TmwQ8itTMc2=FFfQ7dE0T~x(C|Gd{L68xs@4UE~WUR6icHRup5`2`=REfcp3e)|@4)IJp*DI;@
zshofICOjskq_OiXj8;@Yf%GiYnSEery6I0MyW@7SEy{ddoOo9H%&}wtdLyy{o$wHK25g#+*HXJMG?7@fy!kdT5(5O#f!^M*+
z(@ZxMW9H`wh%nQbpy##*gw;4MPW#sTLZNK?6~^f5!=b(fXGWGpf%|RUvcZZnp5y&1
z_3f)HGDMI~$!79Pe>NkghW`X3L`aZ)1GVH*hGEkX0r?g!Grkx})-v;wbvtxtgXin&
zAYs){ffF-X@zg1M0XOkoZB~ogPw?NQVS%nn9G5~KxR8NuA3fonm`4#agx(tOnLYpS
z4C!AM^xvW3Y+-6^`oDP6T^G$ukiYTMjtKyu{kP)3)S3QaOD{EL?NP)ryVcKpH7@ZQ
z*jrGDaSv+agn*IQ31f_}-Q8|3V%S*ZZmI)}i=|X87lq@0o#!h>suVe%)=Ek*&JoPI
znJt}Td2T>PPzU`P?R@Xro_?PauhH>No819*64cm&rNJm0pRzB9+hB&F=dO&SpeJ
zK4dDO9hr295p{RD-jA)x(@o!lg&@q0)Lnp8rYh~!);0pIjc@x?!Wn9BJj_D68&9Fl
zBwm`wQK-F0X=P&?c3>D+2)nTL<0{k>CYu*J!ij1j66w&p7^xPpFDdGc?lhav!ztK=
z6>yc74Syqy1^@MUY`w^xa?mn?~EB6|ulEu!^j;_8Yogh%iT`SvCh&y0BU6_mV~O
z8=K#li;jKg@(G)iH@2S`3FQ3C-pR&ljmsL?5^#Dh{^sv&E0^s)?Kg(%*DihA)`E(_
zWx~RqmXPh5)=oBzT0wAq{Q><5ZpF@{lV!p{`>I{fN3GH=ryJ}fr3Cq<8ATP_hcmE_
zpeQWfoBmeM2ofQp4k)?ct(xHZr(JD1J4C*`;eruibhBe9{*Fae?hnrUIGtEs
zSExS{VW0&
zmQj$Yvkk@q^rC`qMmP2lYgHd`7==De`3vqRL>(o``LaX9m~d826XhZr$`RHnJgkiQ
zkx=p|p<~h?`eM`8iO#Uj{O+O;yQS-tukK6x@X~Txq@@GO7+9{#57{Pgzn+erqw4V4
z7+15?v*SNDfb3|yvS;Cp?+#n#dHH%O_dABdTlL}9LLSIB&MdAN@e|#AncZe-`G;p<
z&&TIO`#uaAL$5y#wic%CeQ_Bm7-7wukywA&{=T02SifS*Z(=w`C4l~Yk6w2&_QliEehE*%Tb3j#l23)ymjuO$6@sH$j^LcKi5)vR+R&gITM!K7jSUvK
zrc;1W4wH=Lw6amQ+*W4NJ3mLH@eQ)V#yW7;5+51}RKTf5kB;n$`*gh=MU}nFTmrMm
zoz=e`Ux!Mk1}*2*`N4`HxBE-TloD3VVhwi00X;Bx74?pE0UvA@)Q(XsA+w_!O20(s
z4?S{uc}GctCLS{}69VOE#%@e`JQeIDo9Y(L@t5>GCupUm4;`n@)5Z4;2b%nLm!hqI
zDm}ujdzAQ`S;?c=&psaX!jMTn_D@zmxDe-Idy+gWvIq6qs4d2w0cC!H_9>-8s{`u3&}V`6n97#QW|tL`V*nkgb7q
zXkpBd>Y+?LI@CV+l}wd|T7%lEf;Gc5N0T=~Ox%(5`2DxmY_9V^?Js^}y)>XdUP}F@
z6+Lt`!PhHAeX7nL1Avw)nW_UPD7N_dpHHM-WvN57(u389glj?DVsoGCty+h`;Vh5b
z2dl6;9Fj#Bj8{yU5kr&4YS`$hKXj-*=vZn)9BF9Cq$JO&IZurpI@G7-47iS0ibfbd
zw*F?$0$uBUM;&Sl6NGa>0inGe$0TN}?qX`Q?wYMgrgsH)O;JZ~VLfUq;n5?VbF_V3
zaWE`?14n_@Vv;KTIkg-ct+@0p?Z{lpr3SUDt_DNw1h->4
zqHZ%mrl~Q?61BD*n#Wbx;Y3NrpY+OA$zD4Wd4|)FD>{IkTEvV7SIJS@UtXX=7%{y7
z6f~HB7PizL17r!#OfCpFkER6I1^}0Gs^;9;8C_@;NT)`eaOP=SpvOks7BU&`eeTlY
zg@`4?Sq4;aLVO|2;fJNgSZ)RCMR<29<-#!>NEl@tcB2+==L-2_P0UkcsNR!_Z2?wD
z!fn)<;L`IhrSxsHu?SAwDh-7BRD-QkIHnpQ)OIZEe219g9Wkk1X?tlynCRrkI}4i0
zK0H@TW^H?pYPJCW*^VtMHVNE1p5o+8+(QeyraUX-)}ZfrrDi2
zC`W-b#X4OwX>GzDcG$>>Xk6CfL(K5R2%Bz3F~JMVP=PjfrCkwH?1+36b|~buKY32=
zVh)8F=1f$;ZyacR3-R&BDvXgUP-5ADSmh>}X)wPCyI)-3B+EEXE~ve21R^Y8RM?{^
z1`%}FEQrN{F@`L!U$8`^LP^GaWu*71e=byn^CSQApHLl%`Y~}Kd(ka?9t&N!U9S)E
zJzZ;EPS)>>fk$Jq7ARJ~{mkB$uP|UJV2qWxbuqPQ!RbAJ=1;i8fXBSxHguCv9aM1R
zGW+fyJyre)T25w~kA`zj-v(3Kr3~V&Kr7y{-zx5@Fx8N2B9#7)1jUcOGh&@n^*69-
zH3;{6Urol!q&(16P=2$7r2BHIlSYQw5AJfGstL4AO*4l{XCiW{(e13d*cte9R4miY
z_!D^z&5aV9zA$5VNLQ#9kDL7Z)=o=i&)5~cHUQ-=x68t}2mhX%P{N4X?R{jQ>05WX
zyGIv-TJlNQ7(R^F2BLGN+}P}4a_RR`={B3a?aO&=CV@}$=Uwslv@e-aCT5k75Z}1@
zaM9jOX|stSw-E1&9Xr^qOpy=jL7EC(%}#tRTp8t1*O?(k5zy%T7OJGJpIxnJh^I|IVdX&*Gg9b=et%F
z;1zLmvT)NQWjM61K3#<94a{zPMzJu5b?+2|i7zHMh#?t_WRtxoNZ$Tyqh}>TMAa4|#`TZF;pVeI14PJ}WvM
z#`H9=6dZjwU3#z1+@Xme_tv?X_JPam_cto6Lk|K!-H52lap+FB2OMuBTakXfq@MO4
zMk=R%CB1xZTcrV%~;48J<3t8!r~zjA-6-iThUmocd1CiC0By9+fj
zngIPk))^>SGF>rvriBcaan%`n`qcumPI!jmW6Mril{oO)g0@L|I2csYxs{9yLMA$g
zeceRguM0~7ZS%70SSn31uuJw#f94emJGL1}q`s}apM$=W%WWCy_~E5t~ql|iSB_IxW_AN~S7g3WnTWO#*AFm2i;Swp;tB~jZQ*&Z93uHpdEHGv>{YO+f+iBoE
z$1b0vgJ#Q8*ZiJY!O%D
zhF(D0-p=4|0N!c+_=dm~?UAScK|Z-j9oEv>Kyj*)oKg+N>&7!rhhyj@gNLjJnw
zCL^S{`d)*kImfA%QW#FRTL@lZ|`-y~_gP$~M+kfibVu@`QAU
z(nLQL5Gw@n;0hk4Fr1BZ%s%8<=k=ezC2dquihu@z;0QU2^4>%_ipYV1<~l%U$epQv
z=Rct&pI!=g8ly;PpQb@u1VTb+8z@qv58o@%wsO{i@qJO=G)V(OC)q9Md>?~-y;-_~
zHFQ^B-S;P#tejkmT`n`9mZc}JYlZxW^t;!;cCCFcxdsov5)YR!q>Fg!92;ME$Y6!~
z4Bj7qIh{hu*!Vtd=)c<>_f%d|NCUu0=puR^UrKz>E$hanBh`(!yy_@dnV9(Xc4E+H
z2zpp}Jrv=ag{EIma5GuXrCxPwP~Y-t=thCfL>=-nNFgN^N#)Rr4~v3S^mfL&G?o^e
z)TIa#vLw~HyG+7UIqB4;lr!;TJ+7oY?Y~Ub5KZ;KW4GE_`DtpLXOfvv5qaE=g6|Kw
zxklU(M-)Qg5m4Y?B>cKO3FiZ5A|G_dXPR^9JqCjB!BJ^;NW7hQCPNj4ak3Dw}7LnEA`CniZ-Q9xLsL2C}|S?`u2bN_Tt`}xrLuuJBd
zkuRDeQhuC2w6hR{ap0`AH!YRzTs9ba!RT;GHl9HeTWij9;Eos_S3snqwj&ms0{6{r
z8BO96W5#f^!t6(vcJRgES47q!Si3Buh@CjNH>epk2#>9erw*z@n*b32go4n?4ky{I
zd+XbQzTw==zNFon8kkD*HT>%y22xBdaCmC(_tW|LdZzwsEC1S72SoJJfPMa-*^cMf
zBXfq2>gJ=h%k0D0_1f#!W%WV`l)y@CdX*tyuzGXzKZQ%+3&vayLLzL`Gbs(g&FFa&
zjlLxqhB>AKZIB2zfWcXFnxddgvSj-^ndLz9-p%O)QKM&TFcLW7hfG;v4{W;yS{VFI
zpvG&vYIXX!m@{eb{jOTED$Wu+@UxfH2Yt8ox{G_xtQY-5x6
zoEVZ7okNPo(n|p_hks*?owrM$%(nvh*SANl7NtBiM9zYN~E+=zgHdW
zsZ1D>+vMx_QpIF=N7i?2Te@7}arq;Nq~d$myD8~L0^lgI=UYEEIL9VkwI!S<>40lf&q@mQ4NU
zmPEDG0;-3*1m+3uukY7ak;(WpR5t3jn@YT#7MyQxTMi+K3
zCk9`J7uIpBWTEGCZA6^s?hfjFVRf2H{h&wLP!c$AxHik0xKFI-RF)1?(>8Mq&}FMz&E
zW7ipljW>=0CWm3$by5Q~;^zbepF1!^RO3%VnWfgb8Oo(66
zLR*ll?@CUE5^?C}Q-xY~1kGSM0aKUOA7(AT2sofshY`ig!1hKFidt7lwwO6eU<$9A
zIf$f9?iLDv2h#^>V~DaTI|6Glgbg8lB~+T)y;(!F`TYFOdJDBt^&`g04&t6IM1FT@
zBkE_!PU6l1wQO8$9BeUSy){<20cDRLe$Ckd(Vipp@$UPb(LqKi@bthxrLrQ}CZ{
z{q66K?+c&+03s%Uu(A>*?4bz;lG{Eh)_#Z4kStq$k{#AgL%$2fPf0Gxy(jd*YhV?#}#H}UKaD_H52qz6BK)?ZbFl>kF_Wjo{D`zc{?eh9{I=bNB
zBwY>SQ5HiZ8PANwZX+f45IbVE($4s~p`Dwx%YQhX0$5wQF18%7X$d=0g2nZ0x@kEo}|WO_}H&?92fGzi;1g1vzmzXzYJ_
zV&NnuM3evk(0c#?SReB5Ck04`1y%d|fO3$~bOHc~7XKMQpjl1X001FCQbbV2J!|1p
zHi7m>EG=XO^VCSpg1#pB#!fBiDpxu<6mu=@q|8Tq!Rnz$KM}4
zgosI?$e=+TX}-hiQ4FHr*x!g@=Eth?68p1uE6mvq)9nN92W^Bo?jN@q23H0CZYl>VoXk3F*jxW(YMuXtPO->*jEr
zn82f!!rIcy^&i(q^NBzOCEywDjj4>jSyon-lzivW3H89A6#FN6c#~c~tY5XAIGdA3
zyonQ(3jirmN<5?qtD{9NEqh_IJhr+ki;WXXa9Azy4`miEbyS8YQczU6_@CyLCfXJn
znL?LAk=Fy#cv0(hz$@G#j9Osw?aQf$7bT=7B|8fRq;n*6q7L`=2eQ5rEv5|fki=xEHj16WIiMHMShp{+`C<&vH{B4?{EnF2FP
zT;;mqiDXhQdMJF|H-6T&;b0GAvYKnKm@8Zj!e&)>-C!+0S9g!bT--v6nh(nKp_U)B
z9jcNf%U%auD3oU#Q$(q
zen{JYPwRjwgUf;e`?P&`8~RMU$wNo`-Vc8Z98=hR^Lu?}4}X7>e%23h$UA;N?2dAv
zd^MN0lY0kS>5!R1yc+HIIjzz>#uxi@1FWd-4p9=J2r@y(LN;B@1+KjVlQ32S-CM
zzQpD4*b5p@4bo!XoPxX)vbyj(Is~l(oee-@#5Cf!1FT3Oq4|p4}
zrGtfHQehm_zS?F|xNw*m89TCgePyEJ9c0O?PunkZg^Aa!tfM^AlSrs)q2~Z1|F||t
zMbQIN)wmYkEZ`=45FJ{jt{d1y!z){A%(CXT=V33xcUxHvOQeliJp`{k4LZa*F-(<;
zka-M^(RFGLP^x3caPd2cX@|DC!Q>OMsQkN4OZE+}+adm1I#^D1U-W~v`A6{x$
zdZFDpb;^tk$y@wP7Z%mc&*beWRSC$&%_&|$8rEQjfTt}Cv+g7!Wp1fnt;hlQtg$|P
zKUlXh#&Ix(m3#)#QhNuWe8W9z^jE1v?^x;CUIp
zk2R8P_ei_pJN>EsOQ0qBY6r-WCPjA86a@5LOmscN0S*?{#W2H1gUaMTQM5Iras4eo^njgT#l{m;ZF(b}%Z)y8oUwoKXP@Q|8z&{D7af
z=+Nm0@GFIKl}{&~lfAll_(Wi}r+Ps`omNz;IdBDT$iUdKh`YiptY!Vh{Tr4E%oI|N
zUMY;Hs}ukg#Ia)da*+<%q;AIsh(i%BoGStGROy0o^-2(Lu(l~;I!>H#EX;5pW#LR2d4rOh?YQ~+7Y
zR8sc?2edkSQ#j+kFXz^Sk|>tnx0^orLteg^I!3|majn8rtlm73b=ch%?enqcK0W>z
zB8xNU7tUs=%+crG$2CdmoA3H#U~c=BhtKQVr|;Pt)rtQ5XMS@J@13G^EgWo;JRnMo5FVhKFs56LurR(lZaFHvj^?Y)YoVYV>?lMc(C5x`<4?U=h@lGvIT)c<&`k2;LY9Ua$6!8F%~+*4UpC}js!c$IQkJp9)C64Mk=x;j
zMp&4!A}kGSRcBSrz$zfYE!7EDD5dxIk-+6Vi^
zcGCn0b`x5P0J`9YTt0V28@y*Bec%g22nQK@juYfo6`ker>P<{d9vBDG(Ra0(nya(r
z%SFm^$tBifQ<+zF=N~k(P0VFrHrjY7^ystnv^Vk%{RkzKOk25lz%=tSS=5#02qxCG
z#%u9Tpnm4)aLt9!Z}+^E8PYtACKT+`l<|1dkPzieT$tPg881K#7sC^>R{|MLdk-*N
zn~AG>;0MIAy=hfg*&^9f4KQ~m`dFuBt~rvkD*e{I@;D0uG?QDXy$%^EEI`S02VVMt
z5%Ye~Z#?lTN6zqKpO-Qdbxd$^5sA{&4n`lk+i6Xp5;@tc(jlf6tXDp7CCvBTm6Lwca
z@wQ{mLtS4RiiFn+@DjDN!U6l^SX?X#wk$keG|_3Zum1Vt`gHgzgV)!0r*+JOvJ!94
z$GFKDg5_oCNbd9Zj5Jruc<;4WbtM#nx>Yd8n|O^~ibdb#S#vihMBaR$5c?0(XWvt0W_cP5kR6&m7ZX>;G|3Y}tG2nm@COA?
z8pAB3;z*pg(qK`NgiJ!Haf?V8L^4t6hzCLzjFpVl#kF!^#T^a0(^
zS`0Z@*2qvAf@%xykTAi?nefpvLd$^@+GF+&Y`?6}s}X8Cgr~`ynMLouC)Dh5Eop5l
z-lu?5dq{Fh)QSiOMu(I-lphp2d+HoQ#{)E{T2W1A)xLt^ZF%#K
zUSk$0)+&A&HPNt8Ozz3cH?EC1=DB}lD3pql1(AEyBqUA2+A_IW)-{|w-BnW@JjiTv
z$X*T(Bpj`;NLZVE4_1SNq`H-7Ca7;47$!!H7jNMT-uXJvhCtCh(;IM8CsiGYx)JTb
z33-GmA`HYRCR-GKD0k^dB5q85fs_r
z*B>J)-NZsNT}We@D0+g|^(UoOL}HtI%-+CH#xfY5SBH=RXrU$4C>RcZ!KM(jeqSy@
z=EZ3aB0X==J?I5Jacv}&yw|C7nrXQokBB*;t
z%b4-;jV$_o)DQVoe26T?dNN*lU`dF3Vx#c%FQ;y=PNWe%7_h)rcVNL;oX8^t&LzSZe66EC=GmJ
z!xd=}X_<5cY
z=pu0H@@3=;6x4o1j1jD+Eb5VHo4cC*2~>l&leW+ASfp0FTUyukj1RBMWR6ZW1%_0k
zz@3gbpOMHyh%|ICRa=64Br}6Iv`t9smthbLu(6-68`v;scYh-Y+2{-YZ7wQM?oAFe
zXNs}kqZWaxlRkW->>|!2xc^RyH_>j9>ORxz&UbBeJrt*k*1t%u9M)+|XV$s%3v{xi
zMqoQjT!@nfpmT8)jae~^tAjny%GjuB@F<0fz_4!*zGR(^CwB@7UU^Y&XeYQzGSw2|
zOE2@8dx+zb%;o$8OX4bwKhzJqHvKp*MJ%zC=$XGbrR^I56croAqLmA%=fRgo|`
zgYNgz=*T(zXDRsiHtL?Q)!Eq_l)I1nP0t*ctvU6*=-GX#`7uNP4{|~aD7WKUINegx
z51Chsk7dt@ivI&kK(xQl(M{QwhW4bRVI&uZa8=9b$9~}ZkYGC>3}0e<4#(%5dUz(C
z4hjHwTR}$9u?Zz}ss|aYeBlGZ|14+kKMdHk5Zg!uiQY&lNL*2(2_P_JY&QB1s`3P#
zS{#UA{I!-=vUq=Qd~30aDzh*+7_vQ#t-bJ-jTY}}7ieyaiyYt^En`A?7L-+d1sBq5
z#6BMai@83xu&{OFVdkGQM$eK7%{mX~$
z?cLG3V6MlwOd2!_usy1)(kZVP1m&f*`PJTggfBVYVd!Ae6V~sIJ
zH0DILwXn2M`$*SX+M1lfnTHff)y_bB1YQA_O8%2qjmAP1-KWU4zOX?93<+3_Rrs|x
zHt_WY&UJ+^y-{2GcR3AOx)
zDT|exIm?=h+XH!NMXYKdmuJ@@G&8-yP;76%%XV8rWv%aRXo#Jp!8B9Yf)8L7p
zLJ(^$_Bvy_W#3^FaRGHql8ItW97?6zbc4gQ?O~uLm-rA~vFmB4$qcs7Kkr$Ix_K>r
zfBWFT@N~9)*YvavPWMZz!j4ninm@E~+JrB#SY1~JIff9LzaV}kZxxdv4prh>+Sl;6
zu(`?#lkG9Fux#(;!|P9yUteDbXRuaA*r=-q0F^Io57T4uAyb?)xdQsrc
zV@l#6v&C?tMuE&M-DO{?4mPnsH)&d`5|J{EwCQ;&-j$toj%`c#zazVKW}CqL16(c<
zU;jSuEMApL%sZ>8_S!+i=@?brc{ZO8fhbr1?EVjqL>yIA&@w+=6>Ye{R{m=ZVKg@w*WVx46N*ox$@l|loYY69V=Xvw<%jwi!
zsrut}po>dMJ~aEO{p+yU4
zxA3>R$^2_a{S4&9z0=ksOtD0AoIfywlE&RsQ
z0{>;FIbWf$eiZ+I{+e+&?2{X
z`jv5=YL^k(6SP4>O)76diW8Vhn>LWEd&;gHx&cBve$2ftwVZ1{uC-bM;rpyC3y{w&
zHWa9qqmhVaPU#43LyEiu;Z|eSy~UZO-No4c`Qer3VhHR{{kU>dD4A!6Y3phBq3AB=
zOt%%uPoElMxnihV;KES`e1Nke9_(;XGh20M>QdQ3X*sfX(+hes*Mp6%ej_|YgNAsA
zb1GdZrPX*u_A-qhUtLuKz8W1It&e?i7f2=X(o`@don_Je86UKAB;Aa{izF(~|<*>d=e*IhI)Dk{8p8
z*u!ipK1zUg7KHEg(w;d5h&}v4h?|HRq8=$#)#kfW%ss|pPpe*N+go!TyB%`()jvIN
z+uF!!of;OL?YCyosu@qMg_wcD10z20OnT+DTK+YNx@VF)>3qF7x97nAsHAu}kNH&l
z*vBqFvT6zZcPLC@ee3xouN4(BW4kk0IIZob_*M;Wk9&BG!u>s*E>GlRM1}0O4Mu!?T}XRq}_&KaY-&4>Els;>P1bu68#iN2B+pvv@Z!yQj{mVm_D!w?<*;!Y2<{ib;j`>`809^RV1|
z&UePat0}jgjd|Pa!yZ&rAHEX_n6vzu@aGJX#y8~7_hf9q8;ps_=NG119FhjeIPLUy
zaK@E)L@2b@=(RExFy3u4iDR&%boJJ&fv&tf8%lBE!a-FXy%A$y+Q
zl!zEWcpWw0E?_rAygMTvVk%eZKdl00I?3<7J+;8IO+7z%BS3kb0fm9HsnY;~*pJ=&
zG;rt#W?~u1_A!@q=2Tt@hd{==+fKu*YEr%Lv8x8v{v2w2RuG3HB}4u-gclDVMG
z^4~hr9<)w>ZLDYiKIWi-S~k>WSx}LW(y`rB^BDx3H{5rO5}NIYnQ+^}u5yD86Wj
zR?}oahmFrePBm^bo{z}iYK}Y{=pl*D&UBUD3gMQ|m1AGpnY>AL8f16>ek@o53#t^#j_l;w(L{D99
z#P>Rg9|o9BT|Jycv|Bho*OS1d&o$C9?>Xl9h}@IoxxG?csNG4V66l)YAFofd5+<($
z`oBv1WR~~nwOvYDE0g8uR;7FyzYXoqSnol4Eobh!3zVFlR&z0MQdxP4P7frN1JB90
zSi6f?mu$GG$phJ^F(NC
z_qr(krbEjy;CU81T{|t>D@UBG;u!5+Q|l8|2b0>fS}Gl%s5-x3kBMZps2W|t&TIaQ
z-e#SAFwpF`p`L+|spQ96BEYE&m%>!3YR*<OMT^=yRyfy4b~TY1`8~r@oG#{9`!IGdgq33`r*rV*z0boD0pWFGw&Sq@a_D*9
zYD3GP`@UII8j}vY0dWpBxIjDF>#54Znbn#)OI*yuqtYAaH5CwkDRcE$10Oyi{vKuL
z+0)I34ilZ%qkK-V<(#R>f6dj54`ykXzGEzxc$H8>p8Ifw>D|RkqrAC@9FRW8PU7|OVVCc=%1uQ-u|dW2kOguY>r~hBW6c4J
zC<*X9LU1}_J(+pR>F48yjeN~JEag;Bpg+uKZ6;brn1DhzgmR=3T_0Wq=je(jIW?o!
z3i|$#XL7~!_fx#-t;w|>*i~K2R3O(@we-*Pn4I_{r$_c7l(BA
z@M~x1GV-6uoAcFplhH3d{^9;tkzMHMKO~Efem}Ky>+=hMyeA0eFIR`>=a-gWud6%c
z+o|rj`GcfRPup(o1IH%ZI+}eYlCH8uDx^*Wx@gnoF`^f5{ck2+_p}E&H@F>Uadg~w
z%t7+Z0jr6HLy%ol(&lgv{v{m$Cdc~x50)NcZ(`$WfarR((P(1|b?U_~$vCumx<%8J
z>Jn3+7aYo1m6=zD;hLIM&4KUOoXCbfF$Q<{5KSY11$+k@uI06H
zXMxBOD|5ULFPH>hf2s!fv@UrQREP#R+GIa1>)gywx{=YjLA!
z22L$PVe@u|ID=*Cf64!JI0R6Dqih{Bk;^njo3dQ`rN^nh*q#
zIgBei?U4Y~x$%B`XxxlBcZR6Sr&Vph-*H6}2Cuc1v3!JR8v7PJFXhToX5cD?N?F9m
zWdRSjGx~ZVZs3m@n_hg&e1y5P^q{)^7e6`P
z1~i@>w8kVCPN-gDy&UwM@g8J3`yOgPJe9xfPcf@P&w>fvB%G^H4QwgUz1+*Iuob8*
zD6MZGL?eMWCXY~$vS9~(ZyC>l9NPMze;Xpm51Le8rufH(ue{dbH
z<8v1J_v=H#_R?DE%me{*dg3|pQk}e;fBw{D6fwup2C2ihRGYloWR-5+jzMLxKc=;{
zs?p7UQqIHTGP=n0{c1+cL@J;>7I!oESUQH(uB?L5UHb{JIW9(%^M!ZJXur9nrouB&F-c
z!3>(lIs;DGO5TG?0aWcg54wewt2BdEy$h^c>qXTt4+Eyic7h(u$lxX02n84l0wCVh
z^8G#1*r*;4f@<~wW&9O7ZFj5Av(dw~DmF0oVYv-YTih-bPBWMe#tf}+p_s=K6cbE&
z#&xGmmZAuL!v~PwXxH_Bmfjg48~9Zzax&H{(qn+ACXfZOp)XzaUH+joE2y1#t{e2S
zeZ9%~NP`p0$1wNuri=-iJ%osy~k)%Xq<(#&HUF>bUn_
zJdaN;%pzdb{aHk{m6<>1q(iM#vP9ZaR)#(5Pz+AE7L8SYH{T+A9CYs)&%PP?WG$k@@mQs;C2)?-WIWRPm_Z8|HnMJWsFUle0@`kpMk
zFz-icalbGdc^kd~VG(=2*%*0J=oWo@%g`(;>xi!<^>y);Zx*xHM$
zCN}Dbjo4QVk$GOg185TS#4I#tQeLbW^7(3ymh&&Ko~JR|)zz;V-^YIKn#$;pSY}21
zH4(BG{pFq~;;(s-(#HESg|Cz6>W&6cDms^^#!VA#7lG}uktz&A&sz
z0U1AE|CNicPGbI!hcZqg4w^<&I+UtHP^kB@ujfO*pT7J+_XGnEZ}E8Ij-=0_#BFOp
zovEV#Hq4pX1C)og5rKEm7}nALksx!WM`p2I8${l
z2IdQReOr9L)dy4ot`SPm8^|e2QEN6?)^(u=AZ(v)SU)DVUTXy#$yKXP0Q^qicp%dT
zr=J9XrM(Npjm?U=9MQqm0L7@&gHIj;^g_y%aWW%(ZoKO*Pcng_SaP!5Ib#D@otJEp
z!D{6YQj3If$Hu}^(BBabS3FC-@+?3jh6Q?K($GbNq`}fh?$4wV)1XrIL~1OY41DAykPR1BHn*2BxeB!v-;Sc=Ck^2>jX@Pn|qBC>n8
zboR0O?vdnYR?o;U5*jnQnkinjqudTKik#ytHTfgRcwwj7&A30-UrES#tJnrs^}#8C
zvf?-{DCZHL0i$r}_P`4h$1}TM)(j9?>+DsX0(niviZ$L^-2+MWw1wi>(@i_wtAxQm
zHQx?29PrA`s1G+iR*5IPOK#h)17N>h~IZkjU
z9deAP@)S9=buLotZ(dEe=E!G4*ZXhVAaYoW*LSXvUAWJk;Jb(Q=9Yt6Iq3Y=t@5;>og{aVW(It?P5fOmN8v5npEQQp(!8
z493w0>Dl1YvQQPoev7e5p#)f>91z8kR4{Ks1B-_qyU{aPpZk2_xGkceaqyuic;xdEsj+_zb7@G#|FBPgb^cSKmm-CxM
zDNi;AbNb(Na=Wli-TC5|4$4nneagFDQ>>SO{^9;lWE{86d!~qUx0=##_5BU;?J45f
z*RC)$@c42>@gE+%bL#OyBPG}D{#pNgistC?Q*!thY5x4|%&T7?zn+?T^=t2+1pWEu
zt{^*=t@Hd54bu=`RPpgQ?YqlEelVHIw+YAIqISG|q|LTn&`HQImi5E+0WTbp{i3OS
z%X!dZ5i!?`I}FQ*1f5q+BE8G5o6ktloc(c7Jb8=LOs1e&zz`36Jf$N5{{Y4eKUuFp
z&q5Z6iC@ft%haCQ4b7)TOhW$yd=9@O|*?yimmmrQk6A5Z|VT^Aj*Y0nz7cMvgEi|b)>z%7Fe%!
zoobhj%g(nPhaqs_m0fkFlSps_t=u!?l{)N9jdFHTAM(pulx8kfQA(AFE#G#md5rM6
zvDp%_^h;!Fs&t|#)w-Tym*na0UxG&@d?aheLQ!9ycBs7rNyTYlX=ynft5|pe5~`(6
zXhdQF;NF6EymE?hNXd#h3}oFXsI3*o%cb1tx(IH41N=tvH(Y$Yo@yX3#Wah~04sS9
zXL_Q5$OI8*t{@%ap{3qX9_x6>Nwh5eb3>qPy2;+nculpASYVTZlOc&Q`;_H*T_v85
zLIAM$&Pko#JDb=(tw6CTMtkItdAhM&XWL0T7g?OC0Es+Aw`4k#f$wil}43LC{LW&QT!YoBxZHaPvxG>EKdox!%1(>TsdaB
z#(J$a!|F(cQl<9ZPY*Vov(>NVYi}WxqOvWhS}0Yml*2wMTXy+F_}EG(4iM>f64iy&
zwYMj5v(FG!i6LLsCBbn4RUeUb%!Bk;iEGz9D_=$sF9nPiBCHR`i@^mOB$yFiTDj^U
zi=UBaD38)4zxVg@i@s7hixs;#Ci~f#8s7eX``G)|;A(1_)z+cV*M3vl6me>PoV93N
z1jIR2D__`KvJ8oEAOs~_qP4}f)A1-Uo
z{mp3Y;&2b8$issh&(AjhcR~Ct=>ICU*Xy;5zY6a6)*7c>Ck5uuhLC-GTM!3Vd1+bw
za0+_h(?=3MVEH@om4Forc#dg8s)x{jx(t#V4;5&A)(u=8I5^DarrYpOtD~5!Mee9K
z8y-e+kH{_mG_dkf1N%((1sp7$4?b4&TkOMpuh0L02@T-BUw=Jd8$;rMyNTHqVX2lsdi;k
z2b?KadJ5(dr+}j@;;-;U!diSxFd|FC)rQlI>9Le7l3^o5&H^X(&23+vMh4JK7(P~2
z;_Dv6j^wrY1SkU@c={wgTQ%G^T|d+7#~b?Ux*3dt4whmzRq1`ldV`^|!EWicy2rjDM@sad;=B_iQdK%m26y4o8X+na|?-^uZILy-T3fYPk1%g9|XpwL{3**tt
z4Gjn}-W14uRd1mG!oe4YXj+_z7PxX}m%uv?g_og+Di0}RYOOryViroDX-<~;6r^eL
zvqM@UPfZ`hT!T7wu(j(`w3yoc8g!xlY#@=EP{{sM7h`N^{2O#VS0mpVnOKT;inF26
z^e$s9oE*~6IgbH|(Q;IB*{T;B*U1JUZx#)+o0B5Bm^*8X>m!J&Nw&6GNEVaEnBAa3fa-Gllh;oephq8ZZsc9MHi>AvE_u;i`-K)$0DE#
zJ?ylP`N+f9ziQ){1$ZU*1TR4Qqc%wiOjqx2wZ{jV5`^6e*vV%i-sxOZCW!Svfv6G9x&
z#-bM=uHoE5JzNM)_#lrtS=1BI*5!le%-opSv~D%Ht`o9eguRy*Rusnvo&2Pz&&27K
zs>98^C0Ez?Gqk;rMHU+}5QX7j*wTR(fkhv=swCNd5Mzs-!J;c#b*pMJDI~NDyXVgD*5I`)MCe4f5
zCB#Itl6pZHHS(Z-!cA{-$)%F*My%t7!qat@@6PX$9TQ+Kb~m0_@Ts2OX>?9m74K>b
znvzj>kxbm2o1F(IiN#|IhF9I4$htNY@}~#nc}iBbe`bBoX^~k=&5o~pb<HTt+LBE2haxXHwi{
zx?@{kxE`eg%H!g;b|~_y5Lm+6n^Q1xo>%);t76U-410=>&y}T1V`n&-N>a)>yNIv$
z-fNgf>dl48Z`Yj#-tkjRy|i;96munq$MYE6qEhgEtWo~EMXsTWL+E>7s}PaBU{GEk
zX!l$F{tRx4L4Dhq0L*+Kek8^*JQ3&Wv^g@jrHHJT%`xAOOVqZ>1FjVTBOvqky@RF`
zO1}+idbY<~e4hL$xZX2M5l_X%uv@@UBeknMExq%8uxY?|cG)n(dg2Au-vk%A_x|_q
z-$-okA$u(88DzVw?HUYLds1#8j=zTbFkeI-SV<`w&7o;WP5T5-)u8OD*mnhWS~E
za)?Dk-T5!iX^jHnddvBX&2xa5EJQZcJRri#{xXJHaS|d851m={w+GlzK*~UcDEwkV@nT*3hR5
zC?KNJ5FyXmEh)twxyFUV{iRepZ;r#CfSNvdOKz`hc>?Q!6^4Q?ZENdt9S4
z^Y=^+qg**ooRMFc&0*tdsylGdiWk@hrPb{AzSA71kCS6>a!eK!PkiQWS3))qnM=wC
z-_*(wf>>O0qP=u*<$4OpdKIhl0Z_z-zQ)Uwhu^9EkXE8LwaV=L2C1ZXdC`4f)*~=a
zcsGBQkFTrmd$hUXIdd9W#$R7wwd1rlK@|TXZ0+C*1#ei5#U<*)F`Qg2bT~agooAk$
z4bO4`kqpeA+sU#W&&Sf3t-lO$JDqSsr
z+)TSpZ+RM1ru`NgS9fH6j|~DPBX;HFwVV}CeQ?X!c?|`mb|_)&h{mYf${Dg(`~&u@
zh({MT(D3L2u=Y6jU~hS&0PM!%D8bXpETHfjB`A5D>orYT1Z=-ZxB5^YA!#C0^+deHq5yqw7VQV@DaY_Ym5G9@lH;jN!N#z?6~dq
z@%hbbZuUas>phx-95?5pf`jQmeDQ_@gPYX4L2H`!j_
zKU@2OfElMgk@R{`!HJ(o^cRU=9sQt4c^jUaq~9t3^i7T9IkYoJ@NL!IK#HHpj=Mg{
z^ccjX@n=#;t@K|no}Vk?AKv$vx;CuLEFWEk(rm%R1ScZ62K6%hSEZVcf#>S$54tnl
z?~H4Qng3h$Rs*3xY}|P$S#w4CCxk8oo>9|Tf&Z*Pu0#|0hH`mR9E?NKSxk*OviZx*fiXqY(qBNoI_7d^HacknJ_D4n}0Oq3un_kT6aDr}c5
zJR@j9qRMH>C4J8uo=mtTSiYkk;i)Y_bt>hXXD_9l?bskAd8lk{O5r`=U5>tN{%kzA
z>z*yJ_z+6FZK$7utJ_?jmh0kPD^erl3W_{*W|(}{C7a+l)I_jtdadQ+oAR*ZgmeUU
z99ABSD%%J@wmvY|vlk3crnB
zmei1Ox!%MO%p1c$Q`*jbeX|b+OKThBswC}-SS-V0G2ETMIf*KiIoq+je0Do-yxiIa
z*=H{=O8DXW1aBt9dNyLk?)C19YR@iMgKHkcLGFc3uX2C>^h7?-`!DA+o<07WPkid`
z`DH`U-!kMWub;*7!&T1qYWCUJD`zk;)en#V<+}XO{Nd-Pk_g-afUR}dM#U_A;+f`$
z5j%e1aCyt~w*L6vS@JrXKRgrNq20>SM$Z2GuZDqm+*l3i{O6x{PTdl1{A6t5aQo2l_7#DLrjMf}23SE`w
zEHW-pOlTENx@`FPbxMk;7dWq;X^INxAKaM{W+t9HjfTdWIJp<(m0d8C#@wS@I4{sG
z;wbWj1~=f#)HZ((j;vU)b8b}~%0_B6&f0;8gEvT(cAm)QBp{oM*K~yF8?W^G(nHlv
zduhkvXhpv^Ba#%WGmh1^@zf^-GsC>j3gk5eLb5R*Ub5)vDDmmRBBt`bFgbTkoHS8WdqBiB4yccbQp)n0@cXDz#$9k
z(r2g<9hU#7=5n1s=WW`3#Yu()d&iCJ?fsx~L%9f-%VHD-C1a;fGVeJP{)~hVlv^_!
zs~F}dE>Lx52ml11^<7vdEj4zIv~zGfS(8!6L77eKm6@Y_#!kE6S68n#ZpI&4av;0g
zYbt|_DoUnj>`pxeS6!edc5lu<;B~wn4)GEO$Bx~uLVMR6hNg+mA=S_(lsoEKK0tv-rQL_id^P=tdprkzugkq>8s{T_px_YMp;T|8
zeA0A++%b^)B4vOvaW^#c4@ABI&cCH2C%fhs#k#*Vb2Rl#r0d5Y?)fy#*GHaGegvHx
zJGIY$yZM!>pE*zdf^wt9UvJ49&2i6aK1Y4g*6HIdYnJUzLXO;ZD#`h8H^5TMQRH|H
z?&8oVhW#l?ZlrT`ay2vD@^C;V^#%)qU$pkAvrEbs+u!x!kACAnUH@u}X&y|E+&uG8
z)~ad5#4AZObIYqFQo<%yBodVa&A~?syXY-qF=iEOsq;0GIMpTDksAQ#X*&uRIZ#NUsD}g1;>-jaLvqu_dhsi2v@R7&eeVUar}u2~E;2HCg+u$P
z;-q%G8u4q=-+9X{YM&$HQ4lZ&-4oZwf=Qp_I%JP~p?RL_>|e9#wIY-00qETCbcMi~
zLR2fGkTRj6TGsN+z+roC9lw+i`-lcAYs8eBZ7
zm!3?%NdvpgzAU5j_Ty7idpOXYJIsO#1;sHfvF3Q6gSp7AonK@J>WvWLKWgBK*#E3r-#<=bty
zwvK{({!nZfE9!DpOL;{?elHF#ZLZ@WIqaB(t>J58uU~Go~w(MoT@Ixp+9O
zOr128K{{U#hNotjnq1|kMpMj!pgp3A;smnTwhhE&Qz%PT^D?kgW@S&D-HEpo>j7)R
zi0nX4-#DCD9~qS6u%MIbv6nsDA3-fNO^>CQFilinN@uI(+PaIpu`S*6US#WjHnC
z5l(b&-v~CfWtCFJ4qV5eu*fyT(Fl|q;MZ4H3lC%hyXPRAqhMhMWRqN~;o*?nI~1wJ
zx9yFR?e#>*!9qmg$HGxcsMB$oH7Vsl%0G0JLLsI5(){HE2-I6*%i}+N?{qXL56;KW
zJo7cX`+K7J>H8Ny`2c(UNKsrjA3vP!;Na5(4<^l%hEjO%Rb>g!gh@yK}ioxIP4{l=tcTSsHv1_#LI-LC4pA)7PN
z@V~#Q`pG~HN6MTAY`6HsQ!k^rz8?|fBH;az4_61Qw?P}z9HRKIGWp@b_fg+By|H|z
zL9Qgb@A(&5+%l|$6T*r*rQ%l{azw4lN;T&T>PGte`oAmPaSr2a)XY6>kl|`#(b3MK*{-G4yq(@*5G*G+y
zKKZ7P{wp!nhaxd|JEG@+fyni+*SyggX*7<+d=nUr8jIf9q+;CxLDt6P
zZEFIVQvo@##d#=ds9)9$b6EG#qFT*hlbn|8RL;f4LcHWfi8d;Ep%}SQq&DYaY0qqY
z{Nc7tS>)u<(^sCP{EcQ%X`^
zWpEYeRa|Lh9&2%pi|9$4U?(dQ>q>)5#94Y=G8~<%?_t;WX;6Z
z#CR_i%WwIuZ~#w{thK+ti(j<>UU8)YZ@822Ofj=R6Ve~^nYZg>ws5AoEUwRBhBIO}
z5lzo8o%8ze%*=U+W&o4!<6|f9N#MxACOACrG7=bB$@%L`N57>l)$L#J3*w*SD`C_d8M}g{gA*<
z=?Uki&VS4S2iWZ{r>^fjRwL5`WacY!MJk!gy`52@aTDkX_%ZB7Y(v0^F%5*0BXR2fmcwjL0@`V=hJ~zB{;o+p`ZGtBYSz6TU;B!h9^xJEV`jVbvzqS|O
zOz6t|ZB6H1Y4c=0ePnh!qmi{v`7*PIp}_*!X<^PR1hC2n;hdsXf8+xovAFU;;0G%S
zaB=r5LIqG;S_9T@Bm&45j)ogzDvt*ut1VFWF5J
za&~tmT6IG6x*&7mfLJrJ5lU^^{<6}q_#ng?)R|Np*T?Cj=Nt-hmBp5o`|jAkA<*Fh
zDQ&TG>||N212f&x5VK{(tSLp|%gM&(B;?=oWN!Zg?xh+oyBESWS;yI*dUZcF`Eu>
ztSMte`AigRVk@Z%KbcFsC5;j9>Tszdvb{9(AJu+`$@Zc`vkZpzhD0$uoixBQ#$x4A
zT{sG`rY61r`{O&f{`?T
z!(R-c{XoJk&QG%ZsEQw+Jyh(l+&^79?E0@yeY(!E!+lM%~$X9UjYBwRqMsw1Wtu9gsr)M`pT0=dYvL7
zy3bCPael(k=wUJ55M*>xr{Ul@KCv>rn)*a#|GJjRRjkVV%~?<+mWwO50(vr*izC|g
zVvdZlBJvd81tJw-vmpBlECuae^>rQv7Ds5iQLZFJca@a|&6kSY?{)BcUYu?s_y;St;{J(kgk!Z@chSdwteDf{
zto$?HKC%-$#cr{}H05NS3B|O6kDBZRzG1GH9t}a&{mY=)Rht!ULkqhSVdVC;9ji2+
zB;pOmC{~BI3(94Rple!i3x)8KseXUQw@`)$+S|Efayl#xUYivMfQ=LqSVFwWI1k6
zDw%!lk!-$_n7LUTds9Z4KN_o#k;J5{_19OZ>`BfQaeurzJoasZ(FUjqa1Ium3ekPn;5L(A?C`NCyZ2o4cFyUff`t9
zul3bFu=KJzibpz#)+pm~#r}Uk+paQh32s_fY&xt`dH7}28E(vjRNgKdSznRn#vyjD
z)@a`|GP3IY06MqbVTPnEQJILfZI~3Wp;aSbZ;;J9ds1zvfuosuW#8RE!Zr$xjRWB)
zQGyt{-GDrti>s@KqUHa#saoGI)IcJcb)KscQs}ouAXUFTvxG>?lkk)R{FbA>enpm=
z7F=vT9z8ryYIvKA<7ke@A^5!b_(Pv>sO;=+X5fZL*qjaBgVyyg=kp&ZdE*<;Ha^`p
z2lC#`xS>Ce&!3;Tzbg=RX!YS~#~;)BUK8<=B9^6GLpVbG3Ggqz&pE8ekRA_YEWSzQ
z6lgg;yfEo`T?y||cc4pUZXGu@`yAkSU_M^0PZ#(h$Ge=vi~jyRsHb+cZz%eYVZSzW
zcKbr9-lQMjKhoWLu7i652kd(qt6~=p$afl<_5!
z?4xA#?U+r#X