diff --git a/codecamp-front/.angular-cli.json b/codecamp-front/.angular-cli.json index 3b1ab53..3d14ebf 100644 --- a/codecamp-front/.angular-cli.json +++ b/codecamp-front/.angular-cli.json @@ -20,7 +20,8 @@ "prefix": "app", "styles": [ "../node_modules/bootstrap/dist/css/bootstrap.min.css", - "styles.css" + "styles.css", + "../node_modules/font-awesome/css/font-awesome.min.css" ], "scripts": [ "../node_modules/popper.js/dist/umd/popper.min.js", @@ -28,8 +29,6 @@ "../node_modules/bootstrap/dist/js/bootstrap.min.js", "../node_modules/ace-builds/src-min/ace.js", "../node_modules/ace-builds/src-min/theme-sqlserver.js", - "../node_modules/ace-builds/src-min/mode-c.js", - "../node_modules/ace-builds/src-min/mode-cpp.js", "../node_modules/ace-builds/src-min/mode-python.js", "../node_modules/ace-builds/src-min/mode-java.js" ], @@ -66,6 +65,7 @@ }, "defaults": { "styleExt": "css", - "component": {} + "component": { + } } } diff --git a/codecamp-front/package-lock.json b/codecamp-front/package-lock.json index b6bd625..c7a5e6b 100644 --- a/codecamp-front/package-lock.json +++ b/codecamp-front/package-lock.json @@ -47,9 +47,9 @@ } }, "@angular/animations": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-5.2.1.tgz", - "integrity": "sha512-f8viyt1xDC2NC2ap0lczw+AiL3S1WVSDOmNp3UKwA66gm+Hs9AdDX0PjpxgMR9KQY8c4P7mztNax55jj2Sbe1Q==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-5.2.7.tgz", + "integrity": "sha512-t/B0z2OYO+yy8SJKB1/evSNPvnLsl+AclhM1p21/NnETxQUqvct1KXeDM7nYDu5hmnGmuavhua8LDo6rN5zS+Q==", "requires": { "tslib": "1.9.0" } @@ -121,31 +121,31 @@ } }, "@angular/common": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-5.2.1.tgz", - "integrity": "sha512-O7FA4Qpcu6GYMzlsNTHtUsAl6W0SXepP7qEMx83fC1Xje2GEtulp/99Pg6bvpFKiZYdCjJDhjbUZhIO5x0UncQ==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-5.2.7.tgz", + "integrity": "sha512-TqsDMmPX1JlEH2QIneuAVzEO4ubzxLBAdV4XbKWDQKC/UfbWIIpSrSp2cIi85NV1tKkg0WAaodCIZ02NucHIHg==", "requires": { "tslib": "1.9.0" } }, "@angular/compiler": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-5.2.1.tgz", - "integrity": "sha512-c/HDfbDr8yDUCoVCbGHgoae3YCoWG3EuM/l7jfHflE8sbdppiFVxCRd3VkygkwfPGpUZbZaW2x/OK4Z1dQa34g==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-5.2.7.tgz", + "integrity": "sha512-26RG+Dy+M/95OyNNqM+OAruarIPOmbndiaglz2dMrNYzenfbSgG/AoPlL5uCdSqZDiXgnlKnS2K6/ePWXDSKNw==", "requires": { "tslib": "1.9.0" } }, "@angular/compiler-cli": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-5.2.1.tgz", - "integrity": "sha512-9Yud6euknHKPQhh/noho0/xNgYeCyly0Ugkgh0306/RNLW5ngcWE876wdUweU13LJgWQ9+SHqFI5rJbsseqkZw==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-5.2.7.tgz", + "integrity": "sha512-91gQolzsKyOlmBNW1J7lyu+dXHe/KHbAXU459hn6rycMHuTt60XvxA5O3xy3Pqt28VgbOOSrQfq5eVjZodKjWg==", "dev": true, "requires": { "chokidar": "1.7.0", "minimist": "1.2.0", "reflect-metadata": "0.1.12", - "tsickle": "0.26.0" + "tsickle": "0.27.2" }, "dependencies": { "minimist": { @@ -157,25 +157,25 @@ } }, "@angular/core": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-5.2.1.tgz", - "integrity": "sha512-2kyXVl+OK/LRUisSfILkRyWiD2BGXysQkN2dwxfwYZwDciH7o8wGSlDDZw0lXIBt0Ly0stYiorIIJGVs5TffaA==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-5.2.7.tgz", + "integrity": "sha512-DQuL6n7cjBfZmWX5RCV271g6PW9N8b93g2skWnM/zjm+BL9tfHPgvmsjMNB7QEHSxW8VBaaQ6gjj422O01A87g==", "requires": { "tslib": "1.9.0" } }, "@angular/forms": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-5.2.1.tgz", - "integrity": "sha512-DeTpReZcK93FBxTdXqtmuzuW5blMu4fWe7JtmDXWD9UhTw7DwRbPO+7yFRbbfSDd3UzfGfqYBqOlSOdPh9dLbg==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-5.2.7.tgz", + "integrity": "sha512-43oLKdzMjMV/hOLpSTg8aOggcx+veTnPp/JN+KzMGo2qtbim5nk3fnuscWDeDOdkh8hPRPGarKxeFNEE9ZZSTg==", "requires": { "tslib": "1.9.0" } }, "@angular/http": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@angular/http/-/http-5.2.1.tgz", - "integrity": "sha512-wMX7rnZcanYT2uVeqr1V9k9lduxZprVjvgetUlj6IuO7kbr22SAJN7phuubI0uAd7MUb7uDXBG8cJ00Q/NH6zw==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-5.2.7.tgz", + "integrity": "sha512-048+tCbsNYc9xVvIn5/sOvO4fXVkbB5b1IRYRGiRYXpTz6+JWIm5AwOqZIOeVDgqgZHFf96QllXDcFbdNVDgSA==", "requires": { "tslib": "1.9.0" } @@ -187,25 +187,35 @@ "dev": true }, "@angular/platform-browser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-5.2.1.tgz", - "integrity": "sha512-+cE7FM6/WIMZWpxf+LxYhfTPBbxSvLNZv5+RnGcOeg4nEG3x0Ny1dr14r5HyudvKfu/A+xTlVCNY7RjZ6HsWVw==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-5.2.7.tgz", + "integrity": "sha512-SdLx4F6tOy4/s3y1KZ/Z3YA6fiIrydaO2bry2FJglDxJh24p6TZIob+zC16N2MTuFW819KY5OlacNhc8aj6Yag==", "requires": { "tslib": "1.9.0" } }, "@angular/platform-browser-dynamic": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.1.tgz", - "integrity": "sha512-S73suoYfGIj7eQlOBXvj3BO8mW8TUUZEUZ/nvFgB/jsb6PtYk1ByIVIWjcV5yttd4TXf7ZhaEYZPm1vBjIN0pA==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.7.tgz", + "integrity": "sha512-95Rwf1JcGF/BI48k+VG2moLTVC863jPSjmHaGkz7cA9bi/QrRFGvFghl1qIm4Ezp3dj8CH8TE3TWB+1AmAg3AQ==", "requires": { "tslib": "1.9.0" } }, + "@angular/platform-server": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-5.2.7.tgz", + "integrity": "sha512-5+pj+YYfJ7ZGVEtP2oTVqWErObWRVeY32AxVIs3pE3WuqKPjwnKzd+HY+YeD8D+LDJZ5DdphtYBp26NFrnw0xA==", + "requires": { + "domino": "1.0.30", + "tslib": "1.9.0", + "xhr2": "0.1.4" + } + }, "@angular/router": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-5.2.1.tgz", - "integrity": "sha512-NS8ttrfpjETfIt8Wn4oCP5KQ55UKuj6g3iG/yduoDMWel19KOINUYqz5ujL1gHha4A4Tgs1tBZKQKr0LmapTdA==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-5.2.7.tgz", + "integrity": "sha512-ppl0X7EfEgKYXIEPtdy8cOKj5KXuwCQ5Ila+IuGnSjKIRXt/olhBLJMprVl1VJgoxXj7z2i14U7kKaqSvGtpXw==", "requires": { "tslib": "1.9.0" } @@ -743,8 +753,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true, - "optional": true + "dev": true }, "async-limiter": { "version": "1.0.0", @@ -877,7 +886,7 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.3", + "core-js": "2.4.1", "regenerator-runtime": "0.11.1" } }, @@ -1074,7 +1083,6 @@ "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, - "optional": true, "requires": { "inherits": "2.0.3" } @@ -2232,9 +2240,9 @@ } }, "core-js": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", - "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", + "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=" }, "core-object": { "version": "3.1.5", @@ -2315,7 +2323,6 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", "dev": true, - "optional": true, "requires": { "lru-cache": "4.1.1", "which": "1.3.0" @@ -3014,6 +3021,11 @@ "domelementtype": "1.3.0" } }, + "domino": { + "version": "1.0.30", + "resolved": "https://registry.npmjs.org/domino/-/domino-1.0.30.tgz", + "integrity": "sha512-ikq8WiDSkICdkElud317F2Sigc6A3EDpWsxWBwIZqOl95km4p/Vc9Rj98id7qKgsjDmExj0AVM7JOd4bb647Xg==" + }, "domutils": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", @@ -3780,6 +3792,11 @@ "debug": "2.6.9" } }, + "font-awesome": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz", + "integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM=" + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -4870,7 +4887,6 @@ "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", "dev": true, - "optional": true, "requires": { "globule": "1.2.0" } @@ -4879,15 +4895,13 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", - "dev": true, - "optional": true + "dev": true }, "generate-object-property": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", "dev": true, - "optional": true, "requires": { "is-property": "1.0.2" } @@ -5006,7 +5020,6 @@ "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", "dev": true, - "optional": true, "requires": { "glob": "7.1.2", "lodash": "4.17.4", @@ -5647,8 +5660,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", - "dev": true, - "optional": true + "dev": true }, "indent-string": { "version": "2.1.0", @@ -5990,7 +6002,6 @@ "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz", "integrity": "sha512-Q2khNw+oBlWuaYvEEHtKSw/pCxD2L5Rc1C+UQme9X6JdRDh7m5D7HkozA0qa3DUkQ6VzCnEm8mVIQPyIRkI5sQ==", "dev": true, - "optional": true, "requires": { "generate-function": "2.0.0", "generate-object-property": "1.2.0", @@ -6090,8 +6101,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", - "dev": true, - "optional": true + "dev": true }, "is-regex": { "version": "1.0.4", @@ -6342,6 +6352,14 @@ "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==" }, + "jquery-slimscroll": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/jquery-slimscroll/-/jquery-slimscroll-1.3.8.tgz", + "integrity": "sha1-hIHETnpHaHZTkIoo9/cK7WTITjY=", + "requires": { + "jquery": "3.3.1" + } + }, "js-base64": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.2.tgz", @@ -6447,8 +6465,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", - "dev": true, - "optional": true + "dev": true }, "jsprim": { "version": "1.4.1", @@ -6483,7 +6500,7 @@ "colors": "1.1.2", "combine-lists": "1.0.1", "connect": "3.6.5", - "core-js": "2.5.3", + "core-js": "2.4.1", "di": "0.0.1", "dom-serialize": "2.2.1", "expand-braces": "0.1.2", @@ -6775,8 +6792,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true, - "optional": true + "dev": true }, "lodash.camelcase": { "version": "4.3.0", @@ -6800,8 +6816,7 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz", "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=", - "dev": true, - "optional": true + "dev": true }, "lodash.tail": { "version": "4.1.1", @@ -7475,8 +7490,7 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", - "dev": true, - "optional": true + "dev": true }, "nanomatch": { "version": "1.2.7", @@ -7553,6 +7567,11 @@ "resolved": "https://registry.npmjs.org/ng2-file-upload/-/ng2-file-upload-1.3.0.tgz", "integrity": "sha512-Pudxik6LWYsT8hNiEW7RfjgGWAnvfQywxwJYMdt1snTUe+KnlRc/QqPv3QEQW6plXTanuLkYz/TbqilSfSHOsw==" }, + "ngx-progressbar": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ngx-progressbar/-/ngx-progressbar-2.1.1.tgz", + "integrity": "sha512-RyfW1Dhp9G+QZRhp0SsVZJOxvfXHq335aea9rAwVOORSzch6NFBuE+XYx3etlEh2avOYfigyWUX8vAlEXrHXKQ==" + }, "no-case": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", @@ -7573,7 +7592,6 @@ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", "dev": true, - "optional": true, "requires": { "fstream": "1.0.11", "glob": "7.1.2", @@ -7595,7 +7613,6 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, - "optional": true, "requires": { "abbrev": "1.1.1" } @@ -7604,8 +7621,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, - "optional": true + "dev": true } } }, @@ -7651,7 +7667,6 @@ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.7.2.tgz", "integrity": "sha512-CaV+wLqZ7//Jdom5aUFCpGNoECd7BbNhjuwdsX/LkXBrHl8eb1Wjw4HvWqcFvhr5KuNgAk8i/myf/MQ1YYeroA==", "dev": true, - "optional": true, "requires": { "async-foreach": "0.1.3", "chalk": "1.1.3", @@ -7684,8 +7699,7 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", - "dev": true, - "optional": true + "dev": true }, "chalk": { "version": "1.1.3", @@ -7705,7 +7719,6 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "dev": true, - "optional": true, "requires": { "chalk": "1.1.3", "commander": "2.12.2", @@ -7717,15 +7730,13 @@ "version": "6.3.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", - "dev": true, - "optional": true + "dev": true }, "request": { "version": "2.79.0", "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", "dev": true, - "optional": true, "requires": { "aws-sign2": "0.6.0", "aws4": "1.6.0", @@ -7759,8 +7770,7 @@ "version": "0.4.3", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", - "dev": true, - "optional": true + "dev": true } } }, @@ -11278,7 +11288,6 @@ "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", "dev": true, - "optional": true, "requires": { "glob": "7.1.2", "lodash": "4.17.4", @@ -11328,7 +11337,6 @@ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "dev": true, - "optional": true, "requires": { "js-base64": "2.4.2", "source-map": "0.4.4" @@ -11339,7 +11347,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, - "optional": true, "requires": { "amdefine": "1.0.1" } @@ -12159,7 +12166,6 @@ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", "dev": true, - "optional": true, "requires": { "readable-stream": "2.3.3" } @@ -12456,7 +12462,6 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, - "optional": true, "requires": { "block-stream": "0.0.9", "fstream": "1.0.11", @@ -12688,7 +12693,6 @@ "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz", "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", "dev": true, - "optional": true, "requires": { "glob": "6.0.4" }, @@ -12698,7 +12702,6 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "dev": true, - "optional": true, "requires": { "inflight": "1.0.6", "inherits": "2.0.3", @@ -12782,15 +12785,15 @@ } }, "tsickle": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.26.0.tgz", - "integrity": "sha512-eWJ2CUfttGK0LqF9iJ/Avnxbj4M+fCyJ50Zag3wm73Fut1hsasPRHKxKdrMWVj4BMHnQNx7TO+DdNmLmJTSuNw==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.27.2.tgz", + "integrity": "sha512-KW+ZgY0t2cq2Qib1sfdgMiRnk+cr3brUtzZoVWjv+Ot3jNxVorFBUH+6In6hl8Dg7BI2AAFf69NHkwvZNMSFwA==", "dev": true, "requires": { "minimist": "1.2.0", "mkdirp": "0.5.1", - "source-map": "0.5.7", - "source-map-support": "0.4.18" + "source-map": "0.6.1", + "source-map-support": "0.5.3" }, "dependencies": { "minimist": { @@ -12798,6 +12801,21 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz", + "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", + "dev": true, + "requires": { + "source-map": "0.6.1" + } } } }, @@ -12903,9 +12921,9 @@ "dev": true }, "typescript": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.5.3.tgz", - "integrity": "sha512-ptLSQs2S4QuS6/OD1eAKG+S5G8QQtrU5RT32JULdZQtM1L3WTi34Wsu48Yndzi8xsObRAB9RPt/KhA9wlpEF6w==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz", + "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==", "dev": true }, "uglify-js": { @@ -14312,6 +14330,11 @@ "ultron": "1.1.1" } }, + "xhr2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz", + "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=" + }, "xml-char-classes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", @@ -14379,7 +14402,6 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", "dev": true, - "optional": true, "requires": { "camelcase": "3.0.0", "cliui": "3.2.0", @@ -14400,8 +14422,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true, - "optional": true + "dev": true } } }, @@ -14410,7 +14431,6 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", "dev": true, - "optional": true, "requires": { "camelcase": "3.0.0" }, @@ -14419,8 +14439,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true, - "optional": true + "dev": true } } }, @@ -14437,9 +14456,9 @@ "dev": true }, "zone.js": { - "version": "0.8.20", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.20.tgz", - "integrity": "sha512-FXlA37ErSXCMy5RNBcGFgCI/Zivqzr0D19GuvDxhcYIJc7xkFp6c29DKyODJu0Zo+EMyur/WPPgcBh1EHjB9jA==" + "version": "0.8.19", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.19.tgz", + "integrity": "sha512-l9rofaOs6a4y1W8zt4pDmnCUCnYG377dG+5SZlXNWrTWYUuXFqcJZiOarhYiRVR0NI9sH/8ooPJiz4uprB/Mkg==" } } } diff --git a/codecamp-front/package.json b/codecamp-front/package.json index 3f3cf30..57691b8 100644 --- a/codecamp-front/package.json +++ b/codecamp-front/package.json @@ -12,30 +12,34 @@ }, "private": true, "dependencies": { - "@angular/animations": "^5.2.0", - "@angular/common": "^5.2.0", - "@angular/compiler": "^5.2.0", - "@angular/core": "^5.2.0", - "@angular/forms": "^5.2.0", - "@angular/http": "^5.2.0", - "@angular/platform-browser": "^5.2.0", - "@angular/platform-browser-dynamic": "^5.2.0", - "@angular/router": "^5.2.0", - "@types/jquery": "^3.3.0", - "angular2-flash-messages": "^2.0.5", - "angular2-jwt": "^0.2.3", - "bootstrap": "^4.0.0-beta.2", - "core-js": "^2.4.1", - "jquery": "^3.3.1", - "ng2-ace-editor": "^0.3.4", - "ng2-file-upload": "^1.3.0", - "popper.js": "^1.12.9", - "rxjs": "^5.5.6", - "zone.js": "^0.8.19" + "@angular/animations": "5.2.7", + "@angular/common": "5.2.7", + "@angular/compiler": "5.2.7", + "@angular/core": "5.2.7", + "@angular/forms": "5.2.7", + "@angular/http": "5.2.7", + "@angular/platform-browser": "5.2.7", + "@angular/platform-browser-dynamic": "5.2.7", + "@angular/platform-server": "5.2.7", + "@angular/router": "5.2.7", + "@types/jquery": "3.3.0", + "angular2-flash-messages": "2.0.5", + "angular2-jwt": "0.2.3", + "bootstrap": "4.0.0-beta.2", + "core-js": "2.4.1", + "font-awesome": "4.7.0", + "jquery": "3.3.1", + "jquery-slimscroll": "1.3.8", + "ng2-ace-editor": "0.3.4", + "ng2-file-upload": "1.3.0", + "ngx-progressbar": "2.1.1", + "popper.js": "1.12.9", + "rxjs": "5.5.6", + "zone.js": "0.8.19" }, "devDependencies": { "@angular/cli": "1.6.5", - "@angular/compiler-cli": "^5.2.0", + "@angular/compiler-cli": "^5.2.7", "@angular/language-service": "^5.2.0", "@types/jasmine": "~2.8.3", "@types/jasminewd2": "~2.0.2", @@ -49,9 +53,10 @@ "karma-coverage-istanbul-reporter": "^1.2.1", "karma-jasmine": "~1.1.0", "karma-jasmine-html-reporter": "^0.2.2", + "node-sass": "^4.7.2", "protractor": "~5.1.2", "ts-node": "~4.1.0", "tslint": "~5.9.1", - "typescript": "~2.5.3" + "typescript": "^2.7.2" } } diff --git a/codecamp-front/src/app/app-routing.module.ts b/codecamp-front/src/app/app-routing.module.ts index 7ea9b59..8af44b7 100644 --- a/codecamp-front/src/app/app-routing.module.ts +++ b/codecamp-front/src/app/app-routing.module.ts @@ -23,6 +23,7 @@ import { AuthGuard } from './guards/auth.guard'; import { NotAuthGuard } from './guards/not-auth.guard'; import { SolultionSubmitComponent } from './components/solultion-submit/solultion-submit.component'; import { SolutionComponent } from './components/solultion-submit/solution/solution.component'; +import { RanklistComponent } from './components/ranklist/ranklist.component'; const appRoutes: Routes = [ @@ -69,7 +70,8 @@ const appRoutes: Routes = [ }, { path: 'submit/complete', - component: SolutionComponent + component: SolutionComponent, + canActivate: [AuthGuard] }, { path: 'contest/add-contest', @@ -89,6 +91,10 @@ const appRoutes: Routes = [ path: 'contest/:contest/:problem', component: ProblemComponent }, + { + path: 'contest/:contest/ranklist', + component: RanklistComponent + }, { path: 'contest/edit/:edit-contest', component: EditContestComponent, diff --git a/codecamp-front/src/app/app.component.css b/codecamp-front/src/app/app.component.css index e69de29..2c4d3cd 100644 --- a/codecamp-front/src/app/app.component.css +++ b/codecamp-front/src/app/app.component.css @@ -0,0 +1,11 @@ +.container-fluid{ + padding: 0; + overflow: hidden; +} + +@media only screen and (max-width:896px){ + .wrapper{ + margin: 0; + } +} + diff --git a/codecamp-front/src/app/app.component.html b/codecamp-front/src/app/app.component.html index 6659729..c5c3019 100644 --- a/codecamp-front/src/app/app.component.html +++ b/codecamp-front/src/app/app.component.html @@ -1,2 +1,16 @@ + - +
+ +
+ +
+
diff --git a/codecamp-front/src/app/app.component.ts b/codecamp-front/src/app/app.component.ts index 7b0f672..097a482 100644 --- a/codecamp-front/src/app/app.component.ts +++ b/codecamp-front/src/app/app.component.ts @@ -1,10 +1,45 @@ -import { Component } from '@angular/core'; - +import { Component, OnInit, trigger, transition, style, animate, state } from '@angular/core'; +import { NgProgress } from 'ngx-progressbar'; +import { ContestService } from './services/contest.service'; @Component({ selector: 'app-root', templateUrl: './app.component.html', - styleUrls: ['./app.component.css'] + styleUrls: ['./app.component.css'], + animations: [ + trigger('panelInOut', [ + state('true', style({ + marginLeft: '240px' + })), + state('false', style({ + marginLeft: '0px ' + })), + transition('true => false', animate('230ms ease-out')), + transition('false => true', animate('700ms ease-in-out')) + ]) + ] }) -export class AppComponent { - title = 'app'; +export class AppComponent implements OnInit { + + panelVisible; + menuState:string = 'out'; + + constructor(public progressService: NgProgress, + private contestService: ContestService){ + + } + ngOnInit(){ + this.contestService.toggle.subscribe(toggle => this.panelVisible = toggle); + this.progressService.start(); + setTimeout(() => { + this.progressService.set(0.1); + }, 1000); + setTimeout(() => { + this.progressService.inc(0.2); + }, 2000); + if(!this.panelVisible) + // 1-line if statement that toggles the value: + this.menuState = 'in'; + else + this.menuState = 'out'; + } } diff --git a/codecamp-front/src/app/app.module.ts b/codecamp-front/src/app/app.module.ts index d011ef3..c7fd222 100644 --- a/codecamp-front/src/app/app.module.ts +++ b/codecamp-front/src/app/app.module.ts @@ -33,7 +33,11 @@ import { AddProblemComponent } from './components/add-problem/add-problem.compon import { AuthGuard } from './guards/auth.guard'; import { NotAuthGuard } from './guards/not-auth.guard'; import { SolultionSubmitComponent } from './components/solultion-submit/solultion-submit.component'; - +import { PreloaderComponent } from './components/preloader/preloader.component'; +import { SidebarComponent } from './components/sidebar/sidebar.component'; +import { NgProgressModule, NgProgressBrowserXhr } from 'ngx-progressbar'; +import { BrowserXhr } from '@angular/http'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; @NgModule({ declarations: [ AppComponent, @@ -55,16 +59,21 @@ import { SolultionSubmitComponent } from './components/solultion-submit/solultio SolutionComponent, ProblemComponent, AddProblemComponent, - SolultionSubmitComponent + SolultionSubmitComponent, + PreloaderComponent, + SidebarComponent ], imports: [ BrowserModule, HttpModule, ReactiveFormsModule, AppRoutingModule, - AceEditorModule + AceEditorModule, + NgProgressModule, + BrowserAnimationsModule ], - providers: [ AuthService, AuthGuard, NotAuthGuard, ContestService], + providers: [ AuthService, AuthGuard, NotAuthGuard, ContestService, + {provide: BrowserXhr, useClass: NgProgressBrowserXhr}], bootstrap: [AppComponent] }) export class AppModule { } diff --git a/codecamp-front/src/app/components/add-contest/add-contest.component.html b/codecamp-front/src/app/components/add-contest/add-contest.component.html index c08cb3b..b6b255c 100644 --- a/codecamp-front/src/app/components/add-contest/add-contest.component.html +++ b/codecamp-front/src/app/components/add-contest/add-contest.component.html @@ -28,7 +28,7 @@
-
-
- +