From dfe72825102262f3f3a15ef7f581f25467028bc7 Mon Sep 17 00:00:00 2001
From: orangemug <info@orangemug.co.uk>
Date: Wed, 8 Nov 2017 10:13:02 +0000
Subject: [PATCH 1/3] Fixed some errors reported in google lighthouse audit
 tool.

---
 config/webpack.config.js                 | 9 ++++++++-
 package.json                             | 1 +
 src/components/icons/LineIcon.jsx        | 2 +-
 src/components/icons/SymbolIcon.jsx      | 4 ++--
 src/components/layers/LayerListGroup.jsx | 4 ++--
 src/manifest.json                        | 9 +++++++++
 src/template.html                        | 1 +
 7 files changed, 24 insertions(+), 6 deletions(-)
 create mode 100644 src/manifest.json

diff --git a/config/webpack.config.js b/config/webpack.config.js
index 64de205..24a2852 100644
--- a/config/webpack.config.js
+++ b/config/webpack.config.js
@@ -3,6 +3,7 @@ var webpack = require('webpack');
 var path = require('path');
 var loaders = require('./webpack.loaders');
 var HtmlWebpackPlugin = require('html-webpack-plugin');
+var CopyWebpackPlugin = require('copy-webpack-plugin');
 
 const HOST = process.env.HOST || "127.0.0.1";
 const PORT = process.env.PORT || "8888";
@@ -59,6 +60,12 @@ module.exports = {
     new HtmlWebpackPlugin({
       title: 'Maputnik',
       template: './src/template.html'
-    })
+    }),
+    new CopyWebpackPlugin([
+      {
+        from: './src/manifest.json',
+        to: 'manifest.json'
+      }
+    ])
   ]
 };
diff --git a/package.json b/package.json
index 94de1c9..299501f 100644
--- a/package.json
+++ b/package.json
@@ -99,6 +99,7 @@
     "babel-preset-react": "^6.24.1",
     "babel-runtime": "^6.26.0",
     "base64-loader": "^1.0.0",
+    "copy-webpack-plugin": "^4.2.0",
     "css-loader": "^0.28.7",
     "eslint": "^4.10.0",
     "eslint-plugin-react": "^7.4.0",
