diff --git a/README.md b/README.md index db5598c..aa5195b 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,9 @@ vue-element-perfect 是一个后台前端解决方案, 基于Vue3.0+TS+Element-p ## 效果预览 -#### 在线预览点击 —— [企业级、通用型中后台前端解决方案 ](http://182.61.5.190:8889/) +### 在线预览点击 —— [企业级、通用型中后台前端解决方案 ](http://182.61.5.190:8889/) -附上github地址点击跳转 [vue-admin-perfect](https://github.com/zouzhibin/vue-admin-perfect) +### 附上github地址点击跳转 [vue-admin-perfect](https://github.com/zouzhibin/vue-admin-perfect) ## 项目 uniapp 分支 diff --git a/layout/components/Sidebar/index.vue b/layout/components/Sidebar/index.vue index 6e715bc..50611ec 100644 --- a/layout/components/Sidebar/index.vue +++ b/layout/components/Sidebar/index.vue @@ -7,7 +7,7 @@ :collapse="isCollapse" :background-color="variables.menuBg" :text-color="variables.menuText" - :unique-opened="true" + :active-text-color="settings.theme" :collapse-transition="false" mode="vertical" diff --git a/package.json b/package.json index 875030a..f016f36 100644 --- a/package.json +++ b/package.json @@ -22,9 +22,12 @@ "url": "https://github.com/zouzhibin/vue-admin-perfect" }, "dependencies": { + "clipboard": "^2.0.11", "dayjs": "^1.11.2", "echarts": "^5.3.2", + "echarts-liquidfill": "^3.1.0", "element-ui": "2.15.5", + "exceljs": "^4.3.0", "fuse.js": "3.4.4", "js-cookie": "^2.2.1", "jsencrypt": "3.0.0-rc.1", diff --git a/router/modules/charts.js b/router/modules/charts.js new file mode 100644 index 0000000..6ace84f --- /dev/null +++ b/router/modules/charts.js @@ -0,0 +1,43 @@ +/** When your routing table is too long, you can split it into small modules**/ + +import Layout from "@/layout/index.vue"; + +const chartsRouter = { + path: '/charts', + component: Layout, + redirect: 'noRedirect', + name: 'Charts', + meta: { + title: '图表', + icon: 's-management', + roles:['other'] + }, + children: [ + // { + // path: 'map', + // component: () => import('@/views/charts/map.vue'), + // name: 'map', + // meta: { title: '地图', noCache: true , roles:['other'] } + // }, + { + path: 'migration', + component: () => import('@/views/charts/migration.vue'), + name: 'migration', + meta: { title: '迁徙图', noCache: true , roles:['other'] } + }, + { + path: 'simple', + component: () => import('@/views/charts/simple.vue'), + name: 'charts-simple', + meta: { title: '简单图表', noCache: true , roles:['other'] } + }, + // { + // path: 'complex', + // component: () => import('@/views/charts/complex.vue'), + // name: 'charts-complex', + // meta: { title: '复杂图表', noCache: true , roles:['other'] } + // }, + ] +} + +export default chartsRouter diff --git a/router/modules/excel.js b/router/modules/excel.js new file mode 100644 index 0000000..eb8a051 --- /dev/null +++ b/router/modules/excel.js @@ -0,0 +1,44 @@ + + +/** When your routing table is too long, you can split it into small modules**/ + +import Layout from "@/layout/index.vue"; + +const excelRouter = { + path: '/excel', + component: Layout, + redirect: 'noRedirect', + name: 'excel', + meta: { + title: 'Excel', + icon: 'c-scale-to-original' + }, + children: [ + { + path: 'export-excel', + component: () => import('@/views/excel/export-excel.vue'), + name: 'export-excel', + meta: { title: '导出 Excel', noCache: true } + }, + { + path: 'export-merge-header', + component: () => import('@/views/excel/export-merge-header.vue'), + name: 'export-merge-header', + meta: { title: '导出 多级表头', noCache: true } + }, + { + path: 'upload-excel', + component: () => import('@/views/excel/upload-excel.vue'), + name: 'upload-excel', + meta: { title: '上传 Excel', noCache: true } + }, + { + path: 'upload-style-excel', + component: () => import('@/views/excel/export-style-excel.vue'), + name: 'upload-style-excel', + meta: { title: '自定义样式导出 Excel', noCache: true } + }, + ] +} + +export default excelRouter diff --git a/router/routers.js b/router/routers.js index 8b321a1..8f57ef1 100644 --- a/router/routers.js +++ b/router/routers.js @@ -1,5 +1,7 @@ import Layout from '@/layout/index' import tableRouter from "./modules/table"; +import chartsRouter from "./modules/charts"; +import excelRouter from "./modules/excel"; /** * meta: { * title: { String|Number|Function } @@ -14,6 +16,29 @@ import tableRouter from "./modules/table"; * beforeCloseName: (-) 设置该字段,则在关闭当前tab页时会去'@/router/before-close.js'里寻找该字段名对应的方法,作为关闭前的钩子函数 * } */ + +const clipboardTable = { + path: '/clipboard', + component: Layout, + redirect: 'noRedirect', + name: 'clipboard', + meta: { + title: 'clipboard', + icon: 'document-copy', + roles:['other'] + }, + children: [ + { + path: 'index', + component: () => import('@/views/clipboard/index.vue'), + name: 'map', + meta: { title: 'clipboard', noCache: true , roles:['other'] ,icon: 'document-copy',} + }, + + ] +} + + export default [ { path: '/redirect', @@ -75,5 +100,8 @@ export default [ }] }, tableRouter, + chartsRouter, + clipboardTable, + excelRouter ] diff --git a/utils/clipboard.js b/utils/clipboard.js new file mode 100644 index 0000000..9d539b5 --- /dev/null +++ b/utils/clipboard.js @@ -0,0 +1,33 @@ +import Clipboard from 'clipboard' +import {Message} from 'element-ui' + + +function clipboardSuccess() { + Message({ + message: '复制成功', + type: 'success', + duration: 1500 + }) +} + +function clipboardError() { + Message({ + message: '复制失败', + type: 'error' + }) +} + +export default function handleClipboard(text, event) { + const clipboard = new Clipboard(event.target, { + text: () => text + }) + clipboard.on('success', () => { + clipboardSuccess() + clipboard.destroy() + }) + clipboard.on('error', () => { + clipboardError() + clipboard.destroy() + }) + clipboard.onClick(event) +} diff --git a/utils/exprotExcel.js b/utils/exprotExcel.js new file mode 100644 index 0000000..4f51227 --- /dev/null +++ b/utils/exprotExcel.js @@ -0,0 +1,280 @@ +const ExcelJS = require("exceljs"); + +const autoWidthAction = (val,width=10)=>{ + if (val == null) { + width = 10; + } else if (val.toString().charCodeAt(0) > 255) { + /*if chinese*/ + width = val.toString().length * 2; + } else { + width = val.toString().length; + } + return width +} +export const exportExcel = async ({column,data,filename,autoWidth,format})=>{ + // 创建excel + const workbook = new ExcelJS.Workbook(); + // 设置信息 + workbook.creator = "Me"; + workbook.title = filename; + workbook.created = new Date(); + workbook.modified = new Date(); + // 创建工作表 + const worksheet = workbook.addWorksheet(filename); + // 设置列名 + let columnsName = []; + column.forEach((item,index)=>{ + let obj = { + header: item.label, key:item.name, width: null + } + if(autoWidth){ + let maxArr = [autoWidthAction(item.label)] + data.forEach(ite=>{ + let str = ite[item.name] ||'' + if(str){ + maxArr.push(autoWidthAction(str)) + } + }) + obj.width = Math.max(...maxArr)+5 + } + // 设置列名、键和宽度 + columnsName.push(obj); + }) + worksheet.columns = columnsName; + // 添加行 + worksheet.addRows(data); + // 写入文件 + + const uint8Array = + format === "xlsx" + ? await workbook.xlsx.writeBuffer() + : await workbook.csv.writeBuffer(); + + const blob = new Blob([uint8Array], { type: "application/octet-binary" }); + if (window.navigator.msSaveOrOpenBlob) { + // msSaveOrOpenBlob方法返回boolean值 + navigator.msSaveBlob(blob, filename + `.${format}`); + // 本地保存 + } else { + const link = document.createElement("a"); // a标签下载 + link.href = window.URL.createObjectURL(blob); // href属性指定下载链接 + link.download = filename + `.${format}`; // dowload属性指定文件名 + link.click(); // click()事件触发下载 + window.URL.revokeObjectURL(link.href); // 释放内存 + } +} +export function addCellStyle(cell, attr) { + const {color, fontSize, horizontal, bold} = attr || {}; + // eslint-disable-next-line no-param-reassign + cell.fill = { + type: 'pattern', + pattern: 'solid', + fgColor: {argb: color}, + }; + // eslint-disable-next-line no-param-reassign + cell.font = { + bold: bold ?? true, + size: fontSize ?? 11, + // italic: true, + // name: '微软雅黑', + color: {argb: 'ff0000'}, + }; + // eslint-disable-next-line no-param-reassign + cell.alignment = {vertical: 'middle', wrapText: true, horizontal: horizontal ?? 'left'}; +} + +export const exportStyleExcel =async ({column,data,filename,autoWidth,format})=>{ + // 创建excel + const workbook = new ExcelJS.Workbook(); + // 设置信息 + workbook.creator = "Me"; + workbook.title = filename; + workbook.created = new Date(); + workbook.modified = new Date(); + // 创建工作表 + const worksheet = workbook.addWorksheet(filename); + // 设置列名 + let columnsName = []; + column.forEach((item,index)=>{ + let obj = { + header: item.label, key:item.name, width: null + } + if(autoWidth){ + let maxArr = [autoWidthAction(item.label)] + data.forEach(ite=>{ + let str = ite[item.name] ||'' + if(str){ + maxArr.push(autoWidthAction(str)) + } + }) + obj.width = Math.max(...maxArr)+5 + } + // 设置列名、键和宽度 + columnsName.push(obj); + }) + worksheet.columns = columnsName; + // 添加行 + worksheet.addRows(data); + // 写入文件 + + // 设置表头颜色 + // 给表头添加背景色。因为表头是第一行,可以通过 getRow(1) 来获取表头这一行 + const headerRow = worksheet.getRow(1); + // 通过 cell 设置样式,更精准 + headerRow.eachCell((cell) => addCellStyle(cell, {color: 'dff8ff', fontSize: 12, horizontal: 'left'})); + + const uint8Array = + format === "xlsx" + ? await workbook.xlsx.writeBuffer() + : await workbook.csv.writeBuffer(); + + const blob = new Blob([uint8Array], { type: "application/octet-binary" }); + if (window.navigator.msSaveOrOpenBlob) { + // msSaveOrOpenBlob方法返回boolean值 + navigator.msSaveBlob(blob, filename + `.${format}`); + // 本地保存 + } else { + const link = document.createElement("a"); // a标签下载 + link.href = window.URL.createObjectURL(blob); // href属性指定下载链接 + link.download = filename + `.${format}`; // dowload属性指定文件名 + link.click(); // click()事件触发下载 + window.URL.revokeObjectURL(link.href); // 释放内存 + } +} + + + + +// 默认的列宽 +export const DEFAULT_COLUMN_WIDTH = 20; + +function getColumnNumber(width) { + // 需要的列数,四舍五入 + return Math.round(width / DEFAULT_COLUMN_WIDTH); +} + + +function addData(worksheet,headerKeys,headers,data){ + +} + +export const exportMultiHeaderExcel = ({column,data,filename,autoWidth})=>{ + // 创建excel + const workbook = new ExcelJS.Workbook(); + // 创建工作表 + let sheet = workbook.addWorksheet("sheet1"); + + // 添加表头 + sheet.getRow(1).values = ["序号", "日期","地址" ,"配送消息" ,,, ]; + sheet.getRow(2).values = [ + "序号", + "日期", + "地址", + "省份", + "城市", + "邮编" + ]; + let headers = []; + column.forEach((item,index)=>{ + if(item.children){ + item.children.forEach(itemChild=>{ + let obj = { + key:itemChild.name, width: null + } + let maxArr = [autoWidthAction(itemChild.label)] + data.forEach(ite=>{ + let str = ite[itemChild.name] ||'' + if(str){ + maxArr.push(autoWidthAction(str)) + } + }) + obj.width = Math.max(...maxArr)+5 + // 设置列名、键和宽度 + headers.push(obj); + }) + + }else { + let obj = { + key:item.name, width: null + } + let maxArr = [autoWidthAction(item.label)] + data.forEach(ite=>{ + let str = ite[item.name] ||'' + if(str){ + maxArr.push(autoWidthAction(str)) + } + }) + obj.width = Math.max(...maxArr)+5 + // 设置列名、键和宽度 + headers.push(obj); + } + }) + sheet.columns = headers; + sheet.addRows(data); + + // 合并单元格 + sheet.mergeCells(`D1:F1`); + sheet.mergeCells("A1:A2"); + sheet.mergeCells("B1:B2"); + sheet.mergeCells("C1:C2"); + // 写入文件 + workbook.xlsx.writeBuffer().then((data) => { + const blob = new Blob([data, { type: "application/vnd.ms-excel" }]); + if (window.navigator.msSaveOrOpenBlob) { + // msSaveOrOpenBlob方法返回boolean值 + navigator.msSaveBlob(blob, filename + ".xlsx"); + // 本地保存 + } else { + const link = document.createElement("a"); // a标签下载 + link.href = window.URL.createObjectURL(blob); // href属性指定下载链接 + link.download = filename + ".xlsx"; // dowload属性指定文件名 + link.click(); // click()事件触发下载 + window.URL.revokeObjectURL(link.href); // 释放内存 + } + }); +} + + +function mergeColumnCell(headers, rowHeader1, rowHeader2, nameRow1, nameRow2, worksheet){ + // 当前 index 的指针 + let pointer = -1; + nameRow1.forEach((name, index) => { + // 当 index 小于指针时,说明这一列已经被合并过了,不能再合并 + if (index <= pointer) return; + // 是否应该列合并 + const shouldVerticalMerge = name === nameRow2[index]; + + + // 是否应该行合并 + const shouldHorizontalMerge = index !== nameRow1.lastIndexOf(name); + + console.log('==',name,nameRow2[index],index,nameRow1.lastIndexOf(name),shouldVerticalMerge,shouldHorizontalMerge) + + pointer = nameRow1.lastIndexOf(name); + if (shouldVerticalMerge && shouldHorizontalMerge) { + // 两个方向都合并 + worksheet.mergeCells( + Number(rowHeader1.number), + index + 1, + Number(rowHeader2.number), + nameRow1.lastIndexOf(name) + 1, + ); + console.log('==') + } else if (shouldVerticalMerge && !shouldHorizontalMerge) { + // 只在垂直方向上同一列的两行合并 + worksheet.mergeCells(Number(rowHeader1.number), index + 1, Number(rowHeader2.number), index + 1); + } else if (!shouldVerticalMerge && shouldHorizontalMerge) { + // 只有水平方向同一行的多列合并 + worksheet.mergeCells( + Number(rowHeader1.number), + index + 1, + Number(rowHeader1.number), + nameRow1.lastIndexOf(name) + 1, + ); + // eslint-disable-next-line no-param-reassign + const cell = rowHeader1.getCell(index + 1); + cell.alignment = { vertical: 'middle', horizontal: 'center', wrapText: true }; + } + }); + +} diff --git a/views/charts/components/migration/index.vue b/views/charts/components/migration/index.vue index 554d5ef..7dc2802 100644 --- a/views/charts/components/migration/index.vue +++ b/views/charts/components/migration/index.vue @@ -2,36 +2,11 @@ - diff --git a/views/charts/components/simple/candlestick.vue b/views/charts/components/simple/candlestick.vue index fb30d1e..aad918d 100644 --- a/views/charts/components/simple/candlestick.vue +++ b/views/charts/components/simple/candlestick.vue @@ -1,33 +1,9 @@ - diff --git a/views/charts/components/simple/funnel.vue b/views/charts/components/simple/funnel.vue index f93c206..0b476e2 100644 --- a/views/charts/components/simple/funnel.vue +++ b/views/charts/components/simple/funnel.vue @@ -1,33 +1,8 @@ - diff --git a/views/charts/components/simple/gauge.vue b/views/charts/components/simple/gauge.vue index 50214fa..5b704bb 100644 --- a/views/charts/components/simple/gauge.vue +++ b/views/charts/components/simple/gauge.vue @@ -1,33 +1,9 @@ - diff --git a/views/charts/components/simple/graph.vue b/views/charts/components/simple/graph.vue index 62d9319..5f9baff 100644 --- a/views/charts/components/simple/graph.vue +++ b/views/charts/components/simple/graph.vue @@ -1,33 +1,9 @@ - diff --git a/views/charts/components/simple/line.vue b/views/charts/components/simple/line.vue index 6584235..2068414 100644 --- a/views/charts/components/simple/line.vue +++ b/views/charts/components/simple/line.vue @@ -1,66 +1,74 @@ - diff --git a/views/charts/components/simple/pictorialBar.vue b/views/charts/components/simple/pictorialBar.vue index 16fd913..2b8ec41 100644 --- a/views/charts/components/simple/pictorialBar.vue +++ b/views/charts/components/simple/pictorialBar.vue @@ -1,10 +1,8 @@ - diff --git a/views/charts/components/simple/pie.vue b/views/charts/components/simple/pie.vue index 6fbe3b4..9ca2887 100644 --- a/views/charts/components/simple/pie.vue +++ b/views/charts/components/simple/pie.vue @@ -1,33 +1,8 @@ - diff --git a/views/charts/components/simple/radar.vue b/views/charts/components/simple/radar.vue index a9a946a..43a8e25 100644 --- a/views/charts/components/simple/radar.vue +++ b/views/charts/components/simple/radar.vue @@ -3,31 +3,7 @@ diff --git a/views/charts/components/simple/scatter.vue b/views/charts/components/simple/scatter.vue index 7aad988..b0574f0 100644 --- a/views/charts/components/simple/scatter.vue +++ b/views/charts/components/simple/scatter.vue @@ -1,33 +1,8 @@ - diff --git a/views/charts/migration.vue b/views/charts/migration.vue index 824dcd4..4e9b50b 100644 --- a/views/charts/migration.vue +++ b/views/charts/migration.vue @@ -1,17 +1,22 @@ - diff --git a/views/charts/simple.vue b/views/charts/simple.vue index f55fb50..eeba692 100644 --- a/views/charts/simple.vue +++ b/views/charts/simple.vue @@ -70,16 +70,6 @@ - - - - - - - - - - - diff --git a/views/clipboard/index.vue b/views/clipboard/index.vue new file mode 100644 index 0000000..ee6f6aa --- /dev/null +++ b/views/clipboard/index.vue @@ -0,0 +1,25 @@ + + diff --git a/views/excel/export-excel.vue b/views/excel/export-excel.vue new file mode 100644 index 0000000..88143d8 --- /dev/null +++ b/views/excel/export-excel.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/views/excel/export-merge-header.vue b/views/excel/export-merge-header.vue new file mode 100644 index 0000000..c70e4d3 --- /dev/null +++ b/views/excel/export-merge-header.vue @@ -0,0 +1,82 @@ + + + + + + diff --git a/views/excel/export-selected-excel.vue b/views/excel/export-selected-excel.vue new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/views/excel/export-selected-excel.vue @@ -0,0 +1 @@ + diff --git a/views/excel/export-style-excel.vue b/views/excel/export-style-excel.vue new file mode 100644 index 0000000..efdbd54 --- /dev/null +++ b/views/excel/export-style-excel.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/views/excel/upload-excel.vue b/views/excel/upload-excel.vue new file mode 100644 index 0000000..862c872 --- /dev/null +++ b/views/excel/upload-excel.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/vue-admin-perfect.zip b/vue-admin-perfect.zip new file mode 100644 index 0000000..c0e0e33 Binary files /dev/null and b/vue-admin-perfect.zip differ diff --git a/yarn.lock b/yarn.lock index 2629c58..117b8be 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,65 @@ # yarn lockfile v1 +"@fast-csv/format@4.3.5": + version "4.3.5" + resolved "https://registry.npmmirror.com/@fast-csv/format/-/format-4.3.5.tgz#90d83d1b47b6aaf67be70d6118f84f3e12ee1ff3" + integrity sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A== + dependencies: + "@types/node" "^14.0.1" + 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": + version "4.3.6" + resolved "https://registry.npmmirror.com/@fast-csv/parse/-/parse-4.3.6.tgz#ee47d0640ca0291034c7aa94039a744cfb019264" + integrity sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA== + dependencies: + "@types/node" "^14.0.1" + 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" + +"@types/node@^14.0.1": + version "14.18.18" + resolved "https://registry.npmmirror.com/@types/node/-/node-14.18.18.tgz#5c9503030df484ccffcbb935ea9a9e1d6fad1a20" + integrity sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig== + +archiver-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" + integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== + dependencies: + glob "^7.1.4" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + 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.0.0" + +archiver@^5.0.0: + version "5.3.1" + resolved "https://registry.npmmirror.com/archiver/-/archiver-5.3.1.tgz#21e92811d6f09ecfce649fbefefe8c79e57cbbb6" + integrity sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w== + dependencies: + archiver-utils "^2.1.0" + async "^3.2.3" + buffer-crc32 "^0.2.1" + readable-stream "^3.6.0" + readdir-glob "^1.0.0" + tar-stream "^2.2.0" + zip-stream "^4.1.0" + async-validator@~1.8.1: version "1.8.5" resolved "https://registry.npmmirror.com/async-validator/-/async-validator-1.8.5.tgz#dc3e08ec1fd0dddb67e60842f02c0cd1cec6d7f0" @@ -9,6 +68,11 @@ async-validator@~1.8.1: dependencies: babel-runtime "6.x" +async@^3.2.3: + version "3.2.3" + resolved "https://registry.npmmirror.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9" + integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== + babel-helper-vue-jsx-merge-props@^2.0.0: version "2.0.3" resolved "https://registry.npmmirror.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" @@ -22,12 +86,129 @@ babel-runtime@6.x: core-js "^2.4.0" regenerator-runtime "^0.11.0" +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +big-integer@^1.6.17: + version "1.6.51" + resolved "https://registry.npmmirror.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" + integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== + +binary@~0.3.0: + version "0.3.0" + resolved "https://registry.npmmirror.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" + integrity sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg== + dependencies: + buffers "~0.1.1" + chainsaw "~0.1.0" + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bluebird@~3.4.1: + version "3.4.7" + resolved "https://registry.npmmirror.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" + integrity sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +buffer-crc32@^0.2.1, buffer-crc32@^0.2.13: + version "0.2.13" + resolved "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer-indexof-polyfill@~1.0.0: + version "1.0.2" + resolved "https://registry.npmmirror.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz#d2732135c5999c64b277fcf9b1abe3498254729c" + integrity sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffers@~0.1.1: + version "0.1.1" + resolved "https://registry.npmmirror.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" + integrity sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ== + +chainsaw@~0.1.0: + version "0.1.0" + resolved "https://registry.npmmirror.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" + integrity sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ== + dependencies: + traverse ">=0.3.0 <0.4" + +clipboard@^2.0.11: + version "2.0.11" + resolved "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz#62180360b97dd668b6b3a84ec226975762a70be5" + integrity sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +compress-commons@^4.1.0: + version "4.1.1" + resolved "https://registry.npmmirror.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" + integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== + dependencies: + buffer-crc32 "^0.2.13" + crc32-stream "^4.0.2" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + core-js@^2.4.0: version "2.6.12" resolved "https://registry.npmmirror.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -dayjs@^1.11.2: +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +crc32-stream@^4.0.2: + version "4.0.2" + resolved "https://registry.npmmirror.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" + integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== + dependencies: + crc-32 "^1.2.0" + readable-stream "^3.4.0" + +dayjs@^1.11.2, dayjs@^1.8.34: version "1.11.2" resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.2.tgz#fa0f5223ef0d6724b3d8327134890cfe3d72fbe5" integrity sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw== @@ -42,6 +223,23 @@ deepmerge@^1.2.0: resolved "https://registry.npmmirror.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +duplexer2@~0.1.4: + version "0.1.4" + resolved "https://registry.npmmirror.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + integrity sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== + dependencies: + readable-stream "^2.0.2" + +echarts-liquidfill@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/echarts-liquidfill/-/echarts-liquidfill-3.1.0.tgz#4ec70f3697382d0404c95fff9f3e8dd85c8377da" + integrity sha512-5Dlqs/jTsdTUAsd+K5LPLLTgrbbNORUSBQyk8PSy1Mg2zgHDWm83FmvA4s0ooNepCJojFYRITTQ4GU1UUSKYLw== + echarts@^5.3.2: version "5.3.2" resolved "https://registry.npmmirror.com/echarts/-/echarts-5.3.2.tgz#0a7b3be8c48a48b2e7cb1b82121df0c208d42d2c" @@ -62,16 +260,118 @@ element-ui@2.15.5: resize-observer-polyfill "^1.5.0" throttle-debounce "^1.0.1" +end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +exceljs@^4.3.0: + version "4.3.0" + resolved "https://registry.npmmirror.com/exceljs/-/exceljs-4.3.0.tgz#939bc0d4c59c200acadb7051be34d25c109853c4" + integrity sha512-hTAeo5b5TPvf8Z02I2sKIT4kSfCnOO2bCxYX8ABqODCdAjppI3gI9VYiGCQQYVcBaBSKlFDMKlAQRqC+kV9O8w== + dependencies: + archiver "^5.0.0" + dayjs "^1.8.34" + fast-csv "^4.3.1" + jszip "^3.5.0" + readable-stream "^3.6.0" + saxes "^5.0.1" + tmp "^0.2.0" + unzipper "^0.10.11" + uuid "^8.3.0" + +fast-csv@^4.3.1: + version "4.3.6" + resolved "https://registry.npmmirror.com/fast-csv/-/fast-csv-4.3.6.tgz#70349bdd8fe4d66b1130d8c91820b64a21bc4a63" + integrity sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw== + dependencies: + "@fast-csv/format" "4.3.5" + "@fast-csv/parse" "4.3.6" + filter-obj@^1.1.0: version "1.1.0" resolved "https://registry.npmmirror.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fstream@^1.0.12: + version "1.0.12" + resolved "https://registry.npmmirror.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" + integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + fuse.js@3.4.4: version "3.4.4" resolved "https://registry.npmmirror.com/fuse.js/-/fuse.js-3.4.4.tgz#f98f55fcb3b595cf6a3e629c5ffaf10982103e95" integrity sha512-pyLQo/1oR5Ywf+a/tY8z4JygnIglmRxVUOiyFAbd11o9keUDpUJSMGRWJngcnkURj30kDHPmhoKY8ChJiz3EpQ== +glob@^7.1.3, glob@^7.1.4: + version "7.2.3" + resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw== + dependencies: + delegate "^3.1.2" + +graceful-fs@^4.1.2, graceful-fs@^4.2.0, graceful-fs@^4.2.2: + version "4.2.10" + resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +immediate@~3.0.5: + version "3.0.6" + resolved "https://registry.npmmirror.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + js-cookie@^2.2.1: version "2.2.1" resolved "https://registry.npmmirror.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" @@ -82,6 +382,124 @@ jsencrypt@3.0.0-rc.1: resolved "https://registry.npmmirror.com/jsencrypt/-/jsencrypt-3.0.0-rc.1.tgz#0e0a4744ba43cc557fb5cf62fe8646bceb561b1c" integrity sha512-gcvGaqerlUJy1Kq6tNgPYteVEoWNemu+9hBe2CdsCIz4rVcwjoTQ72iD1W76/PRMlnkzG0yVh7nwOOMOOUfKmg== +jszip@^3.5.0: + version "3.9.1" + resolved "https://registry.npmmirror.com/jszip/-/jszip-3.9.1.tgz#784e87f328450d1e8151003a9c67733e2b901051" + integrity sha512-H9A60xPqJ1CuC4Ka6qxzXZeU8aNmgOeP5IFqwJbQQwtu2EUYxota3LdsiZWplF7Wgd9tkAd0mdu36nceSaPuYw== + dependencies: + lie "~3.3.0" + pako "~1.0.2" + readable-stream "~2.3.6" + set-immediate-shim "~1.0.1" + +lazystream@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638" + integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== + dependencies: + readable-stream "^2.0.5" + +lie@~3.3.0: + version "3.3.0" + resolved "https://registry.npmmirror.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" + integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== + dependencies: + immediate "~3.0.5" + +listenercount@~1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" + integrity sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ== + +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.npmmirror.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== + +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + integrity sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA== + +lodash.escaperegexp@^4.1.2: + version "4.1.2" + resolved "https://registry.npmmirror.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" + integrity sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw== + +lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.npmmirror.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== + +lodash.groupby@^4.6.0: + version "4.6.0" + resolved "https://registry.npmmirror.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz#0b08a1dcf68397c397855c3239783832df7403d1" + integrity sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.npmmirror.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + +lodash.isfunction@^3.0.9: + version "3.0.9" + resolved "https://registry.npmmirror.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" + integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== + +lodash.isnil@^4.0.0: + version "4.0.0" + resolved "https://registry.npmmirror.com/lodash.isnil/-/lodash.isnil-4.0.0.tgz#49e28cd559013458c814c5479d3c663a21bfaa6c" + integrity sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isundefined@^3.0.1: + version "3.0.1" + resolved "https://registry.npmmirror.com/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz#23ef3d9535565203a66cefd5b830f848911afb48" + integrity sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA== + +lodash.union@^4.6.0: + version "4.6.0" + resolved "https://registry.npmmirror.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + integrity sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +"mkdirp@>=0.5 0": + version "0.5.6" + resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + normalize-wheel@^1.0.1: version "1.0.1" resolved "https://registry.npmmirror.com/normalize-wheel/-/normalize-wheel-1.0.1.tgz#aec886affdb045070d856447df62ecf86146ec45" @@ -97,6 +515,28 @@ nprogress@^0.2.0: resolved "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== +once@^1.3.0, once@^1.4.0: + version "1.4.0" + resolved "https://registry.npmmirror.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +pako@~1.0.2: + version "1.0.11" + resolved "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + query-string@^6.12.1: version "6.14.1" resolved "https://registry.npmmirror.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" @@ -107,6 +547,35 @@ query-string@^6.12.1: split-on-first "^1.0.0" strict-uri-encode "^2.0.0" +readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdir-glob@^1.0.0: + version "1.1.1" + resolved "https://registry.npmmirror.com/readdir-glob/-/readdir-glob-1.1.1.tgz#f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4" + integrity sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA== + dependencies: + minimatch "^3.0.4" + regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" @@ -117,11 +586,57 @@ resize-observer-polyfill@^1.5.0: resolved "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== +rimraf@2: + version "2.7.1" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.npmmirror.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + screenfull@4.2.0: version "4.2.0" resolved "https://registry.npmmirror.com/screenfull/-/screenfull-4.2.0.tgz#d5252a5a0f56504719abbed9ebbcd9208115da03" integrity sha512-qpyI9XbwuMJElWRP5vTgxkFAl4k7HpyhIqBFOZEwX9QBXn0MAuRSpn7LOc6/4CeSwoz61oBu1VPV+2fbIWC+5Q== +select@^1.1.2: + version "1.1.2" + resolved "https://registry.npmmirror.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA== + +set-immediate-shim@~1.0.1: + version "1.0.1" + resolved "https://registry.npmmirror.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + integrity sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ== + +setimmediate@~1.0.4: + version "1.0.5" + resolved "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + split-on-first@^1.0.0: version "1.1.0" resolved "https://registry.npmmirror.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" @@ -132,11 +647,53 @@ strict-uri-encode@^2.0.0: resolved "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +tar-stream@^2.2.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + throttle-debounce@^1.0.1: version "1.1.0" resolved "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-1.1.0.tgz#51853da37be68a155cb6e827b3514a3c422e89cd" integrity sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg== +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tmp@^0.2.0: + version "0.2.1" + resolved "https://registry.npmmirror.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +"traverse@>=0.3.0 <0.4": + version "0.3.9" + resolved "https://registry.npmmirror.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" + integrity sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ== + tslib@2.3.0: version "2.3.0" resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" @@ -149,6 +706,51 @@ uni-simple-router@^1.5.3: dependencies: query-string "^6.12.1" +unzipper@^0.10.11: + version "0.10.11" + resolved "https://registry.npmmirror.com/unzipper/-/unzipper-0.10.11.tgz#0b4991446472cbdb92ee7403909f26c2419c782e" + integrity sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw== + dependencies: + big-integer "^1.6.17" + binary "~0.3.0" + bluebird "~3.4.1" + buffer-indexof-polyfill "~1.0.0" + duplexer2 "~0.1.4" + fstream "^1.0.12" + graceful-fs "^4.2.2" + listenercount "~1.0.1" + readable-stream "~2.3.6" + setimmediate "~1.0.4" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +zip-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.npmmirror.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79" + integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A== + dependencies: + archiver-utils "^2.1.0" + compress-commons "^4.1.0" + readable-stream "^3.6.0" + zrender@5.3.1: version "5.3.1" resolved "https://registry.npmmirror.com/zrender/-/zrender-5.3.1.tgz#fa8e63ac7e719cfd563831fe8c42a9756c5af384"