diff --git a/package-lock.json b/package-lock.json index 315a7bb29..e7b22971d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,17 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "3d-view": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/3d-view/-/3d-view-2.0.0.tgz", + "integrity": "sha1-gxrpQtdQjFCAHj4G+v4ejFdOF74=", + "dev": true, + "requires": { + "matrix-camera-controller": "^2.1.1", + "orbit-camera-controller": "^4.0.0", + "turntable-camera-controller": "^3.0.0" + } + }, "@babel/cli": { "version": "7.12.1", "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.12.1.tgz", @@ -1395,6 +1406,72 @@ } } }, + "@mapbox/geojson-area": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-area/-/geojson-area-0.2.2.tgz", + "integrity": "sha1-GNeBSqNr8j+7zDefjiaiKSfevxA=", + "dev": true, + "requires": { + "wgs84": "0.0.0" + } + }, + "@mapbox/gl-matrix": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/gl-matrix/-/gl-matrix-0.0.1.tgz", + "integrity": "sha1-5RJqq01kw2uBx6l9CuDd3eV3PSs=", + "dev": true + }, + "@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha1-zlblOfg1UrWNENZy6k1vya3HsjQ=", + "dev": true + }, + "@mapbox/mapbox-gl-supported": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", + "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==", + "dev": true + }, + "@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha1-ioP5M1x4YO/6Lu7KJUMyqgru2PI=", + "dev": true + }, + "@mapbox/shelf-pack": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@mapbox/shelf-pack/-/shelf-pack-3.2.0.tgz", + "integrity": "sha512-dyQxe6ukILV6qaEvxoKCIwhblgRjYp1ZGlClo4xvfbmxzFO5LYu7Tnrg2AZrRgN7VsSragsGcNjzUe9kCdKHYQ==", + "dev": true + }, + "@mapbox/tiny-sdf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.1.1.tgz", + "integrity": "sha512-Ihn1nZcGIswJ5XGbgFAvVumOgWpvIjBX9jiRlIl46uQG9vJOF51ViBYHF95rEZupuyQbEmhLaDPLQlU7fUTsBg==", + "dev": true + }, + "@mapbox/unitbezier": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", + "integrity": "sha1-FWUb1VOme4WB+zmIEMmK2Go0Uk4=", + "dev": true + }, + "@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "dev": true, + "requires": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", + "dev": true + }, "@nicolo-ribaudo/chokidar-2": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8.tgz", @@ -1841,6 +1918,35 @@ "fastq": "^1.6.0" } }, + "@plotly/d3-sankey": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@plotly/d3-sankey/-/d3-sankey-0.7.2.tgz", + "integrity": "sha512-2jdVos1N3mMp3QW0k2q1ph7Gd6j5PY1YihBrwpkFnKqO+cqtZq3AdEYUeSGXMeLsBDQYiqTVcihYfk8vr5tqhw==", + "dev": true, + "requires": { + "d3-array": "1", + "d3-collection": "1", + "d3-shape": "^1.2.0" + } + }, + "@plotly/point-cluster": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@plotly/point-cluster/-/point-cluster-3.1.9.tgz", + "integrity": "sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw==", + "dev": true, + "requires": { + "array-bounds": "^1.0.1", + "binary-search-bounds": "^2.0.4", + "clamp": "^1.0.1", + "defined": "^1.0.0", + "dtype": "^2.0.0", + "flatten-vertex-data": "^1.0.2", + "is-obj": "^1.0.1", + "math-log2": "^1.0.1", + "parse-rect": "^1.2.0", + "pick-by-alias": "^1.2.0" + } + }, "@scratch/paper": { "version": "0.11.20200728195508", "resolved": "https://registry.npmjs.org/@scratch/paper/-/paper-0.11.20200728195508.tgz", @@ -1989,6 +2095,17 @@ "integrity": "sha512-vMS0fQubI3WSSLg1Ry3aey/qWCl9XoCsFzgwOWYkeJs45YxjPel+42pLh5pO7uP6oF47sjZUKx8kGOoTiiiirA==", "dev": true }, + "a-big-triangle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/a-big-triangle/-/a-big-triangle-1.0.3.tgz", + "integrity": "sha1-7v0wsCqPUl6LH3K7a7GwwWdRx5Q=", + "dev": true, + "requires": { + "gl-buffer": "^2.1.1", + "gl-vao": "^1.2.0", + "weak-map": "^1.0.5" + } + }, "abab": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", @@ -2001,6 +2118,12 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, + "abs-svg-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", + "integrity": "sha1-32Acjo0roQ1KdtYl4japo5wnI78=", + "dev": true + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -2062,6 +2185,24 @@ "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", "dev": true }, + "add-line-numbers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/add-line-numbers/-/add-line-numbers-1.0.1.tgz", + "integrity": "sha1-SNu96kfb0jTer+rGyTzqb3C0t+M=", + "dev": true, + "requires": { + "pad-left": "^1.0.2" + } + }, + "affine-hull": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/affine-hull/-/affine-hull-1.0.0.tgz", + "integrity": "sha1-dj/x040GPOt+Jy8X7k17vK+QXF0=", + "dev": true, + "requires": { + "robust-orientation": "^1.1.3" + } + }, "agent-base": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz", @@ -2183,6 +2324,32 @@ "repeat-string": "^1.5.2" } }, + "almost-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/almost-equal/-/almost-equal-1.1.0.tgz", + "integrity": "sha1-+FHGMROHV5lCdqou++jfowZszN0=", + "dev": true + }, + "alpha-complex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/alpha-complex/-/alpha-complex-1.0.0.tgz", + "integrity": "sha1-kIZYcNawVCrnPAwTHU75iWabctI=", + "dev": true, + "requires": { + "circumradius": "^1.0.0", + "delaunay-triangulate": "^1.1.6" + } + }, + "alpha-shape": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/alpha-shape/-/alpha-shape-1.0.0.tgz", + "integrity": "sha1-yDEJkj7P2mZ9IWP+Tyb+JHJvZKk=", + "dev": true, + "requires": { + "alpha-complex": "^1.0.0", + "simplicial-complex-boundary": "^1.0.0" + } + }, "alphanum-sort": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", @@ -2211,6 +2378,12 @@ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, + "ansicolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", + "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=", + "dev": true + }, "anymatch": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", @@ -2289,6 +2462,12 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, + "array-bounds": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", + "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==", + "dev": true + }, "array-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", @@ -2322,6 +2501,27 @@ "es-abstract": "^1.7.0" } }, + "array-normalize": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array-normalize/-/array-normalize-1.1.4.tgz", + "integrity": "sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==", + "dev": true, + "requires": { + "array-bounds": "^1.0.0" + } + }, + "array-range": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-range/-/array-range-1.0.1.tgz", + "integrity": "sha1-9W5GWRhDYRxqVvd+8C7afFAIm/w=", + "dev": true + }, + "array-rearrange": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/array-rearrange/-/array-rearrange-2.2.2.tgz", + "integrity": "sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==", + "dev": true + }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -2514,6 +2714,12 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, + "atob-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-1.0.0.tgz", + "integrity": "sha1-uI3KYAaSK5YglPdVaCa6sxxKKWs=", + "dev": true + }, "audio-context": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/audio-context/-/audio-context-1.0.1.tgz", @@ -3581,6 +3787,15 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, + "barycentric": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/barycentric/-/barycentric-1.0.1.tgz", + "integrity": "sha1-8VYruJGyb0/sRjqC7to2V4AOxog=", + "dev": true, + "requires": { + "robust-linear-solve": "^1.0.0" + } + }, "base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", @@ -3672,6 +3887,17 @@ "tweetnacl": "^0.14.3" } }, + "big-rat": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/big-rat/-/big-rat-1.0.4.tgz", + "integrity": "sha1-do0JO7V5MN0Y7Vdcf8on3FORreo=", + "dev": true, + "requires": { + "bit-twiddle": "^1.0.2", + "bn.js": "^4.11.6", + "double-bits": "^1.1.1" + } + }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -3683,12 +3909,33 @@ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, + "binary-search-bounds": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.4.tgz", + "integrity": "sha512-2hg5kgdKql5ClF2ErBcSx0U5bnl5hgS4v7wMnLFodyR47yMtj2w+UAZB+0CiqyHct2q543i7Bi4/aMIegorCCg==", + "dev": true + }, "bind-obj-methods": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/bind-obj-methods/-/bind-obj-methods-2.0.0.tgz", "integrity": "sha512-3/qRXczDi2Cdbz6jE+W3IflJOutRVica8frpBn14de1mBOkzDo+6tY33kNhvkw54Kn3PzRRD2VnGbGPcTAk4sw==", "dev": true }, + "bit-twiddle": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", + "integrity": "sha1-DGwfq+KyPRcXPZpht7cJPrnhdp4=", + "dev": true + }, + "bitmap-sdf": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.3.tgz", + "integrity": "sha512-ojYySSvWTx21cbgntR942zgEgqj38wHctN64vr4vYRFf3GKVmI23YlA94meWGkFslidwLwGCsMy2laJ3g/94Sg==", + "dev": true, + "requires": { + "clamp": "^1.0.1" + } + }, "bl": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", @@ -3763,12 +4010,31 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", "dev": true }, + "boundary-cells": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/boundary-cells/-/boundary-cells-2.0.1.tgz", + "integrity": "sha1-6QWo0UGc9Hyza+Pb9SXbXiTeAEI=", + "dev": true, + "requires": { + "tape": "^4.0.0" + } + }, "bowser": { "version": "1.9.4", "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz", "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==", "dev": true }, + "box-intersect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/box-intersect/-/box-intersect-1.0.2.tgz", + "integrity": "sha512-yJeMwlmFPG1gIa7Rs/cGXeI6iOj6Qz5MG5PE61xLKpElUGzmJ4abm+qsLpzxKJFpsSDq742BQEocr8dI2t8Nxw==", + "dev": true, + "requires": { + "bit-twiddle": "^1.0.2", + "typedarray-pool": "^1.1.0" + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3959,6 +4225,136 @@ "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", "dev": true }, + "buble": { + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/buble/-/buble-0.19.8.tgz", + "integrity": "sha512-IoGZzrUTY5fKXVkgGHw3QeXFMUNBFv+9l8a4QJKG1JhG3nCMHTdEX1DCOg8568E2Q9qvAQIiSokv6Jsgx8p2cA==", + "dev": true, + "requires": { + "acorn": "^6.1.1", + "acorn-dynamic-import": "^4.0.0", + "acorn-jsx": "^5.0.1", + "chalk": "^2.4.2", + "magic-string": "^0.25.3", + "minimist": "^1.2.0", + "os-homedir": "^2.0.0", + "regexpu-core": "^4.5.4" + }, + "dependencies": { + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", + "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "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" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "os-homedir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-2.0.0.tgz", + "integrity": "sha512-saRNz0DSC5C/I++gFIaJTXoFJMRwiP5zHar5vV3xQ2TkgEw6hDCcU5F272JjUylpiVgBrZNQHnfjkLabTfb92Q==", + "dev": true + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "bubleify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bubleify/-/bubleify-1.2.1.tgz", + "integrity": "sha512-vp3NHmaQVoKaKWvi15FTMinPNjfp+47+/kFJ9ifezdMF/CBLArCxDVUh+FQE3qRxCRj1qyjJqilTBHHqlM8MaQ==", + "dev": true, + "requires": { + "buble": "^0.19.3" + } + }, "buffer": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", @@ -4229,6 +4625,15 @@ "integrity": "sha512-Zh3sHqskX6mHNrqUerh+fkf0N72cMxrmflzje/JyVImfpknscMnkeJrlFGJcqTmaa0iszdYptGpWMJCRQDkBVw==", "dev": true }, + "canvas-fit": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/canvas-fit/-/canvas-fit-1.5.0.tgz", + "integrity": "sha1-rhO+Zq3kL1vg5IfjRfzjCl5bXl8=", + "dev": true, + "requires": { + "element-size": "^1.1.1" + } + }, "canvas-toBlob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/canvas-toBlob/-/canvas-toBlob-1.0.0.tgz", @@ -4244,11 +4649,38 @@ "rsvp": "^3.3.3" } }, + "cardinal": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-0.4.4.tgz", + "integrity": "sha1-ylu2iltRG5D+k7ms6km97lwyv+I=", + "dev": true, + "requires": { + "ansicolors": "~0.2.1", + "redeyed": "~0.4.0" + } + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, + "cdt2d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cdt2d/-/cdt2d-1.0.0.tgz", + "integrity": "sha1-TyEkNLzWe9s9aLj+9KzcLFRBUUE=", + "dev": true, + "requires": { + "binary-search-bounds": "^2.0.3", + "robust-in-sphere": "^1.1.3", + "robust-orientation": "^1.1.3" + } + }, + "cell-orientation": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cell-orientation/-/cell-orientation-1.0.1.tgz", + "integrity": "sha1-tQStlqZq0obZ7dmFoiU9A7gNKFA=", + "dev": true + }, "center-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", @@ -4383,6 +4815,31 @@ "safe-buffer": "^5.0.1" } }, + "circumcenter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/circumcenter/-/circumcenter-1.0.0.tgz", + "integrity": "sha1-INeqE7F/usUvUtpPVMasi5Bu5Sk=", + "dev": true, + "requires": { + "dup": "^1.0.0", + "robust-linear-solve": "^1.0.0" + } + }, + "circumradius": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/circumradius/-/circumradius-1.0.0.tgz", + "integrity": "sha1-cGxEfj5VzR7T0RvRM+N8JSzDBbU=", + "dev": true, + "requires": { + "circumcenter": "^1.0.0" + } + }, + "clamp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", + "integrity": "sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ=", + "dev": true + }, "clap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", @@ -4457,6 +4914,21 @@ } } }, + "clean-pslg": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/clean-pslg/-/clean-pslg-1.1.2.tgz", + "integrity": "sha1-vTXHRgt+irWp92Gl7VF5aqPIbBE=", + "dev": true, + "requires": { + "big-rat": "^1.0.3", + "box-intersect": "^1.0.1", + "nextafter": "^1.0.0", + "rat-vec": "^1.1.1", + "robust-segment-intersect": "^1.0.1", + "union-find": "^1.0.2", + "uniq": "^1.0.1" + } + }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -4573,6 +5045,15 @@ "color-string": "^0.3.0" } }, + "color-alpha": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/color-alpha/-/color-alpha-1.1.2.tgz", + "integrity": "sha512-FOu95n/SjuQyG9lFqzl18S2cfQ4od1QVrvz3PEJxWnRKjAPWBj7FILNnGSUfIXNgmMx58vaXp24URXeqF5obZQ==", + "dev": true, + "requires": { + "color-parse": "^1.4.1" + } + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -4582,12 +5063,60 @@ "color-name": "1.1.3" } }, + "color-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", + "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", + "dev": true, + "requires": { + "clamp": "^1.0.1" + } + }, "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "color-normalize": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/color-normalize/-/color-normalize-1.5.2.tgz", + "integrity": "sha512-yYMIoyFJmUoKbCK6sBShljBWfkt8DXVfaZJn9/zvRJkF9eQJDbZhcYC6LdOVy40p4tfVwYYb9cXl8oqpu7pzBw==", + "dev": true, + "requires": { + "color-rgba": "^2.2.0", + "dtype": "^2.0.0" + } + }, + "color-parse": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.2.tgz", + "integrity": "sha512-RI7s49/8yqDj3fECFZjUI1Yi0z/Gq1py43oNJivAIIDSyJiOZLfYCRQEgn8HEVAj++PcRe8AnL2XF0fRJ3BTnA==", + "dev": true, + "requires": { + "color-name": "^1.0.0" + } + }, + "color-rgba": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.2.3.tgz", + "integrity": "sha512-C20bgnIy09NoXDzhu3RB/SHVlk0y+2zcnkumpVvGOWCrz3rF2xJLS53Fc2ai2Jebs3X7ILZFswN7vVLD2HLr2g==", + "dev": true, + "requires": { + "color-parse": "^1.4.1", + "color-space": "^1.14.6" + } + }, + "color-space": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/color-space/-/color-space-1.16.0.tgz", + "integrity": "sha512-A6WMiFzunQ8KEPFmj02OnnoUnqhmSaHaZ/0LVFcPTdlvm8+3aMJ5x1HRHy3bDHPkovkf4sS0f4wsVvwk71fKkg==", + "dev": true, + "requires": { + "hsluv": "^0.0.3", + "mumath": "^3.3.4" + } + }, "color-string": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", @@ -4609,6 +5138,15 @@ "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", "dev": true }, + "colormap": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/colormap/-/colormap-2.3.1.tgz", + "integrity": "sha512-TEzNlo/qYp6pBoR2SK9JiV+DG1cmUcVO/+DEJqVPSHIKNlWh5L5L4FYog7b/h0bAnhKhpOAvx/c1dFp2QE9sFw==", + "dev": true, + "requires": { + "lerp": "^1.0.3" + } + }, "colormin": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", @@ -4646,6 +5184,35 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, + "compare-angle": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/compare-angle/-/compare-angle-1.0.1.tgz", + "integrity": "sha1-pOtjQW6jx0f8a9bItjZotN5PoSk=", + "dev": true, + "requires": { + "robust-orientation": "^1.0.2", + "robust-product": "^1.0.0", + "robust-sum": "^1.0.0", + "signum": "^0.0.0", + "two-sum": "^1.0.0" + } + }, + "compare-cell": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/compare-cell/-/compare-cell-1.0.0.tgz", + "integrity": "sha1-qetwj24OQa73qlZrEw8ZaNyeGqo=", + "dev": true + }, + "compare-oriented-cell": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/compare-oriented-cell/-/compare-oriented-cell-1.0.1.tgz", + "integrity": "sha1-ahSf7vnfxPj8YjWOUd1C7/u9w54=", + "dev": true, + "requires": { + "cell-orientation": "^1.0.1", + "compare-cell": "^1.0.0" + } + }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -4673,6 +5240,19 @@ "vary": "~1.1.0" } }, + "compute-dims": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/compute-dims/-/compute-dims-1.1.0.tgz", + "integrity": "sha512-YHMiIKjH/8Eom8zATk3g8/lH3HxGCZcVQyEfEoVrfWI7od/WRpTgRGShnei3jArYSx77mQqPxZNokjGHCdLfxg==", + "dev": true, + "requires": { + "utils-copy": "^1.0.0", + "validate.io-array": "^1.0.6", + "validate.io-matrix-like": "^1.0.2", + "validate.io-ndarray-like": "^1.0.0", + "validate.io-positive-integer": "^1.0.0" + } + }, "computed-style-to-inline-style": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/computed-style-to-inline-style/-/computed-style-to-inline-style-3.0.0.tgz", @@ -4739,6 +5319,18 @@ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, + "const-max-uint32": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/const-max-uint32/-/const-max-uint32-1.0.2.tgz", + "integrity": "sha1-8Am7YjDmeO2HTdLWqc2ePL+rtnY=", + "dev": true + }, + "const-pinf-float64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/const-pinf-float64/-/const-pinf-float64-1.0.0.tgz", + "integrity": "sha1-9u+w15+cCYbT558pI6v5twtj1yY=", + "dev": true + }, "constant-case": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", @@ -4774,6 +5366,17 @@ "safe-buffer": "~5.1.1" } }, + "convex-hull": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/convex-hull/-/convex-hull-1.0.3.tgz", + "integrity": "sha1-IKOqbOh/St6i/30XlxyfwcZ+H/8=", + "dev": true, + "requires": { + "affine-hull": "^1.0.0", + "incremental-convex-hull": "^1.0.1", + "monotone-convex-hull-2d": "^1.0.1" + } + }, "cookie": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", @@ -4882,6 +5485,12 @@ } } }, + "country-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz", + "integrity": "sha1-UcMz3N8Sknt+XuucEKyBEqYSCJY=", + "dev": true + }, "country-telephone-data": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/country-telephone-data/-/country-telephone-data-0.4.2.tgz", @@ -5090,6 +5699,53 @@ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", "dev": true }, + "css-font": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-font/-/css-font-1.2.0.tgz", + "integrity": "sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA==", + "dev": true, + "requires": { + "css-font-size-keywords": "^1.0.0", + "css-font-stretch-keywords": "^1.0.1", + "css-font-style-keywords": "^1.0.1", + "css-font-weight-keywords": "^1.0.0", + "css-global-keywords": "^1.0.1", + "css-system-font-keywords": "^1.0.0", + "pick-by-alias": "^1.2.0", + "string-split-by": "^1.0.0", + "unquote": "^1.1.0" + } + }, + "css-font-size-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", + "integrity": "sha1-hUh1rOmspqjS7g00WkSq6btttss=", + "dev": true + }, + "css-font-stretch-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", + "integrity": "sha1-UM7puboDH7XJUtRyMTnx4Qe1SxA=", + "dev": true + }, + "css-font-style-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", + "integrity": "sha1-XDUygT9jtKHelU0TzqhqtDM0CeQ=", + "dev": true + }, + "css-font-weight-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", + "integrity": "sha1-m8BGcayFvHJLV07106yWsNYE/Zc=", + "dev": true + }, + "css-global-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz", + "integrity": "sha1-cqmupyeW0Bmx0qMlLeTlqqN+Smk=", + "dev": true + }, "css-loader": { "version": "0.23.1", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.23.1.tgz", @@ -5163,6 +5819,12 @@ "fastparse": "^1.1.1" } }, + "css-system-font-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", + "integrity": "sha1-hcbwhquk6zLFcaMIav/ENLhII+0=", + "dev": true + }, "css-vendor": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz", @@ -5178,6 +5840,12 @@ "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", "dev": true }, + "csscolorparser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", + "integrity": "sha1-s085HupNqPPpgjHizNjfnAQfFxs=", + "dev": true + }, "cssesc": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", @@ -5257,6 +5925,12 @@ "cssom": "0.3.x" } }, + "cubic-hermite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cubic-hermite/-/cubic-hermite-1.0.0.tgz", + "integrity": "sha1-hOOy8nKzFFToOTuZu2rtRRaMFOU=", + "dev": true + }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -5266,6 +5940,227 @@ "array-find-index": "^1.0.1" } }, + "cwise": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/cwise/-/cwise-1.0.10.tgz", + "integrity": "sha1-JO7mBy69/WuMb12tsXCQtkmxK+8=", + "dev": true, + "requires": { + "cwise-compiler": "^1.1.1", + "cwise-parser": "^1.0.0", + "static-module": "^1.0.0", + "uglify-js": "^2.6.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "escodegen": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz", + "integrity": "sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM=", + "dev": true, + "requires": { + "esprima": "~1.1.1", + "estraverse": "~1.5.0", + "esutils": "~1.0.0", + "source-map": "~0.1.33" + } + }, + "esprima": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.1.1.tgz", + "integrity": "sha1-W28VR/TRAuZw4UDFCb5ncdautUk=", + "dev": true + }, + "estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=", + "dev": true + }, + "esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=", + "dev": true + }, + "falafel": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.4.tgz", + "integrity": "sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "foreach": "^2.0.5", + "isarray": "^2.0.1", + "object-keys": "^1.0.6" + } + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "object-inspect": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-0.4.0.tgz", + "integrity": "sha1-9RV8EWwUVbJDsG7pdwM5LFrYn+w=", + "dev": true + }, + "quote-stream": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-0.0.0.tgz", + "integrity": "sha1-zeKelMQJsW4Z3HCYuJtmWPlyHTs=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "through2": "~0.4.1" + } + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + } + } + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } + }, + "static-eval": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-0.2.4.tgz", + "integrity": "sha1-t9NNg4k3uWn5ZBygfUj47eJj6ns=", + "dev": true, + "requires": { + "escodegen": "~0.0.24" + }, + "dependencies": { + "escodegen": { + "version": "0.0.28", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.28.tgz", + "integrity": "sha1-Dk/xcV8yh3XWyrUaxEpAbNer/9M=", + "dev": true, + "requires": { + "esprima": "~1.0.2", + "estraverse": "~1.3.0", + "source-map": ">= 0.1.2" + } + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "dev": true + }, + "estraverse": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.3.2.tgz", + "integrity": "sha1-N8K4k+8T1yPydth41g2FNRUqbEI=", + "dev": true + } + } + }, + "static-module": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-1.5.0.tgz", + "integrity": "sha1-J9qYg8QajNCSNvhC8MHrxu32PYY=", + "dev": true, + "requires": { + "concat-stream": "~1.6.0", + "duplexer2": "~0.0.2", + "escodegen": "~1.3.2", + "falafel": "^2.1.0", + "has": "^1.0.0", + "object-inspect": "~0.4.0", + "quote-stream": "~0.0.0", + "readable-stream": "~1.0.27-1", + "shallow-copy": "~0.0.1", + "static-eval": "~0.2.0", + "through2": "~0.4.1" + } + }, + "through2": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", + "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=", + "dev": true, + "requires": { + "readable-stream": "~1.0.17", + "xtend": "~2.1.1" + } + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true, + "requires": { + "object-keys": "~0.4.0" + }, + "dependencies": { + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + } + } + } + } + }, + "cwise-compiler": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cwise-compiler/-/cwise-compiler-1.1.3.tgz", + "integrity": "sha1-9NZnQQ6FDToxOn0tt7HlBbsDTMU=", + "dev": true, + "requires": { + "uniq": "^1.0.0" + } + }, + "cwise-parser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cwise-parser/-/cwise-parser-1.0.3.tgz", + "integrity": "sha1-jkk8F9VPl8sDCp6YVLyGyd+zVP4=", + "dev": true, + "requires": { + "esprima": "^1.0.3", + "uniq": "^1.0.0" + }, + "dependencies": { + "esprima": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.5.tgz", + "integrity": "sha1-CZNQL+r2aBODJXVvMPmlH+7sEek=", + "dev": true + } + } + }, "cyclist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", @@ -5282,6 +6177,102 @@ "type": "^1.0.1" } }, + "d3": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz", + "integrity": "sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g=", + "dev": true + }, + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==", + "dev": true + }, + "d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==", + "dev": true + }, + "d3-color": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", + "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==", + "dev": true + }, + "d3-dispatch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", + "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==", + "dev": true + }, + "d3-force": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", + "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", + "dev": true, + "requires": { + "d3-collection": "1", + "d3-dispatch": "1", + "d3-quadtree": "1", + "d3-timer": "1" + } + }, + "d3-hierarchy": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", + "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==", + "dev": true + }, + "d3-interpolate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", + "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "dev": true, + "requires": { + "d3-color": "1" + } + }, + "d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", + "dev": true + }, + "d3-quadtree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", + "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==", + "dev": true + }, + "d3-sankey-circular": { + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/d3-sankey-circular/-/d3-sankey-circular-0.33.0.tgz", + "integrity": "sha512-sn6Nuoc1lgZ5PYrxqJ0G3ZbInHM4ZP+lrg5SMc0AolgenQ9CBERf3gVliQzxeXyo2kSU7QgewUZwjvddEzT/JA==", + "dev": true, + "requires": { + "d3-array": "^1.2.1", + "d3-collection": "^1.0.4", + "d3-shape": "^1.2.0", + "elementary-circuits-directed-graph": "^1.0.4" + } + }, + "d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "dev": true, + "requires": { + "d3-path": "1" + } + }, + "d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", + "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==", + "dev": true + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -5578,6 +6569,16 @@ } } }, + "delaunay-triangulate": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/delaunay-triangulate/-/delaunay-triangulate-1.1.6.tgz", + "integrity": "sha1-W7yiGweBmNS8PHV5ajXLuYwllUw=", + "dev": true, + "requires": { + "incremental-convex-hull": "^1.0.1", + "uniq": "^1.0.1" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -5618,6 +6619,12 @@ "repeating": "^2.0.0" } }, + "detect-kerning": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-kerning/-/detect-kerning-2.1.2.tgz", + "integrity": "sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==", + "dev": true + }, "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", @@ -5789,6 +6796,31 @@ "no-case": "^2.2.0" } }, + "dotignore": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", + "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "double-bits": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/double-bits/-/double-bits-1.1.1.tgz", + "integrity": "sha1-WKu6RUlNpND6Nrc60RoobJGEscY=", + "dev": true + }, + "draw-svg-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/draw-svg-path/-/draw-svg-path-1.0.0.tgz", + "integrity": "sha1-bxFtli3TFLmepTTW9Y3WbNvWk3k=", + "dev": true, + "requires": { + "abs-svg-path": "~0.1.1", + "normalize-svg-path": "~0.1.0" + } + }, "dtrace-provider": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.6.0.tgz", @@ -5798,6 +6830,18 @@ "nan": "^2.0.8" } }, + "dtype": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", + "integrity": "sha1-zQUjI84GFETs0uj1dI9popvihDQ=", + "dev": true + }, + "dup": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", + "integrity": "sha1-UfxaxoX4GWRp3wuQXpNLIK9bQCk=", + "dev": true + }, "duplexer2": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", @@ -5839,6 +6883,12 @@ "stream-shift": "^1.0.0" } }, + "earcut": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz", + "integrity": "sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ==", + "dev": true + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -5848,6 +6898,15 @@ "safer-buffer": "^2.1.0" } }, + "edges-to-adjacency-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/edges-to-adjacency-list/-/edges-to-adjacency-list-1.0.0.tgz", + "integrity": "sha1-wUbS4ISt37p0pRKTxuAZmkn3V/E=", + "dev": true, + "requires": { + "uniq": "^1.0.0" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -5859,6 +6918,21 @@ "integrity": "sha512-cs9WnTnGBGnYYVFMCtLmr9jXNTOkdp95RLz5VhwzDn7dErg1Lnt9o4d01gEH69XlmRKWUr91Yu1hA+Hi8qW0PA==", "dev": true }, + "element-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz", + "integrity": "sha1-ZOXxWdlxIWMYRby67K8nnDm1404=", + "dev": true + }, + "elementary-circuits-directed-graph": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.2.0.tgz", + "integrity": "sha512-eOQofnrNqebPtC29PvyNMGUBdMrIw5i8nOoC/2VOlSF84tf5+ZXnRkIk7TgdT22jFXK68CC7aA881KRmNYf/Pg==", + "dev": true, + "requires": { + "strongly-connected-components": "^1.0.1" + } + }, "elliptic": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", @@ -6123,6 +7197,18 @@ "es5-ext": "~0.10.14" } }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -6792,6 +7878,12 @@ "is-extglob": "^1.0.0" } }, + "extract-frustum-planes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/extract-frustum-planes/-/extract-frustum-planes-1.0.0.tgz", + "integrity": "sha1-l9VwP/BWTIw8aDjKxF+ee8UsnvU=", + "dev": true + }, "extract-zip": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", @@ -6932,6 +8024,15 @@ } } }, + "fast-isnumeric": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-isnumeric/-/fast-isnumeric-1.1.4.tgz", + "integrity": "sha512-1mM8qOr2LYz8zGaUdmiqRDiuue00Dxjgcb1NQR7TnhLVh6sQyngP9xvLo7Sl7LZpP/sk5eb+bcyWXw530NTBZw==", + "dev": true, + "requires": { + "is-string-blank": "^1.0.1" + } + }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", @@ -7143,6 +8244,24 @@ "repeat-string": "^1.5.2" } }, + "filtered-vector": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/filtered-vector/-/filtered-vector-1.2.4.tgz", + "integrity": "sha1-VkU8A030MC0pPKjs3qw/kKvGeNM=", + "dev": true, + "requires": { + "binary-search-bounds": "^1.0.0", + "cubic-hermite": "^1.0.0" + }, + "dependencies": { + "binary-search-bounds": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-1.0.0.tgz", + "integrity": "sha1-MjyjF+PypA9CRMclX1OEpbIHu2k=", + "dev": true + } + } + }, "finalhandler": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", @@ -7264,6 +8383,21 @@ "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", "dev": true }, + "flatten-vertex-data": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz", + "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==", + "dev": true, + "requires": { + "dtype": "^2.0.0" + } + }, + "flip-pixels": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flip-pixels/-/flip-pixels-1.0.2.tgz", + "integrity": "sha512-oXbJGbjDnfJRWPC7Va38EFhd+A8JWE5/hCiKcK8qjCdbLj9DTpsq6MEudwpRTH+V4qq+Jw7d3pUgQdSr3x3mTA==", + "dev": true + }, "flow-parser": { "version": "0.129.0", "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.129.0.tgz", @@ -7317,6 +8451,34 @@ } } }, + "font-atlas": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/font-atlas/-/font-atlas-2.1.0.tgz", + "integrity": "sha512-kP3AmvX+HJpW4w3d+PiPR2X6E1yvsBXt2yhuCw+yReO9F1WYhvZwx3c95DGZGwg9xYzDGrgJYa885xmVA+28Cg==", + "dev": true, + "requires": { + "css-font": "^1.0.0" + } + }, + "font-atlas-sdf": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/font-atlas-sdf/-/font-atlas-sdf-1.3.3.tgz", + "integrity": "sha512-GxUpcdkdoHgC3UrpMuA7JmG1Ty/MY0BhfmV8r7ZSv3bkqBY5vmRIjcj7Pg8iqj20B03vlU6fUhdpyIgEo/Z35w==", + "dev": true, + "requires": { + "optical-properties": "^1.0.0", + "tiny-sdf": "^1.0.2" + } + }, + "font-measure": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/font-measure/-/font-measure-1.2.2.tgz", + "integrity": "sha512-mRLEpdrWzKe9hbfaF3Qpr06TAjquuBVP5cHy4b3hyeNdjc9i0PO6HniGsX5vjL5OWv7+Bd++NiooNpT/s8BvIA==", + "dev": true, + "requires": { + "css-font": "^1.2.0" + } + }, "for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -7864,6 +9026,12 @@ "integrity": "sha512-U0kNHUoxwPNPWOJaMG7Z00d4a/qZVrFtzWJRaK8V9goaVOCXBSQSJpt3MYGNtkScKEBKovxLjnNdC9MlXwo5Pw==", "dev": true }, + "gamma": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/gamma/-/gamma-0.1.0.tgz", + "integrity": "sha1-MxVkNAO/J5BsqAqzfDbs6UQO8zA=", + "dev": true + }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", @@ -7917,12 +9085,44 @@ "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", "dev": true }, + "geojson-rewind": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/geojson-rewind/-/geojson-rewind-0.3.1.tgz", + "integrity": "sha1-IiQHl8hHzC8MHTE+SqDJFa+n8p0=", + "dev": true, + "requires": { + "@mapbox/geojson-area": "0.2.2", + "concat-stream": "~1.6.0", + "minimist": "1.2.0", + "sharkdown": "^0.1.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "geojson-vt": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", + "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==", + "dev": true + }, "get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "dev": true }, + "get-canvas-context": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz", + "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM=", + "dev": true + }, "get-float-time-domain-data": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-float-time-domain-data/-/get-float-time-domain-data-0.1.0.tgz", @@ -7995,6 +9195,447 @@ "bluebird": "^2.3.0" } }, + "gl-axes3d": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/gl-axes3d/-/gl-axes3d-1.5.3.tgz", + "integrity": "sha512-KRYbguKQcDQ6PcB9g1pgqB8Ly4TY1DQODpPKiDTasyWJ8PxQk0t2Q7XoQQijNqvsguITCpVVCzNb5GVtIWiVlQ==", + "dev": true, + "requires": { + "bit-twiddle": "^1.0.2", + "dup": "^1.0.0", + "extract-frustum-planes": "^1.0.0", + "gl-buffer": "^2.1.2", + "gl-mat4": "^1.2.0", + "gl-shader": "^4.2.1", + "gl-state": "^1.0.0", + "gl-vao": "^1.3.0", + "gl-vec4": "^1.0.1", + "glslify": "^7.0.0", + "robust-orientation": "^1.1.3", + "split-polygon": "^1.0.0", + "vectorize-text": "^3.2.1" + } + }, + "gl-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/gl-buffer/-/gl-buffer-2.1.2.tgz", + "integrity": "sha1-LbjZwaVSf7oM25EonCBuiCuInNs=", + "dev": true, + "requires": { + "ndarray": "^1.0.15", + "ndarray-ops": "^1.1.0", + "typedarray-pool": "^1.0.0" + } + }, + "gl-cone3d": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/gl-cone3d/-/gl-cone3d-1.5.2.tgz", + "integrity": "sha512-1JNeHH4sUtUmDA4ZK7Om8/kShwb8IZVAsnxaaB7IPRJsNGciLj1sTpODrJGeMl41RNkex5kXD2SQFrzyEAR2Rw==", + "dev": true, + "requires": { + "colormap": "^2.3.1", + "gl-buffer": "^2.1.2", + "gl-mat4": "^1.2.0", + "gl-shader": "^4.2.1", + "gl-texture2d": "^2.1.0", + "gl-vao": "^1.3.0", + "gl-vec3": "^1.1.3", + "glsl-inverse": "^1.0.0", + "glsl-out-of-range": "^1.0.4", + "glsl-specular-cook-torrance": "^2.0.1", + "glslify": "^7.0.0", + "ndarray": "^1.0.18" + } + }, + "gl-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gl-constants/-/gl-constants-1.0.0.tgz", + "integrity": "sha1-WXpQTjZHUP9QJTqjX43qevSl0jM=", + "dev": true + }, + "gl-contour2d": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/gl-contour2d/-/gl-contour2d-1.1.7.tgz", + "integrity": "sha512-GdebvJ9DtT3pJDpoE+eU2q+Wo9S3MijPpPz5arZbhK85w2bARmpFpVfPaDlZqWkB644W3BlH8TVyvAo1KE4Bhw==", + "dev": true, + "requires": { + "binary-search-bounds": "^2.0.4", + "cdt2d": "^1.0.0", + "clean-pslg": "^1.1.2", + "gl-buffer": "^2.1.2", + "gl-shader": "^4.2.1", + "glslify": "^7.0.0", + "iota-array": "^1.0.0", + "ndarray": "^1.0.18", + "surface-nets": "^1.0.2" + } + }, + "gl-error3d": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/gl-error3d/-/gl-error3d-1.0.16.tgz", + "integrity": "sha512-TGJewnKSp7ZnqGgG3XCF9ldrDbxZrO+OWlx6oIet4OdOM//n8xJ5isArnIV/sdPJnFbhfoLxWrW9f5fxHFRQ1A==", + "dev": true, + "requires": { + "gl-buffer": "^2.1.2", + "gl-shader": "^4.2.1", + "gl-vao": "^1.3.0", + "glsl-out-of-range": "^1.0.4", + "glslify": "^7.0.0" + } + }, + "gl-fbo": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/gl-fbo/-/gl-fbo-2.0.5.tgz", + "integrity": "sha1-D6daSXz3h2lVMGkcjwSrtvtV+iI=", + "dev": true, + "requires": { + "gl-texture2d": "^2.0.0" + } + }, + "gl-format-compiler-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/gl-format-compiler-error/-/gl-format-compiler-error-1.0.3.tgz", + "integrity": "sha1-DHmxdRiZzpcy6GJA8JCqQemEcag=", + "dev": true, + "requires": { + "add-line-numbers": "^1.0.1", + "gl-constants": "^1.0.0", + "glsl-shader-name": "^1.0.0", + "sprintf-js": "^1.0.3" + } + }, + "gl-heatmap2d": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/gl-heatmap2d/-/gl-heatmap2d-1.1.0.tgz", + "integrity": "sha512-0FLXyxv6UBCzzhi4Q2u+9fUs6BX1+r5ZztFe27VikE9FUVw7hZiuSHmgDng92EpydogcSYHXCIK8+58RagODug==", + "dev": true, + "requires": { + "binary-search-bounds": "^2.0.4", + "gl-buffer": "^2.1.2", + "gl-shader": "^4.2.1", + "glslify": "^7.0.0", + "iota-array": "^1.0.0", + "typedarray-pool": "^1.2.0" + } + }, + "gl-line3d": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/gl-line3d/-/gl-line3d-1.2.1.tgz", + "integrity": "sha512-eeb0+RI2ZBRqMYJK85SgsRiJK7c4aiOjcnirxv0830A3jmOc99snY3AbPcV8KvKmW0Yaf3KA4e+qNCbHiTOTnA==", + "dev": true, + "requires": { + "binary-search-bounds": "^2.0.4", + "gl-buffer": "^2.1.2", + "gl-shader": "^4.2.1", + "gl-texture2d": "^2.1.0", + "gl-vao": "^1.3.0", + "glsl-out-of-range": "^1.0.4", + "glslify": "^7.0.0", + "ndarray": "^1.0.18" + } + }, + "gl-mat2": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gl-mat2/-/gl-mat2-1.0.1.tgz", + "integrity": "sha1-FCUFcwpcL+Hp8l2ezj0NbMJxCjA=", + "dev": true + }, + "gl-mat3": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gl-mat3/-/gl-mat3-1.0.0.tgz", + "integrity": "sha1-iWMyGcpCk3mha5GF2V1BcTRTuRI=", + "dev": true + }, + "gl-mat4": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz", + "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA==", + "dev": true + }, + "gl-matrix-invert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gl-matrix-invert/-/gl-matrix-invert-1.0.0.tgz", + "integrity": "sha1-o2173jZUxFkKEn7nxo9uE/6oxj0=", + "dev": true, + "requires": { + "gl-mat2": "^1.0.0", + "gl-mat3": "^1.0.0", + "gl-mat4": "^1.0.0" + } + }, + "gl-mesh3d": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/gl-mesh3d/-/gl-mesh3d-2.3.1.tgz", + "integrity": "sha512-pXECamyGgu4/9HeAQSE5OEUuLBGS1aq9V4BCsTcxsND4fNLaajEkYKUz/WY2QSYElqKdsMBVsldGiKRKwlybqA==", + "dev": true, + "requires": { + "barycentric": "^1.0.1", + "colormap": "^2.3.1", + "gl-buffer": "^2.1.2", + "gl-mat4": "^1.2.0", + "gl-shader": "^4.2.1", + "gl-texture2d": "^2.1.0", + "gl-vao": "^1.3.0", + "glsl-out-of-range": "^1.0.4", + "glsl-specular-cook-torrance": "^2.0.1", + "glslify": "^7.0.0", + "ndarray": "^1.0.18", + "normals": "^1.1.0", + "polytope-closest-point": "^1.0.0", + "simplicial-complex-contour": "^1.0.2", + "typedarray-pool": "^1.1.0" + } + }, + "gl-plot2d": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/gl-plot2d/-/gl-plot2d-1.4.5.tgz", + "integrity": "sha512-6GmCN10SWtV+qHFQ1gjdnVubeHFVsm6P4zmo0HrPIl9TcdePCUHDlBKWAuE6XtFhiMKMj7R8rApOX8O8uXUYog==", + "dev": true, + "requires": { + "binary-search-bounds": "^2.0.4", + "gl-buffer": "^2.1.2", + "gl-select-static": "^2.0.7", + "gl-shader": "^4.2.1", + "glsl-inverse": "^1.0.0", + "glslify": "^7.0.0", + "text-cache": "^4.2.2" + } + }, + "gl-plot3d": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/gl-plot3d/-/gl-plot3d-2.4.6.tgz", + "integrity": "sha512-CkrNvDKu0p74Di2g2Oc9kU+s1Oe+wi4cIfHzXABp8DvfoRl0/bayqJ9q8EcRAqMeQQxQZYGvJkk4hlBwI758Jw==", + "dev": true, + "requires": { + "3d-view": "^2.0.0", + "a-big-triangle": "^1.0.3", + "gl-axes3d": "^1.5.3", + "gl-fbo": "^2.0.5", + "gl-mat4": "^1.2.0", + "gl-select-static": "^2.0.7", + "gl-shader": "^4.2.1", + "gl-spikes3d": "^1.0.10", + "glslify": "^7.0.0", + "has-passive-events": "^1.0.0", + "is-mobile": "^2.2.1", + "mouse-change": "^1.4.0", + "mouse-event-offset": "^3.0.2", + "mouse-wheel": "^1.2.0", + "ndarray": "^1.0.19", + "right-now": "^1.0.0" + } + }, + "gl-pointcloud2d": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/gl-pointcloud2d/-/gl-pointcloud2d-1.0.3.tgz", + "integrity": "sha512-OS2e1irvJXVRpg/GziXj10xrFJm9kkRfFoB6BLUvkjCQV7ZRNNcs2CD+YSK1r0gvMwTg2T3lfLM3UPwNtz+4Xw==", + "dev": true, + "requires": { + "gl-buffer": "^2.1.2", + "gl-shader": "^4.2.1", + "glslify": "^7.0.0", + "typedarray-pool": "^1.1.0" + } + }, + "gl-quat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gl-quat/-/gl-quat-1.0.0.tgz", + "integrity": "sha1-CUXskjOG9FMpvl3DV7HIwtR1hsU=", + "dev": true, + "requires": { + "gl-mat3": "^1.0.0", + "gl-vec3": "^1.0.3", + "gl-vec4": "^1.0.0" + } + }, + "gl-scatter3d": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/gl-scatter3d/-/gl-scatter3d-1.2.3.tgz", + "integrity": "sha512-nXqPlT1w5Qt51dTksj+DUqrZqwWAEWg0PocsKcoDnVNv0X8sGA+LBZ0Y+zrA+KNXUL0PPCX9WR9cF2uJAZl1Sw==", + "dev": true, + "requires": { + "gl-buffer": "^2.1.2", + "gl-mat4": "^1.2.0", + "gl-shader": "^4.2.1", + "gl-vao": "^1.3.0", + "glsl-out-of-range": "^1.0.4", + "glslify": "^7.0.0", + "is-string-blank": "^1.0.1", + "typedarray-pool": "^1.1.0", + "vectorize-text": "^3.2.1" + } + }, + "gl-select-box": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/gl-select-box/-/gl-select-box-1.0.4.tgz", + "integrity": "sha512-mKsCnglraSKyBbQiGq0Ila0WF+m6Tr+EWT2yfaMn/Sh9aMHq5Wt0F/l6Cf/Ed3CdERq5jHWAY5yxLviZteYu2w==", + "dev": true, + "requires": { + "gl-buffer": "^2.1.2", + "gl-shader": "^4.2.1", + "glslify": "^7.0.0" + } + }, + "gl-select-static": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/gl-select-static/-/gl-select-static-2.0.7.tgz", + "integrity": "sha512-OvpYprd+ngl3liEatBTdXhSyNBjwvjMSvV2rN0KHpTU+BTi4viEETXNZXFgGXY37qARs0L28ybk3UQEW6C5Nnw==", + "dev": true, + "requires": { + "bit-twiddle": "^1.0.2", + "gl-fbo": "^2.0.5", + "ndarray": "^1.0.18", + "typedarray-pool": "^1.1.0" + } + }, + "gl-shader": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/gl-shader/-/gl-shader-4.2.1.tgz", + "integrity": "sha1-vJuAjpKTxRtmjojeYVsMETcI3C8=", + "dev": true, + "requires": { + "gl-format-compiler-error": "^1.0.2", + "weakmap-shim": "^1.1.0" + } + }, + "gl-spikes2d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/gl-spikes2d/-/gl-spikes2d-1.0.2.tgz", + "integrity": "sha512-QVeOZsi9nQuJJl7NB3132CCv5KA10BWxAY2QgJNsKqbLsG53B/TrGJpjIAohnJftdZ4fT6b3ZojWgeaXk8bOOA==", + "dev": true + }, + "gl-spikes3d": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/gl-spikes3d/-/gl-spikes3d-1.0.10.tgz", + "integrity": "sha512-lT3xroowOFxMvlhT5Mof76B2TE02l5zt/NIWljhczV2FFHgIVhA4jMrd5dIv1so1RXMBDJIKu0uJI3QKliDVLg==", + "dev": true, + "requires": { + "gl-buffer": "^2.1.2", + "gl-shader": "^4.2.1", + "gl-vao": "^1.3.0", + "glslify": "^7.0.0" + } + }, + "gl-state": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gl-state/-/gl-state-1.0.0.tgz", + "integrity": "sha1-Ji+qdYNbC5xTLBLzitxCXR0wzRc=", + "dev": true, + "requires": { + "uniq": "^1.0.0" + } + }, + "gl-streamtube3d": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/gl-streamtube3d/-/gl-streamtube3d-1.4.1.tgz", + "integrity": "sha512-rH02v00kgwgdpkXVo7KsSoPp38bIAYR9TE1iONjcQ4cQAlDhrGRauqT/P5sUaOIzs17A2DxWGcXM+EpNQs9pUA==", + "dev": true, + "requires": { + "gl-cone3d": "^1.5.2", + "gl-vec3": "^1.1.3", + "gl-vec4": "^1.0.1", + "glsl-inverse": "^1.0.0", + "glsl-out-of-range": "^1.0.4", + "glsl-specular-cook-torrance": "^2.0.1", + "glslify": "^7.0.0" + } + }, + "gl-surface3d": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/gl-surface3d/-/gl-surface3d-1.6.0.tgz", + "integrity": "sha512-x15+u4712ysnB85G55RLJEml6mOB4VaDn0VTlXCc9JcjRl5Es10Tk7lhGGyiPtkCfHwvhnkxzYA1/rHHYN7Y0A==", + "dev": true, + "requires": { + "binary-search-bounds": "^2.0.4", + "bit-twiddle": "^1.0.2", + "colormap": "^2.3.1", + "dup": "^1.0.0", + "gl-buffer": "^2.1.2", + "gl-mat4": "^1.2.0", + "gl-shader": "^4.2.1", + "gl-texture2d": "^2.1.0", + "gl-vao": "^1.3.0", + "glsl-out-of-range": "^1.0.4", + "glsl-specular-beckmann": "^1.1.2", + "glslify": "^7.0.0", + "ndarray": "^1.0.18", + "ndarray-gradient": "^1.0.0", + "ndarray-ops": "^1.2.2", + "ndarray-pack": "^1.2.1", + "ndarray-scratch": "^1.2.0", + "surface-nets": "^1.0.2", + "typedarray-pool": "^1.1.0" + } + }, + "gl-text": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/gl-text/-/gl-text-1.1.8.tgz", + "integrity": "sha512-whnq9DEFYbW92C4ONwk2eT0YkzmVPHoADnEtuzMOmit87XhgAhBrNs3lK9EgGjU/MoWYvlF6RkI8Kl7Yuo1hUw==", + "dev": true, + "requires": { + "bit-twiddle": "^1.0.2", + "color-normalize": "^1.5.0", + "css-font": "^1.2.0", + "detect-kerning": "^2.1.2", + "es6-weak-map": "^2.0.3", + "flatten-vertex-data": "^1.0.2", + "font-atlas": "^2.1.0", + "font-measure": "^1.2.2", + "gl-util": "^3.1.2", + "is-plain-obj": "^1.1.0", + "object-assign": "^4.1.1", + "parse-rect": "^1.2.0", + "parse-unit": "^1.0.1", + "pick-by-alias": "^1.2.0", + "regl": "^1.3.11", + "to-px": "^1.0.1", + "typedarray-pool": "^1.1.0" + } + }, + "gl-texture2d": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/gl-texture2d/-/gl-texture2d-2.1.0.tgz", + "integrity": "sha1-/2gk5+fDGoum/c2+nlxpXX4hh8c=", + "dev": true, + "requires": { + "ndarray": "^1.0.15", + "ndarray-ops": "^1.2.2", + "typedarray-pool": "^1.1.0" + } + }, + "gl-util": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/gl-util/-/gl-util-3.1.3.tgz", + "integrity": "sha512-dvRTggw5MSkJnCbh74jZzSoTOGnVYK+Bt+Ckqm39CVcl6+zSsxqWk4lr5NKhkqXHL6qvZAU9h17ZF8mIskY9mA==", + "dev": true, + "requires": { + "is-browser": "^2.0.1", + "is-firefox": "^1.0.3", + "is-plain-obj": "^1.1.0", + "number-is-integer": "^1.0.1", + "object-assign": "^4.1.0", + "pick-by-alias": "^1.2.0", + "weak-map": "^1.0.5" + } + }, + "gl-vao": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/gl-vao/-/gl-vao-1.3.0.tgz", + "integrity": "sha1-6ekqqVWIyrnVwvBLaTRAw99pGSM=", + "dev": true + }, + "gl-vec3": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gl-vec3/-/gl-vec3-1.1.3.tgz", + "integrity": "sha512-jduKUqT0SGH02l8Yl+mV1yVsDfYgQAJyXGxkJQGyxPLHRiW25DwVIRPt6uvhrEMHftJfqhqKthRcyZqNEl9Xdw==", + "dev": true + }, + "gl-vec4": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gl-vec4/-/gl-vec4-1.0.1.tgz", + "integrity": "sha1-l9loeCgbFLUyy84QF4Xf0cs0CWQ=", + "dev": true + }, "glob": { "version": "5.0.15", "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", @@ -8111,6 +9752,276 @@ } } }, + "glsl-inject-defines": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz", + "integrity": "sha1-3RqswsF/yyvT/DJBHGYz0Ne2D9Q=", + "dev": true, + "requires": { + "glsl-token-inject-block": "^1.0.0", + "glsl-token-string": "^1.0.1", + "glsl-tokenizer": "^2.0.2" + } + }, + "glsl-inverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glsl-inverse/-/glsl-inverse-1.0.0.tgz", + "integrity": "sha1-EsCx0GX1WERNHm/q95td34qRiuY=", + "dev": true + }, + "glsl-out-of-range": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/glsl-out-of-range/-/glsl-out-of-range-1.0.4.tgz", + "integrity": "sha512-fCcDu2LCQ39VBvfe1FbhuazXEf0CqMZI9OYXrYlL6uUARG48CTAbL04+tZBtVM0zo1Ljx4OLu2AxNquq++lxWQ==", + "dev": true + }, + "glsl-resolve": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz", + "integrity": "sha1-iUvvc5ENeSyBtRQxgANdCnivdtM=", + "dev": true, + "requires": { + "resolve": "^0.6.1", + "xtend": "^2.1.2" + }, + "dependencies": { + "resolve": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", + "integrity": "sha1-3ZV5gufnNt699TtYpN2RdUV13UY=", + "dev": true + }, + "xtend": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", + "integrity": "sha1-7vax8ZjByN6vrYsXZaBNrUoBxak=", + "dev": true + } + } + }, + "glsl-shader-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glsl-shader-name/-/glsl-shader-name-1.0.0.tgz", + "integrity": "sha1-osMLO6c0mb77DMcYTXx3M91LSH0=", + "dev": true, + "requires": { + "atob-lite": "^1.0.0", + "glsl-tokenizer": "^2.0.2" + } + }, + "glsl-specular-beckmann": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/glsl-specular-beckmann/-/glsl-specular-beckmann-1.1.2.tgz", + "integrity": "sha1-/OkFaTPs3yRWJ4N2pU0IKJPndfE=", + "dev": true + }, + "glsl-specular-cook-torrance": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/glsl-specular-cook-torrance/-/glsl-specular-cook-torrance-2.0.1.tgz", + "integrity": "sha1-qJHMBsjHtPRyhwK0gk/ay7ln148=", + "dev": true, + "requires": { + "glsl-specular-beckmann": "^1.1.1" + } + }, + "glsl-token-assignments": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz", + "integrity": "sha1-pdgqt4SZwuimuDy2lJXm5mXOAZ8=", + "dev": true + }, + "glsl-token-defines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz", + "integrity": "sha1-y4kqqVmTYjFyhHDU90AySJaX+p0=", + "dev": true, + "requires": { + "glsl-tokenizer": "^2.0.0" + } + }, + "glsl-token-depth": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz", + "integrity": "sha1-I8XjDuK9JViEtKKLyFC495HpXYQ=", + "dev": true + }, + "glsl-token-descope": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz", + "integrity": "sha1-D8kKsyYYa4L1l7LnfcniHvzTIHY=", + "dev": true, + "requires": { + "glsl-token-assignments": "^2.0.0", + "glsl-token-depth": "^1.1.0", + "glsl-token-properties": "^1.0.0", + "glsl-token-scope": "^1.1.0" + } + }, + "glsl-token-inject-block": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz", + "integrity": "sha1-4QFfWYDBCRgkraomJfHf3ovQADQ=", + "dev": true + }, + "glsl-token-properties": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz", + "integrity": "sha1-SD3D2Dnw1LXGFx0VkfJJvlPCip4=", + "dev": true + }, + "glsl-token-scope": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz", + "integrity": "sha1-oXKOeN8kRE+cuT/RjvD3VQOmQ7E=", + "dev": true + }, + "glsl-token-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz", + "integrity": "sha1-WUQdL4V958NEnJRWZgIezjWOSOw=", + "dev": true + }, + "glsl-token-whitespace-trim": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz", + "integrity": "sha1-RtHf6Yx1vX1QTAXX0RsbPpzJOxA=", + "dev": true + }, + "glsl-tokenizer": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz", + "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==", + "dev": true, + "requires": { + "through2": "^0.6.3" + } + }, + "glslify": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-7.1.1.tgz", + "integrity": "sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==", + "dev": true, + "requires": { + "bl": "^2.2.1", + "concat-stream": "^1.5.2", + "duplexify": "^3.4.5", + "falafel": "^2.1.0", + "from2": "^2.3.0", + "glsl-resolve": "0.0.1", + "glsl-token-whitespace-trim": "^1.0.0", + "glslify-bundle": "^5.0.0", + "glslify-deps": "^1.2.5", + "minimist": "^1.2.5", + "resolve": "^1.1.5", + "stack-trace": "0.0.9", + "static-eval": "^2.0.5", + "through2": "^2.0.1", + "xtend": "^4.0.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "bl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", + "dev": true, + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "falafel": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.4.tgz", + "integrity": "sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "foreach": "^2.0.5", + "isarray": "^2.0.1", + "object-keys": "^1.0.6" + } + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "glslify-bundle": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz", + "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==", + "dev": true, + "requires": { + "glsl-inject-defines": "^1.0.1", + "glsl-token-defines": "^1.0.0", + "glsl-token-depth": "^1.1.1", + "glsl-token-descope": "^1.0.2", + "glsl-token-scope": "^1.1.1", + "glsl-token-string": "^1.0.1", + "glsl-token-whitespace-trim": "^1.0.0", + "glsl-tokenizer": "^2.0.2", + "murmurhash-js": "^1.0.0", + "shallow-copy": "0.0.1" + } + }, + "glslify-deps": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.1.tgz", + "integrity": "sha512-Ogm179MCazwIRyEqs3g3EOY4Y3XIAa0yl8J5RE9rJC6QH1w8weVOp2RZu0mvnYy/2xIas1w166YR2eZdDkWQxg==", + "dev": true, + "requires": { + "@choojs/findup": "^0.2.0", + "events": "^1.0.2", + "glsl-resolve": "0.0.1", + "glsl-tokenizer": "^2.0.0", + "graceful-fs": "^4.1.2", + "inherits": "^2.0.1", + "map-limit": "0.0.1", + "resolve": "^1.0.0" + }, + "dependencies": { + "@choojs/findup": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz", + "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==", + "dev": true, + "requires": { + "commander": "^2.15.1" + } + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + } + } + }, "google-libphonenumber": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/google-libphonenumber/-/google-libphonenumber-3.2.6.tgz", @@ -8139,6 +10050,51 @@ "unicode-trie": "^0.3.1" } }, + "gray-matter": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-3.1.1.tgz", + "integrity": "sha512-nZ1qjLmayEv0/wt3sHig7I0s3/sJO0dkAaKYQ5YAOApUtYEOonXSFdWvL1khvnZMTvov4UufkqlFsilPnejEXA==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "js-yaml": "^3.10.0", + "kind-of": "^5.0.2", + "strip-bom-string": "^1.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "grid-index": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", + "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==", + "dev": true + }, "growl": { "version": "1.10.3", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", @@ -8251,6 +10207,24 @@ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, + "has-hover": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-hover/-/has-hover-1.0.1.tgz", + "integrity": "sha1-PZdDeusZnGK4rAisvcU9O8UsF/c=", + "dev": true, + "requires": { + "is-browser": "^2.0.1" + } + }, + "has-passive-events": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-passive-events/-/has-passive-events-1.0.0.tgz", + "integrity": "sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==", + "dev": true, + "requires": { + "is-browser": "^2.0.1" + } + }, "has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", @@ -8406,6 +10380,12 @@ "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", "dev": true }, + "hsluv": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/hsluv/-/hsluv-0.0.3.tgz", + "integrity": "sha1-gpEH2vtKn4tSoYCe0C4JHq3mdUw=", + "dev": true + }, "html-comment-regex": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", @@ -8760,6 +10740,17 @@ "minimatch": "^3.0.4" } }, + "image-palette": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/image-palette/-/image-palette-2.1.0.tgz", + "integrity": "sha512-3ImSEWD26+xuQFdP0RWR4WSXadZwvgrFhjGNpMEapTG1tf2XrBFS2dlKK5hNgH4UIaSQlSUFRn1NeA+zULIWbQ==", + "dev": true, + "requires": { + "color-id": "^1.1.0", + "pxls": "^2.0.0", + "quantize": "^1.0.2" + } + }, "immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", @@ -8865,6 +10856,16 @@ "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", "dev": true }, + "incremental-convex-hull": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/incremental-convex-hull/-/incremental-convex-hull-1.0.1.tgz", + "integrity": "sha1-UUKMFMudmmFEv+abKFH7N3M0vh4=", + "dev": true, + "requires": { + "robust-orientation": "^1.1.2", + "simplicial-complex": "^1.0.0" + } + }, "indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", @@ -8989,6 +10990,23 @@ "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", "dev": true }, + "interval-tree-1d": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/interval-tree-1d/-/interval-tree-1d-1.0.3.tgz", + "integrity": "sha1-j9veArayx9verWNry+2OCHENhcE=", + "dev": true, + "requires": { + "binary-search-bounds": "^1.0.0" + }, + "dependencies": { + "binary-search-bounds": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-1.0.0.tgz", + "integrity": "sha1-MjyjF+PypA9CRMclX1OEpbIHu2k=", + "dev": true + } + } + }, "intl": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", @@ -9057,6 +11075,18 @@ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, + "invert-permutation": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-permutation/-/invert-permutation-1.0.0.tgz", + "integrity": "sha1-oKeAQurbNrwXVR54fv0UOa3VSTM=", + "dev": true + }, + "iota-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz", + "integrity": "sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc=", + "dev": true + }, "ip-regex": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", @@ -9083,12 +11113,24 @@ "kind-of": "^3.0.2" } }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", + "dev": true + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-base64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-base64/-/is-base64-0.1.0.tgz", + "integrity": "sha512-WRRyllsGXJM7ZN7gPTCCQ/6wNPTRDwiWdPK66l5sJzcU/oOzcIcRRf0Rux8bkpox/1yjt0F6VJRsQOIG2qz5sg==", + "dev": true + }, "is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", @@ -9098,12 +11140,24 @@ "binary-extensions": "^1.0.0" } }, + "is-blob": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-blob/-/is-blob-2.1.0.tgz", + "integrity": "sha512-SZ/fTft5eUhQM6oF/ZaASFDEdbFVe89Imltn9uZr03wdKMcWNVYSMjQPFtg05QuNkt5l5c135ElvXEQG0rk4tw==", + "dev": true + }, "is-boolean-object": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.0.tgz", "integrity": "sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M=", "dev": true }, + "is-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz", + "integrity": "sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ==", + "dev": true + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", @@ -9190,6 +11244,18 @@ "number-is-nan": "^1.0.0" } }, + "is-firefox": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-firefox/-/is-firefox-1.0.3.tgz", + "integrity": "sha1-KioVZ3g6QX9uFYMjEI84YbCRhWI=", + "dev": true + }, + "is-float-array": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-float-array/-/is-float-array-1.0.0.tgz", + "integrity": "sha512-4ew1Sx6B6kEAl3T3NOM0yB94J3NZnBdNt4paw0e8nY73yHHTeTEhyQ3Lj7EQEnv5LD+GxNTaT4L46jcKjjpLiQ==", + "dev": true + }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", @@ -9215,6 +11281,12 @@ "is-extglob": "^1.0.0" } }, + "is-iexplorer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-iexplorer/-/is-iexplorer-1.0.0.tgz", + "integrity": "sha1-HXK8ZtP+Iur2Fw3ajPEJQySM/HY=", + "dev": true + }, "is-in-browser": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", @@ -9230,6 +11302,18 @@ "lower-case": "^1.1.0" } }, + "is-mobile": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-2.2.2.tgz", + "integrity": "sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "dev": true + }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", @@ -9245,6 +11329,12 @@ "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=", "dev": true }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -9318,6 +11408,12 @@ "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=", "dev": true }, + "is-string-blank": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz", + "integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw==", + "dev": true + }, "is-subset": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", @@ -9333,6 +11429,12 @@ "html-comment-regex": "^1.1.0" } }, + "is-svg-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz", + "integrity": "sha1-d6tZDBKz0gNI5cehPQBAyHeE3aA=", + "dev": true + }, "is-symbol": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", @@ -11405,6 +13507,12 @@ } } }, + "kdbush": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-1.0.1.tgz", + "integrity": "sha1-PL0D6d6tnA9vZszblkUOXOzGQOA=", + "dev": true + }, "keymirror": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/keymirror/-/keymirror-0.1.1.tgz", @@ -11453,6 +13561,12 @@ "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", "dev": true }, + "lerp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/lerp/-/lerp-1.0.3.tgz", + "integrity": "sha1-oYyJaPkXiW3hXM/MKNVaa3Med24=", + "dev": true + }, "leven": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", @@ -12181,6 +14295,93 @@ "object-visit": "^1.0.0" } }, + "mapbox-gl": { + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-0.45.0.tgz", + "integrity": "sha1-r3HMgk8NflHM1cUF6q5BG8CRDM0=", + "dev": true, + "requires": { + "@mapbox/gl-matrix": "^0.0.1", + "@mapbox/jsonlint-lines-primitives": "^2.0.1", + "@mapbox/mapbox-gl-supported": "^1.3.1", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/shelf-pack": "^3.1.0", + "@mapbox/tiny-sdf": "^1.1.0", + "@mapbox/unitbezier": "^0.0.0", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.0.0", + "brfs": "^1.4.4", + "csscolorparser": "~1.0.2", + "earcut": "^2.1.3", + "geojson-rewind": "^0.3.0", + "geojson-vt": "^3.1.0", + "gray-matter": "^3.0.8", + "grid-index": "^1.0.0", + "minimist": "0.0.8", + "pbf": "^3.0.5", + "quickselect": "^1.0.0", + "rw": "^1.3.3", + "shuffle-seed": "^1.1.6", + "sort-object": "^0.3.2", + "supercluster": "^2.3.0", + "through2": "^2.0.3", + "tinyqueue": "^1.1.0", + "vt-pbf": "^3.0.1" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } + } + }, + "marching-simplex-table": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/marching-simplex-table/-/marching-simplex-table-1.0.0.tgz", + "integrity": "sha1-vBYlbg+Pm1WKqbKHL4gy2UM/Uuo=", + "dev": true, + "requires": { + "convex-hull": "^1.0.3" + } + }, + "mat4-decompose": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mat4-decompose/-/mat4-decompose-1.0.4.tgz", + "integrity": "sha1-ZetP451wh496RE60Yk1S9+frL68=", + "dev": true, + "requires": { + "gl-mat4": "^1.0.1", + "gl-vec3": "^1.0.2" + } + }, + "mat4-interpolate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mat4-interpolate/-/mat4-interpolate-1.0.4.tgz", + "integrity": "sha1-Vf/p6zw1KV4sDVqfdyXZBoqJ/3Q=", + "dev": true, + "requires": { + "gl-mat4": "^1.0.1", + "gl-vec3": "^1.0.2", + "mat4-decompose": "^1.0.3", + "mat4-recompose": "^1.0.3", + "quat-slerp": "^1.0.0" + } + }, + "mat4-recompose": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mat4-recompose/-/mat4-recompose-1.0.4.tgz", + "integrity": "sha1-OVPCMP8kc9x3LuAUpSySXPgbDk0=", + "dev": true, + "requires": { + "gl-mat4": "^1.0.1" + } + }, "matchmediaquery": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.2.1.tgz", @@ -12196,12 +14397,38 @@ "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", "dev": true }, + "math-log2": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz", + "integrity": "sha1-+4lBvl9evol55xjmJzsXjlhpRWU=", + "dev": true + }, "math-random": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", "dev": true }, + "matrix-camera-controller": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/matrix-camera-controller/-/matrix-camera-controller-2.1.3.tgz", + "integrity": "sha1-NeUmDMHNVQliunmfLY1OlLGjk3A=", + "dev": true, + "requires": { + "binary-search-bounds": "^1.0.0", + "gl-mat4": "^1.1.2", + "gl-vec3": "^1.0.3", + "mat4-interpolate": "^1.0.3" + }, + "dependencies": { + "binary-search-bounds": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-1.0.0.tgz", + "integrity": "sha1-MjyjF+PypA9CRMclX1OEpbIHu2k=", + "dev": true + } + } + }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -12625,12 +14852,61 @@ "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" }, + "monotone-convex-hull-2d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/monotone-convex-hull-2d/-/monotone-convex-hull-2d-1.0.1.tgz", + "integrity": "sha1-R/Xa6t88Sv03dkuqGqh4ekDu4Iw=", + "dev": true, + "requires": { + "robust-orientation": "^1.1.3" + } + }, "moo": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/moo/-/moo-0.4.3.tgz", "integrity": "sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw==", "dev": true }, + "mouse-change": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/mouse-change/-/mouse-change-1.4.0.tgz", + "integrity": "sha1-wrd+W/o0pDzhRFyBV6Tk3JiVwU8=", + "dev": true, + "requires": { + "mouse-event": "^1.0.0" + } + }, + "mouse-event": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/mouse-event/-/mouse-event-1.0.5.tgz", + "integrity": "sha1-s3ie23EJmX1aky0dAdqhVDpQFzI=", + "dev": true + }, + "mouse-event-offset": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz", + "integrity": "sha1-39hqbiSMa6jK1TuQXVA3ogY+mYQ=", + "dev": true + }, + "mouse-wheel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mouse-wheel/-/mouse-wheel-1.2.0.tgz", + "integrity": "sha1-bSkDseqPtI5h8bU7kDZ3PwQs21w=", + "dev": true, + "requires": { + "right-now": "^1.0.0", + "signum": "^1.0.0", + "to-px": "^1.0.1" + }, + "dependencies": { + "signum": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/signum/-/signum-1.0.0.tgz", + "integrity": "sha1-dKfSvyogtA66FqkrFSEk8dVZ+nc=", + "dev": true + } + } + }, "move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", @@ -12695,6 +14971,21 @@ } } }, + "mumath": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/mumath/-/mumath-3.3.4.tgz", + "integrity": "sha1-SNSg8P2MrU57Mglu6JsWGmPTC78=", + "dev": true, + "requires": { + "almost-equal": "^1.1.0" + } + }, + "murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha1-sGJ44h/Gw3+lMTcysEEry2rhX1E=", + "dev": true + }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", @@ -12777,6 +15068,109 @@ "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", "optional": true }, + "ndarray": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/ndarray/-/ndarray-1.0.19.tgz", + "integrity": "sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==", + "dev": true, + "requires": { + "iota-array": "^1.0.0", + "is-buffer": "^1.0.2" + } + }, + "ndarray-extract-contour": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ndarray-extract-contour/-/ndarray-extract-contour-1.0.1.tgz", + "integrity": "sha1-Cu4ROjozsia5DEiIz4d79HUTBeQ=", + "dev": true, + "requires": { + "typedarray-pool": "^1.0.0" + } + }, + "ndarray-fill": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ndarray-fill/-/ndarray-fill-1.0.2.tgz", + "integrity": "sha1-owpg9xiODJWC/N1YiWrNy1IqHtY=", + "dev": true, + "requires": { + "cwise": "^1.0.10" + } + }, + "ndarray-gradient": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ndarray-gradient/-/ndarray-gradient-1.0.0.tgz", + "integrity": "sha1-t0kaUVxqZJ8ZpiMk//byf8jCU5M=", + "dev": true, + "requires": { + "cwise-compiler": "^1.0.0", + "dup": "^1.0.0" + } + }, + "ndarray-homography": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ndarray-homography/-/ndarray-homography-1.0.0.tgz", + "integrity": "sha1-w1UW6oa8KGK06ASiNqJwcwn+KWs=", + "dev": true, + "requires": { + "gl-matrix-invert": "^1.0.0", + "ndarray-warp": "^1.0.0" + } + }, + "ndarray-linear-interpolate": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ndarray-linear-interpolate/-/ndarray-linear-interpolate-1.0.0.tgz", + "integrity": "sha1-eLySuFuavBW25n7mWCj54hN65ys=", + "dev": true + }, + "ndarray-ops": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ndarray-ops/-/ndarray-ops-1.2.2.tgz", + "integrity": "sha1-WeiNLDKn7ryxvGkPrhQVeVV6YU4=", + "dev": true, + "requires": { + "cwise-compiler": "^1.0.0" + } + }, + "ndarray-pack": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ndarray-pack/-/ndarray-pack-1.2.1.tgz", + "integrity": "sha1-jK6+qqJNXs9w/4YCBjeXfajuWFo=", + "dev": true, + "requires": { + "cwise-compiler": "^1.1.2", + "ndarray": "^1.0.13" + } + }, + "ndarray-scratch": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ndarray-scratch/-/ndarray-scratch-1.2.0.tgz", + "integrity": "sha1-YwRjbWLrqT20cnrBPGkzQdulDgE=", + "dev": true, + "requires": { + "ndarray": "^1.0.14", + "ndarray-ops": "^1.2.1", + "typedarray-pool": "^1.0.2" + } + }, + "ndarray-sort": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ndarray-sort/-/ndarray-sort-1.0.1.tgz", + "integrity": "sha1-/qBbTLg0x/TgIWo1TzynUTAN/Wo=", + "dev": true, + "requires": { + "typedarray-pool": "^1.0.0" + } + }, + "ndarray-warp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ndarray-warp/-/ndarray-warp-1.0.1.tgz", + "integrity": "sha1-qKElqqu6C+v5O9bKg+ar1oIqNOA=", + "dev": true, + "requires": { + "cwise": "^1.0.4", + "ndarray-linear-interpolate": "^1.0.0" + } + }, "ndjson": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-1.5.0.tgz", @@ -13021,6 +15415,15 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, + "nextafter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nextafter/-/nextafter-1.0.0.tgz", + "integrity": "sha1-t9d7U1MQ4+CX5gJauwqQNHfsGjo=", + "dev": true, + "requires": { + "double-bits": "^1.1.0" + } + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -13414,6 +15817,12 @@ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, + "normalize-svg-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-0.1.0.tgz", + "integrity": "sha1-RWNg5g7Odfvve11+FgSA5//Rb+U=", + "dev": true + }, "normalize-url": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", @@ -13444,6 +15853,12 @@ } } }, + "normals": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/normals/-/normals-1.1.0.tgz", + "integrity": "sha1-MltZXtNK/kZ6bFWhT9kIV4f/WcA=", + "dev": true + }, "npm-bundled": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", @@ -13508,11 +15923,26 @@ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, + "number-is-integer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-integer/-/number-is-integer-1.0.1.tgz", + "integrity": "sha1-5ZvKFy/+0nMY55x862y3LAlbIVI=", + "dev": true, + "requires": { + "is-finite": "^1.0.1" + } + }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, + "numeric": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/numeric/-/numeric-1.2.6.tgz", + "integrity": "sha1-dlsCvvl5iPz4gNTrPza4D6MTNao=", + "dev": true + }, "nwsapi": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz", @@ -13968,6 +16398,12 @@ "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", "dev": true }, + "optical-properties": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/optical-properties/-/optical-properties-1.0.0.tgz", + "integrity": "sha512-XnBQYbIIzDVr7U3L7d3xyAEqp1W+HTkqmw/G4L/Ae/+dq57bT1jqW2uDwV0wCUzO8gsTDIZhGQsGrMb17VSkEA==", + "dev": true + }, "optionator": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", @@ -13982,6 +16418,16 @@ "wordwrap": "~1.0.0" } }, + "orbit-camera-controller": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/orbit-camera-controller/-/orbit-camera-controller-4.0.0.tgz", + "integrity": "sha1-bis28OeHhmPDMPUNqbfOaGwncAU=", + "dev": true, + "requires": { + "filtered-vector": "^1.2.1", + "gl-mat4": "^1.0.3" + } + }, "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -14096,6 +16542,15 @@ "release-zalgo": "^1.0.0" } }, + "pad-left": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-1.0.2.tgz", + "integrity": "sha1-GeVzXqmDlaJs7carkm6tEPMQDUw=", + "dev": true, + "requires": { + "repeat-string": "^1.3.0" + } + }, "pako": { "version": "0.2.8", "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.8.tgz", @@ -14137,6 +16592,12 @@ "callsites": "^3.0.0" } }, + "parenthesis": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.7.tgz", + "integrity": "sha512-iMtu+HCbLXVrpf6Ys/4YKhcFxbux3xK4ZVB9r+a2kMSqeeQWQoDNYlXIsOjwlT2ldYXZ3k5PVeBnYn7fbAo/Bg==", + "dev": true + }, "parse-asn1": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", @@ -14198,6 +16659,27 @@ "error-ex": "^1.2.0" } }, + "parse-rect": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parse-rect/-/parse-rect-1.2.0.tgz", + "integrity": "sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==", + "dev": true, + "requires": { + "pick-by-alias": "^1.2.0" + } + }, + "parse-svg-path": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", + "integrity": "sha1-en7A0esG+lMlx9PgCbhZoJtdSes=", + "dev": true + }, + "parse-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", + "integrity": "sha1-fhu21b7zh0wo45JSaiVBFwKR7s8=", + "dev": true + }, "parse5": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", @@ -14302,6 +16784,16 @@ } } }, + "pbf": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", + "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", + "dev": true, + "requires": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + } + }, "pbkdf2": { "version": "3.0.17", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", @@ -14326,6 +16818,31 @@ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, + "permutation-parity": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/permutation-parity/-/permutation-parity-1.0.0.tgz", + "integrity": "sha1-AXTVH8pwSxG5pLFSsj1Tf9xrXvQ=", + "dev": true, + "requires": { + "typedarray-pool": "^1.0.0" + } + }, + "permutation-rank": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/permutation-rank/-/permutation-rank-1.0.0.tgz", + "integrity": "sha1-n9mLvOzwj79ZlLXq3JSmLmeUg7U=", + "dev": true, + "requires": { + "invert-permutation": "^1.0.0", + "typedarray-pool": "^1.0.0" + } + }, + "pick-by-alias": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz", + "integrity": "sha1-X3yysfIabh6ISgyHhVqko3NhEHs=", + "dev": true + }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", @@ -14370,6 +16887,107 @@ "find-up": "^2.1.0" } }, + "planar-dual": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/planar-dual/-/planar-dual-1.0.2.tgz", + "integrity": "sha1-tqQjVSOxsMt55fkm+OozXdmC1WM=", + "dev": true, + "requires": { + "compare-angle": "^1.0.0", + "dup": "^1.0.0" + } + }, + "planar-graph-to-polyline": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/planar-graph-to-polyline/-/planar-graph-to-polyline-1.0.5.tgz", + "integrity": "sha1-iCuGBRmbqIv9RkyVUzA1VsUrmIo=", + "dev": true, + "requires": { + "edges-to-adjacency-list": "^1.0.0", + "planar-dual": "^1.0.0", + "point-in-big-polygon": "^2.0.0", + "robust-orientation": "^1.0.1", + "robust-sum": "^1.0.0", + "two-product": "^1.0.0", + "uniq": "^1.0.0" + } + }, + "plotly.js": { + "version": "1.47.4", + "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-1.47.4.tgz", + "integrity": "sha512-dGawdp62+Nh5/ndHF5WGmq0+DfrnSl/dBcwotsj4bx4FcfTX51zaZsYI9itIp+ShjCkB3j681RMnkh4Hok/Y6g==", + "dev": true, + "requires": { + "@plotly/d3-sankey": "0.7.2", + "alpha-shape": "^1.0.0", + "array-range": "^1.0.1", + "canvas-fit": "^1.5.0", + "color-normalize": "^1.3.0", + "convex-hull": "^1.0.3", + "country-regex": "^1.1.0", + "d3": "^3.5.12", + "d3-force": "^1.0.6", + "d3-hierarchy": "^1.1.8", + "d3-interpolate": "1", + "d3-sankey-circular": "0.33.0", + "delaunay-triangulate": "^1.1.6", + "es6-promise": "^3.0.2", + "fast-isnumeric": "^1.1.2", + "font-atlas-sdf": "^1.3.3", + "gl-cone3d": "^1.3.1", + "gl-contour2d": "^1.1.5", + "gl-error3d": "^1.0.15", + "gl-heatmap2d": "^1.0.5", + "gl-line3d": "^1.1.11", + "gl-mat4": "^1.2.0", + "gl-mesh3d": "^2.1.1", + "gl-plot2d": "^1.4.2", + "gl-plot3d": "^2.2.1", + "gl-pointcloud2d": "^1.0.2", + "gl-scatter3d": "^1.2.1", + "gl-select-box": "^1.0.3", + "gl-spikes2d": "^1.0.2", + "gl-streamtube3d": "^1.2.1", + "gl-surface3d": "^1.4.6", + "gl-text": "^1.1.6", + "glslify": "^7.0.0", + "has-hover": "^1.0.1", + "has-passive-events": "^1.0.0", + "mapbox-gl": "0.45.0", + "matrix-camera-controller": "^2.1.3", + "mouse-change": "^1.4.0", + "mouse-event-offset": "^3.0.2", + "mouse-wheel": "^1.0.2", + "ndarray": "^1.0.18", + "ndarray-fill": "^1.0.2", + "ndarray-homography": "^1.0.0", + "point-cluster": "^3.1.4", + "polybooljs": "^1.2.0", + "regl": "^1.3.11", + "regl-error2d": "^2.0.7", + "regl-line2d": "3.0.13", + "regl-scatter2d": "^3.1.4", + "regl-splom": "^1.0.6", + "right-now": "^1.0.0", + "robust-orientation": "^1.1.3", + "sane-topojson": "^2.0.0", + "strongly-connected-components": "^1.0.1", + "superscript-text": "^1.0.0", + "svg-path-sdf": "^1.1.3", + "tinycolor2": "^1.3.0", + "topojson-client": "^2.1.0", + "webgl-context": "^2.2.0", + "world-calendars": "^1.0.3" + }, + "dependencies": { + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", + "dev": true + } + } + }, "pn": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", @@ -14387,6 +17005,61 @@ "node-gettext": "1.0.1" } }, + "point-cluster": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/point-cluster/-/point-cluster-3.1.8.tgz", + "integrity": "sha512-7klIr45dpMeZuqjIK9+qBg3m2IhyZJNJkdqjJFw0Olq75FM8ojrTMjClVUrMjNYRVqtwztxCHH71Fyjhg+YwyQ==", + "dev": true, + "requires": { + "array-bounds": "^1.0.1", + "array-normalize": "^1.1.4", + "binary-search-bounds": "^2.0.4", + "bubleify": "^1.1.0", + "clamp": "^1.0.1", + "defined": "^1.0.0", + "dtype": "^2.0.0", + "flatten-vertex-data": "^1.0.2", + "is-obj": "^1.0.1", + "math-log2": "^1.0.1", + "parse-rect": "^1.2.0", + "pick-by-alias": "^1.2.0" + } + }, + "point-in-big-polygon": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/point-in-big-polygon/-/point-in-big-polygon-2.0.0.tgz", + "integrity": "sha1-ObYT6mzxfWtD4Yj3fzTETGszulU=", + "dev": true, + "requires": { + "binary-search-bounds": "^1.0.0", + "interval-tree-1d": "^1.0.1", + "robust-orientation": "^1.1.3", + "slab-decomposition": "^1.0.1" + }, + "dependencies": { + "binary-search-bounds": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-1.0.0.tgz", + "integrity": "sha1-MjyjF+PypA9CRMclX1OEpbIHu2k=", + "dev": true + } + } + }, + "polybooljs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/polybooljs/-/polybooljs-1.2.0.tgz", + "integrity": "sha1-tDkMLgedTCYtOyUExiiNlbp6R1g=", + "dev": true + }, + "polytope-closest-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/polytope-closest-point/-/polytope-closest-point-1.0.0.tgz", + "integrity": "sha1-5uV/QIGrXox3i4Ee8G4sSK4zjD8=", + "dev": true, + "requires": { + "numeric": "^1.2.6" + } + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", @@ -15400,6 +18073,12 @@ "reflect.ownkeys": "^0.2.0" } }, + "protocol-buffers-schema": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.4.0.tgz", + "integrity": "sha512-G/2kcamPF2S49W5yaMGdIpkG6+5wZF0fzBteLKgEHjbNzqjZQ85aAs1iJGto31EJaSTkNvHs5IXuHSaTLWBAiA==", + "dev": true + }, "proxy-addr": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", @@ -15474,6 +18153,28 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, + "pxls": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/pxls/-/pxls-2.3.2.tgz", + "integrity": "sha512-pQkwgbLqWPcuES5iEmGa10OlCf5xG0blkIF3dg7PpRZShbTYcvAdfFfGL03SMrkaSUaa/V0UpN9HWg40O2AIIw==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "compute-dims": "^1.1.0", + "flip-pixels": "^1.0.2", + "is-browser": "^2.1.0", + "is-buffer": "^2.0.3", + "to-uint8": "^1.4.1" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true + } + } + }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -15485,6 +18186,21 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" }, + "quantize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quantize/-/quantize-1.0.2.tgz", + "integrity": "sha1-0lrCAKd7bXD0ASfKFxoQ4zyFRt4=", + "dev": true + }, + "quat-slerp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/quat-slerp/-/quat-slerp-1.0.1.tgz", + "integrity": "sha1-K6oVzjprvcMkHZcusXKDE57Wnyk=", + "dev": true, + "requires": { + "gl-quat": "^1.0.0" + } + }, "query-string": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", @@ -15508,6 +18224,12 @@ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, + "quickselect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-1.1.1.tgz", + "integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==", + "dev": true + }, "quote-stream": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", @@ -15611,6 +18333,15 @@ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, + "rat-vec": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/rat-vec/-/rat-vec-1.1.1.tgz", + "integrity": "sha1-Dd4rZrezS7G80qI4BerIBth/0X8=", + "dev": true, + "requires": { + "big-rat": "^1.0.3" + } + }, "raw-body": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", @@ -15825,6 +18556,28 @@ "integrity": "sha512-p84kBqGaMoa7VYT0vZ/aOYRfJB+gw34yjpda1Z5KeLflg70HipZOT+MXQenEhdkPAABuE2Astq4zEPdMqUQxcg==", "dev": true }, + "react-plotly.js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/react-plotly.js/-/react-plotly.js-2.4.0.tgz", + "integrity": "sha512-BCkxMe8yWqu3nP/hw9A1KCIuoL67WV5/k68SL9yhEkF6UG+pAuIev9Q3cMKtNkQJZhsYFpOmlqrpPjIdUFACOQ==", + "dev": true, + "requires": { + "prop-types": "^15.7.2" + }, + "dependencies": { + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + } + } + }, "react-popover": { "version": "0.5.10", "resolved": "https://registry.npmjs.org/react-popover/-/react-popover-0.5.10.tgz", @@ -16507,6 +19260,23 @@ "strip-indent": "^1.0.1" } }, + "redeyed": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-0.4.4.tgz", + "integrity": "sha1-N+mQpvKyGyoRwuakj9QTVpjLqX8=", + "dev": true, + "requires": { + "esprima": "~1.0.4" + }, + "dependencies": { + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "dev": true + } + } + }, "reduce-css-calc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", @@ -16535,6 +19305,17 @@ "balanced-match": "^1.0.0" } }, + "reduce-simplicial-complex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/reduce-simplicial-complex/-/reduce-simplicial-complex-1.0.0.tgz", + "integrity": "sha1-dNaWovg196bc2SBl/YxRgfLt+Lw=", + "dev": true, + "requires": { + "cell-orientation": "^1.0.1", + "compare-cell": "^1.0.0", + "compare-oriented-cell": "^1.0.1" + } + }, "redux": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/redux/-/redux-3.5.2.tgz", @@ -16599,6 +19380,15 @@ "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==", "dev": true }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", @@ -16635,6 +19425,115 @@ "safe-regex": "^1.1.0" } }, + "regex-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regex-regex/-/regex-regex-1.0.0.tgz", + "integrity": "sha1-kEih6uuHD01IDavHb8Qs3MC8OnI=", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + }, + "object.assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz", + "integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.0", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + } + } + }, "regexpp": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", @@ -16675,6 +19574,87 @@ } } }, + "regl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/regl/-/regl-1.7.0.tgz", + "integrity": "sha512-bEAtp/qrtKucxXSJkD4ebopFZYP0q1+3Vb2WECWv/T8yQEgKxDxJ7ztO285tAMaYZVR6mM1GgI6CCn8FROtL1w==", + "dev": true + }, + "regl-error2d": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/regl-error2d/-/regl-error2d-2.0.11.tgz", + "integrity": "sha512-Bv4DbLtDU69GXPSm+NvlVWzT82oQ8M2FK+SxzkyaYMlA9izZRdLmDADqBSyJTnPWiRT4a/2KA+MP+WI0N0yt7Q==", + "dev": true, + "requires": { + "array-bounds": "^1.0.1", + "color-normalize": "^1.5.0", + "flatten-vertex-data": "^1.0.2", + "object-assign": "^4.1.1", + "pick-by-alias": "^1.2.0", + "to-float32": "^1.0.1", + "update-diff": "^1.1.0" + } + }, + "regl-line2d": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/regl-line2d/-/regl-line2d-3.0.13.tgz", + "integrity": "sha512-bTsuvTw4No25kUKGiXwOm0sLJT9kZ7vAkZOZYyXLxKCMRYIz1TS0j7DfqtC5ammzni8AdSahuTT0x52RU4Izuw==", + "dev": true, + "requires": { + "array-bounds": "^1.0.0", + "array-normalize": "^1.1.3", + "bubleify": "^1.0.0", + "color-normalize": "^1.0.0", + "earcut": "^2.1.1", + "es6-weak-map": "^2.0.2", + "flatten-vertex-data": "^1.0.0", + "glslify": "^7.0.0", + "object-assign": "^4.1.1", + "parse-rect": "^1.2.0", + "pick-by-alias": "^1.1.0", + "to-float32": "^1.0.0" + } + }, + "regl-scatter2d": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.2.1.tgz", + "integrity": "sha512-qxUCK5kXuoVZin2gPLXkgkBfRr3XLobVgEfn5N0fiprsb/ncTCtSNVBqP0EJgNb115R+FXte9LKA9YrFx7uBnA==", + "dev": true, + "requires": { + "@plotly/point-cluster": "^3.1.9", + "array-range": "^1.0.1", + "array-rearrange": "^2.2.2", + "clamp": "^1.0.1", + "color-id": "^1.1.0", + "color-normalize": "^1.5.0", + "color-rgba": "^2.1.1", + "flatten-vertex-data": "^1.0.2", + "glslify": "^7.0.0", + "image-palette": "^2.1.0", + "is-iexplorer": "^1.0.0", + "object-assign": "^4.1.1", + "parse-rect": "^1.2.0", + "pick-by-alias": "^1.2.0", + "to-float32": "^1.0.1", + "update-diff": "^1.1.0" + } + }, + "regl-splom": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.12.tgz", + "integrity": "sha512-LliMmAQ6wJFuPiLxZgYOFOzjhWcrIWPbS3Vf763Twl6R8eKpuUyRHZ54q+hxWGYwICHoPCBKMs7pVAJi8Iv7/w==", + "dev": true, + "requires": { + "array-bounds": "^1.0.1", + "array-range": "^1.0.1", + "color-alpha": "^1.0.4", + "flatten-vertex-data": "^1.0.2", + "parse-rect": "^1.2.0", + "pick-by-alias": "^1.2.0", + "raf": "^3.4.1", + "regl-scatter2d": "^3.1.9" + } + }, "relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", @@ -16848,6 +19828,15 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, + "resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "dev": true, + "requires": { + "protocol-buffers-schema": "^3.3.1" + } + }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -16864,6 +19853,15 @@ "signal-exit": "^3.0.2" } }, + "resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "dev": true, + "requires": { + "through": "~2.3.4" + } + }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", @@ -16885,6 +19883,12 @@ "align-text": "^0.1.1" } }, + "right-now": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz", + "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg=", + "dev": true + }, "rimraf": { "version": "2.4.5", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", @@ -16917,6 +19921,108 @@ "inherits": "^2.0.1" } }, + "robust-compress": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/robust-compress/-/robust-compress-1.0.0.tgz", + "integrity": "sha1-TPYsSzGNgwhRYBK7jBF1Lzkymxs=", + "dev": true + }, + "robust-determinant": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/robust-determinant/-/robust-determinant-1.1.0.tgz", + "integrity": "sha1-jsrnm3nKqz509t6+IjflORon6cc=", + "dev": true, + "requires": { + "robust-compress": "^1.0.0", + "robust-scale": "^1.0.0", + "robust-sum": "^1.0.0", + "two-product": "^1.0.0" + } + }, + "robust-dot-product": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/robust-dot-product/-/robust-dot-product-1.0.0.tgz", + "integrity": "sha1-yboBeL0sMEv9cl9Y6Inx2UYARVM=", + "dev": true, + "requires": { + "robust-sum": "^1.0.0", + "two-product": "^1.0.0" + } + }, + "robust-in-sphere": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/robust-in-sphere/-/robust-in-sphere-1.1.3.tgz", + "integrity": "sha1-HFiD0WpOkjkpR27zSBmFe/Kpz3U=", + "dev": true, + "requires": { + "robust-scale": "^1.0.0", + "robust-subtract": "^1.0.0", + "robust-sum": "^1.0.0", + "two-product": "^1.0.0" + } + }, + "robust-linear-solve": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/robust-linear-solve/-/robust-linear-solve-1.0.0.tgz", + "integrity": "sha1-DNasUEBpGm8qo81jEdcokFyjofE=", + "dev": true, + "requires": { + "robust-determinant": "^1.1.0" + } + }, + "robust-orientation": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/robust-orientation/-/robust-orientation-1.1.3.tgz", + "integrity": "sha1-2v9bANO+TmByLw6cAVbvln8cIEk=", + "dev": true, + "requires": { + "robust-scale": "^1.0.2", + "robust-subtract": "^1.0.0", + "robust-sum": "^1.0.0", + "two-product": "^1.0.2" + } + }, + "robust-product": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/robust-product/-/robust-product-1.0.0.tgz", + "integrity": "sha1-aFJQAHzbunzx3nW/9tKScBEJir4=", + "dev": true, + "requires": { + "robust-scale": "^1.0.0", + "robust-sum": "^1.0.0" + } + }, + "robust-scale": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/robust-scale/-/robust-scale-1.0.2.tgz", + "integrity": "sha1-d1Ey7QlULQKOWLLMecBikLz3jDI=", + "dev": true, + "requires": { + "two-product": "^1.0.2", + "two-sum": "^1.0.0" + } + }, + "robust-segment-intersect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/robust-segment-intersect/-/robust-segment-intersect-1.0.1.tgz", + "integrity": "sha1-MlK2oPwboUreaRXMvgnLzpqrHBw=", + "dev": true, + "requires": { + "robust-orientation": "^1.1.3" + } + }, + "robust-subtract": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/robust-subtract/-/robust-subtract-1.0.0.tgz", + "integrity": "sha1-4LFk4e2LpOOl3aRaEgODSNvtPpo=", + "dev": true + }, + "robust-sum": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/robust-sum/-/robust-sum-1.0.0.tgz", + "integrity": "sha1-FmRuUlKStNJdgnV6KGlV4Lv6U9k=", + "dev": true + }, "rst-selector-parser": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", @@ -16957,6 +20063,12 @@ "aproba": "^1.1.1" } }, + "rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=", + "dev": true + }, "rxjs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", @@ -17325,6 +20437,12 @@ } } }, + "sane-topojson": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sane-topojson/-/sane-topojson-2.0.0.tgz", + "integrity": "sha1-QOJXNqKMTM6qojP0W7hjc6J4W4Q=", + "dev": true + }, "sass-graph": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", @@ -18516,6 +21634,12 @@ } } }, + "seedrandom": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.4.tgz", + "integrity": "sha512-9A+PDmgm+2du77B5i0Ip2cxOqqHjgNxnBgglxLcX78A2D6c2rTo61z4jnVABpF4cKeDMDG+cmXXvdnqse2VqMA==", + "dev": true + }, "selenium-webdriver": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", @@ -18720,6 +21844,25 @@ "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" }, + "sharkdown": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/sharkdown/-/sharkdown-0.1.1.tgz", + "integrity": "sha512-exwooSpmo5s45lrexgz6Q0rFQM574wYIX3iDZ7RLLqOb7IAoQZu9nxlZODU972g19sR69OIpKP2cpHTzU+PHIg==", + "dev": true, + "requires": { + "cardinal": "~0.4.2", + "minimist": "0.0.5", + "split": "~0.2.10" + }, + "dependencies": { + "minimist": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.5.tgz", + "integrity": "sha1-16oye87PUY+RBqxrjwA/o7zqhWY=", + "dev": true + } + } + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -18795,17 +21938,117 @@ "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", "dev": true }, + "shuffle-seed": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/shuffle-seed/-/shuffle-seed-1.1.6.tgz", + "integrity": "sha1-UzwSaDurO0+j6HUfxOViFGdEJgs=", + "dev": true, + "requires": { + "seedrandom": "^2.4.2" + } + }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, + "signum": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/signum/-/signum-0.0.0.tgz", + "integrity": "sha1-q1UbEAM1EHCnBHg/GgnF52kfnPY=", + "dev": true + }, + "simplicial-complex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simplicial-complex/-/simplicial-complex-1.0.0.tgz", + "integrity": "sha1-bDOk7Wn81Nkbe8rdOzC2NoPq4kE=", + "dev": true, + "requires": { + "bit-twiddle": "^1.0.0", + "union-find": "^1.0.0" + } + }, + "simplicial-complex-boundary": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simplicial-complex-boundary/-/simplicial-complex-boundary-1.0.1.tgz", + "integrity": "sha1-csn/HiTeqjdMm7L6DL8MCB6++BU=", + "dev": true, + "requires": { + "boundary-cells": "^2.0.0", + "reduce-simplicial-complex": "^1.0.0" + } + }, + "simplicial-complex-contour": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/simplicial-complex-contour/-/simplicial-complex-contour-1.0.2.tgz", + "integrity": "sha1-iQqsrChDZTQBEFRc8mKaJuBL+dE=", + "dev": true, + "requires": { + "marching-simplex-table": "^1.0.0", + "ndarray": "^1.0.15", + "ndarray-sort": "^1.0.0", + "typedarray-pool": "^1.1.0" + } + }, + "simplify-planar-graph": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/simplify-planar-graph/-/simplify-planar-graph-2.0.1.tgz", + "integrity": "sha1-vIWJNyXzLo+oriVoE5hEbSy892Y=", + "dev": true, + "requires": { + "robust-orientation": "^1.0.1", + "simplicial-complex": "^0.3.3" + }, + "dependencies": { + "bit-twiddle": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-0.0.2.tgz", + "integrity": "sha1-wurruVKjuUrMFASX4c3NLxoz9Y4=", + "dev": true + }, + "simplicial-complex": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/simplicial-complex/-/simplicial-complex-0.3.3.tgz", + "integrity": "sha1-TDDK1X+eRXKd2PMGyHU1efRr6Z4=", + "dev": true, + "requires": { + "bit-twiddle": "~0.0.1", + "union-find": "~0.0.3" + } + }, + "union-find": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/union-find/-/union-find-0.0.4.tgz", + "integrity": "sha1-uFSzMBYZva0USwAUx4+W6sDS8PY=", + "dev": true + } + } + }, "sisteransi": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-0.1.1.tgz", "integrity": "sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g==", "dev": true }, + "slab-decomposition": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/slab-decomposition/-/slab-decomposition-1.0.2.tgz", + "integrity": "sha1-He1WdU1AixBznxRRA9/GGAf2UTQ=", + "dev": true, + "requires": { + "binary-search-bounds": "^1.0.0", + "functional-red-black-tree": "^1.0.0", + "robust-orientation": "^1.1.3" + }, + "dependencies": { + "binary-search-bounds": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-1.0.0.tgz", + "integrity": "sha1-MjyjF+PypA9CRMclX1OEpbIHu2k=", + "dev": true + } + } + }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", @@ -18944,6 +22187,18 @@ "kind-of": "^3.2.0" } }, + "sort-asc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.1.0.tgz", + "integrity": "sha1-q3md9h/HPqCVbHnEtTHtHp53J+k=", + "dev": true + }, + "sort-desc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.1.1.tgz", + "integrity": "sha1-GYuMDN6wlcRjNBhh45JdTuNZqe4=", + "dev": true + }, "sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", @@ -18953,6 +22208,16 @@ "is-plain-obj": "^1.0.0" } }, + "sort-object": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-0.3.2.tgz", + "integrity": "sha1-mODRme3kDgfGGoRAPGHWw7KQ+eI=", + "dev": true, + "requires": { + "sort-asc": "^0.1.0", + "sort-desc": "^0.1.1" + } + }, "source-list-map": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", @@ -19006,6 +22271,12 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, "spawn-wrap": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz", @@ -19077,6 +22348,25 @@ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, + "split": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/split/-/split-0.2.10.tgz", + "integrity": "sha1-Zwl8YB1pfOE2j0GPBs0gHPBSGlc=", + "dev": true, + "requires": { + "through": "2" + } + }, + "split-polygon": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/split-polygon/-/split-polygon-1.0.0.tgz", + "integrity": "sha1-DqzIoTanaxKj2VJW6n2kXbDC0kc=", + "dev": true, + "requires": { + "robust-dot-product": "^1.0.0", + "robust-sum": "^1.0.0" + } + }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -19168,6 +22458,12 @@ "safe-buffer": "^5.1.1" } }, + "stack-trace": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", + "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=", + "dev": true + }, "stack-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", @@ -19456,6 +22752,33 @@ } } }, + "string-split-by": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz", + "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==", + "dev": true, + "requires": { + "parenthesis": "^3.1.5" + } + }, + "string-to-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-to-arraybuffer/-/string-to-arraybuffer-1.0.2.tgz", + "integrity": "sha512-DaGZidzi93dwjQen5I2osxR9ERS/R7B1PFyufNMnzhj+fmlDQAc1DSDIJVJhgI8Oq221efIMbABUBdPHDRt43Q==", + "dev": true, + "requires": { + "atob-lite": "^2.0.0", + "is-base64": "^0.1.0" + }, + "dependencies": { + "atob-lite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", + "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=", + "dev": true + } + } + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -19490,6 +22813,170 @@ "function-bind": "^1.0.2" } }, + "string.prototype.trimend": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", + "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + }, + "object.assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz", + "integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.0", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + } + } + }, + "string.prototype.trimstart": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", + "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + }, + "object.assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz", + "integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.0", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + } + } + }, "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", @@ -19512,6 +22999,12 @@ "is-utf8": "^0.2.0" } }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", + "dev": true + }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", @@ -19533,6 +23026,12 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, + "strongly-connected-components": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strongly-connected-components/-/strongly-connected-components-1.0.1.tgz", + "integrity": "sha1-CSDitN9nyOrulsa2I0/inoc9upk=", + "dev": true + }, "style-loader": { "version": "0.12.3", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.12.3.tgz", @@ -19568,6 +23067,21 @@ } } }, + "supercluster": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-2.3.0.tgz", + "integrity": "sha1-h6tWCBu+qaHXJN9TUe6ejDry9Is=", + "dev": true, + "requires": { + "kdbush": "^1.0.1" + } + }, + "superscript-text": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/superscript-text/-/superscript-text-1.0.0.tgz", + "integrity": "sha1-58snUlZzYN9QvrBhDOjfPXHY39g=", + "dev": true + }, "supports-color": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", @@ -19577,6 +23091,59 @@ "has-flag": "^1.0.0" } }, + "surface-nets": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/surface-nets/-/surface-nets-1.0.2.tgz", + "integrity": "sha1-5DPIy7qUpydMb0yZVStGG/H8eks=", + "dev": true, + "requires": { + "ndarray-extract-contour": "^1.0.0", + "triangulate-hypercube": "^1.0.0", + "zero-crossings": "^1.0.0" + } + }, + "svg-arc-to-cubic-bezier": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", + "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==", + "dev": true + }, + "svg-path-bounds": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/svg-path-bounds/-/svg-path-bounds-1.0.1.tgz", + "integrity": "sha1-v0WLeDcmv1NDG0Yz8nkvYHSNn3Q=", + "dev": true, + "requires": { + "abs-svg-path": "^0.1.1", + "is-svg-path": "^1.0.1", + "normalize-svg-path": "^1.0.0", + "parse-svg-path": "^0.1.2" + }, + "dependencies": { + "normalize-svg-path": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", + "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", + "dev": true, + "requires": { + "svg-arc-to-cubic-bezier": "^3.0.0" + } + } + } + }, + "svg-path-sdf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/svg-path-sdf/-/svg-path-sdf-1.1.3.tgz", + "integrity": "sha512-vJJjVq/R5lSr2KLfVXVAStktfcfa1pNFjFOgyJnzZFXlO/fDZ5DmM8FpnSKKzLPfEYTVeXuVBTHF296TpxuJVg==", + "dev": true, + "requires": { + "bitmap-sdf": "^1.0.0", + "draw-svg-path": "^1.0.0", + "is-svg-path": "^1.0.1", + "parse-svg-path": "^0.1.2", + "svg-path-bounds": "^1.0.1" + } + }, "svgo": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", @@ -21140,6 +24707,171 @@ "integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==", "dev": true }, + "tape": { + "version": "4.13.3", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.3.tgz", + "integrity": "sha512-0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw==", + "dev": true, + "requires": { + "deep-equal": "~1.1.1", + "defined": "~1.0.0", + "dotignore": "~0.1.2", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.6", + "has": "~1.0.3", + "inherits": "~2.0.4", + "is-regex": "~1.0.5", + "minimist": "~1.2.5", + "object-inspect": "~1.7.0", + "resolve": "~1.17.0", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.2.1", + "through": "~2.3.8" + }, + "dependencies": { + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "dependencies": { + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "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" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, + "object.assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz", + "integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.0", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "string.prototype.trim": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.2.tgz", + "integrity": "sha512-b5yrbl3BXIjHau9Prk7U0RRYcUYdN4wGSVaqoBQS50CCE3KBuYU0TYRNPFCP7aVoNMX87HKThdMRVIP3giclKg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.0" + } + } + } + }, "tar": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", @@ -21328,6 +25060,15 @@ } } }, + "text-cache": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/text-cache/-/text-cache-4.2.2.tgz", + "integrity": "sha512-zky+UDYiX0a/aPw/YTBD+EzKMlCTu1chFuCMZeAkgoRiceySdROu1V2kJXhCbtEdBhiOviYnAdGiSYl58HW0ZQ==", + "dev": true, + "requires": { + "vectorize-text": "^3.2.1" + } + }, "text-encoding": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", @@ -21392,12 +25133,30 @@ "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", "dev": true }, + "tiny-sdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tiny-sdf/-/tiny-sdf-1.0.2.tgz", + "integrity": "sha1-KOdphcRMTlhMS2fY7N2bM6HKwow=", + "dev": true + }, "tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", "dev": true }, + "tinycolor2": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", + "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==", + "dev": true + }, + "tinyqueue": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-1.2.3.tgz", + "integrity": "sha512-Qz9RgWuO9l8lT+Y9xvbzhPT2efIUIFd69N7eF7tJ9lnQl0iLj1M7peK7IoUGZL9DJHw9XftqLreccfxcQgYLxA==", + "dev": true + }, "title-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", @@ -21423,6 +25182,17 @@ "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", "dev": true }, + "to-array-buffer": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/to-array-buffer/-/to-array-buffer-3.2.0.tgz", + "integrity": "sha512-zN33mwi0gpL+7xW1ITLfJ48CEj6ZQW0ZAP0MU+2W3kEY0PAIncyuxmD4OqkUVhPAbTP7amq9j/iwvZKYS+lzSQ==", + "dev": true, + "requires": { + "flatten-vertex-data": "^1.0.2", + "is-blob": "^2.0.1", + "string-to-arraybuffer": "^1.0.0" + } + }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -21435,6 +25205,12 @@ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, + "to-float32": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-float32/-/to-float32-1.0.1.tgz", + "integrity": "sha512-nOy2WSwae3xhZbc+05xiCuU3ZPPmH0L4Rg4Q1qiOGFSuNSCTB9nVJaGgGl3ZScxAclX/L8hJuDHJGDAzbfuKCQ==", + "dev": true + }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", @@ -21444,6 +25220,15 @@ "kind-of": "^3.0.2" } }, + "to-px": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.1.0.tgz", + "integrity": "sha512-bfg3GLYrGoEzrGoE05TAL/Uw+H/qrf2ptr9V3W7U0lkjjyYnIfgxmVLUfhQ1hZpIQwin81uxhDjvUkDYsC0xWw==", + "dev": true, + "requires": { + "parse-unit": "^1.0.1" + } + }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -21483,6 +25268,19 @@ "integrity": "sha1-Y6K3Cm9KfU/cLtV6C+TnI1y2aZw=", "dev": true }, + "to-uint8": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/to-uint8/-/to-uint8-1.4.1.tgz", + "integrity": "sha512-o+ochsMlTZyucbww8It401FC2Rx+OP2RpDeYbA6h+y9HgedDl1UjdsJ9CmzKEG7AFP9es5PmJ4eDWeeeXihESg==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "clamp": "^1.0.1", + "is-base64": "^0.1.0", + "is-float-array": "^1.0.0", + "to-array-buffer": "^3.0.0" + } + }, "topo": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz", @@ -21492,6 +25290,15 @@ "hoek": "2.x.x" } }, + "topojson-client": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-2.1.0.tgz", + "integrity": "sha1-/59784mRGF4LQoTCsGroNPDqxsg=", + "dev": true, + "requires": { + "commander": "2" + } + }, "toposort": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", @@ -21545,6 +25352,26 @@ "should": "^13.0.0" } }, + "triangulate-hypercube": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/triangulate-hypercube/-/triangulate-hypercube-1.0.1.tgz", + "integrity": "sha1-2Acdsuv8/VHzCNC88qXEils20Tc=", + "dev": true, + "requires": { + "gamma": "^0.1.0", + "permutation-parity": "^1.0.0", + "permutation-rank": "^1.0.0" + } + }, + "triangulate-polyline": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/triangulate-polyline/-/triangulate-polyline-1.0.3.tgz", + "integrity": "sha1-v4uod6hQVBA/65+lphtOjXAXgU0=", + "dev": true, + "requires": { + "cdt2d": "^1.0.0" + } + }, "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", @@ -21644,6 +25471,17 @@ "safe-buffer": "^5.0.1" } }, + "turntable-camera-controller": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/turntable-camera-controller/-/turntable-camera-controller-3.0.1.tgz", + "integrity": "sha1-jb0/4AVQGRxlFky4iJcQSVeK/Zk=", + "dev": true, + "requires": { + "filtered-vector": "^1.2.1", + "gl-mat4": "^1.0.2", + "gl-vec3": "^1.0.2" + } + }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", @@ -21655,6 +25493,18 @@ "integrity": "sha512-W+uFP2DyK2dNhE38PcpituNi8CBm+YO5gY6o/IWEILT7NNDTT1wo3YcMmydwiCfUbnT7tz+EcjV7KlZLgE1PlQ==", "dev": true }, + "two-product": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/two-product/-/two-product-1.0.2.tgz", + "integrity": "sha1-Z9ldSyV6kh4stL16+VEfkIhSLqo=", + "dev": true + }, + "two-sum": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/two-sum/-/two-sum-1.0.0.tgz", + "integrity": "sha1-MdPzIjnk9zHsqd+RVeKyl/AIq2Q=", + "dev": true + }, "type": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz", @@ -21679,11 +25529,27 @@ "mime-types": "~2.1.24" } }, + "type-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz", + "integrity": "sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q=", + "dev": true + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, + "typedarray-pool": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz", + "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==", + "dev": true, + "requires": { + "bit-twiddle": "^1.0.0", + "dup": "^1.0.0" + } + }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -21737,6 +25603,12 @@ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "dev": true }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, "unicode-length": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/unicode-length/-/unicode-length-2.0.2.tgz", @@ -21747,6 +25619,28 @@ "strip-ansi": "^3.0.1" } }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, "unicode-trie": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", @@ -21757,6 +25651,12 @@ "tiny-inflate": "^1.0.0" } }, + "union-find": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/union-find/-/union-find-1.0.2.tgz", + "integrity": "sha1-KSusQV5q06iVNdI3AQ20pTYoTlg=", + "dev": true + }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -21810,6 +25710,12 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, "unreachable-branch-transform": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/unreachable-branch-transform/-/unreachable-branch-transform-0.3.0.tgz", @@ -21872,6 +25778,12 @@ "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", "dev": true }, + "update-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-diff/-/update-diff-1.1.0.tgz", + "integrity": "sha1-9RAYLYHugZ+4LDprIrYrve2ngI8=", + "dev": true + }, "upper-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", @@ -22028,11 +25940,58 @@ "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", "dev": true }, + "utils-copy": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/utils-copy/-/utils-copy-1.1.1.tgz", + "integrity": "sha1-biuXmCqozXPhGCo+b4vsPA9AWKc=", + "dev": true, + "requires": { + "const-pinf-float64": "^1.0.0", + "object-keys": "^1.0.9", + "type-name": "^2.0.0", + "utils-copy-error": "^1.0.0", + "utils-indexof": "^1.0.0", + "utils-regex-from-string": "^1.0.0", + "validate.io-array": "^1.0.3", + "validate.io-buffer": "^1.0.1", + "validate.io-nonnegative-integer": "^1.0.0" + } + }, + "utils-copy-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-copy-error/-/utils-copy-error-1.0.1.tgz", + "integrity": "sha1-eR3jk8DwmJCv1Z88vqY18HmpT6U=", + "dev": true, + "requires": { + "object-keys": "^1.0.9", + "utils-copy": "^1.1.0" + } + }, + "utils-indexof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-indexof/-/utils-indexof-1.0.0.tgz", + "integrity": "sha1-IP6r8J7xAYtSNkPoOA57yD7GG1w=", + "dev": true, + "requires": { + "validate.io-array-like": "^1.0.1", + "validate.io-integer-primitive": "^1.0.0" + } + }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, + "utils-regex-from-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-regex-from-string/-/utils-regex-from-string-1.0.0.tgz", + "integrity": "sha1-/hopCfjeD/DVGCyA+8ZU1qaH0Yk=", + "dev": true, + "requires": { + "regex-regex": "^1.0.0", + "validate.io-string-primitive": "^1.0.0" + } + }, "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", @@ -22057,11 +26016,114 @@ "spdx-expression-parse": "^3.0.0" } }, + "validate.io-array": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", + "integrity": "sha1-W1osr9j4uFq7L4hroVPy2Tond00=", + "dev": true + }, + "validate.io-array-like": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/validate.io-array-like/-/validate.io-array-like-1.0.2.tgz", + "integrity": "sha1-evn363tRcVvrIhVmjsXM5U+t21o=", + "dev": true, + "requires": { + "const-max-uint32": "^1.0.2", + "validate.io-integer-primitive": "^1.0.0" + } + }, + "validate.io-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/validate.io-buffer/-/validate.io-buffer-1.0.2.tgz", + "integrity": "sha1-hS1nNAIZFNXROvwyUxdh43IO1E4=", + "dev": true + }, + "validate.io-integer": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", + "integrity": "sha1-FoSWSAuVviJH7EQ/IjPeT4mHgGg=", + "dev": true, + "requires": { + "validate.io-number": "^1.0.3" + } + }, + "validate.io-integer-primitive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/validate.io-integer-primitive/-/validate.io-integer-primitive-1.0.0.tgz", + "integrity": "sha1-qaoBA1X+hoHA/qbBp0rSQZyt3cY=", + "dev": true, + "requires": { + "validate.io-number-primitive": "^1.0.0" + } + }, + "validate.io-matrix-like": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/validate.io-matrix-like/-/validate.io-matrix-like-1.0.2.tgz", + "integrity": "sha1-XsMqddCInaxzbepovdYUWxVe38M=", + "dev": true + }, + "validate.io-ndarray-like": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/validate.io-ndarray-like/-/validate.io-ndarray-like-1.0.0.tgz", + "integrity": "sha1-2KOw7RZbvx0vwNAHMnDPpVIpWRk=", + "dev": true + }, + "validate.io-nonnegative-integer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/validate.io-nonnegative-integer/-/validate.io-nonnegative-integer-1.0.0.tgz", + "integrity": "sha1-gGkkOgjF+Y6VQTySnf17GPP28p8=", + "dev": true, + "requires": { + "validate.io-integer": "^1.0.5" + } + }, + "validate.io-number": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", + "integrity": "sha1-9j/+2iSL8opnqNSODjtGGhZluvg=", + "dev": true + }, + "validate.io-number-primitive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/validate.io-number-primitive/-/validate.io-number-primitive-1.0.0.tgz", + "integrity": "sha1-0uAfICmJNp3PEVVElWQgOv5YTlU=", + "dev": true + }, + "validate.io-positive-integer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/validate.io-positive-integer/-/validate.io-positive-integer-1.0.0.tgz", + "integrity": "sha1-ftLQO0wnVYzGagCqsPDpIYFKZYI=", + "dev": true, + "requires": { + "validate.io-integer": "^1.0.5" + } + }, + "validate.io-string-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/validate.io-string-primitive/-/validate.io-string-primitive-1.0.1.tgz", + "integrity": "sha1-uBNbn7E3K94C/dU60dDM1t55j+4=", + "dev": true + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, + "vectorize-text": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/vectorize-text/-/vectorize-text-3.2.1.tgz", + "integrity": "sha512-rGojF+D9BB96iPZPUitfq5kaiS6eCJmfEel0NXOK/MzZSuXGiwhoop80PtaDas9/Hg/oaox1tI9g3h93qpuspg==", + "dev": true, + "requires": { + "cdt2d": "^1.0.0", + "clean-pslg": "^1.1.0", + "ndarray": "^1.0.11", + "planar-graph-to-polyline": "^1.0.0", + "simplify-planar-graph": "^2.0.1", + "surface-nets": "^1.0.0", + "triangulate-polyline": "^1.0.0" + } + }, "vendors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.3.tgz", @@ -22127,6 +26189,17 @@ "integrity": "sha512-eY9jmGoEnVf8VE8xr5znSah7Qt1P/xsCdErz+g8HYZtJ7bZqKH5E3d+6oVNm1AC/c6IHUDokbmVXKOi4qPAC9A==", "dev": true }, + "vt-pbf": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.1.tgz", + "integrity": "sha512-pHjWdrIoxurpmTcbfBWXaPwSmtPAHS105253P1qyEfSTV2HJddqjM+kIHquaT/L6lVJIk9ltTGc0IxR/G47hYA==", + "dev": true, + "requires": { + "@mapbox/point-geometry": "0.1.0", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.0.5" + } + }, "w3c-hr-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", @@ -22571,6 +26644,27 @@ "integrity": "sha512-FXJdEu2qDOI+wbVYZpu21CS1vPEg5NaxNskBr4SaULpOJMrLE6xkH8dECa7PiS+ZoeyvP7GllWUAxPN3AvFSEw==", "dev": true }, + "weak-map": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.5.tgz", + "integrity": "sha1-eWkVhNmGB/UHC9O3CkDmuyLkAes=", + "dev": true + }, + "weakmap-shim": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/weakmap-shim/-/weakmap-shim-1.1.1.tgz", + "integrity": "sha1-1lr9eEEJshZuAP9XHDMVDsKkC0k=", + "dev": true + }, + "webgl-context": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webgl-context/-/webgl-context-2.2.0.tgz", + "integrity": "sha1-jzfXJXz23xzQpJ5qextyG5TMhqA=", + "dev": true, + "requires": { + "get-canvas-context": "^1.0.1" + } + }, "webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", @@ -22873,6 +26967,12 @@ } } }, + "wgs84": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/wgs84/-/wgs84-0.0.0.tgz", + "integrity": "sha1-NP3FVZF7blfPKigu0ENxDASc3HY=", + "dev": true + }, "whatwg-encoding": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", @@ -22979,6 +27079,15 @@ } } }, + "world-calendars": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.3.tgz", + "integrity": "sha1-slxQMrokEo/8QdCfr0pewbnBQzU=", + "dev": true, + "requires": { + "object-assign": "^4.1.0" + } + }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", @@ -23169,6 +27278,15 @@ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true + }, + "zero-crossings": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/zero-crossings/-/zero-crossings-1.0.1.tgz", + "integrity": "sha1-xWK9MRNkPzRDokXRJAa4i2m5qf8=", + "dev": true, + "requires": { + "cwise-compiler": "^1.0.0" + } } } } diff --git a/package.json b/package.json index 584d9e34c..1f1be6736 100644 --- a/package.json +++ b/package.json @@ -110,6 +110,7 @@ "node-dir": "0.1.16", "node-sass": "4.14.1", "pako": "0.2.8", + "plotly.js": "1.47.4", "po2icu": "0.0.2", "postcss-loader": "2.0.10", "prop-types": "15.6.0", @@ -119,6 +120,7 @@ "react-intl": "2.8.0", "react-modal": "3.11.1", "react-onclickoutside": "6.7.1", + "react-plotly.js": "2.4.0", "react-redux": "5.0.7", "react-responsive": "3.0.0", "react-slick": "0.16.0", diff --git a/src/_frameless.scss b/src/_frameless.scss index 946a1e952..c5d1d1a1d 100644 --- a/src/_frameless.scss +++ b/src/_frameless.scss @@ -35,8 +35,8 @@ $cols11: (11 * ($column + $gutter) - $gutter) / $em; $cols12: (12 * ($column + $gutter) - $gutter) / $em; $desktop: 942px; -$mobileIntermediate: 640px; $tabletPortrait: 768px; +$mobileIntermediate: 640px; $mobile: 480px; /* Media Queries */ diff --git a/src/components/video-preview/video-preview.jsx b/src/components/video-preview/video-preview.jsx new file mode 100644 index 000000000..2c9efce4c --- /dev/null +++ b/src/components/video-preview/video-preview.jsx @@ -0,0 +1,73 @@ +const bindAll = require('lodash.bindall'); +const PropTypes = require('prop-types'); +const React = require('react'); + +const Video = require('../video/video.jsx'); + +require('./video-preview.scss'); + +class VideoPreview extends React.Component { + constructor (props) { + super(props); + bindAll(this, [ + 'handleShowVideo' + ]); + + this.state = { + videoOpen: false + }; + } + + handleShowVideo () { + this.setState({videoOpen: true}); + } + + render () { + return ( +
+ {this.state.videoOpen ? + ( +
+ ); + } +} + +VideoPreview.propTypes = { + buttonMessage: PropTypes.string.isRequired, + thumbnail: PropTypes.string.isRequired, + thumbnailHeight: PropTypes.string, + thumbnailWidth: PropTypes.string, + videoHeight: PropTypes.string, + videoId: PropTypes.string.isRequired, + videoWidth: PropTypes.string +}; + +module.exports = VideoPreview; diff --git a/src/components/video-preview/video-preview.scss b/src/components/video-preview/video-preview.scss new file mode 100644 index 000000000..cf4ae37b1 --- /dev/null +++ b/src/components/video-preview/video-preview.scss @@ -0,0 +1,26 @@ +.video-preview { + display: flex; + justify-content: center; + align-items: center; + + .video-player { + height: auto; + border: none; + border-radius: .75rem; + } +} + +.video-thumbnail { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + + img { + cursor: pointer; + } + + .button { + margin-top: 20px; + } +} diff --git a/src/components/world-map/world-map.jsx b/src/components/world-map/world-map.jsx new file mode 100644 index 000000000..986b0f055 --- /dev/null +++ b/src/components/world-map/world-map.jsx @@ -0,0 +1,82 @@ +import Plot from 'react-plotly.js'; +const React = require('react'); +const PropTypes = require('prop-types'); + +const WorldMap = props => ( + %{location} ' + + '
' + + ' %{text:,.0f} ' + + '', + hoverlabel: { + bgcolor: '#FFF', + bordercolor: '#5B6671', + font: { + color: '#575E75', + size: '16', + family: "'Helvetica Neue Regular', sans-serif" + } + }, + colorscale: [[0, 'rgba(14,189,140, .05)'], [1, 'rgba(14,189,140, 1)']], + showscale: false, + marker: { + line: { + color: '#FFFF', + width: 1 + } + } + } + ]} + layout={ + { + geo: { + projection: { + type: 'robinson', + scale: 1 + }, + showcoastlines: false, + showframe: false, + scope: 'world', + fitbounds: 'locations', + showland: true, + landcolor: 'rgba(14,189,140, .05)' + }, + dragmode: false, + margin: { + l: 0, + r: 0, + b: 0, + t: 0, + pad: 0, + autoexpand: true + }, + autosize: true + } + } + style={{position: 'absolute', display: 'block'}} + /> +); + +WorldMap.propTypes = { + colorIndex: PropTypes.arrayOf(PropTypes.number), + countryData: PropTypes.arrayOf(PropTypes.number), + countryNames: PropTypes.arrayOf(PropTypes.string) +}; + +module.exports = WorldMap; diff --git a/src/routes.json b/src/routes.json index 0f515ed7c..34ee66761 100644 --- a/src/routes.json +++ b/src/routes.json @@ -6,6 +6,14 @@ "view": "about/about", "title": "About" }, + { + "name": "annual-report", + "pattern": "^/annual-report/?$", + "routeAlias": "/annual-report/?$", + "view": "annual-report/annual-report", + "title": "Annual Report", + "viewportWidth": "device-width" + }, { "name": "camp", "pattern": "^/camp/?$", diff --git a/src/views/annual-report/annual-report.jsx b/src/views/annual-report/annual-report.jsx new file mode 100644 index 000000000..5df472839 --- /dev/null +++ b/src/views/annual-report/annual-report.jsx @@ -0,0 +1,2382 @@ +const bindAll = require('lodash.bindall'); +const classNames = require('classnames'); +const React = require('react'); +const MediaQuery = require('react-responsive').default; +const FormattedHTMLMessage = require('react-intl').FormattedHTMLMessage; +const FormattedMessage = require('react-intl').FormattedMessage; +const injectIntl = require('react-intl').injectIntl; +const intlShape = require('react-intl').intlShape; + +const render = require('../../lib/render.jsx'); +const frameless = require('../../lib/frameless'); + +const Avatar = require('../../components/avatar/avatar.jsx'); +const Page = require('../../components/page/www/page.jsx'); +const Grid = require('../../components/grid/grid.jsx'); +const Button = require('../../components/forms/button.jsx'); +const FlexRow = require('../../components/flex-row/flex-row.jsx'); +const Comment = require('../../components/comment/comment.jsx'); +const WorldMap = require('../../components/world-map/world-map.jsx'); +const CountryUsage = require('./country-usage.json'); +const PeopleGrid = require('../../components/people-grid/people-grid.jsx'); +const People = require('./people.json'); +const BLMProjects = require('./blm-projects.json'); +const VideoPreview = require('../../components/video-preview/video-preview.jsx'); + +require('./annual-report.scss'); + +// Some constants used for the page subnav and section refs +const SECTIONS = { + message: 'message', + mission: 'mission', + reach: 'reach', + milestones: 'milestones', + initiatives: 'initiatives', + financials: 'financials', + supporters: 'supporters', + team: 'team', + donate: 'donate' +}; + +const SECTION_NAMES = { + message: , + mission: , + reach: , + milestones: , + initiatives: , + financials: , + supporters: , + team: , + donate: +}; + +// Constants used for world map data processing/formatting for use with Plotly +const countryKeys = Object.keys(CountryUsage); +const countryNames = countryKeys.map(key => CountryUsage[key].display); +const countryData = countryKeys.map(key => CountryUsage[key].count); +const colorIndex = countryKeys.map(key => CountryUsage[key]['log count']); + +class AnnualReport extends React.Component { + constructor (props) { + super(props); + + // Storage for each of the section refs when we need to refer + // to them in the scroll handling code + // These will be stored with a short lowercase key representing + // the specific section (e.g. 'mission') + this.sectionRefs = {}; + + this.subnavRef = null; + + this.state = { + currentlyVisible: SECTIONS.message, // The currently visible section + dropdownVisible: false + }; + + bindAll(this, [ + 'scrollTo', + 'setRef', + 'setSubnavRef', + 'handleSubnavItemClick', + 'getDimensionsOfSection', + 'handleScroll', + 'handleDropDownClick' + ]); + } + + componentDidMount () { + window.addEventListener('scroll', this.handleScroll); + } + + componentWillUnMount () { + window.removeEventListener('scroll', this.handleScroll); + } + + // A generic handler for a subnav item that takes the name of the + // section to scroll to (all lowercase) + handleSubnavItemClick (sectionName) { + // Return a button click handler that will close the dropdown if open + // and scrolls to the correct section + return () => { + this.setState({dropdownVisible: false}); + this.scrollTo(this.sectionRefs[sectionName]); + }; + } + + scrollTo (element) { + if (element) { + const sectionTop = this.getDimensionsOfSection(element).offsetTop; + window.scrollTo({top: sectionTop, behavior: 'smooth'}); + // The smooth scrolling doesn't work on Safari + // but this code allows scrolling to the correct part of the section + // in Safari since the css property 'scrollMarginTop' is also not supported there + } + } + + // Generically create a ref for the given section, stored in + // this.sectionRefs + setRef (sectionName) { + return ref => (this.sectionRefs[sectionName] = ref); + } + + setSubnavRef (ref) { + this.subnavRef = ref; + } + + // Calculate the dimensions of a given section for use in figuring out + // which section is currently visible + getDimensionsOfSection (sectionRef) { + const {height} = sectionRef.getBoundingClientRect(); + const offsetTop = sectionRef.offsetTop; + const offsetBottom = offsetTop + height; + + return { + height, + offsetTop, + offsetBottom + }; + } + + // While scrolling, update the subnav to reflect the currently visible section + handleScroll () { + const subnavHeight = this.getDimensionsOfSection(this.subnavRef).height; + // The additional 50 is to account for the main site nav height + const currentScrollPosition = window.scrollY + subnavHeight + 50; + + // Find which section is currently visible based on our scroll position + for (const key in this.sectionRefs) { + if (!this.sectionRefs.hasOwnProperty(key)) continue; + const currentRef = this.sectionRefs[key]; + const {offsetBottom, offsetTop} = this.getDimensionsOfSection(currentRef); + if (currentScrollPosition > offsetTop && currentScrollPosition < offsetBottom) { + if (this.state.currentlyVisible !== key) { + this.setState({currentlyVisible: key}); + return; + } + } + } + } + + // Click handler for responsive subnav dropdown + handleDropDownClick () { + this.setState({dropdownVisible: !this.state.dropdownVisible}); + } + + render () { + // Element containing buttons to scroll to each of the sections in the + // annual report. The layout of this component will be different on + // different screen sizes (see below) + const subnav = + ( + + {SECTION_NAMES.message} + + + + + + + + + + + + + + + + + + + + + + + + + + ); + + return ( +
+
+ {/* Top Bar */} + +
+ {SECTION_NAMES[this.state.currentlyVisible]} + +
+ {this.state.dropdownVisible ? + /* Bottom Bar */ +
+
+ {subnav} +
: + null + } +
+ {/* For large screens, show whole subnav, with no dropdown */} + + {subnav} + +
+
+
+ +
+

+ +

+

+ +

+
+ +
+ + + +
+ + + {/* Show the wave icon inside this div in smaller screens */} +
+ +

+ +

+
+
+ +

+ +

+
+
+

+ +

+

+ +

+

+ +

+

+ +

+

+ +

+

+ +

+ +
+
+
+
+ + +
+
+
+

+ +

+
+

+ +

+

+ + + + ) + }} + /> +

