diff --git a/assets/package-lock.json b/assets/package-lock.json
index 0587a5b8f2635cbd03cde7bfffa0fbdef25483b9..286692fd5cb18f7f9505a13136f860cb72a5a451 100644
--- a/assets/package-lock.json
+++ b/assets/package-lock.json
@@ -1017,24 +1017,72 @@
       }
     },
     "@rollup/plugin-commonjs": {
-      "version": "14.0.0",
-      "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-14.0.0.tgz",
-      "integrity": "sha512-+PSmD9ePwTAeU106i9FRdc+Zb3XUWyW26mo5Atr2mk82hor8+nPwkztEjFo8/B1fJKfaQDg9aM2bzQkjhi7zOw==",
+      "version": "15.0.0",
+      "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-15.0.0.tgz",
+      "integrity": "sha512-8uAdikHqVyrT32w1zB9VhW6uGwGjhKgnDNP4pQJsjdnyF4FgCj6/bmv24c7v2CuKhq32CcyCwRzMPEElaKkn0w==",
       "dev": true,
       "requires": {
-        "@rollup/pluginutils": "^3.0.8",
+        "@rollup/pluginutils": "^3.1.0",
         "commondir": "^1.0.1",
-        "estree-walker": "^1.0.1",
-        "glob": "^7.1.2",
-        "is-reference": "^1.1.2",
-        "magic-string": "^0.25.2",
-        "resolve": "^1.11.0"
+        "estree-walker": "^2.0.1",
+        "glob": "^7.1.6",
+        "is-reference": "^1.2.1",
+        "magic-string": "^0.25.7",
+        "resolve": "^1.17.0"
       },
       "dependencies": {
+        "@rollup/pluginutils": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
+          "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
+          "dev": true,
+          "requires": {
+            "@types/estree": "0.0.39",
+            "estree-walker": "^1.0.1",
+            "picomatch": "^2.2.2"
+          },
+          "dependencies": {
+            "estree-walker": {
+              "version": "1.0.1",
+              "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
+              "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
+              "dev": true
+            }
+          }
+        },
         "estree-walker": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
-          "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.1.tgz",
+          "integrity": "sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==",
+          "dev": true
+        },
+        "glob": {
+          "version": "7.1.6",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+          "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+          "dev": true,
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.0.4",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "magic-string": {
+          "version": "0.25.7",
+          "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz",
+          "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==",
+          "dev": true,
+          "requires": {
+            "sourcemap-codec": "^1.4.4"
+          }
+        },
+        "picomatch": {
+          "version": "2.2.2",
+          "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+          "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
           "dev": true
         },
         "resolve": {
@@ -1058,15 +1106,14 @@
       }
     },
     "@rollup/plugin-node-resolve": {
-      "version": "8.4.0",
-      "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz",
-      "integrity": "sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ==",
+      "version": "9.0.0",
+      "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz",
+      "integrity": "sha512-gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==",
       "dev": true,
       "requires": {
         "@rollup/pluginutils": "^3.1.0",
         "@types/resolve": "1.17.1",
         "builtin-modules": "^3.1.0",
-        "deep-freeze": "^0.0.1",
         "deepmerge": "^4.2.2",
         "is-module": "^1.0.0",
         "resolve": "^1.17.0"
@@ -1083,12 +1130,6 @@
             "picomatch": "^2.2.2"
           }
         },
-        "@types/estree": {
-          "version": "0.0.39",
-          "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
-          "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
-          "dev": true
-        },
         "builtin-modules": {
           "version": "3.1.0",
           "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz",
@@ -1219,9 +1260,9 @@
       "dev": true
     },
     "@types/estree": {
-      "version": "0.0.45",
-      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz",
-      "integrity": "sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==",
+      "version": "0.0.39",
+      "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
+      "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
       "dev": true
     },
     "@types/glob": {
@@ -3474,12 +3515,6 @@
       "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
       "dev": true
     },
-    "deep-freeze": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz",
-      "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=",
-      "dev": true
-    },
     "deep-is": {
       "version": "0.1.3",
       "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
@@ -4070,9 +4105,9 @@
       }
     },
     "eslint": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.6.0.tgz",
-      "integrity": "sha512-QlAManNtqr7sozWm5TF4wIH9gmUm2hE3vNRUvyoYAa4y1l5/jxD/PQStEjBMQtCqZmSep8UxrcecI60hOpe61w==",
+      "version": "7.7.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.7.0.tgz",
+      "integrity": "sha512-1KUxLzos0ZVsyL81PnRN335nDtQ8/vZUD6uMtWbF+5zDtjKcsklIi78XoE0MVL93QvWTu+E5y44VyyCsOMBrIg==",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.0.0",
@@ -4380,9 +4415,9 @@
       }
     },
     "esri-leaflet": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.4.1.tgz",
