pw_web_ui: Add linting with eslint and prettier

Uses gts to run eslint and prettier.gts is Google's TypeScript
formatter (https://github.com/google/gts).

Run `yarn run check` or `yarn run fix` to lint or format the code.
A future CL will add running this linter as a presubmit step.

This CL also formats several project files that weren't linted.

Change-Id: Ibfee61efb0d1f18cbd9aae5e6cb32687e8dce8ac
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/12120
Commit-Queue: Matthew Soulanille <msoulanille@google.com>
Reviewed-by: Matthew Soulanille <msoulanille@google.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
Reviewed-by: Max Koopman <koopman@google.com>
diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 0000000..5204bc2
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,48 @@
+// Copyright 2020 The Pigweed Authors
+//
+// 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
+//
+//     https://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.
+
+{
+  "ignorePatterns": [
+    "bazel-bin",
+    "bazel-pigweed",
+    "bazel-out",
+    "bazel-testlogs",
+    "node-modules",
+    "*.js",
+    "*.d.ts"
+  ],
+  "extends": [
+    "./node_modules/gts/",
+    "plugin:react/recommended"
+  ],
+  "plugins": [
+    "react"
+  ],
+  "parserOptions": {
+    "ecmaFeatures": {
+      "jsx": true
+    },
+    "ecmaVersion": 2018,
+    "sourceType": "module"
+  },
+  "rules": {
+    "node/no-unsupported-features/es-syntax": "off",
+    "node/no-unpublished-import": "off"
+  },
+  "settings": {
+    "react": {
+      "version": "detect"
+    }
+  }
+}