+

+ + + + ) + }} + /> +

+
+
+
+
+

+

+

+

+

+ + + + ) + }} + /> +

+
+
+ +
+
+

+

+
+ +
+
+ +
+

+

+
+
+ +
+
+ +
+
+

+

+
+ +
+
+ +
+

+

+ +

+
+
+ +
+
+ +
+
+

+

+
+ +
+
+ +
+

+

+
+
+ +
+
+ +
+
+

+

+
+ +
+
+ +
+

+

+
+
+ +
+
+
+
+
+
+
+
+

+ +

+

+ +

+ + + +
+
+
+

+ 2003 +

+

+ +

+
+
+

+ 2004 +

+

+ +

+ +
+
+

+ 2007 +

+

+ +

+ +
+
+
+ + + +
+
+
+

+ 2008 +

+

+ +

+ +
+
+

+ 2009 +

+

+ +

+ +
+
+

+ 2009 +

+

+ +

+
+
+

+ 2010 +

+

+ +

+
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+

+ 2013 +

+

+ +

+
+
+

+ 2013 +

+

+ +

+ +
+
+

+ 2014 +

+

+ +

+ +
+
+

+ 2016 +

+

+ +

+
+
+
+ + + +
+
+
+

+ 2017 +

+

+ +

+
+
+

