From bc78eefd5d68454efd95d9cd4606c5f6dc970a2b Mon Sep 17 00:00:00 2001 From: Preetam Ozarde Date: Wed, 6 Feb 2019 12:17:22 +0530 Subject: [PATCH 1/4] Added a complaints/suggestions module --- package-lock.json | 1399 ++++++++++------- package.json | 4 +- src/api.ts | 11 +- src/app/app.module.ts | 40 +- src/app/data.service.ts | 6 +- src/app/interfaces.ts | 49 +- src/app/navmenu/navmenu.component.html | 6 + .../complaints-home.component.css | 103 ++ .../complaints-home.component.html | 152 ++ .../complaints-home.component.ts | 143 ++ .../detailed-complaint.component.css | 164 ++ .../detailed-complaint.component.html | 107 ++ .../detailed-complaint.component.ts | 134 ++ .../file-complaint.component.css | 150 ++ .../file-complaint.component.html | 64 + .../file-complaint.component.ts | 133 ++ src/assets/placeholder_image.svg | 40 + 17 files changed, 2089 insertions(+), 616 deletions(-) create mode 100644 src/app/venter/complaints-home/complaints-home.component.css create mode 100644 src/app/venter/complaints-home/complaints-home.component.html create mode 100644 src/app/venter/complaints-home/complaints-home.component.ts create mode 100644 src/app/venter/detailed-complaint/detailed-complaint.component.css create mode 100644 src/app/venter/detailed-complaint/detailed-complaint.component.html create mode 100644 src/app/venter/detailed-complaint/detailed-complaint.component.ts create mode 100644 src/app/venter/file-complaint/file-complaint.component.css create mode 100644 src/app/venter/file-complaint/file-complaint.component.html create mode 100644 src/app/venter/file-complaint/file-complaint.component.ts create mode 100644 src/assets/placeholder_image.svg diff --git a/package-lock.json b/package-lock.json index 6f4e1524..c4d30e73 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,71 +4,93 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@agm/core": { + "version": "1.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@agm/core/-/core-1.0.0-beta.5.tgz", + "integrity": "sha512-LVENJqtBZEWpX+uJkGI0zgg+Xkm2KkktQm4ojZozArbeNvQkVL6pqVc04Mme6vvOzwJpD1cET5w4byC8Xaq1QQ==" + }, "@angular-devkit/architect": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.10.2.tgz", - "integrity": "sha512-jMok3FvXpj1zfI7tPmrMYe9yyBP2qivaBGxJqKa0H5SdwJFdudD+KwQOwamBdqz68WfEfzwvS2YCqE67thak7g==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.13.0.tgz", + "integrity": "sha512-oDBrWlfKh/0t2ag4T8gz9xzPMItxfctinlsHxhw7dPQ+etq1mIcWgQkiKiDrz4l46YiGipBRlC55j+6f37omAA==", "dev": true, "requires": { - "@angular-devkit/core": "7.0.2", + "@angular-devkit/core": "7.3.0", "rxjs": "6.3.3" } }, "@angular-devkit/build-angular": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.10.2.tgz", - "integrity": "sha512-0bLcql8Hf0W9G4pgMFc5vhRIGPUjLreGt+NiJgGP2SaM8bhWYm2097tybS18hdDi2eVfALpzsSOUYCtAowh4Pw==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.10.2", - "@angular-devkit/build-optimizer": "0.10.2", - "@angular-devkit/build-webpack": "0.10.2", - "@angular-devkit/core": "7.0.2", - "@ngtools/webpack": "7.0.2", - "ajv": "6.5.3", - "autoprefixer": "8.4.1", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.13.0.tgz", + "integrity": "sha512-JjoSXbmwOsuDJxngyChr6aOSZ2qsrvSL1MHwqgXhZswmC/KghBF0aZ7y8Wzr27zDCQ174Axts7+IAk6b+aWIqw==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.13.0", + "@angular-devkit/build-optimizer": "0.13.0", + "@angular-devkit/build-webpack": "0.13.0", + "@angular-devkit/core": "7.3.0", + "@ngtools/webpack": "7.3.0", + "ajv": "6.7.0", + "autoprefixer": "9.4.6", "circular-dependency-plugin": "5.0.2", "clean-css": "4.2.1", - "copy-webpack-plugin": "4.5.3", - "file-loader": "2.0.0", + "copy-webpack-plugin": "4.6.0", + "file-loader": "3.0.1", "glob": "7.1.3", "istanbul": "0.4.5", "istanbul-instrumenter-loader": "3.0.1", "karma-source-map-support": "1.3.0", - "less": "3.8.1", + "less": "3.9.0", "less-loader": "4.1.0", - "license-webpack-plugin": "2.0.1", - "loader-utils": "1.1.0", - "mini-css-extract-plugin": "0.4.3", + "license-webpack-plugin": "2.1.0", + "loader-utils": "1.2.3", + "mini-css-extract-plugin": "0.5.0", "minimatch": "3.0.4", - "node-sass": "4.9.3", - "opn": "5.3.0", + "node-sass": "4.11.0", + "opn": "5.4.0", "parse5": "4.0.0", - "portfinder": "1.0.17", - "postcss": "6.0.23", - "postcss-import": "11.1.0", - "postcss-loader": "2.1.6", - "raw-loader": "0.5.1", + "postcss": "7.0.14", + "postcss-import": "12.0.1", + "postcss-loader": "3.0.0", + "raw-loader": "1.0.0", "rxjs": "6.3.3", "sass-loader": "7.1.0", - "semver": "5.5.1", + "semver": "5.6.0", "source-map-loader": "0.2.4", - "source-map-support": "0.5.9", - "speed-measure-webpack-plugin": "^1.2.3", + "source-map-support": "0.5.10", + "speed-measure-webpack-plugin": "1.3.0", "stats-webpack-plugin": "0.7.0", - "style-loader": "0.23.0", + "style-loader": "0.23.1", "stylus": "0.54.5", "stylus-loader": "3.0.2", - "terser-webpack-plugin": "1.1.0", - "tree-kill": "1.2.0", - "webpack": "4.19.1", - "webpack-dev-middleware": "3.3.0", - "webpack-dev-server": "3.1.8", - "webpack-merge": "4.1.4", - "webpack-sources": "1.2.0", + "terser-webpack-plugin": "1.2.1", + "tree-kill": "1.2.1", + "webpack": "4.29.0", + "webpack-dev-middleware": "3.5.1", + "webpack-dev-server": "3.1.14", + "webpack-merge": "4.2.1", + "webpack-sources": "1.3.0", "webpack-subresource-integrity": "1.1.0-rc.6" }, "dependencies": { + "ajv": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.7.0.tgz", + "integrity": "sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, "glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", @@ -83,24 +105,46 @@ "path-is-absolute": "^1.0.0" } }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", "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.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", + "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } } } }, "@angular-devkit/build-optimizer": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.10.2.tgz", - "integrity": "sha512-vPX3VqpZ6Gu2cSDOAnMxqU/VwQ0isj1iI89DM3E8yJK2D+Sh82WEeGo9rpTEbGps9Y1VOddSRu8M3UXOlSEkdw==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.13.0.tgz", + "integrity": "sha512-fhWuzbMVV/UNYE7rHSKutrWTCZle34N5cdtFz6qhK1k/wn7Vmtg9cFOwzx0SPdIlOEn576NB4DS/4UG3B5WCUQ==", "dev": true, "requires": { - "loader-utils": "1.1.0", + "loader-utils": "1.2.3", "source-map": "0.5.6", - "typescript": "3.1.3", - "webpack-sources": "1.2.0" + "typescript": "3.2.4", + "webpack-sources": "1.3.0" }, "dependencies": { "source-map": { @@ -108,33 +152,63 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", "dev": true + }, + "typescript": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz", + "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==", + "dev": true } } }, "@angular-devkit/build-webpack": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.10.2.tgz", - "integrity": "sha512-anJQdhDTCoqloMn28+xHDMottBwnPUzzvm996aEOE8ziEHesdTYTR1JU8LeL149+HPFnufqVVkkzn2+lfG0yOg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.13.0.tgz", + "integrity": "sha512-idtFoSbQ3Y3WqXlDlU7oTPV9TIU1kjLqce0nK1Kst+t40GTc+Q4iUJJ7KsKE3nV6TPyrL1N/IvIF7+hSJnYm8A==", "dev": true, "requires": { - "@angular-devkit/architect": "0.10.2", - "@angular-devkit/core": "7.0.2", + "@angular-devkit/architect": "0.13.0", + "@angular-devkit/core": "7.3.0", "rxjs": "6.3.3" } }, "@angular-devkit/core": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.0.2.tgz", - "integrity": "sha512-liVqobArUfTvf0cZcjr3VI5tnHR+QjzfvC4HFBwIArls6/RxIATqd9GE9mFMWpy17xgVq8N7WmD6bymv1trbfA==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.3.0.tgz", + "integrity": "sha512-b0qtAUpgqLpWY8W6vWRv1aj6bXkZCP1rvywl8i8TbGMY67CWRcy5J3fNAMmjiZS+LJixFlIXYf4iOydglyJMfg==", "dev": true, "requires": { - "ajv": "6.5.3", + "ajv": "6.7.0", "chokidar": "2.0.4", "fast-json-stable-stringify": "2.0.0", "rxjs": "6.3.3", "source-map": "0.7.3" }, "dependencies": { + "ajv": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.7.0.tgz", + "integrity": "sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", @@ -816,16 +890,16 @@ } }, "@ngtools/webpack": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.0.2.tgz", - "integrity": "sha512-xEZEsZZgwmL/sCv3hAbZVgf+wVB7UzPcTkyprzD2K+2zFivCDd43uYAOdlrOnihCoEIpwnPTn69urjopMqmcjg==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-7.3.0.tgz", + "integrity": "sha512-U/By0Jlwy7nYwrGNtFirTg1aAsEHBL/9DhfFxPI0iu27FWiMttROuN6hmKbbnOmpbiYAVl5qTy3WXPXUIJjG1A==", "dev": true, "requires": { - "@angular-devkit/core": "7.0.2", + "@angular-devkit/core": "7.3.0", "enhanced-resolve": "4.1.0", "rxjs": "6.3.3", - "tree-kill": "1.2.0", - "webpack-sources": "1.2.0" + "tree-kill": "1.2.1", + "webpack-sources": "1.3.0" } }, "@ngx-share/button": { @@ -957,6 +1031,24 @@ } } }, + "@types/googlemaps": { + "version": "3.30.16", + "resolved": "https://registry.npmjs.org/@types/googlemaps/-/googlemaps-3.30.16.tgz", + "integrity": "sha512-6OZ64ahLzYfzuSr71y4jAHZXiwxjvvEM2bfF2tzjIc9KUZVbO30SkYa8WewTsR8aM5BFz/uBiNlZ14eRLXYS0g==" + }, + "@types/lodash": { + "version": "4.14.120", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.120.tgz", + "integrity": "sha512-jQ21kQ120mo+IrDs1nFNVm/AsdFxIx2+vZ347DbogHJPd/JzKNMOqU6HCYin1W6v8l5R9XSO2/e9cxmn7HAnVw==" + }, + "@types/lodash.isequal": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/@types/lodash.isequal/-/lodash.isequal-4.5.3.tgz", + "integrity": "sha512-tpTUmHksO2H9RF98Y2w7v06ZeEKAxHPo2ysL0bV5qv5UBweiZl33NFu5QYmYOSxSnHMqBt/vsVsBVeQAcJiokg==", + "requires": { + "@types/lodash": "*" + } + }, "@types/marked": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/@types/marked/-/marked-0.4.2.tgz", @@ -968,180 +1060,200 @@ "integrity": "sha512-3TUHC3jsBAB7qVRGxT6lWyYo2v96BMmD2PTcl47H25Lu7UXtFH/2qqmKiVrnel6Ne//0TFYf6uvNX+HW2FRkLQ==", "dev": true }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/webpack-sources": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.5.tgz", + "integrity": "sha512-zfvjpp7jiafSmrzJ2/i3LqOyTYTuJ7u1KOXlKgDlvsj9Rr0x7ZiYu5lZbXwobL7lmsRNtPXlBfmaUD8eU2Hu8w==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + }, + "dependencies": { + "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 + } + } + }, "@webassemblyjs/ast": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.6.tgz", - "integrity": "sha512-8nkZS48EVsMUU0v6F1LCIOw4RYWLm2plMtbhFTjNgeXmsTNLuU3xTRtnljt9BFQB+iPbLRobkNrCWftWnNC7wQ==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", + "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/wast-parser": "1.7.6", - "mamacro": "^0.0.3" + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.6.tgz", - "integrity": "sha512-VBOZvaOyBSkPZdIt5VBMg3vPWxouuM13dPXGWI1cBh3oFLNcFJ8s9YA7S9l4mPI7+Q950QqOmqj06oa83hNWBA==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", + "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.6.tgz", - "integrity": "sha512-SCzhcQWHXfrfMSKcj8zHg1/kL9kb3aa5TN4plc/EREOs5Xop0ci5bdVBApbk2yfVi8aL+Ly4Qpp3/TRAUInjrg==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", + "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.6.tgz", - "integrity": "sha512-1/gW5NaGsEOZ02fjnFiU8/OEEXU1uVbv2um0pQ9YVL3IHSkyk6xOwokzyqqO1qDZQUAllb+V8irtClPWntbVqw==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", + "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", "dev": true }, "@webassemblyjs/helper-code-frame": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.6.tgz", - "integrity": "sha512-+suMJOkSn9+vEvDvgyWyrJo5vJsWSDXZmJAjtoUq4zS4eqHyXImpktvHOZwXp1XQjO5H+YQwsBgqTQEc0J/5zg==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", + "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", "dev": true, "requires": { - "@webassemblyjs/wast-printer": "1.7.6" + "@webassemblyjs/wast-printer": "1.7.11" } }, "@webassemblyjs/helper-fsm": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.6.tgz", - "integrity": "sha512-HCS6KN3wgxUihGBW7WFzEC/o8Eyvk0d56uazusnxXthDPnkWiMv+kGi9xXswL2cvfYfeK5yiM17z2K5BVlwypw==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", + "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", "dev": true }, "@webassemblyjs/helper-module-context": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.6.tgz", - "integrity": "sha512-e8/6GbY7OjLM+6OsN7f2krC2qYVNaSr0B0oe4lWdmq5sL++8dYDD1TFbD1TdAdWMRTYNr/Qq7ovXWzia2EbSjw==", - "dev": true, - "requires": { - "mamacro": "^0.0.3" - } + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", + "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", + "dev": true }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.6.tgz", - "integrity": "sha512-PzYFCb7RjjSdAOljyvLWVqd6adAOabJW+8yRT+NWhXuf1nNZWH+igFZCUK9k7Cx7CsBbzIfXjJc7u56zZgFj9Q==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", + "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.6.tgz", - "integrity": "sha512-3GS628ppDPSuwcYlQ7cDCGr4W2n9c4hLzvnRKeuz+lGsJSmc/ADVoYpm1ts2vlB1tGHkjtQMni+yu8mHoMlKlA==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", + "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-buffer": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/wasm-gen": "1.7.6" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11" } }, "@webassemblyjs/ieee754": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.6.tgz", - "integrity": "sha512-V4cIp0ruyw+hawUHwQLn6o2mFEw4t50tk530oKsYXQhEzKR+xNGDxs/SFFuyTO7X3NzEu4usA3w5jzhl2RYyzQ==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", + "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.6.tgz", - "integrity": "sha512-ojdlG8WpM394lBow4ncTGJoIVZ4aAtNOWHhfAM7m7zprmkVcKK+2kK5YJ9Bmj6/ketTtOn7wGSHCtMt+LzqgYQ==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", + "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", "dev": true, "requires": { "@xtuc/long": "4.2.1" } }, "@webassemblyjs/utf8": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.6.tgz", - "integrity": "sha512-oId+tLxQ+AeDC34ELRYNSqJRaScB0TClUU6KQfpB8rNT6oelYlz8axsPhf6yPTg7PBJ/Z5WcXmUYiHEWgbbHJw==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", + "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.6.tgz", - "integrity": "sha512-pTNjLO3o41v/Vz9VFLl+I3YLImpCSpodFW77pNoH4agn5I6GgSxXHXtvWDTvYJFty0jSeXZWLEmbaSIRUDlekg==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", + "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-buffer": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/helper-wasm-section": "1.7.6", - "@webassemblyjs/wasm-gen": "1.7.6", - "@webassemblyjs/wasm-opt": "1.7.6", - "@webassemblyjs/wasm-parser": "1.7.6", - "@webassemblyjs/wast-printer": "1.7.6" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/helper-wasm-section": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-opt": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "@webassemblyjs/wast-printer": "1.7.11" } }, "@webassemblyjs/wasm-gen": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.6.tgz", - "integrity": "sha512-mQvFJVumtmRKEUXMohwn8nSrtjJJl6oXwF3FotC5t6e2hlKMh8sIaW03Sck2MDzw9xPogZD7tdP5kjPlbH9EcQ==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", + "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/ieee754": "1.7.6", - "@webassemblyjs/leb128": "1.7.6", - "@webassemblyjs/utf8": "1.7.6" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" } }, "@webassemblyjs/wasm-opt": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.6.tgz", - "integrity": "sha512-go44K90fSIsDwRgtHhX14VtbdDPdK2sZQtZqUcMRvTojdozj5tLI0VVJAzLCfz51NOkFXezPeVTAYFqrZ6rI8Q==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", + "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-buffer": "1.7.6", - "@webassemblyjs/wasm-gen": "1.7.6", - "@webassemblyjs/wasm-parser": "1.7.6" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11" } }, "@webassemblyjs/wasm-parser": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.6.tgz", - "integrity": "sha512-t1T6TfwNY85pDA/HWPA8kB9xA4sp9ajlRg5W7EKikqrynTyFo+/qDzIpvdkOkOGjlS6d4n4SX59SPuIayR22Yg==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", + "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-api-error": "1.7.6", - "@webassemblyjs/helper-wasm-bytecode": "1.7.6", - "@webassemblyjs/ieee754": "1.7.6", - "@webassemblyjs/leb128": "1.7.6", - "@webassemblyjs/utf8": "1.7.6" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" } }, "@webassemblyjs/wast-parser": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.6.tgz", - "integrity": "sha512-1MaWTErN0ziOsNUlLdvwS+NS1QWuI/kgJaAGAMHX8+fMJFgOJDmN/xsG4h/A1Gtf/tz5VyXQciaqHZqp2q0vfg==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", + "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/floating-point-hex-parser": "1.7.6", - "@webassemblyjs/helper-api-error": "1.7.6", - "@webassemblyjs/helper-code-frame": "1.7.6", - "@webassemblyjs/helper-fsm": "1.7.6", - "@xtuc/long": "4.2.1", - "mamacro": "^0.0.3" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/floating-point-hex-parser": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-code-frame": "1.7.11", + "@webassemblyjs/helper-fsm": "1.7.11", + "@xtuc/long": "4.2.1" } }, "@webassemblyjs/wast-printer": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.6.tgz", - "integrity": "sha512-vHdHSK1tOetvDcl1IV1OdDeGNe/NDDQ+KzuZHMtqTVP1xO/tZ/IKNpj5BaGk1OYFdsDWQqb31PIwdEyPntOWRQ==", + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", + "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/wast-parser": "1.7.6", + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11", "@xtuc/long": "4.2.1" } }, @@ -1174,19 +1286,16 @@ } }, "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.0.6.tgz", + "integrity": "sha512-5M3G/A4uBSMIlfJ+h9W125vJvPFH/zirISsW5qfxF5YzEvXJCtolLoQvM5yZft0DvMcUrPGKPOlgEu55I6iUtA==", "dev": true }, "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", - "dev": true, - "requires": { - "acorn": "^5.0.0" - } + "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 }, "ajv": { "version": "6.5.3", @@ -1212,15 +1321,15 @@ } }, "ajv-errors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.0.tgz", - "integrity": "sha1-7PAh+hCP0X37Xms4Py3SM+Mf/Fk=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", "dev": true }, "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.3.0.tgz", + "integrity": "sha512-CMzN9S62ZOO4sA/mJZIO4S++ZM7KFWzH3PPWkveLhy4OZ9i1/VatgwWMD46w/XbGCBy7Ye0gCk+Za6mmyfKK7g==", "dev": true }, "amdefine": { @@ -1230,9 +1339,9 @@ "dev": true }, "ansi-colors": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.1.0.tgz", - "integrity": "sha512-hTv1qPdi+sVEk3jYsdjox5nQI0C9HTbjKShbCdYLKb1LOfNbb7wsF4d7OEKIZoxIHx02tSp3m94jcPW2EfMjmA==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", + "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", "dev": true }, "ansi-escapes": { @@ -1329,12 +1438,13 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true + "dev": true, + "optional": true }, "array-flatten": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", - "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, "array-union": { @@ -1457,17 +1567,17 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "autoprefixer": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.4.1.tgz", - "integrity": "sha512-YqUclCBDXUT9Y7aQ8Xv+ja8yhTZYJoMsOD7WS++gZIJLCpCu+gPcKGDlhk6S3WxhLkTcNVdaMZAWys2nzZCH7g==", + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.4.6.tgz", + "integrity": "sha512-Yp51mevbOEdxDUy5WjiKtpQaecqYq9OqZSL04rSoCiry7Tc5I9FEyo3bfxiTJc1DfHeKwSFCUYbBAiOQ2VGfiw==", "dev": true, "requires": { - "browserslist": "^3.2.6", - "caniuse-lite": "^1.0.30000832", + "browserslist": "^4.4.1", + "caniuse-lite": "^1.0.30000929", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", - "postcss": "^6.0.22", - "postcss-value-parser": "^3.2.3" + "postcss": "^7.0.13", + "postcss-value-parser": "^3.3.1" } }, "aws-sign2": { @@ -1681,9 +1791,9 @@ } }, "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, "binary-extensions": { @@ -1702,9 +1812,9 @@ } }, "bluebird": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz", - "integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", + "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", "dev": true }, "bn.js": { @@ -1860,13 +1970,14 @@ } }, "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.1.tgz", + "integrity": "sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" + "caniuse-lite": "^1.0.30000929", + "electron-to-chromium": "^1.3.103", + "node-releases": "^1.1.3" } }, "buffer": { @@ -1978,9 +2089,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000893", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000893.tgz", - "integrity": "sha512-kOddHcTEef+NgN/fs0zmX2brHTNATVOWMEIhlZHCuwQRtXobjSw9pAECc44Op4bTBcavRjkLaPrGomknH7+Jvg==", + "version": "1.0.30000934", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000934.tgz", + "integrity": "sha512-o7yfZn0R9N+mWAuksDsdLsb1gu9o//XK0QSU0zSSReKNRsXsFc/n/psxi0YSPNiqlKxImp5h4DHnAPdwYJ8nNA==", "dev": true }, "canonical-path": { @@ -2275,9 +2386,9 @@ } }, "connect-history-api-fallback": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", - "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true }, "console-browserify": { @@ -2354,9 +2465,9 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "copy-webpack-plugin": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.3.tgz", - "integrity": "sha512-VKCiNXQcc8zyznaepXfKpCH2cZD+/j3T3B+gsFY97P7qMlEsj34wr/sI9OCG7QPUUh7gAHVx3q8Q1rdQIDM4bA==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz", + "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==", "dev": true, "requires": { "cacache": "^10.0.4", @@ -2512,6 +2623,7 @@ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, + "optional": true, "requires": { "array-find-index": "^1.0.1" } @@ -2731,12 +2843,11 @@ } }, "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", + "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", "dev": true, "requires": { - "arrify": "^1.0.1", "path-type": "^3.0.0" } }, @@ -2800,9 +2911,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.80", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.80.tgz", - "integrity": "sha512-WClidEWEUNx7OfwXehB0qaxCuetjbKjev2SmXWgybWPLKAThBiMTF/2Pd8GSUDtoGOavxVzdkKwfFAPRSWlkLw==", + "version": "1.3.113", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz", + "integrity": "sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g==", "dev": true }, "elliptic": { @@ -2973,18 +3084,18 @@ "dev": true }, "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", "dev": true }, "eventsource": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", - "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", "dev": true, "requires": { - "original": ">=0.0.5" + "original": "^1.0.0" } }, "evp_bytestokey": { @@ -3316,9 +3427,9 @@ } }, "file-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", - "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz", + "integrity": "sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==", "dev": true, "requires": { "loader-utils": "^1.0.2", @@ -3398,9 +3509,9 @@ } }, "follow-redirects": { - "version": "1.5.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.9.tgz", - "integrity": "sha512-Bh65EZI/RU8nx0wbYF9shkFZlqLP+6WT/5FnA3cE/djNSuKNHJEinGGZgu/cQEkeeb2GdFOgenAmn8qaqYke2w==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.1.tgz", + "integrity": "sha512-t2JCjbzxQpWvbhts3l6SH1DKzSrx8a+SsaVf4h6bG4kOXUuPYS/kg2Lr4gQSb7eemaHqJkOThF1BGyjlUkO1GQ==", "dev": true, "requires": { "debug": "=3.1.0" @@ -4159,9 +4270,9 @@ "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=" }, "handle-thing": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", - "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", + "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", "dev": true }, "handlebars": { @@ -4284,9 +4395,9 @@ } }, "hash.js": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", - "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -4347,9 +4458,9 @@ } }, "http-parser-js": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", - "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz", + "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==", "dev": true }, "http-proxy": { @@ -4473,9 +4584,9 @@ } }, "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", + "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -5020,9 +5131,9 @@ } }, "js-base64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", - "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", + "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", "dev": true, "optional": true }, @@ -5093,10 +5204,21 @@ "dev": true }, "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } }, "jsprim": { "version": "1.4.1", @@ -5140,9 +5262,9 @@ } }, "less": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz", - "integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/less/-/less-3.9.0.tgz", + "integrity": "sha512-31CmtPEZraNUtuUREYjSqRkeETFdyEHSEPAGq4erDlUXtda7pzNmctdljdIagSb589d/qXGWiiP31R5JVf+v0w==", "dev": true, "requires": { "clone": "^2.1.2", @@ -5187,11 +5309,12 @@ } }, "license-webpack-plugin": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.0.1.tgz", - "integrity": "sha512-XUSJoU+M2w/N5ZdzHm++mFSM2BVKAdnSORXF7nbkpBJVdfi3hiiMpNdiuUR7S4OvsceiXQp1yoBwhiAP+gtC2g==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.0.tgz", + "integrity": "sha512-vDiBeMWxjE9n6TabQ9J4FH8urFdsRK0Nvxn1cit9biCiR9aq1zBR0X2BlAkEiIG6qPamLeU0GzvIgLkrFc398A==", "dev": true, "requires": { + "@types/webpack-sources": "^0.1.5", "webpack-sources": "^1.2.0" } }, @@ -5217,20 +5340,20 @@ } }, "loader-runner": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz", - "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", "dev": true }, "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", "dev": true, "requires": { - "big.js": "^3.1.3", + "big.js": "^5.2.2", "emojis-list": "^2.0.0", - "json5": "^0.5.0" + "json5": "^1.0.1" } }, "locate-path": { @@ -5267,6 +5390,11 @@ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, "lodash.mergewith": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", @@ -5300,6 +5428,7 @@ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, + "optional": true, "requires": { "currently-unhandled": "^0.4.1", "signal-exit": "^3.0.0" @@ -5339,16 +5468,10 @@ "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", "dev": true }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true - }, "map-age-cleaner": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz", - "integrity": "sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "dev": true, "requires": { "p-defer": "^1.0.0" @@ -5407,14 +5530,14 @@ "dev": true }, "mem": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", - "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz", + "integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==", "dev": true, "requires": { "map-age-cleaner": "^0.1.1", "mimic-fn": "^1.0.0", - "p-is-promise": "^1.1.0" + "p-is-promise": "^2.0.0" } }, "memory-fs": { @@ -5526,9 +5649,9 @@ "dev": true }, "mini-css-extract-plugin": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.3.tgz", - "integrity": "sha512-Mxs0nxzF1kxPv4TRi2NimewgXlJqh0rGE30vviCU2WHrpbta6wklnUV9dr9FUtoAHmB3p3LeXEC+ZjgHvB0Dzg==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz", + "integrity": "sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw==", "dev": true, "requires": { "loader-utils": "^1.1.0", @@ -5628,9 +5751,9 @@ } }, "moment": { - "version": "2.22.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", - "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" }, "move-concurrently": { "version": "1.0.1", @@ -5709,6 +5832,15 @@ "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", "dev": true }, + "ng2-carouselamos": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ng2-carouselamos/-/ng2-carouselamos-3.2.0.tgz", + "integrity": "sha512-WG5rNL84vo89e5038AqFrvapBVqz2BjRGv2vduJd6OR+Nt/RPfFyEDQd8SfNqHlNAmZqpnCK7puAUldDjcqh7g==", + "requires": { + "@types/lodash.isequal": "^4.5.2", + "lodash.isequal": "^4.5.0" + } + }, "ngx-flyout": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/ngx-flyout/-/ngx-flyout-1.0.0.tgz", @@ -5779,9 +5911,9 @@ } }, "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz", + "integrity": "sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA==", "dev": true, "requires": { "assert": "^1.1.1", @@ -5791,7 +5923,7 @@ "constants-browserify": "^1.0.0", "crypto-browserify": "^3.11.0", "domain-browser": "^1.1.1", - "events": "^1.0.0", + "events": "^3.0.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", "path-browserify": "0.0.0", @@ -5805,7 +5937,7 @@ "timers-browserify": "^2.0.4", "tty-browserify": "0.0.0", "url": "^0.11.0", - "util": "^0.10.3", + "util": "^0.11.0", "vm-browserify": "0.0.4" }, "dependencies": { @@ -5817,10 +5949,19 @@ } } }, + "node-releases": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.7.tgz", + "integrity": "sha512-bKdrwaqJUPHqlCzDD7so/R+Nk0jGv9a11ZhLrD9f6i947qGLrGAhU3OxRENa19QQmwzGy/g6zCDEuLGDO8HPvA==", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, "node-sass": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.3.tgz", - "integrity": "sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.11.0.tgz", + "integrity": "sha512-bHUdHTphgQJZaF1LASx0kAviPH7sGlcyNhWade4eVIpFp6tsn7SV8xNMTbsQFpEV9VXpnwTTnNYlfsZXgGgmkA==", "dev": true, "optional": true, "requires": { @@ -5839,25 +5980,12 @@ "nan": "^2.10.0", "node-gyp": "^3.8.0", "npmlog": "^4.0.0", - "request": "2.87.0", + "request": "^2.88.0", "sass-graph": "^2.2.4", "stdout-stream": "^1.4.0", "true-case-path": "^1.0.2" }, "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "optional": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", @@ -5879,76 +6007,12 @@ "supports-color": "^2.0.0" } }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "dev": true, - "optional": true, - "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" - } - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true, - "optional": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true, - "optional": true - }, - "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - } - }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true, "optional": true - }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dev": true, - "optional": true, - "requires": { - "punycode": "^1.4.1" - } } } }, @@ -6179,9 +6243,9 @@ } }, "opn": { - "version": "5.3.0", - "resolved": "http://registry.npmjs.org/opn/-/opn-5.3.0.tgz", - "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.4.0.tgz", + "integrity": "sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==", "dev": true, "requires": { "is-wsl": "^1.1.0" @@ -6279,9 +6343,9 @@ "dev": true }, "p-is-promise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", + "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==", "dev": true }, "p-limit": { @@ -6315,9 +6379,9 @@ "dev": true }, "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.8.tgz", + "integrity": "sha512-6i0HVbUfcKaTv+EG8ZTr75az7GFXcLYk9UyLEg7Notv/Ma+z/UG3TCoz6GiNeOrn1E/e63I0X/Hpw18jHOTUnA==", "dev": true }, "parallel-transform": { @@ -6332,16 +6396,17 @@ } }, "parse-asn1": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", - "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.3.tgz", + "integrity": "sha512-VrPoetlz7B/FqjBLD2f5wBVZvsZVLnRUrxVLfRYhGXCODa/NWE4p3Wp+6+aV3ZPL3KM7/OZmxDIwwijD7yuucg==", "dev": true, "requires": { "asn1.js": "^4.0.0", "browserify-aes": "^1.0.0", "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3" + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" } }, "parse-glob": { @@ -6549,9 +6614,9 @@ } }, "portfinder": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.17.tgz", - "integrity": "sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==", + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz", + "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==", "dev": true, "requires": { "async": "^1.5.2", @@ -6565,31 +6630,62 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", + "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", "dev": true, "requires": { - "chalk": "^2.4.1", + "chalk": "^2.4.2", "source-map": "^0.6.1", - "supports-color": "^5.4.0" + "supports-color": "^6.1.0" }, "dependencies": { + "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" + }, + "dependencies": { + "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" + } + } + } + }, "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 + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } } } }, "postcss-import": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-11.1.0.tgz", - "integrity": "sha512-5l327iI75POonjxkXgdRCUS+AlzAdBx4pOvMEhTKTCjb1p8IEeVR9yx3cPbmN7LIWJLbfnIXxAhoB4jpD0c/Cw==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", "dev": true, "requires": { - "postcss": "^6.0.1", + "postcss": "^7.0.1", "postcss-value-parser": "^3.2.3", "read-cache": "^1.0.0", "resolve": "^1.1.7" @@ -6606,27 +6702,15 @@ } }, "postcss-loader": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz", - "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", "dev": true, "requires": { "loader-utils": "^1.1.0", - "postcss": "^6.0.0", + "postcss": "^7.0.0", "postcss-load-config": "^2.0.0", - "schema-utils": "^0.4.0" - }, - "dependencies": { - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - } + "schema-utils": "^1.0.0" } }, "postcss-value-parser": { @@ -6841,10 +6925,14 @@ } }, "raw-loader": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-1.0.0.tgz", + "integrity": "sha512-Uqy5AqELpytJTRxYT4fhltcKPj0TyaEpzJDcGz7DFJi+pQOOi3GjR/DOdxTkTsF+NzhnldIoG6TORaBlInUuqA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + } }, "rbush": { "version": "2.0.2", @@ -7178,12 +7266,28 @@ "dev": true }, "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "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" + } + } } }, "ripemd160": { @@ -7383,9 +7487,9 @@ } }, "serialize-javascript": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", - "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.6.1.tgz", + "integrity": "sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw==", "dev": true }, "serve-index": { @@ -7635,19 +7739,28 @@ } }, "sockjs-client": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz", - "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", + "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", "dev": true, "requires": { - "debug": "^2.6.6", - "eventsource": "0.1.6", - "faye-websocket": "~0.11.0", - "inherits": "^2.0.1", + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", "json3": "^3.3.2", - "url-parse": "^1.1.8" + "url-parse": "^1.4.3" }, "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, "faye-websocket": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", @@ -7656,6 +7769,12 @@ "requires": { "websocket-driver": ">=0.5.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true } } }, @@ -7765,38 +7884,81 @@ "dev": true }, "spdy": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", - "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.0.tgz", + "integrity": "sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q==", "dev": true, "requires": { - "debug": "^2.6.8", - "handle-thing": "^1.2.5", + "debug": "^4.1.0", + "handle-thing": "^2.0.0", "http-deceiver": "^1.2.7", - "safe-buffer": "^5.0.1", "select-hose": "^2.0.0", - "spdy-transport": "^2.0.18" + "spdy-transport": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } } }, "spdy-transport": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz", - "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, "requires": { - "debug": "^2.6.8", - "detect-node": "^2.0.3", + "debug": "^4.1.0", + "detect-node": "^2.0.4", "hpack.js": "^2.1.6", - "obuf": "^1.1.1", - "readable-stream": "^2.2.9", - "safe-buffer": "^5.0.1", - "wbuf": "^1.7.2" + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "readable-stream": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.1.tgz", + "integrity": "sha512-DkN66hPyqDhnIQ6Jcsvx9bFjhw214O4poMBcIMgPVpQvNy9a0e0Uhg5SqySyDKAmUlwt8LonTBz1ezOnM8pUdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "speed-measure-webpack-plugin": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.2.3.tgz", - "integrity": "sha512-p+taQ69VkRUXYMoZOx2nxV/Tz8tt79ahctoZJyJDHWP7fEYvwFNf5Pd73k5kZ6auu0pTsPNLEUwWpM8mCk85Zw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.0.tgz", + "integrity": "sha512-b9Yd0TrzceMVYSbuamM1sFsGM1oVfyFTM22gOoyLhymNvBVApuYpkdFOgYkKJpN/KhTpcCYcTGHg7X+FJ33Vvw==", "dev": true, "requires": { "chalk": "^2.0.1" @@ -7887,9 +8049,9 @@ } }, "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", "dev": true, "requires": { "inherits": "~2.0.1", @@ -7979,25 +8141,13 @@ } }, "style-loader": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.0.tgz", - "integrity": "sha512-uCcN7XWHkqwGVt7skpInW6IGO1tG6ReyFQ1Cseh0VcN6VdcFQi62aG/2F3Y9ueA8x4IVlfaSUxpmQXQD9QrEuQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", + "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", "dev": true, "requires": { "loader-utils": "^1.1.0", - "schema-utils": "^0.4.5" - }, - "dependencies": { - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - } + "schema-utils": "^1.0.0" } }, "stylus": { @@ -8066,9 +8216,9 @@ "dev": true }, "tapable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.0.tgz", - "integrity": "sha512-IlqtmLVaZA2qab8epUXbVWRn3aB1imbDMJtjB3nu4X0NqPkcY/JH9ZtCBWKHWPxs8Svi9tyo8w2dBoi07qZbBA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", + "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==", "dev": true }, "tar": { @@ -8084,14 +8234,14 @@ } }, "terser": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-3.10.1.tgz", - "integrity": "sha512-GE0ShECt1/dZUZt9Kyr/IC6xXG46pTbm1C1WfzQbbnRB5LhdJlF8p5NBZ38RjspD7hEM9O5ud8aIcOFY6evl4A==", + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.16.0.tgz", + "integrity": "sha512-Ua8BhyibmsQBFXDZZ3Es7GASB2yFrQJr0jgAlZK1FBLbFarrHoCuMHPCro5MbX4jidcaFGiV+uTc3wxodmGjUg==", "dev": true, "requires": { "commander": "~2.17.1", "source-map": "~0.6.1", - "source-map-support": "~0.5.6" + "source-map-support": "~0.5.9" }, "dependencies": { "commander": { @@ -8109,9 +8259,9 @@ } }, "terser-webpack-plugin": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz", - "integrity": "sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.1.tgz", + "integrity": "sha512-GGSt+gbT0oKcMDmPx4SRSfJPE1XaN3kQRWG4ghxKQw9cn5G9x6aCKSsgYdvyM0na9NJ4Drv0RG6jbBByZ5CMjw==", "dev": true, "requires": { "cacache": "^11.0.2", @@ -8125,24 +8275,24 @@ }, "dependencies": { "cacache": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.2.0.tgz", - "integrity": "sha512-IFWl6lfK6wSeYCHUXh+N1lY72UDrpyrYQJNIVQf48paDuWbv5RbAtJYf/4gUQFObTCHZwdZ5sI8Iw7nqwP6nlQ==", + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", + "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", "dev": true, "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "figgy-pudding": "^3.1.0", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.3", + "bluebird": "^3.5.3", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", "mississippi": "^3.0.0", "mkdirp": "^0.5.1", "move-concurrently": "^1.0.1", "promise-inflight": "^1.0.1", "rimraf": "^2.6.2", - "ssri": "^6.0.0", - "unique-filename": "^1.1.0", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", "y18n": "^4.0.0" } }, @@ -8166,6 +8316,26 @@ "locate-path": "^3.0.0" } }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "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" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -8176,6 +8346,15 @@ "path-exists": "^3.0.0" } }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, "mississippi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", @@ -8195,9 +8374,9 @@ } }, "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", + "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -8251,6 +8430,12 @@ "requires": { "figgy-pudding": "^3.5.1" } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true } } }, @@ -8261,12 +8446,12 @@ "dev": true }, "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "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.1.5", + "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, @@ -8369,9 +8554,9 @@ } }, "tree-kill": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz", - "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz", + "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==", "dev": true }, "trim-newlines": { @@ -8554,56 +8739,6 @@ } } }, - "uglifyjs-webpack-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", - "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", - "dev": true, - "requires": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", - "schema-utils": "^0.4.5", - "serialize-javascript": "^1.4.0", - "source-map": "^0.6.1", - "uglify-es": "^3.3.4", - "webpack-sources": "^1.1.0", - "worker-farm": "^1.5.2" - }, - "dependencies": { - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", - "dev": true - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - }, - "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 - }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "dev": true, - "requires": { - "commander": "~2.13.0", - "source-map": "~0.6.1" - } - } - } - }, "union-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", @@ -8737,16 +8872,10 @@ } } }, - "url-join": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", - "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=", - "dev": true - }, "url-parse": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz", - "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz", + "integrity": "sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==", "dev": true, "requires": { "querystringify": "^2.0.0", @@ -8759,9 +8888,9 @@ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", "dev": true, "requires": { "inherits": "2.0.3" @@ -8855,17 +8984,17 @@ "integrity": "sha1-Om2bwVGWN3qQ+OKAP6UmIWWwRRA=" }, "webpack": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.19.1.tgz", - "integrity": "sha512-j7Q/5QqZRqIFXJvC0E59ipLV5Hf6lAnS3ezC3I4HMUybwEDikQBVad5d+IpPtmaQPQArvgUZLXIN6lWijHBn4g==", + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.29.0.tgz", + "integrity": "sha512-pxdGG0keDBtamE1mNvT5zyBdx+7wkh6mh7uzMOo/uRQ/fhsdj5FXkh/j5mapzs060forql1oXqXN9HJGju+y7w==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.7.6", - "@webassemblyjs/helper-module-context": "1.7.6", - "@webassemblyjs/wasm-edit": "1.7.6", - "@webassemblyjs/wasm-parser": "1.7.6", - "acorn": "^5.6.2", - "acorn-dynamic-import": "^3.0.0", + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/wasm-edit": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "acorn": "^6.0.5", + "acorn-dynamic-import": "^4.0.0", "ajv": "^6.1.0", "ajv-keywords": "^3.1.0", "chrome-trace-event": "^1.0.0", @@ -8881,9 +9010,9 @@ "node-libs-browser": "^2.0.0", "schema-utils": "^0.4.4", "tapable": "^1.1.0", - "uglifyjs-webpack-plugin": "^1.2.4", + "terser-webpack-plugin": "^1.1.0", "watchpack": "^1.5.0", - "webpack-sources": "^1.2.0" + "webpack-sources": "^1.3.0" }, "dependencies": { "schema-utils": { @@ -8926,31 +9055,29 @@ } }, "webpack-dev-middleware": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.3.0.tgz", - "integrity": "sha512-5C5gXtOo1I6+0AEg4UPglYEtu3Rai6l5IiO6aUu65scHXz29dc3oIWMiRwvcNLXgL0HwRkRxa9N02ZjFt4hY8w==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.5.1.tgz", + "integrity": "sha512-4dwCh/AyMOYAybggUr8fiCkRnjVDp+Cqlr9c+aaNB3GJYgRGYQWJ1YX/WAKUNA9dPNHZ6QSN2lYDKqjKSI8Vqw==", "dev": true, "requires": { - "loud-rejection": "^1.6.0", "memory-fs": "~0.4.1", "mime": "^2.3.1", "range-parser": "^1.0.3", - "url-join": "^4.0.0", "webpack-log": "^2.0.0" }, "dependencies": { "mime": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", - "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", + "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", "dev": true } } }, "webpack-dev-server": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.8.tgz", - "integrity": "sha512-c+tcJtDqnPdxCAzEEZKdIPmg3i5i7cAHe+B+0xFNK0BlCc2HF/unYccbU7xTgfGc5xxhCztCQzFmsqim+KhI+A==", + "version": "3.1.14", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz", + "integrity": "sha512-mGXDgz5SlTxcF3hUpfC8hrQ11yhAttuUQWf1Wmb+6zo3x6rb7b9mIfuQvAPLdfDRCGRGvakBWHdHOa0I9p/EVQ==", "dev": true, "requires": { "ansi-html": "0.0.7", @@ -8972,13 +9099,15 @@ "portfinder": "^1.0.9", "schema-utils": "^1.0.0", "selfsigned": "^1.9.1", + "semver": "^5.6.0", "serve-index": "^1.7.2", "sockjs": "0.3.19", - "sockjs-client": "1.1.5", - "spdy": "^3.4.1", + "sockjs-client": "1.3.0", + "spdy": "^4.0.0", "strip-ansi": "^3.0.0", "supports-color": "^5.1.0", - "webpack-dev-middleware": "3.2.0", + "url": "^0.11.0", + "webpack-dev-middleware": "3.4.0", "webpack-log": "^2.0.0", "yargs": "12.0.2" }, @@ -9017,6 +9146,19 @@ } } }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", @@ -9035,6 +9177,21 @@ "xregexp": "4.0.0" } }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", @@ -9044,6 +9201,15 @@ "locate-path": "^3.0.0" } }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, "invert-kv": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", @@ -9076,9 +9242,9 @@ } }, "mime": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", - "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", + "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", "dev": true }, "ms": { @@ -9088,20 +9254,20 @@ "dev": true }, "os-locale": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz", - "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", "dev": true, "requires": { - "execa": "^0.10.0", + "execa": "^1.0.0", "lcid": "^2.0.0", "mem": "^4.0.0" } }, "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.1.0.tgz", + "integrity": "sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -9122,6 +9288,22 @@ "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", "dev": true }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -9144,17 +9326,14 @@ } }, "webpack-dev-middleware": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.2.0.tgz", - "integrity": "sha512-YJLMF/96TpKXaEQwaLEo+Z4NDK8aV133ROF6xp9pe3gQoS7sxfpXh4Rv9eC+8vCvWfmDjRQaMSlRPbO+9G6jgA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz", + "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==", "dev": true, "requires": { - "loud-rejection": "^1.6.0", "memory-fs": "~0.4.1", "mime": "^2.3.1", - "path-is-absolute": "^1.0.0", "range-parser": "^1.0.3", - "url-join": "^4.0.0", "webpack-log": "^2.0.0" } }, @@ -9206,18 +9385,18 @@ } }, "webpack-merge": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.4.tgz", - "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz", + "integrity": "sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw==", "dev": true, "requires": { "lodash": "^4.17.5" } }, "webpack-sources": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz", - "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", "dev": true, "requires": { "source-list-map": "^2.0.0", diff --git a/package.json b/package.json index c033d534..6df56962 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "fuse.js": "^3.3.0", "hammerjs": "^2.0.8", "material-design-icons": "^3.0.1", - "moment": "^2.22.2", + "moment": "^2.24.0", "ngx-flyout": "^1.0.0", "ngx-img-fallback": "^1.3.3", "ngx-markdown": "^7.0.0", @@ -46,7 +46,7 @@ "zone.js": "^0.8.26" }, "devDependencies": { - "@angular-devkit/build-angular": "~0.10.2", + "@angular-devkit/build-angular": "^0.13.0", "@angular/cli": "^7.0.2", "@angular/compiler-cli": "^7.0.0", "@angular/language-service": "^7.0.0", diff --git a/src/api.ts b/src/api.ts index a2b168d3..7cc04a3d 100644 --- a/src/api.ts +++ b/src/api.ts @@ -39,5 +39,14 @@ export const API = { NotificationsAllRead: 'api/notifications/read', WebPushSubscribe: 'api/user-me/subscribe-wp', - UserTags: 'api/user-tags' + UserTags: 'api/user-tags', + + Complaints: 'api/venter/complaints', + MyComplaints: 'api/venter/complaints?filter=me', + Complaint: 'api/venter/complaints/{complaintId}', + UpVote: 'api/venter/complaints/{complaintId}/upvote{?action}', + CommentPost: 'api/venter/complaints/{complaintId}/comments', + CommentEdit: 'api/venter/comments/{commentId}', + TagCategories: 'api/venter/tags', + SubscribeToComplaint: 'api/venter/complaints/{complaintId}/subscribe{?action}' }; diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 31ecaa3f..876ec6ae 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -58,6 +58,22 @@ import { RedirComponent } from './redir/redir.component'; import { UpdateRoleComponent } from './update-role/update-role.component'; import { CardComponent } from './card/card.component'; +import { ComplaintsHomeComponent } from './venter/complaints-home/complaints-home.component'; +import { MatTabsModule } from '@angular/material/tabs'; +import { MatCardModule } from '@angular/material/card'; +import { MatGridListModule } from '@angular/material/grid-list'; +import { MatListModule } from '@angular/material/list'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { FileComplaintComponent } from './venter/file-complaint/file-complaint.component'; +import { MatInputModule } from '@angular/material'; +import { AgmCoreModule } from '@agm/core'; +import { MatAutocompleteModule } from '@angular/material/autocomplete'; +import { MatChipsModule } from '@angular/material/chips'; +import { MatButtonModule } from '@angular/material/button'; +import { MatDialogModule } from '@angular/material'; +import { DetailedComplaintComponent } from './venter/detailed-complaint/detailed-complaint.component'; +import { MatDividerModule } from '@angular/material/divider'; + @NgModule({ declarations: [ AppComponent, @@ -91,7 +107,10 @@ import { CardComponent } from './card/card.component'; NotifyCardComponent, RedirComponent, UpdateRoleComponent, - CardComponent + CardComponent, + ComplaintsHomeComponent, + FileComplaintComponent, + DetailedComplaintComponent, ], imports: [ BrowserModule, @@ -100,6 +119,21 @@ import { CardComponent } from './card/card.component'; HttpClientModule, FormsModule, BrowserAnimationsModule, + AgmCoreModule.forRoot({ + apiKey: 'AIzaSyCKNBwrs1UdT2s1jwqOypSzas9Z4s6h4B0' + }), + + MatTabsModule, + MatCardModule, + MatGridListModule, + MatListModule, + MatFormFieldModule, + MatInputModule, + MatAutocompleteModule, + MatChipsModule, + MatButtonModule, + MatDialogModule, + MatDividerModule, ImgFallbackModule, MarkdownModule.forRoot(), @@ -120,6 +154,10 @@ import { CardComponent } from './card/card.component'; { path: 'settings', component: SettingsComponent, data: { state: 'base' } }, { path: 'about', component: AboutComponent, data: { state: 'overlay' } }, + { path: 'venter/complaints-home', component: ComplaintsHomeComponent, data: { state: 'base' } }, + { path: 'venter/file-complaint', component: FileComplaintComponent, data: { state: 'base' } }, + { path: 'venter/detailed-complaint/:id', component: DetailedComplaintComponent, data: { state: 'base' } }, + { path: 'add-event', component: AddEventComponent, data: { state: 'overlay' }, canActivate: [LoginActivate] }, { path: 'edit-event/:id', component: AddEventComponent, data: { state: 'overlay' }, canActivate: [LoginActivate] }, { path: 'edit-body/:id', component: UpdateBodyComponent, data: { state: 'overlay' }, canActivate: [LoginActivate] }, diff --git a/src/app/data.service.ts b/src/app/data.service.ts index 9877365f..a16cb69a 100644 --- a/src/app/data.service.ts +++ b/src/app/data.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@angular/core'; import { Observable , Subject, noop } from 'rxjs'; import { HttpClient, HttpHeaders, HttpRequest, HttpEventType } from '@angular/common/http'; -import { IEnumContainer, IUserProfile, ILocation, IEvent, IBody, INewsEntry, INotification } from './interfaces'; +import { IEnumContainer, IUserProfile, ILocation, IEvent, IBody, INewsEntry, INotification, IComplaint } from './interfaces'; import { Router } from '@angular/router'; import { environment } from '../environments/environment'; import * as uriTemplates from 'uri-templates'; @@ -421,4 +421,8 @@ export class DataService { getBodyUrl(body: IBody): string { return window.location.origin + '/org/' + body.str_id; } + + GetComplaint(uuid: string): Observable { + return this.FireGET(API.Complaint, {uuid: uuid}); + } } diff --git a/src/app/interfaces.ts b/src/app/interfaces.ts index 99528cbe..e279e52c 100644 --- a/src/app/interfaces.ts +++ b/src/app/interfaces.ts @@ -74,7 +74,7 @@ export interface IBody { children: IBody[]; parents: IBody[]; events: IEvent[]; - followers_count: number; + followers_count: number; roles: IBodyRole[]; blog_url: string; user_follows: boolean; @@ -158,3 +158,50 @@ export interface IUserTagCategory { name: string; tags: IUserTag[]; } + +export interface IComplaintTagUri { + id: string + tag_uri: string +} + +export interface IComplaintComment { + id: string + time: string + comment: string + commented_by: IUserProfile +} + +export interface IComplaint { + id: string; + created_by: IUserProfile + description: string + suggestions: string + location_details: string + report_date: string + status: string + latitude: number + longitude: number + location_description: string + tags: IComplaintTagUri + users_up_voted: IUserProfile + images: string[] + comments: IComplaintComment + vote_count: number + is_subscribed: number + upvoted: boolean +} + +export interface IComplaintPost { + description: string + suggestions: string + location_details: string + latitude: number + longitude: number + location_description: string + tags: string[] + images: string[] +} + +export interface IPostComment { + text: string; +} diff --git a/src/app/navmenu/navmenu.component.html b/src/app/navmenu/navmenu.component.html index e0b5d2f4..bc167784 100644 --- a/src/app/navmenu/navmenu.component.html +++ b/src/app/navmenu/navmenu.component.html @@ -58,6 +58,12 @@ map   Map + + announcement   Complaints/ Suggestions + + diff --git a/src/app/venter/complaints-home/complaints-home.component.css b/src/app/venter/complaints-home/complaints-home.component.css new file mode 100644 index 00000000..1dfba829 --- /dev/null +++ b/src/app/venter/complaints-home/complaints-home.component.css @@ -0,0 +1,103 @@ +.container { + margin-right: 18%; + margin-left: 18%; +} + +.toolbar { + padding-top: 100px; + padding-bottom: 100px; + background-color: blue; + align-content: center; + text-align: center; +} + +.complaint-text { + color: white; + font-weight: bolder +} + +.complaint-button { + color: black; + background-color: yellow; + padding-left: 50px; + padding-right: 50px; + padding-top: 10px; + padding-bottom: 10px; + align-content: center; + font-weight: bold; + text-decoration: none; +} + +.complaint-tabs { + font-weight: bold; + padding-bottom: 10px; + padding-top: 10px; + margin: auto; + text-decoration: none; +} + +.complaint-card { + padding: 2.5%; + text-decoration: none; +} + +.complaint-divider { + padding: 1%; + color: royalblue; +} + + .complaint-card-content { + font-size: medium; + padding-top: 3%; + } + + .complaint-description { + font-family: Arial, Helvetica, sans-serif; + white-space: pre-wrap; + } + + .card { + margin: auto; + margin-top: 5%; + margin-bottom: 5%; + width: 80%; + } + + .footer{ + position: relative; + border-style: solid; + text-align: center; + margin: auto; + border-width: medium; + border-color: royalblue; + border-bottom-left-radius: 5% 100%; + border-bottom-right-radius: 5% 100%; + border-top-left-radius: 5% 100%; + border-top-right-radius: 5% 100%; +} + + .status { + float: right; + background-color: red; + border-width: medium; + color: white; + padding-left: 2.5%; + padding-right: 2.5%; + border-bottom-left-radius: 25% 100%; + border-bottom-right-radius: 25% 100%; + border-top-left-radius: 25% 100%; + border-top-right-radius: 25% 100%; + font-weight: bold; + text-transform: uppercase; + } + + .status-color { + background-color: lawngreen; + } + + @media (max-width: 970px) { + .container { + margin: 0%; + } +} + \ No newline at end of file diff --git a/src/app/venter/complaints-home/complaints-home.component.html b/src/app/venter/complaints-home/complaints-home.component.html new file mode 100644 index 00000000..2fc05705 --- /dev/null +++ b/src/app/venter/complaints-home/complaints-home.component.html @@ -0,0 +1,152 @@ +
+ +
+ + +
+ +
No complaints to show
+
+
+
+ + +
+ {{ complaint.status }} +
+ + + {{ complaint.created_by.name }} + +
{{ reportedTime[i] }}
+
{{ complaint.location_description }}
+
+
+
+ +
+ +
+
+
Complaint:
+
{{ complaint.description }}
+
+
+
Suggestions:
+
{{ complaint.suggestions }}
+
+
+
Location Details:
+
{{ complaint.location_details }}
+
+
+
+ + + +
+
+
+
+
+ +
+ +
No complaints to show
+
+
+
+ +
+ {{ complaint.status }} +
+ + + {{ complaint.created_by.name }} + {{ complaint.location_description }} + +
+ +
+ +
+
+
Complaint:
+
{{ complaint.description }}
+
+
+
Suggestions:
+
{{ complaint.suggestions }}
+
+
+
Location Details:
+
{{ complaint.location_details }}
+
+
+
+ + + +
+
+
+
+
+
+
\ No newline at end of file diff --git a/src/app/venter/complaints-home/complaints-home.component.ts b/src/app/venter/complaints-home/complaints-home.component.ts new file mode 100644 index 00000000..1b6618e9 --- /dev/null +++ b/src/app/venter/complaints-home/complaints-home.component.ts @@ -0,0 +1,143 @@ +import { Component, OnInit } from '@angular/core'; +import { IComplaint } from '../../interfaces'; +import { DataService } from '../../data.service'; +import { API } from '../../../api'; +import { ViewEncapsulation } from '@angular/core'; +import { MatSnackBar } from '@angular/material/snack-bar'; +import * as moment from 'moment'; + +@Component({ + selector: 'app-complaints-home', + templateUrl: './complaints-home.component.html', + styleUrls: ['./complaints-home.component.css'], + encapsulation: ViewEncapsulation.None, +}) +export class ComplaintsHomeComponent implements OnInit { + + public complaints = {} as IComplaint[]; + public myComplaints = {} as IComplaint[]; + public userid: string; + public complaintstatusColor: string[] = []; + public myComplaintstatusColor: string[] = []; + public reportedTime: string[] = []; + public myComplaintsFlag: boolean; + public complaintsFlag: boolean; + + constructor( + public dataService: DataService, + public snackBar: MatSnackBar, + ) { } + + ngOnInit() { + this.complaints = []; + this.myComplaints = []; + /* Get profile if the user is logged in */ + if (this.dataService.isLoggedIn()) { + this.getUser(); + } + /* Set title */ + this.dataService.setTitle('Complaints & Suggestions'); + this.refresh(); + + /* Get all the complaints from server*/ + this.dataService.FireGET(API.Complaints).subscribe(result => { + this.complaints = result; + if (this.complaints.length == 0) + this.complaintsFlag = true; + let i=0; + result.forEach(element => { + this.reportedTime[i] = moment(element.report_date).format("MMMM Do YYYY"); + i=i+1; + if (element.status.toLowerCase() === "reported") + this.complaintstatusColor.push('red'); + else if (element.status.toLowerCase() === "resolved") + this.complaintstatusColor.push('green'); + else if (element.status.toLowerCase() === "in progress") + this.complaintstatusColor.push('yellow'); + }); + }); + /* Get the current user complaints from server*/ + this.dataService.FireGET(API.MyComplaints).subscribe(result => { + this.myComplaints = result; + if (this.myComplaints.length == 0) + this.myComplaintsFlag = true; + result.forEach(element => { + if (element.status.toLowerCase() === "reported") + this.myComplaintstatusColor.push('red'); + else if (element.status.toLowerCase() === "resolved") + this.myComplaintstatusColor.push('green'); + else if (element.status.toLowerCase() === "in progress") + this.myComplaintstatusColor.push('yellow'); + }); + }); + } + + getUser() { + this.dataService.GetFillCurrentUser().subscribe(user => { + this.userid = user.id; + }); + } + + refresh() { + /* Get all the complaints from server*/ + this.dataService.FireGET(API.Complaints).subscribe(result => { + this.complaints = result; + }); + /* Get the current user complaints from server*/ + this.dataService.FireGET(API.MyComplaints).subscribe(result => { + this.myComplaints = result; + }); + } + + onClickEvent(event) { + event.stopPropagation(); + } + + subscribe(complaint_subscribed: number, complaintId: string) { + this.dataService.FireGET(API.SubscribeToComplaint, { complaintId: complaintId, action: complaint_subscribed === 0 ? 1 : 0 }).subscribe(result => { + this.refresh(); + console.log(result); + if (complaint_subscribed == 1) { + this.snackBar.open('You are unsubscribed from this complaint', 'Dismiss', { + duration: 2000, + }); + } + else { + this.snackBar.open('You are subscribed to this complaint', 'Dismiss', { + duration: 2000, + }); + } + + }, (error) => { + this.snackBar.open(`Subscription Failed - ${error.message}`, 'Dismiss', { + duration: 2000, + }); + }); + } + + upVote(has_upvoted: boolean, complaintId: string) { + let complaint_upvoted: number; + if (has_upvoted === true) + complaint_upvoted = 1; + else + complaint_upvoted = 0; + this.dataService.FireGET(API.UpVote, { complaintId: complaintId, action: complaint_upvoted === 0 ? 1 : 0 }).subscribe(result => { + this.refresh(); + console.log(result); + if (complaint_upvoted == 1) { + this.snackBar.open('You have upvoted this complaint', 'Dismiss', { + duration: 2000, + }); + } + else { + this.snackBar.open('Your upvote has been removed', 'Dismiss', { + duration: 2000, + }); + } + }, (error) => { + this.snackBar.open(`Upvote Failed - ${error.message}`, 'Dismiss', { + duration: 2000, + }); + }); + } +} diff --git a/src/app/venter/detailed-complaint/detailed-complaint.component.css b/src/app/venter/detailed-complaint/detailed-complaint.component.css new file mode 100644 index 00000000..b101595e --- /dev/null +++ b/src/app/venter/detailed-complaint/detailed-complaint.component.css @@ -0,0 +1,164 @@ +.container { + margin-right: 18%; + margin-left: 18%; + padding-right: 5%; + padding-left: 5%; +} + +/* Slideshow container */ +.slideshow-container { + max-width: 500px; + max-height: 500px; + position: relative; + margin: auto; + } + + .slideshow-container img{ + display: none; + } + + .slideshow-container img.image-active { + display: block; + width: 100%; + } + +/* The dots/bullets/indicators */ +.dot { + cursor: pointer; + height: 15px; + width: 15px; + margin: 0 2px; + background-color: #bbb; + border-radius: 50%; + display: inline-block; + transition: background-color 0.6s ease; + } + + .active, .dot:hover { + background-color: #717171; + } + + /* Fading animation */ + .fade { + -webkit-animation-name: fade; + -webkit-animation-duration: 1.5s; + animation-name: fade; + animation-duration: 1.5s; + } + +.complaint-card { + padding: 2.5%; + text-decoration: none; +} + +.card { + margin: auto; + margin-top: 1%; + margin-bottom: 1%; + width: 80%; +} + +.complaint-creator { + color: black; + font-weight: bold; + font-size: medium; +} + +.complaint-creator-image { + border-radius: 50%; + width: 50px; + height: 50px; + float: left; + padding-left: 2%; + padding-right: 2%; +} + +.complaint-time-location { + color: darkgrey; + font-size: small; + padding-left: 2%; +} + +.complaint-status { + float: right; + background-color: red; + border-width: medium; + color: white; + padding-left: 2.5%; + padding-right: 2.5%; + border-bottom-left-radius: 25% 100%; + border-bottom-right-radius: 25% 100%; + border-top-left-radius: 25% 100%; + border-top-right-radius: 25% 100%; + font-weight: bold; + text-transform: uppercase; +} + +.complaint-divider { + padding: 2.5%; + color: royalblue; +} + +.subscribe-button { + float: right; +} + +.complaint-card-content { + font-size: medium; + padding-bottom: 3%; +} + +.complaint-description { + font-family: Arial, Helvetica, sans-serif; + white-space: pre-wrap; + } + +.upVote-button { + color: black; + background-color: yellow; + padding-left: 50px; + padding-right: 50px; + padding-top: 10px; + padding-bottom: 10px; + align-content: center; + font-weight: bold; + text-decoration: none; +} + +@media (max-width: 970px) { + .container { + margin: 0%; + padding: 2%; + } +} + +@media (max-width: 520px) { + .container { + margin: 0%; + padding: 0%; + } + + img { + max-width: 100%; + max-height: 20%; + } + + .slideshow-container { + max-width: 100%; + max-height: 20%; + position: relative; + margin: auto; + } +} + +@media (max-width: 470px) { + .subscribe-button { + float: right; + padding: 0%; + margin: 0%; + } + + .complaint-content { + padding-top: 5%; + } +} \ No newline at end of file diff --git a/src/app/venter/detailed-complaint/detailed-complaint.component.html b/src/app/venter/detailed-complaint/detailed-complaint.component.html new file mode 100644 index 00000000..18dd5dd8 --- /dev/null +++ b/src/app/venter/detailed-complaint/detailed-complaint.component.html @@ -0,0 +1,107 @@ +
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ +
+ {{ detailedComplaint.created_by.name }} +
+
+
{{ complaintReportedTime }}
+
{{ detailedComplaint.location_description }}
+
+
+ {{ detailedComplaint.status }} +
+
+
+ +
+
+
+ +
+
Complaint: +
{{ detailedComplaint.description }}
+
+
+
+
Suggestions: +
{{ detailedComplaint.suggestions }}
+
+
+
+
+
+
Location Details: +
{{ detailedComplaint.location_details }}
+
+
+
+ Tags +
+ + {{ tag }} + +
+
+
+ Comments({{ detailedComplaint.comments.length }}) +
+ + + + {{ complaintComment.commented_by.name }} + {{ complaintComment.time }} + + + {{ complaintComment.text }} + + +
+ + + + +
+ UpVotes({{ detailedComplaint.users_up_voted.length }}) +
+ + + + {{ complaintupVote.name }} + + +
+
+ + + UPVOTE + +
\ No newline at end of file diff --git a/src/app/venter/detailed-complaint/detailed-complaint.component.ts b/src/app/venter/detailed-complaint/detailed-complaint.component.ts new file mode 100644 index 00000000..4413b6a4 --- /dev/null +++ b/src/app/venter/detailed-complaint/detailed-complaint.component.ts @@ -0,0 +1,134 @@ +import { Component, OnInit } from '@angular/core'; +import { Router, ActivatedRoute, Params } from '@angular/router'; +import { IComplaint, IComplaintComment, IPostComment } from '../../interfaces'; +import { DataService } from '../../data.service'; +import { MatSnackBar } from '@angular/material/snack-bar'; +import { API } from '../../../api'; +import * as moment from 'moment'; + + +@Component({ + selector: 'app-detailed-complaint', + templateUrl: './detailed-complaint.component.html', + styleUrls: ['./detailed-complaint.component.css'] +}) +export class DetailedComplaintComponent implements OnInit { + + detailedComplaint: IComplaint; + public complaintId: string; + public comment: IPostComment; + public userid: string; + public SubscribeToComplaint: string; + public statusColor: string; + public complaintReportedTime: string; + public selectedindex: number = 0; + + constructor(public dataService: DataService, + public router: Router, + public activatedRoute: ActivatedRoute, + public snackBar: MatSnackBar, + ) {} + + ngOnInit() { + this.comment = {} as IPostComment; + /* Get profile if the user is logged in */ + if (this.dataService.isLoggedIn()) { + this.getUser(); + } + this.dataService.setTitle('Complaints/Suggestions'); + this.activatedRoute.params.subscribe((params: Params) => { + this.complaintId = params['id']; + this.refresh(); + }); + } + + getUser() { + this.dataService.GetFillCurrentUser().subscribe(user => { + this.userid = user.id; + }); + } + + /** Loads the data */ + refresh() { + if (this.complaintId) { + this.dataService.FireGET(API.Complaint, { complaintId: this.complaintId }).subscribe(result => { + this.detailedComplaint = result; + console.log(this.detailedComplaint); + this.complaintReportedTime = moment(this.detailedComplaint.report_date).format("MMMM Do YYYY"); + if (this.detailedComplaint.status === "Reported") + this.statusColor = 'red'; + else if (this.detailedComplaint.status === "Resolved") + this.statusColor = 'green'; + else if (this.detailedComplaint.status === "In progress") + this.statusColor = 'yellow'; + }, (error) => { + if (error.status === 404) { + alert('Complaint not found'); + } + }); + } + } + + selectImage(index : number) { + this.selectedindex = index; + } + + postComment() { + console.log(this.comment.text); + console.log(this.comment); + this.dataService.FirePOST(API.CommentPost, this.comment, { complaintId: this.detailedComplaint.id }).subscribe(result => { + this.refresh(); + console.log(result); + this.comment.text = ''; + }); + } + + upVoteComplaint(has_upvoted: boolean) { + let complaint_upvoted: number; + if (has_upvoted === true) + complaint_upvoted = 1; + else + complaint_upvoted = 0; + this.dataService.FireGET(API.UpVote, { complaintId: this.detailedComplaint.id, action: complaint_upvoted === 0 ? 1 : 0 }).subscribe(result => { + this.refresh(); + console.log(result); + if (complaint_upvoted == 1) { + this.snackBar.open('You have upvoted this complaint', 'Dismiss', { + duration: 2000, + }); + } + else { + this.snackBar.open('Your upvote has been removed', 'Dismiss', { + duration: 2000, + }); + } + }, (error) => { + this.snackBar.open(`Upvote Removal Failed - ${error.message}`, 'Dismiss', { + duration: 2000, + }); + }); + } + + subscribe(complaint_subscribed: number) { + this.dataService.FireGET(API.SubscribeToComplaint, { complaintId: this.detailedComplaint.id, action: complaint_subscribed === 0 ? 1 : 0 }).subscribe(result => { + this.refresh(); + console.log(result); + if (complaint_subscribed == 1) { + this.snackBar.open('You are unsubscribed from this complaint', 'Dismiss', { + duration: 2000, + }); + } + else { + this.snackBar.open('You are subscribed to this complaint', 'Dismiss', { + duration: 2000, + }); + } + }, (error) => { + this.snackBar.open(`Subscription Failed - ${error.message}`, 'Dismiss', { + duration: 2000, + }); + }); + } +} + + diff --git a/src/app/venter/file-complaint/file-complaint.component.css b/src/app/venter/file-complaint/file-complaint.component.css new file mode 100644 index 00000000..7e16f5a4 --- /dev/null +++ b/src/app/venter/file-complaint/file-complaint.component.css @@ -0,0 +1,150 @@ +.container { + margin-right: 18%; + margin-left: 18%; + padding-right: 5%; + padding-left: 5%; +} + +.input-fields { + padding-top: 2%; + display: flex; + flex-direction: column; + width: 100%; +} + +mat-form-field { + padding-right: 5%; + padding-top: 2.5%; +} + +.added-tags { + padding-right: 5%; + padding-bottom: 1%; + background: lightgrey; +} + +.complaint-button { + color: black; + background-color: yellow; + padding-left: 50px; + padding-right: 50px; + padding-top: 10px; + padding-bottom: 10px; + align-content: center; + font-weight: bold; + text-decoration: none; + margin: auto; +} + +* {box-sizing: border-box} +body {font-family: Verdana, sans-serif; margin:0} +.mySlides {display: none; padding-right: 5%;} +img {vertical-align: middle; height: 500px;} + +/* Slideshow container */ +.slideshow-container { + max-width: 500px; + max-height: 500px; + position: relative; + margin: auto; +} + +.slideshow-container img{ + display: none; + } + + .slideshow-container img.image-active { + display: block; + width: 100%; + } + +/* Next & previous buttons */ +.prev, .next { + cursor: pointer; + position: absolute; + top: 50%; + width: auto; + padding: 16px; + margin-top: -5%; + color: white; + font-weight: bold; + font-size: 18px; + border-radius: 0 3px 3px 0; + user-select: none; + background-color: rgba(0,0,0,0.8); +} + +/* The dots/bullets/indicators */ +.dot { + cursor: pointer; + height: 15px; + width: 15px; + margin: 0 2px; + background-color: #bbb; + border-radius: 50%; + display: inline-block; + transition: background-color 0.6s ease; +} + +.active, .dot:hover { + background-color: #717171; +} + +/* Fading animation */ +.fade { + -webkit-animation-name: fade; + -webkit-animation-duration: 1.5s; + animation-name: fade; + animation-duration: 1.5s; +} + +@-webkit-keyframes fade { + from {opacity: .4} + to {opacity: 1} +} + +@keyframes fade { + from {opacity: .4} + to {opacity: 1} +} + +@media (max-width: 970px) { + .container { + margin: 0%; + padding: 2%; + } +} + +@media (max-width: 520px) { + .container { + margin: 0%; + padding: 0%; + } + + img { + max-width: 100%; + max-height: 25%; + } + + .slideshow-container { + max-width: 100%; + max-height: 20%; + position: relative; + margin: auto; + } + + * {box-sizing: border-box} + body {font-family: Verdana, sans-serif; margin:0} + .mySlides {display: none;} + img {vertical-align: middle; height: 20%;} +} + +@media (max-width: 450px) { + .complaint-description { + width: 80%; + } +} + + + + diff --git a/src/app/venter/file-complaint/file-complaint.component.html b/src/app/venter/file-complaint/file-complaint.component.html new file mode 100644 index 00000000..81d7b9df --- /dev/null +++ b/src/app/venter/file-complaint/file-complaint.component.html @@ -0,0 +1,64 @@ +
+
+ +
+ +
+
+ + +
+ +
+ +
+
+ +
+ + + + + + + + + + + + + +
+
+
+ "Added Tags" +
+ + + {{ selectedTag }} + + + +
+
+ + + + + {{ option }} + + + + +
+
+ +
+
\ No newline at end of file diff --git a/src/app/venter/file-complaint/file-complaint.component.ts b/src/app/venter/file-complaint/file-complaint.component.ts new file mode 100644 index 00000000..721b0259 --- /dev/null +++ b/src/app/venter/file-complaint/file-complaint.component.ts @@ -0,0 +1,133 @@ +import { Component, OnInit } from '@angular/core'; +import { IComplaint, IComplaintTagUri, IComplaintPost } from '../../interfaces'; +import { MatSnackBar } from '@angular/material/snack-bar'; +import { DataService } from '../../data.service'; +import { API } from '../../../api'; +import { Observable } from 'rxjs'; +import { FormControl } from '@angular/forms'; +import { startWith, map } from 'rxjs/operators'; + +const PLACEHOLDER = 'assets/placeholder_image.svg'; +const currentLat = 19.1310; +const currentLong = 72.9077; + +@Component({ + selector: 'app-file-complaint', + templateUrl: './file-complaint.component.html', + styleUrls: ['./file-complaint.component.css'] +}) +export class FileComplaintComponent implements OnInit { + + public networkBusy = false; + + tagCategories: IComplaintTagUri[]; + option: string[]; + + myControl = new FormControl(); + filteredOptions: Observable; + + public complaint: IComplaintPost; + public image: string; + public tag: string; + public selectedTags: string[] = []; + public selectedindex: number = 0; + + constructor( + public dataService: DataService, + public snackBar: MatSnackBar, + ) { } + + ngOnInit() { + this.tagCategories = []; + this.complaint = {} as IComplaintPost; + this.option = []; + this.complaint.latitude = currentLat; + this.complaint.longitude = currentLong; + this.complaint.images =[]; + this.complaint.location_description = "IIT Area"; + + this.dataService.setTitle('Complaints & Suggestions'); + /* Get all the tags from server*/ + this.dataService.FireGET(API.TagCategories).subscribe(result => { + this.tagCategories = result; + this.tagCategories.forEach(element => { + this.option.push(element.tag_uri); + }); + }) + this.filteredOptions = this.myControl.valueChanges + .pipe( + startWith(''), + map(value => this._filter(value)) + ); + } + + private _filter(value: string): string[] { + const filterValue = value.toLowerCase(); + + return this.option.filter(option => option.toLowerCase().includes(filterValue)); + } + + MarkNetworkBusy(): Boolean { + if (this.networkBusy) { return false; } + this.networkBusy = true; + return true; + } + + selectImage(index : number) { + this.selectedindex = index; + } + + uploadImage(files: FileList) { + if (!this.MarkNetworkBusy()) { return; } + this.dataService.UploadImage(files[0]).subscribe(result => { + this.image = result.picture; + this.complaint.images.push(this.image); + this.networkBusy = false; + this.snackBar.open('Image Uploaded', 'Dismiss', { + duration: 2000, + }); + }, (error) => { + this.networkBusy = false; + this.snackBar.open(`Upload Failed - ${error.status_code}`, 'Dismiss', { + duration: 2000, + }); + }); + } + + /** + * Gets the image URL or placeholder + */ + getImageUrl() { + if (this.complaint && this.image) { + return this.image; + } else { + return PLACEHOLDER; + } + } + + addTag() { + this.selectedTags.push(this.tag) + this.tag = ""; + } + + clearTag(deleteTag: string) { + for (let i=0; i(API.Complaints, this.complaint).subscribe(result => { + console.log(result); + }) + } + } +} diff --git a/src/assets/placeholder_image.svg b/src/assets/placeholder_image.svg new file mode 100644 index 00000000..5d11b2a1 --- /dev/null +++ b/src/assets/placeholder_image.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 9ce0d433b46d27e5111495df2a01f758564d2857 Mon Sep 17 00:00:00 2001 From: Preetam Ozarde Date: Wed, 6 Feb 2019 14:11:39 +0530 Subject: [PATCH 2/4] Minor Codacy Changes --- src/app/interfaces.ts | 62 +++++++------- .../complaints-home.component.css | 7 +- .../complaints-home.component.ts | 72 ++++++++-------- .../detailed-complaint.component.css | 5 +- .../detailed-complaint.component.ts | 84 ++++++++++--------- .../file-complaint.component.css | 5 +- .../file-complaint.component.ts | 20 ++--- 7 files changed, 124 insertions(+), 131 deletions(-) diff --git a/src/app/interfaces.ts b/src/app/interfaces.ts index 922be15d..1c8fd48b 100644 --- a/src/app/interfaces.ts +++ b/src/app/interfaces.ts @@ -76,7 +76,7 @@ export interface IBody { children: IBody[]; parents: IBody[]; events: IEvent[]; - followers_count: number; + followers_count: number; roles: IBodyRole[]; blog_url: string; user_follows: boolean; @@ -162,46 +162,46 @@ export interface IUserTagCategory { } export interface IComplaintTagUri { - id: string - tag_uri: string + id: string; + tag_uri: string; } export interface IComplaintComment { - id: string - time: string - comment: string - commented_by: IUserProfile + id: string; + time: string; + comment: string; + commented_by: IUserProfile; } export interface IComplaint { id: string; - created_by: IUserProfile - description: string - suggestions: string - location_details: string - report_date: string - status: string - latitude: number - longitude: number - location_description: string - tags: IComplaintTagUri - users_up_voted: IUserProfile - images: string[] - comments: IComplaintComment - vote_count: number - is_subscribed: number - upvoted: boolean + created_by: IUserProfile; + description: string; + suggestions: string; + location_details: string; + report_date: string; + status: string; + latitude: number; + longitude: number; + location_description: string; + tags: IComplaintTagUri; + users_up_voted: IUserProfile; + images: string[]; + comments: IComplaintComment; + vote_count: number; + is_subscribed: number; + upvoted: boolean; } export interface IComplaintPost { - description: string - suggestions: string - location_details: string - latitude: number - longitude: number - location_description: string - tags: string[] - images: string[] + description: string; + suggestions: string; + location_details: string; + latitude: number; + longitude: number; + location_description: string; + tags: string[]; + images: string[]; } export interface IPostComment { diff --git a/src/app/venter/complaints-home/complaints-home.component.css b/src/app/venter/complaints-home/complaints-home.component.css index 1dfba829..8b3648f5 100644 --- a/src/app/venter/complaints-home/complaints-home.component.css +++ b/src/app/venter/complaints-home/complaints-home.component.css @@ -13,16 +13,13 @@ .complaint-text { color: white; - font-weight: bolder + font-weight: bolder; } .complaint-button { color: black; background-color: yellow; - padding-left: 50px; - padding-right: 50px; - padding-top: 10px; - padding-bottom: 10px; + padding: 10px 50px; align-content: center; font-weight: bold; text-decoration: none; diff --git a/src/app/venter/complaints-home/complaints-home.component.ts b/src/app/venter/complaints-home/complaints-home.component.ts index 1b6618e9..fe6808ed 100644 --- a/src/app/venter/complaints-home/complaints-home.component.ts +++ b/src/app/venter/complaints-home/complaints-home.component.ts @@ -2,7 +2,6 @@ import { Component, OnInit } from '@angular/core'; import { IComplaint } from '../../interfaces'; import { DataService } from '../../data.service'; import { API } from '../../../api'; -import { ViewEncapsulation } from '@angular/core'; import { MatSnackBar } from '@angular/material/snack-bar'; import * as moment from 'moment'; @@ -10,7 +9,6 @@ import * as moment from 'moment'; selector: 'app-complaints-home', templateUrl: './complaints-home.component.html', styleUrls: ['./complaints-home.component.css'], - encapsulation: ViewEncapsulation.None, }) export class ComplaintsHomeComponent implements OnInit { @@ -42,32 +40,32 @@ export class ComplaintsHomeComponent implements OnInit { /* Get all the complaints from server*/ this.dataService.FireGET(API.Complaints).subscribe(result => { this.complaints = result; - if (this.complaints.length == 0) - this.complaintsFlag = true; + if (this.complaints.length === 0) + this.complaintsFlag = true; let i=0; result.forEach(element => { - this.reportedTime[i] = moment(element.report_date).format("MMMM Do YYYY"); - i=i+1; - if (element.status.toLowerCase() === "reported") - this.complaintstatusColor.push('red'); - else if (element.status.toLowerCase() === "resolved") - this.complaintstatusColor.push('green'); - else if (element.status.toLowerCase() === "in progress") - this.complaintstatusColor.push('yellow'); + this.reportedTime[i] = moment(element.report_date).format('MMMM Do YYYY'); + i=i+1; + if (element.status.toLowerCase() === 'reported') + this.complaintstatusColor.push('red'); + else if (element.status.toLowerCase() === 'resolved') + this.complaintstatusColor.push('green'); + else if (element.status.toLowerCase() === 'in progress') + this.complaintstatusColor.push('yellow'); }); }); /* Get the current user complaints from server*/ this.dataService.FireGET(API.MyComplaints).subscribe(result => { this.myComplaints = result; - if (this.myComplaints.length == 0) - this.myComplaintsFlag = true; + if (this.myComplaints.length === 0) + this.myComplaintsFlag = true; result.forEach(element => { - if (element.status.toLowerCase() === "reported") - this.myComplaintstatusColor.push('red'); - else if (element.status.toLowerCase() === "resolved") - this.myComplaintstatusColor.push('green'); - else if (element.status.toLowerCase() === "in progress") - this.myComplaintstatusColor.push('yellow'); + if (element.status.toLowerCase() === 'reported') + this.myComplaintstatusColor.push('red'); + else if (element.status.toLowerCase() === 'resolved') + this.myComplaintstatusColor.push('green'); + else if (element.status.toLowerCase() === 'in progress') + this.myComplaintstatusColor.push('yellow'); }); }); } @@ -94,20 +92,20 @@ export class ComplaintsHomeComponent implements OnInit { } subscribe(complaint_subscribed: number, complaintId: string) { - this.dataService.FireGET(API.SubscribeToComplaint, { complaintId: complaintId, action: complaint_subscribed === 0 ? 1 : 0 }).subscribe(result => { - this.refresh(); - console.log(result); - if (complaint_subscribed == 1) { - this.snackBar.open('You are unsubscribed from this complaint', 'Dismiss', { - duration: 2000, - }); - } - else { - this.snackBar.open('You are subscribed to this complaint', 'Dismiss', { - duration: 2000, - }); - } - + this.dataService.FireGET(API.SubscribeToComplaint, + { complaintId: complaintId, action: complaint_subscribed === 0 ? 1 : 0 }).subscribe(result => { + this.refresh(); + console.log(result); + if (complaint_subscribed === 1) { + this.snackBar.open('You are unsubscribed from this complaint', 'Dismiss', { + duration: 2000, + }); + } + else { + this.snackBar.open('You are subscribed to this complaint', 'Dismiss', { + duration: 2000, + }); + } }, (error) => { this.snackBar.open(`Subscription Failed - ${error.message}`, 'Dismiss', { duration: 2000, @@ -118,9 +116,9 @@ export class ComplaintsHomeComponent implements OnInit { upVote(has_upvoted: boolean, complaintId: string) { let complaint_upvoted: number; if (has_upvoted === true) - complaint_upvoted = 1; - else - complaint_upvoted = 0; + complaint_upvoted = 1; + else + complaint_upvoted = 0; this.dataService.FireGET(API.UpVote, { complaintId: complaintId, action: complaint_upvoted === 0 ? 1 : 0 }).subscribe(result => { this.refresh(); console.log(result); diff --git a/src/app/venter/detailed-complaint/detailed-complaint.component.css b/src/app/venter/detailed-complaint/detailed-complaint.component.css index b101595e..3831c0e0 100644 --- a/src/app/venter/detailed-complaint/detailed-complaint.component.css +++ b/src/app/venter/detailed-complaint/detailed-complaint.component.css @@ -116,10 +116,7 @@ .upVote-button { color: black; background-color: yellow; - padding-left: 50px; - padding-right: 50px; - padding-top: 10px; - padding-bottom: 10px; + padding: 10px 50px; align-content: center; font-weight: bold; text-decoration: none; diff --git a/src/app/venter/detailed-complaint/detailed-complaint.component.ts b/src/app/venter/detailed-complaint/detailed-complaint.component.ts index 4413b6a4..ea629d50 100644 --- a/src/app/venter/detailed-complaint/detailed-complaint.component.ts +++ b/src/app/venter/detailed-complaint/detailed-complaint.component.ts @@ -13,15 +13,14 @@ import * as moment from 'moment'; styleUrls: ['./detailed-complaint.component.css'] }) export class DetailedComplaintComponent implements OnInit { - - detailedComplaint: IComplaint; + detailedComplaint: IComplaint; public complaintId: string; - public comment: IPostComment; + public comment: IPostComment; public userid: string; public SubscribeToComplaint: string; public statusColor: string; public complaintReportedTime: string; - public selectedindex: number = 0; + public selectedindex = 0; constructor(public dataService: DataService, public router: Router, @@ -54,13 +53,13 @@ export class DetailedComplaintComponent implements OnInit { this.dataService.FireGET(API.Complaint, { complaintId: this.complaintId }).subscribe(result => { this.detailedComplaint = result; console.log(this.detailedComplaint); - this.complaintReportedTime = moment(this.detailedComplaint.report_date).format("MMMM Do YYYY"); - if (this.detailedComplaint.status === "Reported") - this.statusColor = 'red'; - else if (this.detailedComplaint.status === "Resolved") - this.statusColor = 'green'; - else if (this.detailedComplaint.status === "In progress") - this.statusColor = 'yellow'; + this.complaintReportedTime = moment(this.detailedComplaint.report_date).format('MMMM Do YYYY'); + if (this.detailedComplaint.status === 'Reported') + this.statusColor = 'red'; + else if (this.detailedComplaint.status === 'Resolved') + this.statusColor = 'green'; + else if (this.detailedComplaint.status === 'In progress') + this.statusColor = 'yellow'; }, (error) => { if (error.status === 404) { alert('Complaint not found'); @@ -69,39 +68,42 @@ export class DetailedComplaintComponent implements OnInit { } } - selectImage(index : number) { + selectImage(index: number) { this.selectedindex = index; } postComment() { console.log(this.comment.text); console.log(this.comment); - this.dataService.FirePOST(API.CommentPost, this.comment, { complaintId: this.detailedComplaint.id }).subscribe(result => { - this.refresh(); - console.log(result); - this.comment.text = ''; + this.dataService.FirePOST(API.CommentPost, + this.comment, { complaintId: this.detailedComplaint.id }).subscribe(result => { + this.refresh(); + console.log(result); + this.comment.text = ''; }); } upVoteComplaint(has_upvoted: boolean) { let complaint_upvoted: number; if (has_upvoted === true) - complaint_upvoted = 1; - else - complaint_upvoted = 0; - this.dataService.FireGET(API.UpVote, { complaintId: this.detailedComplaint.id, action: complaint_upvoted === 0 ? 1 : 0 }).subscribe(result => { - this.refresh(); - console.log(result); - if (complaint_upvoted == 1) { - this.snackBar.open('You have upvoted this complaint', 'Dismiss', { - duration: 2000, - }); - } - else { - this.snackBar.open('Your upvote has been removed', 'Dismiss', { - duration: 2000, - }); - } + complaint_upvoted = 1; + else + complaint_upvoted = 0; + this.dataService.FireGET(API.UpVote, + { complaintId: this.detailedComplaint.id, action: complaint_upvoted === 0 ? 1 : 0 }) + .subscribe(result => { + this.refresh(); + console.log(result); + if (complaint_upvoted === 1) { + this.snackBar.open('You have upvoted this complaint', 'Dismiss', { + duration: 2000, + }); + } + else { + this.snackBar.open('Your upvote has been removed', 'Dismiss', { + duration: 2000, + }); + } }, (error) => { this.snackBar.open(`Upvote Removal Failed - ${error.message}`, 'Dismiss', { duration: 2000, @@ -110,14 +112,16 @@ export class DetailedComplaintComponent implements OnInit { } subscribe(complaint_subscribed: number) { - this.dataService.FireGET(API.SubscribeToComplaint, { complaintId: this.detailedComplaint.id, action: complaint_subscribed === 0 ? 1 : 0 }).subscribe(result => { - this.refresh(); - console.log(result); - if (complaint_subscribed == 1) { - this.snackBar.open('You are unsubscribed from this complaint', 'Dismiss', { - duration: 2000, - }); - } + this.dataService.FireGET(API.SubscribeToComplaint, + { complaintId: this.detailedComplaint.id, action: complaint_subscribed === 0 ? 1 : 0 }) + .subscribe(result => { + this.refresh(); + console.log(result); + if (complaint_subscribed === 1) { + this.snackBar.open('You are unsubscribed from this complaint', 'Dismiss', { + duration: 2000, + }); + } else { this.snackBar.open('You are subscribed to this complaint', 'Dismiss', { duration: 2000, diff --git a/src/app/venter/file-complaint/file-complaint.component.css b/src/app/venter/file-complaint/file-complaint.component.css index 7e16f5a4..0c33c2d1 100644 --- a/src/app/venter/file-complaint/file-complaint.component.css +++ b/src/app/venter/file-complaint/file-complaint.component.css @@ -26,10 +26,7 @@ mat-form-field { .complaint-button { color: black; background-color: yellow; - padding-left: 50px; - padding-right: 50px; - padding-top: 10px; - padding-bottom: 10px; + padding: 10px 50px; align-content: center; font-weight: bold; text-decoration: none; diff --git a/src/app/venter/file-complaint/file-complaint.component.ts b/src/app/venter/file-complaint/file-complaint.component.ts index 721b0259..5f03b082 100644 --- a/src/app/venter/file-complaint/file-complaint.component.ts +++ b/src/app/venter/file-complaint/file-complaint.component.ts @@ -2,7 +2,7 @@ import { Component, OnInit } from '@angular/core'; import { IComplaint, IComplaintTagUri, IComplaintPost } from '../../interfaces'; import { MatSnackBar } from '@angular/material/snack-bar'; import { DataService } from '../../data.service'; -import { API } from '../../../api'; +import { API } from '../../../api'; import { Observable } from 'rxjs'; import { FormControl } from '@angular/forms'; import { startWith, map } from 'rxjs/operators'; @@ -30,7 +30,7 @@ export class FileComplaintComponent implements OnInit { public image: string; public tag: string; public selectedTags: string[] = []; - public selectedindex: number = 0; + public selectedindex = 0; constructor( public dataService: DataService, @@ -43,8 +43,8 @@ export class FileComplaintComponent implements OnInit { this.option = []; this.complaint.latitude = currentLat; this.complaint.longitude = currentLong; - this.complaint.images =[]; - this.complaint.location_description = "IIT Area"; + this.complaint.images = []; + this.complaint.location_description = 'IIT Area'; this.dataService.setTitle('Complaints & Suggestions'); /* Get all the tags from server*/ @@ -73,7 +73,7 @@ export class FileComplaintComponent implements OnInit { return true; } - selectImage(index : number) { + selectImage(index: number) { this.selectedindex = index; } @@ -104,14 +104,14 @@ export class FileComplaintComponent implements OnInit { return PLACEHOLDER; } } - + addTag() { - this.selectedTags.push(this.tag) - this.tag = ""; + this.selectedTags.push(this.tag); + this.tag = ''; } clearTag(deleteTag: string) { - for (let i=0; i(API.Complaints, this.complaint).subscribe(result => { console.log(result); - }) + }); } } } From 805109f80107e3fee4d591b5f86c891feb826105 Mon Sep 17 00:00:00 2001 From: Preetam Ozarde Date: Wed, 6 Feb 2019 14:27:42 +0530 Subject: [PATCH 3/4] Make minor codacy changes --- .../complaints-home.component.ts | 88 +++++++++++-------- .../detailed-complaint.component.ts | 41 +++++---- .../file-complaint.component.ts | 6 +- 3 files changed, 76 insertions(+), 59 deletions(-) diff --git a/src/app/venter/complaints-home/complaints-home.component.ts b/src/app/venter/complaints-home/complaints-home.component.ts index fe6808ed..21ba2ae7 100644 --- a/src/app/venter/complaints-home/complaints-home.component.ts +++ b/src/app/venter/complaints-home/complaints-home.component.ts @@ -40,32 +40,40 @@ export class ComplaintsHomeComponent implements OnInit { /* Get all the complaints from server*/ this.dataService.FireGET(API.Complaints).subscribe(result => { this.complaints = result; - if (this.complaints.length === 0) - this.complaintsFlag = true; - let i=0; + if (this.complaints.length === 0) { + this.complaintsFlag = true; + } + let i = 0; result.forEach(element => { this.reportedTime[i] = moment(element.report_date).format('MMMM Do YYYY'); - i=i+1; - if (element.status.toLowerCase() === 'reported') - this.complaintstatusColor.push('red'); - else if (element.status.toLowerCase() === 'resolved') - this.complaintstatusColor.push('green'); - else if (element.status.toLowerCase() === 'in progress') - this.complaintstatusColor.push('yellow'); + i = i+1; + if (element.status.toLowerCase() === 'reported') { + this.complaintstatusColor.push('red'); + } + else if (element.status.toLowerCase() === 'resolved') { + this.complaintstatusColor.push('green'); + } + else if (element.status.toLowerCase() === 'in progress') { + this.complaintstatusColor.push('yellow'); + } }); }); /* Get the current user complaints from server*/ this.dataService.FireGET(API.MyComplaints).subscribe(result => { this.myComplaints = result; - if (this.myComplaints.length === 0) - this.myComplaintsFlag = true; + if (this.myComplaints.length === 0) { + this.myComplaintsFlag = true; + } result.forEach(element => { - if (element.status.toLowerCase() === 'reported') - this.myComplaintstatusColor.push('red'); - else if (element.status.toLowerCase() === 'resolved') - this.myComplaintstatusColor.push('green'); - else if (element.status.toLowerCase() === 'in progress') - this.myComplaintstatusColor.push('yellow'); + if (element.status.toLowerCase() === 'reported') { + this.myComplaintstatusColor.push('red'); + } + else if (element.status.toLowerCase() === 'resolved') { + this.myComplaintstatusColor.push('green'); + } + else if (element.status.toLowerCase() === 'in progress') { + this.myComplaintstatusColor.push('yellow'); + } }); }); } @@ -90,9 +98,9 @@ export class ComplaintsHomeComponent implements OnInit { onClickEvent(event) { event.stopPropagation(); } - + subscribe(complaint_subscribed: number, complaintId: string) { - this.dataService.FireGET(API.SubscribeToComplaint, + this.dataService.FireGET(API.SubscribeToComplaint, { complaintId: complaintId, action: complaint_subscribed === 0 ? 1 : 0 }).subscribe(result => { this.refresh(); console.log(result); @@ -105,7 +113,7 @@ export class ComplaintsHomeComponent implements OnInit { this.snackBar.open('You are subscribed to this complaint', 'Dismiss', { duration: 2000, }); - } + } }, (error) => { this.snackBar.open(`Subscription Failed - ${error.message}`, 'Dismiss', { duration: 2000, @@ -115,23 +123,27 @@ export class ComplaintsHomeComponent implements OnInit { upVote(has_upvoted: boolean, complaintId: string) { let complaint_upvoted: number; - if (has_upvoted === true) - complaint_upvoted = 1; - else - complaint_upvoted = 0; - this.dataService.FireGET(API.UpVote, { complaintId: complaintId, action: complaint_upvoted === 0 ? 1 : 0 }).subscribe(result => { - this.refresh(); - console.log(result); - if (complaint_upvoted == 1) { - this.snackBar.open('You have upvoted this complaint', 'Dismiss', { - duration: 2000, - }); - } - else { - this.snackBar.open('Your upvote has been removed', 'Dismiss', { - duration: 2000, - }); - } + if (has_upvoted === true) { + complaint_upvoted = 1; + } + else { + complaint_upvoted = 0; + } + this.dataService.FireGET(API.UpVote, + { complaintId: complaintId, action: complaint_upvoted === 0 ? 1 : 0 }) + .subscribe(result => { + this.refresh(); + console.log(result); + if (complaint_upvoted === 1) { + this.snackBar.open('You have upvoted this complaint', 'Dismiss', { + duration: 2000, + }); + } + else { + this.snackBar.open('Your upvote has been removed', 'Dismiss', { + duration: 2000, + }); + } }, (error) => { this.snackBar.open(`Upvote Failed - ${error.message}`, 'Dismiss', { duration: 2000, diff --git a/src/app/venter/detailed-complaint/detailed-complaint.component.ts b/src/app/venter/detailed-complaint/detailed-complaint.component.ts index ea629d50..fa20f5ac 100644 --- a/src/app/venter/detailed-complaint/detailed-complaint.component.ts +++ b/src/app/venter/detailed-complaint/detailed-complaint.component.ts @@ -54,12 +54,15 @@ export class DetailedComplaintComponent implements OnInit { this.detailedComplaint = result; console.log(this.detailedComplaint); this.complaintReportedTime = moment(this.detailedComplaint.report_date).format('MMMM Do YYYY'); - if (this.detailedComplaint.status === 'Reported') - this.statusColor = 'red'; - else if (this.detailedComplaint.status === 'Resolved') - this.statusColor = 'green'; - else if (this.detailedComplaint.status === 'In progress') - this.statusColor = 'yellow'; + if (this.detailedComplaint.status === 'Reported') { + this.statusColor = 'red'; + } + else if (this.detailedComplaint.status === 'Resolved') { + this.statusColor = 'green'; + } + else if (this.detailedComplaint.status === 'In progress') { + this.statusColor = 'yellow'; + } }, (error) => { if (error.status === 404) { alert('Complaint not found'); @@ -75,7 +78,7 @@ export class DetailedComplaintComponent implements OnInit { postComment() { console.log(this.comment.text); console.log(this.comment); - this.dataService.FirePOST(API.CommentPost, + this.dataService.FirePOST(API.CommentPost, this.comment, { complaintId: this.detailedComplaint.id }).subscribe(result => { this.refresh(); console.log(result); @@ -85,11 +88,13 @@ export class DetailedComplaintComponent implements OnInit { upVoteComplaint(has_upvoted: boolean) { let complaint_upvoted: number; - if (has_upvoted === true) - complaint_upvoted = 1; - else - complaint_upvoted = 0; - this.dataService.FireGET(API.UpVote, + if (has_upvoted === true) { + complaint_upvoted = 1; + } + else { + complaint_upvoted = 0; + } + this.dataService.FireGET(API.UpVote, { complaintId: this.detailedComplaint.id, action: complaint_upvoted === 0 ? 1 : 0 }) .subscribe(result => { this.refresh(); @@ -112,7 +117,7 @@ export class DetailedComplaintComponent implements OnInit { } subscribe(complaint_subscribed: number) { - this.dataService.FireGET(API.SubscribeToComplaint, + this.dataService.FireGET(API.SubscribeToComplaint, { complaintId: this.detailedComplaint.id, action: complaint_subscribed === 0 ? 1 : 0 }) .subscribe(result => { this.refresh(); @@ -122,11 +127,11 @@ export class DetailedComplaintComponent implements OnInit { duration: 2000, }); } - else { - this.snackBar.open('You are subscribed to this complaint', 'Dismiss', { - duration: 2000, - }); - } + else { + this.snackBar.open('You are subscribed to this complaint', 'Dismiss', { + duration: 2000, + }); + } }, (error) => { this.snackBar.open(`Subscription Failed - ${error.message}`, 'Dismiss', { duration: 2000, diff --git a/src/app/venter/file-complaint/file-complaint.component.ts b/src/app/venter/file-complaint/file-complaint.component.ts index 5f03b082..d377a655 100644 --- a/src/app/venter/file-complaint/file-complaint.component.ts +++ b/src/app/venter/file-complaint/file-complaint.component.ts @@ -45,7 +45,7 @@ export class FileComplaintComponent implements OnInit { this.complaint.longitude = currentLong; this.complaint.images = []; this.complaint.location_description = 'IIT Area'; - + this.dataService.setTitle('Complaints & Suggestions'); /* Get all the tags from server*/ this.dataService.FireGET(API.TagCategories).subscribe(result => { @@ -53,7 +53,7 @@ export class FileComplaintComponent implements OnInit { this.tagCategories.forEach(element => { this.option.push(element.tag_uri); }); - }) + }); this.filteredOptions = this.myControl.valueChanges .pipe( startWith(''), @@ -111,7 +111,7 @@ export class FileComplaintComponent implements OnInit { } clearTag(deleteTag: string) { - for (let i=0; i < this.selectedTags.length; i++) { + for (let i = 0; i < this.selectedTags.length; i++) { if (this.selectedTags[i] === deleteTag) { this.selectedTags.splice(i, 1); } From a8e5d0c29f6deedd9946a8f8fbf493d8e0e91fcc Mon Sep 17 00:00:00 2001 From: Preetam Ozarde Date: Wed, 6 Feb 2019 15:02:06 +0530 Subject: [PATCH 4/4] Make minor codacy adjustments --- .../complaints-home/complaints-home.component.ts | 13 +++++-------- .../detailed-complaint.component.ts | 9 +++------ 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/app/venter/complaints-home/complaints-home.component.ts b/src/app/venter/complaints-home/complaints-home.component.ts index 21ba2ae7..9909a927 100644 --- a/src/app/venter/complaints-home/complaints-home.component.ts +++ b/src/app/venter/complaints-home/complaints-home.component.ts @@ -46,7 +46,7 @@ export class ComplaintsHomeComponent implements OnInit { let i = 0; result.forEach(element => { this.reportedTime[i] = moment(element.report_date).format('MMMM Do YYYY'); - i = i+1; + i = i + 1; if (element.status.toLowerCase() === 'reported') { this.complaintstatusColor.push('red'); } @@ -67,11 +67,9 @@ export class ComplaintsHomeComponent implements OnInit { result.forEach(element => { if (element.status.toLowerCase() === 'reported') { this.myComplaintstatusColor.push('red'); - } - else if (element.status.toLowerCase() === 'resolved') { + } else if (element.status.toLowerCase() === 'resolved') { this.myComplaintstatusColor.push('green'); - } - else if (element.status.toLowerCase() === 'in progress') { + } else if (element.status.toLowerCase() === 'in progress') { this.myComplaintstatusColor.push('yellow'); } }); @@ -129,7 +127,7 @@ export class ComplaintsHomeComponent implements OnInit { else { complaint_upvoted = 0; } - this.dataService.FireGET(API.UpVote, + this.dataService.FireGET(API.UpVote, { complaintId: complaintId, action: complaint_upvoted === 0 ? 1 : 0 }) .subscribe(result => { this.refresh(); @@ -138,8 +136,7 @@ export class ComplaintsHomeComponent implements OnInit { this.snackBar.open('You have upvoted this complaint', 'Dismiss', { duration: 2000, }); - } - else { + } else { this.snackBar.open('Your upvote has been removed', 'Dismiss', { duration: 2000, }); diff --git a/src/app/venter/detailed-complaint/detailed-complaint.component.ts b/src/app/venter/detailed-complaint/detailed-complaint.component.ts index fa20f5ac..310a22b4 100644 --- a/src/app/venter/detailed-complaint/detailed-complaint.component.ts +++ b/src/app/venter/detailed-complaint/detailed-complaint.component.ts @@ -56,11 +56,9 @@ export class DetailedComplaintComponent implements OnInit { this.complaintReportedTime = moment(this.detailedComplaint.report_date).format('MMMM Do YYYY'); if (this.detailedComplaint.status === 'Reported') { this.statusColor = 'red'; - } - else if (this.detailedComplaint.status === 'Resolved') { + } else if (this.detailedComplaint.status === 'Resolved') { this.statusColor = 'green'; - } - else if (this.detailedComplaint.status === 'In progress') { + } else if (this.detailedComplaint.status === 'In progress') { this.statusColor = 'yellow'; } }, (error) => { @@ -126,8 +124,7 @@ export class DetailedComplaintComponent implements OnInit { this.snackBar.open('You are unsubscribed from this complaint', 'Dismiss', { duration: 2000, }); - } - else { + } else { this.snackBar.open('You are subscribed to this complaint', 'Dismiss', { duration: 2000, });