-      "integrity": "sha512-0ukZIhA9dVx8yYe/ahp2yZm7GmUYTxPktXXHBVPBZoe9I00fkhLsEk2dIt1xa7XsCk/gH+Breb9L5lNALC+Niw==",
+      "version": "2.5.0",
+      "resolved": "https://registry.npmjs.org/esri-leaflet/-/esri-leaflet-2.5.0.tgz",
+      "integrity": "sha512-c8rsE4op7sSVGX4/u3SBzbRU7BaR/4oL63+1ReBuUdFFdYMmMZjSkUOsrAOo59Jh8cRM5NB3MiHBCNAlNr/CsQ==",
       "requires": {
         "@terraformer/arcgis": "^2.0.7",
         "tiny-binary-search": "^1.0.3"
@@ -7831,9 +7866,9 @@
       }
     },
     "lodash": {
-      "version": "4.17.19",
-      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
-      "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
+      "version": "4.17.20",
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
+      "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
     },
     "lodash.debounce": {
       "version": "4.0.8",
@@ -10550,9 +10585,9 @@
       }
     },
     "rollup": {
-      "version": "2.23.0",
-      "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.23.0.tgz",
-      "integrity": "sha512-vLNmZFUGVwrnqNAJ/BvuLk1MtWzu4IuoqsH9UWK5AIdO3rt8/CSiJNvPvCIvfzrbNsqKbNzPAG1V2O4eTe2XZg==",
+      "version": "2.26.4",
+      "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.26.4.tgz",
+      "integrity": "sha512-6+qsGuP0MXGd7vlYmk72utm1MrgZj5GfXibGL+cRkKQ9+ZL/BnFThDl0D5bcl7AqlzMjAQXRAwZX1HVm22M/4Q==",
       "dev": true,
       "requires": {
         "fsevents": "~2.1.2"
diff --git a/assets/package.json b/assets/package.json
index 7aef12ad4b864a5ee8040288e7b2bb4854639d17..d7f5f76c626a741d32b303139af09dee82d060ce 100644
--- a/assets/package.json
+++ b/assets/package.json
@@ -45,7 +45,7 @@
   "devDependencies": {
     "autoprefixer": "^9.8.6",
     "concat": "^1.0.3",
-    "eslint": "^7.6.0",
+    "eslint": "^7.7.0",
     "eslint-plugin-jasmine": "^4.1.1",
     "gulp": "^4.0.2",
     "gulp-rev-all": "^2.0.3",
@@ -67,12 +67,12 @@
     "postcss-cli": "^7.1.1",
     "postcss-csso": "^4.0.0",
     "postcss-flexbugs-fixes": "^4.2.1",
-    "rollup": "^2.23.0",
+    "rollup": "^2.26.4",
     "@rollup/plugin-buble": "^0.21.3",
-    "@rollup/plugin-commonjs": "^14.0.0",
+    "@rollup/plugin-commonjs": "^15.0.0",
     "rollup-plugin-istanbul": "^2.0.1",
     "@rollup/plugin-json": "^4.1.0",
-    "@rollup/plugin-node-resolve": "^8.4.0",
+    "@rollup/plugin-node-resolve": "^9.0.0",
     "@rollup/plugin-replace": "^2.3.3",
     "rollup-plugin-uglify": "^6.0.4",
     "sass": "^1.26.10",
@@ -87,12 +87,12 @@
     "d3-simple-slider": "1.8.0",
     "date-time-format-timezone": "1.0.22",
     "element-closest": "3.0.2",
-    "esri-leaflet": "2.4.1",
+    "esri-leaflet": "2.5.0",
     "fast-memoize": "2.5.2",
     "leaflet": "1.6.0",
     "leaflet.markercluster": "1.4.1",
     "list.js": "1.5.0",
-    "lodash": "4.17.19",
+    "lodash": "4.17.20",
     "luxon": "1.24.1",
     "matchmedia-polyfill": "0.3.2",
     "normalizr": "3.6.0",
diff --git a/assets/src/scripts/lib/d3-redux.js b/assets/src/scripts/lib/d3-redux.js
index ea5648b43419771af66e4b308c2e2eba04daec8a..a8b221b436685cddc805185d7e38e891a16d2577 100644
--- a/assets/src/scripts/lib/d3-redux.js
+++ b/assets/src/scripts/lib/d3-redux.js
@@ -9,7 +9,7 @@ import throttle from 'raf-throttle';
  * @param {Function} callback - function that will be called when the state store changes.
  * @param {Array of String} args - args used when executing callback. Note that the state of store will be appended to the list of args
  */
-export const subscribe = function (store, callback, args) {
+export const subscribe = function(store, callback, args) {
     let currentState = store.getState();
 
     function handleUpdate() {
@@ -21,7 +21,7 @@ export const subscribe = function (store, callback, args) {
         }
     }
 
-    store.subscribe(throttle.default(handleUpdate));
+    store.subscribe(throttle(handleUpdate));
 };
 
 /**
@@ -33,8 +33,8 @@ export const subscribe = function (store, callback, args) {
  * @param  {Function} callback - Callback function
  * @return {Function}
  */
-export const connect = function (store, callback) {
-    return function (selection) {
+export const connect = function(store, callback) {
+    return function(selection) {
         let args = [selection].concat([].slice.call(arguments, 1));
         subscribe(store, callback, args);
         callback.apply(null, args.concat([store.getState()]));
@@ -49,10 +49,10 @@ export const connect = function (store, callback) {
  * @param  {Object} ...args     Optional additional arguments to proxy to `func`
  * @return {Function}           D3 callback
  */
-export const link = function (store, func, selector, ...args) {
+export const link = function(store, func, selector, ...args) {
     let currentOptions = null;
     let context = null;
-    return connect(store, function (selection, state) {
+    return connect(store, function(selection, state) {
         let nextOptions = selector(state);
         if (currentOptions !== nextOptions) {
             currentOptions = nextOptions;
@@ -70,9 +70,9 @@ export const link = function (store, func, selector, ...args) {
  * @param  {Function} raf       If true, throttle callback with requestAnimationFrame
  * @return {Function}           Unsubscribe function
  */
-export const listen = function (store, selector, func, raf = true) {
+export const listen = function(store, selector, func, raf = true) {
     let current = selector(store.getState());
-    let callback = function () {
+    let callback = function() {
         let newData = selector(store.getState());
         if (current !== newData) {
             current = newData;
@@ -80,7 +80,7 @@ export const listen = function (store, selector, func, raf = true) {
         }
     };
     if (raf) {
-        callback = throttle.default(callback);
+        callback = throttle(callback);
     }
     func(current);
     return store.subscribe(callback);
@@ -92,9 +92,9 @@ export const listen = function (store, selector, func, raf = true) {
  * @param  {Function} initFunc (elem, options) => D3 selection
  * @param  {Function} updateFunc (elem, options)
  */
-export const initAndUpdate = function (initFunc, updateFunc) {
+export const initAndUpdate = function(initFunc, updateFunc) {
     let node = null;
-    return function (elem, options) {
+    return function(elem, options) {
         if (node === null) {
             node = initFunc(elem, options);
         }
diff --git a/assets/src/scripts/monitoring-location/components/hydrograph/index.spec.js b/assets/src/scripts/monitoring-location/components/hydrograph/index.spec.js
index 61bb9e5026625da470bc8f0c976ac64b8e1ab76b..2636592edc686f24c7eb536158c34168ebc177a2 100644
--- a/assets/src/scripts/monitoring-location/components/hydrograph/index.spec.js
+++ b/assets/src/scripts/monitoring-location/components/hydrograph/index.spec.js
@@ -267,8 +267,12 @@ describe('monitoring-location/components/hydrograph module', () => {
                 spyOn(ivTimeSeriesDataActions, 'retrieveIVTimeSeries').and.returnValue(function() {
                     return Promise.resolve({});
                 });
-                spyOn(ivTimeSeriesDataActions, 'retrieveExtendedIVTimeSeries').and.callThrough();
-                spyOn(ivTimeSeriesDataActions, 'retrieveUserRequestedIVDataForDateRange').and.callThrough();
+                spyOn(ivTimeSeriesDataActions, 'retrieveExtendedIVTimeSeries').and.returnValue(function() {
+                    return Promise.resolve({});
+                });
+                spyOn(ivTimeSeriesDataActions, 'retrieveUserRequestedIVDataForDateRange').and.returnValue(function() {
+                    return Promise.resolve({});
+                });
             });
 
             it('Expect to not retrieve additional time series if not indicated', (done) => {
@@ -306,7 +310,7 @@ describe('monitoring-location/components/hydrograph module', () => {
                 });
 
                 window.requestAnimationFrame(() => {
-                    expect(ivTimeSeriesDataActions.retrieveExtendedIVTimeSeries).not. toHaveBeenCalled();
+                    expect(ivTimeSeriesDataActions.retrieveExtendedIVTimeSeries).not.toHaveBeenCalled();
                     expect(ivTimeSeriesDataActions.retrieveUserRequestedIVDataForDateRange).not.toHaveBeenCalled();
                     done();
                 });
@@ -341,9 +345,15 @@ describe('monitoring-location/components/hydrograph module', () => {
                     loadingIVTSKeys: []
                 }
             });
-            spyOn(ivTimeSeriesDataActions, 'retrieveIVTimeSeries').and.callThrough();
-            spyOn(ivTimeSeriesDataActions, 'retrieveCustomTimePeriodIVTimeSeries').and.callThrough();
-            spyOn(ivTimeSeriesDataActions, 'retrieveUserRequestedIVDataForDateRange');
+            spyOn(ivTimeSeriesDataActions, 'retrieveIVTimeSeries').and.returnValue(function() {
+                return Promise.resolve({});
+            });
+            spyOn(ivTimeSeriesDataActions, 'retrieveCustomTimePeriodIVTimeSeries').and.returnValue(function() {
+                return Promise.resolve({});
+            });
+            spyOn(ivTimeSeriesDataActions, 'retrieveUserRequestedIVDataForDateRange').and.returnValue(function() {
+                return Promise.resolve({});
+            });
         });
 
         it('should retrieve custom time period if period is specificed', (done) => {
@@ -418,10 +428,10 @@ describe('monitoring-location/components/hydrograph module', () => {
     describe('graphNode contains the expected elements when no IV time series has been retrieved and showOnlyGraph is false', () => {
         let store;
         beforeEach((done) => {
-            spyOn(floodDataActions, 'retrieveWaterwatchData').and.returnValue(function () {
+            spyOn(floodDataActions, 'retrieveWaterwatchData').and.returnValue(function() {
                 return Promise.resolve({});
             });
-            spyOn(ivTimeSeriesDataActions, 'retrieveIVTimeSeries').and.returnValue(function () {
+            spyOn(ivTimeSeriesDataActions, 'retrieveIVTimeSeries').and.returnValue(function() {
                 return Promise.resolve({});
             });
             store = configureStore({
diff --git a/assets/src/styles/network.scss b/assets/src/styles/network.scss
index 44eb276534eef4e2f2b21588b927f16efba371d0..eaa37120093776dd323bb13ca4213a165c955d49 100644
--- a/assets/src/styles/network.scss
+++ b/assets/src/styles/network.scss
@@ -16,7 +16,7 @@ $fa-font-path: './fonts' !default;
 .wdfn-component {
   &[data-component='network'] {
     @import './components/network';
-  margin-bottom: 1em;
+    margin-bottom: 1em;
   }
 }
 
@@ -24,50 +24,50 @@ $fa-font-path: './fonts' !default;
  * If it gets addressed this can be removed.
  */
 .usa-sr-only {
-	overflow: hidden;
+  overflow: hidden;
 }
 
 body {
-	#main-content {
-		margin-top: 1em;
-		margin-bottom: 1em;
-		padding: 0 1em;
-	}
+  #main-content {
+    margin-top: 1em;
+    margin-bottom: 1em;
+    padding: 0 1em;
+  }
 
-	.content-container {
-		margin-left: auto;
-		margin-right: auto;
-		@include u-maxw('desktop');
-	}
+  .content-container {
+    margin-left: auto;
+    margin-right: auto;
+    @include u-maxw('desktop');
+  }
 
-	.cooperator_logo {
-		max-height: 150px;
-	}
+  .cooperator_logo {
+    max-height: 150px;
+  }
 
-	.bold-label {
-		font-size: large;
-		font-weight: bold;
-	}
+  .bold-label {
+    font-size: large;
+    font-weight: bold;
+  }
 
-	#contact-name{
-		margin-right: 0.5em;
-	}
+  #contact-name {
+    margin-right: 0.5em;
+  }
 
-	#contact-email {
-		margin-left: 0.25em;
-	}
+  #contact-email {
+    margin-left: 0.25em;
+  }
 
-	.cooperator-row {
-		@include grid-col(12);
+  .cooperator-row {
+    @include grid-col(12);
 
-		@include at-media(tablet) {
-			@include grid-col(6)
-		}
+    @include at-media(tablet) {
+      @include grid-col(6);
+    }
 
-		@include at-media(desktop) {
-			@include grid-col(4);
-		  }
-	}
+    @include at-media(desktop) {
+      @include grid-col(4);
+    }
+  }
 
-	@import './partials/alerts';
+  @import './partials/alerts';
 }
diff --git a/wdfn-server/requirements-cloud-prod.txt b/wdfn-server/requirements-cloud-prod.txt
index 4bf64a62c4aed35a5d7edfb9379d754f232aaea7..7b9a575c7527eff280c33487019b84ac550cde69 100644
--- a/wdfn-server/requirements-cloud-prod.txt
+++ b/wdfn-server/requirements-cloud-prod.txt
@@ -1,2 +1,2 @@
 gunicorn==20.0.4
-whitenoise==5.1.0
\ No newline at end of file
+whitenoise==5.2.0
\ No newline at end of file