Loading js-apps/meep-frontend/package-lock.json +212 −12 Original line number Diff line number Diff line Loading @@ -1136,6 +1136,76 @@ "@types/yargs": "^13.0.0" } }, "@mapbox/geojson-rewind": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.0.tgz", "integrity": "sha512-73l/qJQgj/T/zO1JXVfuVvvKDgikD/7D/rHAD28S9BG1OTstgmftrmqfCx4U+zQAmtsB6HcDA3a7ymdnJZAQgg==", "requires": { "concat-stream": "~2.0.0", "minimist": "^1.2.5" }, "dependencies": { "concat-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.0.2", "typedarray": "^0.0.6" } }, "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" } } }, "@mapbox/geojson-types": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==" }, "@mapbox/jsonlint-lines-primitives": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", "integrity": "sha1-zlblOfg1UrWNENZy6k1vya3HsjQ=" }, "@mapbox/mapbox-gl-supported": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==" }, "@mapbox/point-geometry": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", "integrity": "sha1-ioP5M1x4YO/6Lu7KJUMyqgru2PI=" }, "@mapbox/tiny-sdf": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.1.1.tgz", "integrity": "sha512-Ihn1nZcGIswJ5XGbgFAvVumOgWpvIjBX9jiRlIl46uQG9vJOF51ViBYHF95rEZupuyQbEmhLaDPLQlU7fUTsBg==" }, "@mapbox/unitbezier": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", "integrity": "sha1-FWUb1VOme4WB+zmIEMmK2Go0Uk4=" }, "@mapbox/vector-tile": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", "requires": { "@mapbox/point-geometry": "~0.1.0" } }, "@mapbox/whoots-js": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==" }, "@material-ui/core": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-1.5.1.tgz", Loading Loading @@ -4991,8 +5061,7 @@ "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "buffer-xor": { "version": "1.0.3", Loading Loading @@ -5940,6 +6009,11 @@ "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", "dev": true }, "csscolorparser": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", "integrity": "sha1-s085HupNqPPpgjHizNjfnAQfFxs=" }, "cssesc": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", Loading Loading @@ -6663,6 +6737,11 @@ } } }, "earcut": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz", "integrity": "sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ==" }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", Loading Loading @@ -8249,6 +8328,11 @@ "globule": "^1.0.0" } }, "geojson-vt": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", Loading Loading @@ -8291,6 +8375,11 @@ "assert-plus": "^1.0.0" } }, "gl-matrix": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.3.0.tgz", "integrity": "sha512-COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA==" }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", Loading Loading @@ -8419,6 +8508,11 @@ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, "grid-index": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" }, "growly": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", Loading Loading @@ -8807,8 +8901,7 @@ "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" }, "iferr": { "version": "0.1.5", Loading Loading @@ -10046,6 +10139,11 @@ "css-vendor": "^0.3.8" } }, "kdbush": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" }, "keycharm": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/keycharm/-/keycharm-0.2.0.tgz", Loading Loading @@ -10173,6 +10271,11 @@ "invert-kv": "^1.0.0" } }, "leaflet": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.6.0.tgz", "integrity": "sha512-CPkhyqWUKZKFJ6K8umN5/D2wrJ2+/8UIpXppY7QDnUZW5bZL5+SEI2J7GBpwh4LIupOKqbNSQXgqmrEJopHVNQ==" }, "left-pad": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", Loading Loading @@ -10420,6 +10523,48 @@ "object-visit": "^1.0.0" } }, "mapbox-gl": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.10.1.tgz", "integrity": "sha512-0aHt+lFUpYfvh0kMIqXqNXqoYMuhuAsMlw87TbhWrw78Tx2zfuPI0Lx31/YPUgJ+Ire0tzQ4JnuBL7acDNXmMg==", "requires": { "@mapbox/geojson-rewind": "^0.5.0", "@mapbox/geojson-types": "^1.0.2", "@mapbox/jsonlint-lines-primitives": "^2.0.2", "@mapbox/mapbox-gl-supported": "^1.5.0", "@mapbox/point-geometry": "^0.1.0", "@mapbox/tiny-sdf": "^1.1.1", "@mapbox/unitbezier": "^0.0.0", "@mapbox/vector-tile": "^1.3.1", "@mapbox/whoots-js": "^3.1.0", "csscolorparser": "~1.0.3", "earcut": "^2.2.2", "geojson-vt": "^3.2.1", "gl-matrix": "^3.2.1", "grid-index": "^1.1.0", "minimist": "^1.2.5", "murmurhash-js": "^1.0.0", "pbf": "^3.2.1", "potpack": "^1.0.1", "quickselect": "^2.0.0", "rw": "^1.3.3", "supercluster": "^7.0.0", "tinyqueue": "^2.0.3", "vt-pbf": "^3.1.1" }, "dependencies": { "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" } } }, "mapbox-gl-leaflet": { "version": "0.0.12", "resolved": "https://registry.npmjs.org/mapbox-gl-leaflet/-/mapbox-gl-leaflet-0.0.12.tgz", "integrity": "sha512-bfGl+CdAYc51ua8s9OOq5J0EcAnHuxS0OoQP5EWsVmSUGFvKkgOD+Od2sFmDOl+zBUjdBEvqLaf9t/tf2BtrWw==" }, "material-components-web": { "version": "0.38.1", "resolved": "https://registry.npmjs.org/material-components-web/-/material-components-web-0.38.1.tgz", Loading Loading @@ -10864,6 +11009,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "murmurhash-js": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", "integrity": "sha1-sGJ44h/Gw3+lMTcysEEry2rhX1E=" }, "mutation-observer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/mutation-observer/-/mutation-observer-1.0.3.tgz", Loading Loading @@ -11765,6 +11915,15 @@ "pify": "^3.0.0" } }, "pbf": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", "requires": { "ieee754": "^1.1.12", "resolve-protobuf-schema": "^2.1.0" } }, "pbkdf2": { "version": "3.0.17", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", Loading Loading @@ -12306,6 +12465,11 @@ "uniqs": "^2.0.0" } }, "potpack": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.1.tgz", "integrity": "sha512-15vItUAbViaYrmaB/Pbw7z6qX2xENbFSTA7Ii4tgbPtasxm5v6ryKhKtL91tpWovDJzTiZqdwzhcFBCwiMVdVw==" }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", Loading Loading @@ -12418,6 +12582,11 @@ "hammerjs": "^2.0.8" } }, "protocol-buffers-schema": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.4.0.tgz", "integrity": "sha512-G/2kcamPF2S49W5yaMGdIpkG6+5wZF0fzBteLKgEHjbNzqjZQ85aAs1iJGto31EJaSTkNvHs5IXuHSaTLWBAiA==" }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", Loading Loading @@ -12529,6 +12698,11 @@ "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", "dev": true }, "quickselect": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" }, "raf": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", Loading Loading @@ -12816,7 +12990,6 @@ "version": "3.4.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", Loading Loading @@ -13294,6 +13467,14 @@ } } }, "resolve-protobuf-schema": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", "requires": { "protocol-buffers-schema": "^3.3.1" } }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", Loading Loading @@ -14858,7 +15039,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "requires": { "safe-buffer": "~5.2.0" }, Loading @@ -14866,8 +15046,7 @@ "safe-buffer": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", "dev": true "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" } } }, Loading Loading @@ -14917,6 +15096,14 @@ "schema-utils": "^0.4.5" } }, "supercluster": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.0.tgz", "integrity": "sha512-LDasImUAFMhTqhK+cUXfy9C2KTUqJ3gucLjmNLNFmKWOnDUBxLFLH9oKuXOTCLveecmxh8fbk8kgh6Q0gsfe2w==", "requires": { "kdbush": "^3.0.0" } }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", Loading Loading @@ -15182,6 +15369,11 @@ "setimmediate": "^1.0.4" } }, "tinyqueue": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" }, "tmpl": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", Loading Loading @@ -15355,8 +15547,7 @@ "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "ua-parser-js": { "version": "0.7.20", Loading Loading @@ -15633,8 +15824,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util.promisify": { "version": "1.0.0", Loading Loading @@ -15715,6 +15905,16 @@ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, "vt-pbf": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.1.tgz", "integrity": "sha512-pHjWdrIoxurpmTcbfBWXaPwSmtPAHS105253P1qyEfSTV2HJddqjM+kIHquaT/L6lVJIk9ltTGc0IxR/G47hYA==", "requires": { "@mapbox/point-geometry": "0.1.0", "@mapbox/vector-tile": "^1.3.1", "pbf": "^3.0.5" } }, "w3c-hr-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", js-apps/meep-frontend/package.json +3 −0 Original line number Diff line number Diff line Loading @@ -46,7 +46,10 @@ "d3-force": "^2.0.1", "d3-hierarchy": "^1.1.8", "jquery": "3.3.1", "leaflet": "1.6.0", "lodash": "^4.17.11", "mapbox-gl": "1.10.1", "mapbox-gl-leaflet": "0.0.12", "material-components-web": "0.38.1", "material-design-icons": "3.0.1", "prop-types": "15.6.2", Loading js-apps/meep-frontend/src/js/containers/exec/dashboard-container.js +16 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import { Checkbox } from '@rmwc/checkbox'; import * as d3 from 'd3'; import IDSelect from '../../components/helper-components/id-select'; import IDCMap from '../idc-map'; import IDCVis from '../idc-vis'; import Iframe from 'react-iframe'; Loading @@ -39,6 +40,7 @@ import { import { TYPE_EXEC, VIEW_NAME_NONE, MAP_VIEW, NET_TOPOLOGY_VIEW, DEFAULT_DASHBOARD_OPTIONS } from '../../meep-constants'; Loading Loading @@ -137,6 +139,19 @@ const ViewForName = ({ dashboardOptions }) => { // Handle Map view if (viewName === MAP_VIEW) { return ( <div style={{ height: '80vh' }}> <IDCMap width='100%' height='100%' onEditElement={() => { }} /> </div> ); } // Handle Network Topology view if (viewName === NET_TOPOLOGY_VIEW) { return ( Loading Loading @@ -326,6 +341,7 @@ class DashboardContainer extends Component { // Populate Dashboard view list using links from monitoring tab var dashboardViewsList = [ VIEW_NAME_NONE, MAP_VIEW, NET_TOPOLOGY_VIEW ]; this.populateDashboardList(dashboardViewsList, DEFAULT_DASHBOARD_OPTIONS); Loading js-apps/meep-frontend/src/js/containers/idc-map.js 0 → 100644 +112 −0 Original line number Diff line number Diff line /* * Copyright (c) 2019 InterDigital Communications, Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import _ from 'lodash'; import { connect } from 'react-redux'; import React, { Component, createRef } from 'react'; import ReactDOM from 'react-dom'; import L from 'leaflet'; import 'mapbox-gl'; import 'mapbox-gl-leaflet'; import { updateObject } from '../util/object-util'; import { execChangeMap } from '../state/exec'; class IDCMap extends Component { constructor(props) { super(props); this.state = {}; this.thisRef = createRef(); this.configRef = createRef(); } componentDidMount() { // Get Map div instance var domNode = ReactDOM.findDOMNode(this); var map = L.map(domNode, { center: [43.73752,7.42892], zoom: 15, minZoom: 15, maxZoom: 18, drawControl: true }); console.log(map); // Creating GL Baselayers var positronBaselayer = L.mapboxGL({style: 'http://10.3.16.105:30080/styles/positron/style.json'}); var darkBaselayer = L.mapboxGL({style: 'http://10.3.16.105:30080/styles/dark-matter/style.json'}); var klokBaselayer = L.mapboxGL({style: 'http://10.3.16.105:30080/styles/klokantech-basic/style.json'}); var osmBaselayer = L.mapboxGL({style: 'http://10.3.16.105:30080/styles/osm-bright/style.json'}); var baselayers = { 'Positron': positronBaselayer, 'Black Matter': darkBaselayer, 'Klokantech': klokBaselayer, 'OSM Bright': osmBaselayer }; // Layer management var markerOverlay = L.layerGroup(); var movingOverlay = L.layerGroup(); var circleOverlay = L.layerGroup(); var overlays = { 'marker-PoC': markerOverlay, 'circle-PoC': circleOverlay, 'moving-PoC': movingOverlay }; // Layer Controls var layerCtrl = L.control.layers(baselayers, overlays); // Initialize map & layers layerCtrl.addTo(map); markerOverlay.addTo(map); // this to have markers checked by default positronBaselayer.addTo(map); // this to select default baselayer // movingMarker.addTo(movingOverlay); // map.on('click', HandleClickMap); } render() { console.log(this.props.execMap.ueList); return ( <div style={{ height: '100%' }} id="map" > Map Component </div> ); } } const mapStateToProps = state => { return { execMap: state.exec.map }; }; const mapDispatchToProps = dispatch => { return { changeExecMap: map => dispatch(execChangeMap(map)) }; }; const ConnectedIDCMap = connect( mapStateToProps, mapDispatchToProps )(IDCMap); export default ConnectedIDCMap; js-apps/meep-frontend/src/js/containers/meep-container.js +78 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import { updateObject, deepCopy } from '../util/object-util'; import * as meepPlatformCtrlRestApiClient from '../../../../../js-packages/meep-platform-ctrl-client/src/index.js'; import * as meepSandboxCtrlRestApiClient from '../../../../../js-packages/meep-sandbox-ctrl-client/src/index.js'; import * as meepMonEngineRestApiClient from '../../../../../js-packages/meep-mon-engine-client/src/index.js'; import * as meepGisEngineRestApiClient from '../../../../../js-packages/meep-gis-engine-client/src/index.js'; import MeepDrawer from './meep-drawer'; import MeepTopBar from '../components/meep-top-bar'; Loading Loading @@ -68,6 +69,8 @@ import { execChangeScenarioState, execChangeScenarioPodsPhases, execChangeServiceMaps, execChangeMapUeList, execChangeMapPoaList, execChangeVisData, execChangeTable, execChangeCorePodsPhases, Loading @@ -91,6 +94,8 @@ var basepathSandboxCtrl = HOST_PATH + '/sandbox-ctrl/v1'; meepSandboxCtrlRestApiClient.ApiClient.instance.basePath = basepathSandboxCtrl.replace(/\/+$/,''); var basepathMonEngine = HOST_PATH + '/mon-engine/v1'; meepMonEngineRestApiClient.ApiClient.instance.basePath = basepathMonEngine.replace(/\/+$/,''); var basepathGisEngine = HOST_PATH + '/gis/v1'; meepGisEngineRestApiClient.ApiClient.instance.basePath = basepathGisEngine.replace(/\/+$/,''); class MeepContainer extends Component { constructor(props) { Loading @@ -104,6 +109,7 @@ class MeepContainer extends Component { this.meepActiveScenarioApi = new meepSandboxCtrlRestApiClient.ActiveScenarioApi(); this.meepEventsApi = new meepSandboxCtrlRestApiClient.EventsApi(); this.meepEventReplayApi = new meepSandboxCtrlRestApiClient.EventReplayApi(); this.meepGeoDataApi = new meepGisEngineRestApiClient.GeospatialDataApi(); } componentDidMount() { Loading Loading @@ -148,6 +154,7 @@ class MeepContainer extends Component { if (this.props.sandbox) { this.checkScenarioStatus(); this.refreshScenario(); this.refreshMap(); } } }, Loading Loading @@ -394,11 +401,80 @@ class MeepContainer extends Component { ); } /** * Callback function to receive the result of the getAssetData operation. * @callback module:api/GeospatialDataApi~getAssetDataCallback * @param {String} error Error message, if any. * @param {module:model/GeoDataAssetList} data The data returned by the service call. * @param {String} response The complete HTTP response. */ getUeAssetDataCb(error, data) { if (error !== null || data.geoDataAssets === null) { console.log('Failed to get assets'); return; } let ueList = []; // Process UE list for (let i = 0; i < data.geoDataAssets.length; i++) { let ue = data.geoDataAssets[i]; ueList.push(ue.location); } console.log(ueList); // Update UE list this.props.execChangeMapUeList(ueList); // // Store & Process deployed scenario // this.setScenario(TYPE_EXEC, data); } /** * Callback function to receive the result of the getAssetData operation. * @callback module:api/GeospatialDataApi~getAssetDataCallback * @param {String} error Error message, if any. * @param {module:model/GeoDataAssetList} data The data returned by the service call. * @param {String} response The complete HTTP response. */ getPoaAssetDataCb(error, data) { if (error !== null || data.geoDataAssets === null) { console.log('Failed to get assets'); return; } console.log(data.geoDataAssets); // Process POA list for (let i = 0; i < data.geoDataAssets.length; i++) { let poa = data.geoDataAssets[i]; } // Update // // Store & Process deployed scenario // this.setScenario(TYPE_EXEC, data); } // Refresh Map refreshMap() { this.meepGeoDataApi.getAssetData({assetType: 'UE'}, (error, data) => this.getUeAssetDataCb(error, data) ); this.meepGeoDataApi.getAssetData({assetType: 'POA'}, (error, data) => this.getPoaAssetDataCb(error, data) ); } // Set sandox-specific API basepath setBasepath(sandboxName) { var sandboxPath = (sandboxName) ? '/' + sandboxName : ''; basepathSandboxCtrl = HOST_PATH + sandboxPath + '/sandbox-ctrl/v1'; meepSandboxCtrlRestApiClient.ApiClient.instance.basePath = basepathSandboxCtrl.replace(/\/+$/,''); basepathGisEngine = HOST_PATH + sandboxPath + '/gis/v1'; meepGisEngineRestApiClient.ApiClient.instance.basePath = basepathGisEngine.replace(/\/+$/,''); } /** Loading Loading @@ -653,6 +729,8 @@ const mapDispatchToProps = dispatch => { changeServiceMaps: maps => dispatch(execChangeServiceMaps(maps)), execChangeVisData: data => dispatch(execChangeVisData(data)), execChangeTable: table => dispatch(execChangeTable(table)), execChangeMapUeList: list => dispatch(execChangeMapUeList(list)), execChangeMapPoaList: list => dispatch(execChangeMapPoaList(list)), cfgChangeVisData: data => dispatch(cfgChangeVisData(data)), cfgChangeTable: data => dispatch(cfgChangeTable(data)), execChangeOkToTerminate: ok => dispatch(execChangeOkToTerminate(ok)), Loading Loading
js-apps/meep-frontend/package-lock.json +212 −12 Original line number Diff line number Diff line Loading @@ -1136,6 +1136,76 @@ "@types/yargs": "^13.0.0" } }, "@mapbox/geojson-rewind": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.0.tgz", "integrity": "sha512-73l/qJQgj/T/zO1JXVfuVvvKDgikD/7D/rHAD28S9BG1OTstgmftrmqfCx4U+zQAmtsB6HcDA3a7ymdnJZAQgg==", "requires": { "concat-stream": "~2.0.0", "minimist": "^1.2.5" }, "dependencies": { "concat-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.0.2", "typedarray": "^0.0.6" } }, "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" } } }, "@mapbox/geojson-types": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==" }, "@mapbox/jsonlint-lines-primitives": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", "integrity": "sha1-zlblOfg1UrWNENZy6k1vya3HsjQ=" }, "@mapbox/mapbox-gl-supported": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==" }, "@mapbox/point-geometry": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", "integrity": "sha1-ioP5M1x4YO/6Lu7KJUMyqgru2PI=" }, "@mapbox/tiny-sdf": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.1.1.tgz", "integrity": "sha512-Ihn1nZcGIswJ5XGbgFAvVumOgWpvIjBX9jiRlIl46uQG9vJOF51ViBYHF95rEZupuyQbEmhLaDPLQlU7fUTsBg==" }, "@mapbox/unitbezier": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", "integrity": "sha1-FWUb1VOme4WB+zmIEMmK2Go0Uk4=" }, "@mapbox/vector-tile": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", "requires": { "@mapbox/point-geometry": "~0.1.0" } }, "@mapbox/whoots-js": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==" }, "@material-ui/core": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-1.5.1.tgz", Loading Loading @@ -4991,8 +5061,7 @@ "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "buffer-xor": { "version": "1.0.3", Loading Loading @@ -5940,6 +6009,11 @@ "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", "dev": true }, "csscolorparser": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", "integrity": "sha1-s085HupNqPPpgjHizNjfnAQfFxs=" }, "cssesc": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", Loading Loading @@ -6663,6 +6737,11 @@ } } }, "earcut": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz", "integrity": "sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ==" }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", Loading Loading @@ -8249,6 +8328,11 @@ "globule": "^1.0.0" } }, "geojson-vt": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", Loading Loading @@ -8291,6 +8375,11 @@ "assert-plus": "^1.0.0" } }, "gl-matrix": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.3.0.tgz", "integrity": "sha512-COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA==" }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", Loading Loading @@ -8419,6 +8508,11 @@ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, "grid-index": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" }, "growly": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", Loading Loading @@ -8807,8 +8901,7 @@ "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" }, "iferr": { "version": "0.1.5", Loading Loading @@ -10046,6 +10139,11 @@ "css-vendor": "^0.3.8" } }, "kdbush": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" }, "keycharm": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/keycharm/-/keycharm-0.2.0.tgz", Loading Loading @@ -10173,6 +10271,11 @@ "invert-kv": "^1.0.0" } }, "leaflet": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.6.0.tgz", "integrity": "sha512-CPkhyqWUKZKFJ6K8umN5/D2wrJ2+/8UIpXppY7QDnUZW5bZL5+SEI2J7GBpwh4LIupOKqbNSQXgqmrEJopHVNQ==" }, "left-pad": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", Loading Loading @@ -10420,6 +10523,48 @@ "object-visit": "^1.0.0" } }, "mapbox-gl": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.10.1.tgz", "integrity": "sha512-0aHt+lFUpYfvh0kMIqXqNXqoYMuhuAsMlw87TbhWrw78Tx2zfuPI0Lx31/YPUgJ+Ire0tzQ4JnuBL7acDNXmMg==", "requires": { "@mapbox/geojson-rewind": "^0.5.0", "@mapbox/geojson-types": "^1.0.2", "@mapbox/jsonlint-lines-primitives": "^2.0.2", "@mapbox/mapbox-gl-supported": "^1.5.0", "@mapbox/point-geometry": "^0.1.0", "@mapbox/tiny-sdf": "^1.1.1", "@mapbox/unitbezier": "^0.0.0", "@mapbox/vector-tile": "^1.3.1", "@mapbox/whoots-js": "^3.1.0", "csscolorparser": "~1.0.3", "earcut": "^2.2.2", "geojson-vt": "^3.2.1", "gl-matrix": "^3.2.1", "grid-index": "^1.1.0", "minimist": "^1.2.5", "murmurhash-js": "^1.0.0", "pbf": "^3.2.1", "potpack": "^1.0.1", "quickselect": "^2.0.0", "rw": "^1.3.3", "supercluster": "^7.0.0", "tinyqueue": "^2.0.3", "vt-pbf": "^3.1.1" }, "dependencies": { "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" } } }, "mapbox-gl-leaflet": { "version": "0.0.12", "resolved": "https://registry.npmjs.org/mapbox-gl-leaflet/-/mapbox-gl-leaflet-0.0.12.tgz", "integrity": "sha512-bfGl+CdAYc51ua8s9OOq5J0EcAnHuxS0OoQP5EWsVmSUGFvKkgOD+Od2sFmDOl+zBUjdBEvqLaf9t/tf2BtrWw==" }, "material-components-web": { "version": "0.38.1", "resolved": "https://registry.npmjs.org/material-components-web/-/material-components-web-0.38.1.tgz", Loading Loading @@ -10864,6 +11009,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "murmurhash-js": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", "integrity": "sha1-sGJ44h/Gw3+lMTcysEEry2rhX1E=" }, "mutation-observer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/mutation-observer/-/mutation-observer-1.0.3.tgz", Loading Loading @@ -11765,6 +11915,15 @@ "pify": "^3.0.0" } }, "pbf": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", "requires": { "ieee754": "^1.1.12", "resolve-protobuf-schema": "^2.1.0" } }, "pbkdf2": { "version": "3.0.17", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", Loading Loading @@ -12306,6 +12465,11 @@ "uniqs": "^2.0.0" } }, "potpack": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.1.tgz", "integrity": "sha512-15vItUAbViaYrmaB/Pbw7z6qX2xENbFSTA7Ii4tgbPtasxm5v6ryKhKtL91tpWovDJzTiZqdwzhcFBCwiMVdVw==" }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", Loading Loading @@ -12418,6 +12582,11 @@ "hammerjs": "^2.0.8" } }, "protocol-buffers-schema": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.4.0.tgz", "integrity": "sha512-G/2kcamPF2S49W5yaMGdIpkG6+5wZF0fzBteLKgEHjbNzqjZQ85aAs1iJGto31EJaSTkNvHs5IXuHSaTLWBAiA==" }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", Loading Loading @@ -12529,6 +12698,11 @@ "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", "dev": true }, "quickselect": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" }, "raf": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", Loading Loading @@ -12816,7 +12990,6 @@ "version": "3.4.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", Loading Loading @@ -13294,6 +13467,14 @@ } } }, "resolve-protobuf-schema": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", "requires": { "protocol-buffers-schema": "^3.3.1" } }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", Loading Loading @@ -14858,7 +15039,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "requires": { "safe-buffer": "~5.2.0" }, Loading @@ -14866,8 +15046,7 @@ "safe-buffer": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", "dev": true "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" } } }, Loading Loading @@ -14917,6 +15096,14 @@ "schema-utils": "^0.4.5" } }, "supercluster": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.0.tgz", "integrity": "sha512-LDasImUAFMhTqhK+cUXfy9C2KTUqJ3gucLjmNLNFmKWOnDUBxLFLH9oKuXOTCLveecmxh8fbk8kgh6Q0gsfe2w==", "requires": { "kdbush": "^3.0.0" } }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", Loading Loading @@ -15182,6 +15369,11 @@ "setimmediate": "^1.0.4" } }, "tinyqueue": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" }, "tmpl": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", Loading Loading @@ -15355,8 +15547,7 @@ "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "ua-parser-js": { "version": "0.7.20", Loading Loading @@ -15633,8 +15824,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util.promisify": { "version": "1.0.0", Loading Loading @@ -15715,6 +15905,16 @@ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, "vt-pbf": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.1.tgz", "integrity": "sha512-pHjWdrIoxurpmTcbfBWXaPwSmtPAHS105253P1qyEfSTV2HJddqjM+kIHquaT/L6lVJIk9ltTGc0IxR/G47hYA==", "requires": { "@mapbox/point-geometry": "0.1.0", "@mapbox/vector-tile": "^1.3.1", "pbf": "^3.0.5" } }, "w3c-hr-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz",
js-apps/meep-frontend/package.json +3 −0 Original line number Diff line number Diff line Loading @@ -46,7 +46,10 @@ "d3-force": "^2.0.1", "d3-hierarchy": "^1.1.8", "jquery": "3.3.1", "leaflet": "1.6.0", "lodash": "^4.17.11", "mapbox-gl": "1.10.1", "mapbox-gl-leaflet": "0.0.12", "material-components-web": "0.38.1", "material-design-icons": "3.0.1", "prop-types": "15.6.2", Loading
js-apps/meep-frontend/src/js/containers/exec/dashboard-container.js +16 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import { Checkbox } from '@rmwc/checkbox'; import * as d3 from 'd3'; import IDSelect from '../../components/helper-components/id-select'; import IDCMap from '../idc-map'; import IDCVis from '../idc-vis'; import Iframe from 'react-iframe'; Loading @@ -39,6 +40,7 @@ import { import { TYPE_EXEC, VIEW_NAME_NONE, MAP_VIEW, NET_TOPOLOGY_VIEW, DEFAULT_DASHBOARD_OPTIONS } from '../../meep-constants'; Loading Loading @@ -137,6 +139,19 @@ const ViewForName = ({ dashboardOptions }) => { // Handle Map view if (viewName === MAP_VIEW) { return ( <div style={{ height: '80vh' }}> <IDCMap width='100%' height='100%' onEditElement={() => { }} /> </div> ); } // Handle Network Topology view if (viewName === NET_TOPOLOGY_VIEW) { return ( Loading Loading @@ -326,6 +341,7 @@ class DashboardContainer extends Component { // Populate Dashboard view list using links from monitoring tab var dashboardViewsList = [ VIEW_NAME_NONE, MAP_VIEW, NET_TOPOLOGY_VIEW ]; this.populateDashboardList(dashboardViewsList, DEFAULT_DASHBOARD_OPTIONS); Loading
js-apps/meep-frontend/src/js/containers/idc-map.js 0 → 100644 +112 −0 Original line number Diff line number Diff line /* * Copyright (c) 2019 InterDigital Communications, Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import _ from 'lodash'; import { connect } from 'react-redux'; import React, { Component, createRef } from 'react'; import ReactDOM from 'react-dom'; import L from 'leaflet'; import 'mapbox-gl'; import 'mapbox-gl-leaflet'; import { updateObject } from '../util/object-util'; import { execChangeMap } from '../state/exec'; class IDCMap extends Component { constructor(props) { super(props); this.state = {}; this.thisRef = createRef(); this.configRef = createRef(); } componentDidMount() { // Get Map div instance var domNode = ReactDOM.findDOMNode(this); var map = L.map(domNode, { center: [43.73752,7.42892], zoom: 15, minZoom: 15, maxZoom: 18, drawControl: true }); console.log(map); // Creating GL Baselayers var positronBaselayer = L.mapboxGL({style: 'http://10.3.16.105:30080/styles/positron/style.json'}); var darkBaselayer = L.mapboxGL({style: 'http://10.3.16.105:30080/styles/dark-matter/style.json'}); var klokBaselayer = L.mapboxGL({style: 'http://10.3.16.105:30080/styles/klokantech-basic/style.json'}); var osmBaselayer = L.mapboxGL({style: 'http://10.3.16.105:30080/styles/osm-bright/style.json'}); var baselayers = { 'Positron': positronBaselayer, 'Black Matter': darkBaselayer, 'Klokantech': klokBaselayer, 'OSM Bright': osmBaselayer }; // Layer management var markerOverlay = L.layerGroup(); var movingOverlay = L.layerGroup(); var circleOverlay = L.layerGroup(); var overlays = { 'marker-PoC': markerOverlay, 'circle-PoC': circleOverlay, 'moving-PoC': movingOverlay }; // Layer Controls var layerCtrl = L.control.layers(baselayers, overlays); // Initialize map & layers layerCtrl.addTo(map); markerOverlay.addTo(map); // this to have markers checked by default positronBaselayer.addTo(map); // this to select default baselayer // movingMarker.addTo(movingOverlay); // map.on('click', HandleClickMap); } render() { console.log(this.props.execMap.ueList); return ( <div style={{ height: '100%' }} id="map" > Map Component </div> ); } } const mapStateToProps = state => { return { execMap: state.exec.map }; }; const mapDispatchToProps = dispatch => { return { changeExecMap: map => dispatch(execChangeMap(map)) }; }; const ConnectedIDCMap = connect( mapStateToProps, mapDispatchToProps )(IDCMap); export default ConnectedIDCMap;
js-apps/meep-frontend/src/js/containers/meep-container.js +78 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import { updateObject, deepCopy } from '../util/object-util'; import * as meepPlatformCtrlRestApiClient from '../../../../../js-packages/meep-platform-ctrl-client/src/index.js'; import * as meepSandboxCtrlRestApiClient from '../../../../../js-packages/meep-sandbox-ctrl-client/src/index.js'; import * as meepMonEngineRestApiClient from '../../../../../js-packages/meep-mon-engine-client/src/index.js'; import * as meepGisEngineRestApiClient from '../../../../../js-packages/meep-gis-engine-client/src/index.js'; import MeepDrawer from './meep-drawer'; import MeepTopBar from '../components/meep-top-bar'; Loading Loading @@ -68,6 +69,8 @@ import { execChangeScenarioState, execChangeScenarioPodsPhases, execChangeServiceMaps, execChangeMapUeList, execChangeMapPoaList, execChangeVisData, execChangeTable, execChangeCorePodsPhases, Loading @@ -91,6 +94,8 @@ var basepathSandboxCtrl = HOST_PATH + '/sandbox-ctrl/v1'; meepSandboxCtrlRestApiClient.ApiClient.instance.basePath = basepathSandboxCtrl.replace(/\/+$/,''); var basepathMonEngine = HOST_PATH + '/mon-engine/v1'; meepMonEngineRestApiClient.ApiClient.instance.basePath = basepathMonEngine.replace(/\/+$/,''); var basepathGisEngine = HOST_PATH + '/gis/v1'; meepGisEngineRestApiClient.ApiClient.instance.basePath = basepathGisEngine.replace(/\/+$/,''); class MeepContainer extends Component { constructor(props) { Loading @@ -104,6 +109,7 @@ class MeepContainer extends Component { this.meepActiveScenarioApi = new meepSandboxCtrlRestApiClient.ActiveScenarioApi(); this.meepEventsApi = new meepSandboxCtrlRestApiClient.EventsApi(); this.meepEventReplayApi = new meepSandboxCtrlRestApiClient.EventReplayApi(); this.meepGeoDataApi = new meepGisEngineRestApiClient.GeospatialDataApi(); } componentDidMount() { Loading Loading @@ -148,6 +154,7 @@ class MeepContainer extends Component { if (this.props.sandbox) { this.checkScenarioStatus(); this.refreshScenario(); this.refreshMap(); } } }, Loading Loading @@ -394,11 +401,80 @@ class MeepContainer extends Component { ); } /** * Callback function to receive the result of the getAssetData operation. * @callback module:api/GeospatialDataApi~getAssetDataCallback * @param {String} error Error message, if any. * @param {module:model/GeoDataAssetList} data The data returned by the service call. * @param {String} response The complete HTTP response. */ getUeAssetDataCb(error, data) { if (error !== null || data.geoDataAssets === null) { console.log('Failed to get assets'); return; } let ueList = []; // Process UE list for (let i = 0; i < data.geoDataAssets.length; i++) { let ue = data.geoDataAssets[i]; ueList.push(ue.location); } console.log(ueList); // Update UE list this.props.execChangeMapUeList(ueList); // // Store & Process deployed scenario // this.setScenario(TYPE_EXEC, data); } /** * Callback function to receive the result of the getAssetData operation. * @callback module:api/GeospatialDataApi~getAssetDataCallback * @param {String} error Error message, if any. * @param {module:model/GeoDataAssetList} data The data returned by the service call. * @param {String} response The complete HTTP response. */ getPoaAssetDataCb(error, data) { if (error !== null || data.geoDataAssets === null) { console.log('Failed to get assets'); return; } console.log(data.geoDataAssets); // Process POA list for (let i = 0; i < data.geoDataAssets.length; i++) { let poa = data.geoDataAssets[i]; } // Update // // Store & Process deployed scenario // this.setScenario(TYPE_EXEC, data); } // Refresh Map refreshMap() { this.meepGeoDataApi.getAssetData({assetType: 'UE'}, (error, data) => this.getUeAssetDataCb(error, data) ); this.meepGeoDataApi.getAssetData({assetType: 'POA'}, (error, data) => this.getPoaAssetDataCb(error, data) ); } // Set sandox-specific API basepath setBasepath(sandboxName) { var sandboxPath = (sandboxName) ? '/' + sandboxName : ''; basepathSandboxCtrl = HOST_PATH + sandboxPath + '/sandbox-ctrl/v1'; meepSandboxCtrlRestApiClient.ApiClient.instance.basePath = basepathSandboxCtrl.replace(/\/+$/,''); basepathGisEngine = HOST_PATH + sandboxPath + '/gis/v1'; meepGisEngineRestApiClient.ApiClient.instance.basePath = basepathGisEngine.replace(/\/+$/,''); } /** Loading Loading @@ -653,6 +729,8 @@ const mapDispatchToProps = dispatch => { changeServiceMaps: maps => dispatch(execChangeServiceMaps(maps)), execChangeVisData: data => dispatch(execChangeVisData(data)), execChangeTable: table => dispatch(execChangeTable(table)), execChangeMapUeList: list => dispatch(execChangeMapUeList(list)), execChangeMapPoaList: list => dispatch(execChangeMapPoaList(list)), cfgChangeVisData: data => dispatch(cfgChangeVisData(data)), cfgChangeTable: data => dispatch(cfgChangeTable(data)), execChangeOkToTerminate: ok => dispatch(execChangeOkToTerminate(ok)), Loading