+ 2019 +

+

+ +

+ +
+
+

+ 2019 +

+

+ +

+
+
+
+ + + +
+
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+

+ +

+

+ +

+ +
+
+ + +
+ ) + }} + /> +

+ +

+
+
+ + +
+ ) + }} + /> +

+ +

+
+
+ + +
+ ) + }} + /> +

+ +

+
+
+ + +
+ ) + }} + /> +

+ +

+
+
+
+
+
+

+ +

+

+ +

+
+ +
+ +
+
+

+ +

+

+ +

+
+
+
0
+ +
+ +
+
+
+ +
+
+
+ + + + + + + + + + + + +
+
+
+
+
+
+

+ +

+

+ +

+
+ +
+
+ +
+ +
+
+ +
+
+
+ +

+ +

+
+
+ + +
+ ) + }} + /> +

+ +

+
+
+ +
+ +
+
+ +
+
+
+

+ +

+

+ +

+
+
+
+

+ +

+
+
+

+ +

+
+
+

+ +

+
+
+
+
+

+ +

+
+
+

+ +

+
+
+
+
+
+
+
+
+

+ +

+

+ +

+
+
+
+ {/* eslint-disable max-len */} +
+
+ +
+
+

+ +

+

+ +

+

+ +

+
+
+
+ + +
+
+
+
+ +

