diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json
index b18a8982cf..8edce6929a 100644
--- a/npm-shrinkwrap.json
+++ b/npm-shrinkwrap.json
@@ -541,6 +541,11 @@
"from": "babel-core@>=6.0.0 <7.0.0",
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.24.1.tgz"
},
+ "babel-eslint": {
+ "version": "7.2.3",
+ "from": "babel-eslint@latest",
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz"
+ },
"babel-generator": {
"version": "6.24.1",
"from": "babel-generator@>=6.24.1 <7.0.0",
@@ -630,6 +635,11 @@
"from": "babel-plugin-syntax-async-functions@>=6.13.0 <7.0.0",
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz"
},
+ "babel-plugin-syntax-dynamic-import": {
+ "version": "6.18.0",
+ "from": "babel-plugin-syntax-dynamic-import@latest",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz"
+ },
"babel-plugin-syntax-object-rest-spread": {
"version": "6.13.0",
"from": "babel-plugin-syntax-object-rest-spread@>=6.8.0 <7.0.0",
@@ -4198,6 +4208,700 @@
"from": "fs.realpath@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
},
+ "fsevents": {
+ "version": "1.1.1",
+ "from": "fsevents@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.1.tgz",
+ "optional": true,
+ "dependencies": {
+ "abbrev": {
+ "version": "1.1.0",
+ "from": "abbrev@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
+ "optional": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "from": "ansi-regex@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "from": "ansi-styles@>=2.2.1 <3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "optional": true
+ },
+ "aproba": {
+ "version": "1.1.1",
+ "from": "aproba@>=1.0.3 <2.0.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz",
+ "optional": true
+ },
+ "are-we-there-yet": {
+ "version": "1.1.2",
+ "from": "are-we-there-yet@>=1.1.2 <1.2.0",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz",
+ "optional": true
+ },
+ "asn1": {
+ "version": "0.2.3",
+ "from": "asn1@>=0.2.3 <0.3.0",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "optional": true
+ },
+ "assert-plus": {
+ "version": "0.2.0",
+ "from": "assert-plus@>=0.2.0 <0.3.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
+ "optional": true
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "from": "asynckit@>=0.4.0 <0.5.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "optional": true
+ },
+ "aws-sign2": {
+ "version": "0.6.0",
+ "from": "aws-sign2@>=0.6.0 <0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
+ "optional": true
+ },
+ "aws4": {
+ "version": "1.6.0",
+ "from": "aws4@>=1.2.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
+ "optional": true
+ },
+ "balanced-match": {
+ "version": "0.4.2",
+ "from": "balanced-match@>=0.4.1 <0.5.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz"
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.1",
+ "from": "bcrypt-pbkdf@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+ "optional": true
+ },
+ "block-stream": {
+ "version": "0.0.9",
+ "from": "block-stream@*",
+ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz"
+ },
+ "boom": {
+ "version": "2.10.1",
+ "from": "boom@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz"
+ },
+ "brace-expansion": {
+ "version": "1.1.6",
+ "from": "brace-expansion@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz"
+ },
+ "buffer-shims": {
+ "version": "1.0.0",
+ "from": "buffer-shims@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz"
+ },
+ "caseless": {
+ "version": "0.11.0",
+ "from": "caseless@>=0.11.0 <0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
+ "optional": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "from": "chalk@>=1.1.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "optional": true
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "from": "code-point-at@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"
+ },
+ "combined-stream": {
+ "version": "1.0.5",
+ "from": "combined-stream@>=1.0.5 <1.1.0",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz"
+ },
+ "commander": {
+ "version": "2.9.0",
+ "from": "commander@>=2.9.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+ "optional": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "from": "concat-map@0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
+ },
+ "console-control-strings": {
+ "version": "1.1.0",
+ "from": "console-control-strings@>=1.1.0 <1.2.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz"
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "from": "core-util-is@>=1.0.0 <1.1.0",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
+ },
+ "cryptiles": {
+ "version": "2.0.5",
+ "from": "cryptiles@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
+ "optional": true
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "from": "dashdash@>=1.12.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "optional": true,
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "from": "assert-plus@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "optional": true
+ }
+ }
+ },
+ "debug": {
+ "version": "2.2.0",
+ "from": "debug@>=2.2.0 <2.3.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
+ "optional": true
+ },
+ "deep-extend": {
+ "version": "0.4.1",
+ "from": "deep-extend@>=0.4.0 <0.5.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz",
+ "optional": true
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "from": "delayed-stream@>=1.0.0 <1.1.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
+ },
+ "delegates": {
+ "version": "1.0.0",
+ "from": "delegates@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "optional": true
+ },
+ "ecc-jsbn": {
+ "version": "0.1.1",
+ "from": "ecc-jsbn@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "optional": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "from": "escape-string-regexp@>=1.0.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "optional": true
+ },
+ "extend": {
+ "version": "3.0.0",
+ "from": "extend@>=3.0.0 <3.1.0",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
+ "optional": true
+ },
+ "extsprintf": {
+ "version": "1.0.2",
+ "from": "extsprintf@1.0.2",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz"
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "from": "forever-agent@>=0.6.1 <0.7.0",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "optional": true
+ },
+ "form-data": {
+ "version": "2.1.2",
+ "from": "form-data@>=2.1.1 <2.2.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz",
+ "optional": true
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "from": "fs.realpath@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
+ },
+ "fstream": {
+ "version": "1.0.10",
+ "from": "fstream@>=1.0.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz"
+ },
+ "fstream-ignore": {
+ "version": "1.0.5",
+ "from": "fstream-ignore@>=1.0.5 <1.1.0",
+ "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz",
+ "optional": true
+ },
+ "gauge": {
+ "version": "2.7.3",
+ "from": "gauge@>=2.7.1 <2.8.0",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.3.tgz",
+ "optional": true
+ },
+ "generate-function": {
+ "version": "2.0.0",
+ "from": "generate-function@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz",
+ "optional": true
+ },
+ "generate-object-property": {
+ "version": "1.2.0",
+ "from": "generate-object-property@>=1.1.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
+ "optional": true
+ },
+ "getpass": {
+ "version": "0.1.6",
+ "from": "getpass@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz",
+ "optional": true,
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "from": "assert-plus@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "optional": true
+ }
+ }
+ },
+ "glob": {
+ "version": "7.1.1",
+ "from": "glob@>=7.0.5 <8.0.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz"
+ },
+ "graceful-fs": {
+ "version": "4.1.11",
+ "from": "graceful-fs@>=4.1.2 <5.0.0",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz"
+ },
+ "graceful-readlink": {
+ "version": "1.0.1",
+ "from": "graceful-readlink@>=1.0.0",
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+ "optional": true
+ },
+ "har-validator": {
+ "version": "2.0.6",
+ "from": "har-validator@>=2.0.6 <2.1.0",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
+ "optional": true
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "from": "has-ansi@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "optional": true
+ },
+ "has-unicode": {
+ "version": "2.0.1",
+ "from": "has-unicode@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "optional": true
+ },
+ "hawk": {
+ "version": "3.1.3",
+ "from": "hawk@>=3.1.3 <3.2.0",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
+ "optional": true
+ },
+ "hoek": {
+ "version": "2.16.3",
+ "from": "hoek@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
+ },
+ "http-signature": {
+ "version": "1.1.1",
+ "from": "http-signature@>=1.1.0 <1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
+ "optional": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "from": "inflight@>=1.0.4 <2.0.0",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "from": "inherits@>=2.0.1 <2.1.0",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
+ },
+ "ini": {
+ "version": "1.3.4",
+ "from": "ini@>=1.3.0 <1.4.0",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
+ "optional": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "from": "is-fullwidth-code-point@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"
+ },
+ "is-my-json-valid": {
+ "version": "2.15.0",
+ "from": "is-my-json-valid@>=2.12.4 <3.0.0",
+ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz",
+ "optional": true
+ },
+ "is-property": {
+ "version": "1.0.2",
+ "from": "is-property@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
+ "optional": true
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "from": "is-typedarray@>=1.0.0 <1.1.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "optional": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "from": "isarray@>=1.0.0 <1.1.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "from": "isstream@>=0.1.2 <0.2.0",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "optional": true
+ },
+ "jodid25519": {
+ "version": "1.0.2",
+ "from": "jodid25519@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz",
+ "optional": true
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "from": "jsbn@>=0.1.0 <0.2.0",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "optional": true
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "from": "json-schema@0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "optional": true
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "from": "json-stringify-safe@>=5.0.1 <5.1.0",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "optional": true
+ },
+ "jsonpointer": {
+ "version": "4.0.1",
+ "from": "jsonpointer@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
+ "optional": true
+ },
+ "jsprim": {
+ "version": "1.3.1",
+ "from": "jsprim@>=1.2.2 <2.0.0",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz",
+ "optional": true
+ },
+ "mime-db": {
+ "version": "1.26.0",
+ "from": "mime-db@>=1.26.0 <1.27.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz"
+ },
+ "mime-types": {
+ "version": "2.1.14",
+ "from": "mime-types@>=2.1.7 <2.2.0",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz"
+ },
+ "minimatch": {
+ "version": "3.0.3",
+ "from": "minimatch@>=3.0.2 <4.0.0",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz"
+ },
+ "minimist": {
+ "version": "0.0.8",
+ "from": "minimist@0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
+ },
+ "mkdirp": {
+ "version": "0.5.1",
+ "from": "mkdirp@>=0.5.1 <0.6.0",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz"
+ },
+ "ms": {
+ "version": "0.7.1",
+ "from": "ms@0.7.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
+ "optional": true
+ },
+ "node-pre-gyp": {
+ "version": "0.6.33",
+ "from": "node-pre-gyp@>=0.6.29 <0.7.0",
+ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.33.tgz",
+ "optional": true
+ },
+ "nopt": {
+ "version": "3.0.6",
+ "from": "nopt@>=3.0.6 <3.1.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+ "optional": true
+ },
+ "npmlog": {
+ "version": "4.0.2",
+ "from": "npmlog@>=4.0.1 <5.0.0",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.0.2.tgz",
+ "optional": true
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "from": "number-is-nan@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
+ },
+ "oauth-sign": {
+ "version": "0.8.2",
+ "from": "oauth-sign@>=0.8.1 <0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "optional": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "from": "object-assign@>=4.1.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "optional": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "from": "once@>=1.3.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "from": "path-is-absolute@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "from": "pinkie@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "optional": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "from": "pinkie-promise@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "optional": true
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "from": "process-nextick-args@>=1.0.6 <1.1.0",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz"
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "from": "punycode@>=1.4.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "optional": true
+ },
+ "qs": {
+ "version": "6.3.1",
+ "from": "qs@>=6.3.0 <6.4.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.1.tgz",
+ "optional": true
+ },
+ "rc": {
+ "version": "1.1.7",
+ "from": "rc@>=1.1.6 <1.2.0",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz",
+ "optional": true,
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "from": "minimist@>=1.2.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "optional": true
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.2.2",
+ "from": "readable-stream@>=2.0.0 <3.0.0||>=1.1.13 <2.0.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz",
+ "optional": true
+ },
+ "request": {
+ "version": "2.79.0",
+ "from": "request@>=2.79.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
+ "optional": true
+ },
+ "rimraf": {
+ "version": "2.5.4",
+ "from": "rimraf@>=2.5.4 <2.6.0",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz"
+ },
+ "semver": {
+ "version": "5.3.0",
+ "from": "semver@>=5.3.0 <5.4.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "optional": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "from": "set-blocking@>=2.0.0 <2.1.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "optional": true
+ },
+ "signal-exit": {
+ "version": "3.0.2",
+ "from": "signal-exit@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "optional": true
+ },
+ "sntp": {
+ "version": "1.0.9",
+ "from": "sntp@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
+ "optional": true
+ },
+ "sshpk": {
+ "version": "1.10.2",
+ "from": "sshpk@>=1.7.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz",
+ "optional": true,
+ "dependencies": {
+ "assert-plus": {
+ "version": "1.0.0",
+ "from": "assert-plus@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "optional": true
+ }
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "from": "string_decoder@>=0.10.0 <0.11.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "from": "string-width@>=1.0.1 <2.0.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "from": "stringstream@>=0.0.4 <0.1.0",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "optional": true
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "from": "strip-ansi@>=3.0.1 <4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
+ },
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "from": "strip-json-comments@>=2.0.1 <2.1.0",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "optional": true
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "from": "supports-color@>=2.0.0 <3.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "optional": true
+ },
+ "tar": {
+ "version": "2.2.1",
+ "from": "tar@>=2.2.1 <2.3.0",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz"
+ },
+ "tar-pack": {
+ "version": "3.3.0",
+ "from": "tar-pack@>=3.3.0 <3.4.0",
+ "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.3.0.tgz",
+ "optional": true,
+ "dependencies": {
+ "once": {
+ "version": "1.3.3",
+ "from": "once@>=1.3.3 <1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
+ "optional": true
+ },
+ "readable-stream": {
+ "version": "2.1.5",
+ "from": "readable-stream@>=2.1.4 <2.2.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz",
+ "optional": true
+ }
+ }
+ },
+ "tough-cookie": {
+ "version": "2.3.2",
+ "from": "tough-cookie@>=2.3.0 <2.4.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
+ "optional": true
+ },
+ "tunnel-agent": {
+ "version": "0.4.3",
+ "from": "tunnel-agent@>=0.4.1 <0.5.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
+ "optional": true
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "from": "tweetnacl@>=0.14.0 <0.15.0",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "optional": true
+ },
+ "uid-number": {
+ "version": "0.0.6",
+ "from": "uid-number@>=0.0.6 <0.1.0",
+ "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz",
+ "optional": true
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "from": "util-deprecate@>=1.0.1 <1.1.0",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
+ },
+ "uuid": {
+ "version": "3.0.1",
+ "from": "uuid@>=3.0.0 <4.0.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz",
+ "optional": true
+ },
+ "verror": {
+ "version": "1.3.6",
+ "from": "verror@1.3.6",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
+ "optional": true
+ },
+ "wide-align": {
+ "version": "1.1.0",
+ "from": "wide-align@>=1.1.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz",
+ "optional": true
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "from": "wrappy@>=1.0.0 <2.0.0",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
+ },
+ "xtend": {
+ "version": "4.0.1",
+ "from": "xtend@>=4.0.0 <5.0.0",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "optional": true
+ }
+ }
+ },
"fstream": {
"version": "1.0.11",
"from": "fstream@>=1.0.2 <2.0.0",
@@ -10808,6 +11512,11 @@
"resolved": "https://registry.npmjs.org/simple-fmt/-/simple-fmt-0.1.0.tgz",
"dev": true
},
+ "simple-html-tokenizer": {
+ "version": "0.1.1",
+ "from": "simple-html-tokenizer@>=0.1.1 <0.2.0",
+ "resolved": "https://registry.npmjs.org/simple-html-tokenizer/-/simple-html-tokenizer-0.1.1.tgz"
+ },
"simple-is": {
"version": "0.2.0",
"from": "simple-is@>=0.2.0 <0.3.0",
@@ -11507,6 +12216,28 @@
"from": "supports-color@>=2.0.0 <3.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
},
+ "svg-inline-loader": {
+ "version": "0.7.1",
+ "from": "svg-inline-loader@latest",
+ "resolved": "https://registry.npmjs.org/svg-inline-loader/-/svg-inline-loader-0.7.1.tgz"
+ },
+ "svg-url-loader": {
+ "version": "2.0.2",
+ "from": "svg-url-loader@latest",
+ "resolved": "https://registry.npmjs.org/svg-url-loader/-/svg-url-loader-2.0.2.tgz",
+ "dependencies": {
+ "file-loader": {
+ "version": "0.10.0",
+ "from": "file-loader@0.10.0",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.10.0.tgz"
+ },
+ "loader-utils": {
+ "version": "0.2.16",
+ "from": "loader-utils@0.2.16",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.16.tgz"
+ }
+ }
+ },
"svgo": {
"version": "0.7.2",
"from": "svgo@>=0.7.0 <0.8.0",
@@ -11534,6 +12265,18 @@
}
}
},
+ "svgo-loader": {
+ "version": "1.2.1",
+ "from": "svgo-loader@latest",
+ "resolved": "https://registry.npmjs.org/svgo-loader/-/svgo-loader-1.2.1.tgz",
+ "dependencies": {
+ "loader-utils": {
+ "version": "1.1.0",
+ "from": "loader-utils@>=1.0.3 <2.0.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz"
+ }
+ }
+ },
"syntax-error": {
"version": "1.3.0",
"from": "syntax-error@>=1.1.1 <2.0.0",
@@ -12517,16 +13260,16 @@
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.3.1.tgz",
"dependencies": {
"async": {
- "version": "2.4.0",
- "from": "async@>=2.1.2 <3.0.0",
- "resolved": "https://registry.npmjs.org/async/-/async-2.4.0.tgz"
+ "version": "2.4.1",
+ "from": "async@^2.1.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.4.1.tgz"
}
}
},
"webpack": {
- "version": "2.5.1",
- "from": "webpack@>=2.2.1 <3.0.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.5.1.tgz",
+ "version": "2.6.1",
+ "from": "webpack@2.6.1",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.6.1.tgz",
"dependencies": {
"acorn": {
"version": "5.0.3",
@@ -12534,9 +13277,9 @@
"resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz"
},
"async": {
- "version": "2.4.0",
+ "version": "2.4.1",
"from": "async@>=2.1.2 <3.0.0",
- "resolved": "https://registry.npmjs.org/async/-/async-2.4.0.tgz"
+ "resolved": "https://registry.npmjs.org/async/-/async-2.4.1.tgz"
},
"source-list-map": {
"version": "1.1.2",
@@ -12549,9 +13292,9 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz"
},
"uglify-js": {
- "version": "2.8.26",
- "from": "uglify-js@>=2.8.5 <3.0.0",
- "resolved": "http://registry.npmjs.org/uglify-js/-/uglify-js-2.8.26.tgz",
+ "version": "2.8.28",
+ "from": "uglify-js@>=2.8.27 <3.0.0",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.28.tgz",
"dependencies": {
"yargs": {
"version": "3.10.0",
diff --git a/package.json b/package.json
index 5074830b0b..fc07a01935 100644
--- a/package.json
+++ b/package.json
@@ -15,8 +15,10 @@
"aws-sdk": "^2.0.25",
"axios": "^0.16.0",
"babel-core": "^6.0.0",
+ "babel-eslint": "^7.2.3",
"babel-loader": "^6.0.0",
"babel-plugin-syntax-async-functions": "^6.13.0",
+ "babel-plugin-syntax-dynamic-import": "^6.18.0",
"babel-plugin-transform-async-to-module-method": "^6.8.0",
"babel-plugin-transform-object-rest-spread": "^6.16.0",
"babel-plugin-transform-regenerator": "^6.16.1",
@@ -109,6 +111,9 @@
"shelljs": "^0.7.6",
"stripe": "^4.2.0",
"superagent": "^3.4.3",
+ "svg-inline-loader": "^0.7.1",
+ "svg-url-loader": "^2.0.2",
+ "svgo-loader": "^1.2.1",
"universal-analytics": "~0.3.2",
"url-loader": "^0.5.7",
"useragent": "^2.1.9",
@@ -208,6 +213,7 @@
"nightwatch": "^0.9.12",
"phantomjs-prebuilt": "^2.1.12",
"protractor": "^3.1.1",
+ "raw-loader": "^0.5.1",
"require-again": "^2.0.0",
"rewire": "^2.3.3",
"selenium-server": "^3.0.1",
diff --git a/test/client/unit/specs/filters/roundBigNumber.js b/test/client/unit/specs/filters/roundBigNumber.js
new file mode 100644
index 0000000000..948d2da2c6
--- /dev/null
+++ b/test/client/unit/specs/filters/roundBigNumber.js
@@ -0,0 +1,20 @@
+import roundBigNumberFilter from 'client/filters/roundBigNumber';
+
+describe('round big number filter', () => {
+ it('can round a decimal number', () => {
+ expect(roundBigNumberFilter(4.567)).to.equal(4.57);
+ expect(roundBigNumberFilter(4.562)).to.equal(4.56);
+ });
+
+ it('can round thousands', () => {
+ expect(roundBigNumberFilter(70065)).to.equal('70.1k');
+ });
+
+ it('can round milions', () => {
+ expect(roundBigNumberFilter(10000987)).to.equal('10.0m');
+ });
+
+ it('can round bilions', () => {
+ expect(roundBigNumberFilter(1000000000)).to.equal('1.0b');
+ });
+});
\ No newline at end of file
diff --git a/webpack/webpack.base.conf.js b/webpack/webpack.base.conf.js
index 74da258fa7..6d7a041d09 100644
--- a/webpack/webpack.base.conf.js
+++ b/webpack/webpack.base.conf.js
@@ -83,7 +83,7 @@ const baseConfig = {
},
},
{
- test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
+ test: /\.(png|jpe?g|gif)(\?.*)?$/,
loader: 'url-loader',
query: {
limit: 10000,
@@ -98,6 +98,22 @@ const baseConfig = {
name: utils.assetsPath('fonts/[name].[hash:7].[ext]'),
},
},
+ {
+ test: /\.svg$/,
+ use: [
+ { loader: 'svg-inline-loader' },
+ { loader: 'svgo-loader' },
+ ],
+ exclude: [path.resolve(projectRoot, 'website/client/assets/svg/for-css')],
+ },
+ {
+ test: /\.svg$/,
+ use: [
+ { loader: 'svg-url-loader' },
+ { loader: 'svgo-loader' },
+ ],
+ include: [path.resolve(projectRoot, 'website/client/assets/svg/for-css')],
+ },
],
},
};
diff --git a/website/client/.babelrc b/website/client/.babelrc
index af030180b9..9f639b0b76 100644
--- a/website/client/.babelrc
+++ b/website/client/.babelrc
@@ -15,6 +15,7 @@
"plugins": [
"transform-object-rest-spread",
"syntax-async-functions",
+ "syntax-dynamic-import",
"transform-regenerator",
],
}
\ No newline at end of file
diff --git a/website/client/.eslintrc b/website/client/.eslintrc
index 64155c32ec..2a1dea094a 100644
--- a/website/client/.eslintrc
+++ b/website/client/.eslintrc
@@ -8,5 +8,9 @@
],
"globals": {
"$": true,
+ },
+ "parser": "babel-eslint",
+ "rules": {
+ "strict": 0
}
}
\ No newline at end of file
diff --git a/website/client/assets/guilds/gold-guild-badge.svg b/website/client/assets/guilds/gold-guild-badge.svg
deleted file mode 100644
index 29ea8e7d54..0000000000
--- a/website/client/assets/guilds/gold-guild-badge.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-
diff --git a/website/client/assets/header/png/bits.png b/website/client/assets/header/png/bits.png
deleted file mode 100755
index a972907fc1..0000000000
Binary files a/website/client/assets/header/png/bits.png and /dev/null differ
diff --git a/website/client/assets/header/png/bits@2x.png b/website/client/assets/header/png/bits@2x.png
deleted file mode 100755
index 3e2c49b324..0000000000
Binary files a/website/client/assets/header/png/bits@2x.png and /dev/null differ
diff --git a/website/client/assets/header/png/bits@3x.png b/website/client/assets/header/png/bits@3x.png
deleted file mode 100755
index 7775e0fe73..0000000000
Binary files a/website/client/assets/header/png/bits@3x.png and /dev/null differ
diff --git a/website/client/assets/header/png/experience.png b/website/client/assets/header/png/experience.png
deleted file mode 100755
index 6538309fcd..0000000000
Binary files a/website/client/assets/header/png/experience.png and /dev/null differ
diff --git a/website/client/assets/header/png/experience@2x.png b/website/client/assets/header/png/experience@2x.png
deleted file mode 100755
index 8f40a4ba05..0000000000
Binary files a/website/client/assets/header/png/experience@2x.png and /dev/null differ
diff --git a/website/client/assets/header/png/experience@3x.png b/website/client/assets/header/png/experience@3x.png
deleted file mode 100755
index 7aded1bbc3..0000000000
Binary files a/website/client/assets/header/png/experience@3x.png and /dev/null differ
diff --git a/website/client/assets/header/png/gem.png b/website/client/assets/header/png/gem.png
deleted file mode 100755
index 1386d0b387..0000000000
Binary files a/website/client/assets/header/png/gem.png and /dev/null differ
diff --git a/website/client/assets/header/png/gem@2x.png b/website/client/assets/header/png/gem@2x.png
deleted file mode 100755
index 0024c43a04..0000000000
Binary files a/website/client/assets/header/png/gem@2x.png and /dev/null differ
diff --git a/website/client/assets/header/png/gem@3x.png b/website/client/assets/header/png/gem@3x.png
deleted file mode 100755
index 528e29f30e..0000000000
Binary files a/website/client/assets/header/png/gem@3x.png and /dev/null differ
diff --git a/website/client/assets/header/png/gold.png b/website/client/assets/header/png/gold.png
deleted file mode 100755
index 39a11c51dc..0000000000
Binary files a/website/client/assets/header/png/gold.png and /dev/null differ
diff --git a/website/client/assets/header/png/gold@2x.png b/website/client/assets/header/png/gold@2x.png
deleted file mode 100755
index 096c86e984..0000000000
Binary files a/website/client/assets/header/png/gold@2x.png and /dev/null differ
diff --git a/website/client/assets/header/png/gold@3x.png b/website/client/assets/header/png/gold@3x.png
deleted file mode 100755
index 3baec2db5a..0000000000
Binary files a/website/client/assets/header/png/gold@3x.png and /dev/null differ
diff --git a/website/client/assets/header/png/health.png b/website/client/assets/header/png/health.png
deleted file mode 100755
index ef82adaf6e..0000000000
Binary files a/website/client/assets/header/png/health.png and /dev/null differ
diff --git a/website/client/assets/header/png/health@2x.png b/website/client/assets/header/png/health@2x.png
deleted file mode 100755
index 2a7d87283a..0000000000
Binary files a/website/client/assets/header/png/health@2x.png and /dev/null differ
diff --git a/website/client/assets/header/png/health@3x.png b/website/client/assets/header/png/health@3x.png
deleted file mode 100755
index 57d60006a2..0000000000
Binary files a/website/client/assets/header/png/health@3x.png and /dev/null differ
diff --git a/website/client/assets/header/png/logo.png b/website/client/assets/header/png/logo.png
deleted file mode 100755
index 09f6b7ccee..0000000000
Binary files a/website/client/assets/header/png/logo.png and /dev/null differ
diff --git a/website/client/assets/header/png/logo@2x.png b/website/client/assets/header/png/logo@2x.png
deleted file mode 100755
index 65210359b7..0000000000
Binary files a/website/client/assets/header/png/logo@2x.png and /dev/null differ
diff --git a/website/client/assets/header/png/logo@3x.png b/website/client/assets/header/png/logo@3x.png
deleted file mode 100755
index 3e94efc581..0000000000
Binary files a/website/client/assets/header/png/logo@3x.png and /dev/null differ
diff --git a/website/client/assets/header/png/magic.png b/website/client/assets/header/png/magic.png
deleted file mode 100755
index fb8758a823..0000000000
Binary files a/website/client/assets/header/png/magic.png and /dev/null differ
diff --git a/website/client/assets/header/png/magic@2x.png b/website/client/assets/header/png/magic@2x.png
deleted file mode 100755
index 3211f79174..0000000000
Binary files a/website/client/assets/header/png/magic@2x.png and /dev/null differ
diff --git a/website/client/assets/header/png/magic@3x.png b/website/client/assets/header/png/magic@3x.png
deleted file mode 100755
index a66a841284..0000000000
Binary files a/website/client/assets/header/png/magic@3x.png and /dev/null differ
diff --git a/website/client/assets/header/png/notifications.png b/website/client/assets/header/png/notifications.png
deleted file mode 100755
index c382560731..0000000000
Binary files a/website/client/assets/header/png/notifications.png and /dev/null differ
diff --git a/website/client/assets/header/png/notifications@2x.png b/website/client/assets/header/png/notifications@2x.png
deleted file mode 100755
index 86b8a47396..0000000000
Binary files a/website/client/assets/header/png/notifications@2x.png and /dev/null differ
diff --git a/website/client/assets/header/png/notifications@3x.png b/website/client/assets/header/png/notifications@3x.png
deleted file mode 100755
index 281a557676..0000000000
Binary files a/website/client/assets/header/png/notifications@3x.png and /dev/null differ
diff --git a/website/client/assets/header/png/user.png b/website/client/assets/header/png/user.png
deleted file mode 100755
index 196a670e06..0000000000
Binary files a/website/client/assets/header/png/user.png and /dev/null differ
diff --git a/website/client/assets/header/png/user@2x.png b/website/client/assets/header/png/user@2x.png
deleted file mode 100755
index 123780ac68..0000000000
Binary files a/website/client/assets/header/png/user@2x.png and /dev/null differ
diff --git a/website/client/assets/header/png/user@3x.png b/website/client/assets/header/png/user@3x.png
deleted file mode 100755
index e4c4a48962..0000000000
Binary files a/website/client/assets/header/png/user@3x.png and /dev/null differ
diff --git a/website/client/assets/header/svg/bits.svg b/website/client/assets/header/svg/bits.svg
deleted file mode 100755
index 2bc40769e5..0000000000
--- a/website/client/assets/header/svg/bits.svg
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
\ No newline at end of file
diff --git a/website/client/assets/header/svg/experience.svg b/website/client/assets/header/svg/experience.svg
deleted file mode 100644
index 20cadb92d4..0000000000
--- a/website/client/assets/header/svg/experience.svg
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
\ No newline at end of file
diff --git a/website/client/assets/header/svg/gem.svg b/website/client/assets/header/svg/gem.svg
deleted file mode 100755
index 0a5a32cc86..0000000000
--- a/website/client/assets/header/svg/gem.svg
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
\ No newline at end of file
diff --git a/website/client/assets/header/svg/gold.svg b/website/client/assets/header/svg/gold.svg
deleted file mode 100755
index affd093239..0000000000
--- a/website/client/assets/header/svg/gold.svg
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
\ No newline at end of file
diff --git a/website/client/assets/header/svg/health.svg b/website/client/assets/header/svg/health.svg
deleted file mode 100644
index 5fdbbae8ed..0000000000
--- a/website/client/assets/header/svg/health.svg
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
\ No newline at end of file
diff --git a/website/client/assets/header/svg/logo.svg b/website/client/assets/header/svg/logo.svg
deleted file mode 100755
index c77ea1ac34..0000000000
--- a/website/client/assets/header/svg/logo.svg
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
\ No newline at end of file
diff --git a/website/client/assets/header/svg/magic.svg b/website/client/assets/header/svg/magic.svg
deleted file mode 100644
index 4ce8df1c0d..0000000000
--- a/website/client/assets/header/svg/magic.svg
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
\ No newline at end of file
diff --git a/website/client/assets/header/svg/notifications.svg b/website/client/assets/header/svg/notifications.svg
deleted file mode 100755
index 891b3db645..0000000000
--- a/website/client/assets/header/svg/notifications.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
\ No newline at end of file
diff --git a/website/client/assets/header/svg/user.svg b/website/client/assets/header/svg/user.svg
deleted file mode 100755
index 56c84308bb..0000000000
--- a/website/client/assets/header/svg/user.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
\ No newline at end of file
diff --git a/website/client/assets/scss/colors.scss b/website/client/assets/scss/colors.scss
index add4bd4500..8684ceecb9 100644
--- a/website/client/assets/scss/colors.scss
+++ b/website/client/assets/scss/colors.scss
@@ -5,6 +5,9 @@
$white: #FFFFFF;
$black: #1A181D;
+$header-color: #D5C8FF;
+$header-dark-background: #271B3D;
+
$gray-10: #34313A;
$gray-50: #4E4A57;
$gray-100: #686274;
diff --git a/website/client/assets/scss/form.scss b/website/client/assets/scss/form.scss
index 38e3654310..7f138c985e 100644
--- a/website/client/assets/scss/form.scss
+++ b/website/client/assets/scss/form.scss
@@ -27,11 +27,11 @@ input, textarea, input.form-control, textarea.form-control {
background: $gray-500;
}
- &.input-search { // TODO Abstract to work with all icons
+ &.input-search {
background-repeat: no-repeat;
background-position: center left 16px;
background-size: 16px 16px;
- background-image: url(~client/assets/svg/search.svg);
+ background-image: url(~client/assets/svg/for-css/search.svg);
padding-left: 40px;
}
@@ -42,13 +42,13 @@ input, textarea, input.form-control, textarea.form-control {
&.input-valid {
padding-right: 37px;
- background-image: url(~client/assets/svg/check.svg);
+ background-image: url(~client/assets/svg/for-css/check.svg);
background-size: 13px 10px;
}
&.input-invalid {
padding-right: 40px;
- background-image: url(~client/assets/svg/alert.svg);
+ background-image: url(~client/assets/svg/for-css/alert.svg);
background-size: 16px 16px;
}
}
@@ -84,7 +84,7 @@ $bg-disabled-control: #34303a;
.custom-control-input {
&:checked~.custom-control-indicator {
- background-image: url(~client/assets/svg/checkbox-white.svg);
+ background-image: url(~client/assets/svg/for-css/checkbox-white.svg);
background-color: $purple-400;
border-color: $purple-400;
}
diff --git a/website/client/assets/scss/icon.scss b/website/client/assets/scss/icon.scss
new file mode 100644
index 0000000000..6039d4fae9
--- /dev/null
+++ b/website/client/assets/scss/icon.scss
@@ -0,0 +1,9 @@
+.svg-icon {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ stroke-width: 0;
+ stroke: currentColor;
+ fill: currentColor;
+ transition: none;
+}
\ No newline at end of file
diff --git a/website/client/assets/scss/index.scss b/website/client/assets/scss/index.scss
index cf1df2022c..8f4e979447 100644
--- a/website/client/assets/scss/index.scss
+++ b/website/client/assets/scss/index.scss
@@ -2,7 +2,7 @@
@import './utils';
@import './colors';
-* {
+*:not(.svg-icon *) {
transition-duration: .15s;
transition-property: border-color, box-shadow, color;
transition-timing-function: ease-in;
@@ -19,3 +19,5 @@
@import './dropdown';
@import './popover';
@import './item';
+@import './stats';
+@import './icon';
\ No newline at end of file
diff --git a/website/client/assets/scss/stats.scss b/website/client/assets/scss/stats.scss
new file mode 100644
index 0000000000..828aa592aa
--- /dev/null
+++ b/website/client/assets/scss/stats.scss
@@ -0,0 +1,11 @@
+.bg-health {
+ background: $red-50;
+}
+
+.bg-experience {
+ background: $yellow-100;
+}
+
+.bg-mana {
+ background: $blue-100;
+}
\ No newline at end of file
diff --git a/website/client/assets/scss/utils.scss b/website/client/assets/scss/utils.scss
index 6acb42d26b..ce6a3a51da 100644
--- a/website/client/assets/scss/utils.scss
+++ b/website/client/assets/scss/utils.scss
@@ -13,4 +13,8 @@
}
@return $string;
+}
+
+@function base64svg ($image) {
+ @return 'data:image/svg+xml;base64,' + $image;
}
\ No newline at end of file
diff --git a/website/client/assets/svg/README.md b/website/client/assets/svg/README.md
new file mode 100644
index 0000000000..e518a74ed2
--- /dev/null
+++ b/website/client/assets/svg/README.md
@@ -0,0 +1 @@
+SVGs used inside CSS / SCSS with `url(...)` must go in the `for-css` folder.
\ No newline at end of file
diff --git a/website/client/assets/guilds/bronze-guild-badge.svg b/website/client/assets/svg/bronze-guild-badge.svg
similarity index 100%
rename from website/client/assets/guilds/bronze-guild-badge.svg
rename to website/client/assets/svg/bronze-guild-badge.svg
diff --git a/website/client/assets/svg/buff.svg b/website/client/assets/svg/buff.svg
new file mode 100755
index 0000000000..d0e1140fdf
--- /dev/null
+++ b/website/client/assets/svg/buff.svg
@@ -0,0 +1,3 @@
+
diff --git a/website/client/assets/chat/copy.svg b/website/client/assets/svg/copy.svg
similarity index 100%
rename from website/client/assets/chat/copy.svg
rename to website/client/assets/svg/copy.svg
diff --git a/website/client/assets/chat/delete.svg b/website/client/assets/svg/delete.svg
similarity index 100%
rename from website/client/assets/chat/delete.svg
rename to website/client/assets/svg/delete.svg
diff --git a/website/client/assets/drawer/expand.svg b/website/client/assets/svg/expand.svg
similarity index 100%
rename from website/client/assets/drawer/expand.svg
rename to website/client/assets/svg/expand.svg
diff --git a/website/client/assets/svg/experience.svg b/website/client/assets/svg/experience.svg
new file mode 100755
index 0000000000..8728bfb3ca
--- /dev/null
+++ b/website/client/assets/svg/experience.svg
@@ -0,0 +1,10 @@
+
diff --git a/website/client/assets/svg/alert.svg b/website/client/assets/svg/for-css/alert.svg
similarity index 100%
rename from website/client/assets/svg/alert.svg
rename to website/client/assets/svg/for-css/alert.svg
diff --git a/website/client/assets/svg/for-css/bits.svg b/website/client/assets/svg/for-css/bits.svg
new file mode 100755
index 0000000000..5a568f9e15
--- /dev/null
+++ b/website/client/assets/svg/for-css/bits.svg
@@ -0,0 +1,79 @@
+
diff --git a/website/client/assets/svg/check.svg b/website/client/assets/svg/for-css/check.svg
similarity index 100%
rename from website/client/assets/svg/check.svg
rename to website/client/assets/svg/for-css/check.svg
diff --git a/website/client/assets/svg/checkbox-white.svg b/website/client/assets/svg/for-css/checkbox-white.svg
similarity index 100%
rename from website/client/assets/svg/checkbox-white.svg
rename to website/client/assets/svg/for-css/checkbox-white.svg
diff --git a/website/client/assets/svg/search.svg b/website/client/assets/svg/for-css/search.svg
similarity index 100%
rename from website/client/assets/svg/search.svg
rename to website/client/assets/svg/for-css/search.svg
diff --git a/website/client/assets/guilds/green-gem.svg b/website/client/assets/svg/gem.svg
old mode 100644
new mode 100755
similarity index 100%
rename from website/client/assets/guilds/green-gem.svg
rename to website/client/assets/svg/gem.svg
diff --git a/website/client/assets/svg/gold-guild-badge.svg b/website/client/assets/svg/gold-guild-badge.svg
new file mode 100755
index 0000000000..26665b7cd1
--- /dev/null
+++ b/website/client/assets/svg/gold-guild-badge.svg
@@ -0,0 +1,10 @@
+
+
diff --git a/website/client/assets/svg/gold.svg b/website/client/assets/svg/gold.svg
new file mode 100755
index 0000000000..e5e6d7b44c
--- /dev/null
+++ b/website/client/assets/svg/gold.svg
@@ -0,0 +1,9 @@
+
diff --git a/website/client/assets/guilds/grey-badge.svg b/website/client/assets/svg/grey-badge.svg
similarity index 100%
rename from website/client/assets/guilds/grey-badge.svg
rename to website/client/assets/svg/grey-badge.svg
diff --git a/website/client/assets/svg/healer.svg b/website/client/assets/svg/healer.svg
new file mode 100644
index 0000000000..a966e46d61
--- /dev/null
+++ b/website/client/assets/svg/healer.svg
@@ -0,0 +1,16 @@
+
diff --git a/website/client/assets/svg/health.svg b/website/client/assets/svg/health.svg
new file mode 100755
index 0000000000..7048738daa
--- /dev/null
+++ b/website/client/assets/svg/health.svg
@@ -0,0 +1,15 @@
+
diff --git a/website/client/assets/guilds/information.svg b/website/client/assets/svg/information.svg
similarity index 100%
rename from website/client/assets/guilds/information.svg
rename to website/client/assets/svg/information.svg
diff --git a/website/client/assets/chat/like.svg b/website/client/assets/svg/like.svg
similarity index 100%
rename from website/client/assets/chat/like.svg
rename to website/client/assets/svg/like.svg
diff --git a/website/client/assets/chat/liked.svg b/website/client/assets/svg/liked.svg
similarity index 100%
rename from website/client/assets/chat/liked.svg
rename to website/client/assets/svg/liked.svg
diff --git a/website/client/assets/svg/logo.svg b/website/client/assets/svg/logo.svg
new file mode 100755
index 0000000000..f1881f640a
--- /dev/null
+++ b/website/client/assets/svg/logo.svg
@@ -0,0 +1,14 @@
+
diff --git a/website/client/assets/svg/mana.svg b/website/client/assets/svg/mana.svg
new file mode 100755
index 0000000000..15f9d429ca
--- /dev/null
+++ b/website/client/assets/svg/mana.svg
@@ -0,0 +1,10 @@
+
diff --git a/website/client/assets/drawer/minimize.svg b/website/client/assets/svg/minimize.svg
similarity index 100%
rename from website/client/assets/drawer/minimize.svg
rename to website/client/assets/svg/minimize.svg
diff --git a/website/client/assets/svg/notifications.svg b/website/client/assets/svg/notifications.svg
new file mode 100755
index 0000000000..8c628b1baf
--- /dev/null
+++ b/website/client/assets/svg/notifications.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/website/client/assets/chat/report.svg b/website/client/assets/svg/report.svg
similarity index 100%
rename from website/client/assets/chat/report.svg
rename to website/client/assets/svg/report.svg
diff --git a/website/client/assets/svg/rogue.svg b/website/client/assets/svg/rogue.svg
new file mode 100644
index 0000000000..c47d3f2f65
--- /dev/null
+++ b/website/client/assets/svg/rogue.svg
@@ -0,0 +1,13 @@
+
diff --git a/website/client/assets/guilds/silver-guild-badge.svg b/website/client/assets/svg/silver-guild-badge.svg
similarity index 59%
rename from website/client/assets/guilds/silver-guild-badge.svg
rename to website/client/assets/svg/silver-guild-badge.svg
index 8a4b120aea..57d88255c3 100644
--- a/website/client/assets/guilds/silver-guild-badge.svg
+++ b/website/client/assets/svg/silver-guild-badge.svg
@@ -6,8 +6,8 @@
-
-
+
+
diff --git a/website/client/assets/svg/user.svg b/website/client/assets/svg/user.svg
new file mode 100755
index 0000000000..c87706cdf6
--- /dev/null
+++ b/website/client/assets/svg/user.svg
@@ -0,0 +1,4 @@
+
diff --git a/website/client/assets/svg/warrior.svg b/website/client/assets/svg/warrior.svg
new file mode 100644
index 0000000000..c80f151f80
--- /dev/null
+++ b/website/client/assets/svg/warrior.svg
@@ -0,0 +1,31 @@
+
diff --git a/website/client/assets/svg/wizard.svg b/website/client/assets/svg/wizard.svg
new file mode 100644
index 0000000000..a98d47c49d
--- /dev/null
+++ b/website/client/assets/svg/wizard.svg
@@ -0,0 +1,13 @@
+
diff --git a/website/client/components/appHeader.vue b/website/client/components/appHeader.vue
index 7c45b5617d..c6f9d52776 100644
--- a/website/client/components/appHeader.vue
+++ b/website/client/components/appHeader.vue
@@ -1,31 +1,55 @@
#app-header.row
- user-list-detail
+ user-list-detail(:user="user")
+ .no-party.d-flex.justify-content-center.text-center(v-if="!user.party._id")
+ .align-self-center(v-once)
+ h3 {{ $t('battleWithFriends') }}
+ span.small-text(v-html="$t('inviteFriendsParty')")
+ br
+ button.btn.btn-primary {{ $t('startAParty') }}
diff --git a/website/client/components/appMenu.vue b/website/client/components/appMenu.vue
index 6625808194..adb44cff02 100644
--- a/website/client/components/appMenu.vue
+++ b/website/client/components/appMenu.vue
@@ -1,8 +1,7 @@
nav.navbar.navbar-inverse.fixed-top.navbar-toggleable-sm
.navbar-header
- // TODO srcset / svg images
- img(src="~assets/header/png/logo@3x.png")
+ .logo.svg-icon(v-html="icons.logo")
.collapse.navbar-collapse
ul.navbar-nav.mr-auto
router-link.nav-item(tag="li", :to="{name: 'tasks'}", exact)
@@ -13,20 +12,18 @@ nav.navbar.navbar-inverse.fixed-top.navbar-toggleable-sm
router-link.dropdown-item(:to="{name: 'items'}", exact) {{ $t('items') }}
router-link.dropdown-item(:to="{name: 'equipment'}") {{ $t('equipment') }}
router-link.dropdown-item(:to="{name: 'stable'}") {{ $t('stable') }}
- router-link.nav-item(tag="li", :to="{name: 'market'}", exact)
- a.nav-link(v-once) {{ $t('market') }}
+ router-link.nav-item(tag="li", :to="{name: 'shops'}", exact)
+ a.nav-link(v-once) {{ $t('shops') }}
+ router-link.nav-item(tag="li", :to="{name: 'party'}", exact)
+ a.nav-link(v-once) {{ $t('party') }}
router-link.nav-item.dropdown(tag="li", :to="{name: 'tavern'}", :class="{'active': $route.path.startsWith('/guilds')}")
a.nav-link(v-once) {{ $t('guilds') }}
.dropdown-menu
router-link.dropdown-item(:to="{name: 'tavern'}") {{ $t('tavern') }}
router-link.dropdown-item(:to="{name: 'myGuilds'}") {{ $t('myGuilds') }}
router-link.dropdown-item(:to="{name: 'guildsDiscovery'}") {{ $t('guildsDiscovery') }}
- router-link.nav-item.dropdown(tag="li", :to="{name: 'tavern'}", :class="{'active': $route.path.startsWith('/social')}")
- a.nav-link(v-once) {{ $t('social') }}
- .dropdown-menu
- router-link.dropdown-item(:to="{name: 'inbox'}") {{ $t('inbox') }}
- router-link.dropdown-item(:to="{name: 'challenges'}") {{ $t('challenges') }}
- router-link.dropdown-item(:to="{name: 'party'}") {{ $t('party') }}
+ router-link.nav-item(tag="li", :to="{name: 'challenges'}", exact)
+ a.nav-link(v-once) {{ $t('challenges') }}
router-link.nav-item.dropdown(tag="li", to="/help", :class="{'active': $route.path.startsWith('/help')}")
a.nav-link(v-once) {{ $t('help') }}
.dropdown-menu
@@ -34,40 +31,43 @@ nav.navbar.navbar-inverse.fixed-top.navbar-toggleable-sm
router-link.dropdown-item(to="/help/report-bug") {{ $t('reportBug') }}
router-link.dropdown-item(to="/help/request-feature") {{ $t('requestAF') }}
.item-with-icon
- img(src="~assets/header/png/gem@3x.png")
- span {{userGems}}
+ .svg-icon(v-html="icons.gem")
+ span {{userGems | roundBigNumber}}
.item-with-icon
- img(src="~assets/header/png/gold@3x.png")
- span {{user.stats.gp | floor}}
- .item-with-icon
- img(src="~assets/header/png/notifications@3x.png")
- router-link.dropdown.item-with-icon(:to="{name: 'avatar'}")
- // TODO icons should be white when active
- img(src="~assets/header/png/user@3x.png")
+ .svg-icon(v-html="icons.gold")
+ span {{user.stats.gp | roundBigNumber}}
+ .item-with-icon.item-notifications
+ .svg-icon(v-html="icons.notifications")
+ router-link.dropdown.item-with-icon.item-user(:to="{name: 'avatar'}")
+ .svg-icon(v-html="icons.user")
.dropdown-menu.dropdown-menu-right.user-dropdown
- router-link.dropdown-item(:to="{name: 'avatar'}") {{ $t('editAvatar') }}
- // .dropdown-divider
+ router-link.dropdown-item.edit-avatar(:to="{name: 'avatar'}")
+ h3 {{ user.profile.name }}
+ span.small-text {{ $t('editAvatar') }}
+ //.dropdown-divider
router-link.dropdown-item(:to="{name: 'stats'}") {{ $t('stats') }}
router-link.dropdown-item(:to="{name: 'achievements'}") {{ $t('achievements') }}
- // .dropdown-divider
router-link.dropdown-item(:to="{name: 'settings'}") {{ $t('settings') }}
- // .dropdown-divider
router-link.dropdown-item(to="/logout") {{ $t('logout') }}
\ No newline at end of file
diff --git a/website/client/components/userListDetail.vue b/website/client/components/userListDetail.vue
index c7436c52df..97fa2a98c7 100644
--- a/website/client/components/userListDetail.vue
+++ b/website/client/components/userListDetail.vue
@@ -1,53 +1,67 @@
-div
- avatar#header-avatar(:user="user", style='float:left;')
- div(style='float:left;')
- span.character-name {{user.profile.name}}
- span.character-level Lvl {{user.stats.lvl}}
+.d-flex
+ avatar#header-avatar(:user="user")
+ div
+ h3.character-name
+ | {{user.profile.name}}
+ .is-buffed(v-if="isBuffed")
+ .svg-icon(v-html="icons.buff")
+ span.small-text.character-level {{ characterLevel }}
.progress-container.d-flex
- img.icon(src="~assets/header/png/health@3x.png")
+ .svg-icon(v-html="icons.health")
.progress
- .progress-bar.bg-danger(:style="{width: `${percent(user.stats.hp, MAX_HEALTH)}%`}")
- span {{user.stats.hp | round}} / {{MAX_HEALTH}}
+ .progress-bar.bg-health(:style="{width: `${percent(user.stats.hp, MAX_HEALTH)}%`}")
+ span.small-text {{user.stats.hp | round}} / {{MAX_HEALTH}}
.progress-container.d-flex
- img.icon(src="~assets/header/png/experience@3x.png")
+ .svg-icon(v-html="icons.experience")
.progress
- .progress-bar.bg-warning(:style="{width: `${percent(user.stats.exp, toNextLevel)}%`}")
- span {{user.stats.exp | round}} / {{toNextLevel}}
- .progress-container.d-flex(ng-if="user.flags.classSelected && !user.preferences.disableClasses")
- img.icon(src="~assets/header/png/magic@3x.png")
+ .progress-bar.bg-experience(:style="{width: `${percent(user.stats.exp, toNextLevel)}%`}")
+ span.small-text {{user.stats.exp | round}} / {{toNextLevel}}
+ .progress-container.d-flex(v-if="user.flags.classSelected && !user.preferences.disableClasses")
+ .svg-icon(v-html="icons.mana")
.progress
- .progress-bar(:style="{width: `${percent(user.stats.mp, maxMP)}%`}")
- span {{user.stats.mp | round}} / {{maxMP}}
+ .progress-bar.bg-mana(:style="{width: `${percent(user.stats.mp, maxMP)}%`}")
+ span.small-text {{user.stats.mp | round}} / {{maxMP}}
diff --git a/website/client/filters/registerGlobals.js b/website/client/filters/registerGlobals.js
index 4580bbec85..25604dac1a 100644
--- a/website/client/filters/registerGlobals.js
+++ b/website/client/filters/registerGlobals.js
@@ -1,6 +1,8 @@
import Vue from 'vue';
import round from './round';
import floor from './floor';
+import roundBigNumber from './roundBigNumber';
Vue.filter('round', round);
Vue.filter('floor', floor);
+Vue.filter('roundBigNumber', roundBigNumber);
\ No newline at end of file
diff --git a/website/client/filters/roundBigNumber.js b/website/client/filters/roundBigNumber.js
new file mode 100644
index 0000000000..4f7e94961d
--- /dev/null
+++ b/website/client/filters/roundBigNumber.js
@@ -0,0 +1,25 @@
+import round from './round';
+
+function _convertToThousand (num) {
+ return `${(num / Math.pow(10, 3)).toFixed(1)}k`;
+}
+
+function _convertToMillion (num) {
+ return `${(num / Math.pow(10, 6)).toFixed(1)}m`;
+}
+
+function _convertToBillion (num) {
+ return `${(num / Math.pow(10, 9)).toFixed(1)}b`;
+}
+
+export default function roundBigNumber (num) {
+ if (num > 999999999) {
+ return _convertToBillion(num);
+ } else if (num > 999999) {
+ return _convertToMillion(num);
+ } else if (num > 999) {
+ return _convertToThousand(num);
+ } else {
+ return round(num);
+ }
+}
\ No newline at end of file
diff --git a/website/client/router.js b/website/client/router.js
index 6329cf5775..3a9618bb49 100644
--- a/website/client/router.js
+++ b/website/client/router.js
@@ -1,7 +1,7 @@
import Vue from 'vue';
import VueRouter from 'vue-router';
-import EmptyView from './components/emptyView';
+// import EmptyView from './components/emptyView';
// TODO Dummy elements used as placeholder until real components are implemented
import ParentPage from './components/parentPage';
import Page from './components/page';
@@ -9,23 +9,28 @@ import Page from './components/page';
// Tasks
import UserTasks from './components/userTasks';
+// Except for tasks that are always loaded all the other main level
+// components are loaded in separate webpack chunks.
+// See https://webpack.js.org/guides/code-splitting-async/
+// for docs
+
// Inventory
-import InventoryContainer from './components/inventory/index';
-import ItemsPage from './components/inventory/items/index';
-import EquipmentPage from './components/inventory/equipment/index';
-import StablePage from './components/inventory/stable';
+const InventoryContainer = () => import(/* webpackChunkName: "inventory" */'./components/inventory/index');
+const ItemsPage = () => import(/* webpackChunkName: "inventory" */'./components/inventory/items/index');
+const EquipmentPage = () => import(/* webpackChunkName: "inventory" */'./components/inventory/equipment/index');
+const StablePage = () => import(/* webpackChunkName: "inventory" */'./components/inventory/stable');
// Social
-import SocialContainer from './components/social/index';
-import InboxPage from './components/social/inbox/index';
-import InboxConversationPage from './components/social/inbox/conversationPage';
+// TODO add inbox back
+// import InboxPage from './components/social/inbox/index';
+// import InboxConversationPage from './components/social/inbox/conversationPage';
// Guilds
-import GuildIndex from './components/guilds/index';
-import TavernPage from './components/guilds/tavern';
-import MyGuilds from './components/guilds/myGuilds';
-import GuildsDiscoveryPage from './components/guilds/discovery';
-import GuildPage from './components/guilds/guild';
+const GuildIndex = () => import(/* webpackChunkName: "guilds" */ './components/guilds/index');
+const TavernPage = () => import(/* webpackChunkName: "guilds" */ './components/guilds/tavern');
+const MyGuilds = () => import(/* webpackChunkName: "guilds" */ './components/guilds/myGuilds');
+const GuildsDiscoveryPage = () => import(/* webpackChunkName: "guilds" */ './components/guilds/discovery');
+const GuildPage = () => import(/* webpackChunkName: "guilds" */ './components/guilds/guild');
Vue.use(VueRouter);
@@ -49,7 +54,7 @@ export default new VueRouter({
{ name: 'stable', path: 'stable', component: StablePage },
],
},
- { name: 'market', path: '/market', component: Page },
+ { name: 'shops', path: '/shops', component: Page },
{
path: '/guilds',
component: GuildIndex,
@@ -73,30 +78,25 @@ export default new VueRouter({
},
],
},
- {
- path: '/social',
- component: SocialContainer,
- children: [
- {
- path: 'inbox',
- component: EmptyView,
- children: [
- {
- name: 'inbox',
- path: '',
- component: InboxPage,
- },
- {
- name: 'conversation',
- path: 'conversation/:id',
- component: InboxConversationPage,
- },
- ],
- },
- { name: 'challenges', path: 'challenges', component: Page },
- { name: 'party', path: 'party', component: Page },
- ],
- },
+ { name: 'challenges', path: 'challenges', component: Page },
+ { name: 'party', path: 'party', component: Page },
+ /* TODO add inbox back
+ {
+ path: 'inbox',
+ component: EmptyView,
+ children: [
+ {
+ name: 'inbox',
+ path: '',
+ component: InboxPage,
+ },
+ {
+ name: 'conversation',
+ path: 'conversation/:id',
+ component: InboxConversationPage,
+ },
+ ],
+ }, */
{
path: '/user',
component: ParentPage,
diff --git a/website/client/store/getters/user.js b/website/client/store/getters/user.js
index 2950a5a36c..dcb2c55754 100644
--- a/website/client/store/getters/user.js
+++ b/website/client/store/getters/user.js
@@ -1,3 +1,8 @@
export function gems (store) {
return store.state.user.data.balance * 4;
+}
+
+export function isBuffed (store) {
+ const buffs = store.state.user.data.stats.buffs;
+ return buffs.str || buffs.per || buffs.con || buffs.int;
}
\ No newline at end of file
diff --git a/website/common/locales/en/newClient.json b/website/common/locales/en/newClient.json
index f996f262ed..fdfecc8422 100644
--- a/website/common/locales/en/newClient.json
+++ b/website/common/locales/en/newClient.json
@@ -1,4 +1,6 @@
{
+ "shops": "Shops",
+ "faq": "FAQ",
"costumePopoverText": "Select \"Use Costume\" to equip items to your avatar without affecting the stats from your Battle Gear! This means that you can dress up your avatar in whatever outfit you like while still having your best Battle Gear equipped.",
"autoEquipPopoverText": "Select this option to automatically equip gear as soon as you purchase it.",
"costumeDisabled": "You have disabled your costume.",
@@ -22,6 +24,7 @@
"groupBy2": "Group By",
"quantity": "Quantity",
"AZ": "A-Z",
+ "editAvatar": "Edit Avatar",
"sort": "Sort",
"memberCount": "Member Count",
"recentActivity": "Recent Activity",
@@ -60,5 +63,6 @@
"noGuildsTitle": "You aren’t a member of any Guilds.",
"noGuildsParagraph1": "Guilds are social groups created by other players that can offer you support, accountability, and encouraging chat.",
"noGuildsParagraph2": "Click the Discover tab to see recommended Guilds based on your interests, browse Habitica’s public Guilds, or create your own Guild.",
- "privateDescription": "A private Guild will not be displayed in Habitica’s Guild directory. New members can be added by invitation only."
+ "privateDescription": "A private Guild will not be displayed in Habitica’s Guild directory. New members can be added by invitation only.",
+ "inviteFriendsParty": "Inviting friends to your party will grant you an exclusive
Quest Scroll to battle the Basi-List together!"
}