Prompt users to reload the CC when the extension updates

When the extension updates, it stops working in the Community Console.
Thus, this change adds logic so when the extension detects it has been
recently installed or updated it injects a banner to the top of the CC
with a message which prompts the user to reload the page.

Fixed: twpowertools:82
Change-Id: I0c901c72574c7c64d9ba94f56be96a12f7770049
diff --git a/package-lock.json b/package-lock.json
index a514099..d8fe494 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,6 +10,7 @@
       "license": "MIT",
       "dependencies": {
         "@lit/localize": "^0.11.4",
+        "@material/banner": "^14.0.0",
         "@material/mwc-circular-progress": "^0.27.0",
         "@material/mwc-dialog": "^0.27.0",
         "@material/tooltip": "^12.0.0",
@@ -1207,6 +1208,181 @@
         "tslib": "^2.1.0"
       }
     },
+    "node_modules/@material/banner": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/@material/banner/-/banner-14.0.0.tgz",
+      "integrity": "sha512-z0WPBVQxbQVcV1km4hFD40xBEeVWYtCzl2jrkHd8xXexP/fMvXkFU1UfwSWvY3jlWx//j4/Xd7VpnRdEXS4RLQ==",
+      "dependencies": {
+        "@material/base": "^14.0.0",
+        "@material/button": "^14.0.0",
+        "@material/dom": "^14.0.0",
+        "@material/elevation": "^14.0.0",
+        "@material/feature-targeting": "^14.0.0",
+        "@material/ripple": "^14.0.0",
+        "@material/rtl": "^14.0.0",
+        "@material/shape": "^14.0.0",
+        "@material/theme": "^14.0.0",
+        "@material/tokens": "^14.0.0",
+        "@material/typography": "^14.0.0",
+        "tslib": "^2.1.0"
+      }
+    },
+    "node_modules/@material/banner/node_modules/@material/animation": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/@material/animation/-/animation-14.0.0.tgz",
+      "integrity": "sha512-VlYSfUaIj/BBVtRZI8Gv0VvzikFf+XgK0Zdgsok5c1v5DDnNz5tpB8mnGrveWz0rHbp1X4+CWLKrTwNmjrw3Xw==",
+      "dependencies": {
+        "tslib": "^2.1.0"
+      }
+    },
+    "node_modules/@material/banner/node_modules/@material/base": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/@material/base/-/base-14.0.0.tgz",
+      "integrity": "sha512-Ou7vS7n1H4Y10MUZyYAbt6H0t67c6urxoCgeVT7M38aQlaNUwFMODp7KT/myjYz2YULfhu3PtfSV3Sltgac9mA==",
+      "dependencies": {
+        "tslib": "^2.1.0"
+      }
+    },
+    "node_modules/@material/banner/node_modules/@material/button": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/@material/button/-/button-14.0.0.tgz",
+      "integrity": "sha512-dqqHaJq0peyXBZupFzCjmvScrfljyVU66ZCS3oldsaaj5iz8sn33I/45Z4zPzdR5F5z8ExToHkRcXhakj1UEAA==",
+      "dependencies": {
+        "@material/density": "^14.0.0",
+        "@material/dom": "^14.0.0",
+        "@material/elevation": "^14.0.0",
+        "@material/feature-targeting": "^14.0.0",
+        "@material/focus-ring": "^14.0.0",
+        "@material/ripple": "^14.0.0",
+        "@material/rtl": "^14.0.0",
+        "@material/shape": "^14.0.0",
+        "@material/theme": "^14.0.0",
+        "@material/tokens": "^14.0.0",
+        "@material/touch-target": "^14.0.0",
+        "@material/typography": "^14.0.0",
+        "tslib": "^2.1.0"
+      }
+    },
+    "node_modules/@material/banner/node_modules/@material/density": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/@material/density/-/density-14.0.0.tgz",
+      "integrity": "sha512-NlxXBV5XjNsKd8UXF4K/+fOXLxoFNecKbsaQO6O2u+iG8QBfFreKRmkhEBb2hPPwC3w8nrODwXX0lHV+toICQw==",
+      "dependencies": {
+        "tslib": "^2.1.0"
+      }
+    },
+    "node_modules/@material/banner/node_modules/@material/dom": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/@material/dom/-/dom-14.0.0.tgz",
+      "integrity": "sha512-8t88XyacclTj8qsIw9q0vEj4PI2KVncLoIsIMzwuMx49P2FZg6TsLjor262MI3Qs00UWAifuLMrhnOnfyrbe7Q==",
+      "dependencies": {
+        "@material/feature-targeting": "^14.0.0",
+        "tslib": "^2.1.0"
+      }
+    },
+    "node_modules/@material/banner/node_modules/@material/elevation": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-14.0.0.tgz",
+      "integrity": "sha512-Di3tkxTpXwvf1GJUmaC8rd+zVh5dB2SWMBGagL4+kT8UmjSISif/OPRGuGnXs3QhF6nmEjkdC0ijdZLcYQkepw==",
+      "dependencies": {
+        "@material/animation": "^14.0.0",
+        "@material/base": "^14.0.0",
+        "@material/feature-targeting": "^14.0.0",
+        "@material/rtl": "^14.0.0",
+        "@material/theme": "^14.0.0",
+        "tslib": "^2.1.0"
+      }
+    },
+    "node_modules/@material/banner/node_modules/@material/feature-targeting": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-14.0.0.tgz",
+      "integrity": "sha512-a5WGgHEq5lJeeNL5yevtgoZjBjXWy6+klfVWQEh8oyix/rMJygGgO7gEc52uv8fB8uAIoYEB3iBMOv8jRq8FeA==",
+      "dependencies": {
+        "tslib": "^2.1.0"
+      }
+    },
+    "node_modules/@material/banner/node_modules/@material/focus-ring": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-14.0.0.tgz",
+      "integrity": "sha512-fqqka6iSfQGJG3Le48RxPCtnOiaLGPDPikhktGbxlyW9srBVMgeCiONfHM7IT/1eu80O0Y67Lh/4ohu5+C+VAQ==",
+      "dependencies": {
+        "@material/dom": "^14.0.0",
+        "@material/feature-targeting": "^14.0.0",
+        "@material/rtl": "^14.0.0"
+      }
+    },
+    "node_modules/@material/banner/node_modules/@material/ripple": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-14.0.0.tgz",
+      "integrity": "sha512-9XoGBFd5JhFgELgW7pqtiLy+CnCIcV2s9cQ2BWbOQeA8faX9UZIDUx/g76nHLZ7UzKFtsULJxZTwORmsEt2zvw==",
+      "dependencies": {
+        "@material/animation": "^14.0.0",
+        "@material/base": "^14.0.0",
+        "@material/dom": "^14.0.0",
+        "@material/feature-targeting": "^14.0.0",
+        "@material/rtl": "^14.0.0",
+        "@material/theme": "^14.0.0",
+        "tslib": "^2.1.0"
+      }
+    },
+    "node_modules/@material/banner/node_modules/@material/rtl": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-14.0.0.tgz",
+      "integrity": "sha512-xl6OZYyRjuiW2hmbjV2omMV8sQtfmKAjeWnD1RMiAPLCTyOW9Lh/PYYnXjxUrNa0cRwIIbOn5J7OYXokja8puA==",
+      "dependencies": {
+        "@material/theme": "^14.0.0",
+        "tslib": "^2.1.0"
+      }
+    },
+    "node_modules/@material/banner/node_modules/@material/shape": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/@material/shape/-/shape-14.0.0.tgz",
+      "integrity": "sha512-o0mJB0+feOv473KckI8gFnUo8IQAaEA6ynXzw3VIYFjPi48pJwrxa0mZcJP/OoTXrCbDzDeFJfDPXEmRioBb9A==",
+      "dependencies": {
+        "@material/feature-targeting": "^14.0.0",
+        "@material/rtl": "^14.0.0",
+        "@material/theme": "^14.0.0",
+        "tslib": "^2.1.0"
+      }
+    },
+    "node_modules/@material/banner/node_modules/@material/theme": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/@material/theme/-/theme-14.0.0.tgz",
+      "integrity": "sha512-6/SENWNIFuXzeHMPHrYwbsXKgkvCtWuzzQ3cUu4UEt3KcQ5YpViazIM6h8ByYKZP8A9d8QpkJ0WGX5btGDcVoA==",
+      "dependencies": {
+        "@material/feature-targeting": "^14.0.0",
+        "tslib": "^2.1.0"
+      }
+    },
+    "node_modules/@material/banner/node_modules/@material/tokens": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-14.0.0.tgz",
+      "integrity": "sha512-SXgB9VwsKW4DFkHmJfDIS0x0cGdMWC1D06m6z/WQQ5P5j6/m0pKrbHVlrLzXcRjau+mFhXGvj/KyPo9Pp/Rc8Q==",
+      "dependencies": {
+        "@material/elevation": "^14.0.0"
+      }
+    },
+    "node_modules/@material/banner/node_modules/@material/touch-target": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-14.0.0.tgz",
+      "integrity": "sha512-o3kvxmS4HkmZoQTvtzLJrqSG+ezYXkyINm3Uiwio1PTg67pDgK5FRwInkz0VNaWPcw9+5jqjUQGjuZMtjQMq8w==",
+      "dependencies": {
+        "@material/base": "^14.0.0",
+        "@material/feature-targeting": "^14.0.0",
+        "@material/rtl": "^14.0.0",
+        "tslib": "^2.1.0"
+      }
+    },
+    "node_modules/@material/banner/node_modules/@material/typography": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/@material/typography/-/typography-14.0.0.tgz",
+      "integrity": "sha512-/QtHBYiTR+TPMryM/CT386B2WlAQf/Ae32V324Z7P40gHLKY/YBXx7FDutAWZFeOerq/two4Nd2aAHBcMM2wMw==",
+      "dependencies": {
+        "@material/feature-targeting": "^14.0.0",
+        "@material/theme": "^14.0.0",
+        "tslib": "^2.1.0"
+      }
+    },
     "node_modules/@material/base": {
       "version": "12.0.0",
       "resolved": "https://registry.npmjs.org/@material/base/-/base-12.0.0.tgz",
@@ -8124,6 +8300,183 @@
         "tslib": "^2.1.0"
       }
     },