diff --git a/src/components/icons/LineIcon.jsx b/src/components/icons/LineIcon.jsx
index ab5acbd..67e5403 100644
--- a/src/components/icons/LineIcon.jsx
+++ b/src/components/icons/LineIcon.jsx
@@ -6,7 +6,7 @@ export default class FillIcon extends React.Component {
   render() {
     return (
       <IconBase viewBox="0 0 20 20" {...this.props}>
-        <path id="path8" d="M 12.34,1.29 C 12.5114,1.1076 12.7497,1.0029 13,1 13.5523,1 14,1.4477 14,2 14.0047,2.2478 13.907,2.4866 13.73,2.66 9.785626,6.5516986 6.6148407,9.7551593 2.65,13.72 2.4793,13.8963 2.2453,13.9971 2,14 1.4477,14 1,13.5523 1,13 0.9953,12.7522 1.093,12.5134 1.27,12.34 4.9761967,8.7018093 9.0356422,4.5930579 12.34,1.29 Z" transform="translate(2,2)" />
+        <path d="M 12.34,1.29 C 12.5114,1.1076 12.7497,1.0029 13,1 13.5523,1 14,1.4477 14,2 14.0047,2.2478 13.907,2.4866 13.73,2.66 9.785626,6.5516986 6.6148407,9.7551593 2.65,13.72 2.4793,13.8963 2.2453,13.9971 2,14 1.4477,14 1,13.5523 1,13 0.9953,12.7522 1.093,12.5134 1.27,12.34 4.9761967,8.7018093 9.0356422,4.5930579 12.34,1.29 Z" transform="translate(2,2)" />
       </IconBase>
     )
   }
diff --git a/src/components/icons/SymbolIcon.jsx b/src/components/icons/SymbolIcon.jsx
index 941d9b9..961ba4e 100644
--- a/src/components/icons/SymbolIcon.jsx
+++ b/src/components/icons/SymbolIcon.jsx
@@ -6,8 +6,8 @@ export default class SymbolIcon extends React.Component {
   render() {
     return (
       <IconBase viewBox="0 0 20 20" {...this.props}>
-        <g id="svg_1" transform="matrix(1.2718518,0,0,1.2601269,16.559526,-7.4065264)">
-          <path id="svg_2" d="m -9.7959773,11.060163 c -0.3734787,-0.724437 -0.3580577,-1.2147051 -0.00547,-1.8767873 l 8.6034029,-0.019416 c 0.39670292,0.6865644 0.38365934,1.4750693 -0.011097,1.8864953 l -3.1359613,-0.0033 -0.013695,7.1305 c -0.4055357,0.397083 -1.3146432,0.397083 -1.7769191,-0.02274 l 0.030226,-7.104422 z" />
+        <g transform="matrix(1.2718518,0,0,1.2601269,16.559526,-7.4065264)">
+          <path d="m -9.7959773,11.060163 c -0.3734787,-0.724437 -0.3580577,-1.2147051 -0.00547,-1.8767873 l 8.6034029,-0.019416 c 0.39670292,0.6865644 0.38365934,1.4750693 -0.011097,1.8864953 l -3.1359613,-0.0033 -0.013695,7.1305 c -0.4055357,0.397083 -1.3146432,0.397083 -1.7769191,-0.02274 l 0.030226,-7.104422 z" />
         </g>
       </IconBase>
     )
diff --git a/src/components/layers/LayerListGroup.jsx b/src/components/layers/LayerListGroup.jsx
index ccf7f38..ab36ab0 100644
--- a/src/components/layers/LayerListGroup.jsx
+++ b/src/components/layers/LayerListGroup.jsx
@@ -10,7 +10,7 @@ export default class LayerListGroup extends React.Component {
   }
 
   render() {
-    return <div className="maputnik-layer-list-group">
+    return <li className="maputnik-layer-list-group">
       <div className="maputnik-layer-list-group-header"
         onClick={e => this.props.onActiveToggle(!this.props.isActive)}
       >
@@ -21,6 +21,6 @@ export default class LayerListGroup extends React.Component {
           isCollapsed={this.props.isActive}
         />
       </div>
-    </div>
+    </li>
   }
 }
diff --git a/src/manifest.json b/src/manifest.json
new file mode 100644
index 0000000..bd9be0f
--- /dev/null
+++ b/src/manifest.json
@@ -0,0 +1,9 @@
+{
+  "name": "Maputnik",
+  "short_name": "Maputnik",
+  "description": "Visual Map Designer",
+  "start_url": ".",
+  "display": "browser",
+  "background_color": "#1c1f24",
+  "theme_color": "#1c1f24"
+}
diff --git a/src/template.html b/src/template.html
index 94eceb4..bfa8284 100644
--- a/src/template.html
+++ b/src/template.html
@@ -4,6 +4,7 @@
   <meta charset="utf-8">
   <title><%= htmlWebpackPlugin.options.title %></title>
   <meta name="viewport" content="width=device-width, initial-scale=1">
+  <link rel="manifest" href="manifest.json">
   <style>
     html {
       background-color: rgb(28, 31, 36);

From 1f5608ec773635e0766cc17b9039e250744e7f53 Mon Sep 17 00:00:00 2001
From: orangemug <info@orangemug.co.uk>
Date: Wed, 29 Nov 2017 11:29:48 +0000
Subject: [PATCH 2/3] Added manifest.json to production webpack config.

---
 config/webpack.production.config.js | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/config/webpack.production.config.js b/config/webpack.production.config.js
index e0d9a73..01a5c4e 100644
--- a/config/webpack.production.config.js
+++ b/config/webpack.production.config.js
@@ -6,6 +6,7 @@ var ExtractTextPlugin = require('extract-text-webpack-plugin');
 var HtmlWebpackPlugin = require('html-webpack-plugin');
 var WebpackCleanupPlugin = require('webpack-cleanup-plugin');
 var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
+var CopyWebpackPlugin = require('copy-webpack-plugin');
 
 var OUTPATH;
 if(process.env.CIRCLE_ARTIFACTS) {
@@ -80,6 +81,12 @@ module.exports = {
       template: './src/template.html',
       title: 'Maputnik'
     }),
+    new CopyWebpackPlugin([
+      {
+        from: './src/manifest.json',
+        to: 'manifest.json'
+      }
+    ]),
     new BundleAnalyzerPlugin({
       analyzerMode: 'static',
       defaultSizes: 'gzip',

From de24227b1fcaa55da11cfaef19ea43b255d3d853 Mon Sep 17 00:00:00 2001
From: orangemug <info@orangemug.co.uk>
Date: Wed, 29 Nov 2017 11:34:08 +0000
Subject: [PATCH 3/3] Updated package-lock.json

---
 package-lock.json | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/package-lock.json b/package-lock.json
index 5020cfd..2873aa6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2544,6 +2544,49 @@
         "toggle-selection": "1.0.6"
       }
     },
+    "copy-webpack-plugin": {
+      "version": "4.2.3",
+      "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.2.3.tgz",
+      "integrity": "sha512-cL/Wl3Y1QmmKThl/mWeGB+HH3YH+25tn8nhqEGsZda4Yn7GqGnDZ+TbeKJ7A6zvrxyNhhuviYAxn/tCyyAqh8Q==",
+      "dev": true,
+      "requires": {
+        "bluebird": "3.5.1",
+        "glob": "7.1.2",
+        "is-glob": "4.0.0",
+        "loader-utils": "0.2.17",
+        "lodash": "4.17.4",
+        "minimatch": "3.0.4"
+      },
+      "dependencies": {
+        "is-extglob": {
+          "version": "2.1.1",
+          "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+          "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+          "dev": true
+        },
+        "is-glob": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
+          "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=",
+          "dev": true,
+          "requires": {
+            "is-extglob": "2.1.1"
+          }
+        },
+        "loader-utils": {
+          "version": "0.2.17",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+          "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+          "dev": true,
+          "requires": {
+            "big.js": "3.2.0",
+            "emojis-list": "2.1.0",
+            "json5": "0.5.1",
+            "object-assign": "4.1.1"
+          }
+        }
+      }
+    },
     "core-js": {
       "version": "2.5.1",
       "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",