智慧园区前端大屏
shuishen
2024-11-14 041eb290228146c7fcfea0c266c03bbe3105eb05
Merge branch 'main' of http://139.196.74.78:10010/r/zhyq/bigScreen
22 files modified
1 files added
3939 ■■■■ changed files
package-lock.json 2594 ●●●●● patch | view | raw | blame | history
src/api/emergencySupplies/emergencySupplies.js 9 ●●●●● patch | view | raw | blame | history
src/api/facility.js 10 ●●●●● patch | view | raw | blame | history
src/pages/first/index.vue 2 ●●●●● patch | view | raw | blame | history
src/pages/layout/components/scomponents/layersControl.vue 138 ●●●●● patch | view | raw | blame | history
src/pages/layout/index.vue 2 ●●●●● patch | view | raw | blame | history
src/styles/element/index.scss 4 ●●●● patch | view | raw | blame | history
src/views/companyInfo/components/box/dataContent.vue 251 ●●●● patch | view | raw | blame | history
src/views/companyInfo/components/box/fireTrend.vue 15 ●●●●● patch | view | raw | blame | history
src/views/companyInfo/components/box/occurStatistics.vue 160 ●●●●● patch | view | raw | blame | history
src/views/companyInfo/components/box/unitContent.vue 160 ●●●●● patch | view | raw | blame | history
src/views/companyInfo/components/leftContainer.vue 45 ●●●● patch | view | raw | blame | history
src/views/companyInfo/components/mainMenu.vue 16 ●●●●● patch | view | raw | blame | history
src/views/companyInfo/components/rightContainer.vue 4 ●●●● patch | view | raw | blame | history
src/views/companyInfo/index.vue 2 ●●● patch | view | raw | blame | history
src/views/pac/components/box/dataContent.vue 155 ●●●●● patch | view | raw | blame | history
src/views/pac/components/leftContainer.vue 20 ●●●● patch | view | raw | blame | history
src/views/pac/components/rightContainer.vue 13 ●●●● patch | view | raw | blame | history
src/views/rt/components/box/dataContent.vue 50 ●●●● patch | view | raw | blame | history
src/views/space/components/box/dataContent.vue 38 ●●●● patch | view | raw | blame | history
src/views/supplies/components/box/dataContent.vue 241 ●●●●● patch | view | raw | blame | history
src/views/survey/components/box/fireSource.vue 2 ●●● patch | view | raw | blame | history
src/views/survey/components/box/fireTrend.vue 8 ●●●●● patch | view | raw | blame | history
package-lock.json
@@ -12,6 +12,7 @@
        "@dvgis/vite-plugin-dc": "^2.2.0",
        "@element-plus/icons-vue": "^2.3.1",
        "@fortawesome/fontawesome-free": "^6.6.0",
        "@turf/turf": "^7.1.0",
        "axios": "^1.7.7",
        "crypto-js": "^4.1.1",
        "echarts": "^5.5.1",