+    "@material/banner": {
+      "version": "14.0.0",
+      "resolved": "https://registry.npmjs.org/@material/banner/-/banner-14.0.0.tgz",
+      "integrity": "sha512-z0WPBVQxbQVcV1km4hFD40xBEeVWYtCzl2jrkHd8xXexP/fMvXkFU1UfwSWvY3jlWx//j4/Xd7VpnRdEXS4RLQ==",
+      "requires": {
+        "@material/base": "^14.0.0",
+        "@material/button": "^14.0.0",
+        "@material/dom": "^14.0.0",
+        "@material/elevation": "^14.0.0",
+        "@material/feature-targeting": "^14.0.0",
+        "@material/ripple": "^14.0.0",
+        "@material/rtl": "^14.0.0",
+        "@material/shape": "^14.0.0",
+        "@material/theme": "^14.0.0",
+        "@material/tokens": "^14.0.0",
+        "@material/typography": "^14.0.0",
+        "tslib": "^2.1.0"
+      },
+      "dependencies": {
+        "@material/animation": {
+          "version": "14.0.0",
+          "resolved": "https://registry.npmjs.org/@material/animation/-/animation-14.0.0.tgz",
+          "integrity": "sha512-VlYSfUaIj/BBVtRZI8Gv0VvzikFf+XgK0Zdgsok5c1v5DDnNz5tpB8mnGrveWz0rHbp1X4+CWLKrTwNmjrw3Xw==",
+          "requires": {
+            "tslib": "^2.1.0"
+          }
+        },
+        "@material/base": {
+          "version": "14.0.0",
+          "resolved": "https://registry.npmjs.org/@material/base/-/base-14.0.0.tgz",
+          "integrity": "sha512-Ou7vS7n1H4Y10MUZyYAbt6H0t67c6urxoCgeVT7M38aQlaNUwFMODp7KT/myjYz2YULfhu3PtfSV3Sltgac9mA==",
+          "requires": {
+            "tslib": "^2.1.0"
+          }
+        },
+        "@material/button": {
+          "version": "14.0.0",
+          "resolved": "https://registry.npmjs.org/@material/button/-/button-14.0.0.tgz",
+          "integrity": "sha512-dqqHaJq0peyXBZupFzCjmvScrfljyVU66ZCS3oldsaaj5iz8sn33I/45Z4zPzdR5F5z8ExToHkRcXhakj1UEAA==",
+          "requires": {
+            "@material/density": "^14.0.0",
+            "@material/dom": "^14.0.0",
+            "@material/elevation": "^14.0.0",
+            "@material/feature-targeting": "^14.0.0",
+            "@material/focus-ring": "^14.0.0",
+            "@material/ripple": "^14.0.0",
+            "@material/rtl": "^14.0.0",
+            "@material/shape": "^14.0.0",
+            "@material/theme": "^14.0.0",
+            "@material/tokens": "^14.0.0",
+            "@material/touch-target": "^14.0.0",
+            "@material/typography": "^14.0.0",
+            "tslib": "^2.1.0"
+          }
+        },
+        "@material/density": {
+          "version": "14.0.0",
+          "resolved": "https://registry.npmjs.org/@material/density/-/density-14.0.0.tgz",
+          "integrity": "sha512-NlxXBV5XjNsKd8UXF4K/+fOXLxoFNecKbsaQO6O2u+iG8QBfFreKRmkhEBb2hPPwC3w8nrODwXX0lHV+toICQw==",
+          "requires": {
+            "tslib": "^2.1.0"
+          }
+        },
+        "@material/dom": {
+          "version": "14.0.0",
+          "resolved": "https://registry.npmjs.org/@material/dom/-/dom-14.0.0.tgz",
+          "integrity": "sha512-8t88XyacclTj8qsIw9q0vEj4PI2KVncLoIsIMzwuMx49P2FZg6TsLjor262MI3Qs00UWAifuLMrhnOnfyrbe7Q==",
+          "requires": {
+            "@material/feature-targeting": "^14.0.0",
+            "tslib": "^2.1.0"
+          }
+        },
+        "@material/elevation": {
+          "version": "14.0.0",
+          "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-14.0.0.tgz",
+          "integrity": "sha512-Di3tkxTpXwvf1GJUmaC8rd+zVh5dB2SWMBGagL4+kT8UmjSISif/OPRGuGnXs3QhF6nmEjkdC0ijdZLcYQkepw==",
+          "requires": {
+            "@material/animation": "^14.0.0",
+            "@material/base": "^14.0.0",
+            "@material/feature-targeting": "^14.0.0",
+            "@material/rtl": "^14.0.0",
+            "@material/theme": "^14.0.0",
+            "tslib": "^2.1.0"
+          }
+        },
+        "@material/feature-targeting": {
+          "version": "14.0.0",
+          "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-14.0.0.tgz",
+          "integrity": "sha512-a5WGgHEq5lJeeNL5yevtgoZjBjXWy6+klfVWQEh8oyix/rMJygGgO7gEc52uv8fB8uAIoYEB3iBMOv8jRq8FeA==",
+          "requires": {
+            "tslib": "^2.1.0"
+          }
+        },
+        "@material/focus-ring": {
+          "version": "14.0.0",
+          "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-14.0.0.tgz",
+          "integrity": "sha512-fqqka6iSfQGJG3Le48RxPCtnOiaLGPDPikhktGbxlyW9srBVMgeCiONfHM7IT/1eu80O0Y67Lh/4ohu5+C+VAQ==",
+          "requires": {
+            "@material/dom": "^14.0.0",
+            "@material/feature-targeting": "^14.0.0",
+            "@material/rtl": "^14.0.0"
+          }
+        },
+        "@material/ripple": {
+          "version": "14.0.0",
+          "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-14.0.0.tgz",
+          "integrity": "sha512-9XoGBFd5JhFgELgW7pqtiLy+CnCIcV2s9cQ2BWbOQeA8faX9UZIDUx/g76nHLZ7UzKFtsULJxZTwORmsEt2zvw==",
+          "requires": {
+            "@material/animation": "^14.0.0",
+            "@material/base": "^14.0.0",
+            "@material/dom": "^14.0.0",
+            "@material/feature-targeting": "^14.0.0",
+            "@material/rtl": "^14.0.0",
+            "@material/theme": "^14.0.0",
+            "tslib": "^2.1.0"
+          }
+        },
+        "@material/rtl": {
+          "version": "14.0.0",
+          "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-14.0.0.tgz",
+          "integrity": "sha512-xl6OZYyRjuiW2hmbjV2omMV8sQtfmKAjeWnD1RMiAPLCTyOW9Lh/PYYnXjxUrNa0cRwIIbOn5J7OYXokja8puA==",
+          "requires": {
+            "@material/theme": "^14.0.0",
+            "tslib": "^2.1.0"
+          }
+        },
+        "@material/shape": {
+          "version": "14.0.0",
+          "resolved": "https://registry.npmjs.org/@material/shape/-/shape-14.0.0.tgz",
+          "integrity": "sha512-o0mJB0+feOv473KckI8gFnUo8IQAaEA6ynXzw3VIYFjPi48pJwrxa0mZcJP/OoTXrCbDzDeFJfDPXEmRioBb9A==",
+          "requires": {
+            "@material/feature-targeting": "^14.0.0",
+            "@material/rtl": "^14.0.0",
+            "@material/theme": "^14.0.0",
+            "tslib": "^2.1.0"
+          }
+        },
+        "@material/theme": {
+          "version": "14.0.0",
+          "resolved": "https://registry.npmjs.org/@material/theme/-/theme-14.0.0.tgz",
+          "integrity": "sha512-6/SENWNIFuXzeHMPHrYwbsXKgkvCtWuzzQ3cUu4UEt3KcQ5YpViazIM6h8ByYKZP8A9d8QpkJ0WGX5btGDcVoA==",
+          "requires": {
+            "@material/feature-targeting": "^14.0.0",
+            "tslib": "^2.1.0"
+          }
+        },
+        "@material/tokens": {
+          "version": "14.0.0",
+          "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-14.0.0.tgz",
+          "integrity": "sha512-SXgB9VwsKW4DFkHmJfDIS0x0cGdMWC1D06m6z/WQQ5P5j6/m0pKrbHVlrLzXcRjau+mFhXGvj/KyPo9Pp/Rc8Q==",
+          "requires": {
+            "@material/elevation": "^14.0.0"
+          }
+        },
+        "@material/touch-target": {
+          "version": "14.0.0",
+          "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-14.0.0.tgz",
+          "integrity": "sha512-o3kvxmS4HkmZoQTvtzLJrqSG+ezYXkyINm3Uiwio1PTg67pDgK5FRwInkz0VNaWPcw9+5jqjUQGjuZMtjQMq8w==",
+          "requires": {
+            "@material/base": "^14.0.0",
+            "@material/feature-targeting": "^14.0.0",
+            "@material/rtl": "^14.0.0",
+            "tslib": "^2.1.0"
+          }
+        },
+        "@material/typography": {
+          "version": "14.0.0",
+          "resolved": "https://registry.npmjs.org/@material/typography/-/typography-14.0.0.tgz",
+          "integrity": "sha512-/QtHBYiTR+TPMryM/CT386B2WlAQf/Ae32V324Z7P40gHLKY/YBXx7FDutAWZFeOerq/two4Nd2aAHBcMM2wMw==",
+          "requires": {
+            "@material/feature-targeting": "^14.0.0",
+            "@material/theme": "^14.0.0",
+            "tslib": "^2.1.0"
+          }
+        }
+      }
+    },
     "@material/base": {
       "version": "12.0.0",
       "resolved": "https://registry.npmjs.org/@material/base/-/base-12.0.0.tgz",