+ +

+

+ +

+
+
+ + + + ) + }} + /> +
+
+ + + + ) + }} + /> +
+
+
+ +
+
+
+ +

+ +

+

+ +

+
+
+ + + + ) + }} + /> +
+
+ + + + ), + CSandLanguageArtsLink: ( + + + + ) + }} + /> +
+
+
+ +
+
+
+
+ +
+

+ +

+

+ + + + ), + weDoLink: ( + + + + ) + }} + /> +

+
+ +
+
+
+
+

+ +

+

+ +

+
+ + + + +
+
+
+ + + + ) + }} + /> +
+
+ + + + ) + }} + /> +
+
+
+
+
+

+ +

+

+ + + + ), + raspberryLink: ( + + + + ) + }} + /> +

+
+ +
+
+
+ +
+
+
+

+ +

+

+ +

+
+ +
+
+
+
+
+ + + + + + + + + +
+
+
+
+
+ +
Abhi
+
+ +
+
+
+
+
+
+
+

+ +

+

+ +

+
+
+
+ {/* eslint-disable max-len */} +
+
+ +
+
+

+ +

+

+ +

+

+ +

+
+
+
+
+
+
+

+ +

+

+ +

+
+
+

+ +

+

+ +

+
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+
+
+
+

+ +

+

+ + + + ) + }} + /> +

+
+
+

+ +

+

+ +

+
+
+ + + + +

+ +

+
+
+ + + + +

+ +

+
+
+ + + + +

+ +

+
+
+ + + + +

