forked from gzzfw/frontEnd/gzDyh

zhangyongtian
2024-08-17 2ef19aff2a07ec697c1f1c672fbb2bf82cafacc0
合并冲突
2 files added
6 files modified
1264 ■■■■■ changed files
gz-customerSystem/package-lock.json 19 ●●●●● patch | view | raw | blame | history
gz-customerSystem/package.json 1 ●●●● patch | view | raw | blame | history
gz-customerSystem/public/index.html 5 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/filesCheck/newFileCheck.jsx 324 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/visit/component/map.jsx 21 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx 155 ●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/visit/preview.jsx 84 ●●●●● patch | view | raw | blame | history
gz-customerSystem/yarn.lock 655 ●●●●● patch | view | raw | blame | history
gz-customerSystem/package-lock.json
@@ -27,6 +27,7 @@
        "import": "0.0.6",
        "prop-types": "^15.8.1",
        "react": "^17.0.2",
        "react-bmapgl": "^0.2.27",
        "react-custom-scrollbars": "^4.2.1",
        "react-dom": "^17.0.2",
        "react-infinite-scroll-component": "^6.1.0",
@@ -15758,6 +15759,11 @@
        "node": ">=6.4.0"
      }
    },
    "node_modules/mapvgl": {
      "version": "1.0.0-beta.191",
      "resolved": "https://registry.npmmirror.com/mapvgl/-/mapvgl-1.0.0-beta.191.tgz",
      "integrity": "sha512-kbcLSXPSZybMgvJ0RTPEpISC6hpc27P/UwYCFASKLRe6Z7LC0Z11FwNXvQT/jkAK/LdBm2GqsE9i+GQViqRIYg=="
    },
    "node_modules/material-colors": {
      "version": "1.2.6",
      "resolved": "https://registry.npmmirror.com/material-colors/-/material-colors-1.2.6.tgz",
@@ -18943,6 +18949,19 @@
      "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
      "license": "MIT"
    },
    "node_modules/react-bmapgl": {
      "version": "0.2.27",
      "resolved": "https://registry.npmmirror.com/react-bmapgl/-/react-bmapgl-0.2.27.tgz",
      "integrity": "sha512-pCVAuYFwG0rU9j1u9sZ4IWNmUP84pFa5y8nq/lxjzMiQdl04iO39NkTdEg2YRLjF2NF11eigcal/Ne1+zPz4ng==",
      "dependencies": {
        "mapvgl": "^1.0.0-beta.189",
        "shallowequal": "^1.1.0"
      },
      "peerDependencies": {
        "react": ">=16.8.0",
        "react-dom": ">=16.8.0"
      }
    },
    "node_modules/react-clientside-effect": {
      "version": "1.2.6",
      "resolved": "https://registry.npmmirror.com/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz",
gz-customerSystem/package.json
@@ -22,6 +22,7 @@
    "import": "0.0.6",
    "prop-types": "^15.8.1",
    "react": "^17.0.2",
    "react-bmapgl": "^0.2.27",
    "react-custom-scrollbars": "^4.2.1",
    "react-dom": "^17.0.2",
    "react-infinite-scroll-component": "^6.1.0",
gz-customerSystem/public/index.html
@@ -2,8 +2,8 @@
 * @Company: hugeInfo
 * @Author: ldh
 * @Date: 2022-02-18 14:58:23
 * @LastEditTime: 2023-05-12 19:19:14
 * @LastEditors: lwh
 * @LastEditTime: 2024-08-17 11:55:06
 * @LastEditors: dminyi 1301963064@qq.com
 * @Version: 1.0.0
 * @Description: 
-->
@@ -34,6 +34,7 @@
        <title>白云区矛盾纠纷多元化解平台</title>
        <script type="text/javascript" src="http://120.79.193.119:8000/pageoffice/pageoffice.js"></script>
        <script type="text/javascript" src="./locationSelect.js"></script>
        <script type="text/javascript" src="//api.map.baidu.com/api?type=webgl&v=1.0&ak=13i28TcWWSbyYIqjHaJceqQbZa1dFlOt"></script>
        <script>
            window.onload = () => {
                document.getElementById('loader-wrapper').remove();
gz-customerSystem/src/views/filesCheck/newFileCheck.jsx
New file
@@ -0,0 +1,324 @@
/*
 * @Company: hugeInfo
 * @Author: ldh
 * @Date: 2022-03-11 11:03:44
 * @LastEditTime: 2024-08-17 17:42:03
 * @LastEditors: dminyi 1301963064@qq.com
 * @Version: 1.0.0
 * @Description: 大厅来访材料附件查看
 * 附件类型对照
    NULL("22_00017-0","未分类"),
    AUDIO("22_00017-1", "音频"),
    VIDEO("22_00017-2", "视频"),
    IMAGE("22_00017-3", "图片"),
    WORD("22_00017-4", "Word文档"),
    EXCEL("22_00017-5", "Excel表格"),
    PDF("22_00017-6", "PDF"),
    TXT("22_00017-7", "txt文本"),
    ZIP("22_00017--8", "压缩文件"),
    POWERPOINT("22_00017-9", "PowerPoint"),
    UNKNOWN("22_00017-99", "其它文件");
 */
import React, { useState, useEffect, useRef } from 'react';
import { Button, Menu, Tooltip } from 'antd';
import { useSearchParams } from 'react-router-dom';
import {
    FolderOpenOutlined,
    FolderOutlined,
    FileOutlined,
    FileImageOutlined,
    FilePdfOutlined,
    FileWordOutlined,
    FileExcelOutlined,
    RotateRightOutlined,
    RotateLeftOutlined,
    DownloadOutlined,
    LeftOutlined,
    RightOutlined,
} from '@ant-design/icons';
import * as $$ from '../../utils/utility';
const { SubMenu } = Menu;
// 获取附件
function getFileListDataApi(submitData) {
    return $$.ax.request({ url: `caseInfo/listCaseFile?caseId=${submitData}`, type: 'get', service: 'mediate' });
}
const NewFileCheck = ({ caseId }) => {
    let appUrl = $$.appUrl;
    const [searchParams] = useSearchParams();
    const fileId = searchParams.get('fileId');
    const [data, setData] = useState([]);
    const [openKeys, setOpenKeys] = useState([]);
    // files数组
    const [files, setFiles] = useState([{}]);
    // 当前点击的file的index
    const [fileIndex, setFileIndex] = useState(0);
    const imgBgRef = useRef();
    const imgRef = useRef();
    // 图片旋转
    function handleRotateImg(type) {
        if (!imgRef || !imgRef.current) {
            return false;
        }
        let transform = imgRef.current.style.transform,
            reg = /(-)?[0-9][0-9]*/g,
            arr = transform.split('rotate'),
            rotate = Number(transform.match(reg)[4] || 0),
            num = 0;
        if (type === 'right') {
            num = rotate + 90;
        } else {
            num = rotate + -90;
        }
        imgRef.current.style.transform = `${arr[0]}rotate(${num}deg)`;
    }
    // 监听图片滚动事件放大,缩小
    function imgScrollFunc(e) {
        if (!imgRef || !imgRef.current) {
            return false;
        }
        let transform = imgRef.current.style.transform,
            reg = /\((.+?)\)/g,
            scale3d = transform.match(reg)[0],
            scale3dNum = scale3d.substring(1, 2);
        let num = Number(scale3dNum);
        if (e.wheelDelta) {
            //判断浏览器IE,谷歌滑轮事件
            if (e.wheelDelta > 0) {
                //当滑轮向上滚动时
                num = num + 1;
            }
            if (e.wheelDelta < 0) {
                //当滑轮向下滚动时
                num = num - 1;
            }
        } else if (e.detail) {
            //Firefox滑轮事件
            if (e.detail > 0) {
                //当滑轮向上滚动时
                num = num + 1;
            }
            if (e.detail < 0) {
                //当滑轮向下滚动时
                num = num - 1;
            }
        }
        let res = `scale3d(${num < 1 ? 1 : num},${num < 1 ? 1 : num},1) rotate${transform.match(reg)[1]}`;
        imgRef.current.style.transform = res;
    }
    // 判断文件的icon
    function iconType(fileType) {
        let result = <FileOutlined />;
        if (fileType === '22_00017-3') {
            result = <FileImageOutlined />;
        }
        if (fileType === '22_00017-5') {
            result = <FileExcelOutlined />;
        }
        if (fileType === '22_00017-4') {
            result = <FileWordOutlined />;
        }
        if (fileType === '22_00017-6') {
            result = <FilePdfOutlined />;
        }
        return result;
    }
    // 切换下一个,上一个
    async function handleNext(type) {
        global.setSpinning(true);
        let index = fileIndex + (type === 'next' ? 1 : -1);
        if (files[index]) {
            setFileIndex(index);
        } else {
            global.setSpinning(false);
            if (index < 0) {
                setFileIndex(files.length - 1);
                return;
            }
            setFileIndex(0);
        }
    }
    // 获取附件数据
    async function getFileListData() {
        global.setSpinning(true);
        const res = await getFileListDataApi(caseId || searchParams.get('caseId'));
        global.setSpinning(false);
        if (res.type) {
            let resData = res.data?.dataList || [];
            let arr = [];
            let filesArr = [];
            let index = 0;
            resData.forEach((x, t) => {
                arr.push(x.ownerTypeName);
                filesArr = filesArr.concat(x.fileList || []);
            });
            forEach: for (let i = 0; i < filesArr.length - 1; i++) {
                if (filesArr[i].id === fileId) {
                    index = i;
                    break forEach;
                }
            }
            setData({ data: resData, caseNo: res.data?.caseNo });
            setFileIndex(index);
            setFiles(filesArr);
            setOpenKeys(arr);
        }
    }
    useEffect(() => {
        getFileListData();
    }, []);
    // 监听鼠标滚动事件
    useEffect(() => {
        if (imgRef.current) {
            imgRef.current.onload = () => {
                imgBgRef.current.onmousewheel = imgScrollFunc;
            };
        }
    }, [files]);
    // 切换文件加载
    useEffect(() => {
        if (imgRef.current) {
            imgRef.current.src = `${appUrl.fileUrl}${appUrl.fileShowUrl}${files[fileIndex]?.id}`;
            imgRef.current.onload = () => {
                global.setSpinning(false, 'only');
            };
        } else {
            global.setSpinning(false, 'only');
        }
    }, [appUrl.fileShowUrl, fileIndex, appUrl.baseUrl, files]);
    return (
        <>
            <nav className="filesCheck-nav">
                <Menu
                    className="filesCheck-nav-menu"
                    style={{ width: '200px' }}
                    onOpenChange={(openKeys) => setOpenKeys(openKeys)}
                    mode="inline"
                    selectedKeys={[files[fileIndex]?.id]}
                    openKeys={openKeys}
                >
                    {data.data?.map((x, t) => {
                        return (
                            <SubMenu
                                key={x.ownerTypeName}
                                icon={openKeys.includes(x.ownerTypeName) ? <FolderOpenOutlined /> : <FolderOutlined />}
                                title={x.ownerTypeName}
                            >
                                {x.fileList?.map((y, z) => {
                                    return (
                                        <Menu.Item
                                            onClick={async () => {
                                                global.setSpinning(true);
                                                for (let i = 0; i < files.length; i++) {
                                                    if (files[i].id === y.id) {
                                                        setFileIndex(i);
                                                        break;
                                                    }
                                                }
                                            }}
                                            icon={iconType(y.cat)}
                                            key={y.id}
                                        >
                                            {y.name}
                                        </Menu.Item>
                                    );
                                })}
                            </SubMenu>
                        );
                    })}
                </Menu>
            </nav>
            {files[fileIndex] ? (
                <main className="filesCheck-main">
                    {/* 头部操作区 */}
                    <div className="filesCheck-main-action">
                        <div className="filesCheck-main-action-title">
                            <h3>{files[fileIndex]?.name}</h3>
                        </div>
                        {files[fileIndex]?.cat === '22_00017-3' && (
                            <>
                                <div className="filesCheck-main-action-item">
                                    <Tooltip title="左转">
                                        <RotateLeftOutlined onClick={() => handleRotateImg('left')} />
                                    </Tooltip>
                                </div>
                                <div className="filesCheck-main-action-item">
                                    <Tooltip title="右转">
                                        <RotateRightOutlined onClick={() => handleRotateImg('right')} />
                                    </Tooltip>
                                </div>
                            </>
                        )}
                        <div className="filesCheck-main-action-item">
                            <Tooltip title="下载">
                                <a href={`${appUrl.fileUrl}${appUrl.fileDownUrl}${files[fileIndex]?.id}`}>
                                    <DownloadOutlined />
                                </a>
                            </Tooltip>
                        </div>
                    </div>
                    {files[fileIndex]?.cat === '22_00017-3' ? (
                        <div className="filesCheck-main-imgBg" ref={imgBgRef}>
                            <img
                                ref={imgRef}
                                style={{ transform: 'scale3d(1,1,1) rotate(0deg)' }}
                                className="filesCheck-main-img"
                                src={`${appUrl.fileUrl}${appUrl.fileShowUrl}${files[fileIndex]?.id}`}
                                alt="图片加载中..."
                            />
                        </div>
                    ) : (
                        <div className="filesCheck-main-other">
                            <div className="filesCheck-main-other-icon">{iconType(files[fileIndex]?.cat)}</div>
                            <div className="filesCheck-main-other-text">
                                您所查看的附件不支持预览,请下载查看{files[fileIndex]?.cat === '22_00017-6' ? '或跳转预览' : ''}。
                            </div>
                            <div>
                                {files[fileIndex]?.cat === '22_00017-6' && (
                                    <Button
                                        className="public-buttonMargin"
                                        onClick={() => window.open(`${appUrl.fileUrl}${appUrl.fileShowUrl}${files[fileIndex]?.id}`)}
                                    >
                                        跳转查看
                                    </Button>
                                )}
                                <a href={`${appUrl.fileUrl}${appUrl.fileDownUrl}${files[fileIndex]?.id}`}>
                                    <Button type="primary">下载</Button>
                                </a>
                            </div>
                        </div>
                    )}
                    <div className="filesCheck-imgLeft" onClick={() => handleNext('back')}>
                        <LeftOutlined />
                    </div>
                    <div className="filesCheck-imgRight" onClick={() => handleNext('next')}>
                        <RightOutlined />
                    </div>
                </main>
            ) : (
                <div style={{ width: '100%', paddingTop: '20%' }}>{$$.MyEmpty()}</div>
            )}
        </>
    );
};
export default NewFileCheck;
gz-customerSystem/src/views/register/visit/component/map.jsx
New file
@@ -0,0 +1,21 @@
/*
 * @Author: dminyi 1301963064@qq.com
 * @Date: 2024-08-17 14:41:57
 * @LastEditors: dminyi 1301963064@qq.com
 * @LastEditTime: 2024-08-17 16:25:27
 * @FilePath: \gzDyh\gz-customerSystem\src\views\register\visit\component\map.jsx
 * @Description: 地图
 */
import React from 'react';
import { Map, Marker, NavigationControl, InfoWindow } from 'react-bmapgl';
export default function MapView() {
    return (
        <div>
            <Map center={{ lng: 116.402544, lat: 39.928216 }} zoom="11">
                <Marker position={{ lng: 116.402544, lat: 39.928216 }} />
                <NavigationControl />
                <InfoWindow position={{ lng: 113.27, lat: 23.12 }} text="广州市" title="地标" />
            </Map>
        </div>
    )
}
gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
@@ -1,12 +1,11 @@
import React, { useState, useEffect, useRef } from "react";
import { Row, Col, Space, Tooltip, Button } from 'antd';
import { Form, Input, Radio, Select, DatePicker, Cascader, Modal, Upload } from '@arco-design/web-react';
import { Form, Input, Radio, Select, DatePicker, Cascader, Modal, Upload, InputNumber } from '@arco-design/web-react';
import "@arco-design/web-react/dist/css/arco.css";
import MyModal from '../../../../components/MyModal';
import PersonCard from '../../../../components/personCard';
import * as $$ from '../../../../utils/utility';
import {
  question1, image, link,
  question1,
  applyMaterials,
  applyMaterials_active,
  evidenceMaterials,
@@ -21,14 +20,9 @@
import AgentDialog from "./agentDialog";
import DetailDialog from "./detailDialog";
import FilesCheck from '../../../filesCheck';
import {
  IconFileAudio,
  IconClose,
  IconFaceFrownFill,
  IconUpload,
  IconLink,
} from '@arco-design/web-react/icon';
import NewFileCheck from '../../../filesCheck/newFileCheck';
import { IconLink } from '@arco-design/web-react/icon';
import MapView from './map'
const RadioGroup = Radio.Group;// 根据调解案号获取纠纷登记信息
const FormItem = Form.Item;
@@ -112,6 +106,9 @@
  const [selectedAddress, setSelectedAddress] = useState('');
  const [fileTip, setFileTip] = useState('0');
  const [detailVisabled, setDetailVisabled] = useState(false);//查看信息弹窗控制
  const [mapView, setMapView] = useState(false);
  const formRef = useRef();
  const addressOptions = [
    { label: '地址1', value: 'address1' },
@@ -136,7 +133,7 @@
  const formType = (type) => {
    if (type === '09_01010-1') {
      //自然人
      //申请材料
      return (
        <>
          <Col span={24}>
@@ -152,17 +149,77 @@
                height={158}
                onDrop={(e) => {
                }}
                onChange={(v) => { v.length > 0 && setFileTip(v.length); console.log(v, 'vvvvvvv') }}
                showUploadList={{
                  // Please dont remove this comment
                  fileIcon: <IconLink style={{ color: '#1D2129' }} />,
                }}
                onChange={(v) => {
                  setFileTip((prevLength) => {
                    if (v.length > 0) {
                      console.log(v, 'vvvvvvv');
                      return v.length;
                    }
                    return v.length;
                  });
                }}
                tip='支持png、 jpg、excel、word、pdf等格式的文件上传,每次上传大小不超过10M'
              />
            </FormItem>
            {fileTip && <div style={{ position: 'absolute', top: '203px', left: '16px', color: '#86909C' }}> 申请材料累计上传:<span style={{ color: '#1A6FB8' }}>{fileTip}</span></div>}
            {fileTip > 0 && <div style={{ position: 'absolute', top: '203px', left: '16px', color: '#86909C' }}> 申请材料累计上传:<span style={{ color: '#1A6FB8' }}>{fileTip}</span></div>}
          </Col>
        </>
      )
    }
    if (type === '09_01010-2') {
      //证据材料
      return (
        <>
          <Col span={24}>
            <FormItem
              field='file'
            >
              <Upload
                drag
                multiple
                accept='image/*'
                action='/'
                height={158}
                onDrop={(e) => {
                }}
                showUploadList={{
                  // Please dont remove this comment
                  fileIcon: <IconLink style={{ color: '#1D2129' }} />,
                }}
                onChange={(v) => {
                  setFileTip((prevLength) => {
                    if (v.length > 0) {
                      console.log(v, 'vvvvvvv');
                      return v.length;
                    }
                    return v.length;
                  });
                }}
                tip='支持png、 jpg、excel、word、pdf等格式的文件上传,每次上传大小不超过10M'
              />
            </FormItem>
            {fileTip > 0 && <div style={{ position: 'absolute', top: '203px', left: '16px', color: '#86909C' }}> 证据材料累计上传:<span style={{ color: '#1A6FB8' }}>{fileTip}</span></div>}
          </Col>
        </>
      )
    }
  }
  const formItemLayout = {
    labelCol: {
      span: 4,
    },
    wrapperCol: {
      span: 17,
    },
  };
  const peopleMap = {
    0: '申请方',
@@ -176,7 +233,7 @@
      caseNo: 'A20230101',
      judicNo: '申请材料',
      perClassName: '李晓明的纠纷化解申请表、身份证...',
      inputUserName: '张三',
      inputUserName: '0',
      mediateUserName: '2024-7-12 12:00',
      judgeName: '王五',
      mediator: '赵六',
@@ -197,7 +254,7 @@
      caseNo: 'A20230101',
      judicNo: '证据材料',
      perClassName: '李晓明的纠纷化解申请表、身份证...',
      inputUserName: '张三',
      inputUserName: '0',
      mediateUserName: '2024-7-12 12:00',
      judgeName: '王五',
      mediator: '赵六',
@@ -223,7 +280,7 @@
      title: '序号',
      dataIndex: 'caseNo',
      key: 'caseNo',
      width: 60,
      width: 100,
      render: (text, record, index) => <span>{index + 1}</span>,
    },
    {
@@ -238,6 +295,12 @@
      dataIndex: 'inputUserName',
      key: 'perClassName',
      width: 180,
      render: (text) => (
        <>
          {text}份
        </>
      )
    },
    {
@@ -367,8 +430,13 @@
    setSelectedAddress(value);
  };
  return (
    <div className='dataSync-page'>
      <Col span={24} style={{ display: 'flex', alignItems: 'center' }}>
        <Space size='small'>
          <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>当事人信息</h5>
@@ -422,7 +490,7 @@
          </Col>
          <Col span={8}>
            <FormItem label='来访人数(人)' field='visitingNumber'>
              <Input placeholder='请填写' />
              <InputNumber placeholder='请填写' />
            </FormItem>
          </Col>
          <Col span={8}>
@@ -467,6 +535,7 @@
                placeholder='选择纠纷发生地的详细地址'
                searchButton='选择'
                readOnly={true} // 设置为只读,防止直接编辑
                onSearch={() => setMapView(true)}
              />
            </FormItem>
          </Col>
@@ -484,13 +553,13 @@
          </Col>
          <Col span={8}>
            <FormItem label='涉及人数(人)' field='peopleNumber'>
              <Input placeholder='请填写' />
              <InputNumber placeholder='请填写' />
            </FormItem>
          </Col>
          <Col span={8}>
            <FormItem label='涉及金额(元)' field='money'>
              <Input placeholder='请填写' />
              <InputNumber placeholder='请填写' />
            </FormItem>
          </Col>
          <Col span={24}>
@@ -581,7 +650,8 @@
          >
            <Upload
              drag
              multiple
              // multiple
              limit={1}
              accept='image/*'
              // action='/'
              onDrop={(e) => {
@@ -679,7 +749,7 @@
      </Modal>
      <Modal style={{ width: '1200px' }} visible={filesCheck} onCancel={() => setFilesCheck(false)} footer={null} title='查看事件材料' centered>
        <div className="mediationWindow-modal-main" style={{ display: 'flex' }}>
          <FilesCheck />
          <NewFileCheck />
        </div>
      </Modal>
      <Modal
@@ -715,8 +785,47 @@
      >
        <DetailDialog />
      </Modal>
      <Modal style={{ width: '1200px' }} visible={mapView} onCancel={() => setMapView(false)} footer={null} title='选择纠纷发生地' centered>
        <Row gutter={[16, 0]}>
          <Col span={16}>
            <Form
              ref={formRef}
              requiredSymbol={false}
              layout='inline'
              {...formItemLayout}
              style={{ marginBottom: '8px' }}
            >
              <FormItem
                label='查询位置:'
                field='name'
                onChange={(e) => console.log(e.target.value, 'vvv')}
              >
                <Input placeholder='请输入' style={{ width: '510px' }} />
              </FormItem>
              <Button style={{ marginRight: '20px' }}>
                重置
              </Button>
              <Button
                type="primary"
              // onClick={handleSave}
              >
                查询
              </Button>
            </Form>
            <MapView />
          </Col>
          <Col span={8}>
            <div style={{ color: '#86909C', marginTop: '43px' }}>附近地址</div>
          </Col>
        </Row>
      </Modal>
    </div>
  )
}
export default VisitorRegister;
export default VisitorRegister;
gz-customerSystem/src/views/register/visit/preview.jsx
@@ -2,7 +2,7 @@
 * @Author: dminyi 1301963064@qq.com
 * @Date: 2024-08-13 15:19:57
 * @LastEditors: dminyi 1301963064@qq.com
 * @LastEditTime: 2024-08-16 17:09:12
 * @LastEditTime: 2024-08-17 17:03:50
 * @FilePath: \gzDyh\gz-customerSystem\src\views\basicInformation\organization\preview.jsx
 * @Description: 预览信息
 */
@@ -27,7 +27,7 @@
            caseNo: 'A20230101',
            judicNo: '申请材料',
            perClassName: '李晓明的纠纷化解申请表、身份证...',
            inputUserName: '张三',
            inputUserName: '0',
            mediateUserName: '2024-7-12 12:00',
            judgeName: '王五',
            mediator: '赵六',
@@ -48,7 +48,7 @@
            caseNo: 'A20230101',
            judicNo: '证据材料',
            perClassName: '李晓明的纠纷化解申请表、身份证...',
            inputUserName: '张三',
            inputUserName: '0',
            mediateUserName: '2024-7-12 12:00',
            judgeName: '王五',
            mediator: '赵六',
@@ -74,7 +74,7 @@
            title: '序号',
            dataIndex: 'caseNo',
            key: 'caseNo',
            width: 60,
            width: 100,
            render: (text, record, index) => <span>{index + 1}</span>,
        },
        {
@@ -89,6 +89,11 @@
            dataIndex: 'inputUserName',
            key: 'perClassName',
            width: 180,
            render: (text) => (
                <>
                    {text}份
                </>
            )
        },
        {
@@ -134,33 +139,38 @@
                <div className="line middle-line"></div>
                <div className="line right-line"></div>
            </div>
            <table border="1" align="center" cellpadding="8" className="table">
            <table border="1" align="center" cellpadding="6" className="table">
                <tr>
                    <th bgcolor="#F7F8FA" className="table-title" width="120">姓名</th>
                    <td width='380'><div style={{ display: 'flex' }}><div>李晓明</div><div className="title-personRemark">自然人</div></div></td>
                    <th bgcolor="#F7F8FA" className="table-title" width="120">联系方式</th>
                    <td width='380'>19</td>
                    <td width='380'>13591990202</td>
                    <th bgcolor="#F7F8FA" className="table-title" width='140'>性别</th>
                    <td>汉</td>
                    <td>女</td>
                    <td rowspan="4" width="112" height='147' style={{ padding: '0px' }}>
                        <img border="0" src={person} alt="" style={{ width: '100%', height: '100%' }} />
                        <img border="0" src={person} alt="" style={{
                            width: '100%',
                            height: '100%',
                            objectFit: 'cover', // 保持原始宽高比并填充整个容器
                            objectPosition: 'center', // 图片居中显示
                        }} />
                    </td>
                </tr>
                <tr>
                    <th bgcolor="#F7F8FA" className="table-title">证件类型</th>
                    <td>19970000</td>
                    <td>身份证</td>
                    <th bgcolor="#F7F8FA" className="table-title">证件号码</th>
                    <td>团员</td>
                    <td>410106198802021148</td>
                    <th bgcolor="#F7F8FA" className="table-title">民族</th>
                    <td>本科</td>
                    <td>汉族</td>
                </tr>
                <tr>
                    <th bgcolor="#F7F8FA" className="table-title">联系地址</th>
                    <td>网络工程</td>
                    <td>广东科贸服务有限公司</td>
                    <th bgcolor="#F7F8FA" className="table-title">户籍地址</th>
                    <td>淮南师范学院</td>
                    <td>广州市天河区棠下街120号</td>
                    <th bgcolor="#F7F8FA" className="table-title" rowspan="2" >是否有个人极端倾向</th>
                    <td rowspan="2" >237483</td>
                    <td rowspan="2" >否</td>
                </tr>
                <tr>
                    <th bgcolor="#F7F8FA" className="table-title">工作单位</th>
@@ -173,49 +183,49 @@
                    </td>
                </tr>
            </table>
            <table border="1" align="center" cellpadding="8" className="table" style={{ marginTop: '20px', marginBottom: '20px' }}>
            <table border="1" align="center" cellpadding="6" className="table" style={{ marginTop: '20px', marginBottom: '20px' }}>
                <tr>
                    <th bgcolor="#F7F8FA" className="table-title" width="120">姓名</th>
                    <td width='380'><div style={{ display: 'flex' }}><div>李巧凤</div><div className="title-personRemark">代理人</div></div></td>
                    <th bgcolor="#F7F8FA" className="table-title" width="120">联系方式</th>
                    <td width='380'>19</td>
                    <td width='380'>13591990202</td>
                    <th bgcolor="#F7F8FA" className="table-title" width="140">性别</th>
                    <td>汉</td>
                    <td>女</td>
                    <td rowspan="4" width="112" height='147' style={{ padding: '0px' }}>
                        <img border="0" src={person} alt="" style={{ width: '100%', height: '100%' }} />
                    </td>
                </tr>
                <tr>
                    <th bgcolor="#F7F8FA" className="table-title">证件类型</th>
                    <td>19970000</td>
                    <td>身份证</td>
                    <th bgcolor="#F7F8FA" className="table-title">证件号码</th>
                    <td>团员</td>
                    <td>410106198802021148</td>
                    <th bgcolor="#F7F8FA" className="table-title">民族</th>
                    <td>本科</td>
                    <td>汉族</td>
                </tr>
                <tr>
                    <th bgcolor="#F7F8FA" className="table-title">联系地址</th>
                    <td>网络工程</td>
                    <td>广州市天河区棠下街120号</td>
                    <th bgcolor="#F7F8FA" className="table-title">户籍地址</th>
                    <td>淮南师范学院</td>
                    <td>广州市天河区棠下街120号</td>
                    <th bgcolor="#F7F8FA" className="table-title" >是否有个人极端倾向</th>
                    <td>237483</td>
                    <td>否</td>
                </tr>
                <tr>
                    <th bgcolor="#F7F8FA" className="table-title">工作单位</th>
                    <td>玩,拆,装</td>
                    <td>广东科贸服务有限公司</td>
                    <th bgcolor="#F7F8FA" className="table-title">委托关系</th>
                    <td>皖</td>
                    <td>亲属</td>
                    <th bgcolor="#F7F8FA" className="table-title">委托类型</th>
                    <td>皖</td>
                    <td>一般授权代理</td>
                </tr>
                <tr>
                    <th bgcolor="#F7F8FA" className="table-title">代理对象</th>
                    <td>玩,拆,装</td>
                    <td>李晓明</td>
                    <th bgcolor="#F7F8FA" className="table-title">身份证明材料</th>
                    <td>
                        <a href="your-link-here.html" target="_blank">
                            <img src={link} alt="" className="title-file" />李晓明身份证明材料.pdf
                            <img src={link} alt="" className="title-file" />李巧凤身份证明材料.pdf
                        </a>
                    </td>
                    <th bgcolor="#F7F8FA" className="table-title">代理人授权委托书</th>
@@ -233,36 +243,36 @@
                <div className="line middle-line"></div>
                <div className="line right-line"></div>
            </div>
            <table border="1" align="center" cellpadding="8" className="table" style={{ marginTop: '20px', marginBottom: '20px' }}>
            <table border="1" align="center" cellpadding="6" className="table" style={{ marginTop: '20px', marginBottom: '20px' }}>
                <tr>
                    <th bgcolor="#F7F8FA" className="table-title" width="120">企业名称</th>
                    <td width='380'><div style={{ display: 'flex' }}><div>广东好又多贸易有限公司</div><div className="title-personRemark">法人</div></div></td>
                    <th bgcolor="#F7F8FA" className="table-title" width="120">联系方式</th>
                    <td width='380'>19</td>
                    <td width='380'>13091990202</td>
                    <th bgcolor="#F7F8FA" className="table-title" width="120">企业所在地</th>
                    <td>汉</td>
                    <td>广州市天河区棠下街120号</td>
                </tr>
                <tr>
                    <th bgcolor="#F7F8FA" className="table-title">企业类型</th>
                    <td>19970000</td>
                    <td>餐饮服务</td>
                    <th bgcolor="#F7F8FA" className="table-title">法定代表人</th>
                    <td>团员</td>
                    <td>江照月</td>
                    <th bgcolor="#F7F8FA" className="table-title">统一社会信用代码</th>
                    <td>本科</td>
                    <td>914401015454Z</td>
                </tr>
                <tr>
                    <th bgcolor="#F7F8FA" className="table-title">住所</th>
                    <td>网络工程</td>
                    <td>广州市天河区棠下街120号</td>
                    <th bgcolor="#F7F8FA" className="table-title">企业登记材料</th>
                    <td>
                        <a href="your-link-here.html" target="_blank">
                            <img src={link} alt="" className="title-file" />李晓明身份证明材料.pdf
                            <img src={link} alt="" className="title-file" />广东好又多贸易有限公司营业执照副本.pdf
                        </a>
                    </td>
                    <th bgcolor="#F7F8FA" className="table-title" >法定代表人身份证明材料</th>
                    <td>
                        <a href="your-link-here.html" target="_blank">
                            <img src={link} alt="" className="title-file" />李晓明身份证明材料.pdf
                            <img src={link} alt="" className="title-file" />江照月法人身份证明.pdf
                        </a>
                    </td>
                </tr>
gz-customerSystem/yarn.lock
@@ -2360,14 +2360,6 @@
  resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz"
  integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
  version "0.3.25"
  resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz"
  integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
  dependencies:
    "@jridgewell/resolve-uri" "^3.1.0"
    "@jridgewell/sourcemap-codec" "^1.4.14"
"@jridgewell/trace-mapping@0.3.9":
  version "0.3.9"
  resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz"
@@ -2375,6 +2367,14 @@
  dependencies:
    "@jridgewell/resolve-uri" "^3.0.3"
    "@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
  version "0.3.25"
  resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz"
  integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
  dependencies:
    "@jridgewell/resolve-uri" "^3.1.0"
    "@jridgewell/sourcemap-codec" "^1.4.14"
"@leichtgewicht/ip-codec@^2.0.1":
  version "2.0.5"
@@ -2409,7 +2409,7 @@
  resolved "https://registry.npmmirror.com/@mapbox/martini/-/martini-0.2.0.tgz"
  integrity sha512-7hFhtkb0KTLEls+TRw/rWayq5EeHtTaErgm/NskVoXmtgAQu/9D299aeyj6mzAR/6XUnYRp2lU+4IcrYRFjVsQ==
"@mapbox/point-geometry@^0.1.0", "@mapbox/point-geometry@~0.1.0", "@mapbox/point-geometry@0.1.0":
"@mapbox/point-geometry@0.1.0", "@mapbox/point-geometry@^0.1.0", "@mapbox/point-geometry@~0.1.0":
  version "0.1.0"
  resolved "https://registry.npmmirror.com/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz"
  integrity sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==
@@ -2444,7 +2444,7 @@
    "@nodelib/fs.stat" "2.0.5"
    run-parallel "^1.1.9"
"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
  version "2.0.5"
  resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
  integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
@@ -2920,15 +2920,15 @@
  resolved "https://registry.npmmirror.com/@types/estree/-/estree-0.0.41.tgz"
  integrity sha512-rIAmXyJlqw4KEBO7+u9gxZZSQHaCNnIzYrnNmYVpgfJhxTqO0brCX0SYpqUTkVI5mwwUwzmtspLBGBKroMeynA==
"@types/estree@^1.0.5":
  version "1.0.5"
  resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz"
  integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
"@types/estree@0.0.39":
  version "0.0.39"
  resolved "https://registry.npmmirror.com/@types/estree/-/estree-0.0.39.tgz"
  integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
"@types/estree@^1.0.5":
  version "1.0.5"
  resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz"
  integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18":
  version "4.17.28"
@@ -3284,7 +3284,7 @@
    semver "^7.3.7"
    tsutils "^3.21.0"
"@typescript-eslint/utils@^5.58.0", "@typescript-eslint/utils@5.62.0":
"@typescript-eslint/utils@5.62.0", "@typescript-eslint/utils@^5.58.0":
  version "5.62.0"
  resolved "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.62.0.tgz"
  integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==
@@ -3311,7 +3311,7 @@
  resolved "https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz"
  integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
"@webassemblyjs/ast@^1.12.1", "@webassemblyjs/ast@1.12.1":
"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1":
  version "1.12.1"
  resolved "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.12.1.tgz"
  integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==
@@ -3412,7 +3412,7 @@
    "@webassemblyjs/wasm-gen" "1.12.1"
    "@webassemblyjs/wasm-parser" "1.12.1"
"@webassemblyjs/wasm-parser@^1.12.1", "@webassemblyjs/wasm-parser@1.12.1":
"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1":
  version "1.12.1"
  resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz"
  integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==
@@ -3503,27 +3503,12 @@
  resolved "https://registry.npmmirror.com/acorn/-/acorn-7.4.1.tgz"
  integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
acorn@^8.2.4:
acorn@^8.2.4, acorn@^8.4.1:
  version "8.7.0"
  resolved "https://registry.npmmirror.com/acorn/-/acorn-8.7.0.tgz"
  integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
acorn@^8.4.1:
  version "8.7.0"
  resolved "https://registry.npmmirror.com/acorn/-/acorn-8.7.0.tgz"
  integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
acorn@^8.7.1:
  version "8.12.1"
  resolved "https://registry.npmmirror.com/acorn/-/acorn-8.12.1.tgz"
  integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==
acorn@^8.8.2:
  version "8.12.1"
  resolved "https://registry.npmmirror.com/acorn/-/acorn-8.12.1.tgz"
  integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==
acorn@^8.9.0:
acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0:
  version "8.12.1"
  resolved "https://registry.npmmirror.com/acorn/-/acorn-8.12.1.tgz"
  integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==
@@ -3572,14 +3557,7 @@
  resolved "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz"
  integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
ajv-keywords@^5.0.0:
  version "5.1.0"
  resolved "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz"
  integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==
  dependencies:
    fast-deep-equal "^3.1.3"
ajv-keywords@^5.1.0:
ajv-keywords@^5.0.0, ajv-keywords@^5.1.0:
  version "5.1.0"
  resolved "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz"
  integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==
@@ -3596,37 +3574,7 @@
    json-schema-traverse "^0.4.1"
    uri-js "^4.2.2"
ajv@^8.0.0:
  version "8.17.1"
  resolved "https://registry.npmmirror.com/ajv/-/ajv-8.17.1.tgz"
  integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==
  dependencies:
    fast-deep-equal "^3.1.3"
    fast-uri "^3.0.1"
    json-schema-traverse "^1.0.0"
    require-from-string "^2.0.2"
ajv@^8.6.0:
  version "8.17.1"
  resolved "https://registry.npmmirror.com/ajv/-/ajv-8.17.1.tgz"
  integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==
  dependencies:
    fast-deep-equal "^3.1.3"
    fast-uri "^3.0.1"
    json-schema-traverse "^1.0.0"
    require-from-string "^2.0.2"
ajv@^8.8.0:
  version "8.17.1"
  resolved "https://registry.npmmirror.com/ajv/-/ajv-8.17.1.tgz"
  integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==
  dependencies:
    fast-deep-equal "^3.1.3"
    fast-uri "^3.0.1"
    json-schema-traverse "^1.0.0"
    require-from-string "^2.0.2"
ajv@^8.9.0:
ajv@^8.0.0, ajv@^8.6.0, ajv@^8.8.0, ajv@^8.9.0:
  version "8.17.1"
  resolved "https://registry.npmmirror.com/ajv/-/ajv-8.17.1.tgz"
  integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==
@@ -3795,6 +3743,13 @@
  resolved "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz"
  integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
aria-query@5.1.3, aria-query@^5.0.0:
  version "5.1.3"
  resolved "https://registry.npmmirror.com/aria-query/-/aria-query-5.1.3.tgz"
  integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==
  dependencies:
    deep-equal "^2.0.5"
aria-query@^4.2.2:
  version "4.2.2"
  resolved "https://registry.npmmirror.com/aria-query/-/aria-query-4.2.2.tgz"
@@ -3802,13 +3757,6 @@
  dependencies:
    "@babel/runtime" "^7.10.2"
    "@babel/runtime-corejs3" "^7.10.2"
aria-query@^5.0.0, aria-query@5.1.3:
  version "5.1.3"
  resolved "https://registry.npmmirror.com/aria-query/-/aria-query-5.1.3.tgz"
  integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==
  dependencies:
    deep-equal "^2.0.5"
array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1:
  version "1.0.1"
@@ -4351,16 +4299,7 @@
    strip-ansi "^3.0.0"
    supports-color "^2.0.0"
chalk@^2.4.1:
  version "2.4.2"
  resolved "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz"
  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
  dependencies:
    ansi-styles "^3.2.1"
    escape-string-regexp "^1.0.5"
    supports-color "^5.3.0"
chalk@^2.4.2:
chalk@^2.4.1, chalk@^2.4.2:
  version "2.4.2"
  resolved "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz"
  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -4377,31 +4316,7 @@
    ansi-styles "^4.1.0"
    supports-color "^7.1.0"
chalk@^4.0.0:
  version "4.1.2"
  resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz"
  integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
  dependencies:
    ansi-styles "^4.1.0"
    supports-color "^7.1.0"
chalk@^4.0.2:
  version "4.1.2"
  resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz"
  integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
  dependencies:
    ansi-styles "^4.1.0"
    supports-color "^7.1.0"
chalk@^4.1.0:
  version "4.1.2"
  resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz"
  integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
  dependencies:
    ansi-styles "^4.1.0"
    supports-color "^7.1.0"
chalk@^4.1.2:
chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2:
  version "4.1.2"
  resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz"
  integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@@ -4459,7 +4374,7 @@
  resolved "https://registry.npmmirror.com/clamp/-/clamp-1.0.1.tgz"
  integrity sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==
classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1, classnames@2.x:
classnames@2.x, classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1:
  version "2.5.1"
  resolved "https://registry.npmmirror.com/classnames/-/classnames-2.5.1.tgz"
  integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==
@@ -4508,14 +4423,7 @@
  resolved "https://registry.npmmirror.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz"
  integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==
color-convert@^1.9.0:
  version "1.9.3"
  resolved "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz"
  integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
  dependencies:
    color-name "1.1.3"
color-convert@^1.9.3:
color-convert@^1.9.0, color-convert@^1.9.3:
  version "1.9.3"
  resolved "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz"
  integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
@@ -4529,15 +4437,15 @@
  dependencies:
    color-name "~1.1.4"
color-name@^1.0.0, color-name@~1.1.4:
  version "1.1.4"
  resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz"
  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
color-name@1.1.3:
  version "1.1.3"
  resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz"
  integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
color-name@^1.0.0, color-name@~1.1.4:
  version "1.1.4"
  resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz"
  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
color-string@^1.6.0:
  version "1.9.1"
@@ -4572,7 +4480,7 @@
  dependencies:
    delayed-stream "~1.0.0"
commander@^2.20.0, commander@2:
commander@2, commander@^2.20.0:
  version "2.20.3"
  resolved "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz"
  integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
@@ -4622,15 +4530,15 @@
    safe-buffer "5.1.2"
    vary "~1.1.2"
compute-scroll-into-view@^1.0.17, compute-scroll-into-view@^1.0.20:
  version "1.0.20"
  resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz"
  integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==
compute-scroll-into-view@1.0.11:
  version "1.0.11"
  resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.11.tgz"
  integrity sha512-uUnglJowSe0IPmWOdDtrlHXof5CTIJitfJEyITHBW6zDVOGu9Pjk5puaLM73SLcwak0L4hEjO7Td88/a6P5i7A==
compute-scroll-into-view@^1.0.17, compute-scroll-into-view@^1.0.20:
  version "1.0.20"
  resolved "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz"
  integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==
concat-map@0.0.1:
  version "0.0.1"
@@ -4664,21 +4572,7 @@
  resolved "https://registry.npmmirror.com/contour_plot/-/contour_plot-0.0.1.tgz"
  integrity sha512-Nil2HI76Xux6sVGORvhSS8v66m+/h5CwFkBJDO+U5vWaMdNC0yXNCsGDPbzPhvqOEU5koebhdEvD372LI+IyLw==
convert-source-map@^1.4.0:
  version "1.8.0"
  resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.8.0.tgz"
  integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
  dependencies:
    safe-buffer "~5.1.1"
convert-source-map@^1.6.0:
  version "1.8.0"
  resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.8.0.tgz"
  integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
  dependencies:
    safe-buffer "~5.1.1"
convert-source-map@^1.7.0:
convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
  version "1.8.0"
  resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.8.0.tgz"
  integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
@@ -4882,20 +4776,20 @@
    domutils "^2.8.0"
    nth-check "^2.0.1"
css-tree@^1.1.2, css-tree@^1.1.3:
  version "1.1.3"
  resolved "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz"
  integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
  dependencies:
    mdn-data "2.0.14"
    source-map "^0.6.1"
css-tree@1.0.0-alpha.37:
  version "1.0.0-alpha.37"
  resolved "https://registry.npmmirror.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz"
  integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==
  dependencies:
    mdn-data "2.0.4"
    source-map "^0.6.1"
css-tree@^1.1.2, css-tree@^1.1.3:
  version "1.1.3"
  resolved "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz"
  integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
  dependencies:
    mdn-data "2.0.14"
    source-map "^0.6.1"
css-what@^3.2.1:
@@ -5006,7 +4900,7 @@
  resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz"
  integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
d3-array@^1.2.0, d3-array@1:
d3-array@1, d3-array@^1.2.0:
  version "1.2.4"
  resolved "https://registry.npmmirror.com/d3-array/-/d3-array-1.2.4.tgz"
  integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==
@@ -5016,7 +4910,7 @@
  resolved "https://registry.npmmirror.com/d3-collection/-/d3-collection-1.0.7.tgz"
  integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==
d3-color@^1.4.0, d3-color@1:
d3-color@1, d3-color@^1.4.0:
  version "1.4.1"
  resolved "https://registry.npmmirror.com/d3-color/-/d3-color-1.4.1.tgz"
  integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==
@@ -5064,14 +4958,14 @@
  resolved "https://registry.npmmirror.com/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz"
  integrity sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==
d3-interpolate@^1.3.2, d3-interpolate@1, d3-interpolate@1.4.0:
d3-interpolate@1, d3-interpolate@1.4.0, d3-interpolate@^1.3.2:
  version "1.4.0"
  resolved "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz"
  integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==
  dependencies:
    d3-color "1"
d3-quadtree@^2.0.0, "d3-quadtree@1 - 2":
"d3-quadtree@1 - 2", d3-quadtree@^2.0.0:
  version "2.0.0"
  resolved "https://registry.npmmirror.com/d3-quadtree/-/d3-quadtree-2.0.0.tgz"
  integrity sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==
@@ -5105,7 +4999,7 @@
  resolved "https://registry.npmmirror.com/d3-time/-/d3-time-1.1.0.tgz"
  integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==
d3-timer@^1.0.9, "d3-timer@1 - 2":
"d3-timer@1 - 2", d3-timer@^1.0.9:
  version "1.0.10"
  resolved "https://registry.npmmirror.com/d3-timer/-/d3-timer-1.0.10.tgz"
  integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==
@@ -5171,17 +5065,24 @@
  dependencies:
    "@babel/runtime" "^7.21.0"
dayjs@^1.10.5, dayjs@1.x:
dayjs@1.x, dayjs@^1.10.5:
  version "1.11.12"
  resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.12.tgz"
  integrity sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==
debug@^2.6.0:
debug@2.6.9, debug@^2.6.0:
  version "2.6.9"
  resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz"
  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
  dependencies:
    ms "2.0.0"
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
  version "4.3.6"
  resolved "https://registry.npmmirror.com/debug/-/debug-4.3.6.tgz"
  integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==
  dependencies:
    ms "2.1.2"
debug@^3.2.6, debug@^3.2.7:
  version "3.2.7"
@@ -5189,55 +5090,6 @@
  integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
  dependencies:
    ms "^2.1.1"
debug@^4.1.0:
  version "4.3.6"
  resolved "https://registry.npmmirror.com/debug/-/debug-4.3.6.tgz"
  integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==
  dependencies:
    ms "2.1.2"
debug@^4.1.1:
  version "4.3.6"
  resolved "https://registry.npmmirror.com/debug/-/debug-4.3.6.tgz"
  integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==
  dependencies:
    ms "2.1.2"
debug@^4.3.1:
  version "4.3.6"
  resolved "https://registry.npmmirror.com/debug/-/debug-4.3.6.tgz"
  integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==
  dependencies:
    ms "2.1.2"
debug@^4.3.2:
  version "4.3.6"
  resolved "https://registry.npmmirror.com/debug/-/debug-4.3.6.tgz"
  integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==
  dependencies:
    ms "2.1.2"
debug@^4.3.4:
  version "4.3.6"
  resolved "https://registry.npmmirror.com/debug/-/debug-4.3.6.tgz"
  integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==
  dependencies:
    ms "2.1.2"
debug@2.6.9:
  version "2.6.9"
  resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz"
  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
  dependencies:
    ms "2.0.0"
debug@4:
  version "4.3.6"
  resolved "https://registry.npmmirror.com/debug/-/debug-4.3.6.tgz"
  integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==
  dependencies:
    ms "2.1.2"
decamelize@^1.0.0:
  version "1.2.0"
@@ -5340,15 +5192,15 @@
  resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz"
  integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
depd@~1.1.2:
  version "1.1.2"
  resolved "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz"
  integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==
depd@2.0.0:
  version "2.0.0"
  resolved "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz"
  integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
depd@~1.1.2:
  version "1.1.2"
  resolved "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz"
  integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==
destroy@1.2.0:
  version "1.2.0"
@@ -5470,6 +5322,14 @@
    "@babel/runtime" "^7.8.7"
    csstype "^3.0.2"
dom-serializer@0:
  version "0.2.2"
  resolved "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz"
  integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
  dependencies:
    domelementtype "^2.0.1"
    entities "^2.0.0"
dom-serializer@^1.0.1:
  version "1.4.1"
  resolved "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz"
@@ -5479,23 +5339,15 @@
    domhandler "^4.2.0"
    entities "^2.0.0"
dom-serializer@0:
  version "0.2.2"
  resolved "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz"
  integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
  dependencies:
    domelementtype "^2.0.1"
    entities "^2.0.0"
domelementtype@1:
  version "1.3.1"
  resolved "https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz"
  integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
domelementtype@^2.0.1, domelementtype@^2.2.0:
  version "2.3.0"
  resolved "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz"
  integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
domelementtype@1:
  version "1.3.1"
  resolved "https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz"
  integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
domexception@^2.0.1:
  version "2.0.1"
@@ -5803,12 +5655,7 @@
  resolved "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz"
  integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
escape-string-regexp@^1.0.2:
  version "1.0.5"
  resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
  integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
escape-string-regexp@^1.0.5:
escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
  version "1.0.5"
  resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
  integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
@@ -5963,7 +5810,7 @@
  dependencies:
    "@typescript-eslint/utils" "^5.58.0"
eslint-scope@^5.1.1:
eslint-scope@5.1.1, eslint-scope@^5.1.1:
  version "5.1.1"
  resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz"
  integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
@@ -5978,14 +5825,6 @@
  dependencies:
    esrecurse "^4.3.0"
    estraverse "^5.2.0"
eslint-scope@5.1.1:
  version "5.1.1"
  resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz"
  integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
  dependencies:
    esrecurse "^4.3.0"
    estraverse "^4.1.1"
eslint-visitor-keys@^2.1.0:
  version "2.1.0"
@@ -6464,17 +6303,7 @@
    jsonfile "^6.0.1"
    universalify "^2.0.0"
fs-extra@^9.0.0:
  version "9.1.0"
  resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz"
  integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
  dependencies:
    at-least-node "^1.0.0"
    graceful-fs "^4.2.0"
    jsonfile "^6.0.1"
    universalify "^2.0.0"
fs-extra@^9.0.1:
fs-extra@^9.0.0, fs-extra@^9.0.1:
  version "9.1.0"
  resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz"
  integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
@@ -6493,6 +6322,11 @@
  version "1.0.0"
  resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz"
  integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
fsevents@^2.3.2, fsevents@~2.3.2:
  version "2.3.3"
  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
  integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
function-bind@^1.1.1, function-bind@^1.1.2:
  version "1.1.2"
@@ -6574,7 +6408,7 @@
  resolved "https://registry.npmmirror.com/gl-vec2/-/gl-vec2-1.3.0.tgz"
  integrity sha512-YiqaAuNsheWmUV0Sa8k94kBB0D6RWjwZztyO+trEYS8KzJ6OQB/4686gdrf59wld4hHFIvaxynO3nRxpk1Ij/A==
glob-parent@^5.1.2:
glob-parent@^5.1.2, glob-parent@~5.1.2:
  version "5.1.2"
  resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz"
  integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
@@ -6587,13 +6421,6 @@
  integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
  dependencies:
    is-glob "^4.0.3"
glob-parent@~5.1.2:
  version "5.1.2"
  resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz"
  integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
  dependencies:
    is-glob "^4.0.1"
glob-to-regexp@^0.4.1:
  version "0.4.1"
@@ -6858,16 +6685,6 @@
  resolved "https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz"
  integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==
http-errors@~1.6.2:
  version "1.6.3"
  resolved "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz"
  integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==
  dependencies:
    depd "~1.1.2"
    inherits "2.0.3"
    setprototypeof "1.1.0"
    statuses ">= 1.4.0 < 2"
http-errors@2.0.0:
  version "2.0.0"
  resolved "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz"
@@ -6878,6 +6695,16 @@
    setprototypeof "1.2.0"
    statuses "2.0.1"
    toidentifier "1.0.1"
http-errors@~1.6.2:
  version "1.6.3"
  resolved "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz"
  integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==
  dependencies:
    depd "~1.1.2"
    inherits "2.0.3"
    setprototypeof "1.1.0"
    statuses ">= 1.4.0 < 2"
http-parser-js@>=0.5.1:
  version "0.5.8"
@@ -6931,7 +6758,7 @@
  resolved "https://registry.npmmirror.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz"
  integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==
iconv-lite@^0.4.4, iconv-lite@0.4, iconv-lite@0.4.24:
iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.4:
  version "0.4.24"
  resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz"
  integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -7023,7 +6850,7 @@
    once "^1.3.0"
    wrappy "1"
inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@~2.0.4, inherits@2, inherits@2.0.4:
inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@~2.0.4:
  version "2.0.4"
  resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz"
  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -7070,15 +6897,15 @@
  resolved "https://registry.npmmirror.com/inversify/-/inversify-5.1.1.tgz"
  integrity sha512-j8grHGDzv1v+8T1sAQ+3boTCntFPfvxLCkNcxB1J8qA0lUN+fAlSyYd+RXKvaPRL4AGyPxViutBEJHNXOyUdFQ==
ipaddr.js@^2.0.1:
  version "2.0.1"
  resolved "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz"
  integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==
ipaddr.js@1.9.1:
  version "1.9.1"
  resolved "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz"
  integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
ipaddr.js@^2.0.1:
  version "2.0.1"
  resolved "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz"
  integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==
is-any-array@^2.0.0:
  version "2.0.1"
@@ -8354,21 +8181,7 @@
    pify "^4.0.1"
    semver "^5.6.0"
make-dir@^3.0.0:
  version "3.1.0"
  resolved "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz"
  integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
  dependencies:
    semver "^6.0.0"
make-dir@^3.0.2:
  version "3.1.0"
  resolved "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz"
  integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
  dependencies:
    semver "^6.0.0"
make-dir@^3.1.0:
make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0:
  version "3.1.0"
  resolved "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz"
  integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
@@ -8426,6 +8239,11 @@
    supercluster "^7.1.0"
    tinyqueue "^2.0.3"
    vt-pbf "^3.1.1"
mapvgl@^1.0.0-beta.189:
  version "1.0.0-beta.191"
  resolved "https://registry.npmmirror.com/mapvgl/-/mapvgl-1.0.0-beta.191.tgz"
  integrity sha512-kbcLSXPSZybMgvJ0RTPEpISC6hpc27P/UwYCFASKLRe6Z7LC0Z11FwNXvQT/jkAK/LdBm2GqsE9i+GQViqRIYg==
material-colors@^1.2.1:
  version "1.2.6"
@@ -8487,7 +8305,7 @@
    braces "^3.0.3"
    picomatch "^2.3.1"
"mime-db@>= 1.43.0 < 2", mime-db@1.52.0:
mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
  version "1.52.0"
  resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz"
  integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
@@ -8499,7 +8317,7 @@
  dependencies:
    mime-db "1.52.0"
mime@^1.4.1, mime@1.6.0:
mime@1.6.0, mime@^1.4.1:
  version "1.6.0"
  resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz"
  integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
@@ -8527,6 +8345,13 @@
  resolved "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"
  integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
minimatch@3.0.4:
  version "3.0.4"
  resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.0.4.tgz"
  integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
  dependencies:
    brace-expansion "^1.1.7"
minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
  version "3.1.2"
  resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz"
@@ -8547,13 +8372,6 @@
  integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
  dependencies:
    brace-expansion "^2.0.1"
minimatch@3.0.4:
  version "3.0.4"
  resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.0.4.tgz"
  integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
  dependencies:
    brace-expansion "^1.1.7"
minimist@^1.2.0, minimist@^1.2.6, minimist@~1.2.7:
  version "1.2.8"
@@ -8613,11 +8431,6 @@
  resolved "https://registry.npmmirror.com/mousetrap/-/mousetrap-1.6.5.tgz"
  integrity sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==
ms@^2.1.1, ms@2.1.3:
  version "2.1.3"
  resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz"
  integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
ms@2.0.0:
  version "2.0.0"
  resolved "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz"
@@ -8627,6 +8440,11 @@
  version "2.1.2"
  resolved "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz"
  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
ms@2.1.3, ms@^2.1.1:
  version "2.1.3"
  resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz"
  integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
multicast-dns@^7.2.5:
  version "7.2.5"
@@ -8767,7 +8585,7 @@
  resolved "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.0.tgz"
  integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
object-assign@^4.0.1, object-assign@^4.1.1, object-assign@4.x:
object-assign@4.x, object-assign@^4.0.1, object-assign@^4.1.1:
  version "4.1.1"
  resolved "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz"
  integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
@@ -9753,16 +9571,7 @@
    ansi-styles "^5.0.0"
    react-is "^17.0.1"
pretty-format@^29.0.0:
  version "29.7.0"
  resolved "https://registry.npmmirror.com/pretty-format/-/pretty-format-29.7.0.tgz"
  integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==
  dependencies:
    "@jest/schemas" "^29.6.3"
    ansi-styles "^5.0.0"
    react-is "^18.0.0"
pretty-format@^29.7.0:
pretty-format@^29.0.0, pretty-format@^29.7.0:
  version "29.7.0"
  resolved "https://registry.npmmirror.com/pretty-format/-/pretty-format-29.7.0.tgz"
  integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==
@@ -10277,6 +10086,14 @@
    regenerator-runtime "^0.13.9"
    whatwg-fetch "^3.6.2"
react-bmapgl@^0.2.27:
  version "0.2.27"
  resolved "https://registry.npmmirror.com/react-bmapgl/-/react-bmapgl-0.2.27.tgz"
  integrity sha512-pCVAuYFwG0rU9j1u9sZ4IWNmUP84pFa5y8nq/lxjzMiQdl04iO39NkTdEg2YRLjF2NF11eigcal/Ne1+zPz4ng==
  dependencies:
    mapvgl "^1.0.0-beta.189"
    shallowequal "^1.1.0"
react-clientside-effect@^1.2.6:
  version "1.2.6"
  resolved "https://registry.npmmirror.com/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz"
@@ -10385,12 +10202,7 @@
  dependencies:
    throttle-debounce "^2.1.0"
react-is@^16.12.0:
  version "16.13.1"
  resolved "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz"
  integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
react-is@^16.13.1:
react-is@^16.12.0, react-is@^16.13.1:
  version "16.13.1"
  resolved "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz"
  integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
@@ -10400,12 +10212,7 @@
  resolved "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz"
  integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
react-is@^18.0.0:
  version "18.3.1"
  resolved "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz"
  integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==
react-is@^18.2.0:
react-is@^18.0.0, react-is@^18.2.0:
  version "18.3.1"
  resolved "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz"
  integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==
@@ -10875,7 +10682,7 @@
  dependencies:
    queue-microtask "^1.2.2"
rw@^1.3.2, rw@^1.3.3, rw@1:
rw@1, rw@^1.3.2, rw@^1.3.3:
  version "1.3.3"
  resolved "https://registry.npmmirror.com/rw/-/rw-1.3.3.tgz"
  integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==
@@ -10897,7 +10704,7 @@
    has-symbols "^1.0.3"
    isarray "^2.0.5"
safe-buffer@^5.1.0, safe-buffer@>=5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1, safe-buffer@5.1.2:
safe-buffer@5.1.2, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, 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"
  integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
@@ -10954,6 +10761,15 @@
    loose-envify "^1.1.0"
    object-assign "^4.1.1"
schema-utils@2.7.0:
  version "2.7.0"
  resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.0.tgz"
  integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==
  dependencies:
    "@types/json-schema" "^7.0.4"
    ajv "^6.12.2"
    ajv-keywords "^3.4.1"
schema-utils@^2.6.5:
  version "2.7.1"
  resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz"
@@ -11001,26 +10817,10 @@
    ajv-formats "^2.1.1"
    ajv-keywords "^5.1.0"
schema-utils@2.7.0:
  version "2.7.0"
  resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.0.tgz"
  integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==
  dependencies:
    "@types/json-schema" "^7.0.4"
    ajv "^6.12.2"
    ajv-keywords "^3.4.1"
screenfull@^5.1.0:
  version "5.2.0"
  resolved "https://registry.npmmirror.com/screenfull/-/screenfull-5.2.0.tgz"
  integrity sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==
scroll-into-view-if-needed@^2.2.25:
  version "2.2.31"
  resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz"
  integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==
  dependencies:
    compute-scroll-into-view "^1.0.20"
scroll-into-view-if-needed@2.2.20:
  version "2.2.20"
@@ -11028,6 +10828,13 @@
  integrity sha512-P9kYMrhi9f6dvWwTGpO5I3HgjSU/8Mts7xL3lkoH5xlewK7O9Obdc5WmMCzppln7bCVGNmf3qfoZXrpCeyNJXw==
  dependencies:
    compute-scroll-into-view "1.0.11"
scroll-into-view-if-needed@^2.2.25:
  version "2.2.31"
  resolved "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz"
  integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==
  dependencies:
    compute-scroll-into-view "^1.0.20"
select-hose@^2.0.0:
  version "2.0.0"
@@ -11042,27 +10849,17 @@
    "@types/node-forge" "^1.3.0"
    node-forge "^1"
semver@7.0.0:
  version "7.0.0"
  resolved "https://registry.npmmirror.com/semver/-/semver-7.0.0.tgz"
  integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
semver@^5.6.0:
  version "5.7.1"
  resolved "https://registry.npmmirror.com/semver/-/semver-5.7.1.tgz"
  integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
semver@^6.0.0:
  version "6.3.0"
  resolved "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz"
  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
semver@^6.1.1:
  version "6.3.0"
  resolved "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz"
  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
semver@^6.1.2:
  version "6.3.0"
  resolved "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz"
  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
semver@^6.3.0:
semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
  version "6.3.0"
  resolved "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz"
  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
@@ -11076,11 +10873,6 @@
  version "7.6.3"
  resolved "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz"
  integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
semver@7.0.0:
  version "7.0.0"
  resolved "https://registry.npmmirror.com/semver/-/semver-7.0.0.tgz"
  integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
send@0.18.0:
  version "0.18.0"
@@ -11287,7 +11079,19 @@
    buffer-from "^1.0.0"
    source-map "^0.6.0"
source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1, source-map@0.6.1:
source-map@0.1.32:
  version "0.1.32"
  resolved "https://registry.npmmirror.com/source-map/-/source-map-0.1.32.tgz"
  integrity sha512-htQyLrrRLkQ87Zfrir4/yN+vAUd6DNjVayEjTSHXu29AYQJw57I4/xEL/M6p6E/woPNJwvZt6rVlzc7gFEJccQ==
  dependencies:
    amdefine ">=0.0.4"
source-map@0.5.6:
  version "0.5.6"
  resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.6.tgz"
  integrity sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==
source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
  version "0.6.1"
  resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz"
  integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
@@ -11308,18 +11112,6 @@
  version "0.5.7"
  resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz"
  integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
source-map@0.1.32:
  version "0.1.32"
  resolved "https://registry.npmmirror.com/source-map/-/source-map-0.1.32.tgz"
  integrity sha512-htQyLrrRLkQ87Zfrir4/yN+vAUd6DNjVayEjTSHXu29AYQJw57I4/xEL/M6p6E/woPNJwvZt6rVlzc7gFEJccQ==
  dependencies:
    amdefine ">=0.0.4"
source-map@0.5.6:
  version "0.5.6"
  resolved "https://registry.npmmirror.com/source-map/-/source-map-0.5.6.tgz"
  integrity sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==
sourcemap-codec@^1.4.8:
  version "1.4.8"
@@ -11400,15 +11192,15 @@
    stack-generator "^2.0.5"
    stacktrace-gps "^3.0.4"
"statuses@>= 1.4.0 < 2":
  version "1.5.0"
  resolved "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz"
  integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
statuses@2.0.1:
  version "2.0.1"
  resolved "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz"
  integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
"statuses@>= 1.4.0 < 2":
  version "1.5.0"
  resolved "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz"
  integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
stop-iteration-iterator@^1.0.0:
  version "1.0.0"
@@ -11416,13 +11208,6 @@
  integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==
  dependencies:
    internal-slot "^1.0.4"
string_decoder@^1.1.1, string_decoder@~1.1.1:
  version "1.1.1"
  resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz"
  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
  dependencies:
    safe-buffer "~5.1.0"
string-convert@^0.2.0:
  version "0.2.1"
@@ -11450,16 +11235,7 @@
  resolved "https://registry.npmmirror.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz"
  integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==
"string-width-cjs@npm:string-width@^4.2.0":
  version "4.2.3"
  resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz"
  integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
  dependencies:
    emoji-regex "^8.0.0"
    is-fullwidth-code-point "^3.0.0"
    strip-ansi "^6.0.1"
string-width@^4.1.0, string-width@^4.2.0:
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0:
  version "4.2.3"
  resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz"
  integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -11531,6 +11307,13 @@
    define-properties "^1.2.1"
    es-object-atoms "^1.0.0"
string_decoder@^1.1.1, string_decoder@~1.1.1:
  version "1.1.1"
  resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz"
  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
  dependencies:
    safe-buffer "~5.1.0"
stringify-object@^3.3.0:
  version "3.3.0"
  resolved "https://registry.npmmirror.com/stringify-object/-/stringify-object-3.3.0.tgz"
@@ -11540,7 +11323,7 @@
    is-obj "^1.0.1"
    is-regexp "^1.0.0"
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
  version "6.0.1"
  resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz"
  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -11553,13 +11336,6 @@
  integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==
  dependencies:
    ansi-regex "^2.0.0"
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
  version "6.0.1"
  resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz"
  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
  dependencies:
    ansi-regex "^5.0.1"
strip-ansi@^7.0.1:
  version "7.0.1"
@@ -12010,17 +11786,12 @@
    minimist "^1.2.6"
    strip-bom "^3.0.0"
tslib@^1.10.0:
  version "1.14.1"
  resolved "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz"
  integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
tslib@2.3.0:
  version "2.3.0"
  resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz"
  integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
tslib@^1.8.1:
  version "1.14.1"
  resolved "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz"
  integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
tslib@^1.9.0:
tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0:
  version "1.14.1"
  resolved "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz"
  integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
@@ -12029,11 +11800,6 @@
  version "2.3.1"
  resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz"
  integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
tslib@2.3.0:
  version "2.3.0"
  resolved "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz"
  integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
tsutils@^3.21.0:
  version "3.21.0"
@@ -12210,7 +11976,7 @@
  resolved "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz"
  integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
unpipe@~1.0.0, unpipe@1.0.0:
unpipe@1.0.0, unpipe@~1.0.0:
  version "1.0.0"
  resolved "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz"
  integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
@@ -12500,7 +12266,7 @@
    watchpack "^2.4.1"
    webpack-sources "^3.2.3"
websocket-driver@^0.7.4, websocket-driver@>=0.5.1:
websocket-driver@>=0.5.1, websocket-driver@^0.7.4:
  version "0.7.4"
  resolved "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz"
  integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==
@@ -12623,15 +12389,15 @@
  resolved "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz"
  integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
wordwrap@~0.0.2:
  version "0.0.3"
  resolved "https://registry.npmmirror.com/wordwrap/-/wordwrap-0.0.3.tgz"
  integrity sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==
wordwrap@0.0.2:
  version "0.0.2"
  resolved "https://registry.npmmirror.com/wordwrap/-/wordwrap-0.0.2.tgz"
  integrity sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==
wordwrap@~0.0.2:
  version "0.0.3"
  resolved "https://registry.npmmirror.com/wordwrap/-/wordwrap-0.0.3.tgz"
  integrity sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==
workbox-background-sync@6.6.0:
  version "6.6.0"
@@ -12802,16 +12568,7 @@
    "@types/trusted-types" "^2.0.2"
    workbox-core "6.6.0"
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
  version "7.0.0"
  resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
  integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
  dependencies:
    ansi-styles "^4.0.0"
    string-width "^4.1.0"
    strip-ansi "^6.0.0"
wrap-ansi@^7.0.0:
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
  version "7.0.0"
  resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
  integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==