Merge branch 'main' of http://192.168.65.198:3000/Front_Team/SPDM
This commit is contained in:
@@ -7,7 +7,7 @@ VITE_API_WS_BASE_URL=/wsApi/simulation
|
||||
VITE_API_WS_URL=ws://192.168.65.80:7100
|
||||
VITE_API_IMAGE_PREVIEW_URL=http://192.168.65.161:7104
|
||||
VITE_API_FILE_PREVIEW_URL=http://192.168.65.161/preview/onlinePreview
|
||||
VITE_API_FILE_URL=http://192.168.65.73:7104
|
||||
VITE_API_FILE_URL=http://192.168.65.161:7104
|
||||
|
||||
VITE_API_PREFIX_APPROVE=/
|
||||
VITE_API_PREFIX_CAPABILITY=/local7107/
|
||||
|
||||
@@ -7,7 +7,7 @@ VITE_API_WS_BASE_URL=/wsApi/simulation
|
||||
VITE_API_WS_URL=ws://192.168.65.80:7100
|
||||
VITE_API_IMAGE_PREVIEW_URL=http://192.168.65.161:7104
|
||||
VITE_API_FILE_PREVIEW_URL=http://192.168.65.161/preview/onlinePreview
|
||||
VITE_API_FILE_URL=http://192.168.65.73:7104
|
||||
VITE_API_FILE_URL=http://192.168.65.161:7104
|
||||
|
||||
VITE_API_PREFIX_APPROVE=/approve/
|
||||
VITE_API_PREFIX_CAPABILITY=/capability/
|
||||
|
||||
@@ -7,7 +7,7 @@ VITE_API_WS_BASE_URL=/wsApi/simulation
|
||||
VITE_API_WS_URL=ws://192.168.65.80:7100
|
||||
VITE_API_IMAGE_PREVIEW_URL=http://192.168.65.161:7104
|
||||
VITE_API_FILE_PREVIEW_URL=http://192.168.65.161/preview/onlinePreview
|
||||
VITE_API_FILE_URL=http://192.168.65.73:7104
|
||||
VITE_API_FILE_URL=http://192.168.65.161:7104
|
||||
|
||||
VITE_API_PREFIX_APPROVE=/approve/
|
||||
VITE_API_PREFIX_CAPABILITY=/capability/
|
||||
|
||||
@@ -52,7 +52,9 @@
|
||||
"vxe-pc-ui": "^4.9.13",
|
||||
"vxe-table": "^4.16.0",
|
||||
"xlsx": "^0.18.5",
|
||||
"@antv/g6": "^4.8.24"
|
||||
"@antv/g6": "^4.8.24",
|
||||
"dhtmlx-gantt": "^8.0.6",
|
||||
"chinese-workday": "^1.10.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tsconfig/node22": "^22.0.2",
|
||||
|
||||
@@ -40,7 +40,7 @@ export const userQueryGroupApi = (params: any) => {
|
||||
|
||||
// 用户组详情
|
||||
export const userQueryGroupDetailApi = (params: any) => {
|
||||
return get(`${PREFIX}user/queryGroupDetail`, params);
|
||||
return post(`${PREFIX}user/queryGroupDetail`, params);
|
||||
};
|
||||
|
||||
// 更新用户组
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<el-dialog
|
||||
:title="diaTitle"
|
||||
@open="openFun"
|
||||
draggable
|
||||
v-bind="$attrs"
|
||||
>
|
||||
<template v-for="(name) in Object.keys($slots)" :key="name" #[name]="scope">
|
||||
|
||||
68
src/components/common/filePreview/index.vue
Normal file
68
src/components/common/filePreview/index.vue
Normal file
@@ -0,0 +1,68 @@
|
||||
<template>
|
||||
<div>
|
||||
<Dialog
|
||||
diaTitle="预览文件"
|
||||
v-model="diaVisible"
|
||||
fullscreen
|
||||
@close="closeFun"
|
||||
>
|
||||
<div v-if="url" class="content">
|
||||
<iframe class="iframe" :src="url" />
|
||||
</div>
|
||||
</Dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, watch } from 'vue';
|
||||
import { getKKFileViewURLFromMinioApi } from '@/api/data/data';
|
||||
import Dialog from '@/components/common/dialog/index.vue';
|
||||
|
||||
interface Props {
|
||||
modelValue: boolean;
|
||||
fileId: number;
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
modelValue: false,
|
||||
fileId: 0,
|
||||
});
|
||||
|
||||
const env = import.meta.env;
|
||||
const diaVisible = ref(false);
|
||||
const url = ref('');
|
||||
|
||||
const emit = defineEmits(['update:modelValue']);
|
||||
|
||||
watch(() => props.modelValue, (val: boolean) => {
|
||||
diaVisible.value = val;
|
||||
if (val) {
|
||||
getPreviewUrlFun();
|
||||
}
|
||||
});
|
||||
|
||||
const getPreviewUrlFun = () => {
|
||||
const params = {
|
||||
fileId: props.fileId,
|
||||
};
|
||||
getKKFileViewURLFromMinioApi(params).then((res: any) => {
|
||||
if (res.code === 200) {
|
||||
url.value = `${env.VITE_API_FILE_PREVIEW_URL}?${res.data.encodeKKFileViewURL}`;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const closeFun = () => {
|
||||
emit('update:modelValue', false);
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
width: 100%;
|
||||
.iframe {
|
||||
width: 100%;
|
||||
height: calc(100vh - 74px);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -78,7 +78,7 @@ const registerNode = () => {
|
||||
x: 900,
|
||||
y: (120 + props.versionNode.length * 100 + 20) / 2,
|
||||
r: 25,
|
||||
fill: '#447dfd',
|
||||
fill: '#409eff',
|
||||
},
|
||||
name: 'circle-shape-root',
|
||||
});
|
||||
@@ -103,7 +103,7 @@ const registerNode = () => {
|
||||
y: 10,
|
||||
width: 880,
|
||||
height: 120,
|
||||
fill: '#447dfd',
|
||||
fill: '#409eff',
|
||||
radius: [15, 15, 0, 0],
|
||||
cursor: 'pointer',
|
||||
},
|
||||
@@ -220,7 +220,6 @@ const registerNode = () => {
|
||||
});
|
||||
if (cfg.resultLoadcaseId) {
|
||||
// console.log(cfg, 'cfg');
|
||||
|
||||
group.addShape('image', {
|
||||
attrs: {
|
||||
x: 720,
|
||||
@@ -353,10 +352,10 @@ const initPreview = () => {
|
||||
return d.id;
|
||||
},
|
||||
getHeight: function getHeight() {
|
||||
return 16;
|
||||
return 160;
|
||||
},
|
||||
getWidth: function getWidth() {
|
||||
return 16;
|
||||
return 160;
|
||||
},
|
||||
getVGap: function getVGap() {
|
||||
return props.versionNode.length * 80;
|
||||
@@ -492,4 +491,34 @@ onBeforeUnmount(() => {
|
||||
width: 100% /* 合适的宽度 */;
|
||||
height: 100% /* 合适的高度 */;
|
||||
}
|
||||
|
||||
.tag-red {
|
||||
background-color: #fae4e5;
|
||||
color: #d8232a;
|
||||
}
|
||||
|
||||
.tag-cancle {
|
||||
background-color: #fae4e5;
|
||||
color: #ac848f;
|
||||
}
|
||||
|
||||
.tag-green {
|
||||
background-color: #e0f6eb;
|
||||
color: #1eaa39;
|
||||
}
|
||||
|
||||
.tag-blue {
|
||||
background-color: #e7f1ff;
|
||||
color: #2580fe;
|
||||
}
|
||||
|
||||
.tag-brown {
|
||||
background-color: #fbe1d2;
|
||||
color: #f29600;
|
||||
}
|
||||
|
||||
.tag-gray {
|
||||
background-color: #eceef1;
|
||||
color: #888b9c;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -97,7 +97,7 @@ export default [
|
||||
title: '工作负载',
|
||||
path: '/task/workLoad',
|
||||
name: 'TaskWorkLoad',
|
||||
component: () => import('@/views/task/workLoad/idnex.vue'),
|
||||
component: () => import('@/views/task/workLoad/index.vue'),
|
||||
},
|
||||
|
||||
],
|
||||
|
||||
@@ -94,14 +94,6 @@
|
||||
<el-button v-if="row.dataType === 2" type="primary" link @click="openProcessFun(row)"> {{
|
||||
KNOWLEDGE_APPROVE_TYPE.O[row[column.field]] }}</el-button>
|
||||
</template>
|
||||
<!-- <template #tableActions="{ row }">
|
||||
<div class="gl-table-actions" v-if="row.dataType ===2" >
|
||||
<el-link type="primary" @click="previewFileFun(row)">{{ $t('知识库.预览') }}</el-link>
|
||||
<UploadFile v-model="row.id" :name="$t('知识库.下载')" />
|
||||
<el-link type="primary" @click="editFileFun(row)">{{ $t('知识库.编辑') }}</el-link>
|
||||
<el-link type="danger" @click="delFileFun(row)">{{ $t('工况库.删除') }}</el-link>
|
||||
</div>
|
||||
</template> -->
|
||||
</BaseTable>
|
||||
</template>
|
||||
</FileTree>
|
||||
@@ -115,6 +107,7 @@
|
||||
@ok="onOkFun"
|
||||
/>
|
||||
<folderModal v-model="folderModalVisible" :detail="currentFolder" :mode="currentFolderMode" @ok="onFolderOkFun" />
|
||||
<FilePreview v-model="previewVisible" :fileId="currentRow?.id" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -129,7 +122,6 @@ import { dataCreateDirApi, dataListDirApi, dataRenameDirApi, dataUploadFilesApi,
|
||||
import { ElMessage, ElMessageBox } from 'element-plus';
|
||||
import type { RenderContentContext } from 'element-plus';
|
||||
import { formatFileSize } from '@/utils/file';
|
||||
import UploadFile from '@/components/common/uploadFile/index.vue';
|
||||
import TableSearch from '@/components/common/table/tableSearch.vue';
|
||||
import { cloneDeep } from 'lodash-es';
|
||||
import { DIR_TYPE } from '@/utils/enum/data.ts';
|
||||
@@ -137,9 +129,10 @@ import ApproveList from '@/components/common/approveList/index.vue';
|
||||
import { useDict } from '@/utils/useDict';
|
||||
import ApprovalProcess from '@/components/common/approvalProcess/index.vue';
|
||||
import i18n from '@/utils/i18n';
|
||||
import FilePreview from '@/components/common/filePreview/index.vue';
|
||||
|
||||
const { KNOWLEDGE_APPROVE_STATUS, KNOWLEDGE_APPROVE_TYPE } = useDict('KNOWLEDGE_APPROVE_STATUS', 'KNOWLEDGE_APPROVE_TYPE');
|
||||
|
||||
const env = import.meta.env;
|
||||
type Data = RenderContentContext['data']
|
||||
const fileTreeRef = ref<any>();
|
||||
const baseTableRef = ref<any>();
|
||||
@@ -344,13 +337,14 @@ const onOkFun = async (formData: any) => {
|
||||
}
|
||||
|
||||
};
|
||||
const previewVisible = ref(false);
|
||||
const previewFileFun = (row: any) => {
|
||||
// TODO
|
||||
console.log(row);
|
||||
currentRow.value = row;
|
||||
previewVisible.value = true;
|
||||
};
|
||||
const downloadFileFun = (row: any) => {
|
||||
// TODO
|
||||
console.log(row);
|
||||
const downloadUrl = `${env.VITE_API_FILE_URL}/data/downloadFile?fileId=${row.id}`;
|
||||
window.open(downloadUrl, '_blank');
|
||||
};
|
||||
const editFileFun = (row: any) => {
|
||||
currentRow.value = row;
|
||||
|
||||
@@ -5,13 +5,35 @@
|
||||
<el-tag :type="tagTypeMap[approveAction]" size="small">{{ contents }}</el-tag>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<knowledgeDetailModal :hasDialog="false" tableName="SIMULATION_KNOWLEDGE" :detail="knowledgeDetail"/>
|
||||
<BaseTable
|
||||
ref="baseTableRef"
|
||||
tableName="SIMULATION_KNOWLEDGE_APPROVE_PREVIEW"
|
||||
showIndex
|
||||
:actionsWidth="200"
|
||||
:actionList="actionList"
|
||||
>
|
||||
<template #originalName="{ row }">
|
||||
<el-icon v-if="row.dataType === 1">
|
||||
<Folder />
|
||||
</el-icon>
|
||||
<el-icon v-else>
|
||||
<Document />
|
||||
</el-icon>
|
||||
{{ row.originalName }}
|
||||
</template>
|
||||
<template #fileSize="{ row }">
|
||||
{{ formatFileSize(row.fileSize) }}
|
||||
</template>
|
||||
</BaseTable>
|
||||
<FilePreview v-model="previewVisible" :fileId="currentRow?.id" />
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import knowledgeDetailModal from '@/views/competenceCenter/knowledge/components/knowledgeDetailModal.vue';
|
||||
import { ref, watchEffect } from 'vue';
|
||||
import { computed, ref, watchEffect } from 'vue';
|
||||
import BaseTable from '@/components/common/table/baseTable.vue';
|
||||
import i18n from '@/utils/i18n';
|
||||
import { formatFileSize } from '@/utils/file';
|
||||
import FilePreview from '@/components/common/filePreview/index.vue';
|
||||
|
||||
interface Props {
|
||||
data: any;
|
||||
@@ -20,6 +42,7 @@ interface Props {
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
data: {},
|
||||
});
|
||||
const env = import.meta.env;
|
||||
const knowledgeDetail = ref<any>(null);
|
||||
const contents = ref<string>('');
|
||||
const approveAction = ref<any>();
|
||||
@@ -28,15 +51,54 @@ const tagTypeMap:any = {
|
||||
2: 'primary',
|
||||
3: 'danger',
|
||||
};
|
||||
const baseTableRef = ref<any>(null);
|
||||
watchEffect(() => {
|
||||
if (props.data) {
|
||||
const approveContents = JSON.parse(props.data?.approveContents || '{}');
|
||||
knowledgeDetail.value = approveContents.afterData || approveContents.beforeData || null;
|
||||
contents.value = approveContents.contents || '';
|
||||
approveAction.value = props.data?.approveAction || '';
|
||||
if (baseTableRef.value && knowledgeDetail.value) {
|
||||
// TODO 临时写法 后期支持多个
|
||||
baseTableRef.value?.setDataFun([knowledgeDetail.value]);
|
||||
}
|
||||
}
|
||||
});
|
||||
const currentRow = ref<any>(null);
|
||||
const previewVisible = ref<boolean>(false);
|
||||
const previewFileFun = (row: any) => {
|
||||
currentRow.value = row;
|
||||
previewVisible.value = true;
|
||||
};
|
||||
const downloadFileFun = (row: any) => {
|
||||
const downloadUrl = `${env.VITE_API_FILE_URL}/data/downloadFile?fileId=${row.id}`;
|
||||
window.open(downloadUrl, '_blank');
|
||||
};
|
||||
const actionList = computed(() => {
|
||||
return [
|
||||
{
|
||||
title: i18n?.global?.t('通用.预览'),
|
||||
type: 'primary',
|
||||
click: (row: any) => {
|
||||
previewFileFun(row);
|
||||
},
|
||||
hide: (row: any) => {
|
||||
return row.dataType !== 2;
|
||||
},
|
||||
},
|
||||
{
|
||||
title: i18n?.global?.t('通用.下载'),
|
||||
type: 'primary',
|
||||
click: (row: any) => {
|
||||
downloadFileFun(row);
|
||||
},
|
||||
hide: (row: any) => {
|
||||
return row.dataType !== 2;
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
});
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.header {
|
||||
|
||||
@@ -43,7 +43,7 @@ const getDetailDataFun = () => {
|
||||
data.value = res.data;
|
||||
let width: any = '80%';
|
||||
if (data.value.approveType === 2) {
|
||||
width = 900;
|
||||
width = '80%';
|
||||
}
|
||||
$wujie.bus.$emit('APPROVAL_PREVIEW_LOADED', width);
|
||||
}
|
||||
|
||||
@@ -58,6 +58,8 @@ watch(() => props.modelValue, (val: boolean) => {
|
||||
const getDetailFun = () => {
|
||||
const params = {
|
||||
id: props.id,
|
||||
current: 1,
|
||||
size: 999,
|
||||
};
|
||||
userQueryGroupDetailApi(params).then((res: any) => {
|
||||
if (res.code === 200) {
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
@update="updateRunInfoFn"
|
||||
></createRunDiv>
|
||||
|
||||
<runVersionTreeDiv v-if="showRunVersionTreeWindow" @close="showRunVersionTreeWindow = false" :current-node-info="rightClickNode"></runVersionTreeDiv>
|
||||
</div>
|
||||
<Teleport to="body">
|
||||
<div class="fileMenu" ref="fileMenuRef" :id="'fileMenu' + tableId" @contextmenu.stop="" @contextmenu.prevent="">
|
||||
@@ -158,11 +159,13 @@ import { NODE_TYPE } from '@/utils/enum/node';
|
||||
import { Folder, Document, ScaleToOriginal } from '@element-plus/icons-vue';
|
||||
import createRunDiv from './operateComponent/createRunDiv.vue';
|
||||
import { addTaskRunApi, createRunDirApi, deleteTaskRunApi, getTaskRunTreeApi, queryTaskRunApi } from '@/api/project/run';
|
||||
import runVersionTreeDiv from './operateComponent/runVersionTreeDiv.vue';
|
||||
|
||||
const emits = defineEmits(['nodeClickFn']);
|
||||
const tableId = ref(new Date().getTime());
|
||||
const showFileMenu = ref(false);
|
||||
const showRunCreateOrEditWindow = ref(false);
|
||||
const showRunVersionTreeWindow = ref(false);
|
||||
const taskTreeRef = ref();
|
||||
|
||||
const defaultExpandKeys = ref<any>([]);
|
||||
@@ -382,7 +385,7 @@ const showDiaFn = (flag: string) => {
|
||||
|
||||
// 算例版本
|
||||
case 'runVersion':
|
||||
|
||||
showRunVersionTreeWindow.value = true;
|
||||
break;
|
||||
|
||||
// 归档原始算例
|
||||
|
||||
@@ -138,7 +138,7 @@ const changeJoinFn = () => {
|
||||
if (runInfoFormData.isJointProjectInfo) {
|
||||
runInfoFormData.runNames = props.divInfo.nodeName || props.divInfo.runName + '_算例' + new Date().getTime();
|
||||
} else {
|
||||
runInfoFormData.runNames = '算例' + new Date().getTime();
|
||||
runInfoFormData.runNames = '算例_' + 'V1';
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
<template>
|
||||
<Dialog
|
||||
v-model="visible"
|
||||
diaTitle="算例版本"
|
||||
:width="'70%'"
|
||||
:height="'50%'"
|
||||
:zIndex="100"
|
||||
@close="handleCloseFn"
|
||||
>
|
||||
|
||||
<div class="vision-page">
|
||||
|
||||
<runVersionTree :currentTaskInfo="currentNodeInfo"></runVersionTree>
|
||||
</div>
|
||||
|
||||
</Dialog>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, defineProps, defineEmits } from 'vue';
|
||||
import Dialog from '@/components/common/dialog/index.vue';
|
||||
import runVersionTree from '@/views/task/execution/components/runDetailPage/runPagecomponent/runVersionTree.vue';
|
||||
|
||||
const visible = ref(true);
|
||||
const emits = defineEmits(['close']);
|
||||
|
||||
const props = defineProps({
|
||||
currentNodeInfo: {
|
||||
type: Object,
|
||||
default: () => {},
|
||||
},
|
||||
});
|
||||
|
||||
const handleCloseFn = () => {
|
||||
emits('close');
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
.vision-page{
|
||||
width: 100%;
|
||||
height: 600px;
|
||||
}
|
||||
</style>
|
||||
@@ -73,9 +73,11 @@ const getTreeData = async (task: any) => {
|
||||
}
|
||||
|
||||
if (res && res.code === 200) {
|
||||
const result = task.nodeType === 'run' ? [res.data] : res.data;
|
||||
deleteTypeFn(result);
|
||||
|
||||
currentVersion.value = '';
|
||||
visionTreeData.value = [res.data];
|
||||
visionTreeData.value = result;
|
||||
formatVersionData(visionTreeData.value);
|
||||
|
||||
versionObjJson.value.children = visionTreeData.value;
|
||||
@@ -97,13 +99,30 @@ const formatVersionData = (arr: any, isCreate: boolean = false) => {
|
||||
item.description = item.description;
|
||||
item.taskStatus = getVersionStatusMap(item.status);
|
||||
item.creator = item.creatorName;
|
||||
// item.resultLoadcaseId = item.taskId;
|
||||
item.resultLoadcaseId = item.taskId;
|
||||
|
||||
if (item.children?.length > 0) {
|
||||
formatVersionData(item.children, isCreate);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// 删除数据本身type属性对组件的干扰
|
||||
const deleteTypeFn = (list:any) => {
|
||||
for (let i = 0;i < list.length;i++) {
|
||||
for (const key in list[i]) {
|
||||
if (key === 'type') {
|
||||
delete list[i][key];
|
||||
|
||||
}
|
||||
}
|
||||
if (list[i]?.children?.length) {
|
||||
deleteTypeFn(list[i].children);
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @param key status
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
<template>
|
||||
<div class="gl-page-content">工作负载</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, defineProps, defineEmits } from 'vue';
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
</style>
|
||||
545
src/views/task/workLoad/index.vue
Normal file
545
src/views/task/workLoad/index.vue
Normal file
@@ -0,0 +1,545 @@
|
||||
<template>
|
||||
<div class="gl-page-content">
|
||||
|
||||
<div class="page-filter-box">
|
||||
<el-form :model="filterFprmData" inline>
|
||||
<el-form-item label="用户组:">
|
||||
<el-select v-model="filterFprmData.userGroupId" class="mw200" @change="filterWorkLoadFn">
|
||||
<el-option v-for="item in groupList" :key="item.id" :label="item.groupName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="开始时间:">
|
||||
<el-date-picker
|
||||
v-model="filterFprmData.beginTime"
|
||||
type="datetime"
|
||||
placeholder="请选择开始时间"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
@change="filterWorkLoadFn"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="结束时间:">
|
||||
<el-date-picker
|
||||
v-model="filterFprmData.endTime"
|
||||
type="datetime"
|
||||
placeholder="请选择开始时间"
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
@change="filterWorkLoadFn"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-radio-group v-model="filterFprmData.dateType" @change="changeDateTypeFn">
|
||||
<el-radio value="month">月</el-radio>
|
||||
<el-radio value="week">周</el-radio>
|
||||
<el-radio value="day">日</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item class="mr0">
|
||||
<el-button type="primary" @change="filterWorkLoadFn">查询</el-button>
|
||||
<el-button type="" @click="clearParamFn">清空</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="page-content">
|
||||
<div ref="ganttRef" class="gant-page" v-loading="loading"></div>
|
||||
</div>
|
||||
<div class="page-footer">
|
||||
<template v-for="(item, index) in colorList" :key="index">
|
||||
<div class="color-item" v-if="index > 0">
|
||||
<div :style="{ background: item }"></div>
|
||||
<div>{{ index >= 5 ? '大于或等于5个任务' : index + '个任务' }}</div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, onMounted, nextTick, onBeforeUnmount } from 'vue';
|
||||
import { gantt } from 'dhtmlx-gantt';
|
||||
import 'dhtmlx-gantt/codebase/dhtmlxgantt.css';
|
||||
import dayjs from 'dayjs';
|
||||
import isBetween from 'dayjs/plugin/isBetween';
|
||||
import isoWeek from 'dayjs/plugin/isoWeek';
|
||||
import weekOfYear from 'dayjs/plugin/weekOfYear';
|
||||
import { userQueryGroupApi, userQueryGroupDetailApi } from '@/api/system/user';
|
||||
import { getListUserWorkloadsApi } from '@/api/project/task';
|
||||
import { ElMessage } from 'element-plus';
|
||||
import { isWorkday } from 'chinese-workday';
|
||||
|
||||
dayjs.extend(isBetween);
|
||||
dayjs.extend(weekOfYear);
|
||||
dayjs.extend(isoWeek);
|
||||
let Gantt: any = gantt;
|
||||
const ganttEvents = ref<any>([]);
|
||||
const colorList: string[] = ['#ffffff', '#fff6e6', '#ffdca3', '#ff9729', '#ff7d00', '#d96200']; // 格子颜色
|
||||
const taskOriginData = ref<any>([]); // 所有用户的任务数据
|
||||
const loading = ref<boolean>(false);
|
||||
const workDaysRange = ref<number>(0);
|
||||
|
||||
const filterFprmData = reactive<any>({
|
||||
userGroupId: '',
|
||||
userIds: [],
|
||||
beginTime: '',
|
||||
endTime: '',
|
||||
dateType: 'week',
|
||||
});
|
||||
|
||||
const ganttRef = ref();
|
||||
|
||||
const changeDateTypeFn = () => {
|
||||
loading.value = true;
|
||||
// 加载动画
|
||||
setTimeout(() => {
|
||||
setUserDayWork(filterFprmData.beginTime, filterFprmData.endTime);
|
||||
Gantt.ext.zoom.setLevel(filterFprmData.dateType);
|
||||
loading.value = false;
|
||||
}, 200);
|
||||
};
|
||||
|
||||
const groupList = ref<any>([]);
|
||||
const getUserGroupFn = async () => {
|
||||
const res: any = await userQueryGroupApi({
|
||||
current: 1,
|
||||
size: 999,
|
||||
});
|
||||
if (res && res.code === 200) {
|
||||
groupList.value = res.data.data;
|
||||
if (groupList.value?.length) {
|
||||
filterFprmData.userGroupId = groupList.value[0].id;
|
||||
filterFprmData.userIds = await queryGroupUserListFn(filterFprmData.userGroupId);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// 获取用户组内成员
|
||||
const queryGroupUserListFn = async (id: any) => {
|
||||
const res: any = await userQueryGroupDetailApi({
|
||||
id,
|
||||
current: 1,
|
||||
size: 999,
|
||||
});
|
||||
|
||||
if (res && res.code === 200) {
|
||||
const usrids = res.data.users.data.map((item: any) => {
|
||||
return item.userId;
|
||||
});
|
||||
|
||||
return usrids;
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
};
|
||||
|
||||
const getWorkLoadDataFn = async () => {
|
||||
if (!filterFprmData.userIds.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
loading.value = true;
|
||||
Gantt.clearAll();
|
||||
taskOriginData.value = [];
|
||||
|
||||
const res: any = await getListUserWorkloadsApi({
|
||||
...filterFprmData,
|
||||
});
|
||||
|
||||
if (res && res.code === 200) {
|
||||
taskOriginData.value = res.data;
|
||||
|
||||
Gantt.config.start_date = filterFprmData.beginTime;
|
||||
Gantt.config.end_date = filterFprmData.endTime;
|
||||
Gantt.ext.zoom.setLevel(filterFprmData.dateType);
|
||||
if (res.data.length > 0) {
|
||||
calculateWorkDay([filterFprmData.beginTime, filterFprmData.endTime]);
|
||||
formatUserTask(res.data, [filterFprmData.beginTime, filterFprmData.endTime]);
|
||||
}
|
||||
|
||||
setUserDayWork(filterFprmData.beginTime, filterFprmData.endTime);
|
||||
nextTick(() => {
|
||||
Gantt.render();
|
||||
});
|
||||
loading.value = false;
|
||||
}
|
||||
};
|
||||
|
||||
const formatUserTask = (data: any, time: any) => {
|
||||
const ganttData = data.map((item: any, index: any) => {
|
||||
let jobSaturation = 0;
|
||||
if (item.taskList?.length > 0) {
|
||||
item.taskList.forEach((item_1: any) => {
|
||||
jobSaturation = jobSaturation + workDaysRange.value * item_1.workRate;
|
||||
});
|
||||
}
|
||||
return {
|
||||
id: index + 1,
|
||||
userName: item.userName,
|
||||
userId: item.userId,
|
||||
taskNum: item.taskNum ? item.taskNum : 0,
|
||||
jobSaturation: jobSaturation.toFixed(2),
|
||||
start_date: time[0],
|
||||
duration: dayjs(time[1]).diff(dayjs(time[0]), 'day'),
|
||||
};
|
||||
});
|
||||
Gantt.clearAll();
|
||||
Gantt.parse({
|
||||
data: ganttData,
|
||||
});
|
||||
};
|
||||
|
||||
// 获取用户工作负载信息
|
||||
const filterWorkLoadFn = async () => {
|
||||
|
||||
// 判断开始时间和截止时间
|
||||
const begin = new Date(filterFprmData.beginTime).getTime();
|
||||
const end = new Date(filterFprmData.endTime).getTime();
|
||||
if (end < begin) {
|
||||
ElMessage.warning('结束时间无法小于开始时间!');
|
||||
filterFprmData.endTime = dayjs(new Date(filterFprmData.beginTime)).add(3, 'months').format('YYYY-MM-DD HH:mm:ss');
|
||||
}
|
||||
filterFprmData.userIds = await queryGroupUserListFn(filterFprmData.userGroupId);
|
||||
await refreshGanttFn();
|
||||
|
||||
};
|
||||
|
||||
const clearParamFn = async () => {
|
||||
await getUserGroupFn();
|
||||
filterFprmData.beginTime = dayjs().subtract(3, 'month').format('YYYY-MM-DD HH:mm:ss');
|
||||
filterFprmData.endTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
|
||||
await filterWorkLoadFn();
|
||||
|
||||
};
|
||||
|
||||
// 计算时间段中的工作日天数
|
||||
const calculateWorkDay = ([startDate, endDate]: any) => {
|
||||
|
||||
let workdays = 0;
|
||||
let currentDate = dayjs(startDate);
|
||||
while (currentDate.isBefore(dayjs(endDate)) || currentDate.isSame(dayjs(endDate), 'day')) {
|
||||
if (isWorkday(currentDate)) {
|
||||
workdays++;
|
||||
}
|
||||
currentDate = currentDate.add(1, 'day');
|
||||
}
|
||||
workDaysRange.value = workdays;
|
||||
};
|
||||
|
||||
// 生成日期列表的函数
|
||||
const generateDateList = (startDate: any, endDate: any, mode = 'day') => {
|
||||
const result = [];
|
||||
let formatStart = null;
|
||||
let formatEnd = null;
|
||||
if (mode === 'day') {
|
||||
formatStart = dayjs(startDate);
|
||||
formatEnd = dayjs(endDate);
|
||||
} else if (mode === 'week') {
|
||||
formatStart = dayjs(startDate).startOf('isoWeek');
|
||||
formatEnd = dayjs(endDate).startOf('isoWeek');
|
||||
} else if (mode === 'month') {
|
||||
formatStart = dayjs(startDate).startOf('month');
|
||||
formatEnd = dayjs(endDate).startOf('month');
|
||||
}
|
||||
if (!formatStart || !formatEnd) {
|
||||
return [];
|
||||
}
|
||||
// 根据模式生成不同的日期列表
|
||||
while (formatStart.isBefore(endDate) || formatStart.isSame(formatEnd)) {
|
||||
result.push(formatStart.format('YYYY-MM-DD')); // 将日期加入结果列表
|
||||
if (mode === 'day') {
|
||||
formatStart = formatStart.add(1, 'day'); // 每天
|
||||
} else if (mode === 'week') {
|
||||
formatStart = formatStart.startOf('isoWeek').add(1, 'week'); // 每周第一天(星期一)
|
||||
} else if (mode === 'month') {
|
||||
formatStart = formatStart.startOf('month').add(1, 'month'); // 每月第一天
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
// 每个用户gantt单元格的任务
|
||||
const userTimeItemWorkList: any = new Map();
|
||||
const setUserDayWork: any = (startDate: any, endDate: any) => {
|
||||
userTimeItemWorkList.clear();
|
||||
const dateList = generateDateList(startDate, endDate, filterFprmData.dateType);
|
||||
taskOriginData.value.forEach((item: any) => {
|
||||
const dateWorkMap: any = new Map();
|
||||
dateList.forEach((item_1: any) => {
|
||||
const tasks = filterUserTask(item.taskList, item_1);
|
||||
dateWorkMap.set(item_1, tasks);
|
||||
});
|
||||
userTimeItemWorkList.set(item.userName, dateWorkMap);
|
||||
});
|
||||
};
|
||||
|
||||
// 筛选某一用户在某一周或者某月的任务
|
||||
const filterUserTask = (taskList: any, date: any) => {
|
||||
let filterTask: any = [];
|
||||
filterTask = taskList
|
||||
?.filter((item: any) => {
|
||||
const startTime = dayjs(item.beginTime);
|
||||
const endTime = startTime.add(item.days - 1, 'day');
|
||||
const weekOrMonthStart = dayjs(date);
|
||||
const addDays = filterFprmData.dateType === 'day' ? 0 : filterFprmData.dateType === 'week' ? 6 : weekOrMonthStart.daysInMonth() - 1;
|
||||
const weekOrMonthEnd = weekOrMonthStart.add(addDays, 'day');
|
||||
// 判断当前任务的时间段是否在这周
|
||||
// 开始时间在这周||结束时间在这周||这周整个在任务的时间段中
|
||||
return (
|
||||
startTime.isBetween(weekOrMonthStart, weekOrMonthEnd, 'day', '[]') ||
|
||||
endTime.isBetween(weekOrMonthStart, weekOrMonthEnd, 'day', '[]') ||
|
||||
(weekOrMonthStart.isBetween(startTime, endTime, 'day', '[]') &&
|
||||
weekOrMonthEnd.isBetween(startTime, endTime, 'day', '[]'))
|
||||
);
|
||||
})
|
||||
?.map((item: any) => item.id);
|
||||
return filterTask;
|
||||
};
|
||||
|
||||
const initGantt = () => {
|
||||
const zoomConfig: any = {
|
||||
levels: [
|
||||
{
|
||||
name: 'day',
|
||||
scales: [
|
||||
{ unit: 'year', step: 1, format: '%Y' },
|
||||
{ unit: 'month', step: 1, format: '%M' },
|
||||
{ unit: 'week', step: 1, format: '%W周' },
|
||||
{ unit: 'day', format: '%d' },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'week',
|
||||
min_column_width: 50,
|
||||
scales: [
|
||||
{ unit: 'year', step: 1, format: '%Y' },
|
||||
{ unit: 'month', step: 1, format: '%M' },
|
||||
{ unit: 'week', step: 1, format: '%W周' },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'month',
|
||||
scales: [
|
||||
{ unit: 'year', step: 1, format: '%Y' },
|
||||
{ unit: 'month', step: 1, format: '%M' },
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
Gantt.ext.zoom.init(zoomConfig);
|
||||
Gantt.ext.zoom.setLevel('week');
|
||||
Gantt.config.autosize = false;
|
||||
Gantt.config.show_grid = true;
|
||||
// 只读模式:打开后不可以操作甘特图
|
||||
Gantt.config.readonly = true;
|
||||
// 设置空数据
|
||||
Gantt.config.show_empty_state = false;
|
||||
Gantt.config.fit_tasks = true;
|
||||
Gantt.config.min_column_width = 30;
|
||||
Gantt.config.date_format = '%Y-%m-%d';
|
||||
Gantt.config.scale_height = 28 * 3;
|
||||
Gantt.config.select_task = false;
|
||||
Gantt.i18n.setLocale('cn');
|
||||
Gantt.config.columns = [
|
||||
{
|
||||
name: 'userName',
|
||||
label: '姓名',
|
||||
width: 200,
|
||||
align: 'left',
|
||||
onrender: (task: any, node: any) => {
|
||||
console.log(node);
|
||||
|
||||
return `<img src="" style="width:15px;height:15px;margin-right:12px"></img>${task.userName}`;
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'taskNum', label: '任务数量', align: 'left', width: 80,
|
||||
onrender: (task: any, node: any) => {
|
||||
console.log(node);
|
||||
|
||||
return `${task.taskNum}`;
|
||||
},
|
||||
},
|
||||
];
|
||||
Gantt.templates.timeline_cell_content = function (task: any, date: any) {
|
||||
|
||||
let tasks: any = [];
|
||||
if (task.userName && userTimeItemWorkList && userTimeItemWorkList.has(task.userName)) {
|
||||
const currentNameMap = userTimeItemWorkList.get(task.userName);
|
||||
const dateFormat = dayjs(date).format('YYYY-MM-DD');
|
||||
if (currentNameMap && currentNameMap.has(dateFormat)) {
|
||||
tasks = currentNameMap.get(dateFormat);
|
||||
}
|
||||
}
|
||||
return `<div class='${tasks?.length > 0 ? 'cell-style' : ''}' style='background:${colorList[tasks?.length >= 5 ? 5 : tasks?.length]
|
||||
};cursor:${tasks?.length > 0 ? 'pointer' : 'default'}' userName=${task?.userName} userId=${task?.userId
|
||||
} tasks=${JSON.stringify(tasks)} date=${dayjs(date).format('YYYY-MM-DD')}></div>`;
|
||||
};
|
||||
// gantt渲染结束添加监听单元格点击事件
|
||||
const onGanttRender = Gantt.attachEvent('onGanttRender', function (e:any, date:any) {
|
||||
|
||||
console.log(e, 'e');
|
||||
console.log(date, 'date');
|
||||
|
||||
nextTick(() => {
|
||||
monitorCellClickFn();
|
||||
});
|
||||
});
|
||||
ganttEvents.value.push(onGanttRender);
|
||||
const onLoadStart = Gantt.attachEvent('onGanttScroll', function (e:any, date:any) {
|
||||
console.log(e, 'e');
|
||||
console.log(date, 'date');
|
||||
nextTick(() => {
|
||||
monitorCellClickFn();
|
||||
});
|
||||
});
|
||||
ganttEvents.value.push(onLoadStart);
|
||||
Gantt.init(ganttRef.value as HTMLElement);
|
||||
Gantt.parse({
|
||||
data: [],
|
||||
});
|
||||
};
|
||||
|
||||
const monitorCellClickFn = () => {
|
||||
|
||||
};
|
||||
|
||||
const refreshGanttFn = async () => {
|
||||
Gantt.clearAll();
|
||||
initGantt();
|
||||
|
||||
await getWorkLoadDataFn();
|
||||
|
||||
};
|
||||
|
||||
onMounted(async () => {
|
||||
await getUserGroupFn();
|
||||
filterFprmData.beginTime = dayjs().subtract(3, 'month').format('YYYY-MM-DD HH:mm:ss');
|
||||
filterFprmData.endTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
|
||||
await refreshGanttFn();
|
||||
console.log(filterFprmData, 'filterFprmData');
|
||||
});
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
ganttEvents.value?.forEach((item: any) => {
|
||||
Gantt.detachEvent(item);
|
||||
});
|
||||
Gantt.templates.timeline_cell_content = function (task: any, date: any) {
|
||||
console.log(task);
|
||||
console.log(date);
|
||||
|
||||
return '';
|
||||
};
|
||||
Gantt.clearAll();
|
||||
Gantt = null;
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.gl-page-content {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
||||
.page-filter-box {
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.mw200 {
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.el-form {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
|
||||
}
|
||||
|
||||
.mr0 {
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.page-content {
|
||||
width: 100%;
|
||||
height: calc(100% - 80px);
|
||||
|
||||
.gant-page {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.page-footer {
|
||||
height: 30px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
|
||||
.color-item {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
margin-left: 12px;
|
||||
|
||||
&>div:first-child {
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
border-radius: 50%;
|
||||
margin-right: 3px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
:deep(.cell-style) {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
:deep(.gantt_links_area) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
:deep(.gantt_bars_area) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
:deep(.gantt_tree_icon.gantt_file) {
|
||||
background-image: url('~@/assets/imgs/versionTree/user.svg') !important;
|
||||
background-size: 60%;
|
||||
}
|
||||
:deep(
|
||||
.gantt_grid_data .gantt_row.gantt_selected,
|
||||
.gantt_grid_data .gantt_row.odd.gantt_selected,
|
||||
.gantt_task_row.gantt_selected
|
||||
) {
|
||||
background-color: #96bdff;
|
||||
&:hover {
|
||||
background-color: #96bdff !important;
|
||||
}
|
||||
}
|
||||
:deep(.gantt_grid_data .gantt_row.odd:hover, .gantt_grid_data .gantt_row:hover) {
|
||||
background-color: #ecf7ff;
|
||||
}
|
||||
:deep(.gantt_grid_data .gantt_row:hover) {
|
||||
background-color: #ecf7ff;
|
||||
}
|
||||
:deep(.task-table-container) {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
:deep(.gantt_row.gantt_row_task) {
|
||||
position: none;
|
||||
}
|
||||
</style>
|
||||
@@ -75,7 +75,7 @@ export default defineConfig(({ mode }) => {
|
||||
},
|
||||
'/local7107': { // data文件模块
|
||||
// target: 'http://192.168.65.199:7104', // 李东洋
|
||||
target: 'http://192.168.65.161:80/api/simulation/data', // 开发环境
|
||||
target: 'http://192.168.65.161:80/api/simulation/capability', // 开发环境
|
||||
// target: 'http://192.168.65.219:7107', // 戴琼瑶本地
|
||||
// target: 'http://192.168.65.161', // 开发环境
|
||||
changeOrigin: true,
|
||||
|
||||
505
yarn.lock
505
yarn.lock
@@ -10,6 +10,267 @@
|
||||
"@jridgewell/gen-mapping" "^0.3.5"
|
||||
"@jridgewell/trace-mapping" "^0.3.24"
|
||||
|
||||
"@ant-design/colors@^4.0.5":
|
||||
version "4.0.5"
|
||||
resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-4.0.5.tgz#d7d100d7545cca8f624954604a6892fc48ba5aae"
|
||||
integrity sha512-3mnuX2prnWOWvpFTS2WH2LoouWlOgtnIpc6IarWN6GOzzLF8dW/U8UctuvIPhoboETehZfJ61XP+CGakBEPJ3Q==
|
||||
dependencies:
|
||||
tinycolor2 "^1.4.1"
|
||||
|
||||
"@antv/algorithm@^0.1.26":
|
||||
version "0.1.26"
|
||||
resolved "https://registry.yarnpkg.com/@antv/algorithm/-/algorithm-0.1.26.tgz#e3f5e7f1d8db5b415c3f31e32b119cbcafc8f5de"
|
||||
integrity sha512-DVhcFSQ8YQnMNW34Mk8BSsfc61iC1sAnmcfYoXTAshYHuU50p/6b7x3QYaGctDNKWGvi1ub7mPcSY0bK+aN0qg==
|
||||
dependencies:
|
||||
"@antv/util" "^2.0.13"
|
||||
tslib "^2.0.0"
|
||||
|
||||
"@antv/dom-util@^2.0.1", "@antv/dom-util@^2.0.2":
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@antv/dom-util/-/dom-util-2.0.4.tgz#b09b56c56fec42896fc856edad56b595b47ab514"
|
||||
integrity sha512-2shXUl504fKwt82T3GkuT4Uoc6p9qjCKnJ8gXGLSW4T1W37dqf9AV28aCfoVPHp2BUXpSsB+PAJX2rG/jLHsLQ==
|
||||
dependencies:
|
||||
tslib "^2.0.3"
|
||||
|
||||
"@antv/event-emitter@^0.1.1", "@antv/event-emitter@~0.1.0":
|
||||
version "0.1.3"
|
||||
resolved "https://registry.yarnpkg.com/@antv/event-emitter/-/event-emitter-0.1.3.tgz#3e06323b9dcd55a3241ddc7c5458cfabd2095164"
|
||||
integrity sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==
|
||||
|
||||
"@antv/g-base@^0.5.1", "@antv/g-base@^0.5.12":
|
||||
version "0.5.16"
|
||||
resolved "https://registry.yarnpkg.com/@antv/g-base/-/g-base-0.5.16.tgz#22a0cbbfc810e6292e4d25e5708d0abe165912bf"
|
||||
integrity sha512-jP06wggTubDPHXoKwFg3/f1lyxBX9ywwN3E/HG74Nd7DXqOXQis8tsIWW+O6dS/h9vyuXLd1/wDWkMMm3ZzXdg==
|
||||
dependencies:
|
||||
"@antv/event-emitter" "^0.1.1"
|
||||
"@antv/g-math" "^0.1.9"
|
||||
"@antv/matrix-util" "^3.1.0-beta.1"
|
||||
"@antv/path-util" "~2.0.5"
|
||||
"@antv/util" "~2.0.13"
|
||||
"@types/d3-timer" "^2.0.0"
|
||||
d3-ease "^1.0.5"
|
||||
d3-interpolate "^3.0.1"
|
||||
d3-timer "^1.0.9"
|
||||
detect-browser "^5.1.0"
|
||||
tslib "^2.0.3"
|
||||
|
||||
"@antv/g-canvas@^0.5.2":
|
||||
version "0.5.17"
|
||||
resolved "https://registry.yarnpkg.com/@antv/g-canvas/-/g-canvas-0.5.17.tgz#2e0d263a355e167b9da5e606fbd1ad1500474fcf"
|
||||
integrity sha512-sXYJMWTOlb/Ycb6sTKu00LcJqInXJY4t99+kSM40u2OfqrXYmaXDjHR7D2V0roMkbK/QWiWS9UnEidCR1VtMOA==
|
||||
dependencies:
|
||||
"@antv/g-base" "^0.5.12"
|
||||
"@antv/g-math" "^0.1.9"
|
||||
"@antv/matrix-util" "^3.1.0-beta.1"
|
||||
"@antv/path-util" "~2.0.5"
|
||||
"@antv/util" "~2.0.0"
|
||||
gl-matrix "^3.0.0"
|
||||
tslib "^2.0.3"
|
||||
|
||||
"@antv/g-math@^0.1.1", "@antv/g-math@^0.1.9":
|
||||
version "0.1.9"
|
||||
resolved "https://registry.yarnpkg.com/@antv/g-math/-/g-math-0.1.9.tgz#1f981b9aebf5c024f284389aa3e5cba8cefa1f28"
|
||||
integrity sha512-KHMSfPfZ5XHM1PZnG42Q2gxXfOitYveNTA7L61lR6mhZ8Y/aExsYmHqaKBsSarU0z+6WLrl9C07PQJZaw0uljQ==
|
||||
dependencies:
|
||||
"@antv/util" "~2.0.0"
|
||||
gl-matrix "^3.0.0"
|
||||
|
||||
"@antv/g-svg@^0.5.1", "@antv/g-svg@^0.5.2":
|
||||
version "0.5.7"
|
||||
resolved "https://registry.yarnpkg.com/@antv/g-svg/-/g-svg-0.5.7.tgz#d63db5f8590a5f3ceab097c183ec80ed143f0a50"
|
||||
integrity sha512-jUbWoPgr4YNsOat2Y/rGAouNQYGpw4R0cvlN0YafwOyacFFYy2zC8RslNd6KkPhhR3XHNSqJOuCYZj/YmLUwYw==
|
||||
dependencies:
|
||||
"@antv/g-base" "^0.5.12"
|
||||
"@antv/g-math" "^0.1.9"
|
||||
"@antv/util" "~2.0.0"
|
||||
detect-browser "^5.0.0"
|
||||
tslib "^2.0.3"
|
||||
|
||||
"@antv/g-webgpu-core@^0.7.2":
|
||||
version "0.7.2"
|
||||
resolved "https://registry.yarnpkg.com/@antv/g-webgpu-core/-/g-webgpu-core-0.7.2.tgz#65ef2a1253e319ffb2ed568d222b8313635d6677"
|
||||
integrity sha512-xUMmop7f3Rs34zFYKXLqHhDR1CQTeDl/7vI7Sn3X/73BqJc3X3HIIRvm83Fg2CjVACaOzw4WeLRXNaOCp9fz9w==
|
||||
dependencies:
|
||||
eventemitter3 "^4.0.0"
|
||||
gl-matrix "^3.1.0"
|
||||
lodash "^4.17.15"
|
||||
probe.gl "^3.1.1"
|
||||
|
||||
"@antv/g-webgpu-engine@^0.7.2":
|
||||
version "0.7.2"
|
||||
resolved "https://registry.yarnpkg.com/@antv/g-webgpu-engine/-/g-webgpu-engine-0.7.2.tgz#64631f24930f449ef41ffff6429d4fb9519eca23"
|
||||
integrity sha512-lx8Y93IW2cnJvdoDRKyMmTdYqSC1pOmF0nyG3PGGyA0NI9vBYVgO0KTF6hkyWjdTWVq7XDZyf/h8CJridLh3lg==
|
||||
dependencies:
|
||||
"@antv/g-webgpu-core" "^0.7.2"
|
||||
gl-matrix "^3.1.0"
|
||||
lodash "^4.17.15"
|
||||
regl "^1.3.11"
|
||||
|
||||
"@antv/g-webgpu@0.7.2":
|
||||
version "0.7.2"
|
||||
resolved "https://registry.yarnpkg.com/@antv/g-webgpu/-/g-webgpu-0.7.2.tgz#39ba2123816322fec9563236211ad8ab1e40924d"
|
||||
integrity sha512-kw+oYGsdvj5qeUfy5DPb/jztZBV+2fmqBd3Vv8NlKatfBmv8AirYX/CCW74AUSdWm99rEiLyxFB1VdRZ6b/wnQ==
|
||||
dependencies:
|
||||
"@antv/g-webgpu-core" "^0.7.2"
|
||||
"@antv/g-webgpu-engine" "^0.7.2"
|
||||
gl-matrix "^3.1.0"
|
||||
gl-vec2 "^1.3.0"
|
||||
lodash "^4.17.15"
|
||||
|
||||
"@antv/g6-core@0.8.24":
|
||||
version "0.8.24"
|
||||
resolved "https://registry.yarnpkg.com/@antv/g6-core/-/g6-core-0.8.24.tgz#a5291d53b8e33f6c895a2ed8553dd283a9788c73"
|
||||
integrity sha512-rgI3dArAD8uoSz2+skS4ctN4x/Of33ivTIKaEYYvClxgkLZWVz9zvocy+5AWcVPBHZsAXkZcdh9zndIoWY/33A==
|
||||
dependencies:
|
||||
"@antv/algorithm" "^0.1.26"
|
||||
"@antv/dom-util" "^2.0.1"
|
||||
"@antv/event-emitter" "~0.1.0"
|
||||
"@antv/g-base" "^0.5.1"
|
||||
"@antv/g-math" "^0.1.1"
|
||||
"@antv/matrix-util" "^3.1.0-beta.3"
|
||||
"@antv/path-util" "^2.0.3"
|
||||
"@antv/util" "~2.0.5"
|
||||
ml-matrix "^6.5.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@antv/g6-element@0.8.25":
|
||||
version "0.8.25"
|
||||
resolved "https://registry.yarnpkg.com/@antv/g6-element/-/g6-element-0.8.25.tgz#635423c724e3e0ae6cc44dcd13a5e7af7e777653"
|
||||
integrity sha512-bPsI+dS9rdp80O/XyV0iy6QiusyOgO/diCIsGQuLHs6rBqjLtDA5yu9JDo49mPA3JblJV0MYjbgL8Exou7Ecqw==
|
||||
dependencies:
|
||||
"@antv/g-base" "^0.5.1"
|
||||
"@antv/g6-core" "0.8.24"
|
||||
"@antv/util" "~2.0.5"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@antv/g6-pc@0.8.25":
|
||||
version "0.8.25"
|
||||
resolved "https://registry.yarnpkg.com/@antv/g6-pc/-/g6-pc-0.8.25.tgz#7babf1b1d11fe943e1ed7ef1a37dfe88d855c1ce"
|
||||
integrity sha512-HZ2QyDbgsUQpQBFqrA8Zcvm/rAKN4n3I7XEeWCODZgyhQ8kz2f3qdzrRXDPmMyclexi0JF9DarCs8a2rzhV5YA==
|
||||
dependencies:
|
||||
"@ant-design/colors" "^4.0.5"
|
||||
"@antv/algorithm" "^0.1.26"
|
||||
"@antv/dom-util" "^2.0.1"
|
||||
"@antv/event-emitter" "~0.1.0"
|
||||
"@antv/g-base" "^0.5.1"
|
||||
"@antv/g-canvas" "^0.5.2"
|
||||
"@antv/g-math" "^0.1.1"
|
||||
"@antv/g-svg" "^0.5.1"
|
||||
"@antv/g6-core" "0.8.24"
|
||||
"@antv/g6-element" "0.8.25"
|
||||
"@antv/g6-plugin" "0.8.25"
|
||||
"@antv/hierarchy" "^0.6.10"
|
||||
"@antv/layout" "^0.3.0"
|
||||
"@antv/matrix-util" "^3.1.0-beta.3"
|
||||
"@antv/path-util" "^2.0.3"
|
||||
"@antv/util" "~2.0.5"
|
||||
color "^3.1.3"
|
||||
d3-force "^2.0.1"
|
||||
dagre "^0.8.5"
|
||||
insert-css "^2.0.0"
|
||||
ml-matrix "^6.5.0"
|
||||
tslib "^2.6.2"
|
||||
|
||||
"@antv/g6-plugin@0.8.25":
|
||||
version "0.8.25"
|
||||
resolved "https://registry.yarnpkg.com/@antv/g6-plugin/-/g6-plugin-0.8.25.tgz#c178c11bea1f969a93c724c03767efbb7ddc050c"
|
||||
integrity sha512-TAincRgNzrZNGBt1TvzfQV0Ob6OO3+WCcTrCZb4PzRoOessAiMsNm0S7x+7NFm30DJVC8Ud2M7M2V9DjhVd8Wg==
|
||||
dependencies:
|
||||
"@antv/dom-util" "^2.0.2"
|
||||
"@antv/g-base" "^0.5.1"
|
||||
"@antv/g-canvas" "^0.5.2"
|
||||
"@antv/g-svg" "^0.5.2"
|
||||
"@antv/g6-core" "0.8.24"
|
||||
"@antv/g6-element" "0.8.25"
|
||||
"@antv/matrix-util" "^3.1.0-beta.3"
|
||||
"@antv/path-util" "^2.0.3"
|
||||
"@antv/scale" "^0.3.4"
|
||||
"@antv/util" "^2.0.9"
|
||||
insert-css "^2.0.0"
|
||||
|
||||
"@antv/g6@^4.8.24":
|
||||
version "4.8.25"
|
||||
resolved "https://registry.yarnpkg.com/@antv/g6/-/g6-4.8.25.tgz#ad9df58116f07b754860dfa8f8ba7df842f126be"
|
||||
integrity sha512-8mdTnN9QMVNQZtlXmftL8fvRsa4L+GajK58Zp51wyrGLFyjeop8R0QSkCALW45DWP2TaQeZAPtjhQUU/wf5hIg==
|
||||
dependencies:
|
||||
"@antv/g6-pc" "0.8.25"
|
||||
|
||||
"@antv/graphlib@^1.0.0":
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@antv/graphlib/-/graphlib-1.2.0.tgz#c88f97d4b3456d261480a1207ffc4fbc5d7dcf0d"
|
||||
integrity sha512-hhJOMThec51nU4Fe5p/viLlNIL71uDEgYFzKPajWjr2715SFG1HAgiP6AVylIeqBcAZ04u3Lw7usjl/TuI5RuQ==
|
||||
|
||||
"@antv/hierarchy@^0.6.10":
|
||||
version "0.6.14"
|
||||
resolved "https://registry.yarnpkg.com/@antv/hierarchy/-/hierarchy-0.6.14.tgz#4e8b4966c9c2a44aaa6f9da7008c4bd44d490385"
|
||||
integrity sha512-V3uknf7bhynOqQDw2sg+9r9DwZ9pc6k/EcqyTFdfXB1+ydr7urisP0MipIuimucvQKN+Qkd+d6w601r1UIroqQ==
|
||||
|
||||
"@antv/layout@^0.3.0":
|
||||
version "0.3.25"
|
||||
resolved "https://registry.yarnpkg.com/@antv/layout/-/layout-0.3.25.tgz#0430050d1b36c21a6ab19474bd1000e114066dc7"
|
||||
integrity sha512-d29Aw1PXoAavMRZy7iTB9L5rMBeChFEX0BJ9ELP4TI35ySdCu07YbmPo9ju9OH/6sG2/NB3o85Ayxrre3iwX/g==
|
||||
dependencies:
|
||||
"@antv/g-webgpu" "0.7.2"
|
||||
"@antv/graphlib" "^1.0.0"
|
||||
"@antv/util" "^3.3.2"
|
||||
d3-force "^2.1.1"
|
||||
d3-quadtree "^2.0.0"
|
||||
dagre-compound "^0.0.11"
|
||||
ml-matrix "6.5.0"
|
||||
|
||||
"@antv/matrix-util@^3.0.4":
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@antv/matrix-util/-/matrix-util-3.0.4.tgz#ea13f158aa2fb4ba2fb8d6b6b561ec467ea3ac20"
|
||||
integrity sha512-BAPyu6dUliHcQ7fm9hZSGKqkwcjEDVLVAstlHULLvcMZvANHeLXgHEgV7JqcAV/GIhIz8aZChIlzM1ZboiXpYQ==
|
||||
dependencies:
|
||||
"@antv/util" "^2.0.9"
|
||||
gl-matrix "^3.3.0"
|
||||
tslib "^2.0.3"
|
||||
|
||||
"@antv/matrix-util@^3.1.0-beta.1", "@antv/matrix-util@^3.1.0-beta.3":
|
||||
version "3.1.0-beta.3"
|
||||
resolved "https://registry.yarnpkg.com/@antv/matrix-util/-/matrix-util-3.1.0-beta.3.tgz#e061de8fa7be04605a155c69cc5ce9082eedddee"
|
||||
integrity sha512-W2R6Za3A6CmG51Y/4jZUM/tFgYSq7vTqJL1VD9dKrvwxS4sE0ZcXINtkp55CdyBwJ6Cwm8pfoRpnD4FnHahN0A==
|
||||
dependencies:
|
||||
"@antv/util" "^2.0.9"
|
||||
gl-matrix "^3.4.3"
|
||||
tslib "^2.0.3"
|
||||
|
||||
"@antv/path-util@^2.0.3", "@antv/path-util@~2.0.5":
|
||||
version "2.0.15"
|
||||
resolved "https://registry.yarnpkg.com/@antv/path-util/-/path-util-2.0.15.tgz#a6f691dfc8b7bce5be7f0aabb5bd614964325631"
|
||||
integrity sha512-R2VLZ5C8PLPtr3VciNyxtjKqJ0XlANzpFb5sE9GE61UQqSRuSVSzIakMxjEPrpqbgc+s+y8i+fmc89Snu7qbNw==
|
||||
dependencies:
|
||||
"@antv/matrix-util" "^3.0.4"
|
||||
"@antv/util" "^2.0.9"
|
||||
tslib "^2.0.3"
|
||||
|
||||
"@antv/scale@^0.3.4":
|
||||
version "0.3.18"
|
||||
resolved "https://registry.yarnpkg.com/@antv/scale/-/scale-0.3.18.tgz#b911f431b3e0b9547b6a65f66d0d3fa295b5ef32"
|
||||
integrity sha512-GHwE6Lo7S/Q5fgaLPaCsW+CH+3zl4aXpnN1skOiEY0Ue9/u+s2EySv6aDXYkAqs//i0uilMDD/0/4n8caX9U9w==
|
||||
dependencies:
|
||||
"@antv/util" "~2.0.3"
|
||||
fecha "~4.2.0"
|
||||
tslib "^2.0.0"
|
||||
|
||||
"@antv/util@^2.0.13", "@antv/util@^2.0.9", "@antv/util@~2.0.0", "@antv/util@~2.0.13", "@antv/util@~2.0.3", "@antv/util@~2.0.5":
|
||||
version "2.0.17"
|
||||
resolved "https://registry.yarnpkg.com/@antv/util/-/util-2.0.17.tgz#e8ef42aca7892815b229269f3dd10c6b3c7597a9"
|
||||
integrity sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==
|
||||
dependencies:
|
||||
csstype "^3.0.8"
|
||||
tslib "^2.0.3"
|
||||
|
||||
"@antv/util@^3.3.2":
|
||||
version "3.3.11"
|
||||
resolved "https://registry.yarnpkg.com/@antv/util/-/util-3.3.11.tgz#32c552731cd000eed9adf9ad613738da4c077640"
|
||||
integrity sha512-FII08DFM4ABh2q5rPYdr0hMtKXRgeZazvXaFYCs7J7uTcWDHUhczab2qOCJLNDugoj8jFag1djb7wS9ehaRYBg==
|
||||
dependencies:
|
||||
fast-deep-equal "^3.1.3"
|
||||
gl-matrix "^3.3.0"
|
||||
tslib "^2.3.1"
|
||||
|
||||
"@antv/x6-common@^2.0.16":
|
||||
version "2.0.17"
|
||||
resolved "https://registry.npmmirror.com/@antv/x6-common/-/x6-common-2.0.17.tgz"
|
||||
@@ -304,7 +565,7 @@
|
||||
"@babel/helper-skip-transparent-expression-wrappers" "^7.27.1"
|
||||
"@babel/plugin-syntax-typescript" "^7.27.1"
|
||||
|
||||
"@babel/runtime@^7.12.5", "@babel/runtime@^7.26.9":
|
||||
"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.26.9":
|
||||
version "7.28.4"
|
||||
resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.28.4.tgz"
|
||||
integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==
|
||||
@@ -770,6 +1031,28 @@
|
||||
resolved "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz"
|
||||
integrity sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==
|
||||
|
||||
"@probe.gl/env@3.6.0":
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@probe.gl/env/-/env-3.6.0.tgz#33343fd9041a14d21374c1911826d4a2f9d9a35d"
|
||||
integrity sha512-4tTZYUg/8BICC3Yyb9rOeoKeijKbZHRXBEKObrfPmX4sQmYB15ZOUpoVBhAyJkOYVAM8EkPci6Uw5dLCwx2BEQ==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.0.0"
|
||||
|
||||
"@probe.gl/log@3.6.0":
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@probe.gl/log/-/log-3.6.0.tgz#c645bfd22b4769dc65161caa17f13bd2b231e413"
|
||||
integrity sha512-hjpyenpEvOdowgZ1qMeCJxfRD4JkKdlXz0RC14m42Un62NtOT+GpWyKA4LssT0+xyLULCByRAtG2fzZorpIAcA==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.0.0"
|
||||
"@probe.gl/env" "3.6.0"
|
||||
|
||||
"@probe.gl/stats@3.6.0":
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@probe.gl/stats/-/stats-3.6.0.tgz#a1bb12860fa6f40b9c028f9eb575d7ada0b4dbdd"
|
||||
integrity sha512-JdALQXB44OP4kUBN/UrQgzbJe4qokbVF4Y8lkIA8iVCFnjVowWIgkD/z/0QO65yELT54tTrtepw1jScjKB+rhQ==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.0.0"
|
||||
|
||||
"@rolldown/pluginutils@1.0.0-beta.29", "@rolldown/pluginutils@^1.0.0-beta.21":
|
||||
version "1.0.0-beta.29"
|
||||
resolved "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.29.tgz"
|
||||
@@ -890,6 +1173,11 @@
|
||||
resolved "https://registry.npmjs.org/@tsconfig/node22/-/node22-22.0.2.tgz"
|
||||
integrity sha512-Kmwj4u8sDRDrMYRoN9FDEcXD8UpBSaPQQ24Gz+Gamqfm7xxn+GBR7ge/Z7pK8OXNGyUzbSwJj+TH6B+DS/epyA==
|
||||
|
||||
"@types/d3-timer@^2.0.0":
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-2.0.3.tgz#d74350a9eb5991f054b2cf8e92efaf22be3e1a25"
|
||||
integrity sha512-jhAJzaanK5LqyLQ50jJNIrB8fjL9gwWZTgYjevPvkDLMU+kTAZkYsobI59nYoeSrH1PucuyJEi247Pb90t6XUg==
|
||||
|
||||
"@types/estree@1.0.8", "@types/estree@^1.0.6":
|
||||
version "1.0.8"
|
||||
resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz"
|
||||
@@ -1544,6 +1832,13 @@ codepage@~1.15.0:
|
||||
resolved "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz"
|
||||
integrity sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==
|
||||
|
||||
color-convert@^1.9.3:
|
||||
version "1.9.3"
|
||||
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
|
||||
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
|
||||
dependencies:
|
||||
color-name "1.1.3"
|
||||
|
||||
color-convert@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
|
||||
@@ -1551,11 +1846,32 @@ color-convert@^2.0.1:
|
||||
dependencies:
|
||||
color-name "~1.1.4"
|
||||
|
||||
color-name@~1.1.4:
|
||||
color-name@1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
|
||||
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
|
||||
|
||||
color-name@^1.0.0, color-name@~1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
|
||||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
|
||||
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
||||
|
||||
color-string@^1.6.0:
|
||||
version "1.9.1"
|
||||
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4"
|
||||
integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
|
||||
dependencies:
|
||||
color-name "^1.0.0"
|
||||
simple-swizzle "^0.2.2"
|
||||
|
||||
color@^3.1.3:
|
||||
version "3.2.1"
|
||||
resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164"
|
||||
integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==
|
||||
dependencies:
|
||||
color-convert "^1.9.3"
|
||||
color-string "^1.6.0"
|
||||
|
||||
colorjs.io@^0.5.0:
|
||||
version "0.5.2"
|
||||
resolved "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.5.2.tgz"
|
||||
@@ -1634,11 +1950,75 @@ cssesc@^3.0.0:
|
||||
resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
|
||||
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
|
||||
|
||||
csstype@^3.0.8:
|
||||
version "3.2.3"
|
||||
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a"
|
||||
integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==
|
||||
|
||||
csstype@^3.1.3:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz"
|
||||
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
|
||||
|
||||
"d3-color@1 - 3":
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2"
|
||||
integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==
|
||||
|
||||
"d3-dispatch@1 - 2":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-2.0.0.tgz#8a18e16f76dd3fcaef42163c97b926aa9b55e7cf"
|
||||
integrity sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==
|
||||
|
||||
d3-ease@^1.0.5:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2"
|
||||
integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==
|
||||
|
||||
d3-force@^2.0.1, d3-force@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-2.1.1.tgz#f20ccbf1e6c9e80add1926f09b51f686a8bc0937"
|
||||
integrity sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==
|
||||
dependencies:
|
||||
d3-dispatch "1 - 2"
|
||||
d3-quadtree "1 - 2"
|
||||
d3-timer "1 - 2"
|
||||
|
||||
d3-interpolate@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d"
|
||||
integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==
|
||||
dependencies:
|
||||
d3-color "1 - 3"
|
||||
|
||||
"d3-quadtree@1 - 2", d3-quadtree@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-2.0.0.tgz#edbad045cef88701f6fee3aee8e93fb332d30f9d"
|
||||
integrity sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==
|
||||
|
||||
"d3-timer@1 - 2":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-2.0.0.tgz#055edb1d170cfe31ab2da8968deee940b56623e6"
|
||||
integrity sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==
|
||||
|
||||
d3-timer@^1.0.9:
|
||||
version "1.0.10"
|
||||
resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5"
|
||||
integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==
|
||||
|
||||
dagre-compound@^0.0.11:
|
||||
version "0.0.11"
|
||||
resolved "https://registry.yarnpkg.com/dagre-compound/-/dagre-compound-0.0.11.tgz#8d3d1004d756f420582d29f28c92045375018987"
|
||||
integrity sha512-UrSgRP9LtOZCYb9e5doolZXpc7xayyszgyOs7uakTK4n4KsLegLVTRRtq01GpQd/iZjYw5fWMapx9ed+c80MAQ==
|
||||
|
||||
dagre@^0.8.5:
|
||||
version "0.8.5"
|
||||
resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.5.tgz#ba30b0055dac12b6c1fcc247817442777d06afee"
|
||||
integrity sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==
|
||||
dependencies:
|
||||
graphlib "^2.1.8"
|
||||
lodash "^4.17.15"
|
||||
|
||||
dayjs@^1.11.18:
|
||||
version "1.11.18"
|
||||
resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.18.tgz"
|
||||
@@ -1684,6 +2064,11 @@ delayed-stream@~1.0.0:
|
||||
resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
|
||||
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
|
||||
|
||||
detect-browser@^5.0.0, detect-browser@^5.1.0:
|
||||
version "5.3.0"
|
||||
resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca"
|
||||
integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==
|
||||
|
||||
detect-libc@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz"
|
||||
@@ -1949,6 +2334,11 @@ esutils@^2.0.2:
|
||||
resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
|
||||
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
|
||||
|
||||
eventemitter3@^4.0.0:
|
||||
version "4.0.7"
|
||||
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
|
||||
integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
|
||||
|
||||
execa@^9.6.0:
|
||||
version "9.6.0"
|
||||
resolved "https://registry.npmjs.org/execa/-/execa-9.6.0.tgz"
|
||||
@@ -2019,6 +2409,11 @@ fdir@^6.4.4, fdir@^6.5.0:
|
||||
resolved "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz"
|
||||
integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==
|
||||
|
||||
fecha@~4.2.0:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd"
|
||||
integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==
|
||||
|
||||
fflate@^0.8.1:
|
||||
version "0.8.2"
|
||||
resolved "https://registry.npmmirror.com/fflate/-/fflate-0.8.2.tgz"
|
||||
@@ -2134,6 +2529,16 @@ get-stream@^9.0.0:
|
||||
"@sec-ant/readable-stream" "^0.4.1"
|
||||
is-stream "^4.0.1"
|
||||
|
||||
gl-matrix@^3.0.0, gl-matrix@^3.1.0, gl-matrix@^3.3.0, gl-matrix@^3.4.3:
|
||||
version "3.4.4"
|
||||
resolved "https://registry.yarnpkg.com/gl-matrix/-/gl-matrix-3.4.4.tgz#7789ee4982f62c7a7af447ee488f3bd6b0c77003"
|
||||
integrity sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==
|
||||
|
||||
gl-vec2@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/gl-vec2/-/gl-vec2-1.3.0.tgz#83d472ed46034de8e09cbc857123fb6c81c51199"
|
||||
integrity sha512-YiqaAuNsheWmUV0Sa8k94kBB0D6RWjwZztyO+trEYS8KzJ6OQB/4686gdrf59wld4hHFIvaxynO3nRxpk1Ij/A==
|
||||
|
||||
glob-parent@^5.1.2:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
|
||||
@@ -2163,6 +2568,13 @@ graphemer@^1.4.0:
|
||||
resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz"
|
||||
integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
|
||||
|
||||
graphlib@^2.1.8:
|
||||
version "2.1.8"
|
||||
resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da"
|
||||
integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==
|
||||
dependencies:
|
||||
lodash "^4.17.15"
|
||||
|
||||
has-flag@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
|
||||
@@ -2243,11 +2655,26 @@ inherits@^2.0.3:
|
||||
resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
|
||||
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
||||
|
||||
insert-css@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/insert-css/-/insert-css-2.0.0.tgz#eb5d1097b7542f4c79ea3060d3aee07d053880f4"
|
||||
integrity sha512-xGq5ISgcUP5cvGkS2MMFLtPDBtrtQPSFfC6gA6U8wHKqfjTIMZLZNxOItQnoSjdOzlXOLU/yD32RKC4SvjNbtA==
|
||||
|
||||
iobuffer@^5.3.2:
|
||||
version "5.4.0"
|
||||
resolved "https://registry.npmmirror.com/iobuffer/-/iobuffer-5.4.0.tgz"
|
||||
integrity sha512-DRebOWuqDvxunfkNJAlc3IzWIPD5xVxwUNbHr7xKB8E6aLJxIPfNX3CoMJghcFjpv6RWQsrcJbghtEwSPoJqMA==
|
||||
|
||||
is-any-array@^2.0.0, is-any-array@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-any-array/-/is-any-array-2.0.1.tgz#9233242a9c098220290aa2ec28f82ca7fa79899e"
|
||||
integrity sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==
|
||||
|
||||
is-arrayish@^0.3.1:
|
||||
version "0.3.4"
|
||||
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.4.tgz#1ee5553818511915685d33bb13d31bf854e5059d"
|
||||
integrity sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==
|
||||
|
||||
is-docker@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz"
|
||||
@@ -2417,7 +2844,7 @@ lodash.merge@^4.6.2:
|
||||
resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"
|
||||
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
|
||||
|
||||
lodash@^4.17.21:
|
||||
lodash@^4.17.15, lodash@^4.17.21:
|
||||
version "4.17.21"
|
||||
resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz"
|
||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||
@@ -2500,6 +2927,44 @@ mitt@^3.0.1:
|
||||
resolved "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz"
|
||||
integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==
|
||||
|
||||
ml-array-max@^1.2.4:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/ml-array-max/-/ml-array-max-1.2.4.tgz#2373e2b7e51c8807e456cc0ef364c5863713623b"
|
||||
integrity sha512-BlEeg80jI0tW6WaPyGxf5Sa4sqvcyY6lbSn5Vcv44lp1I2GR6AWojfUvLnGTNsIXrZ8uqWmo8VcG1WpkI2ONMQ==
|
||||
dependencies:
|
||||
is-any-array "^2.0.0"
|
||||
|
||||
ml-array-min@^1.2.3:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/ml-array-min/-/ml-array-min-1.2.3.tgz#662f027c400105816b849cc3cd786915d0801495"
|
||||
integrity sha512-VcZ5f3VZ1iihtrGvgfh/q0XlMobG6GQ8FsNyQXD3T+IlstDv85g8kfV0xUG1QPRO/t21aukaJowDzMTc7j5V6Q==
|
||||
dependencies:
|
||||
is-any-array "^2.0.0"
|
||||
|
||||
ml-array-rescale@^1.3.1, ml-array-rescale@^1.3.7:
|
||||
version "1.3.7"
|
||||
resolved "https://registry.yarnpkg.com/ml-array-rescale/-/ml-array-rescale-1.3.7.tgz#c4d129320d113a732e62dd963dc1695bba9a5340"
|
||||
integrity sha512-48NGChTouvEo9KBctDfHC3udWnQKNKEWN0ziELvY3KG25GR5cA8K8wNVzracsqSW1QEkAXjTNx+ycgAv06/1mQ==
|
||||
dependencies:
|
||||
is-any-array "^2.0.0"
|
||||
ml-array-max "^1.2.4"
|
||||
ml-array-min "^1.2.3"
|
||||
|
||||
ml-matrix@6.5.0:
|
||||
version "6.5.0"
|
||||
resolved "https://registry.yarnpkg.com/ml-matrix/-/ml-matrix-6.5.0.tgz#3f3bbc54a694a0acf67feb7a750a903ac268d72c"
|
||||
integrity sha512-sms732Dge+rs5dU4mnjE0oqLWm1WujvR2fr38LgUHRG2cjXjWlO3WJupLYaSz3++2iYr0UrGDK72OAivr3J8dg==
|
||||
dependencies:
|
||||
ml-array-rescale "^1.3.1"
|
||||
|
||||
ml-matrix@^6.5.0:
|
||||
version "6.12.1"
|
||||
resolved "https://registry.yarnpkg.com/ml-matrix/-/ml-matrix-6.12.1.tgz#8fc99365f7294d27076f0ce405b589e1c04ca1b0"
|
||||
integrity sha512-TJ+8eOFdp+INvzR4zAuwBQJznDUfktMtOB6g/hUcGh3rcyjxbz4Te57Pgri8Q9bhSQ7Zys4IYOGhFdnlgeB6Lw==
|
||||
dependencies:
|
||||
is-any-array "^2.0.1"
|
||||
ml-array-rescale "^1.3.7"
|
||||
|
||||
monaco-editor@^0.54.0:
|
||||
version "0.54.0"
|
||||
resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.54.0.tgz#c0d6ebb46b83f1bef6f67f6aa471e38ba7ef8231"
|
||||
@@ -2758,6 +3223,16 @@ pretty-ms@^9.2.0:
|
||||
dependencies:
|
||||
parse-ms "^4.0.0"
|
||||
|
||||
probe.gl@^3.1.1:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/probe.gl/-/probe.gl-3.6.0.tgz#e816234412b27a70b9be029cb82c8cf96cd72659"
|
||||
integrity sha512-19JydJWI7+DtR4feV+pu4Mn1I5TAc0xojuxVgZdXIyfmTLfUaFnk4OloWK1bKbPtkgGKLr2lnbnCXmpZEcEp9g==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.0.0"
|
||||
"@probe.gl/env" "3.6.0"
|
||||
"@probe.gl/log" "3.6.0"
|
||||
"@probe.gl/stats" "3.6.0"
|
||||
|
||||
proxy-from-env@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz"
|
||||
@@ -2807,6 +3282,11 @@ regenerator-runtime@^0.13.7:
|
||||
resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz"
|
||||
integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
|
||||
|
||||
regl@^1.3.11:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/regl/-/regl-1.7.0.tgz#0d185431044a356bf80e9b775b11b935ef2746d3"
|
||||
integrity sha512-bEAtp/qrtKucxXSJkD4ebopFZYP0q1+3Vb2WECWv/T8yQEgKxDxJ7ztO285tAMaYZVR6mM1GgI6CCn8FROtL1w==
|
||||
|
||||
resolve-from@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
|
||||
@@ -3055,6 +3535,13 @@ signal-exit@^4.1.0:
|
||||
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz"
|
||||
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
|
||||
|
||||
simple-swizzle@^0.2.2:
|
||||
version "0.2.4"
|
||||
resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.4.tgz#a8d11a45a11600d6a1ecdff6363329e3648c3667"
|
||||
integrity sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==
|
||||
dependencies:
|
||||
is-arrayish "^0.3.1"
|
||||
|
||||
sirv@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz"
|
||||
@@ -3179,6 +3666,11 @@ text-segmentation@^1.0.3:
|
||||
dependencies:
|
||||
utrie "^1.0.2"
|
||||
|
||||
tinycolor2@^1.4.1:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.6.0.tgz#f98007460169b0263b97072c5ae92484ce02d09e"
|
||||
integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==
|
||||
|
||||
tinyglobby@^0.2.14:
|
||||
version "0.2.14"
|
||||
resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz"
|
||||
@@ -3209,6 +3701,11 @@ tslib@2.3.0, tslib@^2.1.0:
|
||||
resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz"
|
||||
integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
|
||||
|
||||
tslib@^2.0.0, tslib@^2.0.3, tslib@^2.3.1, tslib@^2.6.2:
|
||||
version "2.8.1"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
|
||||
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
|
||||
|
||||
tweetnacl@^0.14.3:
|
||||
version "0.14.5"
|
||||
resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
|
||||
|
||||
Reference in New Issue
Block a user