+ +

+
+
+
+
+ +
+
+
+
+ +
angelical
+
+ +
+
+
+ +
dlore2009
+
+ +
+
+
+ +
qood
+
+ +
+
+
+ +
Mechanical_pencil
+
+ +
+
+
+ +
+
+
+

Black Lives Matter

+

+ + Black Lives Matter + + ) + }} + /> +

+
+
+ + + + +
+
+ +
+
+

+ +

+

+ +

+
+
+
+
+
+ + + + + + + + + +
+
+
+ {/* eslint-enable max-len */} +
+
+
+
+

+ +

+

+ +

+
+
+
+
+
+ +
+
+

+ +

+

+ +

+

+ +

+
+
+
+
+ {/* eslint-disable max-len */} + + + + + + + + + + {/* eslint-enable max-len */} +
+
+
+

+ +

+

+ +

+
+
+
+ +
+
+ {/* eslint-disable max-len */} + + + + + {/* eslint-enable max-len */} +
+
+ +
+ + + +
+
+

+ +

+

+ +

+
+
+ {/* eslint-disable max-len */} + + {/* eslint-enable max-len */} +
+ +
+
+ +
+
+

+ +

+

+ + + + ) + }} + /> +

+
+

+ +

+
+ {/* eslint-disable max-len */} +
+ + + + +
+
+ + + + +
+ {/* eslint-enable max-len */} +
+
+
+
+
+ +
+

+ +

+
+
+

+ +

+ +
+ {/* eslint-disable-next-line max-len */} + + + + +
+
+
+
+ +
+
+ + + +
+ +
+
+
+
+ {/* eslint-disable-next-line max-len */} + + + + +
+
+

+ +

+

+ {/* eslint-disable max-len */} + + Scratch al Sur + + ), + spanishVersionLink: ( + + + + ), + creativeComputingCurriculumLink: ( + + Creative Computing Curriculum + + ) + }} + /> + {/* eslint-enable max-len */} +

+
+
+
+
+

+ +

+

+ + Scratch Conference Europe + + ) + }} + /> +

+
+
+ {/* eslint-disable-next-line max-len */} + + + + +
+
+
+
+ {/* eslint-disable-next-line max-len */} + + + + +
+
+

+ +

+

+ + Scratch Africa Conference + + ) + }} + /> +

+
+
+
+
+
+
+
+
+
+

+ +

+
+ +
+ +
+
+
+
+
+

+ +

+

+ +

+
+
+ +
+
+
+

+ +

+

+ +

+

+ +

+

+ +

+
+
+
+
+ +
+

David Siegel

+ +
Two Sigma +
+
+
+ {/* eslint-disable-next-line */} + +
+
+
+
+

+ +

+

+ +

+

+ +

+
+
+
+ +
+
+
+
    +
  • Massachusetts Institute of Technology
  • +
  • National Science Foundation
  • +
+
    +
  • Siegel Family Endowment
  • +
+
+
+
+
+ +
+
+
+
    +
  • Google
  • +
  • LEGO Foundation
  • +
  • Little Bluebridge Foundation
  • +
+
    +
  • Smilegate Foundation
  • +
  • TAL Education
  • +
  • WarnerMedia
  • +
+
+
+
+
+ +
+
+
+
    +
  • Mark Dalton
  • +
  • Cindy and Evan Goldberg
  • +
  • Paul T. Jones
  • +
  • BrainPOP
  • +
+
    +
  • Kahn-Rowe Family Fund
  • +
  • LEGO Education
  • +
  • Morgan Stanley
  • +
  • Two Sigma
  • +
+
+
+
+
+ +
+
+
+
    +
  • Alex Ginsburg
  • +
  • James Tomilson Hill
  • +
  • John Overdeck
  • +
  • Mitchel Resnick
  • +
  • David Shaw
  • +
  • David Siegel
  • +
  • Tao Ye
  • +
  • Christos Zoulas
  • +
  • AT&T Aspire
  • +
  • Big Hen Group
  • +
  • Bloomberg Philanthropies
  • +
  • Citibank
  • +
  • Credit Suisse
  • +
  • EPAM
  • +
+
    +
  • Facebook
  • +
  • Goldman Sachs
  • +
  • Huron Foundation
  • +
  • Intel One-to-One Institute
  • +
  • Piantino Family Foundation
  • +
  • Playmates Toys
  • +
  • Skadden Arps
  • +
  • Societe Generale
  • +
  • Solomon Wilson Family Foundation
  • +
  • Tudor Investments
  • +
  • UBS
  • +
  • Vista Equity Partners
  • +
  • Weill Family Foundation
  • +
  • WestRiver Group
  • +
+
+
+
+
+ +
+
+
+
    +
  • Erik Anderson
  • +
  • Jon Claerbout
  • +
  • Jonathan Dinu
  • +
  • John Doerr
  • +
  • Dan Huttenlocher
  • +
  • Justin Nadler
  • +
  • Ali-Milan Nekmouche
  • +
  • Edward Schmidt
  • +
  • Hope Smith
  • +
  • Alfred Spector
  • +
  • Ben Stein
  • +
  • Donald Sussman
  • +
  • Glen Whitney
  • +
  • AIG
  • +
  • Amazon
  • +
+
    +
  • Bank of America
  • +
  • Certified Moving & Storage
  • +
  • Dalio Foundation, Inc.
  • +
  • Dalton Family Foundation
  • +
  • Deutsche Bank
  • +
  • Ernst & Young
  • +
  • Hearst Corporation
  • +
  • HedgeServ
  • +
  • Humble Bundle
  • +
  • Intel Corporation
  • +
  • Jenner & Block LLP
  • +
  • La Vida Feliz Foundation
  • +
  • Silicon Valley Bank
  • +
  • Spin Master
  • +
  • Union Square Ventures
  • +
+
+
+
+
+ +
+
+
+
    +
  • Michael Ball
  • +
  • Ken Baron
  • +
  • Craig Barrett
  • +
  • Adam Beder
  • +
  • Mark Bezos
  • +
  • Eric Chen
  • +
  • Michael Cirillo
  • +
  • Eric Dahm
  • +
  • Peter Desmond
  • +
  • Jeremy Deutsch
  • +
  • John Doyle
  • +
  • Kenneth Ehlert
  • +
  • Tim Ettenheim
  • +
  • Alan Eustace
  • +
  • Steve Evans
  • +
  • Catherine Greenspon
  • +
  • Jonathan W. Hitchon
  • +
  • Margaret Honey
  • +
  • Andrew Janian
  • +
  • David Joerg
  • +
  • Mark Loughridge
  • +
  • Carter Lyons
  • +
  • Adam Messinger
  • +
  • Robert and Bethany Millard
  • +
  • Stephen M. Ross
  • +
  • Wray Thorn
  • +
+
    +
  • Jessica Traynor
  • +
  • Adobe
  • +
  • Anchor Point Foundation
  • +
  • Barclays
  • +
  • Blackstone Charitable Foundation
  • +
  • Blackstone Group
  • +
  • Cisco/Meraki
  • +
  • Citco
  • +
  • Deloitte
  • +
  • Eclipse Contracting
  • +
  • Funny or Die
  • +
  • Hasbro
  • +
  • J.P. Morgan
  • +
  • Mattel
  • +
  • McGraw Hill Education
  • +
  • NHK
  • +
  • Pearson
  • +
  • Pershing Square Foundation
  • +
  • SAP
  • +
  • Scholastic
  • +
  • The Ramsey Family Fund
  • +
  • Thelonious Monk Institute of Jazz
  • +
  • Via Technologies
  • +
  • WilmerHale
  • +
  • Zoshinkai Holdings
  • +
+
+
+
+
+
+

+ +

+
+
    +
  • Fastly
  • +
  • Amazon Web Services
  • +
  • Wilson Sonsini Goodrich & Rosati
  • +
  • New Relic
  • +
  • Adobe
  • +
  • DK
  • +
+
    +
  • No Starch Press
  • +
  • Github
  • +
  • Travis CI
  • +
  • Sauce Labs
  • +
  • Pingdom
  • +
  • PagerDuty
  • +
+
+
+
+
+
+
+
+

+ +

+

+ +

+ +
+ + + +

Mitch Resnick

+ +
MIT Media Lab +
+
+ + + +

David Siegel

+ +
Two Sigma +
+
+ + + +

Ursula Burns

+ +
Xerox +
+
+ + + +

Margaret Honey

+ +
New York Hall of Science +
+
+ + + +

Avraham Kadar

+ +
BrainPOP +
+
+ + + +

Christina Miller

+ +
Cartoon Network +
+
+

+ +

+ +
+ + + +

Sheri Vammen

+
+
+ + + +

Rich Sauer

+
+
+
+

+ +

+
+ + +
+ +
+
+
+
+ + + + +
+

+ +

+

+ +