@@ -1164,11 +1165,2431 @@
        "win32"
      ]
    },
    "node_modules/@turf/along": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/along/-/along-7.1.0.tgz",
      "integrity": "sha512-WLgBZJ/B6CcASF6WL7M+COtHlVP0hBrMbrtKyF7KBlicwRuijJZXDtEQA5oLgr+k1b2HqGN+UqH2A0/E719enQ==",
      "dependencies": {
        "@turf/bearing": "^7.1.0",
        "@turf/destination": "^7.1.0",
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/along/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/angle": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/angle/-/angle-7.1.0.tgz",
      "integrity": "sha512-YMHEV/YrARsWgWoQuXEWrQMsvB8z67nTMw2eiLZ883V7jwkhWQGvCW6W+/mGgsWQdHppjCZNcKryryhD2GRWVA==",
      "dependencies": {
        "@turf/bearing": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/rhumb-bearing": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/angle/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/area": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/area/-/area-7.1.0.tgz",
      "integrity": "sha512-w91FEe02/mQfMPRX2pXua48scFuKJ2dSVMF2XmJ6+BJfFiCPxp95I3+Org8+ZsYv93CDNKbf0oLNEPnuQdgs2g==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/area/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/bbox": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/bbox/-/bbox-7.1.0.tgz",
      "integrity": "sha512-PdWPz9tW86PD78vSZj2fiRaB8JhUHy6piSa/QXb83lucxPK+HTAdzlDQMTKj5okRCU8Ox/25IR2ep9T8NdopRA==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/bbox-clip": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/bbox-clip/-/bbox-clip-7.1.0.tgz",
      "integrity": "sha512-PhZubKCzF/afwStUzODqOJluiCbCw244lCtVhXA9F+Pgkhvk8KvbFdgpPquOZ45OwuktrchSB28BrBkSBiadHw==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/bbox-clip/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/bbox-polygon": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/bbox-polygon/-/bbox-polygon-7.1.0.tgz",
      "integrity": "sha512-fvZB09ErCZOVlWVDop836hmpKaGUmfXnR9naMhS73A/8nn4M3hELbQtMv2R8gXj7UakXCuxS/i9erdpDFZ2O+g==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/bbox-polygon/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/bbox/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/bearing": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/bearing/-/bearing-7.1.0.tgz",
      "integrity": "sha512-X5lackrZ6FW+YhgjWxwVFRgWD1j4xm4t5VvE6EE6v/1PVaHQ5OCjf6u1oaLx5LSG+gaHUhjTlAHrn9MYPFaeTA==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/bearing/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/bezier-spline": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/bezier-spline/-/bezier-spline-7.1.0.tgz",
      "integrity": "sha512-bhBY70bcVYJEosuW7B/TFtnE5rmPTTpxmJvljhGC0eyM84oNVv7apDBuseb5KdlTOOBIvdD9nIE4qV8lmplp6w==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/bezier-spline/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/boolean-clockwise": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/boolean-clockwise/-/boolean-clockwise-7.1.0.tgz",
      "integrity": "sha512-H5DYno+gHwZx+VaiC8DUBZXZQlxYecdSvqCfCACWi1uMsKvlht/O+xy65hz2P57lk2smlcV+1ETFVxJlEZduYg==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/boolean-clockwise/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/boolean-concave": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/boolean-concave/-/boolean-concave-7.1.0.tgz",
      "integrity": "sha512-IFCN25DI+hvngxIsv4+MPuRJQRl/Lz/xnZgpH82leCn4Jqn5wW7KqKFMz7G4GoKK+93cK5/6ioAxY7hVWBXxJw==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/boolean-concave/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/boolean-contains": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/boolean-contains/-/boolean-contains-7.1.0.tgz",
      "integrity": "sha512-ldy4j1/RVChYTYjEb4wWaE/JyF1jA87WpsB4eVLic6OcAYJGs7POF1kfKbcdkJJiRBmhI3CXNA+u+m9y4Z/j3g==",
      "dependencies": {
        "@turf/bbox": "^7.1.0",
        "@turf/boolean-point-in-polygon": "^7.1.0",
        "@turf/boolean-point-on-line": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/boolean-contains/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/boolean-crosses": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/boolean-crosses/-/boolean-crosses-7.1.0.tgz",
      "integrity": "sha512-LK8UM3AENycuGinLCDaL0QSznGMnD0XsjFDGnY4KehshiL5Zd8ZsPyKmHOPygUJT9DWeH69iLx459lOc+5Vj2w==",
      "dependencies": {
        "@turf/boolean-point-in-polygon": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/line-intersect": "^7.1.0",
        "@turf/polygon-to-line": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/boolean-crosses/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/boolean-disjoint": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/boolean-disjoint/-/boolean-disjoint-7.1.0.tgz",
      "integrity": "sha512-JapOG03kOCoGeYMWgTQjEifhr1nUoK4Os2cX0iC5X9kvZF4qCHeruX8/rffBQDx7PDKQKusSTXq8B1ISFi0hOw==",
      "dependencies": {
        "@turf/boolean-point-in-polygon": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/line-intersect": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@turf/polygon-to-line": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/boolean-disjoint/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/boolean-equal": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/boolean-equal/-/boolean-equal-7.1.0.tgz",
      "integrity": "sha512-deghtFMApc7fNsdXtZdgYR4gsU+TVfowcv666nrvZbPPsXL6NTYGBhDFmYXsJ8gPTCGT9uT0WXppdgT8diWOxA==",
      "dependencies": {
        "@turf/clean-coords": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "geojson-equality-ts": "^1.0.2",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/boolean-equal/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/boolean-intersects": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/boolean-intersects/-/boolean-intersects-7.1.0.tgz",
      "integrity": "sha512-gpksWbb0RT+Z3nfqRfoACY3KEFyv2BPaxJ3L76PH67DhHZviq3Nfg85KYbpuhS64FSm+9tXe4IaKn6EjbHo20g==",
      "dependencies": {
        "@turf/boolean-disjoint": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/boolean-intersects/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/boolean-overlap": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/boolean-overlap/-/boolean-overlap-7.1.0.tgz",
      "integrity": "sha512-mJRN0X8JiPm8eDZk5sLvIrsP03A2GId6ijx4VgSE1AvHwV6qB561KlUbWxga2AScocIfv/y/qd2OCs+/TQSZcg==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/line-intersect": "^7.1.0",
        "@turf/line-overlap": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "geojson-equality-ts": "^1.0.2",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/boolean-overlap/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/boolean-parallel": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/boolean-parallel/-/boolean-parallel-7.1.0.tgz",
      "integrity": "sha512-tA84Oux0X91CxUc6c/lZph5W9wUZGNT4fxFOg5Gp1IMTSwtxSYL1LMvKsr/VmMnwdOUkNcqAgU06+t4wBLtDfg==",
      "dependencies": {
        "@turf/clean-coords": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/line-segment": "^7.1.0",
        "@turf/rhumb-bearing": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/boolean-parallel/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/boolean-point-in-polygon": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-7.1.0.tgz",
      "integrity": "sha512-mprVsyIQ+ijWTZwbnO4Jhxu94ZW2M2CheqLiRTsGJy0Ooay9v6Av5/Nl3/Gst7ZVXxPqMeMaFYkSzcTc87AKew==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "point-in-polygon-hao": "^1.1.0",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/boolean-point-in-polygon/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/boolean-point-on-line": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/boolean-point-on-line/-/boolean-point-on-line-7.1.0.tgz",
      "integrity": "sha512-Kd83EjeTyY4kVMAhcW3Lb8aChwh24BUIhmpE9Or8M+ETNsFGzn9M7qtIySJHLRzKAL3letvWSKXKQPuK1AhAzg==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/boolean-point-on-line/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/boolean-touches": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/boolean-touches/-/boolean-touches-7.1.0.tgz",
      "integrity": "sha512-qN4LCs3RfVtNAAdn5GpsUFBqoZyAaK9UzSnGSh67GP9sy5M8MEHwM/HAJ5zGWJqQADrczI3U6BRWGLcGfGSz3Q==",
      "dependencies": {
        "@turf/boolean-point-in-polygon": "^7.1.0",
        "@turf/boolean-point-on-line": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/boolean-touches/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/boolean-valid": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/boolean-valid/-/boolean-valid-7.1.0.tgz",
      "integrity": "sha512-zq1QCfQEyn+piHlvxxDifjmsJn2xl53i4mnKFYdMQI/i09XiX+Fi/MVM3i2hf3D5AsEPsud8Tk7C7rWNCm4nVw==",
      "dependencies": {
        "@turf/bbox": "^7.1.0",
        "@turf/boolean-crosses": "^7.1.0",
        "@turf/boolean-disjoint": "^7.1.0",
        "@turf/boolean-overlap": "^7.1.0",
        "@turf/boolean-point-in-polygon": "^7.1.0",
        "@turf/boolean-point-on-line": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/line-intersect": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "geojson-polygon-self-intersections": "^1.2.1",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/boolean-valid/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/boolean-within": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/boolean-within/-/boolean-within-7.1.0.tgz",
      "integrity": "sha512-pgXgKCzYHssADQ1nClB1Q9aWI/dE1elm2jy3B5X59XdoFXKrKDZA+gCHYOYgp2NGO/txzVfl3UKvnxIj54Fa4w==",
      "dependencies": {
        "@turf/bbox": "^7.1.0",
        "@turf/boolean-point-in-polygon": "^7.1.0",
        "@turf/boolean-point-on-line": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/boolean-within/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/buffer": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/buffer/-/buffer-7.1.0.tgz",
      "integrity": "sha512-QM3JiCMYA19k5ouO8wJtvICX3Y8XntxVpDfHSKhFFidZcCkMTR2PWWOpwS6EoL3t75rSKw/FOLIPLZGtIu963w==",
      "dependencies": {
        "@turf/bbox": "^7.1.0",
        "@turf/center": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/jsts": "^2.7.1",
        "@turf/meta": "^7.1.0",
        "@turf/projection": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "d3-geo": "1.7.1"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/center": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/center/-/center-7.1.0.tgz",
      "integrity": "sha512-p9AvBMwNZmRg65kU27cGKHAUQnEcdz8Y7f/i5DvaMfm4e8zmawr+hzPKXaUpUfiTyLs8Xt2W9vlOmNGyH+6X3w==",
      "dependencies": {
        "@turf/bbox": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/center-mean": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/center-mean/-/center-mean-7.1.0.tgz",
      "integrity": "sha512-NQZB1LUVsyAD+p0+D4huzX2XVnfVx1yEEI9EX602THmi+g+nkge4SK9OMV11ov/Tv8JJ6aVNVPo/cy1vm/LCIQ==",
      "dependencies": {
        "@turf/bbox": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/center-mean/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/center-median": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/center-median/-/center-median-7.1.0.tgz",
      "integrity": "sha512-jx4/Ql5+v41Cd0J/gseNCUbLTzWUT2LUaiXn8eFWDrvmEgqHIx7KJcGcJd5HzV+9zJwng4AXxyh5NMvUR0NjwA==",
      "dependencies": {
        "@turf/center-mean": "^7.1.0",
        "@turf/centroid": "^7.1.0",
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/center-median/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/center-of-mass": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/center-of-mass/-/center-of-mass-7.1.0.tgz",
      "integrity": "sha512-j38oBlj7LBoCjZbrIo8EoHVGhk7UQmMLQ1fe8ZPAF9pd05XEL1qxyHKZKdQ/deGISiaEhXCyfLNrKAHAuy25RA==",
      "dependencies": {
        "@turf/centroid": "^7.1.0",
        "@turf/convex": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/center-of-mass/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/center/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/centroid": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/centroid/-/centroid-7.1.0.tgz",
      "integrity": "sha512-1Y1b2l+ZB1CZ+ITjUCsGqC4/tSjwm/R4OUfDztVqyyCq/VvezkLmTNqvXTGXgfP0GXkpv68iCfxF5M7QdM5pJQ==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/centroid/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/circle": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/circle/-/circle-7.1.0.tgz",
      "integrity": "sha512-6qhF1drjwH0Dg3ZB9om1JkWTJfAqBcbtIrAj5UPlrAeHP87hGoCO2ZEsFEAL9Q18vntpivT89Uho/nqQUjJhYw==",
      "dependencies": {
        "@turf/destination": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/circle/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/clean-coords": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/clean-coords/-/clean-coords-7.1.0.tgz",
      "integrity": "sha512-q1U8UbRVL5cRdwOlNjD8mad8pWjFGe0s4ihg1pSiVNq7i47WASJ3k20yZiUFvuAkyNjV0rZ/A7Jd7WzjcierFg==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/clean-coords/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/clone": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/clone/-/clone-7.1.0.tgz",
      "integrity": "sha512-5R9qeWvL7FDdBIbEemd0eCzOStr09oburDvJ1hRiPCFX6rPgzcZBQ0gDmZzoF4AFcNLb5IwknbLZjVLaUGWtFA==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/clone/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/clusters": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/clusters/-/clusters-7.1.0.tgz",
      "integrity": "sha512-7CY3Ai+5V6q2O9/IgqLpJQrmrTy7aUJjTW1iRan8Tz3WixvxyJHeS3iyRy8Oc0046chQIaHLtyTgKVt2QdsPSA==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/clusters-dbscan": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/clusters-dbscan/-/clusters-dbscan-7.1.0.tgz",
      "integrity": "sha512-BmrBTOEaKN5FIED6b3yb3V3ejfK0A2Q3pT9/ji3mcRLJiBaRGeiN5V6gtGXe7PeMYdoqhHykU5Ye2uUtREWRdQ==",
      "dependencies": {
        "@turf/clone": "^7.1.0",
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "rbush": "^3.0.1",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/clusters-dbscan/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/clusters-kmeans": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/clusters-kmeans/-/clusters-kmeans-7.1.0.tgz",
      "integrity": "sha512-M8cCqR6iE1jDSUF/UU9QdPUFrobZS2fo59TfF1IRHZ2G1EjbcK4GzZcUfmQS6DZraGudYutpMYIuNdm1dPMqdQ==",
      "dependencies": {
        "@turf/clone": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "skmeans": "0.9.7",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/clusters-kmeans/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/clusters/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/collect": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/collect/-/collect-7.1.0.tgz",
      "integrity": "sha512-6indMWLiKeBh4AsioNeFeFnO0k9U5CBsWAFEje6tOEFI4c+P7LF9mNA9z91H8KkrhegR9XNO5Vm2rmdY63aYXw==",
      "dependencies": {
        "@turf/bbox": "^7.1.0",
        "@turf/boolean-point-in-polygon": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "rbush": "^3.0.1",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/collect/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/combine": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/combine/-/combine-7.1.0.tgz",
      "integrity": "sha512-Xl7bGKKjgzIq2T/IemS6qnIykyuxU6cMxKtz+qLeWJGoNww/BllwxXePSV+dWRPXZTFFj96KIhBXAW0aUjAQKQ==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/combine/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/concave": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/concave/-/concave-7.1.0.tgz",
      "integrity": "sha512-aSid53gYRee4Tjc4pfeI3KI+RoBUnL/hRMilxIPduagTgZZS+cvvk01OQWBKm5UTVfHRGuy0XIqnK8y9RFinDQ==",
      "dependencies": {
        "@turf/clone": "^7.1.0",
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@turf/tin": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "topojson-client": "3.x",
        "topojson-server": "3.x",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/concave/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/convex": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/convex/-/convex-7.1.0.tgz",
      "integrity": "sha512-w9fUMZYE36bLrEWEj7L7aVMCB7NBtr2o8G+avRvUIwF4DPqbtcjlcZE9EEBfq44uYdn+/Pke6Iq42T/zyD/cpg==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "concaveman": "^1.2.1",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/convex/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/destination": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/destination/-/destination-7.1.0.tgz",
      "integrity": "sha512-97XuvB0iaAiMg86hrnZ529WwP44TQAA9mmI5PMlchACiA4LFrEtWjjDzvO6234coieoqhrw6dZYcJvd5O2PwrQ==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/destination/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/difference": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/difference/-/difference-7.1.0.tgz",
      "integrity": "sha512-+JVzdskICQ8ULKQ9CpWUM5kBvoXxN4CO78Ez/Ki3/7NXl7+HM/nb12B0OyM8hkJchpb8TsOi0YwyJiKMqEpTBA==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "polygon-clipping": "^0.15.3",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/difference/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/dissolve": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/dissolve/-/dissolve-7.1.0.tgz",
      "integrity": "sha512-fyOnCSYVUZ8SF9kt9ROnQYlkJTE0hpWSoWwbMZQCAR7oVZVPiuPq7eIbzTP+k5jzEAnofsqoGs5qVDTjHcWMiw==",
      "dependencies": {
        "@turf/flatten": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "polygon-clipping": "^0.15.3",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/dissolve/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/distance": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/distance/-/distance-7.1.0.tgz",
      "integrity": "sha512-hhNHhxCHB3ddzAGCNY4BtE29OZh+DAJPvUapQz+wOjISnlwvMcwLKvslgHWSYF536QDVe/93FEU2q67+CsZTPA==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/distance-weight": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/distance-weight/-/distance-weight-7.1.0.tgz",
      "integrity": "sha512-8m6s4y8Yyt6r3itf44yAJjXC+62UkrkhOpskIfaE0lHcBcvZz9wjboHoBf3bS4l/42E4StcanbFZdjOpODAdZw==",
      "dependencies": {
        "@turf/centroid": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/distance-weight/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/distance/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/ellipse": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/ellipse/-/ellipse-7.1.0.tgz",
      "integrity": "sha512-AfOahUmStDExWGPg8ZWxxkgom+fdJs7Mn9DzZH+fV/uZ+je1bLQpbPCUu9/ev6u/HhbYGl4VAL/CeQzjOyy6LQ==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/rhumb-destination": "^7.1.0",
        "@turf/transform-rotate": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/ellipse/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/envelope": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/envelope/-/envelope-7.1.0.tgz",
      "integrity": "sha512-WeLQse9wuxsxhzSqrJA6Ha7rLWnLKgdKY9cfxmJKHSpgqcJyNk60m7+T3UpI/nkGwpfbpeyB3EGC1EWPbxiDUg==",
      "dependencies": {
        "@turf/bbox": "^7.1.0",
        "@turf/bbox-polygon": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/envelope/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/explode": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/explode/-/explode-7.1.0.tgz",
      "integrity": "sha512-To+GUbU6HtcHZ8S0w/dw1EbdQIOCXALTr6Ug5/IFg8hIBMJelDpVr3Smwy8uqhDRFinY2eprBwQnDPcd10eCqA==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/explode/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/flatten": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/flatten/-/flatten-7.1.0.tgz",
      "integrity": "sha512-Kb23pqEarcLsdBqnQcK0qTrSMiWNTVb9tOFrNlZc66DIhDLAdpOKG4eqk00CMoUzWTixlnawDgJRqcStRrR4WA==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/flatten/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/flip": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/flip/-/flip-7.1.0.tgz",
      "integrity": "sha512-vac73W8WblzzNFanzWYLBzWDIcqc5xczOrtEO07RDEiKEI3Heo0471Jed3v9W506uuOX6/HAiCjXbRjTLjiLfw==",
      "dependencies": {
        "@turf/clone": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/flip/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/geojson-rbush": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/geojson-rbush/-/geojson-rbush-7.1.0.tgz",
      "integrity": "sha512-j1C7Ohlxa1z644bNOpgibcFGaDLgLXGLOzwF1tfQaP5y7E4PJQUXL0DWIgNb3Ke7gZC05LPHM25a5TRReUfFBQ==",
      "dependencies": {
        "@turf/bbox": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "rbush": "^3.0.1"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/great-circle": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/great-circle/-/great-circle-7.1.0.tgz",
      "integrity": "sha512-92q5fqUp5oW+FYekUIrUVR5PZBWbOV6NHKHPIiNahiPvtkpZItbbjoO+tGn5+2i8mxZP9FGOthayJe4V0a1xkg==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/helpers": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/helpers/-/helpers-7.1.0.tgz",
      "integrity": "sha512-dTeILEUVeNbaEeoZUOhxH5auv7WWlOShbx7QSd4s0T4Z0/iz90z9yaVCtZOLbU89umKotwKaJQltBNO9CzVgaQ==",
      "dependencies": {
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/helpers/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/hex-grid": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/hex-grid/-/hex-grid-7.1.0.tgz",
      "integrity": "sha512-I+Apx0smOPkMzaS5HHL44YOxSkSUvrz+wtSIETsDFWWLT2xKNkaaEcYU5MkgSoEfQsj082M7EkOIIpocXlA3kg==",
      "dependencies": {
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/intersect": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/hex-grid/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/interpolate": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/interpolate/-/interpolate-7.1.0.tgz",
      "integrity": "sha512-VWec1OW9gHZLPS3yYkUXAHKMGQuYO4aqh8WCltT7Ym4efrKqkSOE5T+mBqO68QgcL8nY4kiNa8lxwXd0SfXDSA==",
      "dependencies": {
        "@turf/bbox": "^7.1.0",
        "@turf/centroid": "^7.1.0",
        "@turf/clone": "^7.1.0",
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/hex-grid": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@turf/point-grid": "^7.1.0",
        "@turf/square-grid": "^7.1.0",
        "@turf/triangle-grid": "^7.1.0",
        "@types/geojson": "^7946.0.10"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/intersect": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/intersect/-/intersect-7.1.0.tgz",
      "integrity": "sha512-T0VhI6yhptX9EoMsuuBETyqV+edyq31SUC8bfuM6kdJ5WwJ0EvUfQoC+3bhMtCOn60lHawrUuGBgW+vCO8KGMg==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "polygon-clipping": "^0.15.3",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/intersect/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/invariant": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/invariant/-/invariant-7.1.0.tgz",
      "integrity": "sha512-OCLNqkItBYIP1nE9lJGuIUatWGtQ4rhBKAyTfFu0z8npVzGEYzvguEeof8/6LkKmTTEHW53tCjoEhSSzdRh08Q==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/invariant/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/isobands": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/isobands/-/isobands-7.1.0.tgz",
      "integrity": "sha512-iMLTOP/K5C05AttF4N1WeV+KrY4O5VWW/abO0N86XCWh1OeqmIUgqIBKEmhDzttAqC0UK2YrUfj0lI1Ez1fYZQ==",
      "dependencies": {
        "@turf/area": "^7.1.0",
        "@turf/bbox": "^7.1.0",
        "@turf/boolean-point-in-polygon": "^7.1.0",
        "@turf/explode": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "marchingsquares": "^1.3.3",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/isobands/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/isolines": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/isolines/-/isolines-7.1.0.tgz",
      "integrity": "sha512-V6QTHXBT5ZsL3s9ZVBJgHYtz3gCFKqNnQLysNE02LE0fVVqaSao3sFrcpghmdDxf0hBCDK8lZVvyRGO6o32LHQ==",
      "dependencies": {
        "@turf/bbox": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "marchingsquares": "^1.3.3",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/isolines/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/jsts": {
      "version": "2.7.1",
      "resolved": "https://registry.npmmirror.com/@turf/jsts/-/jsts-2.7.1.tgz",
      "integrity": "sha512-+nwOKme/aUprsxnLSfr2LylV6eL6T1Tuln+4Hl92uwZ8FrmjDRCH5Bi1LJNVfWCiYgk8+5K+t2zDphWNTsIFDA==",
      "dependencies": {
        "jsts": "2.7.1"
      }
    },
    "node_modules/@turf/kinks": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/kinks/-/kinks-7.1.0.tgz",
      "integrity": "sha512-KKLYUsyJPU17fODwA81mhHzFYGQYocdbk9NxDPCcdRHvxzM8t95lptkGx/2k/9rXBs1DK7NmyzI4m7zDO0DK7g==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/kinks/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/length": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/length/-/length-7.1.0.tgz",
      "integrity": "sha512-wUJj9WLKEudG1ngNao2ZwD+Dt6UkvWIbubuJ6lR6FndFDL3iezFhNGy0IXS+0xH9kXi2apiTnM9Vk5+i8BTEvQ==",
      "dependencies": {
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/length/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/line-arc": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/line-arc/-/line-arc-7.1.0.tgz",
      "integrity": "sha512-9/bM34PozTyJ5FXXPAzl/j0RpcTImgMFJZ0WhH0pZZEZRum6P0rJnENt2E2qI441zeozQ9H6X5DCiJogDmRUEw==",
      "dependencies": {
        "@turf/circle": "^7.1.0",
        "@turf/destination": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/line-arc/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/line-chunk": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/line-chunk/-/line-chunk-7.1.0.tgz",
      "integrity": "sha512-1lIUfqAQvCWAuUNC2ip8UYmM5kDltXOidLPW45Ee1OAIKYGBeFNtjwnxc0mQ40tnfTXclTYLDdOOP9LShspT9w==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/length": "^7.1.0",
        "@turf/line-slice-along": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/line-intersect": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/line-intersect/-/line-intersect-7.1.0.tgz",
      "integrity": "sha512-JI3dvOsAoCqd4vUJ134FIzgcC42QpC/tBs+b4OJoxWmwDek3REv4qGaZY6wCg9X4hFSlCKFcnhMIQQZ/n720Qg==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "sweepline-intersections": "^1.5.0",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/line-intersect/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/line-offset": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/line-offset/-/line-offset-7.1.0.tgz",
      "integrity": "sha512-pz6irzhiQlJurU7DoXada6k3ei7PzY+VpsE/Wotm0D2KEAnoxqum2WK0rqqrhKPHKn+xpUGsHN9W/6K+qtmaHg==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/line-overlap": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/line-overlap/-/line-overlap-7.1.0.tgz",
      "integrity": "sha512-BdHuEoFAtqvVw3LkjCdivG035nfuwZuxji2ijst+mkmDnlv7uwSBudJqcDGjU6up2r8P1mXChS4im4xjUz+lwg==",
      "dependencies": {
        "@turf/boolean-point-on-line": "^7.1.0",
        "@turf/geojson-rbush": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/line-segment": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@turf/nearest-point-on-line": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "fast-deep-equal": "^3.1.3",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/line-overlap/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/line-segment": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/line-segment/-/line-segment-7.1.0.tgz",
      "integrity": "sha512-9rgIIH6ZzC3IiWxDQtKsq+j6eu8fRinMkJeusfI9HqOTm4vO02Ll4F/FigjOMOO/6X3TJ+Pqe3gS99TUaBINkw==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/line-segment/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/line-slice": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/line-slice/-/line-slice-7.1.0.tgz",
      "integrity": "sha512-44xcjgMQxTa7tTAZlSD3t1cFjHi5SCfAqjg1ONv45EYKsQSonPaxD7LGzCbU5pR2RJjx3R7QRJx2G88hnGcXjQ==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/nearest-point-on-line": "^7.1.0",
        "@types/geojson": "^7946.0.10"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/line-slice-along": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/line-slice-along/-/line-slice-along-7.1.0.tgz",
      "integrity": "sha512-UwfnFORZnu4xdnuRXiQM3ODa8f9Q0FBjQF/XHNsPEI/xxmnwgQj3MZiULbAeHUbtU/7psTC7gEjfE3Lf0tcKQw==",
      "dependencies": {
        "@turf/bearing": "^7.1.0",
        "@turf/destination": "^7.1.0",
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/line-split": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/line-split/-/line-split-7.1.0.tgz",
      "integrity": "sha512-QqUAmtlrnEu75cpLOmpEuiYU63BeVwpSKOBllBbu5gkP+7H/WBM/9fh7J0VgHNFHzqZCKiu8v4158k+CZr0QAg==",
      "dependencies": {
        "@turf/bbox": "^7.1.0",
        "@turf/geojson-rbush": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/line-intersect": "^7.1.0",
        "@turf/line-segment": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@turf/nearest-point-on-line": "^7.1.0",
        "@turf/square": "^7.1.0",
        "@turf/truncate": "^7.1.0",
        "@types/geojson": "^7946.0.10"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/line-to-polygon": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/line-to-polygon/-/line-to-polygon-7.1.0.tgz",
      "integrity": "sha512-n/IWBRbo+l4XDTz4sfQsQm5bU9xex8KrthK397jQasd7a9PiOKGon9Z1t/lddTJhND6ajVyJ3hl+eZMtpQaghQ==",
      "dependencies": {
        "@turf/bbox": "^7.1.0",
        "@turf/clone": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/line-to-polygon/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/mask": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/mask/-/mask-7.1.0.tgz",
      "integrity": "sha512-d+u3IIiRhe17TDfP/+UMn9qRlJYPJpK7sj6WorsssluGi0yIG/Z24uWpcLskWKSI8NNgkIbDrp+GIYkJi2t7SA==",
      "dependencies": {
        "@turf/clone": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "polygon-clipping": "^0.15.3",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/mask/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/meta": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/meta/-/meta-7.1.0.tgz",
      "integrity": "sha512-ZgGpWWiKz797Fe8lfRj7HKCkGR+nSJ/5aKXMyofCvLSc2PuYJs/qyyifDPWjASQQCzseJ7AlF2Pc/XQ/3XkkuA==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/midpoint": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/midpoint/-/midpoint-7.1.0.tgz",
      "integrity": "sha512-uiUU9TwRZOCeiTUn8+7oE6MJUvclfq+n6KQ5VCMTZXiRUJjPu7nDLpBle1t2WSv7/w7O0kSQ4FfKXh0gHnkJOw==",
      "dependencies": {
        "@turf/bearing": "^7.1.0",
        "@turf/destination": "^7.1.0",
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/midpoint/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/moran-index": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/moran-index/-/moran-index-7.1.0.tgz",
      "integrity": "sha512-xsvAr3IRF/C6PlRMoN/ANrRx6c3QFUJgBCIVfI7re+Lkdprrzgw1HZA48ZjP4F91xbhgA1scnRgQdHFi2vO2SA==",
      "dependencies": {
        "@turf/distance-weight": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/moran-index/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/nearest-neighbor-analysis": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/nearest-neighbor-analysis/-/nearest-neighbor-analysis-7.1.0.tgz",
      "integrity": "sha512-FAhT8/op3DuvqH0XFhv055JhYq/FC4aaIxEZ4hj8c7W6sYhUHAQgdRZ0tJ1RLe5/h+eXhCTbQ+DFfnfv3klu8g==",
      "dependencies": {
        "@turf/area": "^7.1.0",
        "@turf/bbox": "^7.1.0",
        "@turf/bbox-polygon": "^7.1.0",
        "@turf/centroid": "^7.1.0",
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@turf/nearest-point": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/nearest-neighbor-analysis/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/nearest-point": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/nearest-point/-/nearest-point-7.1.0.tgz",
      "integrity": "sha512-VyInmhqfVWp+jE7sCK95o46qc4tDjAgzbRfRjr+rTgfFS1Sndyy1PdwyNn6TjBFDxiM6e+mjMEeGPjb1smJlEg==",
      "dependencies": {
        "@turf/clone": "^7.1.0",
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/nearest-point-on-line": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/nearest-point-on-line/-/nearest-point-on-line-7.1.0.tgz",
      "integrity": "sha512-aTjAOm7ab0tl5JoxGYRx/J/IbRL1DY1ZCIYQDMEQjK5gOllhclgeBC0wDXDkEZFGaVftjw0W2RtE2I0jX7RG4A==",
      "dependencies": {
        "@turf/bearing": "^7.1.0",
        "@turf/destination": "^7.1.0",
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/line-intersect": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/nearest-point-on-line/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/nearest-point-to-line": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/nearest-point-to-line/-/nearest-point-to-line-7.1.0.tgz",
      "integrity": "sha512-rY2F/iY4S6U8H0hIoOI25xMWYEiKywxeTvTvn5GP8KCu+2oemfZROWa7n2+hQDRwO2/uaegrGEpxO7zlFarvzg==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@turf/point-to-line-distance": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/nearest-point-to-line/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/nearest-point/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/planepoint": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/planepoint/-/planepoint-7.1.0.tgz",
      "integrity": "sha512-hFORBkCd7Q0kNUzLqksT4XglLgTQF9tCjG+dbnZ1VehpZu+w+vlHdoW/mY7XCX3Kj1ObiyzVmXffmVYgwXwF6Q==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/planepoint/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/point-grid": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/point-grid/-/point-grid-7.1.0.tgz",
      "integrity": "sha512-ihuuUcWuCu4Z1+34UYCM5NGsU2DJaB4uE8cS3jDQoUqlc+8ii2ng8kcGEtTwVn0HdPsoKA7bgvSZcisJO0v6Ww==",
      "dependencies": {
        "@turf/boolean-within": "^7.1.0",
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/point-grid/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/point-on-feature": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/point-on-feature/-/point-on-feature-7.1.0.tgz",
      "integrity": "sha512-lOO5J9I0diuGbN+r6jViEKRH3qfymsBvv25b7U0MuP8g/YC19ncUXZ86dmKfJx1++Rb485DS9h0nFvPmJpaOdg==",
      "dependencies": {
        "@turf/boolean-point-in-polygon": "^7.1.0",
        "@turf/center": "^7.1.0",
        "@turf/explode": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/nearest-point": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/point-on-feature/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/point-to-line-distance": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/point-to-line-distance/-/point-to-line-distance-7.1.0.tgz",
      "integrity": "sha512-Ps9eTOCaiNgxDaSNQux0wAcSLcrI0y0zYFaD9HnVm+yCMRliQXneFti2XXotS+gR7TpgnLRAAzyx4VzJMSN2tw==",
      "dependencies": {
        "@turf/bearing": "^7.1.0",
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@turf/projection": "^7.1.0",
        "@turf/rhumb-bearing": "^7.1.0",
        "@turf/rhumb-distance": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/point-to-line-distance/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/points-within-polygon": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/points-within-polygon/-/points-within-polygon-7.1.0.tgz",
      "integrity": "sha512-SzqeD9Gcp11rEya+rCVMy6IPuYMrphNEkCiQ39W6ec9hsaqKlruqmtudKhhckMGVLVUUBCQAu5f55yjcDfVW2w==",
      "dependencies": {
        "@turf/boolean-point-in-polygon": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/points-within-polygon/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/polygon-smooth": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/polygon-smooth/-/polygon-smooth-7.1.0.tgz",
      "integrity": "sha512-mTlmg4XUP5rKgCP/73N91owkAXIc3t1ZKLuwsJGQM1/Op48T3rJmDwVR/WZIMnVlxl5tFbssWCCB3blj4ivx9g==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/polygon-smooth/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/polygon-tangents": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/polygon-tangents/-/polygon-tangents-7.1.0.tgz",
      "integrity": "sha512-ffBgHXtkrpgkNs8E6s9sVLSKG4lPGH3WBk294FNKBt9NS+rbhNCv8yTuOMeP0bOm/WizaCq/SUtVryJpUSoI/g==",
      "dependencies": {
        "@turf/bbox": "^7.1.0",
        "@turf/boolean-within": "^7.1.0",
        "@turf/explode": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/nearest-point": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/polygon-tangents/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/polygon-to-line": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/polygon-to-line/-/polygon-to-line-7.1.0.tgz",
      "integrity": "sha512-FBlfyBWNQZCTVGqlJH7LR2VXmvj8AydxrA8zegqek/5oPGtQDeUgIppKmvmuNClqbglhv59QtCUVaDK4bOuCTA==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/polygon-to-line/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/polygonize": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/polygonize/-/polygonize-7.1.0.tgz",
      "integrity": "sha512-FBjxnOzO29MbE7MWnMPHHYtOo93cQopT5pXhkuPyoKgcTUCntR1+iVFpl5YFbMkYup0j5Oexjo/pbY38lVSZGw==",
      "dependencies": {
        "@turf/boolean-point-in-polygon": "^7.1.0",
        "@turf/envelope": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/polygonize/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/projection": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/projection/-/projection-7.1.0.tgz",
      "integrity": "sha512-3wHluMoOvXnTe7dfi0kcluTyLNG5MwGsSsK5OA98vkkLH6a1xvItn8e9GcesuT07oB2km/bgefxYEIvjQG5JCA==",
      "dependencies": {
        "@turf/clone": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/projection/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/quadrat-analysis": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/quadrat-analysis/-/quadrat-analysis-7.1.0.tgz",
      "integrity": "sha512-4O5h9PyWgpqYXja9O+kzr+qk5MUz0IkJqPtt5oWWX5s4jRcLNqiEUf+zi/GDBQkVV8jH3S5klT5CLrF1fxK3hQ==",
      "dependencies": {
        "@turf/area": "^7.1.0",
        "@turf/bbox": "^7.1.0",
        "@turf/bbox-polygon": "^7.1.0",
        "@turf/centroid": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/point-grid": "^7.1.0",
        "@turf/random": "^7.1.0",
        "@turf/square-grid": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/quadrat-analysis/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/random": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/random/-/random-7.1.0.tgz",
      "integrity": "sha512-22mXv8ejDMUWkz8DSMMqdZb0s7a0ISJzXt6T9cHovfT//vsotzkVH+5PDxJQjvmigKMnpaUgobHmQss23tAwEQ==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/random/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/rectangle-grid": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/rectangle-grid/-/rectangle-grid-7.1.0.tgz",
      "integrity": "sha512-4d2AuDj4LfMMJxNHbds5yX1oFR3mIVAB5D7mx6pFB0e+YkQW0mE2dUWhDTFGJZM+n45yqbNQ5hg19bmiXv94ug==",
      "dependencies": {
        "@turf/boolean-intersects": "^7.1.0",
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/rectangle-grid/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/rewind": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/rewind/-/rewind-7.1.0.tgz",
      "integrity": "sha512-zX0KDZpeiH89m1vYLTEJdDL6mFyoAsCxcG0P94mXO7/JXWf0AaxzA9MkNnA/d2QYX0G4ioCMjZ5cD6nXb8SXzw==",
      "dependencies": {
        "@turf/boolean-clockwise": "^7.1.0",
        "@turf/clone": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/rewind/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/rhumb-bearing": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/rhumb-bearing/-/rhumb-bearing-7.1.0.tgz",
      "integrity": "sha512-ESZt70eOljHVnQMFKIdiu8LIHuQlpZgzh2nqSfV40BrYjsjI/sBKeK+sp2cBWk88nsSDlriPuMTNh4f50Jqpkw==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/rhumb-bearing/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/rhumb-destination": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/rhumb-destination/-/rhumb-destination-7.1.0.tgz",
      "integrity": "sha512-WA2TeO3qrv5ZrzNihtTLLYu8X4kd12WEC6JKElm99XhgLao1/4ao2SJUi43l88HqwbrnNiq4TueGQ6tYpXGU7A==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/rhumb-destination/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/rhumb-distance": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/rhumb-distance/-/rhumb-distance-7.1.0.tgz",
      "integrity": "sha512-fR1V+yC4E1tnbdThomosiLcv0PQOwbfLSPM8rSWuxbMcJtffsncWxyJ0+N1F5juuHbcdaYhlduX8ri5I0ZCejw==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/rhumb-distance/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/sample": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/sample/-/sample-7.1.0.tgz",
      "integrity": "sha512-9Iq/Ankr4+sgBoh4FpuVVvoW+AA10eej3FS89Zu79SFdCqUIdT7T42Nn3MlSVj4jMyA1oXyT2HIAlNWkwgLw6Q==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/sample/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/sector": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/sector/-/sector-7.1.0.tgz",
      "integrity": "sha512-2FI2rg//eXpa/l+WJtFfvHaf1NJ7ie2MoJ+RH5dKANtrfoof1Ed+y9dXSyuhem2tp/Srq2GhrjaSofFN5/g5vA==",
      "dependencies": {
        "@turf/circle": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/line-arc": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/sector/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/shortest-path": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/shortest-path/-/shortest-path-7.1.0.tgz",
      "integrity": "sha512-1UmFhS5zHNacLv5rszoFOXq02BGov1oJvjlDatXsSWAd+Z7tqxpDc8D+41edrXy0ZB0Yxsy6WPNagM6hG9PRaA==",
      "dependencies": {
        "@turf/bbox": "^7.1.0",
        "@turf/bbox-polygon": "^7.1.0",
        "@turf/boolean-point-in-polygon": "^7.1.0",
        "@turf/clean-coords": "^7.1.0",
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@turf/transform-scale": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/shortest-path/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/simplify": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/simplify/-/simplify-7.1.0.tgz",
      "integrity": "sha512-JypymaoiSiFzGHwEoUkK0OPW1KQSnH3hEsEW3UIRS+apzltJ4HdFovYjsfqQgGZJZ+NJ9+dv7h8pgGLYuqcBUQ==",
      "dependencies": {
        "@turf/clean-coords": "^7.1.0",
        "@turf/clone": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/simplify/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/square": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/square/-/square-7.1.0.tgz",
      "integrity": "sha512-ANuA+WXZheGTLW6Veq0i+/B2S4KMhEHAixDv9gQEb9e6FTyqTJVwrqP4CHI3OzA3DZ/ytFf+NTKVofetO/BBQg==",
      "dependencies": {
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/square-grid": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/square-grid/-/square-grid-7.1.0.tgz",
      "integrity": "sha512-JyhsALULVRlkh8htdTi9aXaXFSUv6wRNbeFbqyGJKKlA5eF+AYmyWdI/BlFGQN27xtbtMPeAuLmj+8jaB2omGw==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/rectangle-grid": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/square-grid/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/square/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/standard-deviational-ellipse": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/standard-deviational-ellipse/-/standard-deviational-ellipse-7.1.0.tgz",
      "integrity": "sha512-JqvQFH/witHh+3XgPC1Qk4+3G8w8WQta2NTJjnGinOgFulH+7RD4DcxCT+XXtCHoeq8IvL9VPJRX3ciaW5nSCg==",
      "dependencies": {
        "@turf/center-mean": "^7.1.0",
        "@turf/ellipse": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@turf/points-within-polygon": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/standard-deviational-ellipse/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/tag": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/tag/-/tag-7.1.0.tgz",
      "integrity": "sha512-cD8TC++DnNmdI1B/apTf3nj2zRNY6SoLRliB8K76OB+70Kev8tOf4ZVgAqOd0u+Hpdg/T6l7dO7fyJ6UouE7jA==",
      "dependencies": {
        "@turf/boolean-point-in-polygon": "^7.1.0",
        "@turf/clone": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/tag/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/tesselate": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/tesselate/-/tesselate-7.1.0.tgz",
      "integrity": "sha512-E/Z94Mx6kUjvQVbEcSuM9MbEo2dkOczRe4ZzjhFlLgJh1dCkfRgwYLH49mb2CcfG/me1arxoCgmtG+qgm7LrCg==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "earcut": "^2.2.4",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/tesselate/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/tin": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/tin/-/tin-7.1.0.tgz",
      "integrity": "sha512-h8Bdm0IYN6OpKHM8lBRWGxkJnZcxL0KYecf8U6pa6DCEYsEXuEExMTvYSD2OmqIsL5ml8P6RjwgyI+dZeE0O9A==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/tin/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/transform-rotate": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/transform-rotate/-/transform-rotate-7.1.0.tgz",
      "integrity": "sha512-Vp7VBZ6DqaPV8mkwSycksBFRLqSj3y16zg+uEPSCsXUjbFtw9DOLcyH2F5vMpnC2bOpS9NOB4hebhJRwBwAPWQ==",
      "dependencies": {
        "@turf/centroid": "^7.1.0",
        "@turf/clone": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@turf/rhumb-bearing": "^7.1.0",
        "@turf/rhumb-destination": "^7.1.0",
        "@turf/rhumb-distance": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/transform-rotate/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/transform-scale": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/transform-scale/-/transform-scale-7.1.0.tgz",
      "integrity": "sha512-m5fLnh3JqrWSv0sAC8Aieet/fr5IZND8BFaE9LakMidtNaJqOIPOyVmUoklcrGn6eK6MX+66rRPn+5a1pahlLQ==",
      "dependencies": {
        "@turf/bbox": "^7.1.0",
        "@turf/center": "^7.1.0",
        "@turf/centroid": "^7.1.0",
        "@turf/clone": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@turf/rhumb-bearing": "^7.1.0",
        "@turf/rhumb-destination": "^7.1.0",
        "@turf/rhumb-distance": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/transform-scale/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/transform-translate": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/transform-translate/-/transform-translate-7.1.0.tgz",
      "integrity": "sha512-XA6Oh7VqUDrieY9m9/OF4XpBTd8qlfVGi3ObywojCqtHaHKLK3aXwTBZ276i0QKmZqOQA+2jFa9NhgF/TgBDrw==",
      "dependencies": {
        "@turf/clone": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@turf/rhumb-destination": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/transform-translate/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/triangle-grid": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/triangle-grid/-/triangle-grid-7.1.0.tgz",
      "integrity": "sha512-hrPyRAuX5PKu7txmc/11VPKrlJDR+JGzd+eijupKTspNLR4n2sqZUx8UXqSxZ/1nq06ScTyjIfGQJVzlRS8BTg==",
      "dependencies": {
        "@turf/distance": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/intersect": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/triangle-grid/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/truncate": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/truncate/-/truncate-7.1.0.tgz",
      "integrity": "sha512-rrF3AML9PGZw2i5wmt53ESI+Ln9cZyCXgJ7QrEvkT8NbE4OFgmw6p8/1xT8+VEWFSpD4gHz+hmM+5FaFxXvtNg==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/truncate/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/turf": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/turf/-/turf-7.1.0.tgz",
      "integrity": "sha512-7NA6tAjbu9oIvIfpRO5AdPrZbFTlUFU02HVA7sLJM9jFeNIZovW09QuDo23uoS2z5l94SXV1GgKKxN5wo7prCw==",
      "dependencies": {
        "@turf/along": "^7.1.0",
        "@turf/angle": "^7.1.0",
        "@turf/area": "^7.1.0",
        "@turf/bbox": "^7.1.0",
        "@turf/bbox-clip": "^7.1.0",
        "@turf/bbox-polygon": "^7.1.0",
        "@turf/bearing": "^7.1.0",
        "@turf/bezier-spline": "^7.1.0",
        "@turf/boolean-clockwise": "^7.1.0",
        "@turf/boolean-concave": "^7.1.0",
        "@turf/boolean-contains": "^7.1.0",
        "@turf/boolean-crosses": "^7.1.0",
        "@turf/boolean-disjoint": "^7.1.0",
        "@turf/boolean-equal": "^7.1.0",
        "@turf/boolean-intersects": "^7.1.0",
        "@turf/boolean-overlap": "^7.1.0",
        "@turf/boolean-parallel": "^7.1.0",
        "@turf/boolean-point-in-polygon": "^7.1.0",
        "@turf/boolean-point-on-line": "^7.1.0",
        "@turf/boolean-touches": "^7.1.0",
        "@turf/boolean-valid": "^7.1.0",
        "@turf/boolean-within": "^7.1.0",
        "@turf/buffer": "^7.1.0",
        "@turf/center": "^7.1.0",
        "@turf/center-mean": "^7.1.0",
        "@turf/center-median": "^7.1.0",
        "@turf/center-of-mass": "^7.1.0",
        "@turf/centroid": "^7.1.0",
        "@turf/circle": "^7.1.0",
        "@turf/clean-coords": "^7.1.0",
        "@turf/clone": "^7.1.0",
        "@turf/clusters": "^7.1.0",
        "@turf/clusters-dbscan": "^7.1.0",
        "@turf/clusters-kmeans": "^7.1.0",
        "@turf/collect": "^7.1.0",
        "@turf/combine": "^7.1.0",
        "@turf/concave": "^7.1.0",
        "@turf/convex": "^7.1.0",
        "@turf/destination": "^7.1.0",
        "@turf/difference": "^7.1.0",
        "@turf/dissolve": "^7.1.0",
        "@turf/distance": "^7.1.0",
        "@turf/distance-weight": "^7.1.0",
        "@turf/ellipse": "^7.1.0",
        "@turf/envelope": "^7.1.0",
        "@turf/explode": "^7.1.0",
        "@turf/flatten": "^7.1.0",
        "@turf/flip": "^7.1.0",
        "@turf/geojson-rbush": "^7.1.0",
        "@turf/great-circle": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/hex-grid": "^7.1.0",
        "@turf/interpolate": "^7.1.0",
        "@turf/intersect": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@turf/isobands": "^7.1.0",
        "@turf/isolines": "^7.1.0",
        "@turf/kinks": "^7.1.0",
        "@turf/length": "^7.1.0",
        "@turf/line-arc": "^7.1.0",
        "@turf/line-chunk": "^7.1.0",
        "@turf/line-intersect": "^7.1.0",
        "@turf/line-offset": "^7.1.0",
        "@turf/line-overlap": "^7.1.0",
        "@turf/line-segment": "^7.1.0",
        "@turf/line-slice": "^7.1.0",
        "@turf/line-slice-along": "^7.1.0",
        "@turf/line-split": "^7.1.0",
        "@turf/line-to-polygon": "^7.1.0",
        "@turf/mask": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@turf/midpoint": "^7.1.0",
        "@turf/moran-index": "^7.1.0",
        "@turf/nearest-neighbor-analysis": "^7.1.0",
        "@turf/nearest-point": "^7.1.0",
        "@turf/nearest-point-on-line": "^7.1.0",
        "@turf/nearest-point-to-line": "^7.1.0",
        "@turf/planepoint": "^7.1.0",
        "@turf/point-grid": "^7.1.0",
        "@turf/point-on-feature": "^7.1.0",
        "@turf/point-to-line-distance": "^7.1.0",
        "@turf/points-within-polygon": "^7.1.0",
        "@turf/polygon-smooth": "^7.1.0",
        "@turf/polygon-tangents": "^7.1.0",
        "@turf/polygon-to-line": "^7.1.0",
        "@turf/polygonize": "^7.1.0",
        "@turf/projection": "^7.1.0",
        "@turf/quadrat-analysis": "^7.1.0",
        "@turf/random": "^7.1.0",
        "@turf/rectangle-grid": "^7.1.0",
        "@turf/rewind": "^7.1.0",
        "@turf/rhumb-bearing": "^7.1.0",
        "@turf/rhumb-destination": "^7.1.0",
        "@turf/rhumb-distance": "^7.1.0",
        "@turf/sample": "^7.1.0",
        "@turf/sector": "^7.1.0",
        "@turf/shortest-path": "^7.1.0",
        "@turf/simplify": "^7.1.0",
        "@turf/square": "^7.1.0",
        "@turf/square-grid": "^7.1.0",
        "@turf/standard-deviational-ellipse": "^7.1.0",
        "@turf/tag": "^7.1.0",
        "@turf/tesselate": "^7.1.0",
        "@turf/tin": "^7.1.0",
        "@turf/transform-rotate": "^7.1.0",
        "@turf/transform-scale": "^7.1.0",
        "@turf/transform-translate": "^7.1.0",
        "@turf/triangle-grid": "^7.1.0",
        "@turf/truncate": "^7.1.0",
        "@turf/union": "^7.1.0",
        "@turf/unkink-polygon": "^7.1.0",
        "@turf/voronoi": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/turf/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/union": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/union/-/union-7.1.0.tgz",
      "integrity": "sha512-7VI8jONdBg9qmbfNlLQycPr93l5aU9HGMgWI9M6pb4ERuU2+p8KgffCgs2NyMtP2HxPrKSybzj31g7bnbEKofQ==",
      "dependencies": {
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "polygon-clipping": "^0.15.3",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/union/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/unkink-polygon": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/unkink-polygon/-/unkink-polygon-7.1.0.tgz",
      "integrity": "sha512-pqkirni2aLpRA1ELFIuJz+mkjYyJQX8Ar6BflSu1b0ajY/CTrcDxbIv1x8UfvbybLzdJc4Gxzg5mo4cEtSwtaQ==",
      "dependencies": {
        "@turf/area": "^7.1.0",
        "@turf/boolean-point-in-polygon": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/meta": "^7.1.0",
        "@types/geojson": "^7946.0.10",
        "rbush": "^3.0.1",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/unkink-polygon/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@turf/voronoi": {
      "version": "7.1.0",
      "resolved": "https://registry.npmmirror.com/@turf/voronoi/-/voronoi-7.1.0.tgz",
      "integrity": "sha512-xUvzPDG6GaqEekgxd+pjeMKJXOYJ3eFIqUHbTe/ISKzzv3f2cFGiR2VH7ZGXri8d4ozzCQbUQ27ilHPPLf5+xw==",
      "dependencies": {
        "@turf/clone": "^7.1.0",
        "@turf/helpers": "^7.1.0",
        "@turf/invariant": "^7.1.0",
        "@types/d3-voronoi": "^1.1.12",
        "@types/geojson": "^7946.0.10",
        "d3-voronoi": "1.1.2",
        "tslib": "^2.6.2"
      },
      "funding": {
        "url": "https://opencollective.com/turf"
      }
    },
    "node_modules/@turf/voronoi/node_modules/tslib": {
      "version": "2.8.1",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
    },
    "node_modules/@types/d3-voronoi": {
      "version": "1.1.12",
      "resolved": "https://registry.npmmirror.com/@types/d3-voronoi/-/d3-voronoi-1.1.12.tgz",
      "integrity": "sha512-DauBl25PKZZ0WVJr42a6CNvI6efsdzofl9sajqZr2Gf5Gu733WkDdUGiPkUHXiUvYGzNNlFQde2wdZdfQPG+yw=="
    },
    "node_modules/@types/estree": {
      "version": "1.0.6",
      "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.6.tgz",
      "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
      "dev": true
    },
    "node_modules/@types/geojson": {
      "version": "7946.0.14",
      "resolved": "https://registry.npmmirror.com/@types/geojson/-/geojson-7946.0.14.tgz",
      "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg=="
    },
    "node_modules/@types/lodash": {
      "version": "4.17.13",
@@ -1494,8 +3915,18 @@
    "node_modules/commander": {
      "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==",
      "dev": true
      "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
    },
    "node_modules/concaveman": {
      "version": "1.2.1",
      "resolved": "https://registry.npmmirror.com/concaveman/-/concaveman-1.2.1.tgz",
      "integrity": "sha512-PwZYKaM/ckQSa8peP5JpVr7IMJ4Nn/MHIaWUjP4be+KoZ7Botgs8seAZGpmaOM+UZXawcdYRao/px9ycrCihHw==",
      "dependencies": {
        "point-in-polygon": "^1.1.0",
        "rbush": "^3.0.1",
        "robust-predicates": "^2.0.4",
        "tinyqueue": "^2.0.3"
      }
    },
    "node_modules/confbox": {
      "version": "0.1.8",
@@ -1512,6 +3943,24 @@
      "version": "3.1.3",
      "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
      "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
    },
    "node_modules/d3-array": {
      "version": "1.2.4",
      "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-1.2.4.tgz",
      "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw=="
    },
    "node_modules/d3-geo": {
      "version": "1.7.1",
      "resolved": "https://registry.npmmirror.com/d3-geo/-/d3-geo-1.7.1.tgz",
      "integrity": "sha512-O4AempWAr+P5qbk2bC2FuN/sDW4z+dN2wDf9QV3bxQt4M5HfOEeXLgJ/UKQW0+o1Dj8BE+L5kiDbdWUMjsmQpw==",
      "dependencies": {
        "d3-array": "1"
      }
    },
    "node_modules/d3-voronoi": {
      "version": "1.1.2",
      "resolved": "https://registry.npmmirror.com/d3-voronoi/-/d3-voronoi-1.1.2.tgz",
      "integrity": "sha512-RhGS1u2vavcO7ay7ZNAPo4xeDh/VYeGof3x5ZLJBQgYhLegxr3s5IykvWmJ94FTU6mcbtp4sloqZ54mP6R4Utw=="
    },
    "node_modules/dayjs": {
      "version": "1.11.13",
@@ -1567,6 +4016,11 @@
      "engines": {
        "node": ">=0.10"
      }
    },
    "node_modules/earcut": {
      "version": "2.2.4",
      "resolved": "https://registry.npmmirror.com/earcut/-/earcut-2.2.4.tgz",
      "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ=="
    },
    "node_modules/echarts": {
      "version": "5.5.1",
@@ -1702,6 +4156,11 @@
        "node": ">= 0.6"
      }
    },
    "node_modules/fast-deep-equal": {
      "version": "3.1.3",
      "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
    },
    "node_modules/fast-glob": {
      "version": "3.3.2",
      "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz",
@@ -1807,6 +4266,35 @@
        "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
      }
    },
    "node_modules/geojson-equality-ts": {
      "version": "1.0.2",
      "resolved": "https://registry.npmmirror.com/geojson-equality-ts/-/geojson-equality-ts-1.0.2.tgz",
      "integrity": "sha512-h3Ryq+0mCSN/7yLs0eDgrZhvc9af23o/QuC4aTiuuzP/MRCtd6mf5rLsLRY44jX0RPUfM8c4GqERQmlUxPGPoQ==",
      "dependencies": {
        "@types/geojson": "^7946.0.14"
      }
    },
    "node_modules/geojson-polygon-self-intersections": {
      "version": "1.2.1",
      "resolved": "https://registry.npmmirror.com/geojson-polygon-self-intersections/-/geojson-polygon-self-intersections-1.2.1.tgz",
      "integrity": "sha512-/QM1b5u2d172qQVO//9CGRa49jEmclKEsYOQmWP9ooEjj63tBM51m2805xsbxkzlEELQ2REgTf700gUhhlegxA==",
      "dependencies": {
        "rbush": "^2.0.1"
      }
    },
    "node_modules/geojson-polygon-self-intersections/node_modules/quickselect": {
      "version": "1.1.1",
      "resolved": "https://registry.npmmirror.com/quickselect/-/quickselect-1.1.1.tgz",
      "integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ=="
    },
    "node_modules/geojson-polygon-self-intersections/node_modules/rbush": {
      "version": "2.0.2",
      "resolved": "https://registry.npmmirror.com/rbush/-/rbush-2.0.2.tgz",
      "integrity": "sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA==",
      "dependencies": {
        "quickselect": "^1.0.1"
      }
    },
    "node_modules/glob-parent": {
      "version": "5.1.2",
      "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
@@ -1907,6 +4395,14 @@
        "graceful-fs": "^4.1.6"
      }
    },
    "node_modules/jsts": {
      "version": "2.7.1",
      "resolved": "https://registry.npmmirror.com/jsts/-/jsts-2.7.1.tgz",
      "integrity": "sha512-x2wSZHEBK20CY+Wy+BPE7MrFQHW6sIsdaGUMEqmGAio+3gFzQaBYPwLRonUfQf9Ak8pBieqj9tUofX1+WtAEIg==",
      "engines": {
        "node": ">= 12"
      }
    },
    "node_modules/local-pkg": {
      "version": "0.5.0",
      "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz",
@@ -1950,6 +4446,11 @@
      "dependencies": {
        "@jridgewell/sourcemap-codec": "^1.5.0"
      }
    },
    "node_modules/marchingsquares": {
      "version": "1.3.3",
      "resolved": "https://registry.npmmirror.com/marchingsquares/-/marchingsquares-1.3.3.tgz",
      "integrity": "sha512-gz6nNQoVK7Lkh2pZulrT4qd4347S/toG9RXH2pyzhLgkL5mLkBoqgv4EvAGXcV0ikDW72n/OQb3Xe8bGagQZCg=="
    },
    "node_modules/memoize-one": {
      "version": "6.0.0",
@@ -2225,6 +4726,30 @@
        "pathe": "^1.1.2"
      }
    },
    "node_modules/point-in-polygon": {
      "version": "1.1.0",
      "resolved": "https://registry.npmmirror.com/point-in-polygon/-/point-in-polygon-1.1.0.tgz",
      "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw=="
    },
    "node_modules/point-in-polygon-hao": {
      "version": "1.1.0",
      "resolved": "https://registry.npmmirror.com/point-in-polygon-hao/-/point-in-polygon-hao-1.1.0.tgz",
      "integrity": "sha512-3hTIM2j/v9Lio+wOyur3kckD4NxruZhpowUbEgmyikW+a2Kppjtu1eN+AhnMQtoHW46zld88JiYWv6fxpsDrTQ=="
    },
    "node_modules/polygon-clipping": {
      "version": "0.15.7",
      "resolved": "https://registry.npmmirror.com/polygon-clipping/-/polygon-clipping-0.15.7.tgz",
      "integrity": "sha512-nhfdr83ECBg6xtqOAJab1tbksbBAOMUltN60bU+llHVOL0e5Onm1WpAXXWXVB39L8AJFssoIhEVuy/S90MmotA==",
      "dependencies": {
        "robust-predicates": "^3.0.2",
        "splaytree": "^3.1.0"
      }
    },
    "node_modules/polygon-clipping/node_modules/robust-predicates": {
      "version": "3.0.2",
      "resolved": "https://registry.npmmirror.com/robust-predicates/-/robust-predicates-3.0.2.tgz",
      "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg=="
    },
    "node_modules/postcss": {
      "version": "8.4.47",
      "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.47.tgz",
@@ -2277,12 +4802,25 @@
        }
      ]
    },
    "node_modules/quickselect": {
      "version": "2.0.0",
      "resolved": "https://registry.npmmirror.com/quickselect/-/quickselect-2.0.0.tgz",
      "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw=="
    },
    "node_modules/range-parser": {
      "version": "1.2.1",
      "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
      "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
      "engines": {
        "node": ">= 0.6"
      }
    },
    "node_modules/rbush": {
      "version": "3.0.1",
      "resolved": "https://registry.npmmirror.com/rbush/-/rbush-3.0.1.tgz",
      "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==",
      "dependencies": {
        "quickselect": "^2.0.0"
      }
    },
    "node_modules/readdirp": {
@@ -2307,6 +4845,11 @@
        "iojs": ">=1.0.0",
        "node": ">=0.10.0"
      }
    },
    "node_modules/robust-predicates": {
      "version": "2.0.4",
      "resolved": "https://registry.npmmirror.com/robust-predicates/-/robust-predicates-2.0.4.tgz",
      "integrity": "sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg=="
    },
    "node_modules/rollup": {
      "version": "4.24.3",
@@ -2482,6 +5025,11 @@
      "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz",
      "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
    },
    "node_modules/skmeans": {
      "version": "0.9.7",
      "resolved": "https://registry.npmmirror.com/skmeans/-/skmeans-0.9.7.tgz",
      "integrity": "sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg=="
    },
    "node_modules/source-map": {
      "version": "0.6.1",
      "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
@@ -2509,6 +5057,11 @@
        "source-map": "^0.6.0"
      }
    },
    "node_modules/splaytree": {
      "version": "3.1.2",
      "resolved": "https://registry.npmmirror.com/splaytree/-/splaytree-3.1.2.tgz",
      "integrity": "sha512-4OM2BJgC5UzrhVnnJA4BkHKGtjXNzzUfpQjCO8I05xYPsfS/VuQDwjCGGMi8rYQilHEV4j8NBqTFbls/PZEE7A=="
    },
    "node_modules/statuses": {
      "version": "2.0.1",
      "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz",
@@ -2529,6 +5082,14 @@
        "url": "https://github.com/sponsors/antfu"
      }
    },
    "node_modules/sweepline-intersections": {
      "version": "1.5.0",
      "resolved": "https://registry.npmmirror.com/sweepline-intersections/-/sweepline-intersections-1.5.0.tgz",
      "integrity": "sha512-AoVmx72QHpKtItPu72TzFL+kcYjd67BPLDoR0LarIk+xyaRg+pDTMFXndIEvZf9xEKnJv6JdhgRMnocoG0D3AQ==",
      "dependencies": {
        "tinyqueue": "^2.0.0"
      }
    },
    "node_modules/terser": {
      "version": "5.36.0",
      "resolved": "https://registry.npmmirror.com/terser/-/terser-5.36.0.tgz",
@@ -2546,6 +5107,11 @@
      "engines": {
        "node": ">=10"
      }
    },
    "node_modules/tinyqueue": {
      "version": "2.0.3",
      "resolved": "https://registry.npmmirror.com/tinyqueue/-/tinyqueue-2.0.3.tgz",
      "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA=="
    },
    "node_modules/to-regex-range": {
      "version": "5.0.1",
@@ -2567,6 +5133,30 @@
        "node": ">=0.6"
      }
    },
    "node_modules/topojson-client": {
      "version": "3.1.0",
      "resolved": "https://registry.npmmirror.com/topojson-client/-/topojson-client-3.1.0.tgz",
      "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==",
      "dependencies": {
        "commander": "2"
      },
      "bin": {
        "topo2geo": "bin/topo2geo",
        "topomerge": "bin/topomerge",
        "topoquantize": "bin/topoquantize"
      }
    },
    "node_modules/topojson-server": {
      "version": "3.0.1",
      "resolved": "https://registry.npmmirror.com/topojson-server/-/topojson-server-3.0.1.tgz",
      "integrity": "sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw==",
      "dependencies": {
        "commander": "2"
      },
      "bin": {
        "geo2topo": "bin/geo2topo"
      }
    },
    "node_modules/tslib": {
      "version": "2.3.0",
      "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
src/api/emergencySupplies/emergencySupplies.js
@@ -12,6 +12,15 @@
export const getCompanyList = (params) => {
    const url = `/yw/emergencySupplies/getEmergencySuppliesList`;
    return request({
        url,
        method: 'get',
        params,
    });
};
export const getList = (params) => {
    const url = `/yw/emergencySupplies/page`;
    return request({
src/api/facility.js
New file
@@ -0,0 +1,10 @@
import request from 'utils/http'
export const getFacilityList = (params) => {
    const url = `/yw/facility/getFacilityList`;
    return request({
        url,
        method: 'get',
        params,
    });
};
src/pages/first/index.vue
@@ -29,6 +29,8 @@
</template>
<script setup>
import { getAssetsFile } from 'utils/utils'
const loginOutBg = getAssetsFile('login.png', '/images')
import mainMenu from './components/mainMenu.vue'
</script>
src/pages/layout/components/scomponents/layersControl.vue
@@ -555,144 +555,14 @@
EventBus.on('restHandleDelChange', restHandleDelChange)
onMounted(() => {
  handleCheckChange(data.filter(i => indexPoint.value.includes(i.id)))
  // handleCheckChange(data.filter(i => indexPoint.value.includes(i.id)))
})
const sharedData = computed(() => pointStore.sharedData)
//
watch(sharedData, (newValue) => {
  let companyInfo = JSON.parse(localStorage.getItem('companyInfo'))
// const sharedData = computed(() => pointStore.sharedData);
// watch(sharedData, (newValue) => {
// });
  if (newValue === '1') {
    // 处理切换了应急空间页面,把图标隐藏
    if (indexPoint.value.includes('3')) {
      let allList = data.filter(i => indexPoint.value.includes(i.id))
      let temp = indexPoint.value.filter(ie => ie != '3')
      // console.log(temp, '***************************************')
      let checkList = data.filter(i => temp.includes(i.id))
      treeRef.value?.setCheckedNodes(checkList)
      handleCheckChangeTwo(allList, companyInfo.id)
    }
    return
  }
  // 处理切换到应急空间页面,把图标显示
  console.log('sharedData changed to:', newValue)
  // 获取缓存里面的企业id
  indexPoint.value.includes(newValue) ? '' : indexPoint.value.push(newValue)
  let checkList = data.filter(i => indexPoint.value.includes(i.id))
  treeRef.value?.setCheckedNodes(checkList)
  handleCheckChangeTwo(checkList, companyInfo.id)
})
const handleCheckChangeTwo = (data, firmId) => {
  let options = treeRef.value?.getCheckedNodes()
  // console.log(options, "*************222222***********")
  collectedNodes.value = []
  collectNodesWithFlag(data)
  collectedNodes.value.forEach(item => {
    let layerName = item.layerName + '_' + firmId
    console.log(layerName, "**************************************")
    if (options.some(i => i.id == item.id)) {
      if (item.subType == 'labelPoint') {
        if (!addTileLayers[layerName]) {
          addTileLayers[layerName] = new DC.HtmlLayer(addTileLayers[layerName])
          window.$viewer.addLayer(addTileLayers[layerName])
          let params = { ...item.params }
          params.firmId = firmId
          item.method(params).then(res => {
            let data = res.data.data.records
            data.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => {
              let iconEl = ''
              if ('showPanel' in item && item.showPanel == false) {
                if (item.backgroundIcon) {
                  iconEl = `
                  <div class="map-name">${i[item.showParams] || i.name}</div>
                  <div class="map-icon">
                    <img src="${item.backgroundIcon}">
                  </div>
                  `
                }
              } else {
                iconEl = `<div class="marsBlueGradientPnl">
                  <div>${i[item.showParams] || i.name}</div>
                </div>`
              }
              let divIcon = new DC.DivIcon(
                new DC.Position(i.lng, i.lat, 0),
                `<div class="public-map-popup">
                    ${iconEl}
                  </div>`
              )
              addTileLayers[layerName].addOverlay(divIcon)
            })
          })
        } else {
          addTileLayers[layerName].show = true
        }
      }
    } else {
      if (addTileLayers[layerName]) {
        if (item.subType == 'labelPoint') {
          addTileLayers[layerName].show = false
        }
      }
    }
  })
}
// const handleCheckChangeTwo = (data, firmId) => {
//   let options = treeRef.value?.getCheckedNodes()
//   console.log(options, "*************222222***********")
//   collectedNodes.value = []
//   collectNodesWithFlag(data)
//   collectedNodes.value.forEach(item => {
//     if (options.some(i => i.id == item.id)) {
//       if (item.subType == 'labelPoint') {
//         if (!addTileLayers[item.layerName]) {
//           addTileLayers[item.layerName] = new DC.HtmlLayer(addTileLayers[item.layerName])
//           window.$viewer.addLayer(addTileLayers[item.layerName])
//           let params = { ...item.params }
//           params.firmId = firmId
//           item.method(params).then(res => {
//             let data = res.data.data.records
//             data.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => {
//               let iconEl = ''
//               if ('showPanel' in item && item.showPanel == false) {
//                 if (item.backgroundIcon) {
//                   iconEl = `
//                   <div class="map-name">${i[item.showParams] || i.name}</div>
//                   <div class="map-icon">
//                     <img src="${item.backgroundIcon}">
//                   </div>
//                   `
//                 }
//               } else {
//                 iconEl = `<div class="marsBlueGradientPnl">
//                   <div>${i[item.showParams] || i.name}</div>
//                 </div>`
//               }
//               let divIcon = new DC.DivIcon(
//                 new DC.Position(i.lng, i.lat, 0),
//                 `<div class="public-map-popup">
//                     ${iconEl}
//                   </div>`
//               )
//               addTileLayers[item.layerName].addOverlay(divIcon)
//             })
//           })
//         } else {
//           addTileLayers[item.layerName].show = true
//         }
//       }
//     } else {
//       if (addTileLayers[item.layerName]) {
//         if (item.subType == 'labelPoint') {
//           addTileLayers[item.layerName].show = false
//         }
//       }
//     }
//   })
// }
onUnmounted(() => {
  tileLayers && window.$viewer.removeLayer(tileLayers)
src/pages/layout/index.vue
@@ -30,8 +30,6 @@
<script setup>
import { useRouter, useRoute } from 'vue-router'
let router = useRouter()
import { getAssetsFile } from 'utils/utils'
const loginOutBg = getAssetsFile('login.png', '/images')
import mainSearch from './components/mainSearch.vue'
import mainTool from './components/mainTool.vue'
src/styles/element/index.scss
@@ -7,6 +7,8 @@
  border: none;
  .el-table__header-wrapper {
    font-size: 18px;
    tr {
      height: 38px;
      background: rgba(35, 53, 92, 0.8) !important;
@@ -24,6 +26,8 @@
  }
  .el-table__body-wrapper {
    font-size: 16px;
    table {
      border-collapse: separate !important;
      border-spacing: 0 10px !important;
src/views/companyInfo/components/box/dataContent.vue
@@ -1,139 +1,160 @@
<!--
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2023-03-13 14:54:26
 * @Date: 2023-03-10 15:27:59
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2023-03-13 15:00:55
 * @FilePath: \forest-fire\src\views\statistics\components\box\dataContent.vue
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
 * @LastEditTime: 2024-11-12 18:10:32
 * @FilePath: \bigScreen\src\views\space\components\leftContainer.vue
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<script setup>
import publicContent from './publicContent.vue'
const fxy = () => {
    if (state.layer) {
        console.log("***************************")
        window.$viewer.removeLayer(state.layer)
import { getFacilityList } from "@/api/facility"
import { onUnmounted, reactive } from 'vue'
const resData = reactive({
    data: [{
        label: '防线一',
        value: '1',
        type: 1,
        remark: '防火提及配套设置、装置围堰、罐区围堰'
    }, {
        label: '防线二',
        value: '2',
        type: 2,
        remark: '雨污水排口一体化闸阀、车间收集池、雨污管阀'
    },
    {
        label: '防线三',
        value: '3',
        type: 3,
        remark: '事故应急池、雨水收集池'
    }
    let layer = new DC.VectorLayer(`${row.id}`)
    state.layer = layer
    window.$viewer.addLayer(layer)
    let material = new DC.PolylineDashMaterialProperty({
        color: DC.Color.ORANGE
    ]
})
const curSelect = ref('1')
let addTileLayers = {}
const handleCheckChange = (row) => {
    let companyInfo = JSON.parse(localStorage.getItem('companyInfo'))
    console.log(row)
    resData.data.forEach(item => {
        if (row.value === item.value) {
            if (!addTileLayers[item.label]) {
                addTileLayers[item.label] = new DC.HtmlLayer(item.label)
                window.$viewer.addLayer(addTileLayers[item.label])
                getFacilityList({
                    firmId: companyInfo.id,
                    size: 1000,
                    facLevel: item.type
                }).then(res => {
                    let data = res.data.data
                    data.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => {
                        let iconEl = ''
                        if ('showPanel' in item && item.showPanel == false) {
                            if (item.backgroundIcon) {
                                iconEl = `
                          <div class="map-name">${i[item.showParams] || i.name}</div>
                          <div class="map-icon">
                            <img src="${item.backgroundIcon}">
                          </div>
                          `
                            }
                        } else {
                            iconEl = `<div class="marsBlueGradientPnl">
                                 <div>${i.name}</div>  </div>`
                        }
                        let divIcon = new DC.DivIcon(
                            new DC.Position(i.lng, i.lat, 0),
                            `<div class="public-map-popup">
                    ${iconEl}
                  </div>`
                        )
                        divIcon.attrParams = i
                        let incident = () => { }
                        if (item.incident) incident = item.incident
                        divIcon.on(DC.MouseEventType.CLICK, incident)
                        addTileLayers[item.label].addOverlay(divIcon)
                    })
                })
            } else {
                addTileLayers[item.label].show = true
            }
        } else {
            if (addTileLayers[item.label]) {
                addTileLayers[item.label].show = false
            }
        }
    })
    let item = new DC.Position(row.lng, row.lat, 100)
    let label = new DC.CustomLabel(
        item,
        row.name
    )
    label.setStyle({
        fillColor: DC.Color.YELLOW,
        font: '12px',
        pixelOffset: { x: 0, y: -10 },
    })
    label.setVLine({
        width: 2,
        material
    })
    layer.addOverlay(label)
}
const fxe = () => {
    if (state.layer) {
        console.log("***************************")
        window.$viewer.removeLayer(state.layer)
    }
    let layer = new DC.VectorLayer(`${row.id}`)
    state.layer = layer
    window.$viewer.addLayer(layer)
    let material = new DC.PolylineDashMaterialProperty({
        color: DC.Color.ORANGE
    })
    let item = new DC.Position(row.lng, row.lat, 100)
    let label = new DC.CustomLabel(
        item,
        row.name
    )
    label.setStyle({
        fillColor: DC.Color.YELLOW,
        font: '12px',
        pixelOffset: { x: 0, y: -10 },
    })
    label.setVLine({
        width: 2,
        material
    })
    layer.addOverlay(label)
const tabClick = (item) => {
    handleCheckChange(item)
    curSelect.value = item.value
}
const fxs = () => {
    if (state.layer) {
        console.log("***************************")
        window.$viewer.removeLayer(state.layer)
const showOn = computed(() => (item) => {
    if (curSelect.value == item.value) {
        return true
    }
    let layer = new DC.VectorLayer(`${row.id}`)
    state.layer = layer
    window.$viewer.addLayer(layer)
    let material = new DC.PolylineDashMaterialProperty({
        color: DC.Color.ORANGE
    return false
})
onMounted(() => {
    tabClick(resData.data[0])
}),
    onUnmounted(() => {
        let arr = Object.keys(addTileLayers)
        arr.forEach(i => {
            addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i])
        })
    })
    let item = new DC.Position(row.lng, row.lat, 100)
    let label = new DC.CustomLabel(
        item,
        row.name
    )
    label.setStyle({
        fillColor: DC.Color.YELLOW,
        font: '12px',
        pixelOffset: { x: 0, y: -10 },
    })
    label.setVLine({
        width: 2,
        material
    })
    layer.addOverlay(label)
}
</script>
<template>
    <public-content>
        <template #content>
            <div class="data-content">
                <ul>
                    <li @click="fxy">防线一</li>
                    <li @click="fxe">防线二</li>
                    <li @click="fxs">防线三</li>
                </ul>
    <div class="left-container cur-container">
        <div class="tablist h100">
            <div class="cursor-p" :class="{ on: showOn(item) }" v-for="item, index in resData.data" :key="index"
                @click="tabClick(item)">
                <div class="nowrap-ellipsis-hidden">
                    {{ item.label }}
                </div>
            </div>
        </template>
    </public-content>
        </div>
    </div>
</template>
<style lang="scss" scoped>
.data-content {
    color: #fff;
}
.cur-container {
    background: transparent;
    pointer-events: none;
.data-content>ul {
    margin-top: 90px;
    margin-left: 90px;
}
    .tablist {
        pointer-events: all;
.data-content>ul>li {
    display: block;
    color: #000;
    margin-top: 160px;
    background-color: #fff;
    width: 60px;
    height: 60px;
    line-height: 60px;
    text-align: center;
    border-radius: 50%;
        &>div {
            margin-top: 86px;
            padding: 10px;
            width: 64px;
            height: 64px;
            line-height: 64px;
            text-align: center;
            border-radius: 50%;
            box-shadow: inset 0 0 40px #409eff;
            color: #fff;
            box-sizing: content-box;
            &.on {
                position: relative;
                color: #75b1ff;
            }
        }
    }
}
</style>
</style>
src/views/companyInfo/components/box/fireTrend.vue
@@ -115,18 +115,13 @@
      </el-form-item>
    </el-form>
    <div class="table-box">
      <el-table :data="tableData" style="width: 100%" :header-cell-style="headerCellStyle" :cell-style="tableCellStyle"
        v-loading="loading" element-loading-background="rgba(122, 122, 122, 0.1)">
        <el-table-column fixed prop="name" label="名称" />
        <el-table-column prop="numUnit" label="数量" width="100" />
        <!-- <el-table-column prop="firmName" label="单位名称" /> -->
        <el-table-column prop="personInCha" label="负责人" width="100" />
      <el-table :data="tableData" empty-text="" style="width: 100%" :header-cell-style="headerCellStyle"
        :cell-style="tableCellStyle" element-loading-background="rgba(122, 122, 122, 0.1)">
        <el-table-column prop="name" label="名称" />
        <el-table-column prop="numUnit" label="数量" />
        <el-table-column prop="personInCha" label="负责人" />
      </el-table>
    </div>
    <!-- <div class="el-page">
      <el-pagination background layout="prev, pager, next" :page-size="pages.pageSize" :total="pages.total"
        @size-change="handleSizeChange" @current-change="handleCurrentChange" />
    </div> -->
  </div>
</template>
src/views/companyInfo/components/box/occurStatistics.vue
@@ -30,169 +30,13 @@
  data.companyInfo = JSON.parse(localStorage.getItem('companyInfo'))
  getLists()
})
// 表格样式
const tableCellStyle = ({ row, column }) => {
  return { background: "#152851", color: "#fff" }
}
// 表格表头样式
const headerCellStyle = ({ }) => {
  return {
    background: "#152851",
    color: "#fff",
  }
}
// 搜索条件
const formInline = reactive({
  perInCha: "",
  type: ''
})
// 提交查询
const onSubmit = () => {
  pages.page = 1
  pages.pageSize = 13
  pages.total = 0
  console.log("submit!")
  getLists(formInline)
}
// 分页树改变
const handleSizeChange = (val) => {
  pages.pageSize = val
  getLists(formInline)
}
// 分页改变
const handleCurrentChange = (val) => {
  pages.page = val
  getLists(formInline)
}
// 重置条件
const clearBtn = () => {
  formInline.perInCha = ''
  formInline.type = ''
  pages.page = 1
  pages.pageSize = 13
  pages.total = 0
  getLists(formInline)
}
// 查询分页数据
function getLists (param = {}) {
  param.current = pages.page
  param.size = pages.pageSize
  param.firmId = data.companyInfo.id
  loading.value = true
  getList(param)
    .then((res) => {
      const data = res.data.data
      data.records.forEach((element) => {
        if (element.type == 1) {
          element.ownership = "园区"
        } else {
          element.ownership = "企业"
        }
      })
      tableData.value = data.records
      pages.total = data.total
      loading.value = false
    })
    .catch((err) => {
      loading.value = false
      console.log(err)
    })
}
</script>
<template>
  <div class="search-box">
    <el-form :inline="true" :model="formInline" class="demo-form-inline">
      <el-form-item label="" class="form-item-input">
        <el-input v-model="formInline.perInCha" placeholder="请输入姓名" clearable style="width: 120px" />
      </el-form-item>
      <!-- <el-form-item label="归属">
                        <el-select v-model="formInline.type" placeholder="请选择" clearable style="width: 120px">
                            <el-option label="园区" value="1" />
                            <el-option label="企业" value="2" />
                        </el-select>
                    </el-form-item> -->
      <el-form-item class="search-btn">
        <el-button type="primary" @click="onSubmit">查询</el-button>
        <el-button type="primary" @click="clearBtn">重置</el-button>
      </el-form-item>
    </el-form>
    <el-table :data="tableData" style="width: 100%" :header-cell-style="headerCellStyle" :cell-style="tableCellStyle"
      v-loading="loading" element-loading-background="rgba(122, 122, 122, 0.1)">
      <el-table-column fixed prop="perInCha" label="责任人姓名" />
      <el-table-column prop="perInChaPho" label="联系电话" />
      <!-- <el-table-column prop="firmName" label="单位名称" /> -->
      <el-table-column prop="perInCha" label="负责人" width="100" />
    </el-table>
    <div class="el-page">
      <el-pagination background layout="prev, pager, next" :page-size="pages.pageSize" :total="pages.total"
        @size-change="handleSizeChange" @current-change="handleCurrentChange" />
    </div>
    1111111111111111
  </div>
</template>
<style lang="scss" scoped>
.el-form-item__label {
  color: #fff !important;
}
/* 当表格没有数据时,修改表格的背景颜色 */
.el-table--empty .el-table__body {
  background-color: #19284e !important;
  /* 你想要的背景颜色 */
}
.search-box {
  padding: 10px;
  ::v-deep .el-table__body-wrapper {
    background-color: #152851;
  }
}
.el-page {
  margin-top: 10px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  // margin-bottom:10px;
}
.form-item-input {
  width: 160px;
  ::v-deep(.el-input) {
    width: 0;
    flex: 1;
    .el-input__wrapper {
      font-size: 16px;
      font-weight: 400;
      border-radius: 0;
      background: rgba(135, 158, 199, 0.3);
      box-shadow: inset 0px 3px 7px 0px rgba(42, 138, 236, 0.95);
      .el-input__inner {
        color: #BFD3E5;
      }
    }
  }
}
.search-btn {
  ::v-deep .el-button--primary {
    background-color: transparent;
    border-color: none;
    border: none;
    cursor: pointer;
    color: #edffff;
    background: rgba(135, 158, 199, 0.3);
    box-shadow: inset 0px 3px 7px 0px rgba(42, 138, 236, 0.95);
  }
}
</style>
<style lang="scss" scoped></style>
src/views/companyInfo/components/box/unitContent.vue
@@ -1,25 +1,163 @@
<!--
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2023-03-13 14:54:26
 * @Date: 2023-03-10 15:27:59
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2023-03-13 15:00:55
 * @FilePath: \forest-fire\src\views\statistics\components\box\dataContent.vue
 * @LastEditTime: 2024-11-12 18:10:32
 * @FilePath: \bigScreen\src\views\space\components\leftContainer.vue
 * @Description: 
 * 
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. 
-->
<script setup>
import publicContent from './publicContent.vue'
import EventBus from 'utils/bus'
import { getDictionary } from "@/api/dict/dict"
import { onUnmounted, reactive } from 'vue'
import { getList } from "@/api/space/space"
const resData = reactive({
    data: []
})
const curSelect = ref('')
let addTileLayers = {}
const handleCheckChange = (row) => {
    let companyInfo = JSON.parse(localStorage.getItem('companyInfo'))
    resData.data.forEach(item => {
        if (row.value == item.value) {
            if (!addTileLayers[item.label]) {
                addTileLayers[item.label] = new DC.HtmlLayer(item.label)
                window.$viewer.addLayer(addTileLayers[item.label])
                getList({
                    firmId: companyInfo.id,
                    size: 1000,
                    type: item.type,
                }).then(res => {
                    let data = res.data.data.records
                    data.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => {
                        let iconEl = ''
                        if ('showPanel' in item && item.showPanel == false) {
                            if (item.backgroundIcon) {
                                iconEl = `
                  <div class="map-name">${i[item.showParams] || i.name}</div>
                  <div class="map-icon">
                    <img src="${item.backgroundIcon}">
                  </div>
                  `
                            }
                        } else {
                            iconEl = `<div class="marsBlueGradientPnl">
                  <div>${i.name}</div>
                </div>`
                        }
                        let divIcon = new DC.DivIcon(
                            new DC.Position(i.lng, i.lat, 0),
                            `<div class="public-map-popup">
                    ${iconEl}
                  </div>`
                        )
                        divIcon.attrParams = i
                        let incident = () => { }
                        if (item.incident) incident = item.incident
                        divIcon.on(DC.MouseEventType.CLICK, incident)
                        addTileLayers[item.label].addOverlay(divIcon)
                    })
                })
            } else {
                addTileLayers[item.label].show = true
            }
        } else {
            if (addTileLayers[item.label]) {
                addTileLayers[item.label].show = false
            }
        }
    })
}
// 获取下拉字典
const getDictData = (code) => {
    const param = {
        code: code,
    }
    getDictionary(param).then((res) => {
        resData.data = res.data.data.map(item => {
            return {
                type: item.sort,
                label: item.dictValue,
                value: item.dictKey
            }
        })
        tabClick(resData.data[0])
    })
}
const tabClick = (item) => {
    handleCheckChange(item)
    curSelect.value = item.value
}
const showOn = computed(() => (item) => {
    if (curSelect.value == item.value) {
        return true
    }
    return false
})
getDictData("emergency_space_type")
onUnmounted(() => {
    let arr = Object.keys(addTileLayers)
    arr.forEach(i => {
        addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i])
    })
})
</script>
<template>
    <public-content>
        <template #content>
            <div>
    <div class="left-container cur-container">
        <div class="tablist h100">
            <div class="cursor-p" :class="{ on: showOn(item) }" v-for="item, index in resData.data" :key="index"
                @click="tabClick(item)">
                <div class="nowrap-ellipsis-hidden">
                    {{ item.label }}
                </div>
            </div>
        </template>
    </public-content>
        </div>
    </div>
</template>
<style lang="scss" scoped></style>
<style lang="scss" scoped>
.cur-container {
    background: transparent;
    pointer-events: none;
    .tablist {
        pointer-events: all;
        &>div {
            margin-top: 16px;
            padding: 10px;
            width: 64px;
            height: 64px;
            line-height: 64px;
            text-align: center;
            border-radius: 50%;
            box-shadow: inset 0 0 40px #409eff;
            color: #fff;
            box-sizing: content-box;
            &.on {
                position: relative;
                color: #75b1ff;
            }
        }
    }
}
</style>
src/views/companyInfo/components/leftContainer.vue
@@ -12,27 +12,38 @@
import dataContent from './box/dataContent.vue'
import unitContent from './box/unitContent.vue'
import fireContent from './box/fireContent.vue'
let state = defineProps({
  buttonIndex: {
    type: Number,
    default: 1
  }
})
</script>
<template>
  <div class="left-container">
    <div class="data box">
    <div class="unit box" v-if="state.buttonIndex == 3">
      <title-box>
        <template #titleName>
          <!-- 数据概览 -->
          <!-- 应急空间 -->
        </template>
      </title-box>
      <unit-content></unit-content>
    </div>
    <div class="data box" v-if="state.buttonIndex == 4">
      <title-box>
        <template #titleName>
          <!-- 三道防线 -->
        </template>
      </title-box>
      <data-content></data-content>
    </div>
    <!-- <div class="unit box">
      <title-box>
        <template #titleName>
          入住单位统计
        </template>
      </title-box>
      <unit-content></unit-content>
    </div> -->
    <!-- <div class="fire box">
      <title-box>
@@ -45,4 +56,16 @@
  </div>
</template>
<style lang="scss" scoped></style>
<style lang="scss" scoped>
.left-container {
  display: flex;
  flex-direction: column;
  position: absolute;
  top: 0;
  left: 0;
  width: 100px;
  height: 100%;
  pointer-events: auto;
  // background: rgba(28, 115, 195, 0.2);
}
</style>
src/views/companyInfo/components/mainMenu.vue
@@ -21,22 +21,18 @@
  [
    {
      menuName: '企业信息',
      path: '/layout/sub/companyInfo',
      value: 1,
    },
    {
      menuName: '应急物质',
      path: '/layout/sub/',
      value: 2,
    },
    {
      menuName: '应急空间',
      path: '/layout/ws',
      value: 3,
    },
    {
      menuName: '三道防线',
      path: '/layout/sj',
      value: 4,
    }
  ]
@@ -50,29 +46,17 @@
const goToPath = (params) => {
  if (params.value == 1) {
   useAppStore.updateSharedData('1')
    emit('childEvent', params.value)
    return
  } else if (params.value == 2) {
   useAppStore.updateSharedData('1')
    emit('childEvent', params.value)
    return
  } else if (params.value == 3) {
   useAppStore.updateSharedData('3')
    emit('childEvent', params.value)
    return
  } else if (params.value == 4) {
   useAppStore.updateSharedData('1')
    emit('childEvent', params.value)
    return
  }
  if (params.children && params.children.length > 0) return
  if (params.path) {
    if (router.currentRoute.value.path == params.path) return
    // router.push(params.path)
  } else {
    params.childrenFlag = !params.childrenFlag
  }
}
src/views/companyInfo/components/rightContainer.vue
@@ -58,7 +58,7 @@
      </div>
    </div>
    <div class="fire-trend box" v-if="state.buttonIndex == 3">
    <!-- <div class="fire-trend box" >
      <title-box>
        <template #titleName>
          救援队伍
@@ -67,7 +67,7 @@
      <div class="content-box">
        <occur-statistics></occur-statistics>
      </div>
    </div>
    </div> -->
  </div>
</template>
src/views/companyInfo/index.vue
@@ -63,7 +63,7 @@
    <div class="main-header">
      <centerContainer :button-index="buttonIndex" @childEvent="handleChildEvent"></centerContainer>
    </div>
    <div class="main-container" v-if="buttonIndex == 4">
    <div class="main-container">
      <left-container :button-index="buttonIndex"></left-container>
    </div>
src/views/pac/components/box/dataContent.vue
@@ -1,25 +1,158 @@
<!--
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2023-03-13 14:54:26
 * @Date: 2023-03-10 15:27:59
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2023-03-13 15:00:55
 * @FilePath: \forest-fire\src\views\statistics\components\box\dataContent.vue
 * @LastEditTime: 2024-11-12 18:10:32
 * @FilePath: \bigScreen\src\views\space\components\leftContainer.vue
 * @Description: 
 * 
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. 
-->
<script setup>
import publicContent from './publicContent.vue'
import { getList } from "@/api/space/space"
import { onUnmounted, reactive } from 'vue'
const resData = reactive({
    data: [{
        label: '一级防控',
        value: '1',
        type: 1,
        remark: '防火提及配套设置、装置围堰、罐区围堰'
    }, {
        label: '二级防控',
        value: '2',
        type: 1,
        remark: '雨污水排口一体化闸阀、车间收集池、雨污管阀'
    },
    {
        label: '三级防控',
        value: '3',
        type: 1,
        remark: '事故应急池、雨水收集池'
    }
    ]
})
const curSelect = ref('1')
let addTileLayers = {}
const handleCheckChange = (row) => {
    console.log(row)
    resData.data.forEach(item => {
        if (row.value === item.value) {
            if (!addTileLayers[item.label]) {
                addTileLayers[item.label] = new DC.HtmlLayer(item.label)
                window.$viewer.addLayer(addTileLayers[item.label])
                getList({
                    size: 1000,
                    preLevel: item.type,
                }).then(res => {
                    let data = res.data.data.records
                    data.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => {
                        let iconEl = ''
                        if ('showPanel' in item && item.showPanel == false) {
                            if (item.backgroundIcon) {
                                iconEl = `
                          <div class="map-name">${i[item.showParams] || i.name}</div>
                          <div class="map-icon">
                            <img src="${item.backgroundIcon}">
                          </div>
                          `
                            }
                        } else {
                            iconEl = `<div class="marsBlueGradientPnl">
                                 <div>${item.remark}</div>  </div>`
                        }
                        let divIcon = new DC.DivIcon(
                            new DC.Position(i.lng, i.lat, 0),
                            `<div class="public-map-popup">
                    ${iconEl}
                  </div>`
                        )
                        divIcon.attrParams = i
                        let incident = () => { }
                        if (item.incident) incident = item.incident
                        divIcon.on(DC.MouseEventType.CLICK, incident)
                        addTileLayers[item.label].addOverlay(divIcon)
                    })
                })
            } else {
                addTileLayers[item.label].show = true
            }
        } else {
            if (addTileLayers[item.label]) {
                addTileLayers[item.label].show = false
            }
        }
    })
}
const tabClick = (item) => {
    handleCheckChange(item)
    curSelect.value = item.value
}
const showOn = computed(() => (item) => {
    if (curSelect.value == item.value) {
        return true
    }
    return false
})
onMounted(() => {
    tabClick(resData.data[0])
}),
    onUnmounted(() => {
        let arr = Object.keys(addTileLayers)
        arr.forEach(i => {
            addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i])
        })
    })
</script>
<template>
    <public-content>
        <template #content>
            <div>
    <div class="left-container cur-container">
        <div class="tablist h100">
            <div class="cursor-p" :class="{ on: showOn(item) }" v-for="item, index in resData.data" :key="index"
                @click="tabClick(item)">
                <div class="nowrap-ellipsis-hidden">
                    {{ item.label }}
                </div>
            </div>
        </template>
    </public-content>
        </div>
    </div>
</template>
<style lang="scss" scoped></style>
<style lang="scss" scoped>
.cur-container {
    background: transparent;
    pointer-events: none;
    .tablist {
        pointer-events: all;
        &>div {
            margin-top: 86px;
            padding: 10px;
            width: 64px;
            height: 64px;
            line-height: 64px;
            text-align: center;
            border-radius: 50%;
            box-shadow: inset 0 0 40px #409eff;
            color: #fff;
            box-sizing: content-box;
            &.on {
                position: relative;
                color: #75b1ff;
            }
        }
    }
}
</style>
src/views/pac/components/leftContainer.vue
@@ -19,30 +19,38 @@
    <div class="data box">
      <title-box>
        <template #titleName>
          数据概览2
          <!-- 数据概览2 -->
        </template>
      </title-box>
      <data-content></data-content>
    </div>
    <div class="unit box">
    <!-- <div class="unit box">
      <title-box>
        <template #titleName>
          入住单位统计
        </template>
      </title-box>
      <unit-content></unit-content>
    </div>
    </div> -->
    <div class="fire box">
    <!-- <div class="fire box">
      <title-box>
        <template #titleName>
          实时火警事件
        </template>
      </title-box>
      <fire-content></fire-content>
    </div>
    </div> -->
  </div>
</template>
<style lang="scss" scoped></style>
<style lang="scss" scoped>
.left-container {
  background: none;
}
.left-container>div .title-box {
  background: none;
}
</style>
src/views/pac/components/rightContainer.vue
@@ -17,32 +17,32 @@
<template>
  <div class="right-container">
    <div class="fire-source box">
    <!-- <div class="fire-source box">
      <title-box>
        <template #titleName>
          火警事件来源
        </template>
      </title-box>
      <fire-source></fire-source>
    </div>
    </div> -->
    <div class="occur-statistics box">
    <!-- <div class="occur-statistics box">
      <title-box>
        <template #titleName>
          易发区统计
        </template>
      </title-box>
      <fire-trend></fire-trend>
    </div>
    </div> -->
    <div class="fire-trend box">
    <!-- <div class="fire-trend box">
      <title-box>
        <template #titleName>
          火警上报趋势
        </template>
      </title-box>
      <occur-statistics></occur-statistics>
    </div>
    </div> -->
  </div>
</template>
@@ -57,6 +57,7 @@
  width: 440px;
  height: 100%;
  pointer-events: auto;
  background: none;
  .box {
    margin-top: 20px;
src/views/rt/components/box/dataContent.vue
@@ -21,8 +21,8 @@
let currentIndex = ref(0)
// 园区 企业
const tilteList = ref([
  { label: "吉水化工园区", value: "0", id: "1" },
  { label: "吉水化工园区企业", value: "0", id: "2" }
  { label: "园区救援队伍", value: "0", id: "1" },
  { label: "企业救援队伍", value: "0", id: "2" }
]);
const pages = {
@@ -33,24 +33,8 @@
onMounted(() => {
  getLists(formInline);
  // getCompanyPages();
});
// function getCompanyPages(param = {}) {
//   param.current = pages.page;
//   param.size = pages.pageSize;
//   getPage(param).then(res => {
//     let companyList = res.data.data.records
//     companyList.forEach(item => {
//       tilteList.value.push({
//         label: item.name,
//         value: item.id,
//         id: item.id
//       })
//     })
//   }).catch(err => {
//   })
// }
function handleClick(item, index) {
  currentIndex.value = index
@@ -118,16 +102,7 @@
  getList(param)
    .then((res) => {
      const data = res.data.data;
      // data.records.forEach((element) => {
      //   if (element.type == 1) {
      //     element.ownership = "园区";
      //   } else {
      //     element.ownership = "企业";
      //   }
      // });
      tableData.value = data.records;
      // pages.total = data.total;
      // loading.value = false;
    })
    .catch((err) => {
      loading.value = false;
@@ -140,21 +115,6 @@
  <public-content>
    <template #content>
      <div class="content_box">
        <!-- <el-form :inline="true" :model="formInline" class="demo-form-inline">
          <el-form-item label="姓名">
            <el-input v-model="formInline.perInCha" placeholder="请输入姓名" clearable style="width: 120px" />
          </el-form-item>
          <el-form-item label="归属">
            <el-select v-model="formInline.type" placeholder="请选择" clearable style="width: 120px">
              <el-option label="园区" value="1" />
              <el-option label="企业" value="2" />
            </el-select>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="onSubmit">查询</el-button>
            <el-button type="" @click="clearBtn">重置</el-button>
          </el-form-item>
        </el-form> -->
        <div class="list_box">
          <ul>
@@ -167,8 +127,8 @@
        <div class="page_box">
          <el-table v-if="formInline.type == 1" :data="tableData" style="width: 100%" :header-cell-style="headerCellStyle"
            :cell-style="tableCellStyle">
          <el-table empty-text="" v-if="formInline.type == 1" :data="tableData" style="width: 100%"
            :header-cell-style="headerCellStyle" :cell-style="tableCellStyle">
            <el-table-column prop="teamName" label="救援队伍组名称" />
            <el-table-column prop="teamJob" label="救援队伍组职务" />
            <el-table-column prop="perInCha" label="责任人姓名" />
@@ -176,7 +136,7 @@
            <el-table-column prop="perInChaPho" label="联系电话" />
          </el-table>
          <el-table v-else :data="tableData" style="width: 100%" :header-cell-style="headerCellStyle"
          <el-table empty-text="" v-else :data="tableData" style="width: 100%" :header-cell-style="headerCellStyle"
            :cell-style="tableCellStyle">
            <el-table-column prop="firmName" label="企业名称" />
            <el-table-column prop="perInCha" label="责任人姓名" />
src/views/space/components/box/dataContent.vue
@@ -114,26 +114,24 @@
// 行点击
function rowClick(row) {
  if (state.layer) {
    window.$viewer.removeLayer(state.layer)
  }
  let layer = new DC.HtmlLayer(`${row.id}`)
  state.layer = layer
  window.$viewer.addLayer(layer)
  let iconEl = `<div class="marsBlueGradientPnl">
                  <div>${row.name}</div>
                </div>`
  let divIcon = new DC.DivIcon(
    new DC.Position(row.lng, row.lat, 0),
    `<div class="public-map-popup">
                    ${iconEl}
                  </div>`
  )
  // divIcon.attrParams = row
  let incident = () => { }
  // if (item.incident) incident = item.incident
  divIcon.on(DC.MouseEventType.CLICK, incident)
  layer.addOverlay(divIcon)
  // if (state.layer) {
  //   window.$viewer.removeLayer(state.layer)
  // }
  // let layer = new DC.HtmlLayer(`${row.id}`)
  // state.layer = layer
  // window.$viewer.addLayer(layer)
  // let iconEl = `<div class="marsBlueGradientPnl">
  //                 <div>${row.name}</div>
  //               </div>`
  // let divIcon = new DC.DivIcon(
  //   new DC.Position(row.lng, row.lat, 0),
  //   `<div class="public-map-popup">
  //                   ${iconEl}
  //                 </div>`
  // )
  // let incident = () => { }
  // divIcon.on(DC.MouseEventType.CLICK, incident)
  // layer.addOverlay(divIcon)
  window.$viewer.flyToPosition(new DC.Position(row.lng, row.lat, 600, 0, -90, 0))
src/views/supplies/components/box/dataContent.vue
@@ -1,53 +1,40 @@
<!--
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2023-03-13 14:54:26
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2023-03-13 15:00:55
 * @FilePath: \forest-fire\src\views\statistics\components\box\dataContent.vue
 * @Description:
 *
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<template>
  <public-content>
    <template #content>
      <div class="content_box">
        <div class="list_box">
          <ul>
            <li v-for="( item, index ) in  tilteList " :key="index" :class="[currentIndex === index ? 'active' : '']"
              @click="handleClick(item, index)">
              {{ item.label }}
            </li>
          </ul>
          <span class="content_span" @click="scrollLeft">《</span>
          <el-scrollbar ref="scrollbarRef" @scroll="scroll">
            <div class="scrollbar-flex-content">
              <p v-for="(item, index) in tilteList" @click="handleClick(item, index)" :key="index"
                class="scrollbar-demo-item" :class="{ active: index === currentIndex }">
                {{ item.label }}
              </p>
            </div>
          </el-scrollbar>
          <span class="content_span" @click="scrollRight">》</span>
        </div>
        <div class="page_box">
          <div>
            <el-table v-if="formInline.ownership == 1" :data="tableData" style="width: 100%"
              :header-cell-style="headerCellStyle" :cell-style="tableCellStyle">
              <el-table-column fixed prop="name" label="物资名称" />
              <el-table-column fixed prop="personInCha" label="负责人" />
              <el-table-column fixed prop="personInChaPhone" label="负责人电话" />
              <el-table-column fixed prop="stoLoc" label="物资地址" />
              <el-table-column prop="numUnit" label="数量" width="100" />
            <el-table empty-text="" v-if="formInline.ownership == 1" :data="tableData">
              <el-table-column prop="name" label="物资名称" />
              <el-table-column prop="personInCha" label="负责人" width="150" />
              <el-table-column prop="personInChaPhone" label="负责人电话" width="250" />
              <el-table-column prop="stoLoc" label="物资地址" />
              <el-table-column prop="numUnit" label="数量" width="150" />
            </el-table>
            <el-table v-else :data="tableData" style="width: 100%" :header-cell-style="headerCellStyle"
              :cell-style="tableCellStyle">
              <el-table-column fixed prop="firmName" label="企业名称" />
              <el-table-column fixed prop="name" label="物资名称" />
              <el-table-column fixed prop="personInCha" label="负责人" />
              <el-table-column fixed prop="personInChaPhone" label="负责人电话" />
              <el-table-column fixed prop="stoLoc" label="物资地址" />
              <el-table-column prop="numUnit" label="数量" width="100" />
            <el-table empty-text="" v-else :data="tableData">
              <!-- <el-table-column prop="firmName" label="企业名称" /> -->
              <el-table-column prop="name" label="物资名称" />
              <!-- <el-table-column prop="personInCha" label="负责人" /> -->
              <!-- <el-table-column prop="personInChaPhone" label="负责人电话" /> -->
              <el-table-column prop="stoLoc" label="物资地址" />
              <el-table-column prop="num" label="数量" />
            </el-table>
          </div>
        </div>
      </div>
    </template>
  </public-content>
@@ -55,9 +42,10 @@
<script setup>
import publicContent from "./publicContent.vue";
import { getList } from "@/api/emergencySupplies/emergencySupplies";
import { getList, getCompanyList } from "@/api/emergencySupplies/emergencySupplies";
import { getPage } from '@/api/indParkInfo'
import { reactive } from "vue";
import { reactive, ref, onMounted } from "vue";
import { ElScrollbar } from 'element-plus';
const loading = ref(false);
@@ -80,11 +68,31 @@
  getCompanyPages()
});
// const objectSpanMethod = ({ row, column, rowIndex, columnIndex }) => {
//   if (columnIndex === 0) {
//     if (rowIndex % 2 === 0) {
//       return {
//         rowspan: 2,
//         colspan: 1
//       }
//     } else {
//       return {
//         rowspan: 0,
//         colspan: 0
//       }
//     }
//   }
// }
const scrollbarRef = ref(null);
// 搜索条件
const formInline = reactive({
  firmId: '',
  ownership: 1,
});
function getCompanyPages(param = {}) {
  param.current = pages.page;
  param.size = pages.pageSize;
@@ -109,53 +117,48 @@
  if (item.id == 1) {
    formInline.firmId = ''
    formInline.ownership = 1
    getLists(formInline);
  } else {
    formInline.firmId = item.id
    formInline.ownership = 2
    getComLists(formInline)
  }
  getLists(formInline);
}
// 表格样式
const tableCellStyle = ({ row, column }) => {
  return { background: "#152851", color: "#fff" };
};
// const tableCellStyle = ({ row, column }) => {
//   return { background: "#152851", color: "#fff" };
// };
// 表格表头样式
const headerCellStyle = ({ }) => {
  return {
    background: "#152851",
    color: "#fff",
  };
};
// 提交查询
// const onSubmit = () => {
//   pages.page = 1
//   pages.pageSize = 13
//   pages.total = 0
//   console.log("submit!");
//   getLists(formInline);
// const headerCellStyle = ({ }) => {
//   return {
//     background: "#152851",
//     color: "#fff",
//   };
// };
// 分页树改变
const handleSizeChange = (val) => {
  pages.pageSize = val;
  getLists(formInline);
}
// const handleSizeChange = (val) => {
//   pages.pageSize = val;
//   getLists(formInline);
// }
// 分页改变
const handleCurrentChange = (val) => {
  pages.page = val;
  getLists(formInline);
}
// const handleCurrentChange = (val) => {
//   pages.page = val;
//   getLists(formInline);
// }
// 重置条件
const clearBtn = () => {
  formInline.name = ''
  formInline.ownership = ''
  pages.page = 1
  pages.pageSize = 1000
  pages.total = 0
  getLists(formInline);
}
// const clearBtn = () => {
//   formInline.name = ''
//   formInline.ownership = ''
//   pages.page = 1
//   pages.pageSize = 1000
//   pages.total = 0
//   getLists(formInline);
// }
// 查询分页数据
function getLists(param = {}) {
@@ -165,13 +168,6 @@
  getList(param)
    .then((res) => {
      const data = res.data.data;
      data.records.forEach((element) => {
        if (element.ownership == -1) {
          element.ownership = "园区";
        } else {
          element.ownership = "企业";
        }
      });
      tableData.value = data.records;
      pages.total = data.total;
      loading.value = false;
@@ -181,6 +177,43 @@
      console.log(err);
    });
}
// 查询分页数据
function getComLists(param = {}) {
  param.current = pages.page;
  param.size = pages.pageSize;
  loading.value = true;
  getCompanyList(param)
    .then((res) => {
      const data = res.data.data;
      tableData.value = data.dataList;
      pages.total = data.total;
      loading.value = false;
    })
    .catch((err) => {
      loading.value = false;
      console.log(err);
    });
}
// 滚动到左边
const scrollLeft = () => {
  if (scrollbarRef.value) {
    const currentScrollLeft = scrollbarRef.value.wrapRef.scrollLeft;
    const step = 500; // 每次滚动的距离
    scrollbarRef.value.wrapRef.scrollLeft = currentScrollLeft - step;
  }
}
// 滚动到右边
const scrollRight = () => {
  if (scrollbarRef.value) {
    const currentScrollLeft = scrollbarRef.value.wrapRef.scrollLeft;
    const step = 500; // 每次滚动的距离
    scrollbarRef.value.wrapRef.scrollLeft = currentScrollLeft + step;
  }
}
</script>
@@ -189,41 +222,45 @@
  color: #fff;
}
.list_box {
  overflow-x: auto;
  white-space: nowrap;
  // scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
}
.list_box ul {
.content_box .list_box {
  display: flex;
  /* 使用 Flexbox 布局 */
  padding: 0;
  margin: 0;
  list-style: none;
  text-align: center;
}
.list_box li {
  padding: 10px;
  margin-right: 10px;
  cursor: pointer;
.scrollbar-flex-content {
  display: flex;
}
.list_box li.active {
.scrollbar-demo-item {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  margin: 10px;
  padding: 0 5px;
  text-align: center;
  border-radius: 4px;
  // background: var(--el-color-danger-light-9);
  background-color: rgba(117, 116, 116, 0.3);
  color: white;
  // color: var(--el-color-danger);
  // color: #000;
}
.content_box .content_span {
  line-height: 70px;
  margin: 0 15px;
}
.page_box .el-table {
  width: 100%;
  height: 700px;
  background-color: rgba(117, 116, 116, 0.3);
  height: 680px;
  // background-color: rgba(117, 116, 116, 0.3);
}
.active {
  background-color: #fff;
  color: #000;
  background-color: rgba(255, 255, 255, 0.3);
  color: #fff;
  border-radius: 10px;
}
</style>
src/views/survey/components/box/fireSource.vue
@@ -139,7 +139,7 @@
.box-content-img {
  height: 380px;
  height: 280px;
  line-height: 28px;
  // 隐藏滚动条
  scrollbar-width: none;
src/views/survey/components/box/fireTrend.vue
@@ -24,8 +24,10 @@
})
function getPages () {
  getPage().then(res => {
function getPages() {
  getPage({
    size: 100,
  }).then(res => {
    parkQy.value = res.data.data.records
    // console.log(res)
  }).catch(err => {
@@ -33,7 +35,7 @@
  })
}
function search () {
function search() {
  getPage({ name: searchQuery.value }).then(res => {
    parkQy.value = res.data.data.records
    console.log(res)