+ + + +
+
+
+
+
+ ); + } +} + +AnnualReport.propTypes = { + intl: intlShape +}; + +const WrappedAnnualReport = injectIntl(AnnualReport); + +render( + , document.getElementById('app') +); diff --git a/src/views/annual-report/annual-report.scss b/src/views/annual-report/annual-report.scss new file mode 100644 index 000000000..40657a3c9 --- /dev/null +++ b/src/views/annual-report/annual-report.scss @@ -0,0 +1,2697 @@ +@import "../../colors"; +@import "../../frameless"; + +$base-bg: $ui-white; + +#view { + background-color: $ui-white; + padding: 0; + width: 100%; +} + +h1 { + font-size: 5rem; + line-height: 6.125rem; +} + +h2 { + font-size: 3.25rem; + line-height: 4rem; +} + +h3 { + font-size: 2rem; + line-height: 2.5rem; +} + +h4 { + font-size: 1.5rem; + line-height: 2rem; +} + +h5 { + text-transform: none; + font-size: 1rem; + margin: .5rem 0; + letter-spacing: 0; +} + +p { + font-size: 1rem; + line-height: 2em; +} + +.photo-credit { + font-size: 0.875rem; + line-height: 1.125rem; + text-align: center; + margin-top: 1rem; +} + +@media #{$small} { + .inner { + width: $cols4; + } + + h1 { + font-size: 3.25rem; + line-height: 4rem; + } + + h2 { + font-size: 2rem; + } + + h3 { + font-size: 1.75rem; + } +} + +.message-section { + background-color: $ui-blue; + + h1, h2, p { + color: $ui-white; + } + + @media #{$intermediate-and-smaller} { + .inner { + width: 100%; + } + + padding: 0px; + + } +} + +.masthead { + p { + font-size: 1.25rem; + line-height: 2rem; + font-weight: bold; + } + + @media #{$big} { + .masthead-content { + max-width: 440px; + text-align: left; + } + + img { + max-width: 760px; + } + } + + @media #{$intermediate-and-smaller} { + flex-direction: column; + align-items: center; + + .masthead-year { + text-align: center; + } + + .masthead-content { + text-align: center; + } + } + + @media #{$intermediate} { + .masthead-content, img { + max-width: 620px; + } + } + + @media #{$medium} { + .masthead-content, img { + max-width: 460px; + } + } + + @media #{$small} { + .masthead-content, img { + max-width: 300px; + } + } +} + +.wave-icon-desktop { + margin-left: 56px; +} + +.message-content{ + align-items: flex-start; + + @media #{$big} { + h2 { + max-width: 300px; + } + } + + @media #{$intermediate-and-smaller} { + align-items: center; + } + + @media #{$medium-and-intermediate} { + text-align: left; + h2 { + max-width: 460px; + vertical-align: middle; + } + } + + @media #{$small} { + p { + text-align: left; + } + + h2 { + max-width: 300px; + vertical-align: middle; + text-align: center; + } + } + + .wave-icon-and-title { + display: flex; + justify-content: center; + + img { + margin-right: 20px; + } + + @media #{$medium-and-smaller} { + flex-direction: column; + } + + @media #{$medium} { + max-width: 460px; + } + + } + + .message-from-team { + .message-signature { + font-weight: bold; + } + + max-width: 620px; + + @media #{$medium} { + max-width: 460px; + } + + @media #{$small} { + max-width: 300px; + } + } + + .team-photo { + margin: 8px 24px 8px 0px; + vertical-align: middle; + + max-width: 620px; + + @media #{$medium} { + max-width: 460px; + margin-right: 0px; + } + + @media #{$small} { + max-width: 300px; + margin-right: 0px; + } + } +} + +.transition-images { + display: flex; + justify-content: space-between; + + img { + margin-bottom: -140px; + } + + @media #{$small} { + img { + width: 100px; + + margin-bottom: -64px; + } + } +} + +.covid-response-section { + display: flex; + flex-direction: column; + align-items: center; + + padding: 124px 0px; + + h2 { + margin-bottom: 44px; + } + + p { + width: 620px; + } + + @media #{$intermediate-and-smaller} { + text-align: left; + } + + @media #{$medium} { + p { + width: 460px; + } + } + + @media #{$small} { + p { + width: 300px; + } + } +} + +.mission-section { + background-color: $ui-blue-10percent; + display: flex; + flex-direction: column; + align-items: center; + + .mission-subtitle { + font-weight: normal; + font-size: 1.25rem; + } + + @media #{$intermediate-and-smaller} { + text-align: left; + } + + .inner { + padding-top: 124px; + width: 620px; + } + + .four-ps { + margin: 56px 0 124px 0; + width: 940px; + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items: flex-start; + + @media #{$intermediate} { + margin-top: 96px 0 108px 0; + } + + @media #{$intermediate-and-smaller} { + justify-content: center; + } + + @media #{$medium-and-smaller} { + margin-top: 76px; + align-items: center; + } + } + + .inner, .four-ps { + @media #{$intermediate} { + width: 620px; + } + @media #{$medium} { + width: 460px; + } + @media #{$small} { + width: 300px; + } + } + + .one-p { + width: 460px; + height: 493px; + background-repeat: no-repeat; + background-size: contain; + margin-right: 20px; + + img { + width: 460px; + } + + &.top { + margin-top: 0px; + } + + @media #{$intermediate-and-smaller} { + padding: 0; + width: 300px; + background-position: center; + + display: flex; + flex-direction: column; + align-items: center; + justify-content: flex-start; + + img { + width: 300px; + } + } + + @media #{$intermediate} { + height: 370px; + } + + @media #{$medium-and-smaller} { + margin-top: 62px; + height: 398px; + } + + @media #{$medium} { + margin-right: 0; + } + + .title-and-description { + width: 300px; + margin: 16px auto 0 auto; + + p { + font-size: 1.25rem; + line-height: 2rem; + margin-top: 16px; + } + + .no-margin-bottom { + margin-bottom: 0; + } + + @media #{$intermediate-and-smaller} { + text-align: center; + } + + @media #{$medium-and-smaller} { + margin: 0 auto; + + p { + font-size: 1rem; + line-height: 2rem; + margin-bottom: 16px; + } + } + + @media #{$medium} { + p { + margin-top: 12px; + } + } + + @media #{$small} { + p { + margin-top: 5px; + } + } + } + } + + .small-p { + background-position: center; + background-size: cover; + background-repeat: no-repeat; + height: 268px; + + img { + margin: 34px 0; + } + } + + .four-ps-projects { + background-image: url("/images/annual-report/mission/Projects Splash.svg"); + } + + .four-ps-passion { + background-image: url("/images/annual-report/mission/Passion Splash.svg"); + margin-top: 112px; + margin-right: 0; + + @media #{$intermediate} { + margin-top: 96px; + } + + @media #{$medium-and-smaller} { + margin-top: 0; + } + } + + .four-ps-peers { + background-image: url("/images/annual-report/mission/Peers Splash.svg"); + margin-top: -80px; + + @media #{$intermediate} { + margin-top: -72px; + } + + @media #{$medium-and-smaller} { + margin-top: 0; + } + } + + .four-ps-play { + background-image: url("/images/annual-report/mission/Play Splash.svg"); + margin-right: 0; + margin-top: 32px; + + @media #{$intermediate} { + margin-top: 24px; + } + + @media #{$medium-and-smaller} { + margin-top: 0; + } + } +} + +.milestones-section { + background-color: $ui-blue-10percent; + padding-bottom: 120px; + + .inner { + max-width: 940px; + display: flex; + flex-direction: column; + align-items: center; + } + + h2, h4 p { + color: $type-gray; + } + + p { + font-size: 1.25rem; + } + + .milestones-wrapper { + display: flex; + + .left { + margin-left: auto; + } + + .right { + margin-right: auto + } + + @media #{$intermediate-and-smaller} { + flex-direction: column; + + .left, .right { + margin: auto; + } + } + } + + .milestones-column { + margin: 0 10px; + display: flex; + flex-direction: column; + justify-content: flex-start; + + width: 460px; + + .milestones-description { + width: 360px; + } + + .single-image { + flex-grow: 3; + align-self: center; + justify-self: center; + max-width: 460px; + } + + @media #{$intermediate-and-smaller} { + align-items: center; + + .milestones-description{ + width: 100% + } + } + + @media #{$small} { + width: 300px; + } + } + + .milestone-box { + &.first { + margin-top: 4px; + } + + &.last { + margin-bottom: 4px; + } + + img { + width: 100%; + height: 240px; + border-radius: 8px; + + object-fit: cover; + } + + background-color: $ui-white; + border-radius: 8px; + padding: 16px; + margin-bottom: 12px; + + @media #{$intermediate-and-smaller} { + h4, p { + text-align: left; + } + } + + @media #{$small} { + img { + height: 160px; + } + } + } +} + +.reach-section { + position: relative; + .transition-images { + width: 100%; + + height: 420px; + overflow: hidden; + + margin-top: -180px; + + position: absolute; + + .left-image { + align-self: center; + height: 270px; + } + + .cropped-image { + width: 260px; + } + } + + .inner { + max-width: 940px; + padding-top: 120px; + display: flex; + flex-direction: column; + align-items: center; + } + + background-color: $ui-aqua; + color: $ui-white; + + h2, h3, h4, p { + color: $ui-white; + } + + .reach-intro { + max-width: 620px; + text-align: center; + + p { + font-size: 1.5rem; + } + + img { + margin-top: 20px; + } + + .reach-numbers { + display: flex; + flex-wrap: wrap; + justify-content: space-around; + } + } + + .reach-growth { + max-width: 940px; + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + + margin-top: 76px; + + .growth-blurb { + max-width: 300px; + margin: 20px; + } + + img { + width: 600px; + } + + @media #{$intermediate-and-smaller} { + img { + max-width: 100%; + } + } + } + + .map-inner { + max-width: 940px; + margin: 0 auto; + } + + .reach-map { + width: 100%; + background-color: $ui-white; + border-radius: 1rem; + color: $type-gray; + padding-top: 48px; + margin-top: 52px; + text-align: center; + overflow: hidden; + + display: flex; + flex-direction: column; + align-items: center; + + h3, p { + color: $type-gray; + padding: 0 48px; + } + + @media #{$intermediate-and-smaller} { + width: 100%; + border-radius: 0px; + } + + .map-key { + font-size: .75rem; + margin-bottom: 36px; + + .map-scale { + display: flex; + justify-content: center; + align-items: center; + font-weight: bold; + + img { + padding: 4px 8px; + + @media #{$small} { + width: 240px; + } + } + } + } + + .map-wrapper { + width: 100%; + height: 0; + position: relative; + padding-top: 50%; + } + + .map { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + } + + } + + .reach-translation { + display: flex; + justify-content: space-between; + flex-wrap: wrap; + align-items: center; + max-width: 780px; + margin-bottom: 100px; + + .reach-translation-intro { + max-width: 300px; + + h3 { + max-width: 280px; + } + } + + img { + max-width: 380px; + } + + @media #{$small} { + margin-bottom: 64px; + } + } + + @media #{$intermediate-and-smaller} { + .inner { + max-width: 620px; + } + + .reach-translation { + text-align: left; + img { + width: 300px; + } + } + } + + @media #{$medium-and-smaller} { + .reach-translation { + text-align: center; + justify-content: center; + } + } +} + +.reach-datapoint { + font-size: 5rem; + font-weight: bold; + width: 220px; + text-align: center; + margin: 32px 0; + + .million { + font-size: 2rem; + font-weight: bold; + margin-bottom: 16px; + } + + @media #{$small} { + font-size: 2.75rem; + width: 140px; + + .million { + font-size: 1.5rem; + } + + h4 { + font-size: 1rem; + line-height: 1.125rem; + } + } +} + +.reach-section { + .scratch-jr-transition-img { + position: absolute; + margin-top: -44px; + margin-left: 88px; + + @media #{$medium} { + margin-left: 32px; + } + } +} + +.reach-scratch-jr { + .scratch-jr-transition-img { + margin-bottom: -156px; + margin-right: 48px; + display: flex; + justify-content: flex-end; + + @media #{$medium} { + margin-right: 12px; + } + } +} + +.reach-scratch-jr { + background-color: #0EA57A; + color: $ui-white; + padding: 100px 0; + + h2, h3, h4, p { + color: $ui-white; + } + + .inner { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + max-width: 940px; + } + + .scratch-jr-intro { + max-width: 540px; + p { + font-size: 1.25rem; + } + } + + @media #{$intermediate-and-smaller} { + .inner { + max-width: 620px; + } + + .scratch-jr-intro { + text-align: left; + width: 300px; + } + } + + @media #{$medium-and-smaller} { + .inner { + justify-content: center; + } + + .scratch-jr-intro { + text-align: center; + width: 100%; + } + } + + @media #{$small} { + padding: 84px 0 52px 0; + } +} + +.initiatives-section { + + .initiatives-intro { + .inner { + display: flex; + flex-direction: column; + align-items: center; + max-width: 760px; + padding: 88px 0; + } + + p { + margin-bottom: 48px; + text-align: center; + } + + .initiatives-pillars { + display: flex; + flex-direction: column; + align-items: center; + width: 100%; + + h4 { + color: $ui-white; + word-break: break-word; + } + + .pillar-splash { + display: flex; + justify-content: center; + align-items: center; + + background-size: 100% 100%; + background-repeat: no-repeat; + background-position: center; + + text-align: center; + + &.tools { + background-image: url("/images/annual-report/initiatives/Creative Tools-Splash.svg"); + } + + &.community { + background-image: url("/images/annual-report/initiatives/Community-Splash.svg"); + } + + &.schools { + background-image: url("/images/annual-report/initiatives/Schools-Splash.svg"); + } + + &.equity { + background-image: url("/images/annual-report/initiatives/Equity-Splash.svg"); + } + + &.global { + background-image: url("/images/annual-report/initiatives/Global-Splash.svg"); + } + } + + .three-pillars { + display: flex; + flex-direction: row; + width: 100%; + justify-content: space-between; + } + + .equity-and-global { + width: 100%; + + .pillar-splash { + margin: 24px 0; + } + } + } + + @media #{$big} { + .three-pillars { + .pillar-splash { + width: 244px; + height: 160px; + } + } + + .equity-and-global { + .pillar-splash { + height: 64px; + } + } + } + + @media #{$intermediate} { + .inner { + max-width: 620px; + } + + .three-pillars { + .pillar-splash { + width: 192px; + height: 128px; + } + } + + .equity-and-global { + .pillar-splash { + height: 44px; + } + } + } + + @media #{$medium} { + .inner { + max-width: 460px; + } + + + h4 { + font-size: 1rem; + line-height: 1rem; + } + + .three-pillars { + .pillar-splash { + width: 136px; + height: 148px; + + &.community { + width: 164px; + } + } + } + + .equity-and-global { + .pillar-splash { + height: 44px; + } + } + } + + @media #{$small} { + .inner { + max-width: 300px; + } + + h4 { + font-size: 1rem; + line-height: 1rem; + } + + .three-pillars { + .pillar-splash { + width: 90px; + height: 96px; + + &.community { + width: 108px; + } + } + } + + .equity-and-global { + .pillar-splash { + height: 44px; + } + } + } + } + + .initiatives-subsection-header { + background-image: url("/images/annual-report/initiatives/Juice Pattern.svg"); + + padding: 92px 0; + + &.tools { + background-color: $ui-aqua; + background-position: 50% 0%; + } + + &.community { + background-color: $ui-blue; + background-position: 50% 50%; + } + + &.schools { + background-color: $ui-purple; + background-position: 50% 100%; + } + + .inner { + max-width: 780px; + text-align: center; + + h2, p { + color: $ui-white; + } + + p { + font-size: 1.25rem; + line-height: 2.5rem; + } + + @media #{$medium} { + max-width: 460px; + } + + @media #{$small} { + max-width: 300px; + } + } + } + + .initiatives-subsection-content { + .inner { + display: flex; + flex-direction: column; + align-items: center; + + @media #{$big} { + max-width: 940px; + padding: 72px 0; + } + + @media #{$medium-and-intermediate} { + padding-top: 72px; + } + + @media #{$medium} { + max-width: 460px; + } + + @media #{$small} { + max-width: 300px; + padding-top: 32px; + } + + &.abhi { + padding-top: 0; + padding-bottom: 132px; + } + + &.schools { + align-items: flex-start; + text-align: left; + + padding-bottom: 0px; + + .subsection-tag { + background-color: $ui-purple; + } + + @media #{$big} { + max-width: 620px; + } + + @media #{$intermediate} { + max-width: 620px; + } + + @media #{$small} { + padding-top: 32px; + align-items: flex-start; + h2 { + line-height: 2.5rem; + } + } + } + + &.four-pictures-container { + margin-top: 10px; + margin-bottom: 0px; + padding-bottom: 0px; + position: relative; + + @media #{$medium} { + max-width: 760px; + + padding-top: 10px; + padding-bottom: 10px; + } + + .four-pictures { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + flex-wrap: wrap; + padding-top: 10px; + padding-bottom: 10px; + + img { + width: 380px; + margin: 10px; + + @media #{$intermediate} { + width: 300px; + } + + @media #{$medium} { + width: 220px; + } + + @media #{$small} { + width: 300px; + display: flex; + flex-direction: column; + flex-wrap: nowrap; + } + } + } + + .pencils-img { + position: absolute; + width: 145px; + padding: 0px; + left: 0px; + top: 60px; + + @media #{$medium} { + width: 80px; + top: 0px; + + img { + width: 80px; + } + } + + @media #{$small} { + width: 80px; + top: 0px; + + img { + width: 80px; + } + } + } + + .pizza-img { + position: absolute; + right: 0px; + bottom: 40px; + + @media #{$medium} { + width: 80px; + + img { + width: 80px; + } + } + + @media #{$small} { + width: 80px; + + img { + width: 80px; + } + } + } + } + + &.schools-conferences { + align-items: flex-start; + text-align: left; + + &.bottom { + padding-top: 0px; + + @media #{$intermediate-and-smaller} { + padding-top: 32px; + } + } + + @media #{$intermediate} { + max-width: 620px; + } + + @media #{$medium} { + max-width: 460px; + } + + @media #{$small} { + max-width: 300px; + + align-items: center; + + h2 { + line-height: 2.5rem; + } + } + + .subsection-tag { + background-color: $ui-purple; + margin-bottom: 24px; + } + + .schools-conferences-header { + max-width: 620px; + margin-bottom: 20px; + } + + .schools-conferences-intro { + display: flex; + flex-direction: row; + align-items: flex-start; + text-align: left; + + @media #{$intermediate-and-smaller} { + flex-direction: column; + align-items: center; + } + + p { + width: 380px; + margin-top: 0px; + margin-right: 20px; + + @media #{$medium-and-smaller} { + margin: 0px 0px 20px 0px; + } + + @media #{$intermediate} { + width: 620px; + } + + @media #{$medium} { + width: 460px; + } + + @media #{$small} { + width: 300px; + } + } + } + + .schools-conferences-content { + align-self: center; + max-width: 780px; + + @media #{$intermediate} { + width: 620px; + } + + @media #{$medium} { + width: 460px; + } + + @media #{$small} { + width: 300px; + } + + .schools-conferences-region { + display: flex; + flex-direction: row; + justify-content: center; + align-items: flex-start; + margin-bottom: 20px; + + @media #{$medium-and-smaller} { + flex-direction: column; + align-items: center; + margin-bottom: 48px; + + &.europe { + flex-direction: column-reverse; + } + } + + .conference-image-and-caption { + display: flex; + flex-direction: column; + align-items: center; + + font-size: 0.875rem; + line-height: 1.25rem; + + img { + width: 300px; + } + + @media #{$medium-and-smaller} { + margin-bottom: 32px; + } + } + + .conference-title-and-description { + display: flex; + flex-direction: column; + align-items: flex-start; + width: 460px; + + @media #{$small} { + width: 300px; + } + + } + + .left { + margin-right: 20px; + } + } + } + } + } + + .conferences-hero-and-caption { + display: flex; + flex-direction: column; + align-items: center; + max-width: 540px; + margin-bottom: 24px; + + img { + @media #{$medium-and-smaller} { + width: 460px; + } + } + + span { + font-size: 0.875rem; + line-height: 1.25rem; + + @media #{$small} { + width: 300px; + } + } + + .conferences-hero { + background-image: url('/images/annual-report/initiatives/schools/Conferences Story/Scratch Conferences Hero.png'); + overflow: hidden; + background-position: center center; + height: 320px; + width: 100%; + } + } + + .teacher-quote { + width: 620px; + text-align: left; + + @media #{$medium} { + width: 460px; + padding: 0px; + } + + @media #{$small} { + width: 100%; + padding: 0px; + } + + .quote-person img { + height: auto; + } + + .comment-text { + background-color: $ui-purple; + opacity: 75%; + white-space: pre-line; + margin-top: 8px; + + p { + color: $ui-white; + line-height: 40px; + font-size: 1.25rem; + } + } + + .comment-text, .comment-text::before, .comment-text::after { + border-color: $ui-purple; + } + .comment-text { + padding: 1.75rem; + } + } + + .extending-reach { + margin: 40px 0px; + } + + .news-links { + display: flex; + justify-content: flex-start; + + margin: 20px 0px; + + @media #{$medium-and-smaller} { + flex-direction: column; + } + + .icon-and-link { + display: flex; + align-items: center; + margin-right: $cols1; + + img { + margin-right: 5px; + } + } + } + } + + .initiatives-subsection-intro { + max-width: 780px; + text-align: center; + margin: 32px 0; + + p { + max-width: 620px; + } + + &.schools { + text-align: left; + max-width: 620px; + } + } + + .quote-person { + display: flex; + align-items: center; + font-weight: bold; + margin-left: -16px; + + img { + width: 60px; + height: 60px; + border-radius: 4px; + margin-right: 20px; + } + } + + .initiatives-tools { + .hero { + display: flex; + justify-content: space-between; + + .right { + width: 58%; + max-width: 740px; + } + + .left { + width: 42%; + max-width: 520px; + } + } + + .subsection-tag { + background-color: $ui-aqua; + + @media #{$small} { + max-width: 250px; + } + + &.collaborator { + color: $type-gray; + background-color: $ui-blue-10percent; + font-weight: normal; + font-size: .75rem; + } + } + + .tools-extensions { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + width: 100%; + } + + .tools-extension { + width: 380px; + text-align: center; + display: flex; + flex-direction: column; + align-items: center; + + @media #{$intermediate} { + img { + max-width: 300px; + } + } + + @media #{$small} { + img { + max-width: 300px; + } + } + } + + .tools-stats { + display: flex; + flex-wrap: wrap; + width: 100%; + margin-bottom: 40px; + justify-content: space-between; + .tools-stat { + width: 160px; + font-size: .875rem; + line-height: 1.25rem; + + a { + font-weight: normal; + } + } + } + + .tools-LEGO, .tools-app { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-content: center; + max-width: 780px; + margin-top: 80px; + + img { + width: 380px; + } + + .tools-LEGO-info, .tools-app-info { + display: flex; + flex-direction: column; + justify-content: center; + width: 380px; + + h4, p { + margin-bottom: 28px; + } + } + } + + .tools-app { + margin-top: 0px; + margin-bottom: 124px; + } + + .tools-tutorials { + width: 760px; + text-align: center; + display: flex; + flex-direction: column; + align-items: center; + margin: 80px 0; + + p { + max-width: 620px; + } + + .tutorial-list { + width: 100%; + display: flex; + flex-wrap: wrap; + justify-content: space-between; + margin: 32px 0; + + img { + border-radius: 8px; + @media #{$big} { + width: 180px; + height: 100px; + } + @media #{$intermediate} { + width: 140px; + height: 76px; + } + @media #{$medium} { + width: 220px; + height: 120px; + } + @media #{$small} { + width: 140px; + height: 76px; + } + } + } + + .tools-stats { + justify-content: center; + + .tools-stat { + margin: 0px 10px; + } + } + } + + .tools-abhi { + .tools-abhi-intro { + display: flex; + flex-wrap: wrap; + align-items: flex-start; + margin-top: 32px; + + div { + max-width: 436px; + } + + p { + margin-bottom: 0; + } + } + + @media #{$small} { + .subsection-tag { + margin-left: -10px; + } + } + } + + .abhi-quote { + width: 620px; + + .comment-text { + background-color: $ui-aqua; + white-space: pre-line; + margin-top: 8px; + + p { + color: $ui-white; + line-height: 40px; + font-size: 1.25rem; + } + } + + .comment-text, .comment-text::before, .comment-text::after { + border-color: $ui-aqua; + } + .comment-text { + padding: 1.75rem; + } + } + + @media #{$intermediate-and-smaller} { + .tools-LEGO-info, .tools-app-info { + h4, p { + text-align: left; + } + } + + .tools-extension { + width: 300px; + + .tools-stat { + width: 140px; + } + } + + .tools-tutorials { + width: 620px; + } + + .tools-abhi { + max-width: 620px; + align-items: center; + + .tools-abhi-intro { + width: 100%; + justify-content: center; + margin-bottom: 48px; + + img { + order: -1; + width: 100%; + margin-bottom: 28px; + } + + div { + max-width: 100%; + } + } + + .emoji-text { + text-align: left; + } + } + } + + @media #{$medium-and-smaller} { + .inner { + max-width: 460px; + } + + .tools-extensions { + width: 100%; + justify-content: center; + + .tools-extension { + width: 100%; + margin-bottom: 60px; + + .tools-stats { + justify-content: space-around; + } + } + } + + .tools-LEGO, .tools-app { + width: 100%; + align-items: center; + justify-content: center; + margin-top: 0px; + + .tools-LEGO-info, .tools-app-info { + width: 100%; + } + + h4, p { + text-align: center; + } + + h4 { + margin: 36px 0; + } + + img { + width: 300px; + order: -1; + } + + .subsection-tag { + align-self: center; + } + } + + .tools-tutorials { + width: 100%; + + .tutorial-list { + justify-content: center; + + img { + margin: 8px; + } + } + + .tools-stats { + max-width: 100%; + width: 100%; + + justify-content: space-around; + } + } + + .tools-abhi { + h2 { + margin-top: 28px; + } + } + + .abhi-quote { + width: 460px; + } + + .emoji-text { + text-align: left; + } + } + + @media #{$small} { + .tools-abhi-intro { + width: 100%; + text-align: left; + + img { + width: 100%; + } + + h2 { + line-height: 2.5rem; + } + } + + .abhi-quote { + width: 100%; + padding: 0; + } + } + } + + .initiatives-community { + .community-hero-img { + width: 100%; + height: 545px; + margin: 52px 0; + + background-image: url("/images/annual-report/initiatives/community-hero.png"); + background-size: contain; + background-repeat: no-repeat; + background-position: center center; + overflow: hidden; + + @media #{$intermediate} { + height: 330px; + } + + @media #{$medium-and-smaller} { + height: 244px; + } + } + + .moderation-and-guidelines { + display: flex; + justify-content: space-between; + flex-wrap: wrap; + } + + .community-moderation { + width: 380px; + margin-right: 80px; + } + + .community-guidelines { + width: 460px; + + p { + font-size: 1.25rem; + } + } + + .guidelines-list { + display: flex; + flex-wrap: wrap; + + ul { + list-style-image: url('/images/annual-report/initiatives/guideline-splash.svg'); + margin-right: 36px; + padding: 0 24px; + } + } + + .community-engagement { + max-width: 620px; + text-align: center; + margin: 48px; + } + + .community-sds { + text-align: center; + margin-bottom: 68px; + + .sds-list { + display: flex; + justify-content: center; + flex-wrap: wrap; + + .sds-tile { + width: 200px; + text-align: center; + margin: 8px; + + img { + width: 100%; + border-radius: 8px; + } + + p { + font-size: .875rem; + line-height: 1.25rem; + } + } + } + } + + .quotes-tag, .blm-tag { + align-self: flex-start; + } + + .community-quotes { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + margin-top: 48px; + margin-bottom: 144px; + + .community-quote { + width: 380px; + margin: 24px; + + .comment-text { + background-color: $ui-blue; + white-space: pre-line; + margin-top: 8px; + + p { + color: $ui-white; + line-height: 40px; + font-size: 1.25rem; + } + } + .comment-text, .comment-text::before, .comment-text::after { + border-color: $ui-blue; + } + .comment-text { + padding: 1.75rem; + } + } + } + + .community-blm { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: center; + + h2 { + margin-top: 32px; + } + + .blm-intro { + max-width: 460px; + } + + .blm-image { + max-width: 380px; + text-align: center; + + span { + margin-top: 1rem; + } + + @media #{$small} { + img { + width: 300px; + } + } + } + + .blm-projects { + .flex-row { + max-width: 500px; + flex-wrap: true; + } + + .grid .thumbnail { + box-shadow: none; + } + } + + .grid .thumbail { + box-shadow: none; + background-color: blue; + } + + .blm-change { + width: 380px; + + p { + font-size: 1.25rem; + line-height: 2.5rem; + } + } + } + + @media #{$intermediate} { + .community-moderation, .community-guidelines, .community-engagement { + width: 620px; + } + } + + @media #{$intermediate-and-smaller} { + .inner { + max-width: 620px; + } + + .moderation-and-guidelines { + flex-direction: column; + } + + .community-moderation, .community-guidelines, .community-engagement { + margin: 32px 0; + text-align: left; + } + + .sds-list { + max-width: 460px; + } + + .community-quotes { + .community-quote { + width: 100%; + text-align: left; + margin: 24px 0; + + .comment-text { + margin-left: 12px; + } + } + } + + .blm-tag { + align-self: center; + } + + .community-blm { + margin: 16px 0; + justify-content: center; + + .blm-image { + order: -1; + } + + .blm-intro, .blm-change { + max-width: 100%; + width: 100%; + } + + .blm-change { + margin-top: 80px; + } + } + } + + @media #{$small} { + .inner { + overflow: hidden; + } + + .hero { + width: 540px; + } + + .community-moderation, .community-guidelines, .community-engagement { + width: 300px; + text-align: left; + } + + ul { + margin: 0; + padding-left: 24px; + } + + li { + margin-bottom: 0; + } + } + } + + .video-container { + width: 100%; + height: 500px; + + display: flex; + justify-content: center; + + margin-bottom: 72px; + } + + .video-background { + width: 100%; + height: 500px; + overflow: hidden; + + background-size: auto 100%; + background-repeat: no-repeat; + background-position: 50% 50%; + + display: flex; + align-items: center; + justify-content: center; + + &.blm { + background-image: url("/images/annual-report/initiatives/BLM Video Splash.svg"); + } + + &.abhi { + background-image: url("/images/annual-report/initiatives/Abhi Video Splash.svg"); + + .button { + background-color: $ui-aqua; + } + } + + &.cps { + background-image: url("/images/annual-report/initiatives/schools/CPS Story/CPS Video Splash.svg"); + + .button { + background-color: $ui-purple; + } + } + } +} + +.financials-section { + .inner { + max-width: 780px; + padding: 80px 0; + } + + background-color: $header-gray; + width: 100%; + color: $ui-white; + + h2, p { + color: $ui-white; + } + + h2 { + margin-bottom: 20px; + text-align: center; + } + + h2, h3, .financials-future { + text-align: center; + } + + .financials-future { + font-size: 1.25rem; + line-height: 2.5rem; + margin-bottom: 54px; + } + + .financials-button-wrapper { + width: 100%; + text-align: center; + } + + .financials-button { + background-color: $ui-white; + color: $ui-blue; + padding: 20px; + border-radius: 6px; + margin: 48px 0 28px 0; + + font-size: 24px; + font-weight: bold; + + vertical-align: middle; + + img { + height: 1.75rem; + padding-left: 1.2rem; + margin-top: -4px; + margin-bottom: -4px; + } + } + + @media #{$intermediate-and-smaller} { + .inner { + max-width: 620px; + padding: 72px 0; + } + } + + @media #{$medium-and-smaller} { + .inner { + max-width: 460px; + padding: 64px 0; + } + + .financials-future { + margin-bottom: 64px; + } + } + + @media #{$small} { + .inner { + max-width: 300px; + width: 100%; + } + + h2, h3, .financials-future { + text-align: center; + } + + .financials-button { + font-size: 1.125rem; + } + } +} + +.subsection-tag { + color: $ui-white; + font-size: 1rem; + font-weight: bold; + + background-color: $ui-blue; + text-align: center; + border-radius: 36px; + + display: inline-flex; + width: max-content; + padding: 12px 36px; +} + +.supporters-section { + background-color: $ui-blue-10percent; + padding: 104px 0 52px 0; + + .inner { + max-width: 780px; + display: flex; + flex-direction: column; + align-items: center; + } + + .subsection-tag { + align-self: flex-start; + } + + h3, h4 { + margin-bottom: 20px; + } + + ul { + padding: 0; + } + + li { + list-style: none; + } + + .supporters-heading { + margin-bottom: 68px; + + h2 { + padding-bottom: 24px; + } + + p { + font-size: 1.25rem; + line-height: 2.5rem; + } + } + + .subsection-tag { + background-color: $ui-orange; + } + + .supporters-subsection { + display: flex; + flex-direction: column; + align-items: center; + + text-align: left; + margin-top: 48px; + width: 620px; + + h2 { + font-size: 1.5rem; + } + + p { + font-size: 16px; + } + } + + .founding-partners-blurb { + font-style: italic; + } + + .david-siegel { + display: flex; + align-items: flex-start; + + margin: 32px 0px 52px 0px; + + .ds-info { + display: flex; + line-height: 24px; + } + + img { + width: 140px; + } + + .ds-text { + width: 144px; + } + } + + .comment-text { + background-color: $ui-white; + text-align: left; + padding: 20px; + + p { + font-size: 1.25rem; + line-height: 2.25rem; + } + } + + .supporters-level { + width: 100%; + margin: 24px 0; + + hr { + border: 0; + height: 0; + border-top: 1px solid $box-shadow-light-gray; + margin-bottom: 2rem; + } + + .supporters-list { + display: flex; + } + + .supporters-list-side { + margin: 0 1.25rem 0 0; + width: 300px; + + li { + margin: 0 0 .75rem 0; + padding: 0 auto; + overflow: wrap; + } + } + } + @media #{$big} { + .ds-info { + flex-direction: column; + text-align: center; + width: 144px; + margin-right: 60px; + } + } + + @media #{$intermediate-and-smaller} { + .inner { + max-width: 620px; + } + + .subsection-tag { + align-self: center; + } + + .supporters-subsection { + text-align: left; + + width: 460px; + + &.supporters-lists { + width: 100%; + } + } + + .david-siegel { + width: 460px; + } + + .ds-info { + width: 460px; + flex-direction: row; + text-align: left; + margin-bottom: 20px; + + img { + margin-right: 20px; + } + } + + .david-siegel { + flex-direction: column; + align-items: center; + } + } + + @media #{$medium-and-smaller} { + .supporters-subsection { + margin: 0; + } + + .supporters-heading { + margin-bottom: 28px; + } + + .subsection-tag { + margin-bottom: 48px; + } + + .supporters-list-side { + width: 220px; + } + + .ds-info { + width: 100%; + } + } + + @media #{$small} { + .supporters-subsection { + width: 100% + } + + .david-siegel { + width: 100%; + } + + .supporters-list { + flex-direction: column; + align-content: flex-start; + } + } +} + +.leadership-section { + background-color: $ui-blue-10percent; + + .inner { + padding: 76px 0; + } + + h2, h3, h4 { + text-align: center; + } + + h2 { + margin-bottom: 84px; + } + + .leadership-board { + justify-content: center; + margin-bottom: 96px; + + .board-member { + text-align: center; + width: 300px; + margin-top: 44px; + line-height: 1.5rem; + } + + h4 { + padding: 12px 0 16px 0; + } + } + + .leadership-scratch-team { + margin-top: 128px; + + .avatar-item { + img { + background-color: $ui-blue-10percent; + } + + .avatar-text { + width: 140px; + } + } + } + + .executive-director { + text-align: center; + padding: 72px; + + .avatar-text { + font-size: 1.5rem; + font-weight: bold; + padding: 12px 0 20px 0; + } + + .avatar-item { + padding-bottom: 0px; + } + } +} + +.donate-section { + background-color: $ui-aqua; + + .donate-info { + justify-content: center; + align-items: flex-start; + padding: 84px 0px; + + img { + width: 300px; + height: 300px; + } + + @media #{$intermediate} { + img { + width: 220px; + height: 220px; + } + } + + @media #{$medium-and-smaller} { + align-items: center; + } + } + + .donate-content { + margin-left: 20px; + + h2, p { + color: $ui-white; + } + + width: 460px; + + @media #{$intermediate} { + text-align: left; + } + + @media #{$medium-and-smaller} { + margin-left: 0px; + text-align: center; + } + + @media #{$small} { + width: 300px; + } + + + } + + .donate-button { + background-color: $ui-white; + color: $ui-blue; + height: 66px; + width: 176px; + padding: 0px; + margin: 0px; + border-radius: 6px; + + font-size: 24px; + font-weight: bold; + letter-spacing: 0; + line-height: 29px; + + a { + color: $ui-blue; + } + + span { + vertical-align: middle; + } + } +} + +.subnavigation { + position: fixed; + top: 50px; + z-index: 9; + box-shadow: 0 0 3px $box-shadow-gray; + background-color: $ui-blue-dark; + padding: 0; + width: 100%; + height: 58px; + + color: $type-white; + font-size: .85rem; + font-weight: bold; + + .flex-row { + height: 100%; + } + + a { + text-decoration: none; + white-space: nowrap; + color: $type-white; + font-size: .85rem; + + &.selectedItem, &:hover { + border-bottom: 1px solid $ui-white; + } + } + + .sectionIndicator { + display: flex; + justify-content: space-between; + align-items: center; + + height: 58px; + + p { + color: $ui-white; + font-weight: bold; + } + + .dropdown-button { + background: none; + border: 0px; + padding: 0px; + margin: 0px; + + .rotated { + transform: rotate(180deg); + } + } + + img { + margin: 0; + padding: 0; + } + } + + hr { + border: 0; + height: 0; + border-top: 1px solid $box-shadow-light-gray; + margin-top: 0; + } + + @media #{$medium-and-smaller} { + height: auto; + + .flex-row { + flex-direction: row; + justify-content: flex-start; + + padding-bottom: 20px; + } + + a { + padding: 10px; + margin: 5px 10px 5px 0px; + border: 1px solid $box-shadow-light-gray; + border-radius: 4px; + + &.selectedItem, &:hover { + border-bottom: 1px solid $box-shadow-light-gray; + background-color: $box-shadow-light-gray; + } + } + + // Would be good to see if this works in RTL... + [dir="rtl"] a { + margin-left: 10px; + margin-right: 0px; + } + } + +} + +.annual-report-content, #footer { + position: relative; + top: 58px; +} diff --git a/src/views/annual-report/blm-projects.json b/src/views/annual-report/blm-projects.json new file mode 100644 index 000000000..60a6d1e80 --- /dev/null +++ b/src/views/annual-report/blm-projects.json @@ -0,0 +1,42 @@ +[ + { + "id": 423104626, + "author": { + "id": 61730637, + "username": "-pug_arts-" + }, + "image": "https://cdn2.scratch.mit.edu/get_image/project/423104626_144x108.png", + "title": "♡ BLM ART! ♡", + "stats": {} + }, + { + "id": 404637877, + "author": { + "id": 60051701, + "username": "-MayThe4thBeWithYou-" + }, + "image": "https://cdn2.scratch.mit.edu/get_image/project/404637877_144x108.png", + "title": "Can't Breathe", + "stats": {} + }, + { + "id": 404286089, + "author": { + "id": 28599090, + "username": "BubbleMint-" + }, + "image": "https://cdn2.scratch.mit.edu/get_image/project/404286089_144x108.png", + "title": "In Memory of George Floyd || ♡", + "stats": {} + }, + { + "id": 408116876, + "author": { + "id": 58796616, + "username": "-bIueberryonthemoon-" + }, + "image": "https://cdn2.scratch.mit.edu/get_image/project/408116876_144x108.png", + "title": "Justice for Breonna Taylor ❤️", + "stats": {} + } +] diff --git a/src/views/annual-report/country-usage.json b/src/views/annual-report/country-usage.json new file mode 100644 index 000000000..4ce69153a --- /dev/null +++ b/src/views/annual-report/country-usage.json @@ -0,0 +1 @@ +{"Afghanistan":{"index":0,"code":"af","display":"Afghanistan","count":235205,"log count":5.3714465498},"Aland Islands":{"index":1,"code":"ax","display":"\u00c5land Islands","count":180533,"log count":5.2565565991},"Albania":{"index":2,"code":"al","display":"Albania","count":419603,"log count":5.6228385846},"Algeria":{"index":3,"code":"dz","display":"Algeria","count":193710,"log count":5.2871520411},"American Samoa":{"index":4,"code":"as","display":"American Samoa","count":64161,"log count":4.8072711242},"Andorra":{"index":5,"code":"ad","display":"Andorra","count":71290,"log count":4.8530286147},"Angola":{"index":6,"code":"ao","display":"Angola","count":39306,"log count":4.5944588498},"Anguilla":{"index":7,"code":"ai","display":"Anguilla","count":32692,"log count":4.5144414902},"Antigua and Barbuda":{"index":9,"code":"ag","display":"Antigua and Barbuda","count":23261,"log count":4.3666283813},"Argentina":{"index":10,"code":"ar","display":"Argentina","count":200613,"log count":5.3023590725},"Armenia":{"index":11,"code":"am","display":"Armenia","count":35898,"log count":4.5550702532},"Aruba":{"index":12,"code":"aw","display":"Aruba","count":25047,"log count":4.3987557158},"Australia":{"index":13,"code":"au","display":"Australia","count":1655297,"log count":6.218875928},"Austria":{"index":14,"code":"at","display":"Austria","count":93573,"log count":4.9711505534},"Azerbaijan":{"index":15,"code":"az","display":"Azerbaijan","count":28599,"log count":4.4563508477},"Bahamas":{"index":16,"code":"bs","display":"Bahamas","count":35546,"log count":4.5507907366},"Bahrain":{"index":17,"code":"bh","display":"Bahrain","count":13293,"log count":4.1236230048},"Bangladesh":{"index":18,"code":"bd","display":"Bangladesh","count":27349,"log count":4.4369414512},"Barbados":{"index":19,"code":"bb","display":"Barbados","count":7960,"log count":3.9009130677},"Belarus":{"index":20,"code":"by","display":"Belarus","count":39266,"log count":4.5940166622},"Belgium":{"index":21,"code":"be","display":"Belgium","count":210232,"log count":5.3226988219},"Belize":{"index":22,"code":"bz","display":"Belize","count":7420,"log count":3.8704039053},"Benin":{"index":23,"code":"bj","display":"Benin","count":3695,"log count":3.5676144427},"Bermuda":{"index":24,"code":"bm","display":"Bermuda","count":9432,"log count":3.9746037921},"Bhutan":{"index":25,"code":"bt","display":"Bhutan","count":4100,"log count":3.6127838567},"Bolivia":{"index":26,"code":"bo","display":"Bolivia","count":21265,"log count":4.3276653871},"Bonaire, Sint Eustatius and Saba":{"index":27,"code":"bq","display":"Bonaire, Sint Eustatius and Saba","count":193944,"log count":5.2876763485},"Bosnia and Herzegovina":{"index":28,"code":"ba","display":"Bosnia and Herzegovina","count":13386,"log count":4.1266508207},"Botswana":{"index":29,"code":"bw","display":"Botswana","count":4339,"log count":3.6373896501},"Bouvet Island":{"index":30,"code":"bv","display":"Bouvet Island","count":2458,"log count":3.3905818786},"Brazil":{"index":31,"code":"br","display":"Brazil","count":597148,"log count":5.7760819821},"British Indian Ocean Territory":{"index":32,"code":"io","display":"British Indian Ocean Territory","count":8810,"log count":3.9449759084},"Brunei":{"index":33,"code":"bn","display":"Brunei Darussalami","count":6160,"log count":3.7895807122},"Bulgaria":{"index":34,"code":"bg","display":"Bulgaria","count":58945,"log count":4.770446972},"Burkina Faso":{"index":35,"code":"bf","display":"Burkina Faso","count":2768,"log count":3.4421660858},"Burundi":{"index":36,"code":"bi","display":"Burundi","count":2019,"log count":3.3051363189},"Cambodia":{"index":37,"code":"kh","display":"Cambodia","count":11487,"log count":4.0602066211},"Cameroon":{"index":38,"code":"cm","display":"Cameroon","count":5443,"log count":3.7358383343},"Canada":{"index":39,"code":"ca","display":"Canada","count":1286439,"log count":6.1093891978},"Cape Verde":{"index":40,"code":"cv","display":"Cape Verde","count":2997,"log count":3.4766867429},"Cayman Islands":{"index":41,"code":"ky","display":"Cayman Islands","count":3256,"log count":3.5126843962},"Central African Republic":{"index":42,"code":"cf","display":"Central African Republic","count":1893,"log count":3.277150614},"Chad":{"index":43,"code":"td","display":"Chad","count":3962,"log count":3.5979144712},"Chile":{"index":44,"code":"cl","display":"Chile","count":120889,"log count":5.0823867851},"China":{"index":45,"code":"cn","display":"China","count":3001453,"log count":6.4773315471},"Christmas Island":{"index":46,"code":"cx","display":"Christmas Island","count":14156,"log count":4.150940554},"Cocos (Keeling) Islands":{"index":47,"code":"cc","display":"Cocos (Keeling) Islands","count":3057,"log count":3.4852954387},"Colombia":{"index":48,"code":"co","display":"Colombia","count":480599,"log count":5.6817828628},"Comoros":{"index":49,"code":"km","display":"Comoros","count":1650,"log count":3.2174839442},"Congo":{"index":50,"code":"cg","display":"Congo","count":6199,"log count":3.7923216364},"Congo, The Democratic Republic of the":{"index":51,"code":"cd","display":"The Democratic Republic of the Congo","count":3929,"log count":3.5942820288},"Cook Islands":{"index":52,"code":"ck","display":"Cook Islands","count":3347,"log count":3.5246557124},"Costa Rica":{"index":53,"code":"cr","display":"Costa Rica","count":29078,"log count":4.4635645322},"Cote d'Ivoire":{"index":54,"code":"ci","display":"C\u00f4te d'Ivoire","count":7428,"log count":3.8708718951},"Croatia":{"index":55,"code":"hr","display":"Croatia","count":26378,"log count":4.4212418639},"Cuba":{"index":56,"code":"cu","display":"Cuba","count":9570,"log count":3.9809119378},"Curacao":{"index":57,"code":"cw","display":"Cura\u00e7ao","count":269,"log count":2.42975228},"Cyprus":{"index":58,"code":"cy","display":"Cyprus","count":9822,"log count":3.9921999298},"Czech Republic":{"index":59,"code":"cz","display":"Czech Republic","count":78981,"log count":4.8975226282},"Denmark":{"index":60,"code":"dk","display":"Denmark","count":206644,"log count":5.3152227999},"Djibouti":{"index":61,"code":"dj","display":"Djibouti","count":4722,"log count":3.6741259827},"Dominica":{"index":62,"code":"dm","display":"Dominica","count":3272,"log count":3.514813295},"Dominican Republic":{"index":63,"code":"do","display":"Dominican Republic","count":23552,"log count":4.3720277927},"Ecuador":{"index":64,"code":"ec","display":"Ecuador","count":90788,"log count":4.958028449},"Egypt":{"index":65,"code":"eg","display":"Egypt","count":65587,"log count":4.8168177664},"El Salvador":{"index":66,"code":"sv","display":"El Salvador","count":25797,"log count":4.4115692037},"Equatorial Guinea":{"index":67,"code":"gq","display":"Equatorial Guinea","count":1608,"log count":3.2062860444},"Eritrea":{"index":68,"code":"er","display":"Eritrea","count":3483,"log count":3.5419534745},"Estonia":{"index":69,"code":"ee","display":"Estonia","count":43971,"log count":4.6431663426},"Swaziland":{"index":70,"code":"sz","display":"Eswatini","count":3264,"log count":3.5137501501},"Ethiopia":{"index":71,"code":"et","display":"Ethiopia","count":7628,"log count":3.8824106844},"Falkland Islands (Malvinas)":{"index":72,"code":"fk","display":"Falkland Islands (Malvinas)","count":1552,"log count":3.1908917169},"Faroe Islands":{"index":73,"code":"fo","display":"Faroe Islands","count":1509,"log count":3.1786892398},"Fiji":{"index":74,"code":"fj","display":"Fiji","count":11011,"log count":4.0418267626},"Finland":{"index":75,"code":"fi","display":"Finland","count":133802,"log count":5.1264626051},"France":{"index":76,"code":"fr","display":"France","count":906896,"log count":5.9575574864},"French Guiana":{"index":77,"code":"gf","display":"French Guiana","count":2915,"log count":3.4646385591},"French Polynesia":{"index":78,"code":"pf","display":"French Polynesia","count":2029,"log count":3.307282047},"French Southern Territories":{"index":79,"code":"tf","display":"French Southern Territories","count":1456,"log count":3.163161375},"Gabon":{"index":80,"code":"ga","display":"Gabon","count":3190,"log count":3.5037906831},"Gambia":{"index":81,"code":"gm","display":"Gambia","count":2327,"log count":3.3667963833},"Georgia":{"index":82,"code":"ge","display":"Georgia","count":35872,"log count":4.5547555909},"Germany":{"index":83,"code":"de","display":"Germany","count":277415,"log count":5.4431299399},"Ghana":{"index":84,"code":"gh","display":"Ghana","count":9825,"log count":3.992332559},"Gibraltar":{"index":85,"code":"gi","display":"Gibraltar","count":2637,"log count":3.4211101298},"Greece":{"index":86,"code":"gr","display":"Greece","count":112755,"log count":5.0521358093},"Greenland":{"index":87,"code":"gl","display":"Greenland","count":2662,"log count":3.4252080511},"Grenada":{"index":88,"code":"gd","display":"Grenada","count":1980,"log count":3.2966651903},"Guadeloupe":{"index":89,"code":"gp","display":"Guadeloupe","count":3458,"log count":3.5388249889},"Guam":{"index":90,"code":"gu","display":"Guam","count":3200,"log count":3.5051499783},"Guatemala":{"index":91,"code":"gt","display":"Guatemala","count":28611,"log count":4.4565330374},"Guernsey":{"index":92,"code":"gg","display":"Guernsey","count":6352,"log count":3.8029104894},"Guinea":{"index":93,"code":"gn","display":"Guinea","count":1556,"log count":3.1920095927},"Guinea-Bissau":{"index":94,"code":"gw","display":"Guinea-Bissau","count":946,"log count":2.9758911364},"Guyana":{"index":95,"code":"gy","display":"Guyana","count":2267,"log count":3.3554515201},"Haiti":{"index":96,"code":"ht","display":"Haiti","count":4644,"log count":3.6668922111},"Heard Island and McDonald Islands":{"index":97,"code":"hm","display":"Heard Island and McDonald Islands","count":9063,"log count":3.95727198},"Honduras":{"index":98,"code":"hn","display":"Honduras","count":10615,"log count":4.0259199985},"Hong Kong":{"index":99,"code":"hk","display":"Hong Kong","count":219046,"log count":5.3405353269},"Hungary":{"index":100,"code":"hu","display":"Hungary","count":97063,"log count":4.9870537103},"Iceland":{"index":101,"code":"is","display":"Iceland","count":17681,"log count":4.2475068241},"India":{"index":102,"code":"in","display":"India","count":316219,"log count":5.4999879609},"Indonesia":{"index":103,"code":"id","display":"Indonesia","count":67697,"log count":4.8305694233},"Iran":{"index":104,"code":"ir","display":"Iran","count":17671,"log count":4.2472611269},"Iraq":{"index":105,"code":"iq","display":"Iraq","count":11960,"log count":4.0777311797},"Ireland":{"index":106,"code":"ie","display":"Ireland","count":277338,"log count":5.4430093793},"Isle of Man":{"index":107,"code":"im","display":"Isle of Man","count":5656,"log count":3.7525094008},"Israel":{"index":108,"code":"il","display":"Israel","count":191200,"log count":5.2814878879},"Italy":{"index":109,"code":"it","display":"Italy","count":360769,"log count":5.5572292126},"Jamaica":{"index":110,"code":"jm","display":"Jamaica","count":16677,"log count":4.2221179288},"Japan":{"index":111,"code":"jp","display":"Japan","count":508869,"log count":5.7066059947},"Jersey":{"index":112,"code":"je","display":"Jersey","count":8780,"log count":3.9434945159},"Jordan":{"index":113,"code":"jo","display":"Jordan","count":14444,"log count":4.1596874798},"Kazakhstan":{"index":114,"code":"kz","display":"Kazakhstan","count":28249,"log count":4.4510030786},"Kenya":{"index":115,"code":"ke","display":"Kenya","count":13568,"log count":4.1325158349},"Kiribati":{"index":116,"code":"ki","display":"Kiribati","count":1363,"log count":3.1344958558},"North Korea":{"index":117,"code":"kp","display":"Democratic People's Republic of Korea","count":40455,"log count":4.6069722055},"South Korea":{"index":118,"code":"kr","display":"Republic of Korea","count":935233,"log count":5.9709198226},"Kosovo":{"index":119,"code":"xk","display":"Kosovo","count":7589,"log count":3.8801845528},"Kuwait":{"index":120,"code":"kw","display":"Kuwait","count":14011,"log count":4.1464691331},"Kyrgyzstan":{"index":121,"code":"kg","display":"Kyrgyzstan","count":6219,"log count":3.7937205568},"Laos":{"index":122,"code":"la","display":"Laos","count":1979,"log count":3.2964457942},"Latvia":{"index":123,"code":"lv","display":"Latvia","count":38260,"log count":4.5827449657},"Lebanon":{"index":124,"code":"lb","display":"Lebanon","count":9701,"log count":3.9868165046},"Lesotho":{"index":125,"code":"ls","display":"Lesotho","count":843,"log count":2.9258275746},"Liberia":{"index":126,"code":"lr","display":"Liberia","count":1242,"log count":3.0941215958},"Libya":{"index":127,"code":"ly","display":"Libya","count":3550,"log count":3.5502283531},"Liechtenstein":{"index":128,"code":"li","display":"Liechtenstein","count":1683,"log count":3.226084116},"Lithuania":{"index":129,"code":"lt","display":"Lithuania","count":35886,"log count":4.5549250528},"Luxembourg":{"index":130,"code":"lu","display":"Luxembourg","count":8650,"log count":3.9370161075},"Macao":{"index":131,"code":"mo","display":"Macao","count":9222,"log count":3.9648251179},"Madagascar":{"index":132,"code":"mg","display":"Madagascar","count":5224,"log count":3.7180031683},"Malawi":{"index":133,"code":"mw","display":"Malawi","count":1541,"log count":3.1878026387},"Malaysia":{"index":134,"code":"my","display":"Malaysia","count":180475,"log count":5.2564170505},"Maldives":{"index":135,"code":"mv","display":"Maldives","count":2335,"log count":3.3682868849},"Mali":{"index":136,"code":"ml","display":"Mali","count":1886,"log count":3.2755416884},"Malta":{"index":137,"code":"mt","display":"Malta","count":6848,"log count":3.8355637517},"Marshall Islands":{"index":138,"code":"mh","display":"Marshall Islands","count":1324,"log count":3.1218879851},"Martinique":{"index":139,"code":"mq","display":"Martinique","count":3260,"log count":3.5132176001},"Mauritania":{"index":140,"code":"mr","display":"Mauritania","count":857,"log count":2.9329808219},"Mauritius":{"index":141,"code":"mu","display":"Mauritius","count":4218,"log count":3.6251065754},"Mayotte":{"index":142,"code":"yt","display":"Mayotte","count":1081,"log count":3.033825694},"Mexico":{"index":143,"code":"mx","display":"Mexico","count":394954,"log count":5.5965465166},"Micronesia, Federated States of":{"index":144,"code":"fm","display":"Micronesia, Federated States of","count":1234,"log count":3.0913151597},"Moldova":{"index":145,"code":"md","display":"Moldova","count":9690,"log count":3.9863237771},"Monaco":{"index":146,"code":"mc","display":"Monaco","count":2259,"log count":3.3539162309},"Mongolia":{"index":147,"code":"mn","display":"Mongolia","count":7692,"log count":3.8860392756},"Montenegro":{"index":148,"code":"me","display":"Montenegro","count":2830,"log count":3.4517864355},"Montserrat":{"index":149,"code":"ms","display":"Montserrat","count":1206,"log count":3.0813473078},"Morocco":{"index":150,"code":"ma","display":"Morocco","count":36348,"log count":4.5604805194},"Mozambique":{"index":151,"code":"mz","display":"Mozambique","count":2070,"log count":3.3159703455},"Myanmar":{"index":152,"code":"mm","display":"Myanmar","count":4826,"log count":3.6835873176},"Namibia":{"index":153,"code":"na","display":"Namibia","count":2540,"log count":3.4048337166},"Nauru":{"index":154,"code":"nr","display":"Nauru","count":739,"log count":2.8686444384},"Nepal":{"index":155,"code":"np","display":"Nepal","count":8530,"log count":3.9309490312},"Netherlands":{"index":156,"code":"nl","display":"Netherlands","count":425793,"log count":5.6291985174},"Netherlands Antilles":{"index":157,"code":"an","display":"Netherlands Antilles","count":3623,"log count":3.559068334},"New Caledonia":{"index":158,"code":"nc","display":"New Caledonia","count":3106,"log count":3.4922014514},"New Zealand":{"index":159,"code":"nz","display":"New Zealand","count":477579,"log count":5.6790452218},"Nicaragua":{"index":160,"code":"ni","display":"Nicaragua","count":9326,"log count":3.9696954111},"Niger":{"index":161,"code":"ne","display":"Niger","count":9784,"log count":3.990516444},"Nigeria":{"index":162,"code":"ng","display":"Nigeria","count":30338,"log count":4.481986947},"Niue":{"index":163,"code":"nu","display":"Niue","count":1053,"log count":3.0224283712},"Norfolk Island":{"index":164,"code":"nf","display":"Norfolk Island","count":1231,"log count":3.0902580529},"Macedonia, The Former Yugoslav Republic of":{"index":165,"code":"mk","display":"North Macedonia","count":8262,"log count":3.9170851906},"Northern Mariana Islands":{"index":166,"code":"mp","display":"Northern Mariana Islands","count":967,"log count":2.9854264741},"Norway":{"index":167,"code":"no","display":"Norway","count":182340,"log count":5.2608819505},"Oman":{"index":168,"code":"om","display":"Oman","count":11772,"log count":4.0708502534},"Pakistan":{"index":169,"code":"pk","display":"Pakistan","count":67181,"log count":4.8272464641},"Palau":{"index":170,"code":"pw","display":"Palau","count":1558,"log count":3.1925674533},"Palestine, State of":{"index":171,"code":"ps","display":"Palestine","count":14713,"log count":4.167701235},"Panama":{"index":172,"code":"pa","display":"Panama","count":13240,"log count":4.1218879851},"Papua New Guinea":{"index":173,"code":"pg","display":"Papua New Guinea","count":1719,"log count":3.2352758767},"Paraguay":{"index":174,"code":"py","display":"Paraguay","count":6069,"log count":3.7831171375},"Peru":{"index":175,"code":"pe","display":"Peru","count":90539,"log count":4.9568356934},"Philippines":{"index":176,"code":"ph","display":"Philippines","count":93385,"log count":4.9702771231},"Pitcairn":{"index":177,"code":"pn","display":"Pitcairn","count":1161,"log count":3.0648322197},"Poland":{"index":178,"code":"pl","display":"Poland","count":1445684,"log count":6.1600733745},"Portugal":{"index":179,"code":"pt","display":"Portugal","count":217056,"log count":5.3365717954},"Puerto Rico":{"index":180,"code":"pr","display":"Puerto Rico","count":18631,"log count":4.2702361658},"Qatar":{"index":181,"code":"qa","display":"Qatar","count":19808,"log count":4.2968406273},"Reunion":{"index":182,"code":"re","display":"Reunion","count":6751,"log count":3.829368108},"Romania":{"index":183,"code":"ro","display":"Romania","count":145501,"log count":5.1628659782},"Russia":{"index":184,"code":"ru","display":"Russia","count":232251,"log count":5.3659575926},"Rwanda":{"index":185,"code":"rw","display":"Rwanda","count":1833,"log count":3.263162465},"Saint Barthelemy":{"index":186,"code":"bl","display":"Saint Barth\u00e9lemy","count":689,"log count":2.8382192219},"Saint Helena":{"index":187,"code":"sh","display":"Saint Helena, Ascension and Tristan Da Cunha","count":725,"log count":2.8603380066},"Saint Kitts and Nevis":{"index":188,"code":"kn","display":"Saint Kitts and Nevis","count":976,"log count":2.9894498177},"Saint Lucia":{"index":189,"code":"lc","display":"Saint Lucia","count":1142,"log count":3.0576661039},"Saint Martin":{"index":190,"code":"mf","display":"Saint Martin","count":956,"log count":2.9804578923},"Saint Pierre and Miquelon":{"index":191,"code":"pm","display":"Saint Pierre and Miquelon","count":499,"log count":2.6981005456},"Saint Vincent and the Grenadines":{"index":192,"code":"vc","display":"Saint Vincent and the Grenadines","count":101,"log count":2.0043213738},"Samoa":{"index":193,"code":"ws","display":"Samoa","count":4530,"log count":3.656098202},"San Marino":{"index":194,"code":"sm","display":"San Marino","count":1199,"log count":3.0788191831},"Sao Tome and Principe":{"index":195,"code":"st","display":"Sao Tome and Principe","count":748,"log count":2.8739015979},"Saudi Arabia":{"index":196,"code":"sa","display":"Saudi Arabia","count":40695,"log count":4.6095410528},"Senegal":{"index":197,"code":"sn","display":"Senegal","count":3378,"log count":3.5286596452},"Serbia":{"index":198,"code":"rs","display":"Serbia","count":48092,"log count":4.6820728384},"Seychelles":{"index":199,"code":"sc","display":"Seychelles","count":1339,"log count":3.126780577},"Sierra Leone":{"index":200,"code":"sl","display":"Sierra Leone","count":1257,"log count":3.0993352777},"Singapore":{"index":201,"code":"sg","display":"Singapore","count":109324,"log count":5.0387155135},"Sint Maarten":{"index":202,"code":"sx","display":"Sint Maarten","count":71,"log count":1.8512583487},"Slovakia":{"index":203,"code":"sk","display":"Slovakia","count":46563,"log count":4.6680409536},"Slovenia":{"index":204,"code":"si","display":"Slovenia","count":61110,"log count":4.7861122837},"Solomon Islands":{"index":205,"code":"sb","display":"Solomon Islands","count":846,"log count":2.927370363},"Somalia":{"index":206,"code":"so","display":"Somalia","count":9440,"log count":3.9749719943},"South Africa":{"index":207,"code":"za","display":"South Africa","count":78151,"log count":4.8929345395},"South Georgia and the South Sandwich Islands":{"index":208,"code":"gs","display":"South Georgia and the South Sandwich Islands","count":4906,"log count":3.6907275439},"South Sudan":{"index":209,"code":"ss","display":"South Sudan","count":1189,"log count":3.0751818546},"Spain":{"index":210,"code":"es","display":"Spain","count":1312812,"log count":6.1182025378},"Sri Lanka":{"index":211,"code":"lk","display":"Sri Lanka","count":14973,"log count":4.1753088246},"Sudan":{"index":212,"code":"sd","display":"Sudan","count":3175,"log count":3.5017437296},"Suriname":{"index":213,"code":"sr","display":"Suriname","count":1172,"log count":3.0689276117},"Svalbard and Jan Mayen":{"index":214,"code":"sj","display":"Svalbard and Jan Mayen","count":901,"log count":2.954724791},"Sweden":{"index":215,"code":"se","display":"Sweden","count":433095,"log count":5.6365831699},"Switzerland":{"index":216,"code":"ch","display":"Switzerland","count":136067,"log count":5.1337528096},"Syria":{"index":217,"code":"sy","display":"Syria","count":12962,"log count":4.1126720171},"Taiwan":{"index":218,"code":"tw","display":"Taiwan","count":545339,"log count":5.7366665574},"Tajikistan":{"index":219,"code":"tj","display":"Tajikistan","count":1949,"log count":3.2898118391},"Tanzania":{"index":220,"code":"tz","display":"Tanzania","count":3662,"log count":3.56371834},"Thailand":{"index":221,"code":"th","display":"Thailand","count":238870,"log count":5.3781616096},"Timor-Leste":{"index":222,"code":"tl","display":"Timor-Leste","count":1208,"log count":3.0820669343},"Togo":{"index":223,"code":"tg","display":"Togo","count":2685,"log count":3.42894429},"Tokelau":{"index":224,"code":"tk","display":"Tokelau","count":1012,"log count":3.0051805125},"Tonga":{"index":225,"code":"to","display":"Tonga","count":3430,"log count":3.53529412},"Trinidad and Tobago":{"index":226,"code":"tt","display":"Trinidad and Tobago","count":9209,"log count":3.964212473},"Tunisia":{"index":227,"code":"tn","display":"Tunisia","count":21831,"log count":4.3390736296},"Turkey":{"index":228,"code":"tr","display":"Turkey","count":705950,"log count":5.8487739426},"Turkmenistan":{"index":229,"code":"tm","display":"Turkmenistan","count":1609,"log count":3.2065560441},"Turks and Caicos Islands":{"index":230,"code":"tc","display":"Turks and Caicos Islands","count":2263,"log count":3.354684554},"Tuvalu":{"index":231,"code":"tv","display":"Tuvalu","count":2654,"log count":3.4239009185},"Uganda":{"index":232,"code":"ug","display":"Uganda","count":13511,"log count":4.130687494},"Ukraine":{"index":233,"code":"ua","display":"Ukraine","count":126109,"log count":5.1007460819},"United Arab Emirates":{"index":234,"code":"ae","display":"United Arab Emirates","count":123838,"log count":5.0928539295},"United Kingdom":{"index":235,"code":"gb","display":"United Kingdom","count":2871437,"log count":6.4580992922},"United States":{"index":236,"code":"us","display":"United States of America","count":19924651,"log count":7.299390723},"United States Minor Outlying Islands":{"index":237,"code":"um","display":"United States Minor Outlying Islands","count":182452,"log count":5.2611486284},"Uruguay":{"index":238,"code":"uy","display":"Uruguay","count":61138,"log count":4.7863112276},"Uzbekistan":{"index":239,"code":"uz","display":"Uzbekistan","count":6201,"log count":3.7924617313},"Vanuatu":{"index":240,"code":"vu","display":"Vanuatu","count":2291,"log count":3.3600250892},"Vatican City":{"index":241,"code":"va","display":"Vatican City","count":2769,"log count":3.4423229557},"Venezuela":{"index":242,"code":"ve","display":"Venezuela","count":27877,"log count":4.4452460351},"Vietnam":{"index":243,"code":"vn","display":"Vietnam","count":105412,"log count":5.0228900534},"Virgin Islands, British":{"index":244,"code":"vg","display":"Virgin Islands, British","count":5573,"log count":3.7460890431},"Virgin Islands, U.S.":{"index":245,"code":"vi","display":"Virgin Islands, U.S.","count":11754,"log count":4.0701856864},"Wallis and Futuna":{"index":246,"code":"wf","display":"Wallis and Futuna","count":2211,"log count":3.3445887426},"Western Sahara":{"index":247,"code":"eh","display":"Western Sahara","count":2255,"log count":3.3531465462},"Yemen":{"index":248,"code":"ye","display":"Yemen","count":8126,"log count":3.909876818},"Zambia":{"index":249,"code":"zm","display":"Zambia","count":8026,"log count":3.9044991554},"Zimbabwe":{"index":250,"code":"zw","display":"Zimbabwe","count":39475,"log count":4.5963221387}} diff --git a/src/views/annual-report/l10n.json b/src/views/annual-report/l10n.json new file mode 100644 index 000000000..0a45d2027 --- /dev/null +++ b/src/views/annual-report/l10n.json @@ -0,0 +1,246 @@ +{ + "annualReport.subnavMessage": "Message", + "annualReport.subnavMission": "Mission", + "annualReport.subnavMilestones": "Milestones", + "annualReport.subnavReach": "Reach", + "annualReport.subnavInitiatives": "Initiatives", + "annualReport.subnavFinancials": "Financials", + "annualReport.subnavSupporters": "Supporters", + "annualReport.subnavTeam": "Team", + "annualReport.subnavDonate": "Donate", + + "annualReport.mastheadYear": "2019 Annual Report", + "annualReport.mastheadTitle": "Cultivating a World of Creative Learning", + "annualReport.messageTitle": "Message from the Scratch Team", + "annualReport.messageP1": "2019 was a year of great progress for Scratch. We started the year with the launch of Scratch 3.0, our newest generation of Scratch, designed to spark children’s creativity and engage children with diverse interests and backgrounds. We celebrated the end of the year with our team moving from MIT into its new home at the Scratch Foundation, in a playful first-floor space near South Station in Boston. Throughout the year, the Scratch community continued to thrive and grow: More than 20 million young people created projects with Scratch in 2019, an increase of 48% over the year before.", + "annualReport.messageP2": "The impact and importance of Scratch have been highlighted in 2020 as the COVID pandemic forced schools to close. Activity in the Scratch online community more than doubled as young people, confined to their homes, turned to Scratch to express themselves creatively and connect with one another. Scratchers have also been actively engaged in Black Lives Matter and other movements for racial justice and equity, creating animated projects and studios to spread awareness and demand change.", + "annualReport.messageP3": "From the time we launched Scratch in 2007, we have always seen Scratch as more than a programming language. Scratch provides opportunities for all young people, from all backgrounds, to develop their voices, express their ideas, and create with one another. We love to see the ways that Scratchers have responded to recent societal challenges with creativity, collaboration, caring, and kindness.", + "annualReport.messageP4": "In this Annual Report, we’ll share more about the mission, plans, impact, and reach of Scratch, supported with examples of how Scratch is expanding learning opportunities for a broad diversity of young people around the world, both in schools and throughout their lives.", + "annualReport.messageP5": "We’re proud of what young people are creating and learning with Scratch today, and we’re committed to providing more opportunities for more young people in the future.", + "annualReport.messageSignature": "— The Scratch Team", + + "annualReport.covidResponseTitle": "Scratch Responds to COVID", + "annualReport.covidResponseP1": "As we write this annual report, we are months into the COVID pandemic. Since the middle of March 2020, the Scratch office has been closed and Scratch Team members have been actively working from home to support children and educators around the world whose lives have been disrupted by the pandemic.", + "annualReport.covidResponseP2": "On March 17, we launched the #ScratchAtHome initiative to provide children, families, and educators with ideas for engaging in creative learning activities with Scratch at home. We continue to add video tutorials and other resources to the {scratchAtHomeLink}.", + "annualReport.covidResponseScratchAtHomePage": "#ScratchAtHome page", + "annualReport.covidResponseP3": "Activity in the {scratchCommunityLink} has more than doubled from last year. Scratchers are creating and sharing projects to support and inspire others through the pandemic—with projects and studios that offer ideas for exercising at home, tips for staying healthy, humor to cheer up one another, and thanks to essential workers.", + "annualReport.covidResponseScratchCommunity": "Scratch online community", + + "annualReport.missionTitle": "Our Mission", + "annualReport.missionSubtitle": "Our mission is to provide all children, from all backgrounds, with opportunities to imagine, create, and collaborate with new technologies — so they can shape the world of tomorrow.", + "annualReport.missionP1": "We are committed to prioritizing equity across all aspects of our work, with a particular focus on initiatives and approaches that support children, families, and educators furthest from educational justice.", + "annualReport.missionP2": "We’ve developed Scratch as a free, safe, playful learning environment that engages all children in thinking creatively, reasoning systematically, and working collaboratively — essential skills for everyone in today's society. We work with educators and families to support children in exploring, sharing, and learning.", + "annualReport.missionP3": "In developing new technologies, activities, and learning materials, we are guided by what we call the {fourPsItalics}:", + "annualReport.fourPs": "Four P’s of Creative Learning", + "annualReport.missionProjectsTitle": "Projects", + "annualReport.missionPeersTitle": "Peers", + "annualReport.missionPassionTitle": "Passion", + "annualReport.missionPlayTitle": "Play", + "annualReport.missionProjectsDescription": "Engage children in designing, creating, and expressing themselves creatively", + "annualReport.missionPeersDescription": "Support children in collaborating, sharing, remixing, and mentoring", + "annualReport.missionPassionDescription": "Enable children to build on their interests and work on personally meaningful projects", + "annualReport.missionPlayDescription": "Encourage children to tinker, experiment, and iterate", + + "annualReport.milestonesTitle": "Milestones", + "annualReport.milestonesDescription": "Here are some key events and accomplishments in the history of Scratch and the global Scratch community.", + "annualReport.milestones2003Message": "Awarded a National Science Foundation grant to start development of Scratch", + "annualReport.milestones2004Message": "Offered first Scratch workshop at Computer Clubhouse Teen Summit", + "annualReport.milestones2007Message": "Public launch of Scratch programming language and online community", + "annualReport.milestones2008Message": "Organized first Scratch Conference for educators and developers", + "annualReport.milestones2009Message1.4": "Released Scratch 1.4, translated into more than 40 languages", + "annualReport.milestones2009MessageScratchDay": "Hosted first Scratch Day event for children and families", + "annualReport.milestones2010Message": "Scratch online community reaches 1 million members", + "annualReport.milestones2013MessageFoundation": "Established Code-to-Learn Foundation (later renamed Scratch Foundation)", + "annualReport.milestones2013MessageScratch2": "Launch of Scratch 2.0, providing new opportunities for collaboration", + "annualReport.milestones2014Message": "Launch of ScratchJr for younger children, ages 5 to 7", + "annualReport.milestones2016Message": "Scratch online community reaches 10 million members", + "annualReport.milestones2017Message": "Scratch Day grows to 1,100 events in 60 countries", + "annualReport.milestones2019MessageScratch3": "Launch of Scratch 3.0, expanding what kids can create with code", + "annualReport.milestones2019MessageMove": "Scratch Team moves from MIT into Scratch Foundation", + + "annualReport.reachTitle": "Reaching Children Around the World", + "annualReport.reachSubtitle": "Scratch is the world’s largest coding community for children and teens, ages 8 and up.", + "annualReport.reachMillion": "million", + "annualReport.reach170million": "170 {million}", + "annualReport.reach60million": "60 {million}", + "annualReport.reach20million": "20 {million}", + "annualReport.reach48million": "48 {million}", + "annualReport.reachUniqueVisitors": "Unique Visitors", + "annualReport.reachProjectsCreated": "Projects Created", + "annualReport.reachProjectCreators": "People Created Projects", + "annualReport.reachComments": "Comments Posted in the Online Community", + "annualReport.reachGrowthTitle": "Community Growth", + "annualReport.reachGrowthBlurb": "New accounts created in the Scratch Online Community within the last 5 years.", + "annualReport.reachGlobalCommunity": "Our Global Community", + "annualReport.reachMapBlurb": "Total accounts registered in the Scratch Online Community from the launch of Scratch through 2019", + "annualReport.reachMap20M": "20M", + "annualReport.reachMapLog": "on a logarithmic scale", + "annualReport.reachTranslationTitle": "Scratch is Translated into 60+ Languages", + "annualReport.reachTranslationBlurb": "Thanks to volunteer translators from around the world.", + "annualReport.reachScratchJrBlurb": "ScratchJr is an introductory programming environment that enables young children (ages 5-7) to create their own interactive stories and games.", + "annualReport.reach22million": "22 {million}", + "annualReport.reachDownloads": "Downloads Since Launching in 2014", + + "annualReport.initiativesTitle": "Initiatives", + "annualReport.initiativesDescription": "The work at the Scratch Foundation centers on three strategic areas: creative tools, community, and schools. Each area prioritizes the voice and needs of children who are underrepresented in creative computing and seeks to support children in diverse settings and cultures around the world.", + "annualReport.equity": "Equity", + "annualReport.globalStrategy": "Global Strategy", + + "annualReport.toolsTitle": "Creative Tools", + "annualReport.toolsIntro": "We are constantly experimenting and innovating with new technologies and new designs — always striving to provide children with new ways to create, collaborate, and learn.", + "annualReport.toolsSpotlight": "Creative Tools — Spotlight Story", + "annualReport.toolsLaunch": "Launch of Scratch 3.0", + "annualReport.toolsLaunchIntro1": "We designed Scratch 3.0 to expand how, what, and where kids can create with Scratch. Released at the start of 2019, Scratch 3.0 led to a surge of activity in the Scratch community, with more projects — and a greater variety of projects — than ever before.", + "annualReport.toolsLaunchIntro2": "Scratch 3.0 includes a library of extensions — extra collections of coding blocks that add new capabilities to Scratch. Some extensions provide access to web services and other software features, while others connect Scratch with physical-world devices like motors and sensors.", + "annualReport.toolsTexttoSpeech": "Text-to-Speech", + "annualReport.toolsTexttoSpeechIntro": "With the Text-to-Speech extension, kids can program their Scratch characters to speak out loud, in a variety of different voices.", + "annualReport.toolsNumProjects": "330,000+", + "annualReport.toolsTexttoSpeechProjects": "{numProjects} projects in 2019 used Text-to-Speech", + "annualReport.toolsMostPopular": "Most Popular", + "annualReport.toolsTexttoSpeechPopular": "{mostPopular} new Scratch Extension in the community", + "annualReport.toolsCollabAWS": "Collaboration with Amazon Web Services", + "annualReport.toolsTranslate": "Translate", + "annualReport.toolsTranslateIntro": "With the Translate extension, built on the Google Translate API, kids can incorporate automatic translation into their projects, supporting language learning and global communication.", + "annualReport.toolsNumLanguages": "50+", + "annualReport.toolsTranslateLanguages": "{numLanguages} languages translated in the extension", + "annualReport.toolsSupportsLiteracy": "Supports Literacy", + "annualReport.toolsCSandLanguageArts": "computer science and language arts", + "annualReport.toolsTranslateLiteracy": "{supportsLiteracy} across {CSandLanguageArtsLink}", + "annualReport.toolsCollabGoogle": "Collaboration with Google", + "annualReport.toolsPhysicalWorld": "Physical World Connections", + "annualReport.toolsMindstormsLink": "LEGO Mindstorms EV3", + "annualReport.toolsWeDoLink": "WeDo 2.0", + "annualReport.toolsLEGORoboticsIntro": "Students can create dancing robots, interactive sculptures, and data-collection experiments using Scratch with LEGO robotics kits. The new LEGO Education SPIKE Prime Set features an app based on Scratch. In addition, Scratch extensions are available for {mindstormsLink} and {weDoLink}.", + "annualReport.toolsCollabLEGO": "Collaboration with LEGO Education", + "annualReport.toolsVideoTutorials": "Video Tutorials", + "annualReport.toolsTutorialsIntro": "Scratch 3.0 introduced a diverse collection of video tutorials to help kids get started with Scratch. The tutorials are open-ended and designed to encourage students to experiment, follow their interests, and express their own ideas.", + "annualReport.toolsNumTutorials": "25 new tutorials", + "annualReport.toolsNewTutorials": "{numTutorials} available in Scratch 3.0", + "annualReport.toolsNumViews": "23 million", + "annualReport.toolsTutorialsViews": "{numViews} views in 2019", + "annualReport.toolsApp": "Scratch App Supports Learning Offline", + "annualReport.toolsDownloadLink": "downloadable app", + "annualReport.toolsRaspberryLink": "use on Raspberry Pi 4", + "annualReport.toolsAppIntro": "During 2019, the Scratch Team released Scratch 3.0 as a {downloadableLink} for use on multiple platforms, including Windows, MacOS, ChromeOS, and Android tablets. In addition, the Raspberry Pi Foundation released Scratch 3.0 for {raspberryLink}. These downloadable versions are especially important for millions of learners in areas where internet connectivity is unavailable or unreliable.", + "annualReport.toolsAbhiTitle": "Abhi at Cartoon Network", + "annualReport.toolsAbhiIntro": "To highlight what kids can do with Scratch 3.0, we collaborated with Cartoon Network to create a video featuring Abhi, a 12-year-old Scratcher who loves to make animations and games. In the video, Abhi meets with Ian Jones-Quartey, creator of OK K.O. and other Cartoon Network shows. Abhi introduces Ian to key features of the new version of Scratch, and together they draw and program an animation of a Cartoon Network character jumping up and down.", + "annualReport.toolsAbhiQuote": "My favorite thing about Scratch is the community, because they are nice and helpful to me. That’s why I’m always happy to share every project that’s in my dreams.", + + "annualReport.communityTitle": "Community", + "annualReport.communityIntro": "The Scratch online community has always been an important part of the Scratch experience, providing opportunities for children to collaborate, share, and provide feedback to one another.", + "annualReport.communitySpotlight": "Community — Spotlight Story", + "annualReport.communityTeam": "Scratch Community Team", + "annualReport.communityTeamIntro1": "When asked why they use Scratch, most Scratchers talk about the importance of the online community for motivating their ongoing participation, providing a space where they can express their creativity, make friends, receive feedback, get new ideas, and learn new skills. Many Scratchers express their appreciation for the Scratch community as a safe and welcoming space to connect, share, and learn from one another.", + "annualReport.communityTeamIntro2": "With 40,000 new projects and 400,000 new comments in the Scratch online community each day, how can we ensure that the community remains safe and friendly, while also supporting and encouraging creative expression? Our Community Team, including full-time staff and a network of moderators, leads this essential work. There are two key dimensions of the Community Team's work: moderation and community engagement.", + "annualReport.communityModerationTitle": "Community Moderation", + "annualReport.communityModerationInfo": "When young people join the Scratch community, they agree to follow a set of Community Guidelines, which are designed to keep Scratch a safe and supportive place for young people from all backgrounds. Our Community Team uses a wide variety of tools and strategies to encourage good digital citizenship and maintain a positive environment for Scratchers to create in. Automated filters prevent private information from being shared or inappropriate content from being posted, and we allow anyone to report content they feel violates the Community Guidelines.", + "annualReport.communityGuidelinesTitle": "Community Guidelines", + "annualReport.communityGuidelinesInfo": "Scratch welcomes people of all ages, races, ethnicities, religions, abilities, sexual orientations, and gender identities.", + "annualReport.communityGuidelinesRespect": "Be respectful.", + "annualReport.communityGuidelinesShare": "Share.", + "annualReport.communityGuidelinesHonest": "Be honest.", + "annualReport.communityGuidelinesConstructive": "Be constructive.", + "annualReport.communityGuidelinesPrivacy": "Keep personal info private.", + "annualReport.communityGuidelinesFriendly": "Help keep the site friendly.", + "annualReport.communityEngagementTitle": "Community Engagement", + "annualReport.storySwap": "Story Swap", + "annualReport.communityEngagementInfo": "Another major role of the Community Team is to highlight and develop opportunities for young people to express their ideas and become engaged in positive ways. The team features projects and studios from community members to serve as inspiration, and it regularly posts Scratch Design Studios to encourage creative activity. Each summer, the team organizes an online Scratch Camp: the theme in 2019 was {storySwapLink}, with Scratchers building on one another’s stories.", + "annualReport.communitySDSTitle": "Scratch Design Studios", + "annualReport.communitySDSInfo": "Some Scratch Design Studios from 2019:", + "annualReport.communityDayintheLife": "Day in the Life", + "annualReport.communityDayintheLifeInfo": "Create a project about a day in the life of something", + "annualReport.communityYear3000": "Year 3000", + "annualReport.communityYear3000Info": "What might life be like in the year 3000?", + "annualReport.communityBounce": "Bounce", + "annualReport.communityBounceInfo": "Create a project that involves bouncing, jumping, boinging, or hopping.", + "annualReport.communityMonochromatic": "Monochromatic", + "annualReport.communityMonochromaticInfo": "How would things look if there were only one color?", + "annualReport.communityQuotes": "Community — Quotes", + "annualReport.communityQuote1": "I joined Scratch when I was 11 years old and the things I learned from using the platform and interacting with the community were really a vital part of my learning growing up.", + "annualReport.communityQuote2": "Scratch has allowed me to do things from home, like \n- Respect people and their projects\n- Make friends\n- Feel that I am not alone in this quarantine\n....and much more, so I want to say \n¡GRACIAS!", + "annualReport.communityQuote3": "I've been on Scratch for about 2 years, and it's been a life-changing experience! I've learned so many new things, such as coding, online etiquette, and art!", + "annualReport.communityQuote4": "Scratch was my favorite hobby in sixth grade. It secretly introduced me to Boolean logic, order of operations, and nested mathematical expressions—not to mention computer programming itself.", + "annualReport.studio": "studio", + "annualReport.communityBLMIntro": "As racial justice protests swept the United States after the tragic killings of George Floyd, Breonna Taylor, Ahmaud Arbery, and others in early 2020, many young people used Scratch as a way to express their support for the Black Lives Matter movement, creating projects and posting comments to speak out against racism and police violence. In a {BLMStudioLink} featured on the Scratch home page, Scratchers contributed hundreds of projects and thousands of comments. The Scratch Community Team was actively involved, to support Scratchers during a traumatic time and to ensure that all projects and conversations remained respectful.", + "annualReport.communityArtwork": "Artwork by the Scratcher OnionDipAnimations", + "annualReport.communityChangeTitle": "We see young people as agents of change.", + "annualReport.communityChangeInfo": "We are committed to working with them, and with the educators and families who support them, to ensure that they develop the skills, the motivation, and the confidence they’ll need to lead fulfilling lives and bring about meaningful change in society.", + "annualReport.watchVideo": "Watch Video", + + "annualReport.schoolsTitle": "Schools", + "annualReport.schoolsIntro": "We provide programs and resources to support teachers and students in schools around the world, designed to achieve equity in creative computing experiences, based on projects, passion, peers, and play.", + "annualReport.schoolsSpotlight": "Schools — Spotlight Story", + "annualReport.cpsProjectTitle": "Creative Computing in Chicago Public Schools", + "annualReport.cpsProjectIntroP1": "In 2019, with funding from Google.org, the Scratch Team partnered with SocialWorks, CS4ALL Chicago and Chicago Public Schools to support seven elementary schools in the South Side of Chicago as they launched an initiative to incorporate creative coding into their curriculum.", + "annualReport.cpsProjectIntroP2": "As a part of this initiative, hundreds of students imagined and drew themselves as the superhero of their own video games. They brought those ideas to life in a collaborative Scratch project called SuperMe. Local Chicago hero and Grammy Award winning musician Chance the Rapper was so inspired by the students’ work that he named it the official video game for his hit song “I Love You So Much” and shared it with the world.", + "annualReport.familyCreativeNightsHeader": "Family Creative Coding Nights", + "annualReport.familyCreativeNightsDescription": "A key to the success of this initiative was to connect students, families, teachers, and other community members through Family Creative Coding Nights. These events brought together hundreds of family members of all ages—from young children to grandparents—in activities that mixed coding with art, dance, and music. These events strengthened connections between home and school, recognizing the important role of families in inspiring and supporting children's learning.", + "annualReport.familyNightsPhotoCredit": "Photos by Jordan Macy, SocialWorks", + "annualReport.teacherPDHeader": "Investing in Professional Development for Teachers", + "annualReport.teacherPDDescription": "Teachers across the participating elementary schools came together for professional development workshops, gaining first-hand experience in creating their own Scratch projects and finding meaningful ways to use Scratch to support student learning across the curriculum.", + "annualReport.teacherPDQuoteAttribution": "{teacherName}, CPS Educator", + "annualReport.teacherPDQuote": "What surprised me most was the intrinsic collaboration that came with using Scratch in my classroom. Often, students themselves would discover something in the Scratch platform, show me, and then spread it among themselves.", + "annualReport.extendingReachHeader": "Extending the Reach", + "annualReport.extendingReachDescription": "To expand the reach of this partnership, CS4ALL Chicago built on the Family Creative Coding Night model and has made it available to all Chicago Public Schools. Google CS First produced {codeYourHeroLink} guides for students and teachers, available free online in English and Spanish.", + "annualReport.codeYourHero": "Code Your Hero", + "annualReport.inTheNewsHeader": "In the News", + "annualReport.chicagoSunTimesArticle": "Chicago Sun Times Article", + "annualReport.rollingStoneArticle": "Rolling Stone Article", + "annualReport.conferencesTitle": "Scratch Conferences around the World", + "annualReport.conferencesIntro": "In 2008, the Scratch Team hosted the first Scratch conference at MIT, bringing together educators, researchers, and developers to share ideas and experiences for using Scratch to support creative learning. Since then, the Scratch Team has organized and hosted a Scratch conference at MIT every two years. In addition, members of the global Scratch community have organized and hosted more than a dozen conferences—stretching across oceans, continents, cultures, and languages.", + "annualReport.conferencesHeroImageCaption": "Scratch Africa Conference, photo by {photoCredit}", + "annualReport.conferencesLatinAmericaTitle": "Latin America", + "annualReport.conferencesLatinAmericaDescription": "In May 2019, educators from across Chile and other areas of Latin America came together for the second {scratchAlSurLink} conference in Santiago, Chile. Following the conference, Scratch al Sur released a {spanishVersionLink} of the {creativeComputingCurriculumLink} guide, developed by the Creative Computing group at the Harvard Graduate School of Education.", + "annualReport.conferencesSpanishVersionLinkText": "Spanish version", + "annualReport.conferencesLatinAmericaImageCaption": "Photo provided by {photoCredit}", + "annualReport.conferencesEuropeTitle": "Europe", + "annualReport.conferencesEuropeDescription": "In August 2019, the Raspberry Pi Foundation organized the fourth {scratchConferenceEuropeLink}, held in Cambridge, UK. The conference brought together formal and informal educators from more than 25 countries for hands-on workshops, presentations, and demonstrations by students, educators, researchers, and community-based organizations.", + "annualReport.conferencesEuropeImageCaption": "Photo provided by {photoCredit}", + "annualReport.conferencesAfricaTitle": "Africa", + "annualReport.conferencesAfricaDescription": "In October 2019, the first {scratchAfricaConferenceLink} was held in Nairobi, Kenya, drawing more than 250 educators and students from across Africa to share lessons, empower young people, and celebrate accomplishments in creative coding. At the conference, the Scratch Team launched a Swahili version of Scratch, available for use both online and offline.", + "annualReport.conferencesAfricaImageCaption": "Photo by {photoCredit}", + + + "annualReport.financialsTitle": "Financials - 2019", + "annualReport.financialsButton": "2019 Audited Financials", + "annualReport.financialsFutureYears": "Note: Financials in future years will be significantly different, since the Scratch staff has now transitioned from MIT to the Scratch Foundation.", + + "annualReport.supportersTitle": "Thank You to Our Supporters", + "annualReport.supportersIntro": "Thank you to our generous supporters. Your contribution helps us expand creative learning opportunities for children of all ages, from all backgrounds, around the globe.", + "annualReport.supportersSpotlightTitle": "Donor - Spotlight Story", + "annualReport.supportersSFETitle": "Siegel Family Endowment", + "annualReport.supportersSFEDescription1": "In May 2012, David Siegel attended Scratch Day at the MIT Media Lab with his son Zach, an active and enthusiastic Scratcher. Watching Zach and other children using Scratch to code their own games, animations, and robotic creatures, David saw how much potential Scratch had to help children both learn practical coding skills, and develop as computational thinkers.", + "annualReport.supportersSFEDescription2": "David knows the importance of computational thinking firsthand, and his career as a computer scientist and entrepreneur has been shaped by the same curiosity that Scratch helps young learners explore every day. It's the same exploratory instinct that led him to study computer science at Princeton, and earn a PhD based on work completed at MIT's Artificial Intelligence Lab. In 2001, he co-founded Two Sigma, which has grown to become a world leader in applying machine learning and data science to investment management.", + "annualReport.supportersSFEDescription3": "In 2011, David founded Siegel Family Endowment (SFE) to support organizations working to help people adapt to the demands of new technology, and to better understand and mitigate the powerful disruptions that technology has driven in almost every sector. He is also a co-founder of the Scratch Foundation, and is a strong advocate for the organization's mission to keep Scratch free and accessible to learners all over the world.", + "annualReport.supportersCoFounder": "Co-Founder and Co-Chairman", + "annualReport.supportersQuote": "Making sure that Scratch remains free and accessible for kids everywhere is one of the most impactful ways we can help young learners engage and thrive in an increasingly digital world. Supporting Scratch is more important today than ever before.", + "annualReport.supportersThankYou": "Thank you to our supporters", + "annualReport.supportersAllDescription": "Our mission is to provide all children, from all backgrounds, with opportunities to imagine, create, and share with new technologies. We want to thank all Scratch supporters who, since we started working on Scratch in 2002, have helped us create amazing learning experiences for millions of young people around the world. The following list is based on cumulative giving to Scratch (at both MIT and Scratch Foundation) through December 31, 2019.", + "annualReport.supportersFoundingDescription": "We are especially grateful to our Founding Partners who supported us from the early days of Scratch, each providing at least $10,000,000 of cumulative support, in various forms.", + "annualReport.supportersFoundingTitle": "Founding Partners", + "annualReport.supportersCreativityTitle": "Creativity Circle — $1,000,000+", + "annualReport.supportersCollaborationTitle": "Collaboration Circle — $200,000+", + "annualReport.supportersImaginationTitle": "Imagination Circle — $50,000+", + "annualReport.supportersInspirationTitle": "Inspiration Circle — $20,000+", + "annualReport.supportersExplorationTitle": "Exploration Circle — $5,000+", + "annualReport.supportersInKindTitle": "In-Kind Supporters", + "annualReport.leadershipTitle": "Our Team", + "annualReport.leadershipBoard": "Board of Directors", + "annualReport.leadershipChair": "Chair", + "annualReport.leadershipProfessor": "Professor of Learning Research", + "annualReport.leadershipViceChair": "Vice-Chair", + "annualReport.leadershipBoardMember": "Board Member", + "annualReport.leadershipPresidentCEO": "President and CEO", + "annualReport.leadershipFormerPresident": "Former President", + "annualReport.leadershipFounderCEO": "Founder and CEO", + "annualReport.leadershipFormerChairCEO": "Former Chair and CEO", + "annualReport.leadershipBoardSecretaryTreasurer": "Board Secretary & Treasurer", + "annualReport.leadershipBoardSecretary": "Board Secretary", + "annualReport.leadershipBoardTreasurer": "Board Treasurer", + "annualReport.leadershipScratchTeam": "Scratch Team", + "annualReport.leadershipInterim": "Interim Executive Director", + + "annualReport.donateTitle": "Support Us", + "annualReport.donateMessage": "Your support enables us to make Scratch free for everyone, keeps our servers running, and most importantly, we are able to provide kids around the world an opportunity to imagine, create and share. Thank you!", + "annualReport.donateButton": "Donate" +} diff --git a/src/views/annual-report/people.json b/src/views/annual-report/people.json new file mode 100644 index 000000000..41089394f --- /dev/null +++ b/src/views/annual-report/people.json @@ -0,0 +1,273 @@ +[ + { + "userName": "cosmosaura", + "userId": 61436283, + "name": "Achal" + }, + { + "userName": "originalwow", + "userId": 56182496, + "name": "Amielle" + }, + { + "userName": "amylaser", + "userId": 17462181, + "name": "Amy" + }, + { + "userName": "achouse", + "userId": 4747093, + "name": "Annie" + }, + { + "userName": "wheelsonfire", + "userId": 10001044, + "name": "Ben" + }, + { + "userName": "BrycedTea", + "userId": 2029640, + "name": "Bryce" + }, + { + "userName": "designerd", + "userId": 3581881, + "name": "Carl" + }, + { + "userName": "tarmelop", + "userId": 2286560, + "name": "Carmelo" + }, + { + "userName": "carolinacr", + "userId": 40018416, + "name": "Carolina" + }, + { + "userName": "chrisg", + "userId": 1494, + "name": "Chris" + }, + { + "userName": "cwillisf", + "userId": 3532363, + "name": "Chris" + }, + { + "userName": "ceebee", + "userId": 2755634, + "name": "Christan" + }, + { + "userName": "codubee", + "userId": 10866958, + "name": "Colby" + }, + { + "userName": "noncanonical", + "userId": 55851826, + "name": "Craig" + }, + + { + "userName": "dsquare", + "userId": 527836, + "name": "DD" + }, + { + "userName": "SunnyDay4aBlueJay", + "userId": 24164779, + "name": "Ellen" + }, + { + "userName": "ericr", + "userId": 159, + "name": "Eric" + }, + { + "userName": "speakvisually", + "userId": 3484484, + "name": "Eric" + }, + { + "userName": "cheddargirl", + "userId": 159139, + "name": "Franchette" + }, + { + "userName": "pixelmoth", + "userId": 2408962, + "name": "Jacy" + }, + { + "userName": "jaleesa", + "userId": 2374106, + "name": "Jaleesa" + }, + { + "userName": "Mos20", + "userId": 52545208, + "name": "Joan" + }, + { + "userName": "FredDog", + "userId": 2496866, + "name": "Jolie" + }, + { + "userName": "Class12321", + "userId": 2871308, + "name": "Joshua" + }, + { + "userName": "bluecrazie", + "userId": 50257624, + "name": "JT" + }, + { + "userName": "MunchtheCat", + "userId": 59383434, + "name": "Kait" + }, + { + "userName": "kittyloaf", + "userId": 27383273, + "name": "Karishma" + }, + { + "userName": "dinopickles", + "userId": 34607790, + "name": "Katelyn" + }, + { + "userName": "pondermake", + "userId": 26779669, + "name": "Kathy" + }, + { + "userName": "kalakoalasmiles", + "userId": 62522360, + "name": "Keyla" + }, + { + "userName": "khanning", + "userId": 1553886, + "name": "Kreg" + }, + { + "userName": "KayOh", + "userId": 3018280, + "name": "Kristin" + }, + { + "userName": "lamatchalattei", + "userId": 61415372, + "name": "Lamar" + }, + { + "userName": "leoburd", + "userId": 385, + "name": "Leo" + }, + { + "userName": "lilyland", + "userId": 17184580, + "name": "Lily" + }, + { + "userName": "paperShannon101", + "userId": 38051483, + "name": "Manuj" + }, + { + "userName": "algorithmar", + "userId": 43013126, + "name": "Maren" + }, + { + "userName": "mwikali", + "userId": 24838781, + "name": "Marian" + }, + { + "userName": "dietbacon", + "userId": 24137617, + "name": "Mark" + }, + { + "userName": "Paddle2See", + "userId": 49156, + "name": "Mark" + }, + { + "userName": "mres", + "userId": 167, + "name": "Mitch" + }, + { + "userName": "natalie", + "userId": 169, + "name": "Natalie" + }, + { + "userName": "sgcc_", + "userId": 21986973, + "name": "Paul" + }, + { + "userName": "raimondious", + "userId": 2584924, + "name": "Ray" + }, + { + "userName": "rtrvmwe", + "userId": 61342326, + "name": "Retrouvailles" + }, + { + "userName": "binnieb", + "userId": 53715539, + "name": "Robyn" + }, + { + "userName": "RupaLax", + "userId": 58005604, + "name": "Rupa" + }, + { + "userName": "Rupsthereitis", + "userId": 4685510, + "name": "Rupal" + }, + { + "userName": "scmb1", + "userId": 246290, + "name": "Sarah" + }, + { + "userName": "pizzafordessert", + "userId": 22183577, + "name": "Sean" + }, + { + "userName": "shruti", + "userId": 3714374, + "name": "Shruti" + }, + { + "userName": "starry_sky7", + "userId": 61374093, + "name": "Yulia" + }, + { + "userName": "Za-Chary", + "userId": 974363, + "name": "Zachary" + }, + { + "userName": "Zinnea", + "userId": 35911243, + "name": "Zo\u00eb" + } +] diff --git a/static/images/annual-report/david-siegel-photo.svg b/static/images/annual-report/david-siegel-photo.svg new file mode 100644 index 000000000..fffc1c3ce --- /dev/null +++ b/static/images/annual-report/david-siegel-photo.svg @@ -0,0 +1,16 @@ + + + David Siegel Photo + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/donate-illustration.svg b/static/images/annual-report/donate-illustration.svg new file mode 100644 index 000000000..d0452436c --- /dev/null +++ b/static/images/annual-report/donate-illustration.svg @@ -0,0 +1,42 @@ + + + Donate Illustration + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/dropdown-arrow.svg b/static/images/annual-report/dropdown-arrow.svg new file mode 100644 index 000000000..65aa02727 --- /dev/null +++ b/static/images/annual-report/dropdown-arrow.svg @@ -0,0 +1,17 @@ + + + + Caret Icon + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/financials/blue-circle.svg b/static/images/annual-report/financials/blue-circle.svg new file mode 100644 index 000000000..f51999c4b --- /dev/null +++ b/static/images/annual-report/financials/blue-circle.svg @@ -0,0 +1,15 @@ + + + blue circle + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/financials/download-icon.svg b/static/images/annual-report/financials/download-icon.svg new file mode 100644 index 000000000..835de8541 --- /dev/null +++ b/static/images/annual-report/financials/download-icon.svg @@ -0,0 +1,13 @@ + + + General/File Upload + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/financials/expenses-graph.svg b/static/images/annual-report/financials/expenses-graph.svg new file mode 100644 index 000000000..94718b7ff --- /dev/null +++ b/static/images/annual-report/financials/expenses-graph.svg @@ -0,0 +1,22 @@ + + + Expenses Graph + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/financials/green-circle.svg b/static/images/annual-report/financials/green-circle.svg new file mode 100644 index 000000000..4dde45489 --- /dev/null +++ b/static/images/annual-report/financials/green-circle.svg @@ -0,0 +1,15 @@ + + + green circle + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/financials/revenue-graph.svg b/static/images/annual-report/financials/revenue-graph.svg new file mode 100644 index 000000000..7735efcaa --- /dev/null +++ b/static/images/annual-report/financials/revenue-graph.svg @@ -0,0 +1,22 @@ + + + Revenue Graph + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/financials/yellow-circle.svg b/static/images/annual-report/financials/yellow-circle.svg new file mode 100644 index 000000000..51e409c06 --- /dev/null +++ b/static/images/annual-report/financials/yellow-circle.svg @@ -0,0 +1,15 @@ + + + yellow circle + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/3.0 Left.svg b/static/images/annual-report/initiatives/3.0 Left.svg new file mode 100644 index 000000000..0c56bc9ff --- /dev/null +++ b/static/images/annual-report/initiatives/3.0 Left.svg @@ -0,0 +1,37 @@ + + + 3.0 Left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/3.0 Right.svg b/static/images/annual-report/initiatives/3.0 Right.svg new file mode 100644 index 000000000..fda989222 --- /dev/null +++ b/static/images/annual-report/initiatives/3.0 Right.svg @@ -0,0 +1,495 @@ + + + 3.0 Right + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + set rotation style + + + + + left- + right + + + + + + if on edge, + bounce + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/Abhi Avatar.png b/static/images/annual-report/initiatives/Abhi Avatar.png new file mode 100644 index 000000000..145e1f1ff Binary files /dev/null and b/static/images/annual-report/initiatives/Abhi Avatar.png differ diff --git a/static/images/annual-report/initiatives/Abhi Hero.svg b/static/images/annual-report/initiatives/Abhi Hero.svg new file mode 100644 index 000000000..a4cfe535f --- /dev/null +++ b/static/images/annual-report/initiatives/Abhi Hero.svg @@ -0,0 +1,120 @@ + + + Abhi Hero + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/Abhi Video Splash.svg b/static/images/annual-report/initiatives/Abhi Video Splash.svg new file mode 100644 index 000000000..1c06641f9 --- /dev/null +++ b/static/images/annual-report/initiatives/Abhi Video Splash.svg @@ -0,0 +1,7 @@ + + + Ahbi Video Splash + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/BLM Hero.svg b/static/images/annual-report/initiatives/BLM Hero.svg new file mode 100644 index 000000000..077ccfc75 --- /dev/null +++ b/static/images/annual-report/initiatives/BLM Hero.svg @@ -0,0 +1,23 @@ + + + BLM Hero + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/BLM Video Splash.svg b/static/images/annual-report/initiatives/BLM Video Splash.svg new file mode 100644 index 000000000..41b7c59e7 --- /dev/null +++ b/static/images/annual-report/initiatives/BLM Video Splash.svg @@ -0,0 +1,7 @@ + + + BLM Video Splash + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/BLM Video Thumbnail.png b/static/images/annual-report/initiatives/BLM Video Thumbnail.png new file mode 100644 index 000000000..f9efc872d Binary files /dev/null and b/static/images/annual-report/initiatives/BLM Video Thumbnail.png differ diff --git a/static/images/annual-report/initiatives/Bounce Thumbnail.png b/static/images/annual-report/initiatives/Bounce Thumbnail.png new file mode 100644 index 000000000..d90877b68 Binary files /dev/null and b/static/images/annual-report/initiatives/Bounce Thumbnail.png differ diff --git a/static/images/annual-report/initiatives/CN Video Thumbnail.png b/static/images/annual-report/initiatives/CN Video Thumbnail.png new file mode 100644 index 000000000..a335f0e98 Binary files /dev/null and b/static/images/annual-report/initiatives/CN Video Thumbnail.png differ diff --git a/static/images/annual-report/initiatives/Community-Splash.svg b/static/images/annual-report/initiatives/Community-Splash.svg new file mode 100644 index 000000000..14d9631e9 --- /dev/null +++ b/static/images/annual-report/initiatives/Community-Splash.svg @@ -0,0 +1,9 @@ + + + Community-Splash + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/Creative Tools-Splash.svg b/static/images/annual-report/initiatives/Creative Tools-Splash.svg new file mode 100644 index 000000000..4ed8909db --- /dev/null +++ b/static/images/annual-report/initiatives/Creative Tools-Splash.svg @@ -0,0 +1,9 @@ + + + Creative Tools-Splash + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/Day in the Life Thumbnail.png b/static/images/annual-report/initiatives/Day in the Life Thumbnail.png new file mode 100644 index 000000000..20845f82a Binary files /dev/null and b/static/images/annual-report/initiatives/Day in the Life Thumbnail.png differ diff --git a/static/images/annual-report/initiatives/Equity-Splash.svg b/static/images/annual-report/initiatives/Equity-Splash.svg new file mode 100644 index 000000000..f82e0bcd1 --- /dev/null +++ b/static/images/annual-report/initiatives/Equity-Splash.svg @@ -0,0 +1,9 @@ + + + Equity-Splash + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/Global-Splash.svg b/static/images/annual-report/initiatives/Global-Splash.svg new file mode 100644 index 000000000..955aa4deb --- /dev/null +++ b/static/images/annual-report/initiatives/Global-Splash.svg @@ -0,0 +1,9 @@ + + + Global-Splash + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/Juice Pattern.svg b/static/images/annual-report/initiatives/Juice Pattern.svg new file mode 100644 index 000000000..ce442bb3e --- /dev/null +++ b/static/images/annual-report/initiatives/Juice Pattern.svg @@ -0,0 +1,14 @@ + + + Juice Pattern + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/LEGO Robotics Illustration.svg b/static/images/annual-report/initiatives/LEGO Robotics Illustration.svg new file mode 100644 index 000000000..c14ea452a --- /dev/null +++ b/static/images/annual-report/initiatives/LEGO Robotics Illustration.svg @@ -0,0 +1,601 @@ + + + LEGO Robotics Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/Monochromatic Thumbnail.png b/static/images/annual-report/initiatives/Monochromatic Thumbnail.png new file mode 100644 index 000000000..63182b8b6 Binary files /dev/null and b/static/images/annual-report/initiatives/Monochromatic Thumbnail.png differ diff --git a/static/images/annual-report/initiatives/Offline Learning Illustration.svg b/static/images/annual-report/initiatives/Offline Learning Illustration.svg new file mode 100644 index 000000000..c6d6cc086 --- /dev/null +++ b/static/images/annual-report/initiatives/Offline Learning Illustration.svg @@ -0,0 +1,518 @@ + + + Offline Learning Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + set rotation style + + + + + left-right + + + + + + if on edge, bounce + + + + + + set y to + + + + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/Pillars-Desktop.svg b/static/images/annual-report/initiatives/Pillars-Desktop.svg new file mode 100644 index 000000000..9d1293933 --- /dev/null +++ b/static/images/annual-report/initiatives/Pillars-Desktop.svg @@ -0,0 +1,28 @@ + + + Pillars-Desktop + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/Pillars-Mobile.svg b/static/images/annual-report/initiatives/Pillars-Mobile.svg new file mode 100644 index 000000000..ae8836f32 --- /dev/null +++ b/static/images/annual-report/initiatives/Pillars-Mobile.svg @@ -0,0 +1,28 @@ + + + Pillars-Mobile + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/Schools-Splash.svg b/static/images/annual-report/initiatives/Schools-Splash.svg new file mode 100644 index 000000000..739da35ea --- /dev/null +++ b/static/images/annual-report/initiatives/Schools-Splash.svg @@ -0,0 +1,9 @@ + + + Schools-Splash + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/Text-to-Speech Block.svg b/static/images/annual-report/initiatives/Text-to-Speech Block.svg new file mode 100644 index 000000000..3ff618d4c --- /dev/null +++ b/static/images/annual-report/initiatives/Text-to-Speech Block.svg @@ -0,0 +1,25 @@ + + + Text-to-Speech Block + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/Translation Block.svg b/static/images/annual-report/initiatives/Translation Block.svg new file mode 100644 index 000000000..ea4c08698 --- /dev/null +++ b/static/images/annual-report/initiatives/Translation Block.svg @@ -0,0 +1,62 @@ + + + Translation Block + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/Year 3000 Thumbnail.png b/static/images/annual-report/initiatives/Year 3000 Thumbnail.png new file mode 100644 index 000000000..af3f0770b Binary files /dev/null and b/static/images/annual-report/initiatives/Year 3000 Thumbnail.png differ diff --git a/static/images/annual-report/initiatives/animate a name.png b/static/images/annual-report/initiatives/animate a name.png new file mode 100644 index 000000000..cdcbd67aa Binary files /dev/null and b/static/images/annual-report/initiatives/animate a name.png differ diff --git a/static/images/annual-report/initiatives/community-hero.png b/static/images/annual-report/initiatives/community-hero.png new file mode 100644 index 000000000..c8806f102 Binary files /dev/null and b/static/images/annual-report/initiatives/community-hero.png differ diff --git a/static/images/annual-report/initiatives/create a story.png b/static/images/annual-report/initiatives/create a story.png new file mode 100644 index 000000000..edbb23dea Binary files /dev/null and b/static/images/annual-report/initiatives/create a story.png differ diff --git a/static/images/annual-report/initiatives/guideline-splash.svg b/static/images/annual-report/initiatives/guideline-splash.svg new file mode 100644 index 000000000..2a34e3e96 --- /dev/null +++ b/static/images/annual-report/initiatives/guideline-splash.svg @@ -0,0 +1,19 @@ + + + Oval Copy + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/imagine a world.png b/static/images/annual-report/initiatives/imagine a world.png new file mode 100644 index 000000000..3d431f7bf Binary files /dev/null and b/static/images/annual-report/initiatives/imagine a world.png differ diff --git a/static/images/annual-report/initiatives/make music.png b/static/images/annual-report/initiatives/make music.png new file mode 100644 index 000000000..9e1f60f39 Binary files /dev/null and b/static/images/annual-report/initiatives/make music.png differ diff --git a/static/images/annual-report/initiatives/schools/CPS Story/CPS Video Splash.svg b/static/images/annual-report/initiatives/schools/CPS Story/CPS Video Splash.svg new file mode 100644 index 000000000..27a70a460 --- /dev/null +++ b/static/images/annual-report/initiatives/schools/CPS Story/CPS Video Splash.svg @@ -0,0 +1,7 @@ + + + CPS Video Splash + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/schools/CPS Story/CPS Video Thumbnail.png b/static/images/annual-report/initiatives/schools/CPS Story/CPS Video Thumbnail.png new file mode 100644 index 000000000..bc8daf255 Binary files /dev/null and b/static/images/annual-report/initiatives/schools/CPS Story/CPS Video Thumbnail.png differ diff --git a/static/images/annual-report/initiatives/schools/CPS Story/Family Night 1.png b/static/images/annual-report/initiatives/schools/CPS Story/Family Night 1.png new file mode 100644 index 000000000..3111a541b Binary files /dev/null and b/static/images/annual-report/initiatives/schools/CPS Story/Family Night 1.png differ diff --git a/static/images/annual-report/initiatives/schools/CPS Story/Family Night 2.png b/static/images/annual-report/initiatives/schools/CPS Story/Family Night 2.png new file mode 100644 index 000000000..81566748c Binary files /dev/null and b/static/images/annual-report/initiatives/schools/CPS Story/Family Night 2.png differ diff --git a/static/images/annual-report/initiatives/schools/CPS Story/Family Night 3.png b/static/images/annual-report/initiatives/schools/CPS Story/Family Night 3.png new file mode 100644 index 000000000..2b58ec0a2 Binary files /dev/null and b/static/images/annual-report/initiatives/schools/CPS Story/Family Night 3.png differ diff --git a/static/images/annual-report/initiatives/schools/CPS Story/Family Night 4.png b/static/images/annual-report/initiatives/schools/CPS Story/Family Night 4.png new file mode 100644 index 000000000..7b013a9b5 Binary files /dev/null and b/static/images/annual-report/initiatives/schools/CPS Story/Family Night 4.png differ diff --git a/static/images/annual-report/initiatives/schools/CPS Story/News Icon.svg b/static/images/annual-report/initiatives/schools/CPS Story/News Icon.svg new file mode 100644 index 000000000..3b1f6ff4b --- /dev/null +++ b/static/images/annual-report/initiatives/schools/CPS Story/News Icon.svg @@ -0,0 +1,15 @@ + + + News Icon + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/schools/CPS Story/Pencils.svg b/static/images/annual-report/initiatives/schools/CPS Story/Pencils.svg new file mode 100644 index 000000000..665b26672 --- /dev/null +++ b/static/images/annual-report/initiatives/schools/CPS Story/Pencils.svg @@ -0,0 +1,30 @@ + + + Pencils + + + + + + + + Hello + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/schools/CPS Story/Pizza.svg b/static/images/annual-report/initiatives/schools/CPS Story/Pizza.svg new file mode 100644 index 000000000..0fefcf98c --- /dev/null +++ b/static/images/annual-report/initiatives/schools/CPS Story/Pizza.svg @@ -0,0 +1,15 @@ + + + Pizza + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/schools/CPS Story/School Quote Avatar.png b/static/images/annual-report/initiatives/schools/CPS Story/School Quote Avatar.png new file mode 100644 index 000000000..bc0026d5a Binary files /dev/null and b/static/images/annual-report/initiatives/schools/CPS Story/School Quote Avatar.png differ diff --git a/static/images/annual-report/initiatives/schools/CPS Story/Video Icon Purple.svg b/static/images/annual-report/initiatives/schools/CPS Story/Video Icon Purple.svg new file mode 100644 index 000000000..5a6776f26 --- /dev/null +++ b/static/images/annual-report/initiatives/schools/CPS Story/Video Icon Purple.svg @@ -0,0 +1,7 @@ + + + Video Icon Purple + + + + \ No newline at end of file diff --git a/static/images/annual-report/initiatives/schools/Conferences Story/Africa Conference.png b/static/images/annual-report/initiatives/schools/Conferences Story/Africa Conference.png new file mode 100644 index 000000000..cecefc8bc Binary files /dev/null and b/static/images/annual-report/initiatives/schools/Conferences Story/Africa Conference.png differ diff --git a/static/images/annual-report/initiatives/schools/Conferences Story/Europe Conference.png b/static/images/annual-report/initiatives/schools/Conferences Story/Europe Conference.png new file mode 100644 index 000000000..80308ad0b Binary files /dev/null and b/static/images/annual-report/initiatives/schools/Conferences Story/Europe Conference.png differ diff --git a/static/images/annual-report/initiatives/schools/Conferences Story/Latin America Conference.png b/static/images/annual-report/initiatives/schools/Conferences Story/Latin America Conference.png new file mode 100644 index 000000000..17bd34305 Binary files /dev/null and b/static/images/annual-report/initiatives/schools/Conferences Story/Latin America Conference.png differ diff --git a/static/images/annual-report/initiatives/schools/Conferences Story/Scratch Conferences Hero.png b/static/images/annual-report/initiatives/schools/Conferences Story/Scratch Conferences Hero.png new file mode 100644 index 000000000..23b847e97 Binary files /dev/null and b/static/images/annual-report/initiatives/schools/Conferences Story/Scratch Conferences Hero.png differ diff --git a/static/images/annual-report/message/banana.svg b/static/images/annual-report/message/banana.svg new file mode 100644 index 000000000..da7e251ec --- /dev/null +++ b/static/images/annual-report/message/banana.svg @@ -0,0 +1,50 @@ + + + Banana + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/message/blocks.svg b/static/images/annual-report/message/blocks.svg new file mode 100644 index 000000000..d3cd2a6fa --- /dev/null +++ b/static/images/annual-report/message/blocks.svg @@ -0,0 +1,8 @@ + + + Blocks + + + + + \ No newline at end of file diff --git a/static/images/annual-report/message/hero-image.png b/static/images/annual-report/message/hero-image.png new file mode 100644 index 000000000..da7c455fa Binary files /dev/null and b/static/images/annual-report/message/hero-image.png differ diff --git a/static/images/annual-report/message/hero-image.svg b/static/images/annual-report/message/hero-image.svg new file mode 100644 index 000000000..86ebe81eb --- /dev/null +++ b/static/images/annual-report/message/hero-image.svg @@ -0,0 +1,82 @@ + + + Hero Image + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/message/team-photo.png b/static/images/annual-report/message/team-photo.png new file mode 100644 index 000000000..be058aada Binary files /dev/null and b/static/images/annual-report/message/team-photo.png differ diff --git a/static/images/annual-report/message/wave-icon.svg b/static/images/annual-report/message/wave-icon.svg new file mode 100644 index 000000000..3e4b8a4b6 --- /dev/null +++ b/static/images/annual-report/message/wave-icon.svg @@ -0,0 +1,13 @@ + + + Wave Icon + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/milestones/2004_Clubhouse.jpg b/static/images/annual-report/milestones/2004_Clubhouse.jpg new file mode 100644 index 000000000..69c616b19 Binary files /dev/null and b/static/images/annual-report/milestones/2004_Clubhouse.jpg differ diff --git a/static/images/annual-report/milestones/2007_EarlyScratch.png b/static/images/annual-report/milestones/2007_EarlyScratch.png new file mode 100644 index 000000000..18e39025e Binary files /dev/null and b/static/images/annual-report/milestones/2007_EarlyScratch.png differ diff --git a/static/images/annual-report/milestones/2008_Conference.jpg b/static/images/annual-report/milestones/2008_Conference.jpg new file mode 100644 index 000000000..54fec541e Binary files /dev/null and b/static/images/annual-report/milestones/2008_Conference.jpg differ diff --git a/static/images/annual-report/milestones/2009_Scratch1_4.png b/static/images/annual-report/milestones/2009_Scratch1_4.png new file mode 100644 index 000000000..3aabeb995 Binary files /dev/null and b/static/images/annual-report/milestones/2009_Scratch1_4.png differ diff --git a/static/images/annual-report/milestones/2013_Scratch2.png b/static/images/annual-report/milestones/2013_Scratch2.png new file mode 100644 index 000000000..8ded76a50 Binary files /dev/null and b/static/images/annual-report/milestones/2013_Scratch2.png differ diff --git a/static/images/annual-report/milestones/2014_ScratchJr.jpg b/static/images/annual-report/milestones/2014_ScratchJr.jpg new file mode 100644 index 000000000..39b091532 Binary files /dev/null and b/static/images/annual-report/milestones/2014_ScratchJr.jpg differ diff --git a/static/images/annual-report/milestones/2019_Scratch3.jpg b/static/images/annual-report/milestones/2019_Scratch3.jpg new file mode 100644 index 000000000..1ddfca266 Binary files /dev/null and b/static/images/annual-report/milestones/2019_Scratch3.jpg differ diff --git a/static/images/annual-report/milestones/timeline1.svg b/static/images/annual-report/milestones/timeline1.svg new file mode 100644 index 000000000..c2de72275 --- /dev/null +++ b/static/images/annual-report/milestones/timeline1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/images/annual-report/milestones/timeline2.svg b/static/images/annual-report/milestones/timeline2.svg new file mode 100644 index 000000000..fa004e589 --- /dev/null +++ b/static/images/annual-report/milestones/timeline2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/images/annual-report/milestones/timeline3.svg b/static/images/annual-report/milestones/timeline3.svg new file mode 100644 index 000000000..9f15afb25 --- /dev/null +++ b/static/images/annual-report/milestones/timeline3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/images/annual-report/milestones/timeline4.svg b/static/images/annual-report/milestones/timeline4.svg new file mode 100644 index 000000000..d8edc106c --- /dev/null +++ b/static/images/annual-report/milestones/timeline4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/images/annual-report/milestones/timeline_line_left.svg b/static/images/annual-report/milestones/timeline_line_left.svg new file mode 100644 index 000000000..832e661b0 --- /dev/null +++ b/static/images/annual-report/milestones/timeline_line_left.svg @@ -0,0 +1,13 @@ + + + + Path Copy + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/milestones/timeline_line_right.svg b/static/images/annual-report/milestones/timeline_line_right.svg new file mode 100644 index 000000000..5d7ca252b --- /dev/null +++ b/static/images/annual-report/milestones/timeline_line_right.svg @@ -0,0 +1,13 @@ + + + + Path Copy 2 + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/mission/Passion Illustration.svg b/static/images/annual-report/mission/Passion Illustration.svg new file mode 100644 index 000000000..24248a77f --- /dev/null +++ b/static/images/annual-report/mission/Passion Illustration.svg @@ -0,0 +1,266 @@ + + + Passion Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/mission/Passion Splash.svg b/static/images/annual-report/mission/Passion Splash.svg new file mode 100644 index 000000000..623e0fa25 --- /dev/null +++ b/static/images/annual-report/mission/Passion Splash.svg @@ -0,0 +1,7 @@ + + + Passion Splash + + + + \ No newline at end of file diff --git a/static/images/annual-report/mission/Peers Illustration.svg b/static/images/annual-report/mission/Peers Illustration.svg new file mode 100644 index 000000000..0ba6904eb --- /dev/null +++ b/static/images/annual-report/mission/Peers Illustration.svg @@ -0,0 +1,263 @@ + + + Peers Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/mission/Peers Splash.svg b/static/images/annual-report/mission/Peers Splash.svg new file mode 100644 index 000000000..df3d1b3c2 --- /dev/null +++ b/static/images/annual-report/mission/Peers Splash.svg @@ -0,0 +1,7 @@ + + + Peers Splash + + + + \ No newline at end of file diff --git a/static/images/annual-report/mission/Play Illustration.svg b/static/images/annual-report/mission/Play Illustration.svg new file mode 100644 index 000000000..9843cb7a5 --- /dev/null +++ b/static/images/annual-report/mission/Play Illustration.svg @@ -0,0 +1,229 @@ + + + Play Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/mission/Play Splash.svg b/static/images/annual-report/mission/Play Splash.svg new file mode 100644 index 000000000..0d009a959 --- /dev/null +++ b/static/images/annual-report/mission/Play Splash.svg @@ -0,0 +1,7 @@ + + + Play Splash + + + + \ No newline at end of file diff --git a/static/images/annual-report/mission/Projects Illustration.svg b/static/images/annual-report/mission/Projects Illustration.svg new file mode 100644 index 000000000..2e49e8452 --- /dev/null +++ b/static/images/annual-report/mission/Projects Illustration.svg @@ -0,0 +1,327 @@ + + + Projects Illustration + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/mission/Projects Splash.svg b/static/images/annual-report/mission/Projects Splash.svg new file mode 100644 index 000000000..8cdb3198c --- /dev/null +++ b/static/images/annual-report/mission/Projects Splash.svg @@ -0,0 +1,7 @@ + + + Projects Splash + + + + \ No newline at end of file diff --git a/static/images/annual-report/reach/Calendar.svg b/static/images/annual-report/reach/Calendar.svg new file mode 100644 index 000000000..677c2d8be --- /dev/null +++ b/static/images/annual-report/reach/Calendar.svg @@ -0,0 +1,21 @@ + + + Calendar + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/reach/Map Key.svg b/static/images/annual-report/reach/Map Key.svg new file mode 100644 index 000000000..1c9060313 --- /dev/null +++ b/static/images/annual-report/reach/Map Key.svg @@ -0,0 +1,15 @@ + + + Map Key + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/reach/ScratchJr-Logo.svg b/static/images/annual-report/reach/ScratchJr-Logo.svg new file mode 100644 index 000000000..f87478236 --- /dev/null +++ b/static/images/annual-report/reach/ScratchJr-Logo.svg @@ -0,0 +1,31 @@ + + + ScratchJr Logo + + + + + \ No newline at end of file diff --git a/static/images/annual-report/reach/community-growth-graph.svg b/static/images/annual-report/reach/community-growth-graph.svg new file mode 100644 index 000000000..90663a44f --- /dev/null +++ b/static/images/annual-report/reach/community-growth-graph.svg @@ -0,0 +1,38 @@ + + + Community Growth Graph + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/reach/horizontal-command.svg b/static/images/annual-report/reach/horizontal-command.svg new file mode 100644 index 000000000..b396a0d9d --- /dev/null +++ b/static/images/annual-report/reach/horizontal-command.svg @@ -0,0 +1,9 @@ + + + ScratchJr Command + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/reach/horizontal-loop.svg b/static/images/annual-report/reach/horizontal-loop.svg new file mode 100644 index 000000000..57adea869 --- /dev/null +++ b/static/images/annual-report/reach/horizontal-loop.svg @@ -0,0 +1,9 @@ + + + ScratchJr Loop + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/reach/painting-hand.svg b/static/images/annual-report/reach/painting-hand.svg new file mode 100644 index 000000000..1c93b4ccc --- /dev/null +++ b/static/images/annual-report/reach/painting-hand.svg @@ -0,0 +1,72 @@ + + + Painting Hand + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/reach/translated-illustration.svg b/static/images/annual-report/reach/translated-illustration.svg new file mode 100644 index 000000000..4aa81e9f0 --- /dev/null +++ b/static/images/annual-report/reach/translated-illustration.svg @@ -0,0 +1,42 @@ + + + Translated Languages Image + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/images/annual-report/reach/vertical-loop.svg b/static/images/annual-report/reach/vertical-loop.svg new file mode 100644 index 000000000..3aed5ae4c --- /dev/null +++ b/static/images/annual-report/reach/vertical-loop.svg @@ -0,0 +1,9 @@ + + + Vertical Loop Block + + + + + + \ No newline at end of file diff --git a/static/pdfs/annual-report/2019/2019_audited_financials.pdf b/static/pdfs/annual-report/2019/2019_audited_financials.pdf new file mode 100644 index 000000000..ed19d5fc1 Binary files /dev/null and b/static/pdfs/annual-report/2019/2019_audited_financials.pdf differ